/* EventCam visual system: the same palette and controls on public, customer and admin pages. */
/* Classic remains the default. Seasonal palettes below retain the same layout. */
:root {
  --bg: #101f1c;
  --bg-2: #172b26;
  --card: #1b302a;
  --card-strong: #21382f;
  --surface: #263c34;
  --muted: #b7c7bd;
  --text: #f8f5eb;
  --accent: #efb88d;
  --accent-2: #294b3e;
  --line: rgba(233, 236, 218, .16);
  --line-strong: rgba(233, 236, 218, .28);
  --border: var(--line);
  --glass: rgba(22, 43, 36, .9);
  --shadow-soft: 0 12px 35px rgba(2, 14, 9, .18);
  --shadow-lift: 0 22px 55px rgba(2, 14, 9, .3);
  --ec-page: #101f1c;
  --ec-paper: #1b302a;
  --ec-paper-strong: #21382f;
  --ec-ink: #f8f5eb;
  --ec-muted: #b7c7bd;
  --ec-line: rgba(233, 236, 218, .16);
  --ec-input: #142821;
  --ec-primary: #efb88d;
  --ec-on-primary: #17261f;
  --ec-primary-hover: #ffd2aa;
  --ec-quiet: #244238;
  --ec-photo-mask: rgba(6, 24, 18, .72);
}
html[data-theme="light"] {
  --bg: #f5f1e8;
  --bg-2: #eee8dc;
  --card: #fffdf8;
  --card-strong: #fffefa;
  --surface: #ece9de;
  --muted: #53625a;
  --text: #193128;
  --accent: #9a462e;
  --accent-2: #e8eadf;
  --line: #d6d9ca;
  --line-strong: #bbc4b3;
  --border: var(--line);
  --glass: rgba(255, 253, 248, .94);
  --shadow-soft: 0 12px 35px rgba(19, 48, 36, .08);
  --shadow-lift: 0 22px 55px rgba(19, 48, 36, .14);
  --ec-page: #f5f1e8;
  --ec-paper: #fffdf8;
  --ec-paper-strong: #fffefa;
  --ec-ink: #193128;
  --ec-muted: #53625a;
  --ec-line: #d6d9ca;
  --ec-input: #fffefa;
  --ec-primary: #204c3a;
  --ec-on-primary: #fffdf8;
  --ec-primary-hover: #2e644d;
  --ec-quiet: #e8eadf;
  --ec-photo-mask: rgba(6, 24, 18, .7);
}
html[data-theme="light"] body:not(.marketing-page),
html[data-theme="dark"] body:not(.marketing-page),
body:not(.marketing-page),
body.marketing-page,
html[data-theme="dark"] body.marketing-page,
html[data-theme="light"] body.marketing-page {
  background: var(--ec-page);
  color: var(--ec-ink);
}
body {
  font-family: "Segoe UI", Inter, system-ui, sans-serif;
  line-height: 1.55;
}
h1, h2, h3 { color: var(--ec-ink); }
h1, .marketing-section h2, .legal-document h1, .hero h1, .admin-event-hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
  line-height: 1.1;
}
a { color: var(--accent); }
html[data-theme="light"] a { color: #85503a; }
:focus-visible { outline: 3px solid #df8b5e; outline-offset: 3px; }
::selection { background: #edba92; color: #142a20; }

/* Shared chrome */
.brand-logo-surface,
.brand-lockup-app .brand-logo-surface,
.brand-lockup-admin .brand-logo-surface { fill: #27614a; }
.brand-logo-camera { stroke: #fffdf5; }
.brand-logo-lens,
.brand-lockup-app .brand-logo-lens,
.brand-lockup-admin .brand-logo-lens { stroke: #fff4dc; }
.brand-logo-lens-core, .brand-logo-spark,
.brand-lockup-app .brand-logo-lens-core, .brand-lockup-app .brand-logo-spark,
.brand-lockup-admin .brand-logo-lens-core, .brand-lockup-admin .brand-logo-spark { fill: #efa875; }
.brand-lockup { color: var(--ec-ink); }
.brand-context { color: var(--ec-muted); }
.app-topbar,
body:not(.marketing-page) .page-topbar,
html[data-theme="light"] .app-topbar,
html[data-theme="light"] body:not(.marketing-page) .page-topbar,
.media-toolbar,
html[data-theme="light"] .media-toolbar {
  background: var(--glass);
  border: 1px solid var(--ec-line);
  box-shadow: 0 10px 32px rgba(13, 37, 27, .1);
  backdrop-filter: blur(16px);
}
.theme-toggle, .button, button, input, select, textarea { font-family: inherit; }
.button, button.button, .marketing-cta, .marketing-cta.small {
  min-height: 2.7rem;
  border: 1px solid transparent;
  border-radius: .65rem;
  background: var(--ec-primary);
  color: var(--ec-on-primary);
  box-shadow: none;
  font-weight: 750;
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.button:hover, button.button:hover, .marketing-cta:hover {
  background: var(--ec-primary-hover);
  color: var(--ec-on-primary);
  transform: translateY(-1px);
  box-shadow: var(--shadow-soft);
}
.button.secondary, .marketing-secondary,
html[data-theme="light"] .button.secondary,
html[data-theme="dark"] .marketing-secondary {
  border-color: var(--ec-line);
  background: var(--ec-paper);
  color: var(--ec-ink);
}
.button.secondary:hover, .marketing-secondary:hover {
  border-color: var(--line-strong);
  background: var(--ec-quiet);
  color: var(--ec-ink);
}
.button.danger { background: #9e403d; color: #fff; }
.button.danger:hover { background: #b34f48; }
.theme-toggle { min-width: 5rem; }
.theme-toggle-floating { right: 1rem; left: auto; bottom: auto; }
.card, .details-card, .table-wrap, .recent-upload-card, .admin-media-card,
html[data-theme="light"] .card, html[data-theme="light"] .details-card,
html[data-theme="light"] .table-wrap, html[data-theme="light"] .recent-upload-card,
html[data-theme="light"] .admin-media-card {
  background: var(--ec-paper);
  color: var(--ec-ink);
  border: 1px solid var(--ec-line);
  box-shadow: var(--shadow-soft);
}
.card, .details-card, .admin-media-card { border-radius: .9rem; }
.admin-filter-card, .admin-event-hero,
html[data-theme="light"] .admin-filter-card,
html[data-theme="light"] .admin-event-hero { background: var(--ec-paper); }
.admin-event-hero { border-left: .35rem solid var(--ec-primary); }
.hero { border-bottom: 1px solid var(--ec-line); padding-bottom: 1rem; }
.muted, .tiny.muted { color: var(--ec-muted); }
.filter-group, .filter-check-chip, .filter-event-option, .upload-card, .tile,
html[data-theme="light"] .filter-group, html[data-theme="light"] .filter-check-chip,
html[data-theme="light"] .filter-event-option, html[data-theme="light"] .upload-card,
html[data-theme="light"] .tile { background: var(--ec-quiet); border-color: var(--ec-line); }
input:not([type]), input[type="text"], input[type="search"], input[type="email"], input[type="tel"],
input[type="password"], input[type="number"], input[type="date"],
input[type="datetime-local"], select, textarea,
html[data-theme="light"] input:not([type]), html[data-theme="light"] input[type="text"], html[data-theme="light"] input[type="search"],
html[data-theme="light"] input[type="email"], html[data-theme="light"] input[type="tel"],
html[data-theme="light"] input[type="password"], html[data-theme="light"] input[type="number"],
html[data-theme="light"] input[type="date"], html[data-theme="light"] input[type="datetime-local"],
html[data-theme="light"] select, html[data-theme="light"] textarea {
  background: var(--ec-input);
  color: var(--ec-ink);
  border: 1px solid var(--ec-line);
  border-radius: .58rem;
  color-scheme: dark;
}
html[data-theme="light"] input, html[data-theme="light"] select,
html[data-theme="light"] textarea { color-scheme: light; }
input::placeholder, textarea::placeholder { color: var(--ec-muted); opacity: .85; }
thead th, html[data-theme="light"] thead th {
  background: var(--ec-quiet);
  color: var(--ec-ink);
  border-bottom: 1px solid var(--ec-line);
}
tbody tr:hover { background: var(--ec-quiet); }
.event-summary-row strong:not(.event-status-badge), .upload-summary-row strong { color: var(--ec-ink); }
.metadata-list dd, html[data-theme="light"] .metadata-list dd,
.lead, html[data-theme="light"] .lead { color: var(--ec-muted); }
.event-status, .filter-count-badge,
html[data-theme="light"] .event-status,
html[data-theme="light"] .filter-count-badge { color: var(--ec-ink); }
.toast { background: var(--ec-paper-strong); color: var(--ec-ink); border-color: var(--ec-line); }

/* Public landing: a real celebration is the first thing people see. */
.marketing-page, html[data-theme="dark"] .marketing-page {
  --package-surface: var(--ec-paper);
  --package-muted: var(--ec-muted);
  --package-line: var(--ec-line);
}
.marketing-shell { width: min(1200px, calc(100% - 2rem)); max-width: none; padding-top: 0; gap: 0; }
.marketing-nav, html[data-theme="dark"] .marketing-nav {
  position: sticky;
  top: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: auto 1fr auto;
  margin: 0;
  padding: .9rem 0;
  border: 0;
  border-bottom: 1px solid var(--ec-line);
  border-radius: 0;
  background: var(--ec-page);
  box-shadow: none;
}
.marketing-brand, html[data-theme="dark"] .marketing-brand { color: var(--ec-ink); }
.marketing-links { gap: clamp(.7rem, 2vw, 1.4rem); }
.marketing-links a, .marketing-footer a, .legal-back,
html[data-theme="light"] .marketing-links a,
html[data-theme="light"] .marketing-footer a,
html[data-theme="light"] .legal-back,
html[data-theme="dark"] .marketing-links a,
html[data-theme="dark"] .marketing-footer a,
html[data-theme="dark"] .legal-back {
  color: var(--ec-ink);
  text-decoration: none;
  font-weight: 650;
}
.marketing-links a:hover, .marketing-footer a:hover, .legal-back:hover { color: var(--accent); }
.marketing-links a + a::before { content: none; }
.marketing-actions { gap: .6rem; }
.compact-locale select, html[data-theme="dark"] .compact-locale select,
.marketing-page input, .marketing-page textarea, .marketing-page select,
html[data-theme="dark"] .marketing-page input,
html[data-theme="dark"] .marketing-page textarea,
html[data-theme="dark"] .marketing-page select {
  background: var(--ec-input);
  color: var(--ec-ink);
  border-color: var(--ec-line);
}
.marketing-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  min-height: clamp(35rem, 70vh, 45rem);
  overflow: hidden;
  padding: clamp(3rem, 7vw, 6rem);
  margin: 1.4rem 0 0;
  border-radius: 1.25rem;
  isolation: isolate;
  background: #10251f;
}
.marketing-hero-photo, .marketing-hero-photo::after { position: absolute; inset: 0; z-index: -1; }
.marketing-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 44%; }
.marketing-hero-photo::after {
  content: "";
  background: linear-gradient(90deg, rgba(5, 23, 18, .9) 0%, rgba(5, 23, 18, .68) 43%, rgba(5, 23, 18, .13) 100%),
    linear-gradient(0deg, rgba(5, 23, 18, .48), transparent 55%);
}
.marketing-hero-copy { max-width: 43rem; gap: 1.15rem; color: #fffaf2; }
.marketing-hero h1, html[data-theme="dark"] .marketing-hero h1 {
  max-width: 14ch;
  color: #fffaf2;
  font-size: clamp(3rem, 6.5vw, 5.9rem);
  line-height: .98;
  text-wrap: balance;
}
.hero-eyebrow {
  margin: 0;
  color: #ffd6b7;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.marketing-hero .marketing-lead,
.marketing-hero-copy .marketing-lead,
html[data-theme="dark"] .marketing-hero .marketing-lead {
  max-width: 42ch;
  color: #fff9ee;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.55;
}
.marketing-hero-actions { display: flex; gap: .75rem; margin-top: .3rem; }
.marketing-hero .marketing-cta { background: #f1bb91; color: #193027; }
.marketing-hero .marketing-cta:hover { background: #ffcfaa; color: #193027; }
.marketing-hero .marketing-secondary,
html[data-theme="dark"] .marketing-hero .marketing-secondary {
  border-color: rgba(255,255,255,.7);
  background: rgba(5, 23, 18, .15);
  color: #fffaf2;
}
.marketing-hero .marketing-secondary:hover { background: rgba(255,255,255,.18); color: #fffaf2; }
.hero-proof { margin: .25rem 0 0; color: #f6e4d0; font-size: .9rem; }
.event-types-band {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.4rem 0;
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--ec-line);
}
.event-types-copy h2, html[data-theme="dark"] .event-types-copy h2 {
  color: var(--ec-ink);
  font-family: "Segoe UI", Inter, system-ui, sans-serif;
  font-size: .9rem;
  letter-spacing: .01em;
}
.event-type-list { justify-content: flex-end; }
.event-type-list li, html[data-theme="dark"] .event-type-list li {
  color: var(--ec-muted);
  font-size: .84rem;
  font-weight: 650;
}
.marketing-section, html[data-theme="dark"] .marketing-section {
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  border: 0;
  border-bottom: 1px solid var(--ec-line);
  background: transparent;
  box-shadow: none;
}
.marketing-section h2, html[data-theme="dark"] .marketing-section h2 {
  color: var(--ec-ink);
  font-size: clamp(2.1rem, 4vw, 3.8rem);
  line-height: 1.07;
  text-wrap: balance;
}
.marketing-page .section-copy p, .moment-copy > p, .demo-invite-copy > p,
html[data-theme="dark"] .marketing-page .section-copy p {
  color: var(--ec-muted);
  font-size: 1.08rem;
  line-height: 1.65;
}
.moment-section {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}
.moment-photo { height: min(62vw, 38rem); border-radius: .9rem; overflow: hidden; }
.moment-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.moment-copy { align-items: start; gap: 1.3rem; }
.moment-copy h2 { max-width: 16ch; }
.moment-copy > p { max-width: 50ch; margin: 0; }
.moment-product {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  width: 100%;
  max-width: 24rem;
  margin: 1rem 0 0;
  padding: .85rem;
  border: 1px solid var(--ec-line);
  border-radius: .9rem;
  background: var(--ec-paper);
  box-shadow: var(--shadow-soft);
}
.moment-product img { width: 5rem; height: 8rem; object-fit: cover; object-position: top; border-radius: .4rem; }
.moment-product figcaption { color: var(--ec-ink); font-size: .9rem; font-weight: 700; }
.scan-scene {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--ec-line);
  border-radius: 1rem;
  background: var(--ec-paper);
  box-shadow: var(--shadow-soft);
}
.scan-scene-stage { position: relative; width: 100%; }
.scan-scene-photo { display: block; width: 100%; height: auto; }
.scan-scene-print {
  position: absolute;
  left: 40.73%;
  top: 56.32%;
  width: 10.05%;
  line-height: 0;
  transform: matrix(1, -.06, .11, 1.22, 0, 0);
  transform-origin: top left;
}
.scan-scene-print img { display: block; width: 100%; height: auto; }
.scan-scene-camera-view {
  position: absolute;
  overflow: hidden;
  left: 67.15%;
  top: 28.4%;
  width: 9.2%;
  height: 23%;
  background: url('/static/marketing/table-tent-scan.webp') 43.4% 74.2% / 500% auto no-repeat;
  transform: matrix(1, .012, .075, 1, 0, 0);
  transform-origin: top left;
}
.scan-scene-camera-print {
  position: absolute;
  left: 30%;
  top: 38.4%;
  width: 50%;
  height: auto;
  transform: matrix(1, -.06, .11, 1.22, 0, 0);
  transform-origin: top left;
  filter: blur(.25px);
}
.scan-scene-print:focus-visible { outline: 3px solid #174c37; outline-offset: 3px; }
.scan-scene figcaption { padding: .9rem 1.2rem; color: var(--ec-ink); font-size: .92rem; font-weight: 700; }
.split-section { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); }
.step-rail { display: grid; }
.step-item {
  position: relative;
  padding: 1.15rem 0 1.15rem 2rem;
  border-top: 1px solid var(--ec-line);
  background: transparent;
}
.step-item::before {
  content: "";
  position: absolute;
  left: .2rem;
  top: 1.65rem;
  width: .65rem;
  height: .65rem;
  border-radius: 50%;
  background: var(--accent);
}
.step-item h3 { color: var(--ec-ink); }
.step-item p, html[data-theme="dark"] .step-item p { color: var(--ec-muted); }
.showcase-section .section-copy { max-width: 42rem; }
.showcase-grid { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 1rem; align-items: stretch; }
.showcase-grid figure, html[data-theme="dark"] .showcase-grid figure {
  display: grid;
  align-content: start;
  margin: 0;
  padding: .9rem;
  border: 1px solid var(--ec-line);
  border-radius: .85rem;
  background: var(--ec-paper);
  color: var(--ec-ink);
}
.showcase-grid img, .showcase-grid .showcase-wide img,
html[data-theme="dark"] .showcase-grid img {
  width: 100%;
  height: clamp(14rem, 23vw, 20rem);
  object-fit: contain;
  padding: .5rem;
  border-radius: .5rem;
  background: var(--ec-quiet);
}
.showcase-grid figcaption { padding: 1rem .2rem .2rem; color: var(--ec-ink); }
.showcase-grid figcaption p, html[data-theme="dark"] .showcase-grid figcaption p { color: var(--ec-muted); }
.included-details { gap: 1rem 2rem; }
.included-details > div, html[data-theme="dark"] .included-details > div {
  background: var(--ec-paper);
  color: var(--ec-ink);
  border-color: var(--ec-line);
}
.included-details dt { color: var(--ec-ink); }
.included-details dd, html[data-theme="dark"] .included-details dd { color: var(--ec-muted); }
.demo-invite, html[data-theme="dark"] .demo-invite {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(13rem, .52fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  padding: clamp(2rem, 5vw, 4rem);
  margin-top: clamp(2rem, 5vw, 4rem);
  border: 0;
  border-radius: 1rem;
  background: #204a38;
  color: #fffaf2;
}
html[data-theme="dark"] .demo-invite { background: #274d3c; }
.demo-invite h2, html[data-theme="dark"] .demo-invite h2 { color: #fffaf2; }
.demo-invite-copy > p, html[data-theme="dark"] .demo-invite-copy > p { color: #e9f0e6; }
.demo-invite-copy .button { justify-self: start; background: #f1bb91; color: #193027; }
.demo-invite-copy .button:hover { background: #ffcfaa; color: #193027; }
.demo-invite-note { max-width: 48ch; font-size: .85rem !important; opacity: .8; }
.demo-qr-card {
  display: grid;
  justify-items: center;
  gap: .8rem;
  width: min(100%, 20rem);
  margin: 0 auto;
  padding: 1.25rem 1rem 1rem;
  border-radius: .7rem;
  background: #fffdf7;
  color: #1b392b;
  box-shadow: 0 18px 45px rgba(3, 26, 15, .3);
  text-align: center;
  text-decoration: none;
  transform: rotate(2deg);
  transition: transform .2s ease;
}
.demo-qr-card:hover { transform: rotate(0deg) translateY(-3px); }
.demo-qr-brand { font-family: Georgia, serif; font-size: 1.4rem; font-weight: 700; }
.demo-qr-card img { display: block; width: min(100%, 13rem); height: auto; padding: .25rem; background: #fff; image-rendering: pixelated; }
.demo-qr-caption { max-width: 20ch; color: #244538; font-size: .82rem; line-height: 1.35; font-weight: 700; }
.package-section { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 2rem; }
.package-section > .section-copy { align-self: start; }
.package-card, html[data-theme="dark"] .package-card {
  background: var(--ec-paper);
  border: 1px solid var(--ec-line);
  color: var(--ec-ink);
  border-radius: .9rem;
  box-shadow: var(--shadow-soft);
}
.package-card > p, .package-timeline p, .package-changes,
.pricing-terms, html[data-theme="dark"] .pricing-terms { color: var(--ec-muted); }
.package-price strong { color: var(--ec-ink); }
.package-timeline { border-color: var(--ec-line); }
.package-timeline > div + div { border-color: var(--ec-line); }
.package-changes, .pricing-terms { grid-column: 2; }
.contact-band { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: 2rem; }
.contact-band > .section-copy { align-self: start; }
.contact-form, html[data-theme="dark"] .contact-form {
  padding: clamp(1.25rem, 3vw, 2.2rem);
  border: 1px solid var(--ec-line);
  border-radius: .9rem;
  background: var(--ec-paper);
  color: var(--ec-ink);
  box-shadow: var(--shadow-soft);
}
.contact-form h3, html[data-theme="dark"] .contact-form h3 { color: var(--ec-ink); }
.marketing-page .contact-form label, .marketing-page .contact-date-field > label,
.marketing-page .contact-image-field { color: var(--ec-ink); }
.marketing-page .field-hint, .marketing-page .contact-direct,
html[data-theme="dark"] .marketing-page .field-hint { color: var(--ec-muted); }
.marketing-page input::placeholder, .marketing-page textarea::placeholder,
html[data-theme="dark"] .marketing-page input::placeholder,
html[data-theme="dark"] .marketing-page textarea::placeholder { color: var(--ec-muted); }
.booking-package, .contact-terms-check, .contact-image-field { border-color: var(--ec-line); }
.marketing-page .booking-package, html[data-theme="dark"] .marketing-page .booking-package { color: var(--ec-ink); }
.contact-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-form [data-booking-phone] { align-self: start; }
.contact-form [data-booking-phone] input { width: 100%; min-height: 2.7rem; }
.open-event-panel { gap: 1.25rem; }
.marketing-footer { color: var(--ec-muted); }
.legal-document, html[data-theme="dark"] .legal-document {
  background: var(--ec-paper);
  color: var(--ec-ink);
  border-color: var(--ec-line);
}
.legal-document h1, html[data-theme="light"] .legal-document h1,
html[data-theme="dark"] .legal-document h1 { color: var(--ec-ink); }
.legal-document p, html[data-theme="dark"] .legal-document p { color: var(--ec-muted); }
.changelog-entry, html[data-theme="dark"] .changelog-entry { border-color: var(--ec-line); }
.changelog-entry h2, html[data-theme="dark"] .changelog-entry h2 { color: var(--ec-ink); }
.changelog-entry time, .changelog-entry ul,
html[data-theme="dark"] .changelog-entry time,
html[data-theme="dark"] .changelog-entry ul { color: var(--ec-muted); }
.demo-request-page .page-topbar { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; }
.demo-request-page .topbar-right { flex: 0 0 auto; width: auto; margin-left: auto; }

@media (max-width: 900px) {
  .marketing-nav { grid-template-columns: 1fr auto; }
  .marketing-links { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .marketing-hero { min-height: 37rem; }
  .moment-section, .split-section, .package-section, .contact-band { grid-template-columns: 1fr; }
  .package-changes, .pricing-terms { grid-column: 1; }
  .showcase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .showcase-grid img, .showcase-grid .showcase-wide img { height: 15rem; }
}
@media (max-width: 640px) {
  .marketing-shell { width: calc(100% - 1.25rem); }
  .marketing-nav { display: flex; flex-wrap: nowrap; gap: .4rem; padding: .6rem .1rem; }
  .marketing-brand { flex: 1 1 auto; min-width: max-content; }
  .marketing-actions { display: flex; flex: 0 0 auto; flex-wrap: nowrap; width: auto; gap: .35rem; }
  .marketing-actions .locale-form { flex: 0 0 auto; width: auto; }
  .marketing-links, .marketing-actions .marketing-cta.small { display: none; }
  .marketing-actions .theme-toggle { min-width: 2.45rem; }
  .compact-locale select { width: 6.4rem; }
  .marketing-hero {
    min-height: 41rem;
    align-items: end;
    margin-top: .7rem;
    padding: 2rem 1.3rem;
    border-radius: .9rem;
  }
  .marketing-hero-photo img { object-position: 62% center; }
  .marketing-hero-photo::after {
    background: linear-gradient(0deg, rgba(5, 23, 18, .97) 0%, rgba(5, 23, 18, .78) 45%, rgba(5, 23, 18, .13) 100%);
  }
  .marketing-hero h1 { font-size: clamp(2.9rem, 13vw, 4rem); }
  .marketing-hero-actions { display: grid; width: 100%; }
  .marketing-hero-actions .button { width: 100%; }
  .event-types-band { display: block; }
  .event-type-list { justify-content: flex-start; margin-top: .75rem; }
  .moment-section { gap: 1.5rem; }
  .moment-photo { height: 23rem; }
  .scan-scene-stage { left: calc(50% - 45px); width: max(100%, 800px); transform: translateX(-50%); }
  .showcase-grid { grid-template-columns: 1fr; }
  .showcase-grid img, .showcase-grid .showcase-wide img { height: 20rem; }
  .demo-invite, html[data-theme="dark"] .demo-invite {
    grid-template-columns: 1fr;
    padding: 2rem 1.25rem;
  }
  .demo-qr-card { max-width: 15rem; }
  .package-timeline { grid-template-columns: 1fr; }
  .contact-form-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .button, .demo-qr-card { transition: none; }
  .button:hover, .demo-qr-card:hover { transform: none; }
}

/* Seasonal site themes: preserve the classic layout, controls and light/dark choice. */
html[data-site-theme="autumn"] {
  --ec-page: #20150f; --ec-paper: #302017; --ec-paper-strong: #3a281c;
  --ec-ink: #fff4e5; --ec-muted: #d1ba9e; --ec-line: #705037;
  --ec-input: #251a12; --ec-primary: #ffba72; --ec-on-primary: #271508;
  --ec-primary-hover: #ffd19c; --ec-quiet: #493021; --accent: #ffba72;
  --bg: var(--ec-page); --bg-2: #3a281c; --card: var(--ec-paper); --card-strong: var(--ec-paper-strong);
  --surface: var(--ec-quiet); --text: var(--ec-ink); --muted: var(--ec-muted); --line: var(--ec-line);
  --glass: var(--ec-paper); --line-strong: #956b49;
}
html[data-site-theme="autumn"][data-theme="light"] {
  --ec-page: #fff5e8; --ec-paper: #fffdf8; --ec-paper-strong: #ffedd4;
  --ec-ink: #382211; --ec-muted: #6e5136; --ec-line: #d8b68f;
  --ec-input: #fffdf8; --ec-primary: #8f3a13; --ec-on-primary: #fff8ee;
  --ec-primary-hover: #a74516; --ec-quiet: #f4dfc5; --accent: #8f3a13; --line-strong: #b48759;
}
html[data-site-theme="christmas"] {
  --ec-page: #121e19; --ec-paper: #1d3027; --ec-paper-strong: #263c30;
  --ec-ink: #fff6e2; --ec-muted: #d0c7b0; --ec-line: #637461;
  --ec-input: #14231b; --ec-primary: #f4cb79; --ec-on-primary: #2c2010;
  --ec-primary-hover: #ffe0a1; --ec-quiet: #573034; --accent: #f4cb79;
  --bg: var(--ec-page); --bg-2: #263c30; --card: var(--ec-paper); --card-strong: var(--ec-paper-strong);
  --surface: var(--ec-quiet); --text: var(--ec-ink); --muted: var(--ec-muted); --line: var(--ec-line);
  --glass: var(--ec-paper); --line-strong: #7c9176;
}
html[data-site-theme="christmas"][data-theme="light"] {
  --ec-page: #faf5ea; --ec-paper: #fffdf6; --ec-paper-strong: #f0e4cc;
  --ec-ink: #233b2c; --ec-muted: #5b634c; --ec-line: #c8cfbb;
  --ec-input: #fffdf6; --ec-primary: #922d36; --ec-on-primary: #fffdf6;
  --ec-primary-hover: #aa3740; --ec-quiet: #f2dfe1; --accent: #922d36; --line-strong: #9cab8c;
}
html[data-site-theme="christmas"] .marketing-hero { border-top: 3px solid #922d36; }
html[data-site-theme="autumn"] .marketing-hero { border-top: 3px solid #b25b25; }
html[data-site-theme="autumn"] a, html[data-site-theme="christmas"] a { color: var(--accent); }
html[data-site-theme="autumn"] .button:not(.secondary):not(.danger):not(.marketing-secondary),
html[data-site-theme="christmas"] .button:not(.secondary):not(.danger):not(.marketing-secondary) { color: var(--ec-on-primary); }
@media print {
  html[data-site-theme] { --ec-page: #fff; --ec-ink: #000; --ec-paper: #fff; }
}
