
.service-hero { background: var(--deep); color: var(--ground); }
.service-hero__grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: stretch; }
.service-hero__copy { padding-block: clamp(3rem, 5vw, 5rem); align-self: center; }
.service-hero .label { color: var(--gold); }
.service-hero h1 { margin-top: 1.15rem; font-family: var(--display); font-weight: 400; text-transform: none; letter-spacing: -.025em; font-size: clamp(2.4rem, 2rem + 2.3vw, 4.25rem); line-height: 1.06; max-width: 18ch; text-wrap: balance; }
.service-hero__lead { margin-top: 1.5rem; color: var(--ground); font-size: var(--fs-lead); max-width: 46ch; }
.service-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 1.75rem; margin-top: 2rem; }
.service-hero__link { display: inline-flex; gap: .75rem; align-items: center; min-height: 2.75rem; text-underline-offset: .4em; font-size: var(--fs-small); }
.service-hero__link span { color: var(--gold); }
.service-hero__photo { margin: 0; display: flex; flex-direction: column; min-width: 0; }
.service-hero__photo img { width: 100%; height: 100%; min-height: 26rem; max-height: 38rem; flex: 1; object-fit: cover; object-position: center; }
.service-hero__photo figcaption { padding: .9rem 1.25rem; background: var(--gold); color: var(--on-gold); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.service-hero__context { padding: 3rem 0 3rem 3rem; margin-block: 3rem; border-left: 1px solid var(--rule-deep); align-self: center; }
.service-hero__context > p { margin: 1rem 0 2rem; font: 400 clamp(1.75rem, 2.4vw, 2.5rem)/1.16 var(--display); }
.service-hero__facts { margin: 0; padding: 0; list-style: none; display: grid; gap: 1rem; }
.service-hero__facts li { border-top: 1px solid var(--rule-deep); padding-top: .8rem; font-size: var(--fs-small); line-height: 1.6; max-width: 35ch; }




.service-content { background: var(--paper); padding-block: clamp(3rem, 6vw, 6rem); }
.service-layout { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(18rem, 1fr); grid-template-areas: "article contact" "article rail"; grid-template-rows: auto 1fr; gap: 2.5rem clamp(2rem, 5vw, 5rem); align-items: start; }
.service-article { grid-area: article; max-width: none; min-width: 0; }
.service-article > h2 { font-size: clamp(1.25rem, 1rem + .7vw, 1.55rem); line-height: 1.3; margin-top: 2.75rem; max-width: 34ch; text-wrap: balance; }
.service-article > h2:first-child { margin-top: 0; }
.service-article p { line-height: 1.85; }
.service-included { margin-top: 2.75rem; padding: clamp(1.35rem, 3vw, 2rem); background: var(--ground); border-top: 3px solid var(--gold); }
.service-included h2 { margin: 0; font-size: 1.25rem; }
.service-included .ticks { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem 1.5rem; }
.service-proof { margin-top: 3rem; }
.service-proof > h2 { margin: 0; }
.service-proof figure { margin-inline: 0; }
.service-contact { grid-area: contact; padding: clamp(1.4rem, 2.6vw, 2rem); background: var(--ground); border-top: 3px solid var(--gold); min-width: 0; }
.service-contact h2 { margin: .75rem 0 1rem; font-family: var(--display); font-weight: 400; font-size: clamp(1.7rem, 2.1vw, 2rem); line-height: 1.15; text-transform: none; }
.service-contact > p { font-size: var(--fs-small); color: var(--muted); }
.service-contact > .btn { margin-top: 1.5rem; width: 100%; }
.service-contact__email { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 2.75rem; margin-top: .6rem; font-weight: 600; font-size: .875rem; text-underline-offset: .2em; }
.service-contact__email svg { width: 1rem; height: 1rem; }
.service-contact dl { margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.service-contact dt { color: var(--muted); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
.service-contact dd { margin: .4rem 0 0; font-size: .875rem; }
.service-contact dd a { text-underline-offset: .2em; }
.service-rail { grid-area: rail; min-width: 0; }
.service-related h2 { margin-bottom: .6rem; font-size: 1.6rem; }
.service-related ul { border-top: 1px solid var(--rule); }
.service-related li { border-bottom: 1px solid var(--rule); }
.service-related li a { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 3.5rem; padding-block: 1rem; font-size: var(--fs-small); text-decoration: none; }
.service-related svg { width: 1rem; height: 1rem; }
.service-related a:hover { text-decoration: underline; text-underline-offset: .25em; }
.service-guide { margin-top: 1rem; font-size: .875rem; text-underline-offset: .2em; }
.service-review { margin-top: 2.5rem; padding: 2rem; background: var(--deep); color: var(--ground); }
.service-review .label { color: var(--gold); }
.service-review h2 { margin: .65rem 0 1.25rem; font-size: 1.75rem; }
.service-review blockquote { margin: 0; font-size: .9375rem; line-height: 1.8; }
.service-review__stars { display: flex; gap: .15rem; color: var(--gold); margin-top: 1.5rem; }
.service-review__stars svg { width: 1rem; height: 1rem; }
.service-review cite { display: block; font: 400 1.2rem/1.4 var(--display); margin-top: .75rem; }
.service-review cite span { display: block; font: 400 .75rem/1.6 var(--font); margin-top: .2rem; }
.service-review > a { display: inline-block; min-height: 2.75rem; padding-top: .8rem; margin-top: 1rem; font-size: .8125rem; text-underline-offset: .25em; }
.service-process { background: var(--deep); color: var(--ground); padding-block: clamp(3rem, 5vw, 5rem); }
.service-process__heading { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; align-items: start; margin-bottom: 3rem; }
.service-process__heading .label { margin-top: .5rem; }
.service-process h2 { font-family: var(--display); font-weight: 400; text-transform: none; font-size: clamp(2rem, 3vw, 3rem); max-width: 20ch; line-height: 1.1; }
.service-process ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); counter-reset: service-step; }
.service-process li { counter-increment: service-step; border-top: 1px solid var(--rule-deep); padding-top: 1.5rem; }
.service-process li::before { content: "0" counter(service-step); display: block; font: 400 2.5rem/1 var(--display); color: var(--gold); margin-bottom: 1.5rem; }
.service-process h3 { font-family: var(--font); font-weight: 600; font-size: 1.1rem; line-height: 1.35; }
.service-process li p { margin-top: .75rem; font-size: var(--fs-small); line-height: 1.8; }
@media (max-width: 1000px) {
  .service-layout { grid-template-columns: minmax(0, 1.6fr) minmax(17rem, 1fr); gap: 2.5rem 2rem; }
  .service-hero__grid { gap: 2rem; }
  .service-hero h1 { font-size: clamp(2.25rem, 4vw, 3.25rem); }
  .service-contact dl { grid-template-columns: 1fr; }
  .service-included .ticks { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .service-hero__grid { grid-template-columns: 1fr; gap: 0; }
  .service-hero__copy { padding-block: 2.5rem; }
  .service-hero h1 { font-size: clamp(2.3rem, 8vw, 3.75rem); max-width: 20ch; }
  .service-hero__lead { font-size: 1rem; }
  .service-hero__actions { gap: .75rem 1rem; }
  .service-hero__actions .btn { width: 100%; }
  .service-hero__photo { margin-inline: calc((100vw - 100%) / -2); }
  .service-hero__photo img { height: 16rem; min-height: 0; max-height: none; flex: auto; }
  .service-hero__photo figcaption { padding-inline: max(1rem, calc((100vw - var(--shell)) / 2)); }
  .service-hero__context { margin: 0 0 1.5rem; padding: 1.25rem 0 0; border-left: 0; border-top: 1px solid var(--rule-deep); }
  .service-hero__context > .label { display: none; }
  
  
  
  .service-layout { grid-template-columns: 1fr; grid-template-areas: "contact" "article" "rail"; grid-template-rows: auto; gap: 2rem; }
  
  .service-contact h2 { margin: 0; font-family: var(--font); font-weight: 600; font-size: 1rem; line-height: 1.4; }
  .service-rail { display: grid; grid-template-columns: 1fr; gap: 2rem; }
  .service-review { margin-top: 0; padding: 1.5rem; }
  .service-process__heading { grid-template-columns: 1fr; gap: .7rem; margin-bottom: 2rem; }
  .service-process ol { grid-template-columns: 1fr; gap: 2rem; }
  .service-process li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .5rem 1.25rem; }
  .service-process li::before { grid-row: 1 / span 2; font-size: 2rem; margin: 0; }
  .service-process li p { grid-column: 2; margin: 0; }

  .service-hero__context > p { margin: 0 0 .8rem; font-size: 1.4rem; line-height: 1.25; }
  .service-hero__facts { gap: .65rem; }
  .service-hero__facts li { max-width: none; padding-top: .65rem; font-size: .875rem; line-height: 1.55; }
  .service-contact { padding: 1.25rem; }
  .service-contact > .label, .service-contact > p, .service-contact > dl { display: none; }
  .service-contact > .btn { margin-top: .75rem; }
  .service-contact__email { margin-top: .35rem; min-height: 2.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .service-hero *, .service-content *, .service-process * { scroll-behavior: auto; transition: none; }
}

.service-photo { background: var(--ground); padding-block: clamp(1rem, 2vw, 1.75rem); }
.service-photo figure { margin: 0 auto; max-width: 40rem; }
.service-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); background: var(--rule); }
@media (max-width: 760px) {
  .service-photo { padding-block: clamp(.75rem, 2vw, 1rem); }
  .service-photo figure { margin-inline: .75rem; }
  .service-photo img { border-radius: var(--radius); }
}
