/* ===== Vodičakademia — Claymorphism design system ===== */

:root{
  --navy: #1b2642;
  --navy-2: #263657;
  --navy-3: #30437a;
  --sand: #f4ead3;
  --sand-2: #ece0c3;
  --coral: #ef6a52;
  --coral-2: #d8502f;
  --cream: #fffaf0;
  --ink: #15192a;
  --line: rgba(27,38,66,.12);

  --font-display: "Segoe UI Semibold","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --font-body: "Segoe UI","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --font-mono: "Consolas","SFMono-Regular","Liberation Mono",monospace;

  --radius-xl: 2.2rem;
  --radius-lg: 1.6rem;
  --radius-md: 1.1rem;
  --radius-sm: .7rem;

  --clay-raise: 10px 10px 24px rgba(21,25,42,.16), -8px -8px 20px rgba(255,255,255,.65), inset 0 1px 0 rgba(255,255,255,.4);
  --clay-raise-dark: 10px 10px 24px rgba(0,0,0,.45), -6px -6px 18px rgba(255,255,255,.04), inset 0 1px 0 rgba(255,255,255,.08);
  --clay-press: inset 6px 6px 14px rgba(21,25,42,.18), inset -6px -6px 14px rgba(255,255,255,.6);

  --ease-bounce: cubic-bezier(.34,1.56,.64,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ overflow-x:clip; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--sand);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  margin:0 0 .5em;
  line-height:1.08;
  letter-spacing:-.01em;
  color:var(--navy);
}
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; }
button{ font-family:inherit; }

.container{ width:min(1180px, 92vw); margin-inline:auto; }
section{ padding:clamp(3rem,6vw,5.5rem) 0; }

.visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.eyebrow{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  color:var(--coral-2);
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:.5em;
}

/* ===== Icon sprite ===== */
.icon{ width:1.3em; height:1.3em; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }

/* ===== Buttons ===== */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55em;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.98rem;
  padding:.85em 1.7em;
  border-radius:999px;
  border:none;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  min-height:44px;
  background:var(--cream);
  color:var(--navy);
  box-shadow:var(--clay-raise);
  transition:transform .25s var(--ease-bounce), box-shadow .25s ease;
}
.btn::after{
  content:"";
  position:absolute;
  inset:0;
  width:100%;
  left:-100%;
  background:var(--navy);
  z-index:-1;
  transition:left .32s var(--ease-bounce);
  border-radius:inherit;
}
.btn:hover::after{ left:0; }
.btn:hover{ color:var(--cream); transform:translateY(-2px); }
.btn:active{ transform:translateY(1px) scale(.98); box-shadow:var(--clay-press); }
.btn-primary{ background:var(--coral); color:var(--cream); }
.btn-primary::after{ background:var(--coral-2); }
.btn-primary:hover{ color:var(--cream); }
.btn-ghost{ background:transparent; box-shadow:none; border:2px solid var(--line); }
.btn-ghost::after{ background:var(--navy); }
.btn-ghost:hover{ color:var(--cream); border-color:var(--navy); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.55; cursor:not-allowed; }
.btn-sm{ padding:.6em 1.2em; font-size:.85rem; }

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(244,234,211,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem 0;
  gap:1rem;
}
.brand{ display:flex; align-items:center; gap:.65rem; font-family:var(--font-display); font-weight:800; font-size:1.18rem; color:var(--navy); }
.brand-mark{ width:2.6rem; height:2.6rem; flex-shrink:0; }
.brand-word b{ color:var(--coral-2); }

.main-nav{ display:flex; align-items:center; gap:1.9rem; }
.main-nav a{
  font-weight:600; font-size:.96rem; position:relative; padding:.2em 0;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:100%; height:2px;
  background:var(--coral); transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.main-nav a:hover::after, .main-nav a[aria-current="page"]::after{ transform:scaleX(1); }

.header-actions{ display:flex; align-items:center; gap:.7rem; }
.cart-btn{
  position:relative; display:inline-flex; align-items:center; gap:.5em;
  background:var(--cream); border-radius:999px; padding:.6em 1.1em;
  box-shadow:var(--clay-raise); font-weight:700; font-size:.9rem; min-height:44px;
}
.cart-count{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:1.5em; height:1.5em; border-radius:50%; background:var(--coral); color:#fff;
  font-family:var(--font-mono); font-size:.78rem; padding:0 .3em;
  transition:transform .35s var(--ease-bounce);
}
.cart-count.bump{ transform:scale(1.5) rotate(10deg); }

.menu-toggle{
  display:none; background:var(--cream); border:none; border-radius:999px; width:44px; height:44px;
  align-items:center; justify-content:center; box-shadow:var(--clay-raise); cursor:pointer;
}
.menu-toggle .icon{ width:1.4em; height:1.4em; }

/* ===== Marquee hero strip ===== */
.marquee{
  background:var(--navy); color:var(--sand); overflow:hidden; white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.marquee-track{
  display:inline-flex; gap:2.5rem; padding:.55rem 0; animation:marquee 26s linear infinite;
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
}
.marquee-track span{ display:flex; align-items:center; gap:.6rem; opacity:.9; }
.marquee-track .dot{ color:var(--coral); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }

/* ===== Hero ===== */
.hero{ padding-top:clamp(3rem,7vw,6rem); position:relative; }
.hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; }
.hero h1{ font-size:clamp(2.4rem,5.4vw,4.1rem); }
.hero-lede{ font-size:1.15rem; max-width:34ch; color:var(--navy-2); }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.6rem; }
.hero-art{ position:relative; padding:1.5rem 0 4rem; }
.hero-illustration{ width:100%; height:auto; display:block; }
.wheel-rotate{ transform-box:fill-box; transform-origin:center; animation:spin 6s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .wheel-rotate{ animation:none; } }
.hero-photo-wrap{
  position:absolute; right:-4%; bottom:-2%; width:56%;
  border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--clay-raise);
  aspect-ratio:4/3;
}
.hero-photo-wrap img{ width:100%; height:100%; object-fit:cover; }
.hero-badge{
  position:absolute; bottom:-1.6rem; left:0; width:6.5rem; height:6.5rem;
}
@media (max-width:860px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ padding-bottom:7.5rem; }
  .hero-photo-wrap{ width:62%; right:0; bottom:-2.5rem; }
  .hero-badge{ bottom:-2.5rem; left:0; width:5rem; height:5rem; }
}

/* ===== Bento grid ===== */
.bento{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:minmax(160px,auto);
  gap:1.1rem;
}
.bento-tile{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  background:var(--cream); box-shadow:var(--clay-raise);
  padding:1.6rem; display:flex; flex-direction:column; justify-content:flex-end;
  transition:transform .4s var(--ease-bounce), box-shadow .4s ease;
}
.bento-tile:hover{ transform:translateY(-4px) rotate(-.3deg); }
.bento-tile.feature{ grid-column:span 4; grid-row:span 2; background:var(--navy); color:var(--sand); box-shadow:var(--clay-raise-dark); }
.bento-tile.feature h3, .bento-tile.feature p{ color:var(--sand); }
.bento-tile.wide{ grid-column:span 2; }
.bento-tile.photo{ color:#fff; background-color:var(--navy); }
.bento-tile.photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.bento-tile.photo::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(27,38,66,0) 30%, rgba(21,25,42,.85) 100%); mix-blend-mode:multiply; background-color:var(--navy); opacity:.55; z-index:1; }
.bento-tile.photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 35%, rgba(10,13,24,.82) 100%); z-index:1; }
.bento-tile.photo > *{ position:relative; z-index:2; }
.bento-tile.photo h3, .bento-tile.photo p{ color:#fff; }
.bento-tile h3{ font-size:1.25rem; margin-bottom:.3rem; }
.bento-tile p{ margin:0; font-size:.92rem; opacity:.9; }
@media (max-width:980px){
  .bento{ grid-template-columns:repeat(2,1fr); }
  .bento-tile.feature{ grid-column:span 2; }
}
@media (max-width:560px){
  .bento{ grid-template-columns:1fr; }
  .bento-tile.feature, .bento-tile.wide{ grid-column:span 1; }
}

/* ===== Planner feature ===== */
.planner{ margin-top:1.8rem; }
.planner-controls{ display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.planner-controls select{
  font-family:var(--font-body); border-radius:999px; border:2px solid rgba(255,255,255,.25);
  background:var(--navy-2); color:var(--sand); padding:.6em 1.1em; min-height:44px; accent-color:var(--coral);
}
.planner-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:.6rem; }
.slot-btn{
  border-radius:var(--radius-sm); border:none; background:var(--navy-3); color:var(--sand);
  padding:.7em .5em; font-family:var(--font-mono); font-size:.82rem; cursor:pointer; min-height:44px;
  box-shadow:4px 4px 10px rgba(0,0,0,.35), -3px -3px 8px rgba(255,255,255,.04);
  transition:transform .2s var(--ease-bounce), background .2s ease;
}
.slot-btn:hover{ transform:translateY(-2px); background:var(--navy-2); }
.slot-btn.selected{ background:var(--coral); color:#fff; box-shadow:var(--clay-press); }
.slot-btn[disabled]{ opacity:.3; cursor:not-allowed; text-decoration:line-through; }
.planner-result{
  margin-top:1.2rem; padding:1rem 1.3rem; border-radius:var(--radius-md); background:rgba(255,255,255,.06);
  font-size:.95rem; display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
}
.planner-result strong{ color:var(--coral); }

/* ===== Section headings ===== */
.section-head{ max-width:48ch; margin-bottom:2.4rem; }
.section-head.center{ margin-inline:auto; text-align:center; }

/* ===== Cards (courses) ===== */
.course-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:1.5rem; }
.course-card{
  background:var(--cream); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--clay-raise);
  display:flex; flex-direction:column; transition:transform .35s var(--ease-bounce), box-shadow .35s ease;
}
.course-card:hover{ transform:translateY(-6px); }
.course-media{ aspect-ratio:4/3; overflow:hidden; position:relative; }
.course-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.course-card:hover .course-media img{ transform:scale(1.08); }
.course-body{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.course-duration{ font-family:var(--font-mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--navy-2); opacity:.75; }
.course-price{ font-family:var(--font-mono); font-weight:700; color:var(--coral-2); font-size:1.05rem; margin-top:auto; }
.course-actions{ display:flex; gap:.6rem; margin-top:.6rem; }

.strip-scroll{
  display:flex; gap:1.2rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.5rem;
  -webkit-overflow-scrolling:touch;
}
.strip-scroll .course-card{ min-width:250px; scroll-snap-align:start; flex-shrink:0; }
@media (min-width:860px){
  .strip-scroll{ overflow:visible; display:grid; grid-template-columns:repeat(4,1fr); }
}

/* ===== Dividers / decorative svg ===== */
.divider{ display:block; width:100%; height:auto; }
.divider-wrap{ margin:0; line-height:0; }

/* ===== Forms ===== */
.form-grid{ display:grid; gap:1.1rem; }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field label{ font-weight:700; font-size:.9rem; color:var(--navy); }
.field input, .field select, .field textarea{
  font-family:var(--font-body); font-size:1rem; padding:.8em 1em; border-radius:var(--radius-sm);
  border:2px solid var(--line); background:var(--cream); color:var(--ink); accent-color:var(--coral);
  min-height:44px; transition:box-shadow .2s ease, border-color .2s ease;
}
.field textarea{ min-height:120px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:3px solid var(--coral); outline-offset:1px; border-color:var(--coral);
}
.field.error input, .field.error textarea{ border-color:var(--coral-2); }
.field-error{ color:var(--coral-2); font-size:.82rem; display:none; }
.field.error .field-error{ display:block; }
.hp-field{ position:absolute !important; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.form-note{ font-size:.85rem; color:var(--navy-2); opacity:.8; }
.form-feedback{ padding:1em 1.3em; border-radius:var(--radius-md); margin-top:1rem; display:none; font-weight:600; }
.form-feedback.show{ display:block; }
.form-feedback.ok{ background:#e4f3e1; color:#2a6b3d; }
.form-feedback.fail{ background:#fbe3dd; color:var(--coral-2); }

/* ===== Cards generic (about/faq/legal) ===== */
.clay-card{ background:var(--cream); border-radius:var(--radius-lg); box-shadow:var(--clay-raise); padding:clamp(1.5rem,3vw,2.4rem); }
.two-col{ display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; } }

.faq-item{ border-bottom:1px solid var(--line); padding:1.1rem 0; }
.faq-item summary{ font-weight:700; cursor:pointer; font-family:var(--font-display); font-size:1.05rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .icon{ transition:transform .3s ease; flex-shrink:0; }
.faq-item[open] summary .icon{ transform:rotate(45deg); }
.faq-item p{ margin-top:.8rem; color:var(--navy-2); }

.step-list{ display:grid; gap:1.2rem; }
.step-item{ display:flex; gap:1rem; align-items:flex-start; }
.step-num{
  width:2.6rem; height:2.6rem; border-radius:50%; background:var(--coral); color:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:700;
  box-shadow:var(--clay-raise);
}

/* ===== Cart/checkout ===== */
.cart-table{ width:100%; border-collapse:collapse; }
.cart-table th{ text-align:left; font-family:var(--font-mono); text-transform:uppercase; font-size:.75rem; letter-spacing:.06em; color:var(--navy-2); padding:.6em; border-bottom:2px solid var(--line); }
.cart-table td{ padding:.9em .6em; border-bottom:1px solid var(--line); vertical-align:middle; }
.cart-item-name{ font-weight:700; }
.qty-controls{ display:inline-flex; align-items:center; gap:.5em; }
.qty-controls button{ width:36px; height:36px; border-radius:50%; border:none; background:var(--sand-2); cursor:pointer; font-weight:700; box-shadow:var(--clay-raise); }
.cart-remove{ color:var(--coral-2); font-weight:700; cursor:pointer; background:none; border:none; font-size:.85rem; }
.cart-empty{ text-align:center; padding:3rem 1rem; }
.cart-summary{ display:flex; justify-content:flex-end; margin-top:1.2rem; }
.cart-total{ font-family:var(--font-mono); font-size:1.3rem; font-weight:700; }

/* ===== Footer ===== */
.site-footer{ background:var(--navy); color:var(--sand); margin-top:4rem; padding:4rem 0 2rem; position:relative; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:2.5rem; }
.footer-brand{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-weight:800; font-size:1.1rem; margin-bottom:.8rem; }
.footer-brand svg{ width:2.2rem; height:2.2rem; }
.site-footer h4{ color:var(--sand); font-family:var(--font-mono); text-transform:uppercase; font-size:.8rem; letter-spacing:.08em; margin-bottom:1rem; }
.site-footer a{ opacity:.82; }
.site-footer a:hover{ opacity:1; text-decoration:underline; }
.footer-links{ display:flex; flex-direction:column; gap:.6rem; }
.footer-bottom{ margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:.85rem; opacity:.75; }
.newsletter-form{ display:flex; gap:.6rem; margin-top:.6rem; flex-wrap:wrap; }
.newsletter-form input{ flex:1; min-width:150px; padding:.7em 1em; border-radius:999px; border:none; min-height:44px; }
@media (max-width:980px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }

/* ===== Cookie banner ===== */
.cookie-banner{
  position:fixed; bottom:1rem; left:1rem; right:1rem; max-width:620px; margin-inline:auto; z-index:100;
  background:var(--navy); color:var(--sand); border-radius:var(--radius-lg); padding:1.3rem 1.5rem;
  box-shadow:var(--clay-raise-dark); display:flex; gap:1rem; flex-wrap:wrap; align-items:center;
  transform:translateY(120%); transition:transform .5s var(--ease-bounce);
}
.cookie-banner.show{ transform:translateY(0); }
.cookie-banner p{ margin:0; font-size:.88rem; flex:1 1 280px; }
.cookie-actions{ display:flex; gap:.6rem; }

/* ===== Mobile nav ===== */
@media (max-width:860px){
  .main-nav{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
    background:var(--navy); color:var(--sand); flex-direction:column; align-items:flex-start;
    padding:6rem 2rem 2rem; gap:1.4rem; z-index:60;
    transform:translateX(100%); visibility:hidden; transition:transform .35s ease, visibility .35s ease;
  }
  .main-nav.open{ transform:translateX(0); visibility:visible; }
  .main-nav a{ font-size:1.1rem; color:var(--sand); }
  .menu-toggle{ display:flex; }
}

/* ===== Reveal animation ===== */
.reveal{ opacity:1; }
.reveal.js-hidden{ opacity:0; transform:translateY(24px); clip-path:inset(0 0 15% 0); }
.reveal.in-view{ opacity:1; transform:none; clip-path:inset(0 0 0% 0); transition:opacity .7s ease, transform .7s var(--ease-bounce), clip-path .7s ease; }
@media (prefers-reduced-motion: reduce){
  .reveal.js-hidden{ opacity:1; transform:none; clip-path:none; }
}

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

/* ===== Misc ===== */
.badge-seal{ width:6rem; height:6rem; }
.safety-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.3rem; }
.safety-card{ background:var(--cream); border-radius:var(--radius-lg); padding:1.6rem; box-shadow:var(--clay-raise); }
.safety-card .icon{ width:2.2rem; height:2.2rem; color:var(--coral); margin-bottom:.8rem; }

.page-hero{ padding:clamp(2.5rem,6vw,4.5rem) 0 1.5rem; }
.page-hero h1{ font-size:clamp(2rem,4.4vw,3.1rem); }
.legal-content h2{ margin-top:1.8rem; font-size:1.3rem; }
.legal-content{ max-width:70ch; }

.map-404{ width:100%; max-width:420px; margin:0 auto 1.5rem; }
