.site-header { position: sticky; }
.site-header::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--gold); content: ""; transform: scaleX(var(--scroll-progress, 0)); transform-origin: left center; transition: transform .08s linear; }
.site-header.is-scrolled { box-shadow: 0 5px 16px rgba(29,43,43,.08); }
.brand-mark { width: 2.7rem; height: 2.7rem; border: 0; border-radius: 0; font-size: 0; transition: transform .3s ease; }
.brand:hover .brand-mark { transform: rotate(-5deg) translateY(-1px); }
.brand-footer .brand-mark { border: 0; }
.site-header .contact-dot { animation: status-breathe 3s ease-in-out infinite; }
.primary-nav a { transition: color .22s ease; }
.site-header .primary-nav a:hover,
.site-header .primary-nav a:focus-visible { color: #f0cf82; }
.button, .service-chip, .feature-card, .about-service-card, .contact-card, .footer-links a, .footer-phone { transition-timing-function: cubic-bezier(.2,.7,.25,1); }
.service-chip > b, .text-link span, .underlined-link span, .map-link span { transition: transform .24s ease; }
.service-chip:hover > b { transform: translate(3px,-2px); }
.image-slot { isolation: isolate; }
.image-slot img { will-change: transform; }
.image-slot figcaption { transition: transform .28s ease, opacity .28s ease; }
.image-slot:hover figcaption { opacity: .9; transform: translateY(-2px); }
.feature-card, .about-service-card, .contact-card { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
.feature-card:hover, .about-service-card:hover, .contact-card:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(29,43,43,.08); }
.feature-card > span { display: inline-block; transition: color .25s ease, transform .25s ease; }
.feature-card:hover > span { color: var(--green); transform: translateX(3px); }
.location-list li { position: relative; transition: padding-left .22s ease, background-color .22s ease; }
.location-list li:hover { padding-left: .5rem; background: #f8f7f1; }
.steps-list li > span { transition: color .22s ease, transform .22s ease; }
.steps-list li:hover > span { color: var(--green); transform: rotate(-7deg); }
.footer-links a { position: relative; transition: color .2s ease, transform .2s ease; }
.footer-links a:hover { transform: translateY(-2px); }
.footer-phone { transition: color .2s ease, transform .2s ease; }
.footer-phone:hover { color: #e6c58e; transform: translateY(-2px); }
.motion-ready [data-motion]:not(.is-motion-visible) { opacity: 0; transition-delay: 0ms; }
.motion-ready [data-motion="seal"]:not(.is-motion-visible) { transform: rotate(-9deg) scale(.9); }
.motion-ready [data-motion="wordmark"]:not(.is-motion-visible) { transform: translateY(7px); }
.motion-ready [data-motion="kicker"]:not(.is-motion-visible) { transform: translateY(8px); }
.motion-ready [data-motion="headline"]:not(.is-motion-visible) { transform: translateY(18px); }
.motion-ready [data-motion="copy"]:not(.is-motion-visible) { transform: translateY(12px); }
.motion-ready [data-motion="action"]:not(.is-motion-visible) { transform: translateY(10px); }
.motion-ready [data-motion="hero-photo"]:not(.is-motion-visible) { transform: translateY(10px); }
.motion-ready [data-motion="caption"]:not(.is-motion-visible) { transform: translateY(8px); }
.motion-ready [data-motion="rule"]:not(.is-motion-visible) { transform: scaleX(0); transform-origin: left; }
.motion-ready [data-motion="service"]:not(.is-motion-visible) { transform: translateY(12px); }
.motion-ready [data-motion="number"]:not(.is-motion-visible) { transform: translateX(-5px); }
.motion-ready [data-motion="arrow"]:not(.is-motion-visible) { transform: translateX(-4px); }
.motion-ready [data-motion="section-title"]:not(.is-motion-visible) { transform: translateY(14px); }
.motion-ready [data-motion="editorial-photo"]:not(.is-motion-visible) { transform: translateY(12px); }
.motion-ready [data-motion="photo-caption"]:not(.is-motion-visible) { transform: translateY(6px); }
.motion-ready [data-motion="destination"]:not(.is-motion-visible) { transform: translateY(10px) rotate(-1deg); }
.motion-ready [data-motion="about-card"]:not(.is-motion-visible) { transform: translateY(14px); }
.motion-ready [data-motion="feature"]:not(.is-motion-visible) { transform: translateY(13px); }
.motion-ready [data-motion="feature-number"]:not(.is-motion-visible) { transform: translateX(-4px); }
.motion-ready [data-motion="step"]:not(.is-motion-visible) { transform: translateX(-10px); }
.motion-ready [data-motion="step-number"]:not(.is-motion-visible) { transform: rotate(-8deg) scale(.94); }
.motion-ready [data-motion="location"]:not(.is-motion-visible) { transform: translateX(-9px); }
.motion-ready [data-motion="contact"]:not(.is-motion-visible) { transform: translateY(12px); }
.motion-ready [data-motion="button"]:not(.is-motion-visible) { transform: translateY(7px); }
.motion-ready [data-motion="link-arrow"]:not(.is-motion-visible) { transform: translateX(-3px); }
.motion-ready [data-motion="map"]:not(.is-motion-visible) { transform: translateY(5px); }
.motion-ready [data-motion="footer-link"]:not(.is-motion-visible) { transform: translateY(5px); }
.motion-ready [data-motion="footer-contact"]:not(.is-motion-visible) { transform: translateY(5px); }
.motion-ready [data-motion="nav"]:not(.is-motion-visible) { transform: translateY(-4px); }
.motion-ready [data-motion="menu-link"]:not(.is-motion-visible) { transform: translateX(-7px); }
.motion-ready [data-motion="status"]:not(.is-motion-visible) { transform: scale(.75); }
.motion-ready [data-motion] { transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.25,1); transition-delay: calc(var(--motion-order, 0) * 55ms); }
.motion-ready [data-motion].is-motion-visible { opacity: 1; transform: none; }
.motion-ready .home-page .hero-image img,
.home-page.motion-ready .hero-image img { transition: opacity .5s ease, transform 1.1s cubic-bezier(.2,.7,.25,1); }
.home-page.motion-ready .hero-image.has-image img { transform: scale(1.015); }
.home-page.motion-ready .hero-image.has-image.is-motion-visible img { transform: scale(1); }
.home-page .home-hero .hero-copy > * { transition-delay: calc(var(--motion-order, 0) * 75ms); }
.home-page.motion-ready .home-hero .hero-copy > *:nth-child(1) { --motion-order: 0; }
.home-page.motion-ready .home-hero .hero-copy > *:nth-child(2) { --motion-order: 1; }
.home-page.motion-ready .home-hero .hero-copy > *:nth-child(3) { --motion-order: 2; }
.home-page.motion-ready .home-hero .hero-copy > *:nth-child(4) { --motion-order: 3; }
.home-page.motion-ready .home-hero .hero-copy > *:nth-child(5) { --motion-order: 4; }
.home-page.motion-ready .service-strip .service-chip { --motion-order: 0; }
.home-page.motion-ready .service-strip .service-chip:nth-child(2) { --motion-order: 1; }
.home-page.motion-ready .service-strip .service-chip:nth-child(3) { --motion-order: 2; }
.home-page.motion-ready .service-strip .service-chip:nth-child(4) { --motion-order: 3; }
.home-page.motion-ready .destination-thumb:nth-child(2) { transition-delay: 70ms; }
.home-page.motion-ready .destination-thumb:nth-child(3) { transition-delay: 140ms; }
.site-header.is-menu-open .primary-nav a { transition: opacity .25s ease, transform .25s ease; }
.site-header.is-menu-open .primary-nav a:nth-child(2) { transition-delay: 35ms; }
.site-header.is-menu-open .primary-nav a:nth-child(3) { transition-delay: 70ms; }
.site-header.is-menu-open .primary-nav a:nth-child(4) { transition-delay: 105ms; }
.site-header.is-menu-open .primary-nav a:nth-child(5) { transition-delay: 140ms; }
.site-header.is-menu-open .primary-nav a:nth-child(6) { transition-delay: 175ms; }
.button:active { transition-duration: .08s; }
.button:focus-visible { outline-offset: 4px; }
.map-link:hover span { transform: translate(3px,-2px); }

@keyframes status-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.16); background: #79a27f; }
}

@media (max-width: 760px) {
  .brand-mark { width: 2.45rem; height: 2.45rem; }
  .site-header.is-menu-open .primary-nav a { opacity: 0; transform: translateX(-7px); }
  .site-header.is-menu-open .primary-nav.is-open a { opacity: 1; transform: none; }
}

@media (max-width: 420px) {
  .site-header .header-contact { font-size: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header::after { transition: none; }
  .site-header .contact-dot { animation: none; }
  .feature-card:hover, .about-service-card:hover, .contact-card:hover,
  .footer-links a:hover, .footer-phone:hover, .location-list li:hover { transform: none; }
  .motion-ready [data-motion] { opacity: 1 !important; transform: none !important; transition: none !important; }
}
