:root {
  --yellow: #fbc614;
  --yellow-light: #fff3c2;
  --yellow-mid: #fde07a;
  --red: #f33831;
  --red-hover: #d72d27;
  --red-hl: #ffe0de;
  --text: #454452;
  --text-muted: #686777;
  --text-faint: #9d9baa;
  --white: #ffffff;
  --bg: #fffdf0;
  --surface: #ffffff;
  --divider: rgba(69,68,82,.11);
  --border: rgba(69,68,82,.15);
  --r-sm: .375rem; --r-md: .75rem; --r-lg: 1.25rem; --r-xl: 1.75rem; --r-full: 9999px;
  --sh-sm: 0 4px 14px rgba(69,68,82,.07);
  --sh-md: 0 12px 30px rgba(69,68,82,.1);
  --sh-lg: 0 20px 52px rgba(69,68,82,.13);
  --tx-xs: clamp(.75rem,.72rem + .2vw,.875rem);
  --tx-sm: clamp(.9rem,.85rem + .2vw,1rem);
  --tx-base: clamp(1rem,.96rem + .22vw,1.1rem);
  --tx-lg: clamp(1.15rem,1rem + .7vw,1.5rem);
  --tx-xl: clamp(1.65rem,1.3rem + 1.2vw,2.35rem);
  --tx-2xl: clamp(2.3rem,1.6rem + 3vw,4.3rem);
  --tx-3xl: clamp(2.8rem,1.8rem + 4vw,5.3rem);
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s8:2rem;--s10:2.5rem;--s12:3rem;--s16:4rem;--s20:5rem;
  --font: 'Nunito', sans-serif;
  --max: 1160px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:88px;}
body{font-family:var(--font);font-size:var(--tx-base);line-height:1.65;color:var(--text);background:var(--bg);}
img{max-width:100%;display:block;}
a{color:var(--red);text-decoration:none;transition:180ms ease;}
a:hover{color:var(--red-hover);}
button{font:inherit;cursor:pointer;border:none;background:none;}
.container{width:min(calc(100% - 2rem),var(--max));margin-inline:auto;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--red);color:#fff;padding:.75rem 1rem;z-index:999;}
.skip-link:focus{left:1rem;top:1rem;}

/* NAV */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,253,240,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--divider);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);min-height:76px;}
.brand img{height:62px;width:auto;display:block;}
.menu-toggle{display:none;border:0;background:var(--surface);border-radius:var(--r-full);padding:.8rem;box-shadow:var(--sh-sm);}
.menu-toggle span{display:block;width:22px;height:2px;background:var(--text);margin:4px 0;border-radius:2px;}
.site-nav ul{list-style:none;display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;}
.site-nav a{color:var(--text);font-weight:800;font-size:var(--tx-sm);padding:.7rem .95rem;border-radius:var(--r-full);transition:180ms ease;}
.site-nav a:hover,.site-nav a.active{background:var(--surface);color:var(--red);box-shadow:var(--sh-sm);}

/* FOOTER */
.site-footer{background:#3e3d49;color:#fff;padding:var(--s8) 0;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--s6);flex-wrap:wrap;}
.footer-logo img{height:52px;width:auto;border-radius:8px;}
.footer-contacts{display:flex;gap:var(--s4) var(--s8);flex-wrap:wrap;align-items:center;}
.footer-contacts a,.footer-contacts span{color:#fff;font-weight:700;}
.footer-thanks{color:#fbc614;font-weight:900;font-size:var(--tx-lg);}

/* SECTIONS */
.section{padding:clamp(3rem,7vw,6rem) 0;}
.section-alt{background:var(--surface);}
.section-head{margin-bottom:var(--s10);max-width:52rem;}
.kicker{display:inline-block;color:var(--red);font-weight:900;letter-spacing:.05em;text-transform:uppercase;font-size:var(--tx-xs);margin-bottom:var(--s3);}
.section h1,.section h2{font-size:var(--tx-2xl);line-height:1.02;margin-bottom:var(--s4);}
.section-head p{color:var(--text-muted);font-size:var(--tx-lg);}
.thanks{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--tx-lg);font-weight:900;color:var(--red);margin-top:var(--s6);}
.dispatch{display:flex;gap:.75rem 1.5rem;flex-wrap:wrap;margin-top:var(--s4);color:var(--text-muted);font-weight:800;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;padding:.9rem 1.4rem;border-radius:var(--r-full);font-weight:900;border:2px solid transparent;font-size:var(--tx-sm);}
.btn-primary{background:var(--red);color:#fff;box-shadow:var(--sh-sm);}
.btn-primary:hover{background:var(--red-hover);color:#fff;}
.btn-secondary{background:#fff;color:var(--text);border-color:rgba(69,68,82,.14);}
.btn-secondary:hover{border-color:var(--red);color:var(--red);}

/* CARDS */
.card{background:var(--surface);border-radius:var(--r-xl);padding:var(--s6);box-shadow:var(--sh-sm);border:1px solid var(--divider);}
.card h3{font-size:var(--tx-lg);margin-bottom:.8rem;}
.info-list{list-style:none;display:grid;gap:.9rem;}
.info-list li strong{color:var(--red);}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6);}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);}

/* HERO (index) */
.hero{position:relative;padding:clamp(3rem,5vw,6rem) 0 clamp(2rem,5vw,5rem);background:radial-gradient(circle at top left,rgba(255,255,255,.45),transparent 35%),linear-gradient(180deg,#fbc614 0%,#f9d74e 100%);overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.72);padding:.6rem 1rem;border-radius:var(--r-full);font-size:var(--tx-sm);font-weight:900;color:var(--text);box-shadow:var(--sh-sm);margin-bottom:var(--s5);}
.hero h1{font-size:var(--tx-3xl);line-height:.95;font-weight:900;margin-bottom:var(--s5);max-width:10ch;}
.hero h1 span{color:var(--red);}
.hero .lead{font-size:var(--tx-lg);font-weight:700;max-width:42rem;margin-bottom:var(--s6);}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:var(--s6);}
.hero-card{background:rgba(255,255,255,.92);border-radius:var(--r-xl);padding:var(--s8);box-shadow:var(--sh-lg);border:1px solid rgba(255,255,255,.7);}
.hero-card h2{font-size:var(--tx-xl);margin-bottom:var(--s5);}
.hero-info{display:grid;gap:var(--s4);margin-bottom:var(--s6);}
.hero-info-item{display:grid;grid-template-columns:56px 1fr;gap:var(--s4);align-items:start;}
.hi-icon{width:56px;height:56px;border-radius:50%;background:var(--red-hl);color:var(--red);display:grid;place-items:center;font-size:.95rem;font-weight:900;text-align:center;line-height:1.1;}
.contact-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s6);}
.contact-box{background:rgba(255,255,255,.85);padding:var(--s5);border-radius:var(--r-lg);box-shadow:var(--sh-sm);border:1px solid var(--divider);}
.contact-box strong{display:block;margin-bottom:.35rem;}

/* SLIDER */
.slider{position:relative;min-height:420px;border-radius:2rem;overflow:hidden;box-shadow:var(--sh-lg);background:#fff8d9;border:1px solid rgba(255,255,255,.65);}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;display:flex;align-items:end;padding:var(--s8);background-size:cover;background-position:center;}
.slide.active{opacity:1;}
.slide::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(69,68,82,.05) 0%,rgba(69,68,82,.55) 100%);}
.slide-caption{position:relative;z-index:1;color:#fff;max-width:28rem;background:rgba(69,68,82,.28);backdrop-filter:blur(8px);padding:1rem 1.2rem;border-radius:1.2rem;}
.slide-caption strong{display:block;font-size:1.2rem;margin-bottom:.35rem;}
.slider-dots{position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:2;display:flex;gap:.5rem;}
.slider-dots button{width:12px;height:12px;border-radius:50%;border:0;background:rgba(255,255,255,.5);}
.slider-dots button.active{background:#fff;}

/* ABOUT */
.about-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s10);align-items:start;}
.story-stack{display:grid;gap:var(--s5);}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin-top:var(--s4);}
.stat{background:#fff7d2;border-radius:var(--r-lg);padding:var(--s5);border:1px solid rgba(243,56,49,.12);}
.stat strong{display:block;font-size:var(--tx-xl);color:var(--red);line-height:1;margin-bottom:.4rem;}
.quote-box{background:linear-gradient(160deg,#f33831,#ff6f61);color:#fff;border-radius:2rem;padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--sh-lg);position:sticky;top:110px;}
.quote-box p{font-size:var(--tx-lg);font-weight:800;margin-bottom:var(--s4);}

/* ORDER */
.order-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s8);}
.order-steps{display:grid;gap:var(--s4);}
.step{display:grid;grid-template-columns:56px 1fr;gap:var(--s4);background:#fff;border-radius:var(--r-xl);padding:var(--s5);border:1px solid var(--divider);box-shadow:var(--sh-sm);}
.step-num{width:56px;height:56px;border-radius:50%;background:#fff1ef;color:var(--red);display:grid;place-items:center;font-size:1.25rem;font-weight:900;flex-shrink:0;}
.price-list{margin-top:var(--s4);display:grid;gap:.8rem;}
.price-item{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.95rem 1rem;border-radius:var(--r-full);background:#fff7d2;font-weight:800;}

/* RIDERS */
.riders-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5);}
.rider-card{background:var(--surface);border-radius:1.5rem;padding:var(--s5);text-align:center;border:1px solid var(--divider);box-shadow:var(--sh-sm);transition:transform .2s ease,box-shadow .2s ease;}
.rider-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);}
.rider-photo{width:116px;height:116px;border-radius:50%;margin:0 auto 1rem;background:linear-gradient(135deg,#fbc614,#fff1b4);color:var(--red);display:grid;place-items:center;font-weight:900;font-size:1.9rem;border:4px solid #fff;box-shadow:0 8px 18px rgba(69,68,82,.1);overflow:hidden;}
.rider-card h3{font-size:1.05rem;line-height:1.25;}
.rider-card p{color:var(--text-muted);font-size:var(--tx-sm);margin-top:.35rem;}

/* GALLERY */
.gallery-panel{background:var(--surface);border-radius:2rem;padding:var(--s6);border:1px solid var(--divider);box-shadow:var(--sh-sm);}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);}
.gallery-item{position:relative;border-radius:1.4rem;overflow:hidden;background:#ffeeb0;aspect-ratio:1/1;box-shadow:var(--sh-sm);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-empty{padding:var(--s8);text-align:center;color:var(--text-muted);background:#fff8dc;border-radius:1.5rem;border:1px dashed rgba(69,68,82,.18);}
.gallery-toolbar{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:var(--s5);}

@media(max-width:1040px){
  .hero-grid,.about-layout,.order-grid{grid-template-columns:1fr;}
  .quote-box{position:static;}
  .riders-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .contact-strip{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
}
@media(max-width:820px){
  .menu-toggle{display:inline-block;}
  .site-nav{position:absolute;top:calc(100% + .5rem);right:1rem;left:1rem;background:rgba(255,255,255,.98);border-radius:1.2rem;box-shadow:var(--sh-lg);border:1px solid var(--divider);padding:.8rem;display:none;}
  .site-nav.open{display:block;}
  .site-nav ul{flex-direction:column;align-items:stretch;}
  .site-nav a{display:block;}
  .slider{min-height:300px;}
  .riders-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid-3{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .riders-grid,.stats-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .hero h1{max-width:100%;}
  .step,.hero-info-item{grid-template-columns:48px 1fr;}
  .step-num,.hi-icon{width:48px;height:48px;}
}

/* ── Lightbox ── */
.lb-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(20,18,30,.93);
  backdrop-filter: blur(6px);
  align-items: center;
  justify-content: center;
}
.lb-overlay.open {
  display: flex !important;
}
.lb-box {
  position: relative;
  max-width: min(92vw,1100px);
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lb-img {
  max-width: 100%;
  max-height: 88vh;
  border-radius: 1rem;
  box-shadow: 0 24px 80px rgba(0,0,0,.6);
  object-fit: contain;
  display: block;
}
.lb-close {
  position: fixed;
  top: 1.25rem;
  right: 1.25rem;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  color: #fff;
  font-size: 1.4rem;
  display: grid;
  place-items: center;
  border: none;
  cursor: pointer;
  transition: background .18s;
  z-index: 10001;
}
.lb-close:hover { background: rgba(255,255,255,.35); }
.lb-arrow {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  color: #fff;
  font-size: 1.6rem;
  display: grid;
  place-items: center;
  border: none;
  cursor: pointer;
  transition: background .18s;
  user-select: none;
  z-index: 10001;
}
.lb-arrow:hover { background: rgba(255,255,255,.35); }
.lb-prev { left: 1rem; }
.lb-next { right: 1rem; }
.lb-caption {
  position: fixed;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.85);
  font-size: .95rem;
  background: rgba(20,18,30,.65);
  padding: .5rem 1.1rem;
  border-radius: 2rem;
  white-space: nowrap;
  max-width: 80vw;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 10001;
}
.lb-counter {
  position: fixed;
  top: 1.4rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.75);
  font-size: .9rem;
  font-weight: 700;
  z-index: 10001;
}

.deti-photos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s4);
  margin-top: var(--s8);
}
.deti-photo {
  aspect-ratio: 3 / 4;
  border-radius: var(--r-xl);
  overflow: hidden;
  background: #fff3c2;
  box-shadow: var(--sh-md);
  border: 3px solid #fff;
}
.deti-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.deti-photo:hover img { transform: scale(1.04); }
/* Placeholder ak fotka chýba */
.deti-photo-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  color: var(--text-muted);
  font-weight: 800;
  font-size: var(--tx-sm);
  background: linear-gradient(160deg, #fff7d2, #ffe8b0);
}
.deti-photo-placeholder svg {
  width: 48px; height: 48px; opacity: .35;
}
@media (max-width: 820px) {
  .deti-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .deti-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
}

/* ── Partneri ── */
.partners-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s6) var(--s8);
  align-items: center;
  justify-content: center;
  margin-top: var(--s10);
}
.partner-item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s5) var(--s8);
  background: var(--surface);
  border-radius: var(--r-xl);
  border: 1px solid var(--border);
  box-shadow: var(--sh-sm);
  min-width: 160px;
  min-height: 90px;
  transition: box-shadow .2s ease, transform .2s ease;
}
.partner-item:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-3px);
}
.partner-item img {
  max-width: 160px;
  max-height: 64px;
  width: auto;
  height: auto;
  object-fit: contain;
  /*filter: grayscale(1) opacity(.65);*/
  transition: filter .25s ease;
}
.partner-item:hover img {
  filter: grayscale(0) opacity(1);
}
/* Ak partner nemá logo – len text */
.partner-name {
  font-weight: 900;
  font-size: var(--tx-lg);
  color: var(--text-muted);
  transition: color .25s ease;
}
.partner-item:hover .partner-name {
  color: var(--text);
}
