/* ============================================================
   START AŠ — MAIN STYLESHEET
   Consolidated from the approved hi-fi mock.
   All values reference custom properties in tokens.css.

   Contents
   §1  Fonts            §7  Program schedule
   §2  Base / reset     §8  Application form (universities)
   §3  Layout & text    §9  Partners
   §4  Buttons, badges  §10 FAQ
   §5  Header & nav     §11 Footer
   §6  Hero, facts,     §12 Responsive
       about, tickets   §13 Motion preferences
   ============================================================ */

/* ================= §1 FONTS ================= */
/* Museo Sans — commercial webfont, OTFs supplied in ./assets/fonts.
   Convert to WOFF2 for production (see docs/03-asset-inventory.md). */
@font-face { font-family: "Museo Sans"; src: url("../assets/fonts/MuseoSans-300.otf") format("opentype"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Museo Sans"; src: url("../assets/fonts/MuseoSans-500.otf") format("opentype"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Museo Sans"; src: url("../assets/fonts/MuseoSans-700.otf") format("opentype"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Museo Sans"; src: url("../assets/fonts/MuseoSans-900.otf") format("opentype"); font-weight: 900; font-style: normal; font-display: swap; }

/* ================= §2 BASE / RESET ================= */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--color-cream);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  font-weight: var(--weight-medium);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

h1, h2, h3, p { margin: 0; }

img { display: block; }

a {
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}
a:hover { color: var(--color-red); }

button { font-family: inherit; }

input, select, textarea {
  font-family: inherit;
  font-size: var(--text-ui);
  color: var(--color-text);
}
input::placeholder, textarea::placeholder { color: var(--color-text-muted); opacity: 1; }

/* Keyboard focus ring (accessibility addition — not in mock) */
:focus-visible {
  outline: 2px solid var(--color-red);
  outline-offset: 2px;
}

/* Anchor targets clear the sticky header (addition — not in mock) */
[id] { scroll-margin-top: 84px; }

/* ================= §3 LAYOUT & TEXT PRIMITIVES ================= */
.container {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.section { padding-block: var(--space-80); }

/* Overline label above headings */
.kicker {
  font-weight: var(--weight-bold);
  font-size: var(--text-label);
  letter-spacing: var(--tracking-caps);
  color: var(--color-red);
}
.kicker--navy { color: var(--color-navy); }

.h2 {
  font-size: var(--text-h2);
  font-weight: var(--weight-black);
  letter-spacing: var(--tracking-h2);
  line-height: var(--leading-h2);
}

.lead {
  font-size: var(--text-lead);
  line-height: var(--leading-lead);
  font-weight: var(--weight-light);
  color: var(--color-text-soft);
}

/* Section heading — centered variant */
.section-head--center {
  text-align: center;
  max-width: 680px;
  margin: 0 auto var(--space-44);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

/* Section heading — split variant (title left, aside right) */
.section-head--split {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-24);
  margin-bottom: var(--space-40);
  flex-wrap: wrap;
}
/* Launch state: with the partner grid absent, the head is the section's last child — drop its bottom margin */
.section-head--split:last-child { margin-bottom: 0; }
.section-head--split .section-head__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

/* ================= §4 BUTTONS, BADGES, CHIPS ================= */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: var(--radius-lg);
  font-family: inherit;
  font-weight: var(--weight-black);
  cursor: pointer;
  text-align: center;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Sizes */
.btn--lg { font-size: var(--text-body-lg); padding: 16px 32px; }
.btn--md { font-size: var(--text-body); padding: 16px 32px; }
.btn--sm { font-size: var(--text-ui); font-weight: var(--weight-bold); padding: 12px 24px; border-radius: var(--radius-md); }

/* Solid red — the primary action */
.btn--primary { background: var(--color-red); color: var(--color-white); }
.btn--primary:hover { background: var(--color-red-dark); color: var(--color-white); }
.btn--primary:active { background: var(--color-red-darker); }

/* Outline on navy — secondary hero action */
.btn--outline-light {
  background: transparent;
  border: 2px solid var(--on-dark-border-strong);
  color: var(--color-cream);
  font-weight: var(--weight-bold);
  padding-block: 14px; /* compensates 2px border to match .btn--lg box */
}
.btn--outline-light:hover { background: var(--color-cream); color: var(--color-navy); border-color: var(--color-cream); }

/* Status badge — program rows */
.badge {
  border-radius: var(--radius-sm);
  padding: 6px 12px;
  font-size: var(--text-badge-sm);
  font-weight: var(--weight-bold);
  white-space: nowrap;
}
.badge--solid { background: var(--color-navy); color: var(--color-cream); }
.badge--open { border: 1px dashed var(--color-border-dash); color: var(--color-text-soft); }

/* Price chip — ticket cards */
.chip {
  background: var(--color-red-tint);
  color: var(--color-red-dark);
  border-radius: var(--radius-pill);
  padding: 6px 14px;
  font-size: var(--text-badge);
  font-weight: var(--weight-black);
}

/* Notice pill — program header aside */
.notice {
  background: var(--color-red-tint);
  color: var(--color-red-dark);
  border-radius: var(--radius-md);
  padding: var(--space-12) var(--space-20);
  font-size: var(--text-label);
  font-weight: var(--weight-bold);
}

/* ================= §5 HEADER & NAV ================= */
.site-header {
  background: var(--color-navy);
  position: sticky;
  top: 0;
  z-index: var(--z-header);
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-24);
  padding-block: var(--space-16);
}
.nav__logo { height: 44px; display: block; }

.nav__links {
  display: flex;
  align-items: center;
  gap: 30px;
  font-weight: var(--weight-medium);
  font-size: var(--text-ui);
}
.nav__links a { color: var(--color-cream); }
.nav__links a:hover { color: var(--color-red); }
.nav__social, .mobile-menu__social { display: flex; align-items: center; gap: 4px; }
.nav__social a, .mobile-menu .mobile-menu__social a { display: inline-flex; width: 36px; height: 36px; padding: 0; align-items: center; justify-content: center; border: none; color: var(--color-cream); } /* .mobile-menu a sets padding + border-bottom */
.nav__social a:hover, .mobile-menu .mobile-menu__social a:hover { color: var(--color-red); }
.mobile-menu__social { padding-block: var(--space-12); margin-inline: -8px; }

.nav__burger {
  display: none; /* shown ≤900px */
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}
.nav__burger .icon-close { display: none; }
.site-header.is-open .icon-burger { display: none; }
.site-header.is-open .icon-close { display: block; }

/* Mobile menu (≤900px, toggled by JS via .is-open on .site-header) */
.mobile-menu {
  display: none;
  border-top: 1px solid var(--on-dark-border);
  padding: 6px var(--space-20) var(--space-20);
  flex-direction: column;
}
.site-header.is-open .mobile-menu { display: flex; animation: menu-in var(--transition-menu); }
.mobile-menu a {
  color: var(--color-cream);
  font-weight: var(--weight-medium);
  font-size: var(--text-body-lg);
  padding: 14px 2px;
  border-bottom: 1px solid var(--on-dark-fill);
}
.mobile-menu a:last-of-type { border-bottom: none; }
.mobile-menu .btn { margin-top: var(--space-12); border-bottom: none; }

@keyframes menu-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ================= §6 HERO / FACTS / ABOUT / TICKETS ================= */
.hero {
  background: var(--color-navy);
  color: var(--color-cream);
  position: relative;
  overflow: hidden;
}
.hero__inner { padding-block: var(--space-88) var(--space-104); position: relative; }
.hero__content { max-width: 820px; display: flex; flex-direction: column; gap: var(--space-24); }

.hero__title {
  font-size: var(--text-hero);
  line-height: var(--leading-hero);
  font-weight: var(--weight-black);
  letter-spacing: var(--tracking-hero);
  color: var(--color-white);
  text-wrap: balance;
}
.hero__sub {
  font-size: var(--text-lead-lg);
  line-height: var(--leading-lead);
  font-weight: var(--weight-light);
  max-width: 640px;
  color: var(--on-dark-body);
}

.hero__meta {
  display: flex;
  align-items: center;
  gap: var(--space-24);
  font-weight: var(--weight-medium);
  font-size: var(--text-body);
  color: var(--on-dark-strong);
  flex-wrap: wrap;
}
.hero__meta-item { display: flex; align-items: center; gap: var(--space-8); }
.hero__meta-item::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-red);
}

.hero__ctas { display: flex; align-items: center; gap: var(--space-16); margin-top: var(--space-8); }

/* Hero map artwork (desktop only, aria-hidden) — PNG supplied by the designer; its ground is the same navy as the hero, so it blends edge to edge */
.hero__map { position: absolute; inset: 0; pointer-events: none; }
.hero__map-img {
  position: absolute;
  /* Right edge pinned to the content column's right edge: 50% - (1280/2 - 32) = 50% - 608px; falls back to 32px below 1280px viewports */
  right: max(32px, calc(50% - 608px));
  top: 50%;
  transform: translateY(-50%);
  height: calc(100% - 72px); /* 36px breathing room top+bottom */
  width: auto;
  display: block;
}

@keyframes startas-ping {
  0%   { transform: scale(0.5); opacity: 0.9; }
  100% { transform: scale(2.4); opacity: 0; }
}

/* Venue chip — replaces the map ≤1100px */
.hero__venue {
  display: none;
  align-items: center;
  gap: var(--space-12);
  background: var(--on-dark-fill);
  border: 1px solid var(--on-dark-border);
  border-radius: var(--radius-lg);
  padding: 14px var(--space-16);
  align-self: flex-start;
}
.hero__venue-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--color-red); border: 2px solid var(--color-white); flex-shrink: 0; }
.hero__venue-name { font-weight: var(--weight-black); font-size: var(--text-ui); color: var(--color-white); }
.hero__venue-addr { font-weight: var(--weight-light); font-size: var(--text-small); color: var(--on-dark-muted); }

/* Floating fact bar */
.facts-wrap { margin-top: -44px; position: relative; }
.facts {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
}
.fact {
  padding: 30px var(--space-36);
  border-right: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.fact:last-child { border-right: none; }
.fact__num { font-size: var(--text-stat); font-weight: var(--weight-black); color: var(--color-red); }
.fact__label { font-weight: var(--weight-medium); font-size: var(--text-ui); color: var(--color-text-soft); }

/* About cards */
.about { padding-block: var(--space-88) var(--space-72); }
.cards-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-20); }
.card {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  padding: var(--space-32);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  border-top: 4px solid var(--color-red);
}
.card--navy { border-top-color: var(--color-navy); }
.card__title { font-size: var(--text-h3); font-weight: var(--weight-black); }
.card__text { font-size: var(--text-body); line-height: var(--leading-body); font-weight: var(--weight-light); color: var(--color-text-soft); }

/* Tickets band */
.tickets-band { background: var(--color-red); }
.tickets-band .section-head--left {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  margin-bottom: var(--space-44);
  max-width: 720px;
}
.tickets-band .section-head--left:last-child { margin-bottom: 0; } /* "jau greitai" state: note only, no cards */
.tickets-band .h2 { color: var(--color-white); }
.tickets-band .lead { color: var(--on-dark-strong); }

.tickets { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-24); align-items: stretch; }

.ticket {
  position: relative;
  background: var(--color-white);
  border-radius: var(--radius-xl);
  padding: var(--space-36) var(--space-32);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
/* Punched notches — match the band background */
.ticket::before, .ticket::after {
  content: "";
  position: absolute;
  top: 50%;
  margin-top: -12px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--color-red);
}
.ticket::before { left: -12px; }
.ticket::after { right: -12px; }

.ticket__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-12); }
.ticket__label { font-weight: var(--weight-bold); font-size: var(--text-label); letter-spacing: var(--tracking-caps-sm); color: var(--color-text-soft); }
.ticket__time { font-size: var(--text-ticket); font-weight: var(--weight-black); color: var(--color-navy); line-height: 1; }
.ticket__rule { border: none; border-top: 2px dashed var(--color-border); margin: 6px 0; }
.ticket__desc { font-weight: var(--weight-light); font-size: var(--text-ui); line-height: var(--leading-body); color: var(--color-text-soft); }

/* Tickera hooks: "buy now" button inside the card, brand look on the cart page */
.ticket__cta { margin-top: auto; padding-top: var(--space-8); }
.ticket .cart_form { display: flex; align-items: center; gap: var(--space-12); flex-wrap: wrap; }
.ticket .add_to_cart {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--color-red); color: var(--color-white);
  font-weight: var(--weight-black); font-size: var(--text-ui);
  padding: 12px 24px; border: none; border-radius: var(--radius-md); cursor: pointer; text-decoration: none;
}
.ticket .add_to_cart:hover { background: var(--color-red-dark); color: var(--color-white); }
.ticket .tc_in_cart { font-size: var(--text-ui); color: var(--color-text-soft); }
/* ---------- Tickera cart page (body.startas-cart) — Tickera's markup, styled to the design canvas "Bilietų užsakymas".
   Tickera's own front.css + 2026 skin are dequeued on this page (functions.php). ---------- */
/* ponytail: every ticket is free — price/subtotal cells stay hidden; delete these two lines if a paid ticket type appears */
.startas-cart .tickera_table .ticket-price, .startas-cart .tickera_table .ticket-total, .startas-cart .tickera_table tr.last-table-row,
#order_details #order_subtotal, #order_details #order_fees, #order_details #order_tax_rate, #order_details #order_total { display: none; } /* two ids: outranks the .startas-order label rule */

.startas-cart .policy .lead { margin: 0 0 var(--space-12); }
.tickets__preview { margin: 0 0 var(--space-24); padding: 10px 16px; border-radius: var(--radius-md); background: var(--color-navy); color: var(--color-cream); font-size: var(--text-small); font-weight: var(--weight-bold); }
.startas-cart .tc-cart-form-inner { display: flex; flex-direction: column; gap: var(--space-24); }
.startas-cart .tc-hidden-important, .startas-cart .mokyklos[hidden] { display: none !important; } /* Tickera's helper inputs (front.css is dequeued here) */
.startas-cart .tc_cart_errors, .startas-cart .tc_cart_errors li { color: var(--color-red-dark); font-size: var(--text-ui); } /* li: beats page.php's .policy li */
.startas-cart .tc_cart_errors ul { margin: 0; padding-left: 20px; }

/* Ticket card */
.startas-cart .tickera-checkout { background: var(--color-white); border-radius: var(--radius-xl); padding: var(--space-32); }
.startas-cart .tickera_table { width: 100%; border-collapse: collapse; display: block; }
.startas-cart .tickera_table thead { display: none; }
.startas-cart .tickera_table tbody { display: flex; flex-direction: column; gap: var(--space-20); }
.startas-cart .tickera_table tbody::before { content: "JŪSŲ BILIETAS"; font-weight: var(--weight-bold); font-size: var(--text-badge); letter-spacing: var(--tracking-caps-sm); color: var(--color-text-soft); } /* label lives in CSS: the row offers no hook outside a cell */
.startas-cart .tickera_table tr { display: flex; align-items: center; justify-content: space-between; gap: var(--space-20); }
.startas-cart .tickera_table td { padding: 0; border: 0; }
.startas-cart td.ticket-type { font-size: var(--text-h3); font-weight: var(--weight-black); line-height: 1.2; }
.startas-cart td.ticket-type .chip { margin-left: var(--space-12); vertical-align: middle; }
.startas-cart .tc-ticket-meta { display: block; margin-top: 6px; font-size: var(--text-ui); font-weight: var(--weight-light); line-height: var(--leading-body); color: var(--color-text-soft); }
.startas-cart td.ticket-quantity { display: none; } /* quantity follows the role (functions.php), Tickera's +/- widget is off */
.startas-cart td.actions { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); flex-wrap: wrap; padding-top: var(--space-20); border-top: 2px dashed var(--color-border); }
.startas-cart #update_cart { display: none; } /* the checkout POST carries ticket_quantity[]; js/cart.js unbinds Tickera's "update first" guard */
.startas-cart #empty_cart { border: 0; padding: 0; background: none; font: inherit; font-size: var(--text-small); font-weight: var(--weight-bold); color: var(--color-text-soft); text-decoration: underline; cursor: pointer; }
.startas-cart #empty_cart:hover { color: var(--color-red); }

/* Buyer card */
.startas-cart .tickera_additional_info { background: var(--color-white); border-radius: var(--radius-xl); padding: var(--space-40); display: flex; flex-direction: column; gap: var(--space-24); }
.startas-cart .tickera_buyer_info { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.startas-cart .tickera_owner_info, .startas-cart .tickera_additional_info > p:empty { display: none; } /* attendee fields are off; the empty wrapper otherwise adds a flex gap */
.startas-cart .tickera_buyer_info h3 { grid-column: 1 / -1; margin: 0; font-size: var(--text-h3); font-weight: var(--weight-black); line-height: 1.2; }
.startas-cart .tickera_buyer_info .fields-wrap { grid-column: 1 / -1; display: flex; flex-direction: column; gap: var(--space-8); margin: 0; position: relative; }
.startas-cart .tickera_buyer_info .fields-wrap[hidden] { display: none; } /* the other role's fields (js/cart.js) */
.startas-cart .tickera_buyer_info .tc-intro { margin-top: -12px; }
.startas-cart .tickera_buyer_info .tc-intro p { margin: 0; font-size: var(--text-ui); font-weight: var(--weight-light); line-height: var(--leading-body); color: var(--color-text-soft); }
.startas-cart .fields-wrap label { display: flex; flex-direction: column; gap: var(--space-8); font-weight: var(--weight-bold); font-size: var(--text-label); }
.startas-cart .fields-wrap input.tickera-input-field:not([type=checkbox]):not([type=radio]) { width: 100%; box-sizing: border-box; border: 1px solid var(--color-border-input); border-radius: var(--radius-md); padding: 14px var(--space-16); font: inherit; font-size: var(--text-ui); font-weight: var(--weight-medium); color: var(--color-navy); background: var(--color-cream); outline: none; }
.startas-cart .fields-wrap input.tickera-input-field:focus { border-color: var(--color-navy); }
.startas-cart .fields-wrap input::placeholder { color: var(--color-text-muted); font-weight: var(--weight-light); }
.startas-cart .fields-wrap .description { font-size: var(--text-small); font-weight: var(--weight-light); color: var(--color-text-muted); }
.startas-cart .fields-wrap .description:empty { display: none; }
/* Radio groups (Aš esu, Klasė): title label first, then one pill per option */
.startas-cart .tickera_buyer_info .tc-radio { flex-direction: row; flex-wrap: wrap; gap: 10px; } /* 3 classes: outranks the .fields-wrap column rule */
.startas-cart .tc-radio > label:first-child, .startas-cart .tc-radio .description { flex-basis: 100%; }
.startas-cart .tc-radio > label:first-child { margin-bottom: -2px; }
.startas-cart .tc-radio label:not(:first-child) { flex-direction: row; align-items: center; gap: 10px; padding: 12px 18px; border: 1px solid var(--color-border-input); border-radius: 999px; background: var(--color-cream); font-weight: var(--weight-medium); font-size: var(--text-ui); cursor: pointer; }
.startas-cart .tc-radio label:has(input:checked) { border-color: var(--color-navy); background: var(--color-white); }
.startas-cart .tc-radio input[type=radio] { width: 18px; height: 18px; margin: 0; accent-color: var(--color-red); }
.startas-cart .tc-consent > label:first-child { display: none; } /* "Privatumo politika" title — the checkbox text says it */
.startas-cart .tc-consent label { flex-direction: row; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: var(--weight-light); font-size: var(--text-small); line-height: 1.5; color: var(--color-text-soft); }
.startas-cart .tc-consent input[type=checkbox] { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--color-red); flex-shrink: 0; }
.startas-cart .tc-consent a { font-weight: var(--weight-bold); text-decoration: underline; }
.startas-cart label.error { font-size: var(--text-small); font-weight: var(--weight-medium); color: var(--color-red-dark); }
.startas-cart .proceed-to-checkout-container { display: flex; align-items: center; gap: var(--space-20); flex-wrap: wrap; }
.startas-cart #proceed_to_checkout { display: inline-flex; align-items: center; justify-content: center; border: none; border-radius: var(--radius-lg); background: var(--color-red); color: var(--color-white); font: inherit; font-weight: var(--weight-black); font-size: var(--text-body); padding: 16px 32px; cursor: pointer; }
.startas-cart #proceed_to_checkout:hover { background: var(--color-red-dark); }
.startas-cart .tc-cart-note { margin: 0; font-size: var(--text-small); font-weight: var(--weight-light); color: var(--color-text-muted); }

/* Empty cart */
.startas-cart .cart_empty_message { font-size: var(--text-lead); font-weight: var(--weight-light); color: var(--color-text-soft); }
.startas-cart .tc-cart-back { display: inline-block; margin-top: var(--space-16); font-weight: var(--weight-bold); text-decoration: underline; }

/* Order / confirmation page (body.startas-order) — same cards as the cart page */
.startas-order .policy > p:not([class]) { display: none; } /* wpautop leftovers around the shortcode */
.startas-order #order_details { display: flex; flex-direction: column; gap: var(--space-24); }
.startas-order #order_details > p { margin: 0; }
.startas-order #order_details br { display: none; }
.startas-order #order_details > p:first-of-type { background: var(--color-white); border-radius: var(--radius-xl); padding: var(--space-32); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-20); }
.startas-order #order_details > p:has(> #order_total:only-child) { display: none; }
.startas-order #order_details label { display: flex; flex-direction: column; gap: 4px; font-size: var(--text-body); font-weight: var(--weight-bold); color: var(--color-navy); }
.startas-order .order_details_title { font-size: var(--text-badge); font-weight: var(--weight-bold); letter-spacing: var(--tracking-caps-sm); text-transform: uppercase; color: var(--color-text-soft); }
.startas-order #order_details hr { display: none; }
.startas-order #order_details h2 { margin: 0; background: var(--color-white); border-radius: var(--radius-xl) var(--radius-xl) 0 0; padding: var(--space-32) var(--space-32) 0; font-size: var(--text-badge); font-weight: var(--weight-bold); letter-spacing: var(--tracking-caps-sm); text-transform: uppercase; color: var(--color-text-soft); }
.startas-order table.order-details { width: 100%; border-collapse: collapse; display: block; background: var(--color-white); border-radius: 0 0 var(--radius-xl) var(--radius-xl); padding: var(--space-8) var(--space-32) var(--space-32); box-sizing: border-box; margin-top: -24px; }
.startas-order table.order-details tbody { display: flex; flex-direction: column; }
.startas-order table.order-details tr:has(th) { display: none; }
.startas-order table.order-details tr { display: flex; align-items: center; gap: var(--space-20); padding: var(--space-20) 0; border-top: 2px dashed var(--color-border); }
.startas-order table.order-details tr:has(th) + tr { border-top: 0; }
.startas-order table.order-details td { padding: 0; border: 0; }
.startas-order td[data-column="Renginys"] { font-size: var(--text-h3); font-weight: var(--weight-black); }
.startas-order td[data-column="Renginys"] a { text-decoration: none; }
.startas-order td[data-column="Bilietas"] { flex-grow: 1; font-size: var(--text-ui); font-weight: var(--weight-light); color: var(--color-text-soft); }
.startas-order td[data-column="Atsisiuntimas"] a { display: inline-flex; align-items: center; justify-content: center; background: var(--color-red); color: var(--color-white); border-radius: var(--radius-md); padding: 12px 20px; font-size: var(--text-ui); font-weight: var(--weight-black); text-decoration: none; white-space: nowrap; }
.startas-order td[data-column="Atsisiuntimas"] a:hover { background: var(--color-red-dark); color: var(--color-white); }

/* "Mokykla" suggestions dropdown (js/cart.js) */

.mokyklos { position: absolute; z-index: 20; margin: 0; padding: 6px 0; box-sizing: border-box; list-style: none; background: var(--color-white); border: 1px solid var(--color-border-input); border-radius: var(--radius-md); box-shadow: 0 10px 28px rgba(30, 40, 83, 0.14); max-height: 300px; overflow-y: auto; }
.mokyklos li { padding: 10px 16px; cursor: pointer; font-size: var(--text-ui); color: var(--color-navy); }
.mokyklos li:hover, .mokyklos li.is-active { background: var(--color-cream); }

/* Ticket order form — dark card */
.ticket-form {
  background: var(--color-navy);
  border-radius: var(--radius-xl);
  padding: var(--space-36) var(--space-32);
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  color: var(--color-cream);
}
.ticket-form .input { border: none; background: var(--color-white); }
.ticket-form .btn { margin-top: var(--space-4); }
.ticket-form__note { font-size: var(--text-small); font-weight: var(--weight-light); color: var(--on-dark-muted); text-align: center; }

/* Form field primitives */
.field { display: flex; flex-direction: column; gap: var(--space-8); }
.field label { font-weight: var(--weight-bold); font-size: var(--text-label); }
.input {
  border: 1px solid var(--color-border-input);
  border-radius: var(--radius-md);
  padding: 14px var(--space-16);
  font-size: var(--text-ui);
  color: var(--color-navy);
  background: var(--color-cream);
  outline: none;
  transition: border-color var(--transition-fast);
}
textarea.input { resize: vertical; }

/* ================= §7 PROGRAM SCHEDULE ================= */
.band-white { background: var(--color-white); }

.program { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-24); align-items: start; }
.program .section-head--split { margin-bottom: var(--space-36); }

.stage { border: 1px solid var(--color-border); border-radius: var(--radius-xl); overflow: hidden; }
.stage__head {
  background: var(--color-navy);
  color: var(--color-cream);
  padding: var(--space-20) var(--space-28);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-12);
}
.stage__name { font-weight: var(--weight-black); font-size: var(--text-h3); color: var(--color-white); }
.stage--small .stage__head { background: var(--color-red); color: var(--color-white); }

.stage__head-col { display: flex; flex-direction: column; gap: 2px; }

/* Empty state — shown until the schedule is confirmed */
.stage__empty { padding: var(--space-56) var(--space-32); display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.stage__empty-badge { width: 44px; height: 44px; border-radius: 50%; background: var(--color-red-tint); color: var(--color-red-dark); display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: var(--weight-black); }
.stage__empty-title { font-weight: var(--weight-bold); font-size: var(--text-body); color: var(--color-navy); }
.stage__empty-text { font-weight: var(--weight-light); font-size: var(--text-ui); color: var(--color-text-soft); max-width: 320px; }
.stage__note { font-weight: var(--weight-light); font-size: var(--text-small); color: var(--on-dark-muted); }

.stage__row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: var(--space-16);
  padding: 18px var(--space-28);
}
.stage__row + .stage__row { border-top: 1px solid var(--color-border); }

.row__what { display: flex; flex-direction: column; gap: 2px; }
.row__title { font-weight: var(--weight-bold); font-size: var(--text-body); color: var(--color-text-soft); }
.row__sub { font-weight: var(--weight-light); font-size: var(--text-small); color: var(--color-text-muted); }

/* Confirmed slots */
.stage__row--confirmed { background: var(--color-cream); }
.stage__row--confirmed .row__title { font-weight: var(--weight-black); color: var(--color-text); }
.stage__row--confirmed .row__sub { color: var(--color-text-soft); }

/* ================= §8 APPLICATION FORM (universities) ================= */
.apply { background: var(--color-navy); color: var(--color-cream); }
.apply__grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: var(--space-56); align-items: start; }
.apply__intro { display: flex; flex-direction: column; gap: 18px; }
.apply__intro .h2 { color: var(--color-white); }
.apply__intro .lead { color: var(--on-dark-body); }

.checklist { display: flex; flex-direction: column; gap: 14px; margin-top: 6px; }
.check { display: flex; align-items: center; gap: var(--space-12); }
.check__icon {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--color-red);
  color: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.check__text { font-size: var(--text-body); font-weight: var(--weight-medium); }

.form-card {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  padding: var(--space-40);
  color: var(--color-navy);
}
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field--full { grid-column: 1 / -1; }
.form-footer {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  flex-wrap: wrap;
}
.form-footer__note { font-size: var(--text-small); font-weight: var(--weight-light); color: var(--color-text-soft); }

/* ================= §9 PARTNERS ================= */
.partners-aside { font-size: var(--text-body); font-weight: var(--weight-medium); color: var(--color-text-soft); }
.partners-aside a { color: var(--color-red); font-weight: var(--weight-bold); text-decoration: underline; }
.partners-aside a:hover { color: var(--color-red-dark); }

/* Logo strip: one row that slides continuously and pauses on hover; edges fade out.
   Two identical sets (the second aria-hidden) make the loop seamless. Under 6 logos, or with
   reduced motion, it is a centred wrapping row instead. ponytail: one row — split into two
   counter-scrolling rows once there are 20+ logos. */
.logos { margin-top: var(--space-40); padding-inline: var(--gutter); overflow: hidden; }
.logos__track { display: flex; }
.logos__set { display: flex; flex: 1 1 auto; flex-wrap: wrap; justify-content: center; gap: var(--space-16); }
.logos__set[aria-hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .logos--scroll { padding-inline: 0; position: relative; }
  /* Edge fade as two overlays (cream → transparent) instead of mask-image: a mask makes the browser re-composite
     the whole strip every frame and the slide stutters. */
  .logos--scroll::before,
  .logos--scroll::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 10%;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, var(--color-cream), rgba(247, 248, 244, 0)); /* --color-cream with alpha 0 */
  }
  .logos--scroll::before { left: 0; }
  .logos--scroll::after { right: 0; transform: scaleX(-1); }
  .logos--scroll .logos__track { width: max-content; will-change: transform; } /* js/main.js moves this, 1 device px per frame */
  .logos--scroll .logos__set {
    display: flex;
    flex: none;
    flex-wrap: nowrap;
    padding-inline-end: var(--space-16);
  }
  /* No-JS fallback: CSS-timed slide */
  .logos--scroll:not(.logos--js) .logos__set { animation: logos-slide var(--logos-duration, 40s) linear infinite; }
  .logos--scroll:not(.logos--js):hover .logos__set { animation-play-state: paused; }
  @keyframes logos-slide { to { transform: translateX(-100%); } }
}
.cf-turnstile { min-height: 65px; } /* Cloudflare bot check (apply form + ticket order); reserve its box so the form doesn't jump */
.partner {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  height: 96px;
  min-width: 160px;
  padding-inline: var(--space-28);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  font-weight: var(--weight-medium);
  font-size: var(--text-small);
  text-decoration: none;
  white-space: nowrap;
}
.partner img { display: block; height: var(--logo-h, 56px); width: auto; max-width: 220px; object-fit: contain; } /* --logo-h: per-logo, front-page.php */
a.partner:hover { border-color: var(--color-red); }

/* ================= §9b HOW TO ARRIVE ================= */
.arrive-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: var(--space-20); align-items: stretch; }
.arrive-venue {
  background: var(--color-navy);
  color: var(--color-cream);
  border-radius: var(--radius-xl);
  padding: var(--space-32);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}
.arrive-venue__label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: var(--weight-bold);
  font-size: var(--text-small);
  letter-spacing: var(--tracking-caps-sm);
  color: var(--on-dark-strong);
}
.arrive-venue__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--color-red); border: 2px solid var(--color-white); flex-shrink: 0; }
.arrive-venue__name { font-size: 22px; font-weight: var(--weight-black); color: var(--color-white); }
.arrive-venue__addr { font-weight: var(--weight-light); font-size: var(--text-body); color: var(--on-dark-body); }

/* Interactive map card (isolated stacking context so Leaflet panes stay under the sticky header) */
.arrive-map { margin-top: var(--space-20); border-radius: var(--radius-xl); overflow: hidden; border: 1px solid var(--color-border); position: relative; z-index: 0; }
.arrive-map vilnius-map { display: block; height: 420px; }

/* ================= §10 FAQ ================= */
.faq-list {
  max-width: var(--content-narrow);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.faq {
  background: var(--color-cream);
  border-radius: var(--radius-xl);
  padding: 26px var(--space-32);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}
.faq__q { font-weight: var(--weight-black); font-size: var(--text-faq); }
.faq__a { font-weight: var(--weight-light); font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-text-soft); }

/* ================= §11 FOOTER ================= */
.site-footer { background: var(--color-navy); color: var(--color-cream); }
.site-footer__inner { padding-block: var(--space-64) var(--space-36); }

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: var(--space-48);
  margin-bottom: var(--space-44);
}
.footer-col { display: flex; flex-direction: column; gap: var(--space-12); }
.footer-col--brand { gap: var(--space-16); }
.footer-col__logo { height: 56px; width: auto; align-self: flex-start; }
.footer-col__tagline { font-weight: var(--weight-light); font-size: var(--text-ui); line-height: var(--leading-lead); color: var(--on-dark-muted); max-width: 340px; }
.footer-col__label {
  font-weight: var(--weight-bold);
  font-size: var(--text-small);
  letter-spacing: var(--tracking-caps-sm);
  color: var(--color-red);
}
.footer-col a { color: var(--color-cream); font-weight: var(--weight-medium); font-size: var(--text-body); }
.footer-col a:hover { color: var(--color-red); }
.footer-col__line { font-weight: var(--weight-medium); font-size: var(--text-body); }
.footer-col__muted { font-weight: var(--weight-light); font-size: var(--text-ui); color: var(--on-dark-muted); }

.footer-bottom {
  border-top: 1px solid var(--on-dark-border);
  padding-top: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  font-weight: var(--weight-light);
  font-size: var(--text-small);
  color: var(--on-dark-faint);
}

/* ================= §12 RESPONSIVE ================= */
/* Breakpoints: 1100px (hero map) · 900px (nav switch, stacking) · 600px (phone type) */

@media (max-width: 1100px) {
  .hero__map { display: none; }
  .hero__venue { display: flex; }
}

@media (max-width: 900px) {
  :root {
    --gutter: 20px;
    --text-hero: 46px;
    --tracking-hero: -0.5px;
    --text-lead-lg: 17px;
    --text-h2: 32px;
  }
  .section { padding-block: var(--space-56); }
  .hero__inner { padding-block: var(--space-56) var(--space-72); }
  .about { padding-block: var(--space-56); }

  .nav__links { display: none; }
  .nav__burger { display: flex; }

  .facts { grid-template-columns: 1fr; }
  .fact { border-right: none; border-bottom: 1px solid var(--color-border); padding: 22px var(--space-28); }
  .fact:last-child { border-bottom: none; }

  .cards-3 { grid-template-columns: 1fr; }
  .tickets { grid-template-columns: 1fr; }
  .startas-cart .tickera-checkout { padding: var(--space-24) var(--space-20); }
  .startas-cart .tickera_additional_info { padding: var(--space-28) var(--space-20); }
  .startas-cart .tickera_table tr { flex-direction: column; align-items: flex-start; }
  .startas-cart .tickera_buyer_info { grid-template-columns: 1fr; }
  .startas-order #order_details > p:first-of-type { grid-template-columns: 1fr; padding: var(--space-24) var(--space-20); }
  .startas-order #order_details h2 { padding: var(--space-24) var(--space-20) 0; }
  .startas-order table.order-details { padding: var(--space-8) var(--space-20) var(--space-24); }
  .startas-order table.order-details tr { flex-direction: column; align-items: flex-start; gap: var(--space-8); }
  .program { grid-template-columns: 1fr; }
  .apply__grid { grid-template-columns: 1fr; gap: var(--space-40); }
  .form-card { padding: var(--space-28) var(--space-20); }
  .arrive-grid { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; gap: var(--space-32); }
  .site-footer__inner { padding-block: var(--space-48) var(--space-28); }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  /* ≥16px prevents iOS auto-zoom on focus */
  input, select, textarea { font-size: var(--text-body); }
}

@media (max-width: 600px) {
  :root {
    --text-hero: 38px;
    --text-h2: 28px;
    --text-ticket: 36px;
  }
  .hero__ctas { flex-direction: column; align-items: stretch; }
  .form-grid { grid-template-columns: 1fr; }
  .partner { height: 72px; min-width: 120px; padding-inline: var(--space-20); }
  .partner img { height: calc(var(--logo-h, 56px) * 0.64); max-width: 150px; }
  .stage__row { grid-template-columns: 1fr auto; padding: 14px var(--space-16); gap: 10px; }
  .faq { padding: 22px var(--space-20); }
}

@media (min-width: 901px) {
  .mobile-menu { display: none !important; }
}

/* ================= §13 MOTION PREFERENCES ================= */
/* Addition — not in mock */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .site-header.is-open .mobile-menu { animation: none; }
  .btn:active { transform: none; }
}

/* ================= §13 CONSENT + PRIVACY PAGE ================= */
.consent { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: var(--weight-light); font-size: var(--text-small); line-height: 1.5; color: var(--on-dark-body); }
.consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--color-red); cursor: pointer; flex-shrink: 0; }
.consent a { color: var(--color-white); text-decoration: underline; }
.consent a:hover { color: var(--color-red); }

.policy-header { background: var(--color-navy); }
.policy-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 16px; } /* padding-block, not `padding: 16px 0` — that zeroed .container's side gutter on phones */
.policy-header__logo { height: 44px; display: block; }
.policy-header__back { color: var(--color-cream); font-weight: var(--weight-bold); font-size: var(--text-ui); }
.policy-header__back:hover { color: var(--color-red); }

.policy { max-width: 820px; }
.policy__updated { font-weight: var(--weight-light); font-size: var(--text-ui); color: var(--color-text-muted); margin-top: var(--space-12); }
.policy__notice { display: inline-block; margin-top: var(--space-12); }
.policy h3 { font-size: 20px; font-weight: var(--weight-black); margin: var(--space-32) 0 var(--space-12); }
.policy p, .policy li { font-weight: var(--weight-light); font-size: var(--text-body); line-height: 1.65; color: var(--color-text-soft); }
.policy ul { padding-left: 22px; display: flex; flex-direction: column; gap: 6px; margin: 0; }
.policy a { font-weight: var(--weight-bold); text-decoration: underline; }

.policy-footer { background: var(--color-navy); }
/* Short policy/Tickera pages: pin the footer to the bottom of the viewport */
body.page:not(.home) { min-height: 100vh; display: flex; flex-direction: column; }
body.page:not(.home) > main { flex: 1 0 auto; width: 100%; box-sizing: border-box; }
.policy-footer__inner { padding-block: var(--space-24, 24px); font-weight: var(--weight-light); font-size: var(--text-small); color: var(--on-dark-muted); }

/* Footer legal links (bottom bar) */
.footer-bottom__links { display: flex; align-items: center; gap: var(--space-20); flex-wrap: wrap; }
.footer-bottom__links a { color: var(--on-dark-muted); }
.footer-bottom__links a:hover { color: var(--color-red); }

/* Legal pages — clause numbers ("1.1.") and § headings */
.policy strong { font-weight: var(--weight-bold); color: var(--color-navy); }

/* Legal pages — closing contact card (dalyvavimo-salygos) */
.policy-contact {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: 0 8px 24px rgba(30, 40, 83, 0.08); /* softer one-off of --shadow-card, per mock */
  padding: 26px 30px;
  margin-top: var(--space-40);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.policy-contact__kicker { font-weight: var(--weight-bold); font-size: var(--text-small); letter-spacing: 2.5px; color: var(--color-red); }
.policy-contact__name { font-weight: var(--weight-black); font-size: var(--text-faq); color: var(--color-navy); }
.policy-contact__line { font-weight: var(--weight-light); font-size: var(--text-ui); color: var(--color-text-soft); }
.policy-contact__line a { font-weight: var(--weight-medium); text-decoration: none; }
.policy-contact__line a[href^="mailto"] { text-decoration: underline; }

/* ================= §14 BRAND VECTOR ELEMENTS (update 2026-08-17 — docs/09) ================= */
/* 12 SVGs extracted 1:1 from the client's vector PDF. Colors are baked into the files. */

/* Centered marks above kickers (About caron, FAQ question mark) */
.kicker-mark { height: 24px; width: auto; align-self: center; margin-bottom: 2px; }
.kicker-mark--duk { height: 84px; margin-bottom: 0; }

/* About cards — outline diamond centered on the top rule */
.card { position: relative; }
.card__diamond { position: absolute; top: -20px; left: 50%; width: 40px; transform: translateX(-50%); }

/* Tickets band — "jau greitai" layout: ticket icon + large „Aš" fragment */
.tickets-band { position: relative; overflow: hidden; }
.tickets-soon { position: relative; padding-block: var(--space-56); display: flex; justify-content: space-between; gap: var(--space-32); }
.tickets-soon__intro { display: flex; align-items: flex-start; gap: var(--space-24); max-width: 680px; flex: 1; }
.tickets-soon__intro .section-head--left, .tickets-full__intro .section-head--left { margin-bottom: 0; }
.tickets-soon__icon { height: 88px; width: auto; flex-shrink: 0; margin-top: 2px; }
.tickets-soon__icon--sm { height: 72px; margin-top: 4px; }
/* Hand-tuned by the designer — copy exactly; width AND height are intentional (not the SVG's natural ratio) */
.tickets-band__deco { position: absolute; right: 40px; top: -24px; width: 260px; height: 321px; pointer-events: none; }
/* Full-tickets state (ticket_state=full): heading row with the icon */
.tickets-full__intro { display: flex; align-items: flex-start; gap: var(--space-24); margin-bottom: var(--space-44); max-width: 760px; }

/* Program stage headers — brand diamonds (replace the old .stage__dot) */
.stage__diamond { width: 34px; flex-shrink: 0; }

/* Application — large „A" fragment below the checklist. Hand-tuned — copy exactly */
.apply { overflow: hidden; }
.apply .container { position: relative; }
/* Anchored to the band's bottom edge, not to the text above: heading/lead edits in the Customizer never move it.
   bottom: -19px puts the red exactly on the edge (the SVG has 19px of empty space under the legs) = the designer's mock. */
.apply__deco { position: absolute; left: 144px; bottom: -19px; width: 172px; height: 335px; pointer-events: none; }

/* How to arrive — icon right of the text, vertically centered */
.arrive-venue { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--space-20); }
.arrive-venue__text { display: flex; flex-direction: column; gap: var(--space-12); }
.arrive-venue__place { display: flex; flex-direction: column; gap: var(--space-4); }
.arrive-venue__icon { width: 150px; flex-shrink: 0; }
.card--row { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--space-20); }
.card__col { display: flex; flex-direction: column; gap: var(--space-12); }
.card__side-icon { flex-shrink: 0; }
.card__side-icon--bus { height: 52px; }
.card__side-icon--car { height: 44px; }

/* The two logo fragments are desktop-only (same breakpoint as the hero map) */
@media (max-width: 1100px) {
  .tickets-band__deco, .apply__deco { display: none; }
}
