/* Brand mark, theme toggle, language gate, and the light theme.
   Light theme strategy: page tokens flip to paper/ink; photo- and video-backed scenes keep the
   dark tokens locally so their white type stays legible. */

/* ---------- Brand mark (official blue logo on its white plate) ---------- */
.logo-badge { display: inline-grid; place-items: center; flex: none; background: #fff; border: calc(1.5 * var(--u)) solid #3B55AC; border-radius: calc(12 * var(--u)); padding: calc(4 * var(--u)) calc(8 * var(--u)); box-shadow: 0 calc(4 * var(--u)) calc(14 * var(--u)) rgba(0, 0, 0, .25); }
.logo-badge img { width: calc(56 * var(--u)); height: auto; display: block; }
.site-footer .logo-badge { border-width: 1.5px; border-radius: 12px; padding: 5px 9px; }
.site-footer .logo-badge img { width: 64px; }
.logo-badge.big { border-width: 2px; border-radius: 18px; padding: 10px 16px; }
.logo-badge.big img { width: 120px; }
.curtain img { width: 140px; }
.logo .logo-badge + span i, .logo i { color: #4B6BF5; }
.logo > span:last-child { font-weight: 700; }

/* ---------- Theme toggle ---------- */
.theme-btn { flex: none; display: grid; place-items: center; width: calc(42 * var(--u)); height: calc(42 * var(--u)); border-radius: 50%; color: #fff; cursor: pointer; padding: 0; border: calc(1.5 * var(--u)) solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .06); backdrop-filter: blur(8px); transition: border-color .2s, background-color .2s, transform .4s var(--ease); }
.theme-btn:hover { border-color: #fff; background: rgba(255, 255, 255, .14); transform: rotate(-20deg); }
.theme-btn .ico { width: calc(19 * var(--u)); height: calc(19 * var(--u)); grid-area: 1 / 1; transition: opacity .3s, transform .4s var(--ease); }
.theme-btn .t-moon { opacity: 0; transform: scale(.6) rotate(-40deg); }
[data-theme="light"] .theme-btn .t-sun { opacity: 0; transform: scale(.6) rotate(40deg); }
[data-theme="light"] .theme-btn .t-moon { opacity: 1; transform: none; }
.anim .theme-btn { opacity: 0; }
.anim.play .theme-btn { --rise: calc(8 * var(--u)); animation: ent-settle .6s var(--e-quint) .46s both; }
.theme-btn:focus-visible { outline: calc(2 * var(--u)) solid var(--accent); outline-offset: calc(3 * var(--u)); }

/* ---------- Language gate (first visit) ---------- */
.lang-gate { position: fixed; inset: 0; z-index: 250; display: grid; place-items: center; padding: 20px; background: rgba(6, 6, 8, .72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); animation: gate-in .5s var(--ease) both; }
.lang-gate[hidden] { display: none; }
@keyframes gate-in { from { opacity: 0; } to { opacity: 1; } }
.gate-card { width: min(460px, 100%); border-radius: 28px; padding: 38px 30px 32px; text-align: center; display: grid; justify-items: center; gap: 16px; animation: gate-card .7s var(--ease) .05s both; }
@keyframes gate-card { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }
.gate-brand { color: var(--mute); font-size: 14px; }
.gate-title { display: grid; gap: 4px; font-family: var(--f-display); font-size: 28px; font-weight: 700; }
.gate-title [lang="en"] { font-family: "Prata", Georgia, serif; font-weight: 400; font-size: 22px; color: var(--mute); }
.gate-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; margin-top: 8px; }
.gate-actions .btn { width: 100%; font-size: 18px; }
.gate-actions [lang="en"] { font-family: "Hanken Grotesk", sans-serif; }

/* ---------- Light theme ---------- */
[data-theme="light"] {
  --ink: #F4F1EC; --ink-2: #FFFFFF; --ink-3: #ECE6DF;
  --line: rgba(32, 22, 16, .12); --line-2: rgba(32, 22, 16, .22);
  --bone: #1B1512; --mute: #6A615A;
  --red-2: #D9141A;
  --glass-bg: linear-gradient(135deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .55));
  --glass-edge: rgba(32, 22, 16, .12);
  --glass-shadow: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 18px 44px -24px rgba(60, 30, 20, .3);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { color-scheme: dark; } }
[data-theme="light"] body::after { opacity: .035; }

/* scenes on photos/video keep the dark palette */
[data-theme="light"] .stage, [data-theme="light"] .cine, [data-theme="light"] .page-hero, [data-theme="light"] .h-card,
[data-theme="light"] .size-stage, [data-theme="light"] .action-bar, [data-theme="light"] .lang-gate {
  --ink: #0A0A0C; --ink-2: #111115; --ink-3: #18181E;
  --line: rgba(240, 234, 228, .10); --line-2: rgba(240, 234, 228, .18);
  --bone: #F0EAE4; --mute: #C2BAB3; --red-2: #FF3B41;
  --glass-bg: linear-gradient(135deg, rgba(255, 255, 255, .11), rgba(255, 255, 255, .03));
  --glass-edge: rgba(255, 255, 255, .16);
  --glass-shadow: 0 1px 0 rgba(255, 255, 255, .14) inset, 0 -1px 0 rgba(0, 0, 0, .25) inset, 0 20px 50px -20px rgba(0, 0, 0, .7);
  color: var(--bone);
}
[data-theme="light"] .lang-gate { background: rgba(244, 241, 236, .7); }
[data-theme="light"] .lang-gate .gate-card { --bone: #1B1512; --mute: #6A615A; background: rgba(255, 255, 255, .9); border-color: rgba(32, 22, 16, .12); color: var(--bone); }
[data-theme="light"] .lang-gate .btn-glass { color: #1B1512; border-color: rgba(32, 22, 16, .2); background: #fff; }

[data-theme="light"] .glass-soft { background: #fff; border-color: var(--line); box-shadow: 0 1px 2px rgba(40, 20, 10, .05), 0 12px 30px -18px rgba(40, 20, 10, .25); }
[data-theme="light"] .size-stage.glass-soft { background: radial-gradient(80% 70% at 50% 78%, rgba(120, 20, 24, .45) 0%, rgba(23, 23, 28, .9) 60%, #0e0e11 100%); }
[data-theme="light"] .size-card.is-selected { background: linear-gradient(160deg, #FDE6E6, #fff); border-color: rgba(217, 20, 26, .5); }
[data-theme="light"] .size-teaser.is-popular { background: linear-gradient(160deg, #FDE6E6, #fff); border-color: rgba(217, 20, 26, .4); }
[data-theme="light"] .size-tag { background: var(--ink-3); }
[data-theme="light"] .is-popular .size-tag { background: var(--red); }
[data-theme="light"] .c-card:hover { background: #FFF5F5; }
[data-theme="light"] .field input, [data-theme="light"] .field select, [data-theme="light"] .field textarea { background: #fff; }
[data-theme="light"] .map-wrap iframe { filter: none; }
[data-theme="light"] .footer-mark { -webkit-text-stroke-color: rgba(27, 21, 18, .14); }
[data-theme="light"] .chip-ico { background: radial-gradient(circle at 30% 20%, rgba(217, 20, 26, .14), rgba(217, 20, 26, .05)); border-color: rgba(217, 20, 26, .22); }
[data-theme="light"] .btn-primary { box-shadow: 0 1px 0 #fff inset, 0 10px 26px -12px rgba(120, 30, 30, .45), inset 0 0 0 1.5px rgba(217, 20, 26, .18); }
[data-theme="light"] .btn-glass { color: var(--bone); }
[data-theme="light"] .wa-float { box-shadow: 0 14px 30px -10px rgba(37, 160, 90, .55); }
[data-theme="light"] .cta-band::before { opacity: .55; }

/* navbar: white type over the hero, ink type once it turns solid */
[data-theme="light"] .navbar.scrolled { background: rgba(244, 241, 236, .82); box-shadow: 0 1px 0 var(--line); }
[data-theme="light"] .navbar.scrolled::after { background: transparent; }
[data-theme="light"] .navbar.scrolled .logo, [data-theme="light"] .navbar.scrolled .links a:not(.enroll) { color: #1B1512; }
[data-theme="light"] .navbar.scrolled .burger span { background: #1B1512; }
[data-theme="light"] .navbar.scrolled .lang, [data-theme="light"] .navbar.scrolled .theme-btn { color: #1B1512; border-color: rgba(27, 21, 18, .25); background: rgba(255, 255, 255, .6); }
[data-theme="light"] .navbar.scrolled .links a.enroll { box-shadow: 0 2px 10px rgba(120, 30, 30, .18), inset 0 0 0 1.5px rgba(217, 20, 26, .2); }
@media (max-width: 1100px), (max-height: 620px) {
  [data-theme="light"] .links { background: rgba(255, 255, 255, .95); border-color: rgba(27, 21, 18, .1); }
  [data-theme="light"] .links a:not(.enroll) { color: #1B1512 !important; }
  [data-theme="light"] .links a + a { border-top-color: rgba(27, 21, 18, .08); }
}
html { transition: background-color .3s; }

/* Footer brand lockup */
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-text { display: flex; flex-direction: column; line-height: 1.25; }
.brand-text strong { font-family: var(--f-display); font-weight: 700; font-size: 17px; color: var(--bone); white-space: nowrap; }
.brand-text small { color: var(--mute); font-size: 12px; }
@media (max-width: 579px) {
  .logo { gap: calc(7 * var(--u)); font-size: calc(16 * var(--u)) !important; }
  .logo-badge { padding: calc(3 * var(--u)) calc(6 * var(--u)); border-radius: calc(10 * var(--u)); }
  .logo-badge img { width: calc(44 * var(--u)); }
  .navrow { gap: calc(8 * var(--u)); }
}
@media (max-width: 360px) { .logo > span:last-child { display: none; } }

/* Map: drawn backdrop that stays visible if the Google embed can't load */
.map-fallback { position: absolute; inset: 0; display: grid; place-items: center;
  background:
    radial-gradient(circle at 50% 50%, rgba(59,85,172,.35), transparent 55%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 1px, transparent 1px 48px),
    #0d1424; }
.map-fallback .ico { width: 56px; height: 56px; color: #ff4d4d; filter: drop-shadow(0 6px 14px rgba(0,0,0,.5)); }
[data-theme="light"] .map-fallback { background:
    radial-gradient(circle at 50% 50%, rgba(59,85,172,.18), transparent 55%),
    repeating-linear-gradient(0deg, rgba(0,0,0,.06) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.06) 0 1px, transparent 1px 48px),
    #e9eef7; }
.map-wrap iframe { z-index: 1; }
.map-card { z-index: 2; }

/* Container availability: reserved sizes are shown but can't be ordered */
.size-card.is-reserved, .size-teaser.is-reserved { opacity: .55; filter: grayscale(.6); }
.size-card.is-reserved { cursor: not-allowed; }
.is-reserved .size-tag { background: transparent; border: 1px dashed currentColor; color: var(--mute); }
.avail { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--mute); white-space: nowrap; }
.avail::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .6; }
.avail.is-on { color: #22c55e; font-weight: 600; }
.avail.is-on::before { opacity: 1; box-shadow: 0 0 0 4px rgba(34,197,94,.18); }

/* Word-lit statement: unlit words still readable (3:1) on the light background */
html[data-theme="light"].motion-on .statement .sw { opacity: .54; }
