/* Light full-photo poster. Swiper owns slides; GSAP owns their inner layers. */
.hero { --hero-stage: 752px; --hero-ink: #20343a; --hero-muted: #4c6064; --hero-line: #26424a30; height: calc(var(--header-height) + var(--hero-stage)); background: #f7f8f5; }
.hero .hero-swiper { overflow: hidden; }
.hero .swiper-slide { padding-top: var(--header-height); background: #f7f8f5; }
.hero .hero-wash { display: none; }
.hero .hero-container { position: relative; height: 100%; z-index: 1; pointer-events: none; }
.hero .hero-copy, .hero .hero-photo-note { pointer-events: auto; }
.hero .hero-copy { position: static; width: 100%; max-width: none; padding: 0; color: var(--hero-ink); }
.hero .hero-scene { position: absolute; inset: 0; overflow: hidden; background: #ccd8d7; }
.hero-scene img { width: 100%; height: 100%; object-fit: cover; object-position: center 53%; }
.hero-slide-2 .hero-scene img { object-position: 88% center; }
.hero-slide-3 .hero-scene img { object-position: 42% center; }
.hero-scene-shade { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 43%,#fffdfbe6 0%,#fffdfbc9 24%,#fffdfb59 58%,#fffdfb05 80%),linear-gradient(180deg,#f6f8f533 0%,#f6f8f54d 40%,#f6f8f580 70%,#f6f8f5fa 100%); }
.hero .hero-eyebrow.signature-kicker { position: absolute; left: 16%; right: 16%; top: 92px; bottom: auto; display: flex; width: auto; justify-content: center; gap: 11px; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; color: var(--hero-muted); font-size: 10px; letter-spacing: 3.2px; font-weight: 600; line-height: 1.5; }
.hero .hero-eyebrow .signature-mark { color: #c4000c; }
.hero .hero-title { position: absolute; left: 9%; right: 9%; top: 147px; bottom: auto; width: auto; max-width: none; margin: 0; text-align: center; color: var(--hero-ink); font-size: clamp(61px,6.6vw,108px); font-weight: 700; line-height: 1.06; letter-spacing: -4.8px; animation: none; }
.hero .hero-title > span { display: block; }
.hero .hero-title .motion-word { display: inline-block; white-space: nowrap; }
.hero .hero-title .hero-line2 { width: auto; margin-top: -1px; padding: 0 20px 11px 0; color: #b60010; font-family: Caveat,cursive; font-size: 1.17em; font-weight: 500; letter-spacing: -3px; line-height: 1; }
.hero .hero-line2::before, .hero .hero-line2::after { display: none; }
.hero .hero-description { position: absolute; top: 382px; bottom: auto; left: 50%; width: 470px; max-width: 70%; margin: 0; transform: translateX(-50%); text-align: center; font-size: 14px; color: var(--hero-muted); line-height: 1.8; }
.hero .hero-ctas { position: absolute; left: 50%; top: 485px; bottom: auto; display: flex; align-items: center; width: max-content; max-width: 85%; margin: 0; transform: translateX(-50%); gap: 26px; }
.hero .hero-ctas .button { min-height: 53px; font-size: 12px; letter-spacing: 0; text-transform: none; }
.hero .hero-ctas .primary { justify-content: space-between; min-width: 226px; padding: 0 0 0 19px; gap: 23px; border: 1px solid #ffffffc4; border-radius: 0; background: #ffffffe3; color: var(--hero-ink); box-shadow: none; }
.hero .hero-ctas .primary:hover { color: #b90012; background: #fff; border-color: #fff; }
.hero .hero-ctas .primary .icon { width: 51px; height: 51px; padding: 16px; background: #c40013; color: #fff; border: 0; border-radius: 0; transition: none; flex-shrink: 0; }
.hero .hero-ctas .hero-contact { position: relative; flex-direction: row; min-width: 0; padding: 12px 0; gap: 12px; border: 0; border-bottom: 1px solid #26424a50; border-radius: 0; background: none; color: var(--hero-ink); font-weight: 500; }
.hero .hero-ctas .hero-contact::after { content: ''; position: absolute; right: -1px; bottom: -3px; width: 5px; height: 5px; background: #c40013; transform: rotate(45deg); }
.hero .hero-ctas .hero-contact .icon { width: 16px; height: 16px; color: #b60010; }
.hero .hero-ctas .hero-contact:hover { color: #b60010; border-color: #b60010; }
.hero .hero-hotspot { display: none; }
.hero .hero-photo-note { display: block; position: absolute; bottom: 43px; top: auto; left: 0; right: auto; width: 35%; padding: 0 0 0 17px; border: 0; border-left: 2px solid #c4000c; border-radius: 0; background: none; box-shadow: none; overflow: visible; color: var(--hero-ink); }
.hero .hero-photo-note > .signature-detail, .hero .hero-photo-note > .icon, .hero .hero-photo-note::before, .hero .hero-photo-note::after { display: none; }
.hero .hero-note-label { margin: 0; color: #b60010; font-size: 8px; letter-spacing: 2px; font-weight: 600; }
.hero .hero-note-label::before { display: none; }
.hero .hero-note-title { margin-top: 8px; padding: 0; font-size: 20px; line-height: 1.25; letter-spacing: -.2px; font-weight: 500; }
.hero .hero-note-detail { display: block; margin-top: 7px; padding: 0; font-size: 10px; color: var(--hero-muted); }
.hero .benefits { position: absolute; left: auto; right: 0; bottom: 43px; display: flex; width: 51%; max-width: none; min-height: 80px; margin: 0; border: 0; border-top: 1px solid var(--hero-line); border-radius: 0; padding: 20px 0 0; gap: 0; background: none; box-shadow: none; }
.hero .benefits > :is(button,a[data-service]) { display: flex; flex: 1; flex-direction: row; align-items: center; justify-content: center; gap: 10px; color: var(--hero-ink); min-height: 34px; padding: 4px 18px; border: 0; border-right: 1px solid var(--hero-line); border-radius: 0; background: none; box-shadow: none; text-align: left; transition: color .2s; }
.hero .benefits > :is(button,a[data-service]):first-child { padding-left: 0; justify-content: flex-start; }
.hero .benefits > :is(button,a[data-service]):last-child { border: 0; }
.hero .benefits > :is(button,a[data-service])::before { display: none; }
.hero .benefits > :is(button,a[data-service]):hover { color: #b60010; }
.hero .benefits .icon { width: 23px; height: 23px; padding: 0; background: none; color: #b60010; border-radius: 0; flex-shrink: 0; }
.hero .benefits > :is(button,a[data-service]) span { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 500; line-height: 1.5; color: inherit; }
.hero .benefits small { font-size: 7px; letter-spacing: 1.3px; color: var(--hero-muted); font-weight: 400; }
.hero :where(button,a):focus-visible { outline: 2px solid #b60010; outline-offset: 5px; }
@media(min-width:1700px) {
  .hero { --hero-stage: 798px; }
  .hero .hero-eyebrow.signature-kicker { top: 98px; }
  .hero .hero-title { top: 151px; }
  .hero .hero-description { top: 439px; }
  .hero .hero-ctas { top: 535px; }
}
@media(min-width:761px) and (max-width:1120px) {
  .hero { --hero-stage: 712px; }
  .hero .hero-eyebrow.signature-kicker { top: 84px; }
  .hero .hero-title { top: 141px; left: 4%; right: 11%; font-size: clamp(48px,6.5vw,69px); letter-spacing: -2.7px; }
  .hero .hero-title .hero-line2 { letter-spacing: -1.5px; }
  .hero .hero-description { top: 320px; font-size: 13px; }
  .hero .hero-ctas { top: 425px; gap: 20px; }
  .hero .benefits { width: 58%; }
  .hero .benefits > :is(button,a[data-service]) { gap: 7px; padding-inline: 10px; }
  .hero .benefits > :is(button,a[data-service]) span { font-size: 10px; }
  .hero .benefits small { font-size: 6px; letter-spacing: .7px; }
  .hero .hero-note-title { font-size: 18px; }
}
@media(max-width:760px) {
  .hero { height: calc(var(--header-height) + 785px); }
  .hero .hero-scene img { object-position: 60% center; }
  .hero .hero-scene-shade { background: linear-gradient(180deg,#f8faf575 0%,#fffdfbdd 24%,#fffdfbdb 50%,#f8faf5d4 72%,#f8faf5fa 100%); }
  .hero .hero-eyebrow.signature-kicker { top: 66px; left: 0; right: 0; font-size: 8px; letter-spacing: 2px; }
  .hero .hero-title { left: 0; right: 0; top: 111px; width: 100%; font-size: clamp(36px,8.6vw,58px); letter-spacing: -1.6px; }
  .hero .hero-title .hero-line2 { margin-top: 9px; padding-right: 6px; font-size: 1.35em; letter-spacing: -1px; }
  .hero .hero-description { top: 261px; left: 50%; width: 380px; max-width: 96%; font-size: 12px; line-height: 1.8; }
  .hero .hero-ctas { top: 362px; width: max-content; max-width: 100%; gap: 16px; }
  .hero .hero-ctas .button { min-height: 48px; font-size: 10px; }
  .hero .hero-ctas .primary { min-width: 174px; min-height: 46px; padding: 0 0 0 13px; gap: 12px; }
  .hero .hero-ctas .primary .icon { width: 44px; height: 44px; padding: 13px; }
  .hero .hero-ctas .hero-contact { padding-inline: 0; gap: 8px; }
  .hero .hero-photo-note { left: 0; right: 0; width: auto; top: 451px; bottom: auto; padding-left: 14px; }
  .hero .hero-note-title { font-size: 20px; }
  .hero .hero-note-detail { font-size: 10px; }
  .hero .benefits { left: 0; right: 0; width: 100%; bottom: 32px; min-height: 60px; padding-top: 19px; border-top-color: var(--hero-line); }
  .hero .benefits > :is(button,a[data-service]) { padding-inline: 9px; gap: 7px; }
  .hero .benefits > :is(button,a[data-service]) span { font-size: 9px; }
  .hero .benefits small { display: none; }
  .hero .benefits .icon { width: 21px; height: 21px; }
}
@media(max-width:380px) {
  .hero .hero-title { font-size: 31px; }
  .hero .hero-description { top: 244px; }
  .hero .hero-ctas { gap: 12px; }
  .hero .hero-ctas .primary { min-width: 159px; padding: 0 0 0 10px; gap: 8px; }
  .hero .hero-ctas .primary .icon { width: 40px; height: 44px; padding: 12px; }
  .hero .hero-ctas .hero-contact { gap: 5px; font-size: 9px; }
  .hero .hero-ctas .hero-contact .icon { width: 13px; }
  .hero .benefits > :is(button,a[data-service]) { padding-inline: 6px; gap: 5px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero *, .hero *::before, .hero *::after { animation: none!important; transition: none!important; }
}

/* The slider index repeats the header's fine rules, red diamond and square arrows. */
.hero .hero-controls { position: absolute; display: grid; grid-template-columns: 1fr 36px 36px; grid-template-rows: 36px auto; justify-content: start; align-content: start; align-items: center; gap: 20px 8px; left: auto; right: 37px; top: calc(var(--header-height) + 342px); bottom: auto; width: 326px; height: auto; padding: 19px 21px 22px; border: 0; border-radius: 0; background: linear-gradient(110deg,#fffffff2,#ffffffc9); box-shadow: none; }
.hero .hero-controls::before, .hero .hero-controls::after { content: ''; position: absolute; width: 24px; height: 1px; background: #c40013; pointer-events: none; }
.hero .hero-controls::before { top: 0; left: 0; }
.hero .hero-controls::after { bottom: 0; right: 0; }
.hero .hero-rail-label { position: static; grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 9px; margin: 0; color: #526a72; font-size: 8px; font-weight: 500; letter-spacing: 1.7px; white-space: nowrap; }
.hero .hero-rail-label::before { content: ''; width: 20px; height: 1px; background: #c40013; }
.hero .hero-controls .slide-numbers { position: relative; grid-column: 1/-1; grid-row: 2; display: flex; flex-direction: row; width: 100%; height: auto; margin: 0; gap: 17px; }
.hero .hero-controls .slide-numbers button { position: relative; flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 9px; width: auto; min-width: 0; min-height: 75px; padding: 0 0 16px; border: 0; border-bottom: 1px solid #2c48551c; border-radius: 0; background: none; box-shadow: none; color: #29434b; text-align: left; transform: none; filter: none; transition: color .2s; }
.hero .hero-controls .slide-numbers button span { display: block; width: auto; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: #7b8f94; -webkit-text-stroke: 0; font-size: 29px; font-weight: 400; line-height: 1; letter-spacing: -.8px; font-variant-numeric: tabular-nums; }
.hero .hero-controls .slide-numbers button strong { font-size: 12px; font-weight: 500; line-height: 1.3; }
.hero .hero-controls .slide-numbers button[aria-current=true], .hero .hero-controls .slide-numbers button[aria-current=true] span { color: #b90012; background: none; transform: none; filter: none; }
.hero .hero-controls .slide-numbers button[aria-current=true] strong { font-weight: 600; }
.hero .hero-controls .slide-numbers button:hover { color: #b90012; background: #ffffff4a; }
.hero .hero-controls .slide-numbers button::before { content: ''; position: absolute; right: 0; bottom: -3px; width: 5px; height: 5px; background: #c40013; opacity: 0; transform: rotate(45deg); }
.hero .hero-controls .slide-numbers button::after { content: ''; position: absolute; inset: auto 0 -1px; width: auto; height: 2px; background: #c40013; transform: scaleX(0); transform-origin: left; }
.hero .hero-controls .slide-numbers button[aria-current=true]::before { opacity: 1; }
.hero .hero-controls .slide-numbers button[aria-current=true]::after { transform: scaleX(1); }
.hero .hero-controls .slide-numbers.selector-ready button::before, .hero .hero-controls .slide-numbers.selector-ready button::after { display: none; }
.hero-selection-line { display: none; position: absolute; pointer-events: none; top: 0; left: 0; width: 0; height: 2px; background: #c40013; }
.selector-ready .hero-selection-line { display: block; }
.hero-selection-line::after { content: ''; position: absolute; top: -1.5px; right: 0; width: 5px; height: 5px; background: #c40013; transform: rotate(45deg); }
.hero .hero-controls .circle-button { grid-row: 1; grid-column: 2; width: 36px; height: 36px; padding: 9px; border: 1px solid #2c485530!important; border-radius: 0; background: transparent; color: #20343a; box-shadow: none; }
.hero .hero-controls .circle-button:hover { background: #fff; border-color: #b9001255!important; }
.hero .hero-controls .next-slide { grid-column: 3; color: #fff; background: #c40013; border-color: #c40013!important; }
.hero .hero-controls .next-slide:hover { background: #a4000a; }
@media(min-width:1700px) {
  .hero .hero-controls { right: max(44px,calc((100% - 1730px)/2)); }
}
@media(min-width:761px) and (max-width:1120px) {
  .hero .hero-controls { width: 240px; padding: 15px 16px; right: 14px; top: calc(var(--header-height) + 342px); gap: 16px 7px; grid-template-columns: 1fr 32px 32px; grid-template-rows: 32px auto; }
  .hero .hero-controls .slide-numbers { gap: 12px; }
  .hero .hero-controls .slide-numbers button { min-height: 65px; gap: 8px; }
  .hero .hero-controls .slide-numbers button span { font-size: 24px; }
  .hero .hero-controls .slide-numbers button strong { font-size: 11px; }
  .hero .hero-rail-label { font-size: 7px; gap: 6px; letter-spacing: 1px; }
  .hero .hero-rail-label::before { width: 14px; }
  .hero .hero-controls .circle-button { width: 32px; height: 32px; padding: 8px; }
}
@media(max-width:760px) {
  .hero .hero-controls { display: flex; align-items: center; justify-content: center; left: 5%; right: 5%; top: auto; bottom: 115px; width: auto; height: 73px; padding: 0; gap: 9px; background: none; }
  .hero .hero-controls::before, .hero .hero-controls::after { display: none; }
  .hero .hero-rail-label { display: none; }
  .hero .hero-controls .slide-numbers { flex: 1; min-width: 0; flex-direction: row; gap: 10px; margin: 0 5px 0 0; }
  .hero .hero-controls .slide-numbers button { flex: 1; min-width: 0; min-height: 58px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px; padding: 8px 0 12px; }
  .hero .hero-controls .slide-numbers button span { width: auto; font-size: 20px; }
  .hero .hero-controls .slide-numbers button strong { font-size: 11px; }
  .hero .hero-controls .circle-button { width: 36px; height: 40px; padding: 9px; flex-shrink: 0; }
}
@media(max-width:360px) {
  .hero .hero-controls { gap: 6px; }
  .hero .hero-controls .slide-numbers { gap: 8px; }
  .hero .hero-controls .circle-button { width: 32px; height: 38px; padding: 8px; }
}

/* Continue the light header surface; service cards bridge into the dark base. */
.hero + .services-section { overflow: hidden; padding-top: var(--section-space); }
.hero + .services-section::after { display: none; }
.hero + .services-section > .container { position: relative; z-index: 1; }
.hero + .services-section .section-heading { position: relative; isolation: isolate; z-index: 0; }
.hero + .services-section .section-heading::before { content: ''; position: absolute; z-index: -1; top: calc(-1 * var(--section-space) - 1px); bottom: -98px; left: -100vw; right: -100vw; background: #f6f8f5; pointer-events: none; }
.hero + .services-section .section-heading::after { content: ''; position: absolute; top: -24px; left: 0; right: 0; height: 1px; background: linear-gradient(90deg,#c40013 0 28px,#2c48551a 28px calc(100% - 28px),#c40013 calc(100% - 28px)); pointer-events: none; }
.hero + .services-section .section-heading h2 { color: var(--text); }
.hero + .services-section .section-heading > p { color: var(--text-muted); }
.hero + .services-section .section-kicker { color: #b90012; border-color: #c400131c; background: #ffffff73; }
.hero + .services-section .section-kicker .signature-mark { color: #c40013; }
.hero + .services-section .services-grid { position: relative; z-index: 1; }
