/* Knihkupectví Lucerna — scrapbook art direction: polaroids, washi tape, pinned notes */

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

:root{
  --teal-900:#0f3a38;
  --teal-700:#1b5a56;
  --teal-600:#277672;
  --teal-400:#56a49c;
  --teal-200:#bfe0db;
  --mustard-700:#b9790f;
  --mustard-600:#d79b1e;
  --mustard-400:#ecbb45;
  --mustard-200:#f6dfa4;
  --paper:#f6efdd;
  --paper-dark:#ecdfc1;
  --off-white:#fbf8ef;
  --cream-card:#fffdf6;
  --ink:#1d2621;
  --ink-soft:#44524c;
  --rust:#b3492b;
  --radius:16px;
  --radius-sm:9px;
  --shadow-paper: 0 14px 30px -12px rgba(15,58,56,.38), 0 2px 6px rgba(15,58,56,.1);
  --shadow-soft: 0 6px 16px -6px rgba(15,58,56,.25);
  --font-display: "Iowan Old Style","Palatino Linotype","Book Antiqua", Georgia, serif;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;
  --font-label: Georgia, "Times New Roman", serif;
  --container: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ overflow-x: clip; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--off-white);
  line-height:1.55;
}
img{ max-width:100%; display:block; }
a{ color: var(--teal-700); text-decoration-color: var(--mustard-600); }
h1,h2,h3,h4{ font-family: var(--font-display); color: var(--teal-900); margin:0 0 .5em; line-height:1.1; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; }
button{ font-family:inherit; }

:focus-visible{
  outline: 3px solid var(--mustard-600);
  outline-offset: 3px;
  border-radius: 4px;
}

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline: 1.25rem; }
.visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.hp-field{ position:absolute !important; left:-9999px !important; top:auto !important; width:1px; height:1px; opacity:0; }

/* ---------- grain overlay ---------- */
.grain-overlay{
  position:fixed; inset:0; width:100vw; height:100vh;
  pointer-events:none; z-index:2; opacity:.05; mix-blend-mode:multiply;
}

/* ---------- icon set ---------- */
.icon{ width:1.25em; height:1.25em; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; vertical-align:-0.2em; flex-shrink:0; }
.icon-lg{ width:2.1em; height:2.1em; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:40;
  background: rgba(246,239,221,.92);
  backdrop-filter: blur(6px);
  border-bottom: 2px solid var(--teal-900);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.7rem; }

.logo{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); }
.logo-mark{ width:46px; height:46px; flex-shrink:0; }
.logo-word{ font-family:var(--font-display); line-height:1.05; }
.logo-word small{ display:block; font-family:var(--font-body); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.logo-word strong{ font-size:1.4rem; color:var(--teal-900); }

.main-nav{ display:flex; align-items:center; gap:1.6rem; }
.main-nav a{ text-decoration:none; color:var(--ink); font-weight:600; position:relative; padding:.2rem 0; }
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-3px; width:100%; height:2px; background:var(--mustard-600);
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.main-nav a:hover::after, .main-nav a:focus-visible::after{ transform:scaleX(1); }

.header-actions{ display:flex; align-items:center; gap:.9rem; }
.cart-link{ position:relative; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; color:var(--ink); width:44px; height:44px; border-radius:50%; }
.cart-link:hover{ background:var(--paper-dark); }
.cart-count{
  position:absolute; top:2px; right:0px; background:var(--rust); color:#fff; font-size:.68rem; font-weight:700;
  min-width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0 4px;
  transform: scale(1); transition: transform .3s cubic-bezier(.34,1.56,.64,1);
}
.cart-count.bump{ transform: scale(1.45); }

.menu-toggle{
  display:none; background:none; border:2px solid var(--teal-900); border-radius:10px; width:44px; height:44px;
  align-items:center; justify-content:center; cursor:pointer; color:var(--teal-900);
}

@media (max-width: 860px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:min(78vw,320px); height:100vh;
    background:var(--teal-900); color:var(--off-white); flex-direction:column; align-items:flex-start;
    padding:5.5rem 1.6rem 2rem; gap:1.4rem; z-index:50;
    transform:translateX(100%); visibility:hidden; transition: transform .32s ease;
  }
  .main-nav.open{ transform:translateX(0); visibility:visible; }
  .main-nav a{ color:var(--off-white); font-size:1.1rem; }
  .main-nav a::after{ background:var(--mustard-400); }
  .menu-toggle{ display:flex; }
  .nav-close{ display:flex; position:absolute; top:1.2rem; right:1.2rem; background:none; border:2px solid var(--off-white); border-radius:10px; width:40px; height:40px; align-items:center; justify-content:center; color:var(--off-white); cursor:pointer; }
}
@media (min-width: 861px){ .nav-close{ display:none; } }

.nav-backdrop{ position:fixed; inset:0; background:rgba(15,58,56,.45); z-index:45; opacity:0; visibility:hidden; transition:opacity .3s; }
.nav-backdrop.open{ opacity:1; visibility:visible; }

/* ---------- buttons ---------- */
.btn{
  position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:700; font-size:1rem; padding:.78rem 1.5rem; border-radius:999px; border:2px solid var(--teal-900);
  background:var(--teal-900); color:var(--off-white); text-decoration:none; cursor:pointer; isolation:isolate;
  min-height:44px;
}
.btn::before{
  content:""; position:absolute; inset:0; left:-100%; width:100%; background:var(--mustard-500,var(--mustard-600));
  z-index:-1; transition: left .32s ease;
}
.btn:hover::before, .btn:focus-visible::before{ left:0; }
.btn:hover, .btn:focus-visible{ color:var(--teal-900); }
.btn-ghost{ background:transparent; color:var(--teal-900); }
.btn-ghost::before{ background:var(--teal-900); }
.btn-ghost:hover{ color:var(--off-white); }
.btn-outline-light{ background:transparent; color:var(--off-white); border-color:var(--off-white); }
.btn-outline-light::before{ background:var(--off-white); }
.btn-outline-light:hover{ color:var(--teal-900); }
.btn-accent{ background:var(--mustard-600); color:var(--teal-900); border-color:var(--mustard-600); }
.btn-accent::before{ background:var(--teal-900); }
.btn-accent:hover{ color:var(--off-white); }
.btn-sm{ padding:.55rem 1.1rem; font-size:.9rem; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.6; cursor:not-allowed; }

/* ---------- layout helpers ---------- */
section{ padding-block: clamp(3rem,6vw,5.5rem); position:relative; }
.section-tight{ padding-block: clamp(2rem,4vw,3.2rem); }
.section-head{ max-width:640px; margin-bottom:2.2rem; }
.section-head .kicker{ font-family:var(--font-label); font-style:italic; color:var(--mustard-700); font-weight:700; letter-spacing:.03em; display:inline-block; margin-bottom:.4rem; transform:rotate(-1.5deg); }
.section-head h2{ font-size:clamp(1.8rem,4vw,2.6rem); }

.bg-teal{ background:var(--teal-900); color:var(--off-white); }
.bg-teal h2, .bg-teal h3{ color:var(--off-white); }
.bg-teal .product-title{ color:var(--teal-900); }
.bg-paper{ background:var(--paper); }
.divider{ display:block; width:100%; height:auto; color:var(--paper); }
.divider path{ fill: currentColor; }
.flip-divider{ transform: scaleY(-1); }

/* ---------- reveal / motion ---------- */
.reveal.reveal-js{ opacity:0; transform:translateY(22px); clip-path: inset(0 0 12% 0); transition: opacity .7s ease, transform .7s ease, clip-path .7s ease; }
.reveal.reveal-js.in-view{ opacity:1; transform:translateY(0); clip-path: inset(0 0 0 0); }
.reveal.reveal-js:nth-child(2){ transition-delay:.08s; }
.reveal.reveal-js:nth-child(3){ transition-delay:.16s; }
.reveal.reveal-js:nth-child(4){ transition-delay:.24s; }

@media (prefers-reduced-motion: reduce){
  .reveal.reveal-js{ transition:none !important; opacity:1 !important; transform:none !important; clip-path:none !important; }
  .hero-illustration path{ animation:none !important; stroke-dashoffset:0 !important; }
  *{ animation-duration:.001ms !important; }
}

/* ---------- hero ---------- */
.hero{ position:relative; padding-block: clamp(2.5rem,6vw,4.5rem) clamp(3rem,7vw,5rem); overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns: 1.1fr 1fr; gap:2.5rem; align-items:center; }
@media (max-width:760px){ .hero-grid{ grid-template-columns:1fr; } }

.split{ display:grid; gap:2.5rem; align-items:center; grid-template-columns:1fr 1fr; }
.split-wide-left{ grid-template-columns:1.1fr .9fr; }
.split-wide-right{ grid-template-columns:.9fr 1.1fr; }
.split-start{ align-items:start; }
@media (max-width:760px){ .split, .split-wide-left, .split-wide-right{ grid-template-columns:1fr; } }
.hero-eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-label); font-style:italic; font-weight:700; color:var(--mustard-700); margin-bottom:1rem; transform:rotate(-1deg); }
.hero h1{ font-size:clamp(2.6rem,6.4vw,4.4rem); letter-spacing:-.01em; }
.hero h1 em{ font-style:normal; color:var(--rust); position:relative; }
.hero-lede{ font-size:1.15rem; max-width:34ch; color:var(--ink-soft); }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.6rem; }
.hero-art{ position:relative; }
.hero-illustration{ width:100%; height:auto; overflow:visible; }
.hero-illustration path, .hero-illustration polyline, .hero-illustration rect{
  stroke-dasharray: 900; stroke-dashoffset:900; animation: draw 2.4s ease forwards;
}
.hero-illustration .flame{ opacity:0; animation: fade-in .9s ease forwards; animation-delay:1.9s; }
.hero-illustration .star{ opacity:0; animation: fade-in .6s ease forwards; }
.hero-illustration .star1{ animation-delay:1.6s; }
.hero-illustration .star2{ animation-delay:1.9s; }
.hero-illustration .star3{ animation-delay:2.1s; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
@keyframes fade-in{ to{ opacity:1; } }

.swing{ animation: swing 4.5s ease-in-out infinite; transform-origin: 50% 0%; display:inline-block; }
.lantern-group{ transform-box: fill-box; transform-origin: top center; animation: swing 4.5s ease-in-out infinite; animation-delay: 2.3s; }
@keyframes swing{ 0%,100%{ transform:rotate(-3deg); } 50%{ transform:rotate(3deg); } }

.washi{ position:absolute; pointer-events:none; }

/* ---------- collage / polaroid ---------- */
.collage{ position:relative; display:grid; gap:1.4rem; }
.collage-grid{ grid-template-columns: repeat(6,1fr); position:relative; }
.collage-item-a{ grid-column:1/4; grid-row:1/3; }
.collage-item-b{ grid-column:4/7; grid-row:1/2; }
.collage-item-c{ grid-column:4/6; grid-row:2/3; align-self:start; }
.collage-item-d{ grid-column:6/7; grid-row:2/3; }
@media (max-width:760px){
  .collage-grid{ grid-template-columns: 1fr; }
  .collage-item-a, .collage-item-b, .collage-item-c, .collage-item-d{ grid-column:1; grid-row:auto; }
}
.polaroid{
  background:var(--cream-card); padding:.6rem .6rem 2.4rem; border-radius:3px;
  box-shadow: var(--shadow-paper); position:relative; transform:rotate(-2deg);
}
.polaroid:nth-of-type(2n){ transform:rotate(2deg); }
.polaroid:nth-of-type(3n){ transform:rotate(-1deg); }
.polaroid img{ width:100%; height:100%; object-fit:cover; border-radius:1px; }
.polaroid figcaption{
  position:absolute; left:.8rem; bottom:.5rem; right:.8rem; font-family:var(--font-label); font-style:italic;
  color:var(--ink-soft); font-size:.95rem; transform:rotate(-1deg);
}
.pin{ position:absolute; top:-10px; left:50%; translate:-50% 0; width:18px; height:18px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #e8604a, var(--rust)); box-shadow: 0 3px 4px rgba(0,0,0,.35); }

.note{
  background: var(--mustard-200); border-radius:4px; padding:1.1rem 1.2rem; box-shadow: var(--shadow-soft);
  font-family: var(--font-label); color: var(--ink); position:relative; transform:rotate(-1.4deg);
  border:1px dashed var(--mustard-700);
}

.tape{
  display:inline-block; position:absolute; height:34px;
}

/* ---------- cards ---------- */
.card{
  background:var(--cream-card); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow-soft);
  transition: transform .3s ease, box-shadow .3s ease;
}
.card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-paper); }
.grid{ display:grid; gap:1.6rem; }
.grid-3{ grid-template-columns: repeat(3,1fr); }
.grid-2{ grid-template-columns: repeat(2,1fr); }
@media (max-width:900px){ .grid-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .grid-3,.grid-2{ grid-template-columns:1fr; } }

/* ---------- feature: Stihnu to? ---------- */
.feature-section{ background:var(--teal-900); color:var(--off-white); overflow:hidden; }
.feature-section h2, .feature-section h3{ color:var(--off-white); }
.feature-section .section-head .kicker{ color:var(--mustard-400); }
.feature-section .muted{ color:var(--teal-200); }
.feature-wrap{ display:grid; grid-template-columns: 1fr 1.1fr; gap:2.5rem; align-items:start; }
@media (max-width:760px){ .feature-wrap{ grid-template-columns:1fr; } }
.feature-panel{
  background:var(--off-white); color:var(--ink); border-radius:var(--radius); padding:1.8rem; box-shadow:var(--shadow-paper);
}
.feature-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
@media (max-width:620px){ .feature-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:.35rem; margin-bottom:1rem; }
.field label{ font-weight:700; font-size:.92rem; }
.field input, .field select, .field textarea{
  font: inherit; padding:.65rem .8rem; border-radius:var(--radius-sm); border:2px solid var(--teal-700);
  background:var(--off-white); accent-color: var(--teal-700); min-height:44px;
}
.field textarea{ min-height:110px; resize:vertical; }
.feature-result{ margin-top:1.2rem; padding:1.1rem 1.2rem; border-radius:var(--radius-sm); border:2px dashed var(--teal-700); display:none; }
.feature-result.show{ display:block; }
.feature-result.ok{ background:var(--teal-200); border-color:var(--teal-600); }
.feature-result.warn{ background:var(--mustard-200); border-color:var(--mustard-700); }
.feature-result ul{ margin-top:.6rem; padding-left:1.2rem; list-style:disc; }
.feature-next{ font-family:var(--font-label); font-style:italic; color:var(--mustard-400); margin-top:.3rem; }

/* ---------- product strip / catalog ---------- */
.product-strip{ display:grid; grid-auto-flow:column; grid-auto-columns: min(280px,78vw); gap:1.4rem; overflow-x:auto; padding:.6rem .2rem 1.4rem; scroll-snap-type:x mandatory; }
.product-strip .product-card{ scroll-snap-align:start; }
@media (min-width: 860px){ .product-strip{ grid-auto-flow:row; grid-template-columns: repeat(4,1fr); overflow:visible; } }

.product-card{ background:var(--cream-card); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-soft); display:flex; flex-direction:column; text-decoration:none; color:var(--ink); transition: transform .3s ease, box-shadow .3s ease; }
.product-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-paper); }
.product-media{ aspect-ratio: 4/5; overflow:hidden; background:var(--paper-dark); }
.product-media img{ width:100%; height:100%; object-fit:cover; transition: transform .45s ease; }
.product-card:hover .product-media img{ transform:scale(1.07); }
.product-body{ padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.3rem; flex:1; }
.product-cat{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--teal-600); font-weight:700; }
.product-title{ font-family:var(--font-display); font-size:1.15rem; color:var(--teal-900); margin:0; }
.product-author{ font-size:.85rem; color:var(--ink-soft); font-style:italic; }
.product-price{ margin-top:auto; font-weight:800; font-size:1.15rem; color:var(--rust); }
.product-pages{ font-size:.78rem; color:var(--ink-soft); }

.filters{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.filter-btn{ border:2px solid var(--teal-900); background:transparent; border-radius:999px; padding:.5rem 1rem; font-weight:700; cursor:pointer; min-height:44px; }
.filter-btn.active{ background:var(--teal-900); color:var(--off-white); }

/* ---------- product detail ---------- */
.product-detail{ display:grid; grid-template-columns: 1fr 1fr; gap:2.5rem; align-items:start; }
@media (max-width:760px){ .product-detail{ grid-template-columns:1fr; } }
.product-detail .polaroid{ transform:rotate(-1.5deg); max-width:460px; }
.qty-row{ display:flex; align-items:center; gap:.8rem; margin:1.2rem 0; }
.qty-row input{ width:70px; text-align:center; padding:.6rem; border-radius:var(--radius-sm); border:2px solid var(--teal-700); min-height:44px; }
.badge{ display:inline-flex; align-items:center; gap:.4rem; background:var(--mustard-200); color:var(--teal-900); border-radius:999px; padding:.3rem .8rem; font-size:.8rem; font-weight:700; }

/* ---------- cart / checkout ---------- */
.cart-table{ width:100%; border-collapse:collapse; }
.cart-table th{ text-align:left; font-family:var(--font-display); color:var(--teal-900); padding:.6rem; border-bottom:2px solid var(--teal-900); }
.cart-table td{ padding:.8rem .6rem; border-bottom:1px solid var(--paper-dark); vertical-align:middle; }
.cart-item-info{ display:flex; align-items:center; gap:.8rem; }
.cart-item-info img{ width:56px; height:72px; object-fit:cover; border-radius:4px; flex-shrink:0; }
.cart-qty{ width:60px; padding:.4rem; border-radius:6px; border:2px solid var(--teal-700); min-height:40px; }
.remove-btn{ background:none; border:none; color:var(--rust); font-weight:700; cursor:pointer; text-decoration:underline; min-height:44px; padding:0 .4rem; }
.cart-summary{ background:var(--paper); border-radius:var(--radius); padding:1.5rem; margin-top:1.5rem; max-width:360px; margin-left:auto; box-shadow:var(--shadow-soft); }
.cart-summary .row{ display:flex; justify-content:space-between; margin-bottom:.5rem; }
.cart-empty{ text-align:center; padding:3rem 1rem; }
.checkout-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; margin-top:2rem; align-items:start; }
@media (max-width:800px){ .checkout-grid{ grid-template-columns:1fr; } }
.order-summary{ background:var(--paper); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow-soft); }
.form-msg{ margin-top:1rem; padding:.9rem 1rem; border-radius:var(--radius-sm); display:none; }
.form-msg.show{ display:block; }
.form-msg.success{ background:var(--teal-200); color:var(--teal-900); display:block; }
.form-msg.error{ background:#f6d4c7; color:var(--rust); display:block; }
.field-error{ color:var(--rust); font-size:.82rem; display:none; }
.field.invalid input, .field.invalid select, .field.invalid textarea{ border-color:var(--rust); }
.field.invalid .field-error{ display:block; }

/* ---------- info pages ---------- */
.prose{ max-width:760px; }
.prose h2{ margin-top:2rem; font-size:1.4rem; }
.prose ul{ list-style:disc; padding-left:1.4rem; margin-bottom:1em; }
.prose li{ margin-bottom:.4rem; }

.faq-item{ border-bottom:1px solid var(--paper-dark); padding:1rem 0; }
.faq-item summary{ cursor:pointer; font-weight:700; font-family:var(--font-display); color:var(--teal-900); font-size:1.08rem; padding-right:2rem; position:relative; list-style:none; min-height:44px; display:flex; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; position:absolute; right:0; font-size:1.4rem; color:var(--mustard-700); }
.faq-item[open] summary::after{ content:"–"; }
.faq-item p{ margin-top:.7rem; color:var(--ink-soft); }

/* ---------- seal / badge svg ---------- */
.seal{ width:120px; height:120px; filter: drop-shadow(0 4px 6px rgba(0,0,0,.2)); }

/* ---------- footer ---------- */
.site-footer{ background:var(--teal-900); color:var(--off-white); padding-block: 3.5rem 1.6rem; position:relative; }
.footer-grid{ display:grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap:2.4rem; }
@media (max-width: 900px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-grid{ grid-template-columns: 1fr; } }
.site-footer h3{ color: var(--mustard-400); font-size:1rem; letter-spacing:.03em; text-transform:uppercase; font-family:var(--font-body); font-weight:700; margin-bottom:1rem; }
.site-footer ul{ display:flex; flex-direction:column; gap:.55rem; }
.site-footer a{ color: var(--off-white); text-decoration:none; opacity:.92; }
.site-footer a:hover{ text-decoration:underline; text-decoration-color:var(--mustard-400); }
.footer-logo{ color:var(--off-white); margin-bottom:.8rem; }
.footer-logo .logo-word small{ color: var(--teal-200); }
.footer-logo .logo-word strong{ color:var(--off-white); }
.newsletter-form{ display:flex; gap:.5rem; margin-top:.6rem; flex-wrap:wrap; }
.newsletter-form input{ flex:1; min-width:160px; padding:.65rem .8rem; border-radius:999px; border:2px solid var(--teal-400); background:var(--off-white); min-height:44px; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.18); margin-top:2.6rem; padding-top:1.4rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; font-size:.85rem; opacity:.85; }

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:60; max-width:640px; margin-inline:auto;
  background: var(--teal-900); color: var(--off-white); border-radius: var(--radius); padding:1.3rem 1.4rem;
  box-shadow: var(--shadow-paper); display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between;
  transform: translateY(140%); transition: transform .4s ease;
}
.cookie-banner.show{ transform: translateY(0); }
.cookie-banner p{ margin:0; font-size:.92rem; flex:1 1 260px; }
.cookie-banner a{ color: var(--mustard-400); }
.cookie-actions{ display:flex; gap:.7rem; flex-wrap:wrap; }

/* ---------- 404 ---------- */
.error-page{ min-height:60vh; display:flex; align-items:center; justify-content:center; text-align:center; padding-block:4rem; }

/* ---------- misc ---------- */
.marquee-line{ overflow:hidden; white-space:nowrap; border-top:2px solid var(--teal-900); border-bottom:2px solid var(--teal-900); padding:.6rem 0; background:var(--mustard-200); }
.marquee-line span{ display:inline-block; padding-right:2.5rem; font-family:var(--font-label); font-style:italic; font-weight:700; color:var(--teal-900); animation: marquee 22s linear infinite; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

.text-center{ text-align:center; }
.mt-lg{ margin-top:2.5rem; }
.muted{ color:var(--ink-soft); }
