:root{
  --card: rgba(18, 18, 18, .58);
  --text: #f3f4f6;
  --muted: rgba(243,244,246,.78);
  --line: rgba(255,255,255,.14);
  --accent: #6ee7b7;
  --gold: #fbbf24;
  --pink: #f472b6;
  --shadow: 0 18px 60px rgba(0,0,0,.38);
  --radius: 22px;
  --maxw: 1100px;

  /* DEFAULT SCENA (LES) */
  --sky: url("https://www.vecnyklid.cz/user/documents/upload/AHRBITOV/ASCENE4/forest_sky.jpg");
  --clouds: url("https://www.vecnyklid.cz/user/documents/upload/AHRBITOV/ASCENE4/forest_mist.png");
  --trees: url("https://www.vecnyklid.cz/user/documents/upload/AHRBITOV/ASCENE4/forest_trees.png");
  --grass: url("https://www.vecnyklid.cz/user/documents/upload/AHRBITOV/ASCENE4/forest_ground.png");
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:#0b0b10;
  overflow-x:hidden;
}

.bg{position:fixed; inset:0; z-index:-2;}
.bg__layer{position:absolute; inset:-2%; background-position:center; background-size:cover; will-change: transform;}
.bg__sky{background-image:var(--sky); filter:saturate(1.05) contrast(1.05);}
.bg__clouds{
  background-image:var(--clouds);
  background-repeat:repeat-x;
  background-position: 0% 20%;
  background-size: auto 55%;
  opacity:.62;
  animation: drift 42s linear infinite;
}
@keyframes drift{ from{ background-position:0% 20%; } to{ background-position:220% 20%; } }
.bg__trees{background-image:var(--trees); background-repeat:repeat-x; background-position: 40% 85%; background-size:auto 55%; opacity:.90;}
.bg__grass{background-image:var(--grass); background-repeat:repeat-x; background-position: 55% 105%; background-size:auto 55%; opacity:.95; filter:contrast(1.05);}
.bg__vignette{
  position:absolute; inset:0;
  background: radial-gradient(1200px 700px at 50% 25%, rgba(0,0,0,.06), rgba(0,0,0,.70) 55%, rgba(0,0,0,.82) 100%);
}

.wrap{max-width:var(--maxw); margin:0 auto; padding:34px 16px 70px;}
.card{
  background: var(--card);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
}

.hero{display:grid; grid-template-columns:1.15fr .85fr; gap:18px; align-items:start;}
.kicker{
  display:inline-flex; gap:8px; align-items:center;
  padding: 7px 12px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  font-size: 13px;
}
.kicker .dot{
  width:8px; height:8px; border-radius:999px;
  background: color-mix(in oklab, var(--accent) 70%, white 10%);
  box-shadow: 0 0 0 5px rgba(110,231,183,.12);
}

.title{margin: 14px 0 8px; font-size: clamp(40px, 5vw, 58px); line-height: 1.02;}
.subtitle{margin:0 0 16px; color: var(--muted); font-size: 17px;}
.lead{margin:0 0 18px; font-size: 18px; line-height: 1.7; color: rgba(243,244,246,.92);}

.actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top: 18px;}
.btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: var(--text);
  padding: 11px 14px;
  border-radius: 14px;
  cursor:pointer;
  font-weight:800;
}
.btn:hover{border-color: rgba(255,255,255,.30)}
.btn:active{transform: translateY(1px)}
.btn--gold{border-color: rgba(251,191,36,.75); box-shadow: 0 0 0 6px rgba(251,191,36,.10);}
.btn--pink{border-color: rgba(244,114,182,.75); box-shadow: 0 0 0 6px rgba(244,114,182,.10);}
.btn--green{border-color: rgba(110,231,183,.75); box-shadow: 0 0 0 6px rgba(110,231,183,.10);}
.btn--quiet{border-color: rgba(191,219,254,.6); box-shadow: 0 0 0 6px rgba(191,219,254,.08);}

.counters{display:flex; flex-wrap:wrap; gap:10px; color: var(--muted); font-size: 14px;}
.counterBox{display:inline-flex; gap:8px; align-items:center; padding: 10px 12px; border-radius: 14px; border:1px solid rgba(255,255,255,.14); background: rgba(0,0,0,.16);}
.counterBox strong{color:var(--text)}

.visitNote{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
  color: rgba(243,244,246,.88);
  line-height: 1.55;
  font-size: 14px;
}
.visitNote strong{color:var(--text)}

.hero__imgWrap{position:relative; border-radius: 20px; overflow:hidden; border:1px solid rgba(255,255,255,.14);}
.hero__img{width:100%; aspect-ratio: 4/5; object-fit: cover; display:block;}
.hero__imgGlow{position:absolute; inset:0; background: radial-gradient(600px 420px at 50% 20%, rgba(110,231,183,.16), transparent 55%); pointer-events:none;}

/* řádek nabídek uvnitř hero */
.offerings{position:absolute; left:10px; right:10px; bottom:10px; pointer-events:none;}
.offerRow{display:flex; justify-content:space-between; align-items:flex-end; gap:12px;}
.offerGroup{display:flex; gap:10px; align-items:flex-end; opacity:0; transform: translateY(10px); transition: opacity .28s ease, transform .28s ease;}
.offerGroup.show{opacity:1; transform: translateY(0);}

/* svíčky (3 ks vpravo) */
.candleCard{width:58px; height:58px; border-radius:18px; border:1px solid rgba(255,255,255,.18); background: rgba(0,0,0,.28);
  box-shadow: 0 18px 34px rgba(0,0,0,.40); display:grid; place-items:center; position:relative; overflow:hidden;
}
.candleGlow{position:absolute; inset:-18px; background: radial-gradient(closest-side, rgba(251,191,36,.22), transparent 70%); filter: blur(2px);
  opacity:0; animation: glowPulse 1.9s ease-in-out infinite;
}
.offerGroup.show .candleGlow{opacity:1;}
@keyframes glowPulse{ 0%,100%{transform:scale(.95); opacity:.55} 50%{transform:scale(1.05); opacity:.85} }

.candleSvg{width:38px; height:38px;}
.flame{transform-origin: 50% 85%; animation: flameFlicker 0.22s infinite alternate ease-in-out; filter: drop-shadow(0 0 6px rgba(255,200,80,.65));}
.flame2{animation-duration:0.28s; opacity:.85}
@keyframes flameFlicker{ from{ transform: scaleX(.96) rotate(-2deg); opacity:.88; } to{ transform: scaleX(1.06) rotate(2deg); opacity:1; } }
.offerGroup.show .candleSvg{animation: ignite .55s ease-out both;}
@keyframes ignite{ 0%{transform: translateY(6px) scale(.92); opacity:.0} 60%{opacity:1} 100%{transform: translateY(0) scale(1); opacity:1} }

/* květiny vlevo (3 ks) */
.flowerCard{width:58px; height:58px; border-radius:18px; border:1px solid rgba(255,255,255,.18); background: rgba(0,0,0,.24);
  box-shadow: 0 18px 34px rgba(0,0,0,.38); display:grid; place-items:center; position:relative;
}
.flowerEmoji{font-size:28px; filter: drop-shadow(0 12px 18px rgba(0,0,0,.45));}
.offerGroup.show .flowerCard{animation: bloom .55s ease-out both, sway 2.6s ease-in-out infinite;}
.offerGroup.show .flowerCard:nth-child(2){animation-delay:.06s}
.offerGroup.show .flowerCard:nth-child(3){animation-delay:.12s}
@keyframes bloom{ 0%{transform: translateY(8px) scale(.9); opacity:0} 65%{opacity:1} 100%{transform: translateY(0) scale(1); opacity:1} }
@keyframes sway{ 0%,100%{transform: rotate(-.8deg)} 50%{transform: rotate(.8deg)} }

/* okvětní lístky */
.petal{position:fixed; left:0; top:0; width:14px; height:10px; border-radius: 12px 12px 12px 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), rgba(244,114,182,.95));
  transform: translate(-50%,-50%) rotate(20deg); opacity:0; pointer-events:none; z-index: 95;
  animation: petalFloat 1.9s ease-out forwards; filter: drop-shadow(0 10px 16px rgba(0,0,0,.25));
}
@keyframes petalFloat{ 0%{opacity:0; transform: translate(-50%,-50%) rotate(10deg) scale(.85);} 15%{opacity:1;} 100%{opacity:0; transform: translate(calc(-50% + 20px), calc(-50% - 160px)) rotate(160deg) scale(1.05);} }

/* Vybraná „Dnešní fotka“ */
.photo--today img{outline: 2px solid rgba(251,191,36,.85); box-shadow: 0 18px 44px rgba(251,191,36,.14);}
.todayBadge{
  position:absolute; left:10px; top:10px;
  padding:6px 10px;
  font-size:12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(0,0,0,.40);
  color: rgba(255,255,255,.92);
}

/* Rychlá volba významu (chips) */
.chips{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px;}
.chip{
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
  border-radius: 999px;
  padding: 9px 12px;
  cursor:pointer;
  font-weight:800;
  font-size: 13px;
}
.chip[aria-pressed="true"]{border-color: rgba(251,191,36,.75); box-shadow: 0 0 0 6px rgba(251,191,36,.08);}

/* “Zastavit se” overlay */
.quietOverlay{
  position:fixed; inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index: 120;
  background: rgba(0,0,0,.66);
  backdrop-filter: blur(10px);
}
.quietOverlay.show{display:flex}
.quietCard{
  max-width: 720px;
  width: 100%;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(8,8,12,.62);
  box-shadow: var(--shadow);
  padding: 22px;
  text-align:center;
}
.quietCard h3{margin:0 0 8px; font-size:22px;}
.quietCard p{margin:0; color: rgba(243,244,246,.88); line-height:1.7;}
.quietTimer{margin-top:12px; color: rgba(243,244,246,.78); font-size: 13px;}

.grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px;}
.sectionTitle{margin:0 0 10px; font-size:18px; letter-spacing:.2px}
.prose{color: rgba(243,244,246,.92); line-height:1.75; font-size:16px;}
.prose p{margin:0 0 10px}
.info{display:flex; flex-direction:column; gap:10px}
.infoRow{display:flex; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.10);}
.infoRow span{color:var(--muted)}
.infoRow strong{font-weight:800}

.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:12px;}
.photo{padding:0; border:0; background:none; cursor:pointer; position:relative}
.photo img{width:100%; height:200px; object-fit:cover; border-radius:16px; border:1px solid rgba(255,255,255,.14); transition: transform .18s ease;}
.photo:hover img{transform: scale(1.02)}

.toast{position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%);
  padding: 10px 14px; border-radius: 14px; border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.55); color: var(--text); box-shadow: var(--shadow);
  opacity:0; pointer-events:none; transition: opacity .18s ease, transform .18s ease; z-index: 140;
}
.toast.show{opacity:1; transform: translateX(-50%) translateY(-4px);}

.particle{position: fixed; left: 0; top: 0; transform: translate(-50%,-50%);
  font-size: 20px; pointer-events:none; z-index: 130; filter: drop-shadow(0 8px 18px rgba(0,0,0,.35));
  animation: floatUp 1.35s ease-out forwards;
}
@keyframes floatUp{ 0%{ opacity:0; transform: translate(-50%,-50%) scale(.9); } 10%{ opacity:1; } 100%{ opacity:0; transform: translate(-50%,-110px) scale(1.1); } }

.thought{position: fixed; left:0; top:0; width:10px; height:10px; border-radius:999px;
  background: radial-gradient(circle, rgba(255,255,255,.95), rgba(110,231,183,.85));
  transform: translate(-50%,-50%);
  pointer-events:none;
  z-index: 135;
  box-shadow: 0 0 18px rgba(110,231,183,.25);
  animation: thoughtFly 1.9s ease-out forwards;
}
@keyframes thoughtFly{
  0%{opacity:0; transform: translate(-50%,-50%) scale(.7);}
  10%{opacity:1;}
  100%{opacity:0; transform: translate(calc(-50% + 20px), calc(-50% - 260px)) scale(1.1);}
}

/* Lightbox */
.lightbox{position:fixed; inset:0; background: rgba(0,0,0,.72); display:none; align-items:center; justify-content:center; padding:18px; z-index: 100;}
.lightbox[aria-hidden="false"]{display:flex}
.lightboxImg{max-width:min(980px, 96vw); max-height:88vh; border-radius:18px; border:1px solid rgba(255,255,255,.18);}
.lbClose{position:absolute; top:14px; right:14px; width:44px; height:44px; border-radius:14px;
  border:1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: var(--text); cursor:pointer;
}

.footer{margin-top:18px; color:var(--muted); font-size:12px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;}
@media(max-width:900px){ .hero{grid-template-columns:1fr} .gallery{grid-template-columns:repeat(2,1fr)} }


/* --- Interaktivní rozvržení (varianta B) --- */
.actionsBlock{margin-top:16px}
.divider{
  height:1px; border:0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  margin: 14px 0;
}
.actionsRow{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.subLabel{color: rgba(243,244,246,.78); font-size: 13px; margin-top:10px}
/* kost (pamlsek) přelet přes hero */
.treatFly{
  position: fixed;
  left: 0; top: 0;
  transform: translate(-50%,-50%);
  font-size: 22px;
  pointer-events:none;
  z-index: 135;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.35));
  animation: treatArc 1.6s ease-out forwards;
}
@keyframes treatArc{
  0%{ opacity:0; transform: translate(var(--x1), var(--y1)) rotate(-15deg) scale(.9); }
  10%{ opacity:1; }
  55%{ transform: translate(calc((var(--x1) + var(--x2))/2), calc(var(--y1) - 80px)) rotate(8deg) scale(1.05); }
  100%{ opacity:0; transform: translate(var(--x2), var(--y2)) rotate(25deg) scale(1.0); }
}

/* --- Galerie: 6 fotek + rolování do stran --- */
.galleryScroll{
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding-bottom: 6px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.galleryScroll .photo{
  flex: 0 0 auto;
  scroll-snap-align: start;
  position:relative;
}
.galleryScroll .photo img{
  width: 240px;
  height: 190px;
}
/* jemné scrollbary */
.galleryScroll::-webkit-scrollbar{ height: 10px; }
.galleryScroll::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.16); border-radius: 999px; }
.galleryScroll::-webkit-scrollbar-track{ background: rgba(0,0,0,.18); border-radius: 999px; }
@media(max-width:900px){
  .galleryScroll .photo img{ width: 210px; height: 170px; }
}

/* --- Přezdívky jako hravé štítky --- */
.nicknames{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.nickname{
  padding:8px 14px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  color: rgba(255,255,255,.92);
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
  transition: transform .15s ease, box-shadow .15s ease;
}
.nickname:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0,0,0,.35);
}

/* --- Mini chat pod hero (offline) --- */
.chatBanner{
  margin-top: 14px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.20);
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
  overflow:hidden;
}
.chatBanner__head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding: 12px 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.chatBanner__title{font-weight: 900; letter-spacing:.2px}
.chatBanner__hint{color: rgba(243,244,246,.70); font-size: 12px; font-weight:700}

.chatBanner__log{
  padding: 12px 14px 6px;
  max-height: 160px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.bubble{
  max-width: 92%;
  padding: 10px 12px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(243,244,246,.92);
  line-height: 1.45;
  font-size: 14px;
}
.bubble.me{
  align-self:flex-end;
  background: rgba(110,231,183,.10);
  border-color: rgba(110,231,183,.22);
}
.bubble.dog{
  align-self:flex-start;
  background: rgba(255,255,255,.06);
}
.typing{
  opacity:.8;
  font-style: italic;
}
.chatBanner__quick{
  padding: 0 14px 10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.qbtn{
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
  border-radius: 999px;
  padding: 7px 10px;
  font-weight: 850;
  font-size: 12px;
  cursor:pointer;
}
.qbtn:hover{border-color: rgba(255,255,255,.26)}
.chatBanner__row{
  display:flex;
  gap:10px;
  padding: 0 14px 12px;
  align-items:center;
}
.chatInput{
  flex:1;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
  color: rgba(255,255,255,.92);
  padding: 0 12px;
  outline:none;
}
.chatInput:focus{border-color: rgba(110,231,183,.45); box-shadow: 0 0 0 6px rgba(110,231,183,.08);}
.chatSend{height:42px; padding: 10px 14px;}
.chatBanner__small{
  padding: 0 14px 12px;
  color: rgba(243,244,246,.65);
  font-size: 12px;
}

/* Chat vedle fotogalerie: bez velké horní mezery */
.chatBanner{ margin-top: 14px; }
.chatCard .chatBanner{ margin-top: 0; }

/* Hero: chat je mimo hero, takže případné prázdné odsazení zůstane čisté */

/* === Fotogalerie: 1 fotka + karusel === */
.galleryCarouselWrap{
  display:flex;
  align-items:center;
  gap:12px;
}
.galleryCarousel{
  flex:1;
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;
}
.galleryCarousel::-webkit-scrollbar{display:none}
.galleryCarousel .photo{
  flex:0 0 100%;
  scroll-snap-align:start;
}
.galleryCarousel img{
  width:100%;
  height:190px;
  object-fit:cover;
  border-radius:16px;
}
.galNav{
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(0,0,0,.3);
  color:#fff;
  font-size:26px;
  cursor:pointer;
}
@media(max-width:900px){
  .galleryCarousel img{height:170px}
}


/* === Mobil na šířku: nech HERO jako 2 sloupce (akce vlevo, menší fotka vpravo) === */
@media (max-width: 900px) and (orientation: landscape){
  .hero{ grid-template-columns: 1.15fr .85fr; }
  .hero__img{ aspect-ratio: 4/3; height: auto; }
  .hero__imgWrap{ max-height: 360px; }
}

/* --- VIRTUÁLNÍ NEBE MAZLÍČKŮ – velký banner --- */
.heavenBanner{
  margin-top: 28px;
  padding: 0;
  overflow: hidden;
}

.heavenLink{
  display:block;
  text-decoration:none;
  color: inherit;
}

.heavenInner{
  display:flex;
  align-items:center;
  gap:22px;
  padding: 26px 28px;
  background: linear-gradient(
    120deg,
    rgba(110,231,183,.18),
    rgba(191,219,254,.18),
    rgba(251,191,36,.12)
  );
  border-radius: 22px;
  border:1px solid rgba(255,255,255,.18);
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
  transition: transform .25s ease, box-shadow .25s ease;
}

.heavenInner:hover{
  transform: translateY(-2px);
  box-shadow: 0 30px 70px rgba(0,0,0,.45);
}

.heavenIcon{
  font-size:42px;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,.35));
}

.heavenText h3{
  margin:0 0 6px;
  font-size:22px;
  font-weight:900;
  letter-spacing:.3px;
}

.heavenText p{
  margin:0;
  font-size:15px;
  color: rgba(243,244,246,.88);
}

.heavenArrow{
  margin-left:auto;
  font-size:34px;
  font-weight:900;
  opacity:.85;
}

@media(max-width:700px){
  .heavenInner{
    flex-direction:column;
    text-align:center;
  }
  .heavenArrow{
    margin-left:0;
  }
}


/* === PATCH: banner „Virtuální nebe mazlíčků“ – odolné vůči hostovaným CSS (Shoptet) === */
.heavenBanner{ padding:0 !important; }
.heavenBanner .heavenLink{ display:block !important; text-decoration:none !important; color:inherit !important; }
.heavenBanner, .heavenBanner *{ box-sizing:border-box; }
.heavenBanner .heavenInner{
  display:flex !important;
  align-items:center !important;
  gap:22px !important;
  padding:26px 28px !important;
  width:100% !important;
}
.heavenBanner .heavenText{ flex: 1 1 260px !important; min-width: 220px !important; }
.heavenBanner .heavenText h3{ margin:0 0 6px !important; line-height:1.15 !important; }
.heavenBanner .heavenText p{ margin:0 !important; line-height:1.45 !important; }
.heavenBanner .heavenArrow{ margin-left:auto !important; line-height:1 !important; }


/* === Chat: rychlé volby až POD odesláním (přehlednější) === */
.chatBanner__quick{
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.10);
}
