/* Theme Builder (Theme2) — public enhancements */

.theme2-active.site-body {
  background: var(--site-background, #f8f6f2);
}

.theme2-active .content-section {
  padding-top: var(--site-section-spacing, 88px);
  padding-bottom: var(--site-section-spacing, 88px);
}

.theme2-active .content-narrow,
.theme2-active .intro-site-section {
  max-width: var(--site-container-max, 1240px);
  margin-left: auto;
  margin-right: auto;
}

.theme2-active .site-hero::before {
  background: var(--site-hero-overlay, linear-gradient(105deg, rgba(10, 18, 24, 0.55), transparent));
}

/* Slider slides are separate background layers, so animating them does not
   affect the fixed header's positioning. */
.theme2-active.hero-ken-burns .site-hero-slide.active {
  animation: theme2-ken-burns 18s ease-in-out infinite alternate;
}

/* Static hero: animate a dedicated background pseudo-layer instead of the
   .site-hero element itself. Transforming .site-hero would make it the
   containing block for the position:fixed header and stop it sticking on scroll. */
.theme2-active.hero-ken-burns .site-hero[style*="hero-desktop-image"]::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--hero-desktop-image);
  background-size: cover;
  background-position: center;
  animation: theme2-ken-burns 18s ease-in-out infinite alternate;
  will-change: transform;
  pointer-events: none;
}

@media (max-width: 640px) {
  .theme2-active.hero-ken-burns .site-hero[style*="hero-desktop-image"]::after {
    display: none;
  }
}

@keyframes theme2-ken-burns {
  from { transform: scale(1); }
  to { transform: scale(1.06); }
}

.theme2-active.header-style-solid .site-header:not(.is-scrolled) {
  background: color-mix(in srgb, var(--theme-primary), transparent 8%);
  border-bottom-color: rgba(255, 255, 255, 0.18);
}

.theme2-active.header-style-glass .site-header:not(.is-scrolled),
.theme2-active.header-style-transparent .site-header:not(.is-scrolled) {
  background: rgba(0, 0, 0, var(--header-base-opacity, 0));
}

/* Sticky header — scrolled state: shrink height 20%, dark background, white menu text.
   Placed after the header-style rules so it wins on equal specificity. */
.theme2-active .site-header {
  transition: height 240ms ease, background 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
}

.theme2-active .site-header.is-scrolled {
  height: calc(var(--site-header-height, 12vh) * 0.8);
  background: var(--site-header-scrolled-bg, #ffffff);
  backdrop-filter: none;
  border-bottom-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

.theme2-active .site-header.is-scrolled .site-logo {
  color: #111111;
}

/* On scroll everything in the header shrinks to 80% to match the header height. */
.theme2-active .site-header .site-logo,
.theme2-active .site-header .site-menu,
.theme2-active .site-header .site-book {
  transition: transform 240ms ease;
}

@media (min-width: 901px) {
  .theme2-active .site-header.is-scrolled .site-logo {
    transform: scale(0.8);
    transform-origin: left center;
  }

  .theme2-active .site-header.is-scrolled .site-menu {
    transform: scale(0.8);
  }

  .theme2-active .site-header.is-scrolled .site-book {
    transform: scale(0.8);
    transform-origin: right center;
  }
}

/* Alternate logo on scroll */
.theme2-active .site-logo-scrolled {
  display: none;
}

.theme2-active .site-header.has-scroll-logo.is-scrolled .site-logo-default {
  display: none;
}

.theme2-active .site-header.has-scroll-logo.is-scrolled .site-logo-scrolled {
  display: inline-block;
}

.theme2-active .site-book {
  border-radius: var(--site-button-radius, 0);
  background: var(--site-button-bg, var(--theme-accent));
  color: var(--site-button-text, #fff);
  border-color: var(--site-button-bg, var(--theme-accent));
  transition: transform var(--site-transition, 280ms) ease, box-shadow var(--site-transition, 280ms) ease;
}

.theme2-active.btn-style-outline .site-book {
  background: transparent;
  color: var(--site-button-text, #fff);
  border: 1px solid var(--site-button-outline-border, rgba(255, 255, 255, 0.85));
}

.theme2-active.btn-style-ghost .site-book {
  background: transparent;
  border-color: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.theme2-active .site-book:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.theme2-active .hero-copy p {
  color: var(--site-hero-subtitle-color, rgba(255, 255, 255, 0.9));
  font-size: var(--site-hero-subtitle-size, 18px);
}

.theme2-active.hero-align-center .hero-copy {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.theme2-active.hero-align-right .hero-copy {
  margin-left: auto;
  margin-right: 10%;
  text-align: right;
}

.theme2-active .site-footer {
  background: var(--site-footer-bg, #0f1a20);
  color: var(--site-footer-color, rgba(255, 255, 255, 0.82));
}

.theme2-active.footer-layout-centered .footer-cols {
  text-align: center;
  grid-template-columns: 1fr;
  max-width: 720px;
  margin: 0 auto;
}

.theme2-active.footer-layout-minimal .footer-cols {
  display: none;
}

.theme2-active a:not(.site-book):not(.site-logo) {
  color: var(--site-link, var(--theme-primary));
}

.theme2-active a:not(.site-book):not(.site-logo):hover {
  color: var(--site-link-hover, var(--theme-accent));
}

/* Nav link colors — placed after the general link rule so equal-specificity cascade wins */
.theme2-active .site-header .site-menu a {
  color: var(--site-nav-color, #ffffff);
  font-weight: var(--site-nav-weight, 600);
  letter-spacing: var(--site-nav-letter-spacing, 0.1em);
  text-transform: var(--site-nav-transform, uppercase);
  transition: color var(--site-transition, 280ms) ease;
}

.theme2-active .site-header .site-menu a:hover {
  color: var(--site-nav-hover-color, var(--theme-accent));
}

.theme2-active .site-header.is-scrolled .site-menu a {
  color: var(--site-nav-scrolled-color, #111111);
}

.theme2-active .site-header.is-scrolled .site-menu a:hover {
  color: var(--site-nav-hover-color, var(--theme-accent));
}

.theme2-active .builder-card,
.theme2-active .gallery-item img {
  border-radius: var(--site-card-radius, 6px);
  box-shadow: var(--site-card-shadow, none);
  transition: transform var(--site-transition, 280ms) ease, box-shadow var(--site-transition, 280ms) ease;
}

.theme2-active.gallery-hover-zoom .gallery-item:hover img {
  transform: scale(1.04);
}

.theme2-active.gallery-hover-lift .gallery-item:hover img {
  transform: translateY(-4px);
  box-shadow: var(--site-card-shadow, 0 12px 32px rgba(0, 0, 0, 0.12));
}

.theme2-active.reduce-motion *,
.theme2-active.reduce-motion *::before {
  animation: none !important;
  transition: none !important;
}

.theme2-active .button,
.theme2-active button[type="submit"] {
  border-radius: var(--site-button-radius, 0);
}
