/* STL Party Helpers: purple, almost-white gray, and a little champagne.
   Nine purple tones remain available; stars retain their original category colors. */
:root[data-palette="purple-nine"] {
  --purple-100: #f6f4fc;
  --purple-200: #e8e2f5;
  --purple-300: #cfc4e8;
  --purple-400: #af9bd6;
  --purple-500: #8a73bc;
  --purple-600: #60509c;
  --purple-700: #272578;
  --purple-800: #211b4c;
  --purple-900: #151128;
  --gallery-paper: #f7f7f8;
  --gallery-mist: #ececef;
  --gallery-white: #fff;
  --gallery-silver: #d8d7df;
  --gallery-stone: #625e70;
  --champagne: #d8c7a5;
  --champagne-ink: #75613d;
  --full: var(--purple-700);
  --secondary: var(--purple-300);
  --paper-day: var(--gallery-paper);
  --paper-night: var(--purple-900);
  --ink-day: var(--purple-800);
  --ink-night: var(--purple-100);
  --gallery-surface: var(--gallery-paper);
  --gallery-recess: var(--gallery-mist);
  --gallery-card: var(--gallery-white);
  --gallery-ink: var(--purple-800);
  --gallery-muted: var(--gallery-stone);
  --gallery-line: var(--gallery-silver);
  --gallery-shadow: 0 16px 44px #211b4c12;
  --accent-fill: var(--purple-700);
  --accent-solid: var(--purple-700);
  --chrome-stripe: var(--champagne);
}
/* Gallery walls stay almost white at every hour; hero and footer provide depth. */
:root[data-palette="purple-nine"][data-phase] {
  --paper: var(--gallery-paper);
  --ink: var(--purple-800);
}
html[data-palette="purple-nine"] body.site-body {
  background: var(--gallery-surface);
  color: var(--gallery-ink);
}

/* A quiet wall behind the pictures. Keep photography in the picture frames. */
.bg-layer { background: var(--purple-900); }
.bg-layer .slide { opacity: 0 !important; }
.wash-layer { background: none !important; }
.hero-fx-stack { display: none; }
main > .section:not(.hero) {
  background: var(--gallery-surface) !important;
  color: var(--gallery-ink);
  border-top: 1px solid var(--gallery-line);
  box-shadow: none;
}
main > .section:not(.hero):nth-child(even) { background: var(--gallery-recess) !important; }
main > .section:not(.hero)::before, main > .section:not(.hero)::after,
.section-rely .rely-veil { display: none; }
main .page-hero, main .guide-section { background: var(--gallery-surface) !important; color: var(--gallery-ink); }
main :is(.section-head, .iblocks-head, .guide-section, .page-hero) :is(h1,h2,h3,p),
main :is(.iblocks-lede, .section-subtitle) {
  color: inherit; -webkit-text-fill-color: currentColor; text-shadow: none;
}
main :is(.section-head, .iblocks-head) { color: var(--gallery-ink); }
main :is(.section-head, .iblocks-head) h2 { letter-spacing: -.025em; }
.section-head p, .iblocks-lede { opacity: 1; }

/* Pale navigation, purple controls, and a fine warm edge. */
html[data-palette="purple-nine"] .site-header,
html[data-palette="purple-nine"] .site-header.is-scrolled {
  background: var(--gallery-surface) !important;
  color: var(--gallery-ink);
  border-bottom: 1px solid var(--champagne);
  box-shadow: 0 8px 28px #15112814, inset 0 -1px 0 #f6f4fc18;
}
html[data-palette="purple-nine"] .site-header :is(.header-row,.brand,.nav,.nav-toggle) { color: var(--purple-800) !important; }
.site-header .utility-bar { background: var(--purple-900) !important; color: var(--purple-200); }
.site-header .brand-logo-plate { border-color: var(--champagne); box-shadow: 0 0 0 4px #d8c7a51a; }
.nav-mega, .nav-mobile { background: var(--gallery-surface) !important; color: var(--gallery-ink); border-color: var(--gallery-line); }
.nav-mega a, .nav-mega :is(p,span,strong), .nav-mobile a { color: inherit; }
.site-header .nav-link:hover, .site-header .nav-link:focus-visible { text-decoration: underline; text-decoration-color: var(--champagne-ink); text-underline-offset: .45em; }
body.site-body .btn:not(.btn-ghost),
.site-header .nav > a.btn.btn-nav, .site-header .header-quote {
  background: var(--purple-700) !important;
  color: var(--purple-100) !important; -webkit-text-fill-color: currentColor;
  border: 1px solid var(--purple-500);
  box-shadow: inset 0 1px 0 #cfc4e84d, 0 5px 15px #15112824;
  text-shadow: none;
  transition: background-color .18s ease, box-shadow .18s ease, border-color .18s ease;
}
body.site-body .btn:not(.btn-ghost):hover {
  background: var(--purple-600) !important;
  border-color: var(--champagne);
  box-shadow: inset 0 1px 0 #e8e2f566, 0 0 0 4px #d8c7a533, 0 8px 22px #15112824;
}
body.site-body .btn-ghost {
  background: var(--gallery-surface) !important; color: var(--gallery-ink) !important;
  border: 1px solid var(--champagne); box-shadow: none; text-shadow: none;
}
body.site-body .btn-ghost:hover { border-color: var(--purple-500); box-shadow: 0 0 0 3px #af9bd626; }
body.site-body :is(a,button,input,textarea,select,summary):focus-visible {
  outline: 3px solid var(--purple-500); outline-offset: 4px;
  box-shadow: 0 0 0 2px var(--gallery-surface);
}

/* Home: deep purple, champagne frames, and almost-white porcelain photo plates. */
main > .hero-feature {
  background: radial-gradient(ellipse at 26% 0, #60509c4d, transparent 56%), var(--purple-900);
  color: var(--purple-100);
  border-bottom: 1px solid var(--champagne);
}
main > .hero-feature::before, main > .hero-feature::after { display: none; }
html[data-palette="purple-nine"][data-napkin] .hero-feature.hero-has-crew-frame .hero-top-with-frame > .hero-copy {
  background: var(--purple-800) !important;
  border: 1px solid var(--champagne);
  border-radius: 12px;
  box-shadow: inset 0 0 0 6px var(--purple-800), inset 0 0 0 7px #d8c7a566, 0 22px 50px #08051055;
  animation: none; transform: none; overflow: hidden;
}
html[data-palette="purple-nine"][data-napkin] .hero-feature .hero-copy::before,
html[data-palette="purple-nine"][data-napkin] .hero-feature .hero-copy::after,
.hero-copy :is(.napkin-hem-x,.napkin-hem-y,.napkin-hang,.napkin-lantern) { display: none !important; }
html[data-palette="purple-nine"] .hero-feature .hero-copy :is(h1,.greeting,.lede,.hero-kicker) {
  color: var(--purple-100) !important; -webkit-text-fill-color: currentColor; text-shadow: none;
}
.hero-copy .day-replay { background: var(--purple-800); color: var(--purple-100); border-color: var(--purple-400); }
.hero-crew-card { background: var(--purple-900); box-shadow: 0 0 0 1px var(--champagne), 0 24px 54px #08051066; }
.hero-crew-card::before { box-shadow: inset 0 0 0 3px var(--gallery-paper), inset 0 0 0 8px #d8c7a599; }
.hero-crew-card-media::after { display: none; }
.hero-crew-card-copy { background: linear-gradient(0deg, var(--purple-900) 0%, #151128f5 64%, #15112800 100%); }
.hero-crew-card-copy :is(h3,p) { color: var(--purple-100); text-shadow: none; }
/* Leave anniversary and plate-star colors to the retained rules in site.css. */
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage {
  --plate-chip: var(--purple-800);
  --plate-label: var(--purple-800);
  --plate-ink: var(--purple-100);
  --plate-cta: var(--purple-700);
  background: var(--gallery-paper) !important;
  box-shadow: 0 0 0 1px var(--champagne), 0 18px 36px #08051055;
  overflow: hidden;
}
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage::before,
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage::after { display: none; }
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage :is(h3,h4) { background: var(--purple-800); }
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage > .plate-stars::before { border-color: var(--champagne); box-shadow: none; }
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage > .plate-stars::after { display: none; }
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage:hover { box-shadow: 0 0 0 2px var(--champagne), 0 0 32px #d8c7a533, 0 18px 36px #08051055; }
.hero-feature .hero-card-band > .hero-card.hero-card-has-collage :is(h3,h4,.hero-collage-label) {
  color: var(--purple-100); text-shadow: none; -webkit-text-fill-color: currentColor;
}

/* Gallery mats: photographs keep their color; the frame carries the brand. */
main .page-media img, .anniversary-portrait img {
  padding: 8px; background: var(--gallery-white); border: 1px solid var(--champagne);
  border-radius: 10px; box-shadow: var(--gallery-shadow);
}
main .page-media figcaption { color: var(--gallery-muted); font-size: 14px; }
main :is(.guide-card,.iblock,.rely-card,.partner-card) {
  background: var(--gallery-card) !important; color: var(--gallery-ink);
  border: 1px solid var(--gallery-line); border-radius: 14px;
  box-shadow: var(--gallery-shadow); overflow: hidden;
}
main :is(.guide-card,.iblock,.rely-card,.partner-card)::before { display: none; }
main :is(.guide-card,.iblock,.rely-card,.partner-card):is(:hover,:focus-within) {
  border-color: var(--purple-500); box-shadow: 0 0 0 2px #af9bd626, var(--gallery-shadow);
}
main :is(.iblock-copy,.rely-copy) { background: var(--gallery-card); color: var(--gallery-ink); }
main :is(.iblock-copy,.rely-copy,.rely-card) :is(h3,h4,p,a) {
  color: inherit; -webkit-text-fill-color: currentColor; text-shadow: none; opacity: 1;
}
main :is(.rely-stat,.iblock-step-num,.iblock-mark) { color: var(--gallery-ink); background: var(--gallery-recess); border-color: var(--gallery-line); }
main :is(.guide-breadcrumbs,.guide-faq details) { background: var(--gallery-recess); color: var(--gallery-ink); border-color: var(--gallery-line); }

/* The form stays light in every phase; its controls have one readable contract. */
body.page-quote .quote-wizard-wrap { background: var(--gallery-paper) !important; color: var(--purple-800); }
main :is(input:not([type=checkbox]):not([type=radio]),textarea,select) {
  background: var(--gallery-white); color: var(--purple-800); border-color: var(--gallery-stone);
}
main :is(input,textarea)::placeholder { color: var(--gallery-stone) !important; }
main > .cta-band, main > .section-promo, .site-footer {
  background: var(--purple-800) !important; color: var(--purple-100);
  border-top: 1px solid var(--champagne);
}
main > :is(.cta-band,.section-promo) :is(h2,p), .site-footer :is(h2,h3,h4,p,a,address) {
  color: inherit; -webkit-text-fill-color: currentColor; text-shadow: none;
}
.site-footer::before, .site-footer::after { display: none; }
.site-footer .footer-legal { background: var(--purple-900); color: var(--purple-200); border-color: var(--purple-600); }
.site-footer a:hover { text-decoration-color: var(--champagne); }
.action-teaser-tile::after { display: none; }
.action-teaser-label { padding: .35rem .55rem; border-radius: 5px; background: var(--purple-800); color: var(--purple-100); text-shadow: none; }
@media (prefers-reduced-motion: reduce) {
  .btn, .hero-card, .guide-card, .iblock, .rely-card { transition: none !important; }
}
@media print {
  main > .section, .site-footer { background: #fff !important; color: #151128 !important; }
}
