/* Service detail pages reuse the existing fonts, palette and interface. */
.service-page main { min-width: 0; }
.service-page [id] { scroll-margin-top: 95px; }
.service-page-hero { padding: 118px 6vw 3.5rem; color: #fff; background: var(--ink); }
.service-page-wrap, .service-page-hero-grid, .service-breadcrumb { width: 100%; max-width: var(--max); margin-inline: auto; }
.service-breadcrumb { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 2rem; font-size: .75rem; color: var(--muted); }
.service-breadcrumb a:hover { color: var(--accent-light); }
.service-page-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem,4vw,4rem); align-items: center; }
.service-page-hero-grid > * { min-width: 0; }
.service-page-hero h1 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(2.8rem,5.2vw,5.8rem); line-height: 1.02; letter-spacing: -.045em; }
.service-page-hero h1 em { color: var(--accent-light); font-weight: 400; }
.service-page-lead { margin: 1.5rem 0 0; color: rgba(255,255,255,.7); max-width: 60ch; }
.service-page-hero .hero-actions { margin-top: 1.5rem; }
.service-page-positioning { margin: 1.2rem 0 0; font-size: .78rem; color: var(--muted); }
.service-page-hero-figure { margin: 0; }
.service-page-hero-figure img { width: 100%; height: auto; aspect-ratio: 16 / 11; object-fit: cover; }
.service-page-hero-figure figcaption { margin-top: .65rem; color: var(--muted); font-size: .7rem; }
.service-page-section { padding: clamp(2.8rem,5.5vw,5rem) 6vw; }
.service-page-heading { margin-bottom: 1.8rem; max-width: 850px; }
.service-page-heading .eyebrow { margin-bottom: .85rem; }
.service-page h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(2rem,3.6vw,3.8rem); line-height: 1.08; letter-spacing: -.035em; }
.service-page h3 { margin: 0 0 .6rem; font-family: var(--serif); font-weight: 400; font-size: clamp(1.4rem,2vw,1.9rem); line-height: 1.15; }
.service-page-heading > p:last-child { margin: 1rem 0 0; color: #625b53; }
.service-scope-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.75rem 3rem; }
.service-scope-grid article { padding: 1.2rem 0 0; border-top: 1px solid var(--line); }
.service-scope-grid .service-number { display: block; font-size: .75rem; margin-bottom: .65rem; color: #746c63; }
.service-scope-grid p, .service-proof-card > p:last-child, .service-package-grid p, .service-booking-steps p { margin: .6rem 0 0; color: #625b53; }
.service-page-proof, .service-page-booking { background: var(--paper-bright); }
.service-proof-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.4rem; }
.service-proof-grid--pair { grid-template-columns: repeat(2,minmax(0,1fr)); }
.service-proof-card { min-width: 0; }
.service-proof-image { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--ink-soft); }
.service-proof-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.service-proof-card--portrait .service-proof-image img { object-position: center 25%; }
.service-proof-image span { position: absolute; left: .75rem; bottom: .75rem; max-width: calc(100% - 1.5rem); padding: .4rem .6rem; font-size: .7rem; color: #fff; background: rgba(17,16,14,.86); }
.service-proof-image:hover img, .service-proof-image:focus-visible img { transform: scale(1.025); }
.service-proof-card > p:last-child { font-size: .85rem; }
.service-proof-card .media-kicker { margin-top: .9rem; }
.service-text-link { display: inline-flex; align-items: center; gap: .7rem; border-bottom: 1px solid currentColor; padding-block: .3rem; margin-top: 1.2rem; font-size: .85rem; }
.service-text-link:hover { opacity: .75; }
.service-package-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
.service-package-grid article { padding-block: 1.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-package-grid .media-kicker { margin: 0 0 .85rem; }
.service-cost-note { max-width: 85ch; margin: 1.4rem 0 0; color: #625b53; font-size: .9rem; }
.service-booking-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin: 0; padding-left: 1.4rem; }
.service-booking-steps li { padding-left: .3rem; }
.service-booking-steps li::marker { color: #746c63; }
.service-booking-steps h3 { font-size: 1.4rem; }
.service-identity { margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--line); color: #625b53; font-size: .85rem; }
.service-identity a { border-bottom: 1px solid currentColor; }
.service-page .service-page-faq { padding: 3.3rem 6vw; grid-template-columns: minmax(0,.65fr) minmax(0,1fr); gap: 5vw; }
.service-page-faq .faq-heading > p:last-child { max-width: 32ch; color: var(--muted); }
.service-page-faq .faq-heading .eyebrow { margin-bottom: 1rem; }
.service-page .service-page-faq h2 { font-size: clamp(2rem,3.5vw,3.4rem); }
.service-page-contact { background: var(--accent); padding: 3rem 6vw; }
.service-page-contact .eyebrow { margin-bottom: 1rem; }
.service-page-contact p:not(.eyebrow) { max-width: 65ch; }
.service-page-contact .hero-actions { margin-top: 1.25rem; }
.service-page-contact .service-text-link { margin-top: 0; }
.service-page-contact .service-phone { font-size: .85rem; margin-bottom: 0; }
.service-related { padding: 1.8rem 6vw; }
.service-related .media-kicker { margin: 0 0 .7rem; }
.service-related > div { display: flex; gap: 1rem 2rem; flex-wrap: wrap; }
.service-related a { border-bottom: 1px solid var(--line); font-size: .85rem; }
.service-page :focus-visible { outline: 2px solid var(--accent-light); outline-offset: 5px; }
.service-page-contact :focus-visible { outline-color: var(--ink); }
@media (max-width: 800px) {
  .service-page-hero-grid { grid-template-columns: 1fr; }
  .service-page-hero-figure { max-width: 680px; }
  .service-proof-grid { grid-template-columns: 1fr; gap: 2rem; }
  .service-proof-image { aspect-ratio: 16 / 10; }
  .service-proof-card--portrait .service-proof-image { aspect-ratio: 4 / 5; }
  .service-booking-steps { grid-template-columns: 1fr; gap: 1.2rem; }
  .service-page .service-page-faq { grid-template-columns: 1fr; gap: 1.5rem; }
}
@media (max-width: 620px) {
  .service-page-hero { padding-top: 108px; padding-bottom: 2.5rem; }
  .service-scope-grid, .service-package-grid { grid-template-columns: 1fr; gap: 1.2rem; }
  .service-page .button { max-width: 100%; text-align: center; }
  .service-page-contact { padding-block: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .service-proof-image img { transition: none; }
  .service-proof-image:hover img, .service-proof-image:focus-visible img { transform: none; }
}
