/* Santa Oliver service landing pages */
.service-hero {
  position: relative;
  overflow: hidden;
  min-height: 540px;
  display: grid;
  align-items: center;
  padding: 138px 0 84px;
  background:
    radial-gradient(circle at 78% 24%, rgba(200,162,74,.18), transparent 28%),
    linear-gradient(145deg, var(--forest-950), var(--forest-800));
}
.service-hero .snow-canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .48; pointer-events: none; }
.service-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(300px,.72fr); gap: 54px; align-items: center; }
.service-breadcrumb { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 24px; color: var(--ink-soft); font-size: 13px; }
.service-breadcrumb a { color: var(--gold-200); text-decoration: none; }
.service-hero .so-eyebrow { display: block; margin-bottom: 16px; color: var(--gold-200); }
.service-hero h1 { font-family: var(--display); font-size: clamp(42px, 5.6vw, 72px); font-weight: 500; line-height: .98; letter-spacing: -.02em; color: var(--cream); max-width: 12ch; }
.service-hero-copy > p { max-width: 660px; margin: 24px 0 0; color: var(--ink-soft); font-size: clamp(17px, 1.45vw, 20px); line-height: 1.65; }
.service-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.service-portrait { border-radius: var(--r-xl); overflow: hidden; border: 1px solid var(--hairline); box-shadow: var(--shadow-card), var(--glow-gold); aspect-ratio: 3/2; background: var(--forest-700); }
.service-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

.service-main { background: var(--snow); padding: 88px 0 104px; color: var(--ink); }
.service-lead { max-width: 820px; margin: 0 auto 72px; text-align: center; }
.service-lead .so-eyebrow { display: block; margin-bottom: 14px; color: var(--red-deep); }
.service-lead h2, .service-section h2, .service-faq > h2, .service-related > h2 { font-family: var(--display); font-weight: 500; line-height: 1.05; color: var(--ink); }
.service-lead h2 { font-size: clamp(34px, 4vw, 52px); }
.service-lead p { margin: 22px auto 0; color: var(--ink-muted); font-size: 17px; line-height: 1.75; max-width: 760px; }

.service-section { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 58px; align-items: start; margin: 72px 0; padding: 54px; background: var(--paper); border: 1px solid var(--hairline-ink); border-radius: var(--r-xl); box-shadow: 0 18px 55px -42px rgba(9,17,12,.55); }
.service-section.reverse { grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); }
.service-section.reverse .service-section-copy { order: 2; }
.service-section.reverse .service-points { order: 1; }
.service-section h2 { font-size: clamp(31px, 3.3vw, 44px); margin-bottom: 18px; }
.service-section-copy p { color: var(--ink-muted); font-size: 16.5px; line-height: 1.75; margin: 0 0 16px; }
.service-points { display: grid; gap: 12px; }
.service-point { padding: 18px 20px; border-radius: var(--r-md); background: #f6f2e9; border: 1px solid rgba(200,162,74,.2); }
.service-point strong { display: block; color: var(--pine); margin-bottom: 5px; }
.service-point span { display: block; color: var(--ink-muted); font-size: 14.5px; line-height: 1.55; }

.service-proof { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin: 70px 0; }
.service-proof article { padding: 24px 20px; border-radius: var(--r-lg); background: var(--forest-900); color: var(--cream); text-align: center; }
.service-proof strong { display: block; font-family: var(--display); font-size: 25px; font-weight: 600; color: var(--gold-200); margin-bottom: 7px; }
.service-proof span { font-size: 13.5px; color: var(--ink-soft); line-height: 1.45; }

.service-faq { max-width: 900px; margin: 84px auto 0; }
.service-faq > h2 { text-align: center; font-size: clamp(34px, 4vw, 50px); margin-bottom: 28px; }
.service-faq details { background: var(--paper); border: 1px solid var(--hairline-ink); border-radius: var(--r-md); padding: 0 22px; margin: 12px 0; }
.service-faq summary { cursor: pointer; font-weight: 700; padding: 20px 2px; color: var(--pine); }
.service-faq details p { margin: -2px 0 20px; color: var(--ink-muted); line-height: 1.7; }

.service-related { margin-top: 88px; text-align: center; }
.service-related > h2 { font-size: clamp(32px, 3.8vw, 46px); margin-bottom: 28px; }
.service-related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.service-related-card { display: block; padding: 28px 24px; border-radius: var(--r-lg); background: var(--paper); border: 1px solid var(--hairline-ink); color: var(--ink); text-decoration: none; text-align: left; transition: transform .18s ease, border-color .18s ease; }
.service-related-card:hover { transform: translateY(-3px); border-color: rgba(200,162,74,.55); }
.service-related-card strong { display: block; font-family: var(--display); font-size: 25px; font-weight: 600; color: var(--pine); margin-bottom: 8px; }
.service-related-card span { color: var(--ink-muted); font-size: 14.5px; line-height: 1.55; }

.service-cta { margin-top: 88px; padding: 56px 32px; text-align: center; border-radius: var(--r-xl); background: linear-gradient(145deg, var(--forest-950), var(--forest-700)); color: var(--cream); }
.service-cta h2 { font-family: var(--display); font-size: clamp(35px, 4vw, 52px); font-weight: 500; }
.service-cta p { max-width: 680px; margin: 16px auto 26px; color: var(--ink-soft); line-height: 1.7; }
.service-cta-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }

@media (max-width: 900px) {
  .service-hero { min-height: auto; padding: 120px 0 70px; }
  .service-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .service-portrait { width: min(420px, 78vw); aspect-ratio: 5/4; }
  .service-hero h1 { max-width: 14ch; }
  .service-section, .service-section.reverse { grid-template-columns: 1fr; padding: 36px; gap: 32px; }
  .service-section.reverse .service-section-copy, .service-section.reverse .service-points { order: initial; }
  .service-proof { grid-template-columns: repeat(2,1fr); }
  .service-related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .service-hero { padding: 104px 0 54px; }
  .service-hero .wrap, .service-main .wrap { padding-left: 20px; padding-right: 20px; }
  .service-hero h1 { font-size: clamp(38px, 12vw, 54px); }
  .service-hero-actions > a { width: 100%; justify-content: center; min-height: 48px; }
  .service-portrait { width: 100%; aspect-ratio: 16/10; }
  .service-main { padding: 64px 0 82px; }
  .service-lead { margin-bottom: 50px; }
  .service-section { margin: 46px 0; padding: 28px 22px; }
  .service-proof { grid-template-columns: 1fr 1fr; gap: 10px; margin: 50px 0; }
  .service-proof article { padding: 20px 12px; }
  .service-related { margin-top: 64px; }
  .service-cta { margin-top: 64px; padding: 42px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .service-related-card { transition: none; }
}
