:root {
  --balance-paper: #f3ecdf;
  --balance-paper-deep: #e7dcc9;
  --balance-surface: #fffaf1;
  --balance-ink: #29241d;
  --balance-muted: #6b6257;
  --balance-line: rgba(91, 70, 42, .18);
  --balance-gold: #ad7a25;
  --balance-teal: #177f78;
}

html { color-scheme: light; }

body {
  background: var(--balance-paper);
  color: var(--balance-ink);
}

/* The navigation remains the dark brand anchor; content below it is intentionally lighter. */
.site-header,
.site-header.is-scrolled,
.site-header.header-solid,
body.page-home .site-header {
  background: rgba(13, 12, 10, .96);
  color: #f5ead5;
  border-color: rgba(224, 185, 111, .22);
}

.mobile-menu {
  background: #171512;
  color: #f5ead5;
}

.site-footer,
.brand-footer-v3 {
  background: #15130f;
  color: #f2e8d6;
  border-top-color: rgba(224, 185, 111, .24);
}

/* Full-screen home: brighter footage with a restrained scrim only where copy sits. */
.hero-brand-v3 .hero-media {
  filter: brightness(1.04) saturate(1.02) contrast(1.01);
}

.hero-brand-v3::after {
  background:
    linear-gradient(90deg, rgba(10, 9, 7, .68) 0%, rgba(10, 9, 7, .56) 35%, rgba(10, 9, 7, .28) 62%, rgba(10, 9, 7, .08) 100%),
    linear-gradient(0deg, rgba(10, 9, 7, .34), transparent 48%);
}

.hero-brand-v3 .hero-lead,
.hero-brand-v3 .hero-note { color: #fff8ea; }

/* Warm daylight surfaces after the first screen. */
.brand-story {
  background:
    radial-gradient(circle at 10% 20%, rgba(193, 147, 67, .13), transparent 34%),
    var(--balance-paper);
}

.brand-story-copy h2,
.final-cta h2,
.final-price strong {
  color: #65481f;
}

.brand-story-copy p:not(.eyebrow),
.final-cta p:not(.eyebrow) { color: var(--balance-muted); }

.brand-story-photo img,
.experience-grid img { filter: saturate(.98) brightness(1.03); }

.experience-section,
.section-light,
.final-cta {
  background: var(--balance-paper-deep);
  color: var(--balance-ink);
}

.experience-section .section-heading h2,
.experience-section .section-heading p,
.final-cta .eyebrow { color: var(--balance-ink); }

.final-cta { border-top-color: var(--balance-line); }

/* Reviews become a calm reading block instead of a black wall. */
.review-showcase {
  background:
    radial-gradient(circle at 88% 12%, rgba(35, 154, 145, .12), transparent 34%),
    var(--balance-surface);
  border-color: var(--balance-line);
  color: var(--balance-ink);
}

.review-slide blockquote,
.reviews-ledger blockquote { color: var(--balance-ink); }
.review-slide cite,
.review-counter { color: var(--balance-muted); }
.review-controls button { border-color: rgba(173, 122, 37, .46); color: var(--balance-gold); }
.review-video-stage { background: #d8cdbd; box-shadow: 0 24px 60px rgba(69, 50, 27, .14); }

/* All inner-page heroes use recent festival media, cream light and dark type. */
.page-hero {
  min-height: min(700px, 78dvh);
  background: var(--balance-paper-deep);
  color: var(--balance-ink);
}

.page-hero-media {
  filter: saturate(.96) brightness(1.07) contrast(.96);
  object-position: center 38%;
}

.page-hero::after {
  background:
    linear-gradient(90deg, rgba(243, 236, 223, .99) 0%, rgba(243, 236, 223, .94) 34%, rgba(243, 236, 223, .64) 54%, rgba(243, 236, 223, .12) 82%),
    linear-gradient(0deg, rgba(243, 236, 223, .42), transparent 56%);
}

.page-hero-content { color: var(--balance-ink); }
.page-hero h1 { color: #4f391c; text-shadow: none; }
.page-hero p { color: #4d463e; text-shadow: none; }
.page-hero .eyebrow { color: var(--balance-teal); }

body:not([data-page="home"]) main,
.page-intro,
.section,
.section-compact,
.events-section,
.editorial-copy {
  background: var(--balance-paper);
  color: var(--balance-ink);
}

.page-intro { border-color: var(--balance-line); }
.page-intro h2,
.section-heading h2,
.section h2,
.section h3,
.events-heading h2 { color: var(--balance-ink); }
.page-intro p,
.section-heading p { color: var(--balance-muted); }
.eyebrow { color: var(--balance-teal); }

/* Program. */
.tabs { border-color: var(--balance-line); }
.tab-button { color: var(--balance-muted); }
.tab-button[aria-selected="true"] {
  border-color: var(--balance-gold);
  background: var(--balance-gold);
  color: #fffaf1;
}
.schedule-list { border-color: var(--balance-line); }
.schedule-item { border-color: var(--balance-line); }
.schedule-item:hover { background: rgba(255, 250, 241, .72); }
.schedule-time { color: var(--balance-teal); }
.schedule-title strong { color: var(--balance-ink); }
.schedule-title span,
.schedule-place { color: var(--balance-muted); }
.notice {
  border: 1px solid rgba(173, 122, 37, .22);
  background: #eadfcf;
  color: #6c542e;
}

/* Masters and readable detail pages. */
.master-profile,
.event-card,
.ticket-card,
.detail-profile-media,
.detail-program-list a,
.detail-more {
  border-color: var(--balance-line);
  background: var(--balance-surface);
  color: var(--balance-ink);
  box-shadow: 0 18px 48px rgba(72, 51, 28, .10);
}
.master-profile { container-type: inline-size; }
.master-profile::after {
  position: absolute;
  z-index: 4;
  top: calc(125cqw - 21cqw);
  left: 4cqw;
  width: 16.667cqw;
  aspect-ratio: 1;
  background: url("assets/brand/sila-solnca-icon-compact-v2.svg") center / contain no-repeat;
  filter: drop-shadow(0 2px 8px rgba(31, 24, 15, .32));
  content: "";
  pointer-events: none;
}
.detail-watermark { width: 16.667%; }
.master-profile:hover,
.event-card:hover { box-shadow: 0 25px 60px rgba(72, 51, 28, .15); }
.master-profile-copy strong,
.master-profile h2,
.event-card h3,
.ticket-card h2 { color: var(--balance-ink); }
.master-profile-copy > span,
.master-profile p,
.event-card p,
.ticket-card p { color: var(--balance-muted); }
.master-profile small,
.master-profile-copy em,
.event-date,
.detail-program-list small { color: var(--balance-teal); }
.master-profile-media,
.master-profile > img { background: #e2d7c7; }

.detail-section { background: var(--balance-paper); }
.detail-section::before { background: radial-gradient(circle, rgba(35, 154, 145, .09), transparent 67%); }
.detail-profile-copy h2,
.detail-prose .detail-lead,
.detail-prose h3,
.detail-program > h3,
.detail-program-list strong { color: var(--balance-ink); }
.detail-prose p,
.detail-prose li,
.detail-program-list span { color: var(--balance-muted); }
.detail-more summary { color: var(--balance-teal); }
.detail-more summary:hover,
.detail-program-list a:hover { background: #fff; color: var(--balance-ink); }

/* Gallery: light exhibition wall, images retain their natural colour. */
body[data-page="gallery"] .section { background: #eee5d8; }
.gallery-masonry .gallery-frame,
.gallery-masonry figure {
  background: #d8cdbd;
  border-color: rgba(91, 70, 42, .16);
  box-shadow: 0 12px 32px rgba(67, 47, 25, .10);
}
.gallery-masonry img,
.gallery-masonry figure:hover img { filter: none; }
.gallery-anchor-heading,
.video-section { background: var(--balance-paper); color: var(--balance-ink); }
.video-card { color: var(--balance-ink); }
.video-card > span:last-child { color: var(--balance-muted); }

/* Information and FAQ. */
.info-grid { border-color: var(--balance-line); }
.info-block {
  border-color: var(--balance-line);
  background: rgba(255, 250, 241, .72);
}
.info-block:hover { background: var(--balance-surface); }
.info-block .icon { color: var(--balance-teal); }
.info-block h2 { color: var(--balance-ink); }
.info-block p { color: var(--balance-muted); }
.faq-item { border-color: var(--balance-line); }
.faq-question { color: var(--balance-ink); }
.faq-answer { color: var(--balance-muted); }

/* About, joining and ticket surfaces. */
.editorial-hero {
  background: var(--balance-paper-deep);
  color: var(--balance-ink);
}
.editorial-hero > img { filter: saturate(.95) brightness(1.08) contrast(.96); }
.editorial-hero::after {
  background: linear-gradient(90deg, rgba(243,236,223,.98), rgba(243,236,223,.78) 52%, rgba(243,236,223,.12));
}
.editorial-hero h1 { color: #4f391c; }
.editorial-prose p,
.editorial-prose p:first-child { color: var(--balance-ink); }
.editorial-copy h2 { color: #765525; }
.join-paths { border-color: var(--balance-line); }
.join-path {
  border-color: var(--balance-line);
  background: rgba(255,250,241,.55);
}
.join-path:hover { background: var(--balance-surface); }
.join-path h2 { color: #66481e; }
.join-path p { color: var(--balance-muted); }
.ticket-card.featured {
  border-color: rgba(23,127,120,.38);
  background: #deeee9;
}
.featured .ticket-card-label { color: var(--balance-teal); }
.ticket-banner {
  border-color: rgba(91,70,42,.18);
  background:
    radial-gradient(circle at 85% 0, rgba(35,154,145,.13), transparent 40%),
    var(--balance-surface);
  color: var(--balance-ink);
  box-shadow: 0 22px 55px rgba(72,51,28,.11);
}
.ticket-banner h2,
.ticket-price strong { color: var(--balance-ink); }
.ticket-price span { color: var(--balance-muted); }
.button.button-light,
.button-light { border-color: var(--balance-teal); background: var(--balance-teal); color: #fff; }
.button.button-light:hover,
.button-light:hover { border-color: #12665f; background: #12665f; color: #fff; }

/* Public reviews list. */
.reviews-ledger { border-color: var(--balance-line); }
.reviews-ledger article { border-color: var(--balance-line); }
.reviews-ledger cite { color: var(--balance-teal); }

@media (max-width: 820px) {
  .hero-brand-v3 .hero-media { filter: brightness(.98) saturate(1.02); }
  .hero-brand-v3::after {
    background: linear-gradient(0deg, rgba(10,9,7,.90) 0%, rgba(10,9,7,.62) 48%, rgba(10,9,7,.12) 100%);
  }
  .page-hero::after {
    background: linear-gradient(0deg, rgba(243,236,223,.99) 0%, rgba(243,236,223,.94) 44%, rgba(243,236,223,.52) 72%, rgba(243,236,223,.10) 100%);
  }
  .editorial-hero::after {
    background: linear-gradient(0deg, rgba(243,236,223,.99), rgba(243,236,223,.86) 56%, rgba(243,236,223,.12));
  }
  .page-hero { min-height: 670px; }
  .page-hero-content { padding-bottom: 54px; }
}

@media (max-width: 560px) {
  .page-hero { min-height: 610px; }
  .page-hero h1 { font-size: clamp(48px, 15vw, 72px); }
  .review-slide blockquote { font-size: 29px; }
  .info-block { background: var(--balance-surface); }
}

@media (prefers-reduced-motion: reduce) {
  .master-profile,
  .event-card { transition: none; }
}
