/* FBA — site public. Fonturi locale (TTF reale), font-display:swap + preload (afișare efectivă la prima vizită, măsurat CLS); fallback ajustat metric (Work Sans/Arial 400=0,958, 800=0,864; Cinzel/Georgia=0,932). */
@font-face{font-family:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/brand/fonts/font-3.ttf) format('truetype')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/brand/fonts/font-4.ttf) format('truetype')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/brand/fonts/font-1.ttf) format('truetype')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/brand/fonts/font-0.ttf) format('truetype')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:800;font-display:swap;src:url(/brand/fonts/font-2.ttf) format('truetype')}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:400;font-display:swap;src:url(/brand/fonts/cinzel-decorative-400.ttf) format('truetype')}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:700;font-display:swap;src:url(/brand/fonts/cinzel-decorative-700.ttf) format('truetype')}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:900;font-display:swap;src:url(/brand/fonts/cinzel-decorative-900.ttf) format('truetype')}
@font-face{font-family:'Work Sans Fallback';font-weight:100 650;src:local('Arial'),local('Liberation Sans'),local('Helvetica');size-adjust:95.8%;ascent-override:97.1%;descent-override:25.4%;line-gap-override:0%}
@font-face{font-family:'Work Sans Fallback';font-weight:651 900;src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('Helvetica Bold');size-adjust:86.4%;ascent-override:107.6%;descent-override:28.1%;line-gap-override:0%}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url(/brand/fonts/font-5.ttf) format('truetype')}
@font-face{font-family:'Cinzel Fallback';src:local('Georgia Bold'),local('Georgia-Bold'),local('DejaVu Serif Bold');size-adjust:93.2%}
@font-face{font-family:'Cinzel Decorative Fallback';src:local('Georgia Bold'),local('Georgia-Bold'),local('DejaVu Serif Bold');size-adjust:93.2%}

/* ==========================================================================
   FBA — site public. Sistem unic (prompt13): tokenuri → bază → structură → componente → pagini.
   Identitate: logo original, #FFA633 / #1C1C1C, Cinzel Decorative (titluri, greutăți reale 400/700/900) + Work Sans (text, controale).
   Reguli: niciun stil structural pe selectori de element (header/nav/footer/section);
   componentele au clasă proprie. Breakpointuri: 1100 / 800 / 600 / 360.
   ========================================================================== */

/* ---------- 1. Tokenuri ---------- */
:root {
  --orange: #ffa633; --orange-hover: #ffb75b; --orange-ink: #9b4d00;
  /* --ink = #1C1C1C de brand, constant în ambele teme (text pe portocaliu, hero, card locație, cookie, lightbox).
     Culorile care depind de temă sunt tokenurile semantice de mai jos (--fg, --bg, --surface …), redefinite pentru Dark. */
  --ink: #1c1c1c;
  color-scheme: light dark;
  --fg: #1c1c1c; --fg-2: #3d3d3d; --bg: #fff; --paper: var(--bg); --surface: #fff; --field-bg: #fff;
  --soft: #f7f7f7; --soft-2: #efefef;
  --line: #dedede; --line-strong: #8f8f8f; --muted: #5f5f5f; --rule: #c9c9c9; --perf: #cfcfcf;
  --header-bg: #fff; --header-line: #e8e8e8;
  --inv-bg: #1c1c1c; --inv-fg: #fff; --inv-hover: #333;
  --underline: rgb(28 28 28 / .32); --band-line: transparent;
  --archive-ink: #555; --disabled-ink: #888; --check-accent: #1c1c1c;
  --ok: #11823b; --ok-bg: #e8f5ec; --ok-line: #b8dfc4; --ok-badge-bg: #e1f3e7; --ok-badge-ink: #0b5d2a;
  --bad: #b3261e; --bad-bg: #fdecea; --bad-line: #f1bbb5; --bad-badge-bg: #fbe2df; --bad-badge-ink: #8c1d16;
  --warn-bg: #fff4e0; --warn-ink: #7a4500; --warn-line: #f3d3a5; --warn-badge-bg: #fff0d6;
  --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%231c1c1c'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.17l3.71-3.94a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");
  --font-body: 'Work Sans', 'Work Sans Fallback', Arial, sans-serif;
  --font-display: 'Cinzel Decorative', 'Cinzel Decorative Fallback', Georgia, serif;
  --font-heading: 'Cinzel', 'Cinzel Fallback', Georgia, serif; /* Cinzel simplu (doar 700): toate titlurile publice */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;
  --r-sm: 4px; --r: 8px;
  /* Grilă unică (prompt14): zona utilă are max. --container; fundalurile rămân full width.
     --pad-x se folosește ca padding orizontal pe elemente lățime-completă (header, hero, secțiuni, pagini, footer):
     procentul se raportează la lățimea blocului (fără scrollbar), deci marginile coincid exact între zone. */
  --container: 1200px;
  --gutter-min: 24px;
  --pad-x: max(var(--gutter-min), calc((100% - var(--container)) / 2));
  --header-h: 88px;
  --measure: 70ch;
  --shadow: 0 10px 30px rgb(0 0 0 / .08);
  --focus: 3px solid #aa5500;
}
@media (max-width: 600px) { :root { --header-h: 72px; --gutter-min: 20px; } }

/* Teme (P18). Sursa unică: <meta name="color-scheme"> din <head> — „light dark” = urmează sistemul,
   „light”/„dark” = alegere salvată (scriptul inline o aplică înainte de prima pictare). Funcționează și fără JS. */
:root:has(> head > meta[name="color-scheme"][content="light"]) { color-scheme: light; }
@media (prefers-color-scheme: dark) {
  :root:not(:has(> head > meta[name="color-scheme"][content="light"])) {
  color-scheme: dark;
  --fg: #f2f2f2; --fg-2: #d6d6d6; --bg: #1c1c1c; --surface: #242424; --field-bg: #151515;
  --soft: #242424; --soft-2: #303030;
  --line: #3a3a3a; --line-strong: #7a7a7a; --muted: #b5b5b5; --rule: #444; --perf: #4a4a4a;
  --header-bg: #1c1c1c; --header-line: #333;
  --inv-bg: #f2f2f2; --inv-fg: #1c1c1c; --inv-hover: #d9d9d9;
  --underline: rgb(242 242 242 / .4); --band-line: rgb(255 255 255 / .16);
  --orange-ink: #ffb75b; --focus: 3px solid #ffa633;
  --archive-ink: #c4c4c4; --disabled-ink: #9a9a9a; --check-accent: #ffa633;
  --ok: #6fd394; --ok-bg: #12301e; --ok-line: #2c5c3d; --ok-badge-bg: #12301e; --ok-badge-ink: #8fe3ad;
  --bad: #ff8f85; --bad-bg: #3a1714; --bad-line: #6e2a24; --bad-badge-bg: #3a1714; --bad-badge-ink: #ffb4ab;
  --warn-bg: #33260f; --warn-ink: #ffcf8a; --warn-line: #6a4a1a; --warn-badge-bg: #3d2c10;
  --shadow: 0 10px 30px rgb(0 0 0 / .45);
  --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23f2f2f2'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.17l3.71-3.94a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");
  }
}
:root:has(> head > meta[name="color-scheme"][content="dark"]) {
  color-scheme: dark;
  --fg: #f2f2f2; --fg-2: #d6d6d6; --bg: #1c1c1c; --surface: #242424; --field-bg: #151515;
  --soft: #242424; --soft-2: #303030;
  --line: #3a3a3a; --line-strong: #7a7a7a; --muted: #b5b5b5; --rule: #444; --perf: #4a4a4a;
  --header-bg: #1c1c1c; --header-line: #333;
  --inv-bg: #f2f2f2; --inv-fg: #1c1c1c; --inv-hover: #d9d9d9;
  --underline: rgb(242 242 242 / .4); --band-line: rgb(255 255 255 / .16);
  --orange-ink: #ffb75b; --focus: 3px solid #ffa633;
  --archive-ink: #c4c4c4; --disabled-ink: #9a9a9a; --check-accent: #ffa633;
  --ok: #6fd394; --ok-bg: #12301e; --ok-line: #2c5c3d; --ok-badge-bg: #12301e; --ok-badge-ink: #8fe3ad;
  --bad: #ff8f85; --bad-bg: #3a1714; --bad-line: #6e2a24; --bad-badge-bg: #3a1714; --bad-badge-ink: #ffb4ab;
  --warn-bg: #33260f; --warn-ink: #ffcf8a; --warn-line: #6a4a1a; --warn-badge-bg: #3d2c10;
  --shadow: 0 10px 30px rgb(0 0 0 / .45);
  --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23f2f2f2'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.17l3.71-3.94a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");
}
/* Logo: două fișiere cu același viewBox (3050×850) → aceeași casetă; se afișează varianta potrivită temei. */
.logo-dark { display: none !important; }
@media (prefers-color-scheme: dark) {
  :root:not(:has(> head > meta[name="color-scheme"][content="light"])) .logo-light { display: none !important; }
  :root:not(:has(> head > meta[name="color-scheme"][content="light"])) .logo-dark { display: block !important; }
}
:root:has(> head > meta[name="color-scheme"][content="dark"]) .logo-light { display: none !important; }
:root:has(> head > meta[name="color-scheme"][content="dark"]) .logo-dark { display: block !important; }
/* Selectorul soare/lună: se vede pictograma temei-țintă (lună pe Light, soare pe Dark), fără JS pentru starea curentă. */
/* Ambele învelișuri sunt transparente pentru flex (display: contents): SVG-ul devine element flex centrat, nu stă pe linia de bază. */
.theme-toggle .to-dark { display: contents; }
.theme-toggle .to-light { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not(:has(> head > meta[name="color-scheme"][content="light"])) .theme-toggle .to-dark { display: none; }
  :root:not(:has(> head > meta[name="color-scheme"][content="light"])) .theme-toggle .to-light { display: contents; }
}
:root:has(> head > meta[name="color-scheme"][content="dark"]) .theme-toggle .to-dark { display: none; }
:root:has(> head > meta[name="color-scheme"][content="dark"]) .theme-toggle .to-light { display: contents; }

/* ---------- 2. Bază ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); -webkit-text-size-adjust: 100%; }
body { margin: 0; color: var(--fg); background: var(--bg); font-family: var(--font-body); font-size: 17px; line-height: 1.7; font-weight: 400; }
@media (max-width: 600px) { body { font-size: 16px; } }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 700; line-height: 1.2; letter-spacing: -.01em; text-wrap: balance; overflow-wrap: normal; hyphens: manual; }
/* Tipografie publică (decizie 2026-10-24): Cinzel simplu pentru toate titlurile; Cinzel Decorative DOAR pentru titlul hero
   al homepage-ului și semnătura „FBA AAAA” din supratitlul lui. Adminul, scannerul, biletele PDF și emailurile nu folosesc site.css. */
.page-home .hero h1 { font-family: var(--font-display); }
/* semnătura secundară „FBA AAAA” din supratitlul hero: Cinzel Decorative, puțin mai mare decât supratitlul (12px) ca cifrele
   să rămână lizibile; poziția, culoarea și punctul portocaliu rămân ale supratitlului */
.hero .hero-signature { font-family: var(--font-display); font-weight: 700; font-size: 15px; letter-spacing: .1em; line-height: 1; }
@media (max-width: 600px) { .hero .hero-signature { font-size: 14px; } }
h1 { font-size: clamp(36px, 4.6vw, 56px); line-height: 1.12; }
h2 { font-size: clamp(28px, 3.2vw, 42px); }
h3 { font-size: clamp(21px, 2vw, 26px); }
h4 { font-size: 19px; }
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; height: auto; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 0; background: none; cursor: pointer; padding: 0; }
button:disabled, [aria-disabled="true"] { cursor: not-allowed; }
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible { outline: var(--focus); outline-offset: 3px; }
::selection { background: var(--orange); color: var(--ink); }
em { font-style: normal; color: var(--orange); }
strong, b { font-weight: 650; }
.visually-hidden:where(:not(:focus-within, :active)) { clip-path: inset(50%); height: 1px; width: 1px; overflow: hidden; position: absolute; white-space: nowrap; }
.skip { position: fixed; top: -100px; left: 16px; z-index: 100; background: var(--surface); color: var(--fg); padding: 12px 16px; border-radius: var(--r-sm); box-shadow: var(--shadow); font-weight: 600; }
.skip:focus { top: 12px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

/* ---------- 3. Structură: header, meniu, footer ---------- */

.site-header { position: sticky; top: 0; z-index: 40; height: var(--header-h); padding: 0 var(--pad-x); display: flex; align-items: center; justify-content: space-between; gap: var(--s5); background: var(--header-bg); border-bottom: 1px solid var(--header-line); }
.site-header .brand { width: 210px; flex-shrink: 0; }
.site-header .brand img { width: 100%; height: 60px; object-fit: contain; }
.site-nav { display: flex; align-items: center; gap: var(--s5); font-size: 15px; font-weight: 500; }
.site-nav a { padding: 10px 0; border-bottom: 2px solid transparent; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.site-nav a:hover { color: var(--orange-ink); }
.site-nav a[aria-current="page"] { border-bottom-color: var(--orange); font-weight: 600; }
.header-actions { display: flex; gap: var(--s3); align-items: center; }
.account-link { display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; padding: 0 var(--s3); font-size: 15px; font-weight: 600; border-radius: var(--r-sm); }
.account-link:hover { background: var(--soft); }
.account-link svg, .icon-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; flex-shrink: 0; }
.icon-btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-sm); }
.icon-btn:hover { background: var(--soft); }
.menu-toggle { display: none; }
@media (max-width: 1100px) {
  .site-header .brand { width: 180px; }
  .site-nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .site-nav.is-open { display: flex; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--header-bg); padding: var(--s2) 5% var(--s5); border-bottom: 1px solid var(--line); box-shadow: 0 18px 24px rgb(0 0 0 / .08); font-size: 17px; max-height: calc(100dvh - var(--header-h)); overflow-y: auto; }
  .site-nav.is-open a { padding: 14px 0; border-bottom: 1px solid var(--soft-2); }
  .site-nav.is-open a[aria-current="page"] { color: var(--orange-ink); }
}
@media (max-width: 600px) {
  .site-header { gap: var(--s3); }
  .site-header .brand { width: 150px; }
  .site-header .brand img { height: 48px; }
  .header-actions { gap: var(--s1); }
  .header-actions .button { display: none; }
  .account-link .label { display: none; }
  .account-link { width: 44px; padding: 0; justify-content: center; }
}

.site-footer { padding: var(--s8) var(--pad-x) var(--s5); background: var(--bg); border-top: 1px solid var(--line); }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--s6); padding-bottom: var(--s7); }
.footer-logo { width: 200px; height: 62px; object-fit: contain; }
.footer-top p { font-size: 15px; color: var(--muted); margin-top: var(--s4); line-height: 1.7; max-width: 34ch; }
.footer-top .fh { font-size: 16px; margin: 6px 0 var(--s4); letter-spacing: 0; }
.footer-top a, .footer-top button { font-size: 15px; line-height: 1.5; display: block; text-align: left; padding: 6px 0; color: var(--muted); }
.footer-top a:hover, .footer-top button:hover { color: var(--fg); }
.footer-bottom { border-top: 1px solid var(--line); padding-top: var(--s5); font-size: 14px; color: var(--muted); display: flex; flex-wrap: wrap; gap: var(--s3) var(--s5); justify-content: space-between; }
.footer-bottom > div { display: flex; gap: var(--s2) var(--s4); flex-wrap: wrap; }
.footer-bottom a, .footer-bottom button { font-size: 14px; color: var(--muted); padding: 4px 0; }
.footer-bottom a:hover, .footer-bottom button:hover { color: var(--fg); }
@media (max-width: 1100px) { .footer-top { grid-template-columns: 1.4fr 1fr; } }
@media (max-width: 600px) {
  .site-footer { padding: var(--s7) var(--pad-x) var(--s5); }
  .footer-top { grid-template-columns: 1fr 1fr; gap: var(--s5) var(--s4); padding-bottom: var(--s6); }
  .footer-top > div:first-child { grid-column: 1 / -1; }
  .footer-logo { width: 160px; height: 50px; }
  body.has-mobile-buy .site-footer { padding-bottom: calc(var(--s5) + 76px + env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) { .footer-top { grid-template-columns: 1fr; } }
/* Header ≤360px: logo + 3 butoane de 44px (temă, cont, meniu) încap fără overflow. */
@media (max-width: 360px) { .site-header .brand { width: 124px; } .site-header .brand img { height: 40px; } .header-actions { gap: 0; } }

/* Bara mobilă de cumpărare: doar când vânzarea este activă (decizie în layout). */
.mobile-buy { display: none; }
@media (max-width: 600px) {
  .mobile-buy { display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 30; justify-content: space-between; align-items: center; gap: var(--s3); background: var(--header-bg); padding: 10px var(--pad-x) calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgb(0 0 0 / .06); }
  .mobile-buy strong { font-size: 14px; font-weight: 600; line-height: 1.35; }
  .mobile-buy .button { display: inline-flex; flex-shrink: 0; }
}

/* ---------- 4. Componente ---------- */
/* Butoane: o singură logică (primar portocaliu, outline, dark), două înălțimi. */
.button { display: inline-flex; align-items: center; justify-content: center; gap: var(--s3); min-height: 52px; padding: 12px 24px; font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--ink); background: var(--orange); border: 1px solid var(--orange); border-radius: var(--r-sm); text-align: center; transition: background .2s, color .2s, border-color .2s; }
.button:hover { background: var(--orange-hover); border-color: var(--orange-hover); }
.button .ar, .button > span[aria-hidden] { font-size: 1.2em; line-height: 1; }
.button.small { min-height: 44px; padding: 8px 18px; font-size: 15px; }
.button.outline { background: transparent; border-color: var(--fg); color: var(--fg); }
.button.outline:hover { background: var(--inv-bg); border-color: var(--inv-bg); color: var(--inv-fg); }
.button.dark { background: var(--inv-bg); border-color: var(--inv-bg); color: var(--inv-fg); }
.button.dark:hover { background: var(--inv-hover); border-color: var(--inv-hover); }
.button.block { width: 100%; }
.button[aria-disabled="true"], .button:disabled { background: var(--soft); border-color: var(--line); color: var(--muted); }
.button[data-loading] { opacity: .7; pointer-events: none; }
.text-link { display: inline-flex; align-items: center; gap: var(--s2); font-weight: 600; font-size: 16px; padding: 6px 0; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--underline); }
.text-link:hover { color: var(--orange-ink); text-decoration-color: currentColor; }
.text-link.light { color: #fff; text-decoration-color: rgb(255 255 255 / .5); }
.actions-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s5); }

/* Antet editorial de pagină: flux normal, stivuit, aceeași axă. */
.page { padding: var(--s8) var(--pad-x) var(--s9); }
.page-head { display: block; position: static; height: auto; margin: 0 0 var(--s7); max-width: 860px; }
.page-head .eyebrow { margin-bottom: var(--s3); }
.page-head h1 { margin: 0; }
.page-head .lead { margin-top: var(--s4); font-size: 19px; line-height: 1.65; color: var(--muted); max-width: 62ch; }
.page-head .steps { margin-bottom: var(--s4); }
.page-head .actions-row { margin-top: var(--s5); }
@media (max-width: 600px) {
  .page { padding: var(--s6) var(--pad-x) var(--s8); }
  .page-head { margin-bottom: var(--s6); }
  .page-head .lead { font-size: 17px; }
  .page-head h1.is-long { font-size: min(36px, 7.4vw); }
}
.eyebrow { font-family: var(--font-body); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 650; color: var(--muted); line-height: 1.5; }
.crumbs { display: flex; flex-wrap: wrap; gap: var(--s2); font-size: 14px; color: var(--muted); margin: 0 0 var(--s5); }
.crumbs a { font-weight: 600; color: var(--fg); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--underline); }

/* Pași comandă */
.steps { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); font-size: 14px; color: var(--muted); list-style: none; padding: 0; }
.steps .active, .steps [aria-current] { color: var(--orange-ink); font-weight: 700; }

/* Text lung */
.prose { max-width: var(--measure); font-size: 17px; line-height: 1.75; overflow-wrap: break-word; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: clamp(24px, 2.6vw, 30px); margin-top: 1.8em; }
.prose h3 { font-size: 22px; margin-top: 1.6em; }
.prose h4 { font-size: 18px; margin-top: 1.4em; }
.prose h2 + *, .prose h3 + *, .prose h4 + * { margin-top: .5em; }
.prose ul, .prose ol { padding-left: 1.4em; margin-bottom: 0; }
.prose li + li { margin-top: .35em; }
.prose em, .prose i { color: inherit; font-style: italic; }
.prose h4 a { text-decoration-thickness: 1px; }
.prose a { color: var(--orange-ink); text-decoration: underline; text-underline-offset: 3px; }
.prose img { height: auto; border-radius: var(--r-sm); }
.prose figure { margin-top: 1.2em; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.prose .table-wrap, .prose table { margin-top: 1.2em; }
.prose table { border-collapse: collapse; width: 100%; font-size: 16px; }
.prose td, .prose th { border: 1px solid var(--line); padding: 8px 10px; text-align: left; vertical-align: top; }
.prose video { width: 100%; max-width: 720px; }
.prose iframe { max-width: 100%; }
.prose pre { white-space: pre-wrap; }
.prose .cms-row { display: grid; gap: var(--s5); }
.prose .cms-row:has(> [data-width="1/2"]) { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.prose .cms-col > * + * { margin-top: 1em; }
.prose .cms-iconbox { background: var(--soft); padding: var(--s4) var(--s5); border-radius: var(--r); }
.prose .cms-iconbox h4 { margin: 0 0 var(--s2); }
.prose [style*="text-align: center"] { text-align: left !important; }
.prose .legal-number { font-variant-numeric: tabular-nums; }
/* Roșul de avertizare din conținutul importat (stil inline WP) → tokenul de eroare al temei, lizibil pe Light și Dark. */
.prose :is([style*="#ff0000" i], [style*="#d32f2f" i], [style*="color: red" i], [style*="color:red" i]) { color: var(--bad) !important; }
.table-wrap { overflow-x: auto; }

/* Carduri, notificări, stări */
.card { border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); padding: var(--s6); }
.card.soft { background: var(--soft); border-color: transparent; }
.card > h2:first-child, .card > h3:first-child { margin-bottom: var(--s4); }
.card-title { font-size: 24px; margin-bottom: var(--s4); }
@media (max-width: 600px) { .card { padding: var(--s5) var(--s4); } }
.notice { display: block; border: 1px solid var(--warn-line); background: var(--warn-bg); padding: var(--s4) var(--s5); border-radius: var(--r-sm); font-size: 16px; line-height: 1.6; margin: 0 0 var(--s5); }
.notice.ok { border-color: var(--ok-line); background: var(--ok-bg); }
.notice.bad { border-color: var(--bad-line); background: var(--bad-bg); }
.notice.info { border-color: var(--line); background: var(--soft); }
.notice ul { margin: var(--s2) 0 0; padding-left: 1.2em; }
.notice a { text-decoration: underline; text-underline-offset: 3px; }
.state-card { border: 1px solid var(--line); border-radius: var(--r); padding: var(--s6); background: var(--soft); }
.state-card h2, .state-card h3 { font-size: 24px; margin-bottom: var(--s3); }
.state-card p { color: var(--muted); max-width: 62ch; }
.state-card .actions-row { margin-top: var(--s5); }
.badge { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .05em; padding: 3px 9px; border-radius: 3px; background: var(--soft-2); color: var(--fg); text-transform: uppercase; white-space: nowrap; }
.badge.ok { background: var(--ok-badge-bg); color: var(--ok-badge-ink); }
.badge.bad { background: var(--bad-badge-bg); color: var(--bad-badge-ink); }
.badge.warn { background: var(--warn-badge-bg); color: var(--warn-ink); }
.badge.archive { background: var(--inv-bg); color: var(--inv-fg); }
.toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: var(--ink); color: #fff; border: 1px solid var(--band-line); padding: 12px 20px; border-radius: var(--r-sm); z-index: 100; display: none; }
.toast.show { display: block; }

/* Formulare */
.form { max-width: 760px; }
.form-section { border: 0; padding: 0; margin: var(--s6) 0 0; min-width: 0; }
.form-section:first-of-type { margin-top: 0; }
.form-section > legend { float: left; width: 100%; }
.form-section > legend + * { clear: both; }
.form-section > legend, .form-section-title { font-family: var(--font-heading); font-size: 21px; font-weight: 700; padding: 0; margin-bottom: var(--s4); }
.field { margin: 0 0 var(--s5); min-width: 0; }
.field > label, .field-label { display: block; font-weight: 600; font-size: 16px; margin: 0 0 var(--s2); }
.field .req { color: var(--bad); margin-left: 2px; }
.field .opt { color: var(--muted); font-weight: 400; font-size: 14px; }
.field :is(input:not([type=checkbox], [type=radio]), select, textarea), .input { width: 100%; min-height: 50px; padding: 12px 14px; font-size: 17px; line-height: 1.4; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--field-bg); color: var(--fg); }
.field textarea { min-height: 140px; resize: vertical; }
/* Select: o singură pictogramă (fără săgeata nativă), chevron la 16px de bordură, 48px rezervați textului. */
.field :is(select):not([multiple]), select.input:not([multiple]) { appearance: none; -webkit-appearance: none; background-image: var(--chevron); background-repeat: no-repeat; background-position: right 16px center; background-size: 20px 20px; padding-right: 48px; text-overflow: ellipsis; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--fg); }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: var(--focus); outline-offset: 1px; border-color: var(--fg); }
.field :is(input, select, textarea):is([aria-invalid="true"], :user-invalid) { border-color: var(--bad); border-width: 2px; }
.field .err, .err { color: var(--bad); font-size: 15px; margin-top: 6px; font-weight: 500; }
.field .err::before, p.err::before { content: '! '; font-weight: 700; }
.err:empty::before { content: none; }
.field .hint, .hint { color: var(--muted); font-size: 14px; margin-top: 6px; line-height: 1.5; }
.inline-field { display: flex; gap: var(--s2); }
.inline-field > input { flex: 1; min-width: 0; }
.inline-field > .button { flex-shrink: 0; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--s5); }
.grid-2 > * { min-width: 0; }
@media (max-width: 600px) { .grid-2 { grid-template-columns: 1fr; } }
.check { display: flex; gap: var(--s3); align-items: flex-start; font-size: 16px; line-height: 1.55; margin: var(--s4) 0; cursor: pointer; }
.check input { width: 22px; height: 22px; margin: 1px 0 0; flex-shrink: 0; accent-color: var(--check-accent); }
.check a { text-decoration: underline; text-underline-offset: 3px; }
.choice-group { display: grid; gap: var(--s2); }
.choice-group .check { margin: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); }
.choice-group .check:has(input:checked) { border-color: var(--fg); background: var(--soft); }
.form .button[type=submit] { margin-top: var(--s3); }
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Tabele de date */
.data-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.data-table th { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 650; }
.data-table th, .data-table td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.data-table td.n, .data-table th.n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.data-table small { color: var(--muted); font-size: 14px; }
@media (max-width: 600px) {
  .data-table.stack thead { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
  .data-table.stack tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .data-table.stack td { border: 0; padding: 0; }
  .data-table.stack td[data-label]::before { content: attr(data-label) ': '; color: var(--muted); font-size: 14px; }
  .data-table.stack td.n { text-align: left; }
}

/* Cantitate */
.qty { display: flex; align-items: center; gap: var(--s2); }
.qty button { border: 1px solid var(--line-strong); border-radius: var(--r-sm); width: 48px; height: 48px; font-size: 22px; background: var(--field-bg); color: var(--fg); }
.qty button:hover { border-color: var(--fg); }
.qty input { width: 80px !important; text-align: center; }

/* Layout pe două coloane (conținut + rezumat) */
.layout-2 { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--s7); align-items: start; }
@media (max-width: 900px) { .layout-2 { grid-template-columns: minmax(0, 1fr); gap: var(--s6); } }
.summary { position: sticky; top: calc(var(--header-h) + 24px); }
.summary h2, .summary h3 { font-size: 22px; margin-bottom: var(--s3); }
.summary .line { display: flex; justify-content: space-between; gap: var(--s4); padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
.summary .line > span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.summary .total { display: flex; justify-content: space-between; align-items: baseline; padding-top: var(--s4); font-size: 18px; }
.summary .total strong { font-size: 30px; font-variant-numeric: tabular-nums; }
.summary .price { font-size: 46px; }
@media (max-width: 900px) { .summary { position: static; } }

/* Dialog / lightbox */
dialog.modal { border: 0; padding: 0; border-radius: var(--r); width: min(720px, calc(100% - 32px)); max-height: 90dvh; color: var(--fg); background: var(--surface); box-shadow: 0 20px 90px rgb(0 0 0 / .3); }
dialog.modal::backdrop { background: rgb(0 0 0 / .65); }
.dialog-head { position: sticky; top: 0; z-index: 2; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: var(--s2) var(--s2) var(--s2) var(--s5); font-size: 14px; font-weight: 600; letter-spacing: .04em; }
#dialog-content { padding: var(--s5); }
#dialog-content img { max-height: 70dvh; margin: auto; object-fit: contain; }
dialog.lightbox { width: min(1200px, calc(100% - 24px)); max-height: 96dvh; background: #111; color: #fff; }
dialog.lightbox .dialog-head { background: #111; border-color: #333; color: #fff; }
dialog.lightbox .icon-btn:hover { background: #2a2a2a; }
.lb-stage { position: relative; display: flex; align-items: center; justify-content: center; padding: var(--s3); min-height: 50dvh; }
.lb-stage img { max-height: calc(96dvh - 140px); width: auto; margin: auto; object-fit: contain; }
.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; background: rgb(0 0 0 / .55); color: #fff; display: grid; place-items: center; }
.lb-nav:hover { background: rgb(0 0 0 / .8); }
.lb-nav svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; }
.lb-prev { left: 12px; } .lb-next { right: 12px; }
.lb-foot { display: flex; justify-content: space-between; gap: var(--s3); padding: var(--s2) var(--s5) var(--s4); font-size: 14px; color: #ccc; }
.lb-count { font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .lb-nav { width: 44px; height: 44px; } .lb-prev { left: 6px; } .lb-next { right: 6px; } .lb-stage { padding: var(--s2) 0; } }

/* Consimțământ cookies: compact, nu acoperă bara mobilă */
.cookie-bar { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; margin: 0 auto; max-width: 900px; background: var(--ink); color: #fff; border: 1px solid var(--band-line); border-radius: var(--r); padding: var(--s4) var(--s5); display: flex; gap: var(--s3) var(--s5); align-items: center; justify-content: space-between; flex-wrap: wrap; box-shadow: 0 10px 40px rgb(0 0 0 / .35); }
.cookie-bar p { font-size: 15px; line-height: 1.55; flex: 1 1 320px; }
.cookie-bar p a { color: var(--orange); text-decoration: underline; }
.cookie-bar .actions { display: flex; gap: var(--s2); flex-wrap: wrap; }
.cookie-bar .button { min-height: 44px; padding: 8px 18px; font-size: 15px; }
.cookie-bar .button.outline { border-color: #fff; color: #fff; }
.cookie-bar .button.outline:hover { background: #fff; color: var(--ink); }
@media (max-width: 600px) {
  .cookie-bar { left: 8px; right: 8px; bottom: 8px; padding: var(--s3) var(--s4); gap: var(--s3); }
  body.has-mobile-buy .cookie-bar { bottom: calc(76px + env(safe-area-inset-bottom)); }
  .cookie-bar p { font-size: 14px; flex-basis: 100%; }
  .cookie-bar .actions { width: 100%; }
  .cookie-bar .actions .button { flex: 1; }
}

/* Paginare, taburi an, navigație cont */
.pagination { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; margin-top: var(--s6); }
.pagination a, .pagination span { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 0 12px; font-weight: 600; }
.pagination a:hover { border-color: var(--fg); }
.pagination [aria-current] { background: var(--inv-bg); color: var(--inv-fg); border-color: var(--inv-bg); }
.pagination .gap { border: 0; min-width: 20px; }
.tabs { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0 0 var(--s6); padding: 0; list-style: none; }
.tabs a { display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; padding: 8px 16px; border: 1px solid var(--line); border-radius: var(--r-sm); font-weight: 600; font-size: 16px; }
.tabs a:hover { border-color: var(--fg); }
.tabs a[aria-current] { background: var(--inv-bg); color: var(--inv-fg); border-color: var(--inv-bg); }
.tabs a small { font-weight: 400; font-size: 13px; opacity: .8; }

/* Arrow icon (SVG inline, același set cu header) */
.ico { width: 1em; height: 1em; display: inline-block; vertical-align: -.12em; fill: none; stroke: currentColor; stroke-width: 2; flex-shrink: 0; }

/* ---------- 5. Pagini ---------- */
/* 5.1 Homepage (direcția rev2) */
.section { padding: var(--s9) var(--pad-x); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s6); margin-bottom: var(--s6); }
.section-heading .eyebrow { margin-bottom: var(--s3); }
.section-heading > p { font-size: 17px; line-height: 1.7; color: var(--muted); max-width: 46ch; }
@media (max-width: 800px) { .section-heading { flex-direction: column; align-items: flex-start; gap: var(--s4); } .section-heading > p br { display: none; } }
@media (max-width: 600px) { .section { padding: var(--s8) var(--pad-x); } }

.hero { position: relative; overflow: hidden; background: var(--ink); color: #fff; min-height: 720px; }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
/* Încadrare: fața artistei (≈49–53% x, 30–37% y din sursă) rămâne în dreapta titlului (măsurat cu qa/hero-face.mjs).
   Desktop: cadrul fotografiei e mai lat cu 160px și ancorat la stânga → subiectul se mută spre dreapta, fundalul rămâne full width. */
@media (min-width: 801px) { .hero-img { width: calc(100% + 160px); max-width: none; right: auto; object-position: 0 45%; } }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / .86), rgb(0 0 0 / .46) 47%, rgb(0 0 0 / .1)), linear-gradient(0deg, rgb(0 0 0 / .65), transparent 40%); }
.hero-content { position: relative; z-index: 1; min-height: 720px; padding: var(--s7) var(--pad-x) var(--s6); display: flex; flex-direction: column; align-items: flex-start; }
.hero .eyebrow { color: #fff; margin-bottom: var(--s5); }
.live-dot { display: inline-block; width: 7px; height: 7px; background: var(--orange); border-radius: 50%; margin-right: 10px; vertical-align: 2px; }
.sep { margin: 0 12px; color: #bbb; }
.hero h1 { font-size: clamp(60px, 5.6vw, 72px); line-height: 1.1; letter-spacing: -.02em; max-width: none; margin-bottom: var(--s5); }
.hero h1 em { font-size: 1em; display: block; color: var(--orange); } /* rândul 2 integral portocaliu */
.hero-description { font-size: 19px; line-height: 1.7; color: #eee; max-width: 40ch; }
.hero-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s6); margin-top: var(--s6); }
.hero-bottom { display: flex; align-items: center; gap: var(--s6); margin-top: auto; padding-top: var(--s6); width: 100%; }
.date { display: flex; align-items: center; gap: 14px; }
.date strong { font-size: 42px; line-height: 1; font-weight: 650; letter-spacing: -.04em; }
.date span { font-size: 14px; letter-spacing: .12em; line-height: 1.5; }
.hero-note { font-family: var(--font-heading); font-weight: 700; font-size: 16px; line-height: 1.4; letter-spacing: .02em; color: #eee; border-left: 1px solid #666; padding-left: var(--s5); }
.hero-state { display: inline-flex; align-items: center; gap: var(--s2); background: rgb(255 255 255 / .12); border: 1px solid rgb(255 255 255 / .25); padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: .04em; margin-bottom: var(--s4); }
.round-link { margin-left: auto; border: 1px solid rgb(255 255 255 / .4); width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; }
.vertical-label { position: absolute; right: 25px; top: 65px; writing-mode: vertical-rl; font-size: 11px; letter-spacing: .18em; color: #eee; }
@media (max-width: 1100px) { .hero h1 { font-size: clamp(52px, 5.8vw, 64px); } }
@media (max-width: 800px) { .vertical-label { display: none; } .hero h1 { font-size: 52px; max-width: 500px; } .hero-img { object-position: 0 center; } .hero-shade { background: linear-gradient(90deg, rgb(0 0 0 / .75), rgb(0 0 0 / .4)), linear-gradient(0deg, rgb(0 0 0 / .55), transparent 70%); } }
@media (max-width: 600px) {
  .hero, .hero-content { min-height: 640px; }
  .hero-content { padding: var(--s6) var(--pad-x) var(--s5); }
  .hero .eyebrow { font-size: 11px; margin-bottom: var(--s5); }
  .sep { margin: 0 6px; }
  .hero h1 { font-size: clamp(38px, 11.6vw, 48px); line-height: 1.12; max-width: 100%; }
  .hero-description { font-size: 17px; }
  .hero-buttons { flex-direction: column; align-items: flex-start; gap: var(--s4); }
  .hero-buttons .button { width: 100%; max-width: 320px; justify-content: space-between; }
  .hero-bottom { gap: var(--s3); flex-wrap: wrap; }
  .date strong { font-size: 32px; }
  .date span { font-size: 12px; }
  .hero-note { font-size: 14px; padding-left: var(--s3); }
  .round-link { display: none; }
  .hero-img { top: auto; bottom: 0; height: 120%; max-height: none; object-position: 36% center; }
}
/* Hero cu încadrare dedicată (setarea home.hero_image_mobile): pe desktop/tabletă fotografia ocupă dreapta și se
   topește spre stânga în fundalul ink, deci subiectul stă lângă titlu, nu sub el; pe mobil (≤600px) un crop separat
   al aceleiași fotografii stă jos, sub butoane, cu marginea de sus estompată. */
@media (min-width: 601px) {
  .hero.is-framed .hero-img { left: auto; right: 0; width: 72%; max-width: none; object-position: 50% 58%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%); mask-image: linear-gradient(90deg, transparent, #000 30%); }
  .hero.is-framed .hero-shade { background: linear-gradient(90deg, rgb(0 0 0 / .72), rgb(0 0 0 / .3) 45%, transparent 75%), linear-gradient(0deg, rgb(0 0 0 / .65), transparent 40%); }
}
@media (min-width: 601px) and (max-width: 800px) { .hero.is-framed .hero-img { width: 62%; object-position: 22% 58%; } }
/* Hero „full” (setarea home.hero_desktop = full, ≥601px): fotografia pe toată lățimea, poziția din home.hero_position
   (--hero-pos), degrade spre negru doar în stânga, sub text; jumătatea dreaptă rămâne luminoasă. Mobilul păstrează cropul dedicat. */
@media (min-width: 601px) {
  .hero.is-framed.is-full .hero-img { left: 0; right: 0; width: 100%; max-width: none; -webkit-mask-image: none; mask-image: none; object-position: var(--hero-pos, 50% 50%); }
  .hero.is-framed.is-full .hero-shade { background: linear-gradient(90deg, rgb(0 0 0 / .84) 0%, rgb(0 0 0 / .6) 30%, rgb(0 0 0 / .16) 58%, transparent 78%), linear-gradient(0deg, rgb(0 0 0 / .62), transparent 34%); }
}
@media (max-width: 600px) {
  .hero.is-framed, .hero.is-framed .hero-content { min-height: 740px; } /* fotografia începe sub butoane, nu în spatele lor */
  .hero.is-framed .hero-img { top: auto; bottom: 0; height: auto; object-fit: cover; -webkit-mask-image: linear-gradient(180deg, transparent, #000 34%); mask-image: linear-gradient(180deg, transparent, #000 34%); }
  .hero.is-framed .hero-shade { background: linear-gradient(0deg, rgb(0 0 0 / .75), transparent 26%); }
}

.ticker { background: var(--orange); color: var(--ink); display: flex; justify-content: space-around; align-items: center; gap: var(--s5); padding: 16px 25px; overflow: hidden; white-space: nowrap; font-size: 14px; font-weight: 700; letter-spacing: .06em; }
.ticker b { font-size: 20px; line-height: 1; }
@media (max-width: 800px) { .ticker { justify-content: flex-start; font-size: 12px; } }
/* un singur mesaj repetat: doar copiile întregi, ✳ la ambele capete */
.ticker.is-repeat { justify-content: space-evenly; }
@media (max-width: 1279px) { .ticker.is-repeat > span:nth-of-type(4), .ticker.is-repeat > b:nth-of-type(5) { display: none; } }
@media (max-width: 999px) { .ticker.is-repeat > span:nth-of-type(3), .ticker.is-repeat > b:nth-of-type(4) { display: none; } }
@media (max-width: 800px) { .ticker.is-repeat { justify-content: space-evenly; gap: var(--s4); } }
@media (max-width: 640px) { .ticker.is-repeat { justify-content: center; } .ticker.is-repeat > span:nth-of-type(n+2), .ticker.is-repeat > b:nth-of-type(n+3) { display: none; } }

.ticket-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); padding-top: 14px; }
.ticket-grid.has-4 { grid-template-columns: repeat(4, 1fr); } /* cu „Pe încredere” (blind sale) primul */
.ticket-card { position: relative; border: 1px solid var(--line); border-radius: var(--r); padding: 28px 26px 26px; background: var(--surface); display: flex; flex-direction: column; }
/* Repere comune: fiecare card ocupă aceleași 7 rânduri ale grilei părinte (antet, titlu, text, preț, perforație,
   beneficii, acțiune), deci titlurile pe două rânduri, nota Family Pack și listele aliniază tot rândul de carduri.
   Pe mobil fiecare card are rândurile lui, iar sloturile goale au înălțime 0. */
@supports (grid-template-rows: subgrid) {
  .ticket-card { display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
  .ticket-card > .button, .ticket-card > .archive-note { align-self: end; }
}
.ticket-card.featured { border: 2px solid var(--fg); padding: 27px 25px 25px; }
.ticket-card.is-archive { background: var(--soft); }
.popular { position: absolute; top: -14px; right: 20px; background: var(--orange); color: var(--ink); font-size: 11px; font-weight: 700; letter-spacing: .08em; padding: 5px 12px; border-radius: 3px; }
.ticket-card.is-archive .popular { background: var(--inv-bg); color: var(--inv-fg); }
.ticket-top { display: flex; justify-content: space-between; align-items: center; gap: var(--s2); font-size: 12px; letter-spacing: .06em; font-weight: 600; margin-bottom: var(--s5); color: var(--muted); }
.ticket-card h3 { font-size: 25px; margin-bottom: var(--s2); }
.ticket-card > p { font-size: 16px; color: var(--muted); margin-bottom: var(--s5); }
.ticket-price { align-self: start; }
.price { font-family: var(--font-body); font-size: 50px; font-weight: 600; letter-spacing: -.03em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.price span { font-size: 15px; font-weight: 400; color: var(--muted); letter-spacing: 0; }
.ticket-card.is-archive .price { color: var(--archive-ink); }
.pack-unit { font-size: 14px; margin-top: var(--s2); color: var(--muted); }
/* Preț neanunțat (x-price-soon): cifre decorative în buclă continuă (benzi de 10 + 1 cifre, liniar, fără salt la reluare)
   și, dedesubt, „Prețul va fi anunțat”. Banda apare doar cu JS și fără reduced-motion, decis de CSS de la prima pictare
   (fără salt de layout); altfel doar mesajul, mai vizibil. Pauză: .is-paused (buton), .is-offscreen, html.is-hidden-tab. */
.price.price-soon { position: relative; display: grid; gap: 2px; font-size: 34px; letter-spacing: -.01em; }
.price.price-soon .soon-reel, .price.price-soon .soon-pause { display: none; }
.price.price-soon .soon-note { font-size: 20px; font-weight: 600; letter-spacing: 0; line-height: 1.35; color: var(--fg); }
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
  .price.price-soon .soon-reel { display: flex; gap: .03em; height: 1.1em; overflow: hidden; font-size: 1em; color: var(--muted); }
  .price.price-soon .soon-note { font-size: 14px; font-weight: 400; line-height: 1.4; color: var(--muted); }
  .price.price-soon .soon-pause:not([hidden]) { display: inline-grid; }
}
.soon-reel i { display: flex; flex-direction: column; font-style: normal; animation: soon-spin var(--t, 2s) linear var(--o, 0s) infinite; }
.soon-reel b { display: block; height: 1.1em; line-height: 1.1; font-weight: 600; }
.price-soon.is-paused .soon-reel i, .price-soon.is-offscreen .soon-reel i, .is-hidden-tab .soon-reel i { animation-play-state: paused; }
@keyframes soon-spin { from { transform: translateY(0); } to { transform: translateY(-11em); } }
.price.price-soon .soon-pause { position: absolute; top: -1px; right: 0; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: 16px; }
.price.price-soon .soon-pause:hover { color: var(--fg); border-color: var(--fg); }
.soon-pause .ico-play, .price-soon.is-paused .soon-pause .ico-pause { display: none; }
.price-soon.is-paused .soon-pause .ico-play { display: inline-block; }

/* Oferta de lansare (partials/launch-offer, setarea home.launch_enabled): card principal + bilete pe zile alături (desktop),
   etapele dedesubt. Stilul de bilet existent, în flux (nu în .ticket-grid cu subgrid). Prețurile pe zile/etape sunt propuneri. */
.launch .ticket-card { display: flex; flex-direction: column; grid-row: auto; grid-template-rows: none; }
.launch .ticket-card > .button { margin-top: auto; }
.launch { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s6); align-items: start; padding-top: 14px; }
.launch.no-days { grid-template-columns: minmax(0, 560px); }
.launch-card { padding: 32px 30px 30px; }
.launch-card .launch-title { font-size: clamp(34px, 3.2vw, 44px); line-height: 1.05; margin-bottom: var(--s2); }
.launch-card .launch-title .num { font-family: var(--font-body); font-weight: 800; letter-spacing: -.02em; font-variant-numeric: lining-nums tabular-nums; }
.launch-card .launch-kind { align-self: flex-start; font-size: 13px; font-weight: 700; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); background: var(--orange); padding: 5px 10px 4px; border-radius: var(--r-sm); margin-bottom: var(--s4); } /* etichetă: #1C1C1C pe #FFA633 */
.launch-card .launch-text { font-size: 21px; line-height: 1.45; color: var(--fg); margin-bottom: var(--s6); max-width: 36ch; text-wrap: balance; }
.launch-card .price { font-size: 64px; }
.launch-card .pack-unit { font-size: 15px; font-weight: 600; color: var(--fg); }
.launch-card .perforation { margin: var(--s7) -30px var(--s6); }
.launch-card .launch-explain { font-size: 17px; line-height: 1.6; color: var(--muted); margin-bottom: var(--s6); }
.launch-card > span.button { justify-content: center; }
.launch-head { margin-bottom: var(--s4); }
.launch-head h3 { font-size: clamp(22px, 2vw, 26px); margin-bottom: var(--s2); }
.launch-head p { color: var(--muted); font-size: 15px; max-width: 62ch; }
.launch-head.is-row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s5); }
.launch-head.is-row h3 { margin-bottom: 0; }
.launch-days { display: flex; flex-direction: column; }
.launch-day-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.launch-day { padding: 22px; }
.launch-day .ticket-top { margin-bottom: var(--s3); }
.launch-day h3 { font-size: 23px; margin-bottom: var(--s3); }
.launch-day .price { font-size: 42px; }
.launch-day .price span { white-space: nowrap; }
.launch-day .pack-unit { font-size: 12px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.launch-day .perforation { margin: var(--s5) -22px var(--s4); }
.launch .launch-day .button { font-size: 15px; justify-content: center; gap: var(--s2); }
.launch-day .button .ico { width: 16px; height: 16px; }
.launch-stages { margin-top: var(--s8); }
.launch-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--surface); }
.launch-steps li { display: grid; gap: 4px; align-content: start; padding: 20px 22px 22px; border-left: 1px dashed var(--perf); }
.launch-steps li:first-child { border-left: 0; }
.launch-steps li.is-launch { background: var(--orange); color: var(--ink); }
.launch-step-n { font-size: 12px; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.launch-steps li.is-launch .launch-step-n, .launch-steps li.is-launch .launch-step-note { color: var(--ink); }
.launch-steps strong { font-size: 34px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.launch-step-note { font-size: 14px; color: var(--muted); }
.launch-chip { justify-self: start; margin-top: 6px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--line); font-size: 12px; font-weight: 650; letter-spacing: .04em; color: var(--muted); }
/* desktop: cardul ocupă exact cele două rânduri ale zilelor (titlul zilelor pe rândul 1, subgrid), prețul și acțiunea jos */
@media (min-width: 1101px) {
  .launch:not(.no-days) { grid-template-rows: auto auto auto; row-gap: 0; align-items: stretch; }
  .launch:not(.no-days) .launch-card { grid-column: 1; grid-row: 2 / 4; }
  .launch:not(.no-days) .launch-days { grid-column: 2; grid-row: 1 / 4; display: grid; grid-template-rows: subgrid; }
  .launch:not(.no-days) .launch-day-grid { grid-row: 2 / 4; grid-template-rows: subgrid; row-gap: var(--s4); }
  .launch:not(.no-days) .launch-card .ticket-price { margin-top: auto; }
}
/* Hero de campanie (partials/campaign-hero): un singur anunț principal; identitatea (FBA AAAA, data, nota) rămâne */
.hero.is-campaign { min-height: 0; display: flex; flex-direction: column; }
.campaign-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--s7); align-items: center; padding: var(--s7) var(--pad-x) var(--s5); }
.campaign-copy { display: flex; flex-direction: column; align-items: flex-start; }
.hero.is-campaign h1 { color: var(--orange); overflow-wrap: break-word; }
.hero.is-campaign h1 .num { font-family: var(--font-body); font-weight: 800; letter-spacing: -.02em; font-variant-numeric: lining-nums; }
/* titlul unei campanii-ofertă (ex. „PRIMII 1001”): Cinzel simplu 700, ca titlul ofertei din cardul homepage (decizie 2026-10-24);
   cifrele rămân în Work Sans (.num). Titlul hero al homepage-ului și „FBA AAAA” rămân în Cinzel Decorative. */
.hero.is-campaign.is-offer h1 { font-family: var(--font-heading); font-weight: 700; letter-spacing: 0; }
.campaign-price { margin-top: var(--s5); }
.campaign-price .price { font-size: 56px; color: #fff; }
.campaign-price .price span { color: #ddd; }
.campaign-state { margin-top: var(--s2); font-size: 15px; font-weight: 600; color: #eee; }
.hero.is-campaign .countdown { align-self: stretch; max-width: 34rem; } /* lățime stabilă, indiferent de textul explicativ */
.hero.is-campaign .countdown-when { color: #fff; }
.hero.is-campaign .countdown-label, .hero.is-campaign .countdown-zero { color: #ccc; }
.campaign-visual { margin: 0; }
.campaign-visual img { display: block; width: 100%; aspect-ratio: 4 / 5; max-height: 620px; object-fit: cover; object-position: var(--pos, 50% 50%); border-radius: var(--r); }
.campaign-placeholder { aspect-ratio: 4 / 5; max-height: 620px; border: 1px dashed rgb(255 255 255 / .45); border-radius: var(--r); display: grid; place-content: center; text-align: center; gap: var(--s2); padding: var(--s5); background: #262626; }
.campaign-placeholder span { font-family: var(--font-heading); font-size: 22px; font-weight: 700; }
.campaign-placeholder small { color: #ccc; }
.campaign-bottom { padding: 0 var(--pad-x) var(--s6); margin-top: 0; }
.campaign-lineup-head { margin-bottom: var(--s4); }
.campaign-lineup-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--s4); }
.campaign-lineup-list a { display: flex; align-items: center; gap: var(--s3); padding: var(--s3); border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); }
.campaign-lineup-list li.is-new a { border: 2px solid var(--fg); }
.campaign-lineup-list img, .campaign-lineup-list .thumb { flex: none; width: 56px; height: 56px; object-fit: cover; border-radius: var(--r-sm); background: var(--soft-2); }
.campaign-lineup-list b { font-family: var(--font-heading); font-size: 18px; }
@media (max-width: 900px) {
  .campaign-in { grid-template-columns: minmax(0, 1fr); gap: var(--s5); padding-top: var(--s5); }
  .campaign-visual { order: -1; }
  .campaign-visual img, .campaign-placeholder { aspect-ratio: 4 / 3; max-height: none; object-position: var(--pos-m, 50% 50%); }
}
@media (max-width: 600px) { .campaign-price .price { font-size: 44px; } .hero.is-campaign h1.is-long { font-size: clamp(30px, 8.6vw, 40px); } .preview-flag { font-size: 11px; padding: 6px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
/* Pagina de artist (/artisti/{slug}) */
.artist-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: var(--s7); align-items: start; }
.artist-copy h1 { margin: var(--s3) 0 var(--s5); overflow-wrap: anywhere; }
.artist-copy .actions-row { margin-top: var(--s6); display: flex; flex-wrap: wrap; gap: var(--s4) var(--s6); align-items: center; }
.artist-visual { margin: 0; }
.artist-visual img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: var(--pos, 50% 50%); border-radius: var(--r); }
@media (max-width: 900px) { .artist-layout { grid-template-columns: minmax(0, 1fr); gap: var(--s5); } .artist-visual { order: -1; } .artist-visual img { aspect-ratio: 4 / 3; object-position: var(--pos-m, 50% 50%); } }
/* Previzualizare privată: etichetă vizibilă, în afara fluxului */
.preview-flag { position: fixed; z-index: 95; left: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 8px 12px; border-radius: var(--r-sm); background: var(--ink); color: #fff; font-size: 13px; line-height: 1.4; box-shadow: 0 6px 24px rgb(0 0 0 / .25); }
.preview-flag b { color: var(--orange); letter-spacing: .08em; }
.preview-flag a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
/* „Previzualizare curată”: comutator discret înapoi la explicații (doar în previzualizarea privată). Bandă subțire lipită sub
   header (zona fixă de sus): nu plutește peste conținut, butoane sau bannerul de cookie-uri; fundal opac al temei, fără opacitate. */
/* .preview-toggle-bar = spațiu rezervat în flux (conținutul începe sub bandă); .preview-toggle-strip = banda fixată sub header pe toată pagina */
.preview-toggle-bar { height: 35px; }
.preview-toggle-strip { position: fixed; top: var(--header-h); left: 0; right: 0; z-index: 39; height: 35px; box-sizing: border-box; display: flex; justify-content: flex-end; align-items: center; padding: 0 var(--pad-x); background: var(--header-bg); border-bottom: 1px solid var(--header-line); }
.preview-toggle { display: inline-flex; align-items: center; min-height: 26px; padding: 2px 12px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--header-bg); color: var(--fg); font-size: 12px; font-weight: 600; line-height: 1.4; }
.preview-toggle:hover { background: var(--soft); text-decoration: underline; text-underline-offset: 2px; }
.preview-toggle:focus-visible { outline: var(--focus); outline-offset: 2px; }
html:has(.preview-toggle-bar) { scroll-padding-top: calc(var(--header-h) + 16px + 35px); }

/* Countdown (componenta x-countdown): cifrele sunt decorative; fraza .countdown-when e textul accesibil și varianta fără JS */
.countdown { margin: var(--s2) 0 var(--s5); }
.countdown-label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s2); }
.countdown-demo { display: inline-block; margin-left: var(--s2); padding: 2px 8px; border-radius: var(--r-sm); background: var(--ink); color: var(--orange); letter-spacing: .06em; }
.countdown-cells { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s2); margin-bottom: var(--s3); }
.countdown-cells[hidden] { display: none; }
.countdown-cells span { display: grid; justify-items: center; gap: 2px; padding: 10px 4px 8px; border-radius: var(--r-sm); background: var(--ink); color: #fff; }
.countdown-cells b { font-size: 30px; line-height: 1.1; font-weight: 700; color: var(--orange); font-variant-numeric: tabular-nums; }
.countdown-cells i { font-style: normal; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #ddd; }
.countdown-when { font-size: 15px; font-weight: 600; color: var(--fg); }
.countdown-zero { margin-top: var(--s2); font-size: 15px; color: var(--muted); }
@media (prefers-reduced-motion: reduce) { .countdown .countdown-s { display: none; } .countdown-cells { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .countdown-cells b { font-size: 26px; } }

@media (max-width: 1100px) { .launch { grid-template-columns: minmax(0, 1fr); gap: var(--s7); } .launch-card { padding: 28px 24px 26px; } .launch-card .perforation { margin-left: -24px; margin-right: -24px; } }
@media (max-width: 900px) { .launch-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .launch-steps li:nth-child(3) { border-left: 0; } .launch-steps li:nth-child(n+3) { border-top: 1px dashed var(--perf); } }
@media (max-width: 800px) { .launch { grid-template-columns: minmax(0, 1fr); gap: var(--s7); } .launch-head.is-row { flex-direction: column; align-items: flex-start; gap: var(--s2); } }
@media (max-width: 600px) {
  .launch-card { padding: 26px 22px 24px; } .launch-card .perforation { margin-left: -22px; margin-right: -22px; margin-top: var(--s6); margin-bottom: var(--s5); }
  .launch-card > span.button { padding-left: 12px; padding-right: 12px; font-size: 15px; white-space: nowrap; }
  .launch-card .launch-title { font-size: 34px; } .launch-card .price { font-size: 52px; } .launch-card .launch-text { font-size: 19px; margin-bottom: var(--s5); }
  .launch-day-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
  .launch .launch-day { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto auto auto; grid-template-areas: "top price" "day price" "perf perf" "btn btn"; column-gap: var(--s4); align-items: center; padding: 18px 20px; }
  .launch-day .ticket-top { grid-area: top; margin-bottom: 2px; }
  .launch-day h3 { grid-area: day; margin: 0; font-size: 22px; }
  .launch-day .ticket-price { grid-area: price; text-align: right; }
  .launch-day .price { font-size: 36px; line-height: 1.05; }
  .launch-day .price span { display: block; margin-top: 2px; font-size: 13px; white-space: nowrap; }
  .launch-day .perforation { grid-area: perf; margin: var(--s4) -20px var(--s3); }
  .launch .launch-day > .button { grid-area: btn; margin-top: 0; }
}
@media (max-width: 420px) { .launch-steps li { padding: 16px; } .launch-steps strong { font-size: 28px; } }
@media (max-width: 340px) { .launch-card > span.button { white-space: normal; } }
.perforation { border-top: 1px dashed var(--perf); margin: var(--s6) -26px var(--s5); position: relative; }
.perforation::before, .perforation::after { content: ''; position: absolute; width: 16px; height: 16px; border-radius: 50%; background: var(--bg); border: 1px solid var(--line); top: -9px; }
.perforation::before { left: -9px; border-left-color: var(--bg); } .perforation::after { right: -9px; border-right-color: var(--bg); }
.featured .perforation::before, .featured .perforation::after { border-color: var(--fg); }
.ticket-card.is-archive .perforation::before, .ticket-card.is-archive .perforation::after { background: var(--bg); }
.ticket-card ul { list-style: none; padding: 0; margin: 0 0 var(--s5); font-size: 16px; line-height: 1.6; }
.ticket-card li { display: flex; gap: var(--s3); margin-bottom: var(--s2); }
.ticket-card li .ico { margin-top: .3em; color: var(--ok); }
.ticket-card .button { width: 100%; margin-top: auto; justify-content: space-between; }
.ticket-card .archive-note { margin-top: auto; font-size: 14px; color: var(--muted); border-top: 1px solid var(--line); padding-top: var(--s3); }
.ticket-foot { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s5); margin: var(--s5) 0 var(--s6); }
.ticket-foot p { font-size: 14px; color: var(--muted); max-width: 60ch; }
.purchase-steps { display: flex; justify-content: center; gap: var(--s6); border-top: 1px solid var(--line); padding-top: var(--s5); font-size: 16px; color: var(--muted); list-style: none; margin: 0; padding-left: 0; }
.purchase-steps b { font-size: 12px; color: var(--fg); margin-right: 10px; border: 1px solid var(--line); padding: 5px 7px; border-radius: 50%; }
@media (max-width: 1100px) { .ticket-grid { gap: var(--s4); } .ticket-card { padding: 24px 20px; } .ticket-card.featured { padding: 23px 19px; } .perforation { margin-left: -20px; margin-right: -20px; } .price { font-size: 42px; } .ticket-foot { flex-direction: column; gap: var(--s3); } }
@media (max-width: 1100px) and (min-width: 601px) { .ticket-grid.has-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 900px) and (min-width: 601px) { .ticket-grid { grid-template-columns: 1fr 1fr; } .ticket-grid:not(.has-4) .ticket-card.featured { grid-column: span 2; order: -1; } }
@media (max-width: 600px) { .ticket-grid, .ticket-grid.has-4 { grid-template-columns: 1fr; gap: var(--s5); } .ticket-card.featured { order: -1; } .ticket-card.is-first { order: -2; } .ticket-card { padding: 24px 22px; } .perforation { margin-left: -22px; margin-right: -22px; } .price { font-size: 46px; } .purchase-steps { flex-direction: column; gap: var(--s3); font-size: 15px; } }

.program { background: var(--soft); display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--s8); align-items: center; }
.program h2 { font-size: clamp(34px, 3.6vw, 48px); margin-bottom: var(--s5); }
.program h2 em { color: var(--orange); background: var(--ink); padding: 0 .2em .04em; border-radius: var(--r-sm); -webkit-box-decoration-break: clone; box-decoration-break: clone; } /* #FFA633 pe suport închis local: contrast în ambele teme */
.program-copy > p:not(.eyebrow) { max-width: 430px; color: var(--muted); font-size: 17px; }
.program-copy .eyebrow { margin-bottom: var(--s3); }
.program-copy .caption { font-size: 14px; margin: var(--s4) 0 var(--s5); }
.poster { display: block; width: 100%; background: var(--ink); padding: 0; border-radius: var(--r-sm); overflow: hidden; box-shadow: 0 18px 40px rgb(0 0 0 / .14); text-align: left; }
.poster img { width: 100%; max-height: 480px; object-fit: contain; }
.poster > span { display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; color: #fff; font-size: 12px; letter-spacing: .08em; font-weight: 600; }
/* Vizualul ediției cât timp programul nu e anunțat (x-edition-teaser): text fix, fundal cu lumini reale din public
   (2026, duoton de brand); mișcarea (benzi de lumină + strălucire, buclă de 2 s, fără salturi) pornește doar cu .is-live. */
.teaser { position: relative; isolation: isolate; overflow: hidden; display: grid; align-items: end; aspect-ratio: 4 / 3; border-radius: var(--r-sm); background: var(--ink); color: #fff; box-shadow: 0 18px 40px rgb(0 0 0 / .14); }
.teaser.is-wide { aspect-ratio: 16 / 9; }
.teaser-art, .teaser-art img { position: absolute; inset: 0; width: 100%; height: 100%; }
.teaser-art img { object-fit: cover; opacity: .6; }
.teaser-art::after { content: ''; position: absolute; inset: 0; z-index: 2; background: linear-gradient(0deg, rgb(20 20 20 / .94) 15%, rgb(20 20 20 / .4) 65%, rgb(20 20 20 / .6)); }
.teaser-beam { position: absolute; z-index: 1; inset: -10% -45%; background: repeating-linear-gradient(90deg, transparent 0 60px, rgb(255 166 51 / .12) 90px, transparent 120px 160px); transform: skewX(-18deg); }
.teaser-glow { position: absolute; z-index: 1; left: 50%; top: -35%; width: 80%; aspect-ratio: 1; background: radial-gradient(closest-side, rgb(255 166 51 / .4), transparent); transform: translateX(-50%); opacity: .55; }
.teaser.is-live .teaser-beam { animation: teaser-beam 2s linear infinite; }
.teaser.is-live .teaser-glow { animation: teaser-glow 2s ease-in-out infinite; }
.teaser.is-paused .teaser-beam, .teaser.is-paused .teaser-glow { animation-play-state: paused; }
@keyframes teaser-beam { from { transform: skewX(-18deg) translateX(0); } to { transform: skewX(-18deg) translateX(160px); } }
@keyframes teaser-glow { 0%, 100% { opacity: .5; } 50% { opacity: .75; } }
.teaser-copy { position: relative; z-index: 3; padding: clamp(24px, 4vw, 44px); }
.teaser-logo { width: clamp(120px, 12vw, 160px); height: auto; margin-bottom: var(--s5); }
.teaser-title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(44px, 5.4vw, 76px); line-height: 1.05; letter-spacing: -.01em; }
.teaser.is-wide .teaser-title { font-size: clamp(48px, 7vw, 96px); }
.teaser-date { margin-top: var(--s3); color: var(--orange); font-weight: 700; font-size: clamp(20px, 2vw, 28px); letter-spacing: .06em; text-transform: uppercase; }
.teaser-note { margin-top: var(--s2); color: #e8e8e8; font-size: 17px; }
.teaser-pause { position: absolute; z-index: 4; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; padding: 8px 14px; border-radius: 999px; background: rgb(0 0 0 / .6); border: 1px solid rgb(255 255 255 / .4); color: #fff; font-size: 13px; font-weight: 600; }
.teaser-pause:hover { border-color: #fff; }
.teaser-pause[hidden] { display: none; }
.teaser-pause .ico-play, .teaser.is-paused .teaser-pause .ico-pause { display: none; }
.teaser.is-paused .teaser-pause .ico-play { display: inline-block; }
@media (max-width: 600px) { .teaser, .teaser.is-wide { aspect-ratio: 4 / 5; } } /* pe ecrane înguste textul fix are loc întreg, sub butonul de pauză */
.program.has-teaser { align-items: center; }
.program.has-teaser .program-copy > p:not(.eyebrow) { margin-bottom: var(--s5); }
@media (max-width: 800px) { .program { grid-template-columns: 1fr; gap: var(--s6); } }

.photo { position: relative; overflow: hidden; border-radius: var(--r-sm); background: var(--ink); }
.photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.photo:hover img { transform: scale(1.04); }
/* fotografia unică a secțiunii (aceeași imagine ca hero-ul): lată pe desktop, cropul dedicat pe mobil */
.photo-wide { display: block; width: 100%; aspect-ratio: 16 / 7; }
.photo-wide picture { display: contents; }
.photo-wide img { object-position: var(--photo-pos, 50% 50%); }
.photo-wide::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgb(0 0 0 / .7)); }
.photo > span { position: absolute; z-index: 1; bottom: 24px; left: 24px; right: 24px; color: #fff; font-size: 22px; font-weight: 600; }
.gallery-years { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); margin-top: var(--s5); }
.gallery-years > span { font-size: 12px; letter-spacing: .08em; color: var(--muted); font-weight: 600; }
.gallery-years a { font-size: 16px; font-weight: 600; padding: 8px 0; }
.gallery-years a:hover { color: var(--orange-ink); }
@media (max-width: 1100px) { .photo-wide { aspect-ratio: 16 / 8; } }
@media (max-width: 600px) { .photo-wide { aspect-ratio: 4 / 3; } .photo-wide img { object-position: 50% 50%; } .photo > span { font-size: 18px; left: 18px; bottom: 18px; } .gallery-years > span { width: 100%; } }

.info-section { background: var(--soft); }
.info-layout { display: grid; grid-template-columns: 1fr 1.35fr; gap: var(--s8); margin-top: var(--s6); }
.location { position: relative; background: var(--ink); color: #fff; border: 1px solid var(--band-line); border-radius: var(--r); padding: var(--s6) var(--s6) 0; overflow: hidden; align-self: start; }
.location .eyebrow { color: #bbb; margin-bottom: var(--s3); }
.location h3 { font-size: 38px; margin-bottom: var(--s4); }
.location > p:not(.eyebrow) { font-size: 16px; color: #ccc; line-height: 1.7; margin-bottom: var(--s4); }
.location .text-link { color: var(--orange); text-decoration-color: rgb(255 166 51 / .5); }
.location .links { display: grid; gap: var(--s1); }
.runway { display: flex; gap: var(--s4); align-items: center; border-top: 1px solid #494949; margin-top: var(--s6); padding: 18px 0; color: #bbb; font-size: 12px; letter-spacing: .08em; }
.runway i { flex: 1; border-top: 2px dashed #777; }
@media (max-width: 800px) { .info-layout { grid-template-columns: 1fr; gap: var(--s6); } }
@media (max-width: 600px) { .location { padding: var(--s5) var(--s5) 0; } .location h3 { font-size: 32px; } }

/* Accordion comun (FAQ homepage, regulament Info) */
.accordion { border-top: 1px solid var(--rule); }
.accordion details { border-bottom: 1px solid var(--rule); }
.accordion summary { cursor: pointer; list-style: none; padding: 20px 0; display: flex; align-items: center; justify-content: space-between; gap: var(--s4); font-size: 17px; font-weight: 550; line-height: 1.5; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after { content: ''; flex-shrink: 0; width: 12px; height: 12px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-3px, -3px); transition: transform .2s; }
.accordion details[open] > summary::after { transform: rotate(-135deg) translate(-3px, -3px); }
.accordion summary:hover { color: var(--orange-ink); }
.accordion .panel { padding: 0 0 var(--s5); font-size: 16px; color: var(--fg-2); }
.accordion .panel.prose { max-width: none; }

.community-links { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--rule); margin-top: var(--s7); padding-top: var(--s5); gap: var(--s5); }
.community-links a { display: flex; justify-content: space-between; gap: var(--s3); font-size: 16px; font-weight: 600; padding: 8px 0; }
.community-links a:hover { color: var(--orange-ink); }
@media (max-width: 1100px) { .community-links { grid-template-columns: 1fr 1fr; } }
@media (max-width: 360px) { .community-links { grid-template-columns: 1fr; } }

.last-call { padding: var(--s7) var(--pad-x); background: var(--orange); color: var(--ink); display: flex; justify-content: space-between; gap: var(--s6); align-items: center; }
.last-call .eyebrow { color: var(--ink); margin-bottom: var(--s2); }
/* Pe portocaliu butonul rămâne #1C1C1C în ambele teme. */
.last-call .button.dark { background: var(--ink); border-color: var(--ink); color: #fff; }
.last-call .button.dark:hover { background: #333; border-color: #333; }
.last-call h2 { font-size: clamp(30px, 3.2vw, 42px); }
/* „FBA AAAA” din titlul CTA final: Cinzel Decorative ca siglă secundară (ca semnătura din supratitlul hero); grupul nu se rupe pe două rânduri */
.last-call-mark { font-family: var(--font-display); font-weight: 700; letter-spacing: 0; white-space: nowrap; }
@media (max-width: 800px) { .last-call { flex-direction: column; align-items: flex-start; } }

/* 5.2 Info hub: categorii navigabile + secțiuni */
.info-hub { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--s8); align-items: start; }
.info-toc { position: sticky; top: calc(var(--header-h) + 24px); }
.info-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; border-left: 2px solid var(--line); }
.info-toc a { display: block; padding: 8px 0 8px var(--s4); margin-left: -2px; border-left: 2px solid transparent; font-weight: 500; color: var(--muted); }
.info-toc a:hover { color: var(--fg); }
.info-toc a[aria-current="true"] { color: var(--fg); font-weight: 650; border-left-color: var(--orange); }
.info-sections > section { padding: 0 0 var(--s7); margin: 0 0 var(--s7); border-bottom: 1px solid var(--line); }
.info-sections > section:last-child { border-bottom: 0; }
.info-sections > section > h2 { font-size: clamp(26px, 2.8vw, 34px); margin-bottom: var(--s4); }
.info-sections .sub { margin-top: var(--s6); }
/* html are deja scroll-padding-top = header + 16px; pe mobil se adaugă doar înălțimea cuprinsului lipit (~57px). */
.info-sections [id] { scroll-margin-top: 0; }
.info-sections span[id][aria-hidden="true"] { display: block; height: 0; } /* alias-uri WP (cum-ajung, vendori, press-kit) */
.info-sections .sub > h3 { margin-bottom: var(--s3); }
.info-sections .accordion { margin-top: var(--s4); max-width: var(--measure); }
.info-sections .accordion summary { font-size: 16px; text-transform: none; }
.info-sections .figure-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s5); margin-top: var(--s5); max-width: 900px; }
.info-sections .figure-grid figure { margin: 0; }
.info-sections .figure-grid figcaption { font-weight: 600; margin-bottom: var(--s2); }
.info-sections .figure-grid img { border-radius: var(--r-sm); border: 1px solid var(--line); }
.info-sections .cta-row { margin-top: var(--s5); }
@media (max-width: 900px) {
  .info-hub { grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
  .info-toc { position: sticky; top: var(--header-h); z-index: 5; background: var(--bg); margin: 0 calc(var(--gutter-min) * -1); padding: var(--s2) var(--gutter-min); border-bottom: 1px solid var(--line); }
  .info-toc ol { display: flex; gap: var(--s2); border: 0; overflow-x: auto; scrollbar-width: none; }
  .info-toc li { flex-shrink: 0; }
  .info-toc a { margin: 0; border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; font-size: 15px; white-space: nowrap; }
  .info-toc a[aria-current="true"] { border-color: var(--inv-bg); background: var(--inv-bg); color: var(--inv-fg); }
  /* se adaugă la scroll-padding-top din html: doar înălțimea cuprinsului lipit (57px) + 8px */
  .info-sections [id], .info-sections > section { scroll-margin-top: 65px; }
}

/* 5.3 Program */
.program-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--s7); align-items: start; }
.program-day { margin: 0 0 var(--s7); }
.program-day > h2 { font-size: clamp(24px, 2.4vw, 30px); margin-bottom: var(--s2); }
.program-day .day-date { color: var(--muted); font-size: 16px; margin-bottom: var(--s3); }
.stage-name { font-size: 15px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: var(--s4) 0 var(--s1); }
.slot-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.slot { display: grid; grid-template-columns: 110px 1fr auto; gap: var(--s4); padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 17px; align-items: baseline; }
.slot .t { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--muted); font-size: 15px; }
.slot .a { font-weight: 600; }
.slot .g { color: var(--muted); font-size: 15px; }
.slot-list.no-times .slot { grid-template-columns: 1fr auto; }
.program-layout.poster-only { grid-template-columns: minmax(0, 860px); }
.program-layout.poster-only .program-aside { position: static; }
.program-layout.teaser-only { grid-template-columns: minmax(0, 960px); }
.program-aside { position: sticky; top: calc(var(--header-h) + 24px); }
.program-aside .caption { font-size: 14px; color: var(--muted); margin-top: var(--s3); }
@media (max-width: 900px) { .program-layout { grid-template-columns: minmax(0, 1fr); } .program-aside { position: static; } }
@media (max-width: 600px) { .slot { grid-template-columns: 1fr; gap: 2px; } .slot-list.no-times .slot { grid-template-columns: 1fr; } }

/* 5.4 Galerie */
.gallery-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s5); }
@media (max-width: 1024px) { .gallery-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .gallery-cards { grid-template-columns: minmax(0, 1fr); } }
.gallery-card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--surface); transition: border-color .2s, box-shadow .2s; }
.gallery-card:hover { border-color: var(--fg); box-shadow: var(--shadow); }
.gallery-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--soft); }
.gallery-card .body { padding: var(--s4) var(--s5) var(--s5); }
.gallery-card h2 { font-size: 22px; }
.gallery-card .meta { color: var(--muted); font-size: 15px; margin-top: var(--s1); }
.gallery-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.gallery-grid a { display: block; aspect-ratio: 1; overflow: hidden; background: var(--soft); border-radius: 2px; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.gallery-grid a:hover img { transform: scale(1.04); }
.gallery-nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s3); margin: 0 0 var(--s5); }
.gallery-nav .count { color: var(--muted); font-size: 15px; }
.day-switch { display: flex; flex-wrap: wrap; gap: var(--s2); }
.gallery-videos { display: grid; gap: var(--s4); margin-bottom: var(--s5); max-width: 760px; }
@media (max-width: 900px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; } }

/* 5.5 Contact și formulare dedicate */
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--s7); align-items: start; }
.contact-points { display: grid; gap: var(--s5); }
.contact-point h2 { font-size: 15px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: var(--s1); }
.contact-point p, .contact-point a { font-size: 18px; font-weight: 600; }
.contact-point a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--underline); overflow-wrap: anywhere; }
.contact-point .note { font-size: 15px; font-weight: 400; color: var(--muted); }
@media (max-width: 900px) { .contact-layout { grid-template-columns: minmax(0, 1fr); gap: var(--s6); } }

/* 5.6 Cont client / bilete */
.greeting { font-family: var(--font-heading); font-size: clamp(26px, 3vw, 32px); margin-bottom: var(--s4); }
.account-nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin: 0 0 var(--s6); padding-bottom: var(--s5); border-bottom: 1px solid var(--line); }
.account-nav a, .account-nav button { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid var(--line); border-radius: var(--r-sm); font-weight: 600; font-size: 15px; }
.account-nav a:hover { border-color: var(--fg); }
.account-nav a[aria-current="page"] { background: var(--inv-bg); color: var(--inv-fg); border-color: var(--inv-bg); }
.account-nav form { margin-left: auto; }
.account-nav button { border-color: transparent; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) { .account-nav form { margin-left: 0; } }
.auth-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--s6); align-items: start; max-width: 1000px; }
.auth-layout.single { grid-template-columns: minmax(0, 620px); }
.auth-layout h1 { font-size: clamp(30px, 3.4vw, 40px); margin-bottom: var(--s3); }
.auth-layout .lead { color: var(--muted); margin-bottom: var(--s5); }
@media (max-width: 800px) { .auth-layout { grid-template-columns: minmax(0, 1fr); } }
.ticket-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); }
.ticket-item { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; background: var(--surface); }
.ticket-item .body { padding: var(--s4) var(--s5); flex: 1; }
.ticket-item .row { display: flex; justify-content: space-between; gap: var(--s3); padding: 8px 0; border-bottom: 1px solid var(--soft-2); font-size: 15px; }
.ticket-item .row > span:first-child { color: var(--muted); }
.ticket-item .row > span:last-child { text-align: right; font-weight: 600; }
.ticket-item .ev { padding: var(--s3) var(--s5); font-weight: 600; font-size: 15px; background: var(--soft); }
.ticket-item a.dl { display: flex; align-items: center; justify-content: center; gap: var(--s2); min-height: 48px; background: var(--orange); color: var(--ink); font-weight: 700; }
.ticket-item a.dl:hover { background: var(--orange-hover); }
@media (max-width: 900px) { .ticket-list { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ticket-list { grid-template-columns: 1fr; } }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s4); margin-bottom: var(--s5); }
.stat { border: 1px solid var(--line); border-radius: var(--r); padding: var(--s4) var(--s5); }
.stat strong { display: block; font-size: 28px; font-variant-numeric: tabular-nums; line-height: 1.2; }
.stat span { color: var(--muted); font-size: 15px; }
.stack > * + * { margin-top: var(--s5); }
.discount-box { background: var(--soft); border: 2px dashed var(--rule); padding: var(--s6); text-align: center; margin: var(--s5) 0; border-radius: var(--r); }
.discount-box .code { font-size: 28px; font-weight: 700; letter-spacing: .08em; user-select: all; }
.discount-box.used .code { text-decoration: line-through; color: var(--disabled-ink); }
.copy-field { display: flex; gap: var(--s2); }
.copy-field input { flex: 1; min-width: 0; }

/* 5.7 Afiliere (pagină publică) */
.affiliate-intro { max-width: var(--measure); }
.affiliate-intro .prose { text-align: left; }
