/* Družabne Lučka - design system. Moroccan riad: zellige stars, horseshoe arches, saffron + indigo on black/white/red. */
:root{
  --ink:#14110f;
  --paper:#faf6ef;
  --signal:#e8482c;
  --saffron:#f2b705;
  --indigo:#2b3a67;
  --cream:#f1e6d2;
  --line:#2a2622;
  --radius-arch: 999px 999px 0 0;
  --font-display: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-body: -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "SFMono-Regular", "Consolas", monospace;
  --maxw: 1180px;
  --sp-1: .5rem; --sp-2: 1rem; --sp-3: 1.6rem; --sp-4: 2.5rem; --sp-5: 4rem; --sp-6: 6.5rem;
}
html,body{overflow-x:clip}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); line-height:1.6; font-size:16px;
}
h1,h2,h3,h4{font-family:var(--font-display); line-height:1.1; margin:0 0 .5em; color:var(--ink)}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%; display:block}
.icon{width:1.3em; height:1.3em; stroke:currentColor; fill:none}
.icon--sm{width:1em;height:1em}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0)}
.skip-link{position:absolute; left:-999px; top:0; background:var(--signal); color:#fff; padding:.5em 1em; z-index:200}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--signal); outline-offset:2px}
.container{max-width:var(--maxw); margin:0 auto; padding:0 var(--sp-3)}

/* ===== Reveal / motion ===== */
.reveal{opacity:1; transform:none}
.reveal.js-armed{opacity:0; transform:translateY(24px); clip-path:inset(0 0 15% 0); transition:opacity .7s ease, transform .7s ease, clip-path .7s ease}
.reveal.js-armed.in-view{opacity:1; transform:none; clip-path:inset(0 0 0 0)}
.reveal.delay-1{transition-delay:.08s} .reveal.delay-2{transition-delay:.16s} .reveal.delay-3{transition-delay:.24s} .reveal.delay-4{transition-delay:.32s}
@media (prefers-reduced-motion: reduce){ .reveal.js-armed{transition:none; opacity:1; transform:none; clip-path:none} }

/* ===== Header ===== */
.site-header{position:sticky; top:0; z-index:100; background:rgba(250,246,239,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
.site-header__inner{max-width:var(--maxw); margin:0 auto; padding:.8rem 1.2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem}
.logo{display:flex; align-items:center; gap:.6rem; text-decoration:none}
.logo__mark{width:40px; height:40px; flex:none}
.logo__word{font-family:var(--font-display); font-size:1.05rem; line-height:1.2}
.logo__word strong{color:var(--signal)}
.menu-toggle{display:none; background:none; border:1px solid var(--line); border-radius:8px; padding:.4rem; min-width:44px; min-height:44px}
.main-nav{display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap}
.main-nav a{text-decoration:none; font-size:.95rem; position:relative; padding:.3rem 0}
.main-nav a:not(.nav-cart)::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--signal); transition:width .25s ease}
.main-nav a:not(.nav-cart):hover::after, .main-nav a.is-active::after{width:100%}
.nav-cart{display:flex; align-items:center; gap:.4rem; background:var(--ink); color:#fff; padding:.5rem .9rem; border-radius:999px}
.cart-count{background:var(--signal); color:#fff; border-radius:50%; min-width:1.4em; height:1.4em; display:inline-flex; align-items:center; justify-content:center; font-size:.75rem}
.cart-count.bump{animation:bump .4s ease}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.4)}100%{transform:scale(1)}}
@media (max-width:860px){
  .menu-toggle{display:flex; align-items:center; justify-content:center}
  .main-nav{position:fixed; inset:0 0 0 auto; width:min(320px,82vw); background:var(--ink); color:#fff; flex-direction:column; align-items:flex-start; padding:5.5rem 1.6rem 2rem; gap:1.4rem;
    transform:translateX(100%); visibility:hidden; transition:transform .3s ease; z-index:99}
  .main-nav.is-open{transform:translateX(0); visibility:visible}
  .main-nav a{color:#fff}
  .nav-cart{color:#fff}
}

/* ===== Buttons ===== */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em; padding:.75rem 1.5rem; border-radius:999px; border:1.5px solid var(--ink);
  font-weight:600; text-decoration:none; cursor:pointer; position:relative; overflow:hidden; min-height:44px; background:transparent; color:var(--ink); isolation:isolate; font-size:.95rem}
.btn::before{content:""; position:absolute; inset:0; left:-100%; width:100%; background:var(--signal); z-index:-1; transition:left .3s ease}
.btn:hover::before{left:0}
.btn--primary{background:var(--ink); color:#fff; border-color:var(--ink)}
.btn--primary::before{background:var(--signal)}
.btn--primary:hover{color:#fff}
.btn--ghost{border-color:currentColor; background:transparent}
.btn--ghost::before{background:rgba(255,255,255,.15)}
.btn--sm{padding:.5rem 1rem; font-size:.85rem}
.btn--full{width:100%}
.btn[disabled]{opacity:.6; cursor:not-allowed}

/* ===== Hero (home) ===== */
.hero{position:relative; padding:var(--sp-6) 0 var(--sp-5); overflow:hidden; background:var(--ink); color:var(--paper)}
.hero-shapes{position:absolute; inset:0; pointer-events:none}
.hero-shapes__item{position:absolute; transition:transform .2s ease-out; opacity:.9}
.hero__inner{position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:0 1.2rem; text-align:center}
.hero__eyebrow{font-family:var(--font-mono); letter-spacing:.2em; text-transform:uppercase; color:var(--saffron); font-size:.8rem}
.hero__title{font-size:clamp(2.6rem, 7vw, 5.4rem); margin:.3em 0; color:#fff}
.hero__title em{font-style:normal; color:var(--signal)}
.hero__lead{max-width:40ch; margin:0 auto 1.6em; color:var(--cream); font-size:1.1rem}
.hero__actions{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap}
.hero__orbits{position:relative; height:min(60vw,420px); max-width:620px; margin:3rem auto 0}
.hero__orbit-img{position:absolute; border-radius:50%; object-fit:cover; border:4px solid var(--saffron); box-shadow:0 10px 30px rgba(0,0,0,.4)}
.hero__center{position:absolute; top:50%; left:50%; width:30%; aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%; background:var(--indigo); display:flex; align-items:center; justify-content:center}
.hero__center svg{width:55%; height:55%}

/* ===== Section basics ===== */
.section{padding:var(--sp-5) 0}
.section--alt{background:var(--cream)}
.section__head{text-align:center; max-width:640px; margin:0 auto var(--sp-4)}
.section__head h2{font-size:clamp(1.8rem,4vw,2.6rem)}
.divider-zellige{width:100%; height:32px; display:block}

/* ===== Page hero (inner pages) ===== */
.page-hero{background:var(--ink); color:var(--paper); padding:var(--sp-5) 0 var(--sp-4); position:relative; overflow:hidden}
.page-hero h1{color:#fff; font-size:clamp(2.2rem,5vw,3.4rem)}
.page-hero p{color:var(--cream); max-width:55ch}
.page-hero__inner{max-width:var(--maxw); margin:0 auto; padding:0 1.2rem}

/* ===== Breadcrumbs ===== */
.breadcrumbs{font-size:.85rem; color:#7a7468; max-width:var(--maxw); margin:1.2rem auto 0; padding:0 1.2rem}
.breadcrumbs a{text-decoration:none; border-bottom:1px solid transparent}
.breadcrumbs a:hover{border-color:currentColor}

/* ===== Prose (legal) ===== */
.prose{max-width:68ch; margin:0 auto; padding:var(--sp-4) 1.2rem}
.prose h2{margin-top:1.6em; font-size:1.5rem}
.prose h3{margin-top:1.2em; font-size:1.2rem}
.prose ul,.prose ol{padding-left:1.4em}
.prose li{margin-bottom:.4em}

/* ===== Legal TOC ===== */
.legal-toc{max-width:68ch; margin:1.5rem auto 0; padding:1rem 1.4rem; background:var(--cream); border-radius:14px}
.legal-toc h2{font-size:1rem; text-transform:uppercase; letter-spacing:.06em}
.legal-toc ol{margin:0; padding-left:1.2em; columns:2; gap:1rem}

/* ===== Notice ===== */
.notice{border-left:3px solid var(--signal); background:var(--cream); padding:1rem 1.2rem; border-radius:0 10px 10px 0; margin:1rem 0}
.notice--info{border-color:var(--indigo)}

/* ===== Grid / cards ===== */
.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:860px){.grid--3,.grid--2{grid-template-columns:1fr}}

.card{background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease}
.card:hover{transform:translateY(-6px); box-shadow:0 18px 34px rgba(20,17,15,.15)}

/* ===== Product strip / cards ===== */
.product-strip{display:grid; grid-auto-flow:column; grid-auto-columns:min(280px,78vw); gap:1.4rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:.5rem .2rem 1.2rem}
.product-strip .product-card{scroll-snap-align:start}
@media (min-width:900px){.product-strip{grid-auto-flow:row; grid-template-columns:repeat(4,1fr); overflow:visible}}
.product-card{background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; text-decoration:none; color:var(--ink); display:block; transition:transform .25s ease, box-shadow .25s ease}
.product-card:hover{transform:translateY(-6px); box-shadow:0 18px 34px rgba(20,17,15,.15)}
.product-card__img{aspect-ratio:4/3; overflow:hidden}
.product-card__img img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.product-card:hover .product-card__img img{transform:scale(1.08)}
.product-card__body{padding:1rem 1.2rem}
.product-card__badge{display:inline-block; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; background:var(--saffron); color:var(--ink); padding:.2em .6em; border-radius:999px; margin-bottom:.5em}
.product-card__price{font-weight:700; color:var(--signal)}
.product-card__meta{font-size:.82rem; color:#7a7468}

/* ===== Product detail ===== */
.product-detail{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; max-width:var(--maxw); margin:0 auto; padding:var(--sp-4) 1.2rem}
@media (max-width:860px){.product-detail{grid-template-columns:1fr}}
.product-detail__img{border-radius:20px; overflow:hidden; aspect-ratio:1}
.product-detail__img img{width:100%; height:100%; object-fit:cover}
.product-detail__price{font-size:1.8rem; color:var(--signal); font-family:var(--font-display)}
.product-detail__specs{display:flex; gap:1.4rem; flex-wrap:wrap; margin:1rem 0; list-style:none; padding:0}
.product-detail__specs li{font-size:.85rem; color:#555; display:flex; align-items:center; gap:.4em}

/* ===== Forms ===== */
.form-grid{display:grid; gap:1.1rem; grid-template-columns:repeat(2,1fr); max-width:700px}
.form-grid .field--full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.field{display:flex; flex-direction:column; gap:.4rem}
.field label{font-size:.85rem; font-weight:600}
.field input, .field select, .field textarea{
  padding:.7rem .9rem; border:1.5px solid var(--line); border-radius:10px; font:inherit; background:#fff; accent-color:var(--signal); min-height:44px;
}
.field textarea{min-height:120px; resize:vertical}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--signal)}
.field-error{color:var(--signal); font-size:.8rem; min-height:1.1em}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; opacity:0}
.form-msg{min-height:1.3em; font-size:.9rem}
.form-msg--ok{color:#2a7d46}
.form-msg--error{color:var(--signal)}
.newsletter-form{display:flex; gap:.5rem; flex-wrap:wrap}
.newsletter-form input[type=email]{flex:1; min-width:160px; padding:.6rem .9rem; border-radius:999px; border:1.5px solid rgba(250,246,239,.4); background:transparent; color:#fff}
.newsletter-form input[type=email]::placeholder{color:rgba(250,246,239,.6)}

/* ===== Cart / checkout ===== */
.cart-table{width:100%; border-collapse:collapse; margin-bottom:1.6rem}
.cart-table th, .cart-table td{padding:.8rem .6rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle}
.cart-table img{width:56px; height:56px; object-fit:cover; border-radius:10px}
.cart-table .qty-input{width:60px; padding:.4rem; border:1.5px solid var(--line); border-radius:8px}
.cart-summary{max-width:360px; margin-left:auto; background:var(--cream); border-radius:16px; padding:1.4rem}
.cart-summary__row{display:flex; justify-content:space-between; margin-bottom:.5em}
.cart-summary__total{font-weight:700; font-size:1.2rem; border-top:1px solid var(--line); padding-top:.6em}
.cart-empty{text-align:center; padding:3rem 1rem}

/* ===== Contact layout ===== */
.contact-layout{display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; max-width:var(--maxw); margin:0 auto; padding:var(--sp-4) 1.2rem}
@media (max-width:860px){.contact-layout{grid-template-columns:1fr}}
.contact-info{display:flex; flex-direction:column; gap:1.2rem}
.contact-info__item{display:flex; align-items:flex-start; gap:.8rem}
.contact-info__item .icon{color:var(--signal); flex:none; margin-top:.2em}

/* ===== FAQ ===== */
.faq{max-width:760px; margin:0 auto; padding:var(--sp-4) 1.2rem}
.faq-item{border-bottom:1px solid var(--line); padding:.3rem 0}
.faq-item summary{cursor:pointer; font-weight:600; padding:.9rem .2rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; font-size:1.4rem; color:var(--signal); transition:transform .2s ease}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{padding:0 .2rem 1rem; color:#444}

/* ===== Night finder (signature feature) ===== */
.night-finder{background:#fff; border:1px solid var(--line); border-radius:24px; padding:2rem; max-width:900px; margin:0 auto; position:relative}
.night-finder__form{display:flex; gap:1rem; flex-wrap:wrap; align-items:flex-end; margin-bottom:1.4rem}
.night-finder__form .field{flex:1; min-width:160px}
.night-finder__results{display:grid; gap:.8rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.night-finder__card{display:flex; gap:.8rem; align-items:center; text-decoration:none; color:var(--ink); background:var(--cream); border-radius:14px; padding:.7rem; transition:transform .2s ease}
.night-finder__card:hover{transform:translateY(-3px)}
.night-finder__card img{width:64px; height:64px; object-fit:cover; border-radius:10px}
.night-finder__empty{color:#666}

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

/* ===== Cookie banner ===== */
.cookie-banner{position:fixed; left:1rem; right:1rem; bottom:-200px; max-width:560px; margin:0 auto; background:var(--ink); color:#fff; border-radius:16px; padding:1.2rem 1.4rem; box-shadow:0 10px 40px rgba(0,0,0,.3); transition:bottom .4s ease; z-index:150}
.cookie-banner.is-visible{bottom:1rem}
.cookie-banner a{color:var(--saffron); text-decoration:underline}
.cookie-banner__actions{display:flex; gap:.8rem; margin-top:.8rem; flex-wrap:wrap}
.cookie-banner .btn--ghost{color:#fff; border-color:rgba(255,255,255,.6)}

/* ===== Footer ===== */
.site-footer{background:var(--ink); color:var(--cream); padding-top:1rem}
.site-footer__inner{max-width:var(--maxw); margin:0 auto; padding:2rem 1.2rem; display:grid; grid-template-columns:1.4fr 1fr 1fr 1.4fr; gap:2rem}
@media (max-width:860px){.site-footer__inner{grid-template-columns:1fr 1fr} }
@media (max-width:540px){.site-footer__inner{grid-template-columns:1fr}}
.footer-col h3{color:#fff; font-size:.95rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.8em}
.footer-col a{display:block; color:var(--cream); text-decoration:none; margin-bottom:.5em; opacity:.85}
.footer-col a:hover{opacity:1; text-decoration:underline}
.footer-brand p{color:var(--cream); opacity:.85; font-size:.9rem}
.footer-address{display:flex; align-items:center; gap:.4em; font-size:.85rem}
.site-footer__bottom{text-align:center; padding:1rem; border-top:1px solid rgba(255,255,255,.15); font-size:.8rem; opacity:.7}

/* ===== Utilities ===== */
.mt-0{margin-top:0} .mt-1{margin-top:1rem} .mt-2{margin-top:2rem} .mt-4{margin-top:4rem}
.mb-0{margin-bottom:0} .mb-1{margin-bottom:1rem} .mb-2{margin-bottom:2rem}
.text-center{text-align:center}
.flex{display:flex} .flex-wrap{flex-wrap:wrap} .items-center{align-items:center} .gap-1{gap:1rem} .gap-2{gap:2rem} .justify-between{justify-content:space-between}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0)}

/* COMPONENTS:
.site-header - sticky top header bar
.logo / .logo__mark / .logo__word - brand logo lockup
.main-nav - primary navigation, .is-open on mobile drawer
.nav-cart / .cart-count - header cart link with live count badge
.menu-toggle - mobile hamburger button
.btn / .btn--primary / .btn--ghost / .btn--sm / .btn--full - button variants with fill-sweep hover
.hero / .hero-shapes / .hero__orbits / .hero__center - home hero composition
.section / .section--alt / .section__head - generic content section
.page-hero - inner page hero/intro band
.breadcrumbs - small trail of links under page-hero
.prose - long-form legal/readable text column
.legal-toc - table of contents box for legal pages
.notice / .notice--info - callout box
.grid / .grid--2 / .grid--3 - simple responsive grids
.card - generic white content card with hover lift
.product-strip - horizontal/responsive product listing
.product-card - single product preview card
.product-detail - two-column product page layout
.form-grid / .field / .field-error / .hp-field / .form-msg - form layout and states
.newsletter-form - footer newsletter signup
.cart-table / .cart-summary / .cart-empty - cart/checkout layout
.contact-layout / .contact-info / .contact-info__item - contact page layout
.faq / .faq-item - FAQ accordion using details/summary
.night-finder / .night-finder__form / .night-finder__results / .night-finder__card - signature feature "Večerni svetovalec"
.ornament / .grain-overlay - decorative SVG overlays
.cookie-banner - fixed consent banner
.site-footer - footer with link columns and newsletter
.reveal - scroll-reveal animation hook (JS adds .js-armed and .in-view)
*/
