/* Klobuky Úsvit — design system */
:root{
  --smoke-950:#211c19;
  --smoke-900:#2b2420;
  --smoke-700:#4a3f38;
  --smoke-500:#726459;
  --smoke-200:#d8cfc3;
  --cream:#f4ecdc;
  --white:#fbf7ee;
  --amber:#c69a4e;
  --amber-light:#e3bd79;
  --burgundy:#5c1a24;
  --burgundy-light:#7a2633;
  --ok:#2f6b4f;
  --error:#8a2a2a;
  --radius:4px;
  --font-display:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --font-body:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --measure:68ch;
  --container:1180px;
}
html,body{overflow-x:clip;}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--smoke-900);color:var(--cream);
  font-family:var(--font-body);line-height:1.55;
}
img{max-width:100%;display:block;}
a{color:var(--amber-light);text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;color:var(--white);font-weight:600;}
p{margin:0 0 1em;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
.skip-link{position:absolute;left:-999px;top:0;background:var(--amber);color:var(--smoke-950);padding:.6em 1em;z-index:200;}
.skip-link:focus{left:0;}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px;}
button{font-family:inherit;cursor:pointer;}

/* ===== layout helpers ===== */
.container{max-width:var(--container);margin:0 auto;padding:0 1.25rem;}
.section{padding:clamp(3rem,6vw,6rem) 0;}
.grid{display:grid;gap:1.5rem;}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.stack-sm{display:flex;flex-direction:column;gap:.5rem;}
.stack-md{display:flex;flex-direction:column;gap:1.5rem;}

/* ===== header ===== */
.site-header{position:sticky;top:0;z-index:100;background:rgba(33,28,25,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--smoke-700);}
.header-inner{max-width:var(--container);margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:1.5rem;justify-content:space-between;}
.logo{display:flex;align-items:center;gap:.6rem;color:var(--white);}
.logo-mark{color:var(--amber);flex:none;}
.logo-word{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.02em;}
.logo-word em{display:block;font-style:normal;color:var(--amber);font-size:.7em;letter-spacing:.2em;text-transform:uppercase;}
.main-nav ul{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0;}
.main-nav a{color:var(--smoke-200);font-weight:500;position:relative;padding:.25rem 0;}
.main-nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--amber);transition:width .25s ease;}
.main-nav a:hover::after,.main-nav a.is-active::after{width:100%;}
.main-nav a.is-active{color:var(--white);}
.nav-close{display:none;}
.header-actions{display:flex;align-items:center;gap:1rem;}
.cart-link{position:relative;color:var(--cream);display:inline-flex;}
.cart-count{position:absolute;top:-8px;right:-10px;background:var(--burgundy);color:var(--white);font-size:.7rem;border-radius:50%;min-width:1.2em;height:1.2em;display:flex;align-items:center;justify-content:center;padding:1px;}
.cart-count.bump{animation:bump .35s ease;}
@keyframes bump{0%{transform:scale(1);}40%{transform:scale(1.4);}100%{transform:scale(1);}}
.nav-toggle{background:none;border:none;color:var(--cream);display:none;}
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity .25s;z-index:98;}
.nav-overlay.open{opacity:1;visibility:visible;}

@media (max-width:860px){
  .nav-toggle{display:block;}
  .main-nav{position:fixed;top:0;right:0;height:100vh;width:min(320px,85vw);background:var(--smoke-950);
    transform:translateX(100%);visibility:hidden;transition:transform .3s ease,visibility .3s;z-index:99;
    padding:2rem 1.5rem;border-left:1px solid var(--smoke-700);}
  .main-nav.open{transform:translateX(0);visibility:visible;}
  .main-nav ul{flex-direction:column;gap:1.5rem;margin-top:2rem;}
  .nav-close{display:block;background:none;border:none;color:var(--cream);margin-left:auto;}
}

/* ===== buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:44px;padding:.75em 1.6em;
  border-radius:var(--radius);font-weight:600;letter-spacing:.02em;border:1px solid transparent;position:relative;overflow:hidden;isolation:isolate;transition:color .3s;}
.btn span,.btn svg{position:relative;z-index:1;}
.btn-fill{background:var(--amber);color:var(--smoke-950);}
.btn-fill::before{content:"";position:absolute;inset:0;left:-100%;width:100%;background:var(--burgundy);z-index:0;transition:left .3s ease;}
.btn-fill:hover::before{left:0;}
.btn-fill:hover{color:var(--white);}
.btn-outline{background:transparent;color:var(--white);border-color:var(--amber);}
.btn-outline::before{content:"";position:absolute;inset:0;left:-100%;width:100%;background:var(--amber);z-index:0;transition:left .3s ease;}
.btn-outline:hover::before{left:0;}
.btn-outline:hover{color:var(--smoke-950);}
.btn-ghost{background:transparent;color:var(--cream);border-color:var(--smoke-500);}
.btn-ghost:hover{border-color:var(--cream);}
.btn-sm{min-height:36px;padding:.4em 1em;font-size:.85rem;}
.btn-block{width:100%;}

/* ===== hero ===== */
.hero{position:relative;padding:clamp(3rem,8vw,7rem) 0 clamp(2rem,5vw,4rem);overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;}
.hero h1{font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.02;}
.hero-sub{font-size:1.15rem;color:var(--smoke-200);max-width:32ch;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;}
.hero-photo{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;isolation:isolate;--shift:0%;}
.hero-photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.35) saturate(1.4) hue-rotate(-8deg);mix-blend-mode:normal;transition:filter .2s;}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,var(--burgundy) var(--shift),transparent 70%);mix-blend-mode:color;opacity:.75;pointer-events:none;}
.hero-frame{position:absolute;inset:-14px;border:2px solid var(--amber);border-radius:var(--radius);pointer-events:none;opacity:.6;}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr;}}

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

/* ===== ornament dividers ===== */
.divider{width:100%;color:var(--amber);opacity:.7;margin:2rem 0;}
.footer-divider{color:var(--amber);opacity:.5;}

/* ===== timeline / route layout (home composition) ===== */
.route{position:relative;}
.route-path{position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);
  background:repeating-linear-gradient(to bottom,var(--amber) 0 10px,transparent 10px 20px);opacity:.5;}
.route-steps{display:flex;flex-direction:column;gap:3rem;position:relative;}
.route-step{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:center;}
.route-step:nth-child(even) .route-card{grid-column:3;}
.route-step:nth-child(even) .route-spacer{grid-column:1;}
.route-step:nth-child(odd) .route-card{grid-column:1;text-align:right;}
.route-marker{grid-column:2;width:48px;height:48px;border-radius:50%;background:var(--smoke-950);
  border:2px solid var(--amber);display:flex;align-items:center;justify-content:center;color:var(--amber);flex:none;}
.route-card{background:var(--smoke-950);border:1px solid var(--smoke-700);border-radius:var(--radius);padding:1.5rem;}
@media (max-width:760px){
  .route-path{left:24px;}
  .route-step,.route-step:nth-child(even){grid-template-columns:48px 1fr;}
  .route-marker{grid-column:1;}
  .route-step:nth-child(odd) .route-card,.route-step:nth-child(even) .route-card{grid-column:2;text-align:left;}
  .route-spacer{display:none;}
}

/* ===== cards ===== */
.card{background:var(--smoke-950);border:1px solid var(--smoke-700);border-radius:var(--radius);padding:1.5rem;transition:transform .25s ease,border-color .25s;}
.card:hover{transform:translateY(-4px);border-color:var(--amber);}

/* ===== product cards & strip ===== */
.product-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.5rem;}
.product-card{background:var(--smoke-950);border:1px solid var(--smoke-700);border-radius:var(--radius);overflow:hidden;transition:transform .3s ease,border-color .3s;}
.product-card:hover{transform:translateY(-6px);border-color:var(--amber);}
.product-card .thumb{aspect-ratio:4/5;overflow:hidden;}
.product-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.product-card:hover .thumb img{transform:scale(1.07);}
.product-card .body{padding:1.1rem;}
.product-card h3{font-size:1.05rem;margin-bottom:.2rem;}
.product-card .price{color:var(--amber-light);font-weight:700;}
.product-card .cat{color:var(--smoke-500);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;}
@media (max-width:640px){
  .product-strip.scroll-mobile{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;padding-bottom:.5rem;}
  .product-strip.scroll-mobile .product-card{flex:0 0 72%;scroll-snap-align:start;}
}

/* ===== signature feature panel ===== */
.measure-panel{background:var(--smoke-950);border:1px solid var(--amber);border-radius:var(--radius);padding:clamp(1.5rem,4vw,3rem);
  display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;}
.measure-panel form{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;}
.measure-panel label{display:block;margin-bottom:.4rem;font-weight:600;}
.measure-panel input{background:var(--smoke-900);border:1px solid var(--smoke-500);color:var(--white);padding:.7em;border-radius:var(--radius);width:10em;}
.measure-result{margin-top:1rem;padding:1rem;border-radius:var(--radius);background:var(--smoke-900);min-height:1.2em;}
.measure-result-ok{border:1px solid var(--ok);}
.measure-result-error{border:1px solid var(--error);}
@media (max-width:760px){.measure-panel{grid-template-columns:1fr;}}

/* ===== reveal animation ===== */
.reveal{opacity:0;transform:translateY(24px) scale(.98);clip-path:inset(8% 0 0 0);transition:opacity .6s ease,transform .6s ease,clip-path .6s ease;}
.reveal.in-view{opacity:1;transform:none;clip-path:inset(0 0 0 0);}
.reveal-stagger .reveal:nth-child(1){transition-delay:0s;}
.reveal-stagger .reveal:nth-child(2){transition-delay:.08s;}
.reveal-stagger .reveal:nth-child(3){transition-delay:.16s;}
.reveal-stagger .reveal:nth-child(4){transition-delay:.24s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;clip-path:none;transition:none;}
}

/* ===== page hero for inner pages ===== */
.page-hero{padding:clamp(3rem,6vw,5rem) 0 2.5rem;border-bottom:1px solid var(--smoke-700);}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.2rem);}
.page-hero p{color:var(--smoke-200);max-width:60ch;}

/* ===== breadcrumbs ===== */
.breadcrumbs{font-size:.85rem;color:var(--smoke-500);margin-bottom:1rem;}
.breadcrumbs a{color:var(--smoke-200);}
.breadcrumbs span{margin:0 .4em;}

/* ===== prose (legal pages) ===== */
.prose{max-width:var(--measure);}
.prose h2{margin-top:2em;font-size:1.5rem;}
.prose h3{margin-top:1.5em;font-size:1.15rem;}
.prose ul,.prose ol{padding-left:1.4em;}
.prose li{margin-bottom:.4em;}
.legal-toc{background:var(--smoke-950);border:1px solid var(--smoke-700);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem;}
.legal-toc ol{margin:0;padding-left:1.2em;}
.legal-toc a{color:var(--cream);}

/* ===== notices ===== */
.notice{border-radius:var(--radius);padding:1rem 1.25rem;border:1px solid var(--smoke-700);background:var(--smoke-950);margin-bottom:1.5rem;}
.notice-info{border-color:var(--amber);}
.notice-success{border-color:var(--ok);}
.notice-error{border-color:var(--error);}

/* ===== forms ===== */
.form-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.field{display:flex;flex-direction:column;gap:.4rem;}
.field label{font-weight:600;}
.field input,.field textarea,.field select{background:var(--smoke-950);border:1px solid var(--smoke-500);color:var(--white);
  padding:.75em;border-radius:var(--radius);font-family:inherit;accent-color:var(--amber);}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--amber);}
.field-full{grid-column:1/-1;}
.field-error{color:var(--error);font-size:.85rem;min-height:1.2em;}
.form-msg{min-height:1.2em;font-weight:600;}
.form-msg-ok{color:var(--ok);}
.form-msg-error{color:var(--error);}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.field-row{display:flex;gap:.6rem;flex-wrap:wrap;}

/* ===== product detail ===== */
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;}
.product-detail .gallery{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;border:1px solid var(--smoke-700);}
.product-detail .gallery img{width:100%;height:100%;object-fit:cover;}
.product-detail .price-lg{font-size:2rem;color:var(--amber-light);font-weight:700;}
.product-detail .size-select{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0;}
.product-detail .size-select label{border:1px solid var(--smoke-500);border-radius:var(--radius);padding:.5em 1em;cursor:pointer;}
.product-detail .size-select input{position:absolute;opacity:0;}
.product-detail .size-select input:checked + span{color:var(--smoke-950);}
.product-detail .size-select label:has(input:checked){background:var(--amber);border-color:var(--amber);}
@media (max-width:760px){.product-detail{grid-template-columns:1fr;}}

/* ===== cart & checkout ===== */
.cart-table{width:100%;border-collapse:collapse;}
.cart-table th,.cart-table td{text-align:left;padding:.8em .6em;border-bottom:1px solid var(--smoke-700);}
.cart-table img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius);}
.cart-summary{background:var(--smoke-950);border:1px solid var(--smoke-700);border-radius:var(--radius);padding:1.5rem;position:sticky;top:5rem;}
.cart-summary .total-row{display:flex;justify-content:space-between;font-size:1.2rem;font-weight:700;margin:1rem 0;color:var(--amber-light);}
.cart-layout{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start;}
@media (max-width:860px){.cart-layout{grid-template-columns:1fr;}.cart-summary{position:static;}}

/* ===== contact layout ===== */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;}
.contact-info ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:1rem;}
.contact-info li{display:flex;gap:.7rem;align-items:flex-start;color:var(--smoke-200);}
@media (max-width:860px){.contact-layout{grid-template-columns:1fr;}}

/* ===== faq ===== */
.faq-item{border-bottom:1px solid var(--smoke-700);padding:1rem 0;}
.faq-item summary{cursor:pointer;font-weight:600;color:var(--white);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";color:var(--amber);font-size:1.3rem;}
.faq-item[open] summary::after{content:"\2212";}
.faq-item p{margin-top:.8rem;color:var(--smoke-200);}

/* ===== badges / seals ===== */
.seal{width:90px;height:90px;color:var(--amber);}

/* ===== utilities ===== */
.mt-0{margin-top:0;}
.mt-1{margin-top:1rem;}
.mt-2{margin-top:2rem;}
.mb-0{margin-bottom:0;}
.text-center{text-align:center;}
.text-muted{color:var(--smoke-500);}
.flex{display:flex;}
.flex-wrap{flex-wrap:wrap;}
.gap-1{gap:.5rem;}
.gap-2{gap:1rem;}
.items-center{align-items:center;}
.justify-between{justify-content:space-between;}

/* ===== cookie banner ===== */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:150;background:var(--smoke-950);border-top:1px solid var(--amber);
  padding:1.25rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;color:var(--cream);}
.cookie-actions{display:flex;gap:.75rem;flex-wrap:wrap;}

/* ===== footer ===== */
.site-footer{background:var(--smoke-950);padding-top:1rem;color:var(--smoke-200);}
.footer-inner{max-width:var(--container);margin:0 auto;padding:1rem 1.25rem 2rem;display:grid;grid-template-columns:1.2fr 2fr 1fr;gap:2.5rem;}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.footer-cols h3{font-family:var(--font-body);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--amber);margin-bottom:.8rem;}
.footer-cols ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem;}
.footer-email{display:flex;align-items:center;gap:.5em;}
.newsletter-form{display:flex;flex-direction:column;gap:.4rem;}
.footer-bottom{border-top:1px solid var(--smoke-700);padding:1rem 1.25rem;text-align:center;font-size:.85rem;color:var(--smoke-500);}
@media (max-width:860px){.footer-inner{grid-template-columns:1fr;}.footer-cols{grid-template-columns:repeat(3,1fr);}}
@media (max-width:480px){.footer-cols{grid-template-columns:1fr 1fr;}}

/* COMPONENTS:
.container - max-width centered wrapper
.section - vertical page section spacing
.grid / .grid-2 / .grid-3 - responsive grids
.stack-sm / .stack-md - vertical flex stacks
.site-header / .header-inner / .logo / .logo-mark / .logo-word - header & logo
.main-nav / .nav-toggle / .nav-close / .nav-overlay - responsive nav
.cart-link / .cart-count - header cart indicator with bump animation
.btn / .btn-fill / .btn-outline / .btn-ghost / .btn-sm / .btn-block - button variants with fill-sweep
.hero / .hero-grid / .hero-sub / .hero-actions / .hero-photo / .hero-frame - home hero with duotone scroll shift
.grain-overlay - fixed SVG feTurbulence texture overlay
.divider / .footer-divider - decorative SVG dividers
.route / .route-path / .route-steps / .route-step / .route-marker / .route-card / .route-spacer - timeline/route home layout
.card - generic bordered card with hover lift
.product-strip / .product-card - product grid/strip, horizontal scroll-snap on mobile
.measure-panel / .measure-result - signature feature panel
.reveal / .reveal-stagger - scroll reveal animation classes
.page-hero - inner page header band
.breadcrumbs - breadcrumb trail
.prose - readable-measure long-form text
.legal-toc - table of contents box for legal pages
.notice / .notice-info / .notice-success / .notice-error - callout boxes
.form-grid / .field / .field-error / .field-full / .form-msg / .hp-field / .field-row - form system
.product-detail / .gallery / .price-lg / .size-select - product detail page
.cart-table / .cart-summary / .cart-layout - cart & checkout
.contact-layout / .contact-info - contact page layout
.faq-item - details/summary FAQ accordion
.seal - decorative badge/seal SVG sizing
.cookie-banner / .cookie-actions - cookie consent banner
.site-footer / .footer-inner / .footer-cols / .footer-email / .newsletter-form / .footer-bottom - footer
utilities: .visually-hidden .skip-link .mt-0 .mt-1 .mt-2 .mb-0 .text-center .text-muted .flex .flex-wrap .gap-1 .gap-2 .items-center .justify-between
*/
