/* A calm visual rhythm, with native scrolling and unchanged page copy. */
:root { --palm-ease: cubic-bezier(.22, 1, .36, 1); }
.site-header { border-bottom-color: rgba(159,179,155,.22); transition: background .35s ease, box-shadow .35s ease; }
.site-header.is-scrolled { background: rgba(250,250,245,.88); box-shadow: 0 5px 24px rgba(34,65,44,.045); }
.site-header::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg,#799579,#bba77f); transform: scaleX(var(--reading-progress,0)); transform-origin: left; pointer-events: none; }
.hero { background: radial-gradient(ellipse at 75% 28%,rgba(220,230,210,.36),transparent 60%),#f8f8f3; }
.journey-cards, .city-collage, .gallery-track, .services .service-grid { scroll-snap-type: x proximity; overscroll-behavior-x: contain; }
.journey-card { border-color: rgba(159,179,155,.42); background: linear-gradient(145deg,#fffef9,#f0f4ea); }
.journey-card.featured { background: linear-gradient(140deg,#173f34,#315747); box-shadow: 0 10px 22px rgba(25,62,47,.1); }
.journey-card:nth-child(3) { background: linear-gradient(145deg,#fbfaf4,#f0eadc); }
.services .service-grid > li:nth-child(n) { border-color: rgba(159,179,155,.33); background: linear-gradient(140deg,#f2f6ed,#e9f0e3); box-shadow: 0 3px 12px rgba(34,65,44,.025); }
.services .service-grid > li:nth-child(even) { background: linear-gradient(140deg,#fffef9,#f5f5ee); }
.gallery { background: linear-gradient(155deg,#183f34,#233e32 68%,#374b39); }
.gallery-track { position: relative; }
.gallery-track figure { border: 1px solid rgba(235,244,223,.14); }
.gallery-track figcaption { text-shadow: 0 2px 12px rgba(0,0,0,.3); }
.city-collage figure { overflow: hidden; }
.interactive-image img { will-change: auto; }
.mobile-disclosure-toggle::after { transition: color .2s ease; }
.mobile-disclosure-toggle[aria-expanded='true'] { color: #204e3b; }

@media (prefers-reduced-motion: no-preference) {
  .journey-cards, .city-collage, .gallery-track, .services .service-grid { scroll-behavior: smooth; }
  .city-collage .interactive-image img, .gallery-track .interactive-image img {
    transform: translate3d(calc(var(--image-x,0px) + var(--slide-drift,0px)),calc(var(--image-y,0px) + var(--scroll-drift,0px)),0) scale(1.075) rotate(var(--image-rotate,0deg));
    transition: transform .32s var(--palm-ease), filter .4s ease;
  }
  .gallery-track .interactive-image { transition: opacity .45s ease, transform .55s var(--palm-ease); }
  .gallery-track .interactive-image:not(.in-view) { opacity: .88; transform: scale(.975); }
  .gallery-track .interactive-image.in-view { opacity: 1; transform: scale(1); }
  .site-header nav.open { animation: palm-menu-arrive .26s var(--palm-ease); }
  .lead-dialog[open] { animation: palm-dialog-arrive .26s ease; }
  .lead-dialog[open]::backdrop { animation: palm-dialog-arrive .26s ease; }
  @keyframes palm-menu-arrive { from { opacity: .6; translate: 0 -6px; } to { opacity: 1; translate: 0 0; } }
  @keyframes palm-dialog-arrive { from { opacity: .45; } to { opacity: 1; } }
}

@media (max-width: 680px) {
  :root { --mobile-bar-space: calc(90px + env(safe-area-inset-bottom, 0px)); }
  body { background: linear-gradient(160deg,#edf2e8,#f5f4ec 45%,#eaf0e5); }
  .statement, .coordination, .services, .costs, .needs-section, .city-section, .privacy-section {
    border-color: rgba(180,196,169,.3);
    box-shadow: 0 8px 28px rgba(38,65,42,.035), inset 0 1px rgba(255,255,255,.8);
    background: linear-gradient(145deg,#fffefb,#f8faf4);
  }
  .city-section { background: linear-gradient(145deg,#e8efdf,#f0f2e6); }
  .privacy-section { background: linear-gradient(145deg,#f3f6ed,#fffef7); }
  .statement { margin-top: 8px; }
  .journey-cards { padding-top: 3px; padding-bottom: 14px; }
  .journey-card, .journey-card.featured { border-radius: 20px; }
  .gallery { border-radius: 28px 28px 0 0; }
  .mobile-tabbar {
    inset: auto 10px max(8px, env(safe-area-inset-bottom, 0px));
    min-height: 72px;
    padding: 6px;
    border: 1px solid rgba(218,227,208,.9);
    border-radius: 22px;
    background: rgba(252,253,248,.9);
    backdrop-filter: blur(18px);
    box-shadow: 0 8px 32px rgba(28,57,38,.12), inset 0 1px rgba(255,255,255,.9);
  }
  .mobile-tabbar > a { position: relative; z-index: 1; border-radius: 16px; }
  .mobile-tabbar.has-moving-indicator::before {
    content: ''; position: absolute; left: 0; top: 6px; bottom: 6px;
    width: var(--nav-width,0px); transform: translateX(var(--nav-x,6px));
    border-radius: 16px; background: linear-gradient(145deg,#e4eddb,#edf2e6); pointer-events: none;
  }
  .mobile-tabbar.has-moving-indicator > a.active,
  .mobile-tabbar.has-moving-indicator > a[aria-current='location'] { background: transparent; }
  .mobile-tabbar > a.mobile-private { background: rgba(237,241,231,.8); }
  @media (prefers-reduced-motion: no-preference) {
    .mobile-tabbar::before { transition: transform .46s var(--palm-ease), width .46s var(--palm-ease); }
    .mobile-tabbar > a { transition: color .3s ease, background .3s ease; }
    .mobile-tabbar > a > svg { transition: translate .4s var(--palm-ease), scale .4s var(--palm-ease); }
    .mobile-tabbar > a.active > svg { translate: 0 -1px; scale: 1.08; }
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .mobile-tabbar::before, .mobile-tabbar > a, .mobile-tabbar > a > svg { transition: none; }
  .journey-cards, .city-collage, .gallery-track, .services .service-grid { scroll-behavior: auto; }
  .gallery-track .interactive-image { opacity: 1; }
}
