/* Services page styles (sv-* only) */
/* SERVICES PAGE */
.sv-hero {
  background: var(--linen); padding: 88px 56px 80px; text-align: center;
  position: relative; overflow: hidden; border-bottom: 1px solid var(--mist);
}
.sv-hero::before { content:''; position:absolute; top:-110px; right:-110px; width:340px; height:340px; border-radius:50%; border:1px solid var(--mist); pointer-events:none; }
.sv-hero::after { content:''; position:absolute; bottom:-90px; left:-90px; width:240px; height:240px; border-radius:50%; border:1px solid var(--mist); pointer-events:none; }
.sv-eyebrow {
  font-size:11px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--sage);
  display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:16px; position:relative; z-index:1;
}
.sv-eyebrow::before, .sv-eyebrow::after { content:''; width:28px; height:1px; background:var(--sage); }
.sv-hero-title { font-family:'Cormorant Garamond',serif; font-size:54px; font-weight:400; line-height:1.12; color:var(--ink); margin-bottom:20px; position:relative; z-index:1; }
.sv-hero-title em { font-style:italic; }
.sv-hero-sub { font-size:16px; color:var(--text-sm); line-height:1.8; font-weight:300; max-width:600px; margin:0 auto; position:relative; z-index:1; }
/* services grid */
.sv-grid-section { background: var(--warm-white); padding: 96px 56px; }
.sv-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:2px; max-width:1080px; margin:0 auto; background: var(--mist); border:1px solid var(--mist); }
.sv-card {
  background: var(--warm-white); padding: 44px 32px; transition: background 0.25s;
  display:flex; flex-direction:column; position: relative;
}
.sv-card:hover { background: var(--linen); }
.sv-card-num { font-family:'Cormorant Garamond',serif; font-size:40px; font-weight:400; color:var(--mist); line-height:1; margin-bottom:18px; transition: color 0.25s; }
.sv-card:hover .sv-card-num { color: var(--gold); }
.sv-card h3 { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:500; color:var(--ink); margin-bottom:12px; }
.sv-card p { font-size:14px; color:var(--text-sm); line-height:1.7; font-weight:300; margin-bottom:20px; flex-grow:1; }
.sv-card-link { font-size:11px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--forest); text-decoration:none; display:inline-flex; align-items:center; gap:6px; align-self:flex-start; }
.sv-card-link:hover { color: var(--sage); gap:10px; transition: gap 0.2s; }
/* feature band - X-ray / approach */
.sv-feature { display:grid; grid-template-columns: 1fr 1fr; align-items:stretch; }
.sv-feature-img { position:relative; overflow:hidden; min-height:440px; }
.sv-feature-img img { width:100%; height:100%; object-fit:cover; }
.sv-feature-text { background: var(--linen); padding: 88px 64px; display:flex; flex-direction:column; justify-content:center; }
.sv-feature-text .sv-eyebrow { justify-content:flex-start; }
.sv-feature-text .sv-eyebrow::after { display:none; }
.sv-h2 { font-family:'Cormorant Garamond',serif; font-size:40px; font-weight:400; line-height:1.2; color:var(--ink); margin-bottom:22px; }
.sv-h2 em { font-style:italic; }
.sv-p { font-size:16px; color:var(--text-sm); line-height:1.85; font-weight:300; margin-bottom:18px; }
/* closing CTA */
.sv-cta { background: var(--ink); padding: 80px 56px; text-align:center; position:relative; overflow:hidden; }
.sv-cta::before { content:''; position:absolute; top:-120px; left:50%; transform:translateX(-50%); width:420px; height:420px; border-radius:50%; border:1px solid rgba(255,255,255,0.05); pointer-events:none; }
.sv-cta .sv-eyebrow { color: var(--gold-lt); }
.sv-cta .sv-eyebrow::before, .sv-cta .sv-eyebrow::after { background: var(--gold); }
.sv-cta h2 { font-family:'Cormorant Garamond',serif; font-size:40px; font-weight:400; color:var(--white); margin-bottom:16px; position:relative; z-index:1; }
.sv-cta h2 em { font-style:italic; }
.sv-cta p { font-size:15px; color:rgba(255,255,255,0.6); font-weight:300; max-width:520px; margin:0 auto 32px; line-height:1.8; position:relative; z-index:1; }

@media (max-width: 900px) {
.sv-hero { padding: 56px 24px; }
.sv-hero::before, .sv-hero::after { display:none; }
.sv-hero-title { font-size:38px; }
.sv-grid-section { padding: 56px 24px; }
.sv-grid { grid-template-columns: 1fr; }
.sv-card { padding: 36px 28px; }
.sv-feature { grid-template-columns: 1fr; }
.sv-feature-img { min-height:280px; order:0; }
.sv-feature-text { padding: 52px 24px; order:1; }
.sv-h2 { font-size:32px; }
.sv-cta { padding: 60px 24px; }
.sv-cta h2 { font-size:32px; }
}
