/* Homepage-only progressive enhancement. Blogs and no-JS keep their own theme. */
html.scroll-theme body { background: var(--bg); }
/* A broad, feathered ribbon travels through the shared color field at each
   section arrival. Its low opacity keeps the reading surface quiet. */
html.scroll-theme body::before {
  content: "";
  position: fixed;
  inset: -50%;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(118deg, transparent 32%,
    rgb(var(--theme-ribbon-rgb) / 0.055) 46%,
    rgb(var(--theme-ribbon-rgb) / 0.025) 54%, transparent 68%);
  transform: translate3d(0, var(--theme-drift), 0);
  opacity: var(--theme-wave, 0);
  will-change: transform, opacity;
}
html.scroll-theme .theme-dark {
  --bg: inherit; --surface: inherit; --ink: inherit; --ink-soft: inherit;
  --muted: inherit; --silver: inherit; --silver-deep: inherit;
  --line: inherit; --line-strong: inherit; --panel: inherit;
  --panel-glass: inherit; --crystal-edge: inherit; --crystal-ray: inherit;
}
html.scroll-theme main > section,
html.scroll-theme .footer { background: transparent; color: var(--ink); }
html.scroll-theme .manifesto::before { opacity: 0.3; }
html.scroll-theme .manifesto__hint { color: var(--ink-soft); }

/* The same color wash reaches imagery, so photographs never create hard seams. */
html.scroll-theme .hero__overlay {
  background: linear-gradient(0deg, var(--bg), transparent 28%),
    linear-gradient(105deg, rgb(var(--theme-rgb) / 0.97) 0%, rgb(var(--theme-rgb) / 0.9) 48%, rgb(var(--theme-rgb) / 0.42) 100%);
}
html.scroll-theme .hero__scrim { background: var(--bg); }
html.scroll-theme .hero__content { --ink-soft: var(--ink); --silver-deep: var(--ink); }
html.scroll-theme .featured__overlay {
  background: linear-gradient(0deg, var(--bg), transparent 22%, transparent 78%, var(--bg)),
    linear-gradient(100deg, rgb(var(--theme-rgb) / 0.97) 25%, rgb(var(--theme-rgb) / 0.7));
}
html.scroll-theme .contact__band {
  background-image: linear-gradient(rgb(var(--theme-rgb) / 0.94), rgb(var(--theme-rgb) / 0.98)), url("../img/prop-e-2.jpg");
}

/* Preserve text clipping while the metallic highlight follows the palette. */
html.scroll-theme :is(.silver-text, .gold-text) {
  background-image: linear-gradient(115deg, var(--ink) 0%, var(--silver-deep) 38%, var(--ink) 50%, var(--silver-deep) 62%, var(--ink) 100%);
  background-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
}
html.scroll-theme :is(.btn--solid, .btn--form) {
  background: var(--ink); color: var(--theme-inverse);
}
html.scroll-theme .btn--outline { color: var(--ink); border-color: var(--line-strong); }
html.scroll-theme :is(.btn--solid, .btn--form, .btn--outline):hover {
  background: var(--ink); color: var(--theme-inverse); border-color: var(--ink);
}
html.scroll-theme .btn { transition-property: transform, border-color; }
html.scroll-theme :is(.catalog-filter.is-active, .reviews__nav:hover:not(:disabled)) {
  background: var(--ink); color: var(--theme-inverse);
}
html.scroll-theme :focus-visible { outline-color: var(--ink); }

html.scroll-theme #siteHeader,
html.scroll-theme #siteHeader.is-scrolled,
html.scroll-theme #mobileMenu {
  background: rgb(var(--theme-rgb) / 0.96);
  color: var(--ink); border-color: var(--line);
  transition-property: box-shadow;
}
html.scroll-theme #siteHeader .header__nav a,
html.scroll-theme #siteHeader .lang-pill,
html.scroll-theme #mobileMenu :is(nav a, .mobile-menu__contacts > a, .mobile-menu__social a) { color: var(--ink-soft); }
html.scroll-theme #siteHeader .header__nav a[aria-current="true"],
html.scroll-theme #siteHeader .lang-pill .is-active { color: var(--ink); }
html.scroll-theme #siteHeader .lang-pill { border-color: var(--line-strong); }
html.scroll-theme #siteHeader .lang-pill__sep { color: var(--muted); }
html.scroll-theme #siteHeader .header__nav a::before,
html.scroll-theme #siteHeader .hamburger span { background: var(--ink); }
html.scroll-theme #siteHeader :is(.logo__label, .header__symbol img) { filter: brightness(0) invert(var(--theme-logo)); transition: height 0.4s; }
html.scroll-theme #mobileMenu .mobile-menu__lang button { color: var(--ink); border-color: var(--line); }
html.scroll-theme #mobileMenu .mobile-menu__lang button.is-active { background: var(--ink); color: var(--theme-inverse); }
html.scroll-theme #mobileMenu { transition-property: transform; }
/* Palette changes must reach foreground and background in the same frame. */
html.scroll-theme :is(.header__nav a, #mobileMenu nav a, .reviews-toggle,
  .footer__nav a, .contact__social a, .catalog-filter, .carousel__nav, .reviews__nav) {
  transition-property: transform, opacity, border-color;
}

html.scroll-theme .footer :is(.logo, .footer__nav a) { color: var(--ink); }
html.scroll-theme .footer :is(.footer__tagline, .footer__bottom, .footer__privacy) { color: var(--muted); border-color: var(--line); }

/* Deliberate dark accent cards keep their own legible foregrounds. */
html.scroll-theme :is(.services__card--lead, .concierge__col--dark) {
  --silver-deep: #c7d4d3; --ink: #f4f8f7; --ink-soft: #c7d4d3;
}
html.scroll-theme .contact__panel { background: var(--surface); border: 1px solid var(--line); }
html.scroll-theme #leadForm :is(input[type="text"], input[type="email"], input[type="tel"], textarea) {
  background: var(--bg); color: var(--ink); border: 1px solid var(--line-strong);
}
html.scroll-theme #leadForm ::placeholder { color: var(--muted); opacity: 1; }
html.scroll-theme .form__consent { color: var(--ink-soft); }
html.scroll-theme .form__consent input { accent-color: var(--ink); }
html.scroll-theme .prop-modal__close { background: var(--surface); color: var(--ink); }
html.scroll-theme .prop-modal__close:hover { background: var(--ink); color: var(--theme-inverse); }
html.scroll-theme .reviews-meta { color: var(--muted); }
html.scroll-theme .reviews-bubble::before {
  background: linear-gradient(135deg, var(--bg) 46%, transparent 47%),
    linear-gradient(315deg, var(--line) 46%, transparent 47%);
}
html.scroll-theme .carousel__nav { background: var(--surface); color: var(--ink); }
html.scroll-theme .carousel__nav:hover,
html.scroll-theme #toast { background: var(--ink); color: var(--theme-inverse); }
html.scroll-theme #toast:not(.is-visible) { visibility: hidden; }

@media (max-width: 700px) {
  html.scroll-theme .hero__overlay {
    background: linear-gradient(0deg, var(--bg), transparent 30%),
      linear-gradient(105deg, rgb(var(--theme-rgb) / 0.96), rgb(var(--theme-rgb) / 0.88));
  }
}

/* Reduced motion: fixed chapter colors, no interpolated full-screen color field. */
html.scroll-theme-reduced main > section,
html.scroll-theme-reduced .footer { background: var(--bg); }
html.scroll-theme-reduced body::before { display: none; }
@media (prefers-reduced-motion: reduce) {
  html.scroll-theme *, html.scroll-theme *::before, html.scroll-theme *::after {
    animation: none !important;
    transition: none !important;
  }
}
