/* Ribarnica Zarja — design system. Style: slavic cross-stitch (rust/cream/slate on linen). */

:root{
  --rust:#a23b2e;
  --rust-dark:#7c2b21;
  --cream:#f3e9d8;
  --linen:#ece1cc;
  --slate:#3c5a6e;
  --slate-dark:#24394a;
  --ink:#1f2a3a;
  --gold:#c08a3e;
  --white:#fffaf1;
  --radius:4px;
  --shadow:0 10px 30px -12px rgba(31,42,58,.35);
  --font-display:"Iowan Old Style","Palatino Linotype",Georgia,"Times New Roman",serif;
  --font-body:"Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;
  --maxw:1180px;
  --dur:.5s;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}
*{box-sizing:border-box;}
html,body{overflow-x:clip;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;line-height:1.1;color:var(--ink);}
p{margin:0 0 1em;}
a{color:var(--rust-dark);text-decoration-thickness:1.5px;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:3px solid var(--slate);outline-offset:2px;
}
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:1.25rem;}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ===== header ===== */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--cream);
  border-bottom:3px solid var(--ink);
  background-image:repeating-linear-gradient(90deg,var(--rust) 0 8px,transparent 8px 16px);
  background-size:16px 4px;background-position:bottom left;background-repeat:repeat-x;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.7rem;}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);}
.brand svg{width:46px;height:46px;flex:none;}
.brand-word{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.02em;font-weight:700;}
.brand-sub{display:block;font-family:var(--font-body);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);}

.main-nav{display:flex;align-items:center;gap:1.4rem;}
.main-nav ul{display:flex;gap:1.1rem;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.main-nav a{color:var(--ink);text-decoration:none;font-size:.92rem;font-weight:600;position:relative;padding:.3rem 0;}
.main-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--rust);transition:right var(--dur) ease;}
.main-nav a:hover::after,.main-nav a[aria-current="page"]::after{right:0;}
.main-nav a[aria-current="page"]{color:var(--rust-dark);}

.header-tools{display:flex;align-items:center;gap:.8rem;}
.cart-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--ink);text-decoration:none;}
.cart-link svg{width:26px;height:26px;}
.cart-count{
  position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:999px;
  background:var(--rust);color:var(--white);font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;
  transform:scale(1);transition:transform .25s ease;
}
.cart-count.bump{transform:scale(1.4);}

.menu-toggle{display:none;width:44px;height:44px;border:none;background:none;cursor:pointer;flex:none;position:relative;}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{
  content:"";position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:transform .3s ease,opacity .3s ease;
}
.menu-toggle span{top:50%;transform:translateY(-50%);}
.menu-toggle span::before{top:-8px;}
.menu-toggle span::after{top:8px;}
.menu-toggle[aria-expanded="true"] span{background:transparent;}
.menu-toggle[aria-expanded="true"] span::before{transform:translateY(8px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span::after{transform:translateY(-8px) rotate(-45deg);}

@media (max-width:860px){
  .menu-toggle{display:block;}
  .main-nav{
    position:fixed;inset:0 0 0 auto;top:0;height:100vh;width:min(320px,85vw);
    background:var(--slate-dark);color:var(--white);flex-direction:column;align-items:flex-start;
    padding:5.5rem 1.6rem 2rem;gap:2rem;
    transform:translateX(100%);visibility:hidden;transition:transform .35s ease,visibility .35s ease;
    overflow-y:auto;
  }
  .main-nav.open{transform:translateX(0);visibility:visible;}
  .main-nav ul{flex-direction:column;gap:1.1rem;width:100%;}
  .main-nav a{color:var(--cream);font-size:1.05rem;}
  .main-nav a[aria-current="page"]{color:var(--gold);}
}

/* ===== icon sprite usage ===== */
.icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;}

/* ===== buttons ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  position:relative;overflow:hidden;isolation:isolate;
  padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:700;font-size:.95rem;
  text-decoration:none;cursor:pointer;border:2px solid var(--ink);background:var(--ink);color:var(--white);
  min-height:44px;transition:color .3s ease,border-color .3s ease;
}
.btn::before{
  content:"";position:absolute;inset:0;left:-100%;width:100%;background:var(--rust);z-index:-1;
  transition:left .35s ease;
}
.btn:hover::before,.btn:focus-visible::before{left:0;}
.btn:hover,.btn:focus-visible{border-color:var(--rust);}
.btn-primary{background:var(--rust);border-color:var(--rust);}
.btn-primary::before{background:var(--ink);}
.btn-primary:hover{border-color:var(--ink);}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-ghost::before{background:var(--ink);}
.btn-ghost:hover{color:var(--white);}
.btn-ghost.on-dark{color:var(--white);border-color:var(--white);}
.btn-ghost.on-dark::before{background:var(--white);}
.btn-ghost.on-dark:hover{color:var(--ink);}
.btn-small{padding:.5rem 1rem;font-size:.85rem;min-height:36px;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.btn-block{width:100%;}

/* ===== hero (home) ===== */
.hero{position:relative;overflow:hidden;padding-block:3rem 5rem;background:var(--linen);}
.hero .container{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:2rem;align-items:center;}
.hero-eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rust-dark);font-weight:700;margin-bottom:.8rem;}
.hero-title{font-size:clamp(2.4rem,6vw,4.4rem);}
.hero-lead{font-size:1.1rem;max-width:34ch;color:var(--slate-dark);}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;}
.hero-art{position:relative;aspect-ratio:1/1;}
.hero-art .layer{position:absolute;inset:0;transition:transform 1s cubic-bezier(.16,1,.3,1),opacity 1s ease;}
.hero-art .layer-photo{clip-path:polygon(8% 4%,96% 10%,92% 96%,4% 90%);overflow:hidden;box-shadow:var(--shadow);}
.hero-art .layer-photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.15) saturate(1.05);}
.hero-art .layer-svg{z-index:2;}
.hero-art.loaded .layer-photo{transform:translate(0,0) rotate(0deg);}
.hero-art .layer-photo{transform:translate(-6%,4%) rotate(-3deg);opacity:0;}
.hero-art.loaded .layer-photo{opacity:1;}
.hero-art .layer-svg{transform:translate(4%,-3%) rotate(2deg);opacity:0;transition-delay:.15s;}
.hero-art.loaded .layer-svg{transform:translate(0,0) rotate(0deg);opacity:1;}
@media (max-width:860px){.hero .container{grid-template-columns:1fr;}}

/* grain overlay */
.grain{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;opacity:.05;mix-blend-mode:multiply;z-index:1;}

/* ===== dividers / ornaments ===== */
.divider{display:block;width:100%;height:28px;margin:2.5rem 0;}
.divider path{stroke:var(--rust);}
.divider.on-dark path{stroke:var(--gold);}

/* ===== section scaffolding ===== */
section{padding-block:3.5rem;}
.section-head{max-width:50ch;margin-bottom:2rem;}
.section-head .kicker{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rust-dark);font-weight:700;}
.bg-dark{background:var(--slate-dark);color:var(--cream);}
.bg-dark h2,.bg-dark h3{color:var(--white);}
.bg-dark a{color:var(--gold);}

/* ===== reveal / scroll ===== */
.reveal{opacity:0;transform:translateY(28px) scale(.98);clip-path:inset(0 0 12% 0);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1),clip-path .7s ease;}
.reveal.in-view{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0 0 0 0);}
.reveal-stagger > *{transition-delay:calc(var(--i,0) * 90ms);}

/* ===== route/timeline (home) ===== */
.route{position:relative;padding-block:3rem;}
.route-path{position:absolute;left:50%;top:0;width:3px;height:100%;transform:translateX(-50%);z-index:0;}
.route-path svg{width:100%;height:100%;}
.route-steps{position:relative;z-index:1;display:grid;gap:3rem;}
.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(odd) .route-card{grid-column:1;}
.route-marker{grid-column:2;width:52px;height:52px;border-radius:50%;background:var(--cream);border:3px solid var(--rust);display:flex;align-items:center;justify-content:center;}
.route-marker svg{width:26px;height:26px;stroke:var(--rust-dark);}
.route-card{background:var(--white);border:1px solid var(--linen);border-radius:var(--radius);padding:1.2rem 1.4rem;box-shadow:var(--shadow);}
.route-card h3{font-size:1.05rem;margin-bottom:.3rem;}
.route-card p{margin:0;font-size:.92rem;color:var(--slate-dark);}
@media (max-width:720px){
  .route-path{left:26px;}
  .route-step,.route-step:nth-child(even) .route-card,.route-step:nth-child(odd) .route-card{grid-template-columns:52px 1fr;grid-column:1/-1;}
  .route-marker{grid-column:1;}
  .route-card{grid-column:2;}
}

/* ===== calculator (signature feature) ===== */
.calc{background:var(--white);border:1px solid var(--linen);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow);}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.2rem;align-items:end;}
.calc-result{margin-top:1.6rem;padding:1.2rem;background:var(--linen);border-left:4px solid var(--rust);border-radius:var(--radius);}
.calc-result ul{margin:.6rem 0 0;padding-left:1.2rem;}
.calc-result .calc-total{font-family:var(--font-display);font-size:1.3rem;color:var(--rust-dark);}

/* ===== product grid / cards ===== */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.6rem;}
.product-strip{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;}
.product-strip .product-card{flex:0 0 240px;scroll-snap-align:start;}
.product-card{
  background:var(--white);border:1px solid var(--linen);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);transition:transform .35s ease,box-shadow .35s ease;text-decoration:none;color:var(--ink);display:block;
}
.product-card:hover{transform:translateY(-6px);}
.product-card .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--linen);}
.product-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.product-card:hover .thumb img{transform:scale(1.08);}
.product-card .body{padding:1rem 1.1rem;}
.product-card h3{font-size:1.05rem;margin-bottom:.2rem;}
.product-card .unit{font-size:.78rem;color:var(--slate);}
.product-card .price{font-family:var(--font-display);font-size:1.15rem;color:var(--rust-dark);margin-top:.4rem;}
.product-card .tag{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;background:var(--rust);color:var(--white);padding:.15rem .5rem;border-radius:999px;margin-bottom:.4rem;}

/* ===== catalog filters ===== */
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2rem;}
.filters button{
  border:2px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:.4rem 1rem;font-weight:600;
  cursor:pointer;min-height:44px;font-size:.85rem;
}
.filters button.active{background:var(--ink);color:var(--white);}

/* ===== product detail ===== */
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;}
.product-detail .gallery{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--linen);}
.product-detail .gallery img{width:100%;height:100%;object-fit:cover;}
.product-detail .price{font-family:var(--font-display);font-size:1.9rem;color:var(--rust-dark);margin:.6rem 0 1rem;}
.product-detail .qty-row{display:flex;align-items:center;gap:1rem;margin:1.4rem 0;}
.qty-control{display:inline-flex;border:2px solid var(--ink);border-radius:var(--radius);overflow:hidden;}
.qty-control button{width:44px;height:44px;border:none;background:var(--cream);font-size:1.1rem;cursor:pointer;}
.qty-control input{width:52px;border:none;text-align:center;font-size:1rem;background:var(--white);}
@media (max-width:760px){.product-detail{grid-template-columns:1fr;}}

/* ===== cart / checkout ===== */
.cart-table{width:100%;border-collapse:collapse;margin-bottom:2rem;}
.cart-table th{text-align:left;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);border-bottom:2px solid var(--ink);padding:.6rem;}
.cart-table td{padding:.8rem .6rem;border-bottom:1px solid var(--linen);vertical-align:middle;}
.cart-table .cart-item-name{font-weight:700;}
.cart-table .remove-line{color:var(--rust-dark);background:none;border:none;cursor:pointer;font-size:.85rem;text-decoration:underline;min-height:44px;}
.cart-summary{background:var(--white);border:1px solid var(--linen);border-radius:var(--radius);padding:1.5rem;max-width:380px;margin-left:auto;box-shadow:var(--shadow);}
.cart-summary .row{display:flex;justify-content:space-between;margin-bottom:.6rem;}
.cart-summary .total{font-family:var(--font-display);font-size:1.4rem;color:var(--rust-dark);border-top:2px solid var(--ink);padding-top:.8rem;margin-top:.6rem;}
.cart-empty{text-align:center;padding:3rem 1rem;}

/* ===== forms ===== */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;}
.form-grid .field.full{grid-column:1/-1;}
@media (max-width:620px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:.4rem;}
.field label{font-size:.85rem;font-weight:700;}
.field input,.field textarea,.field select{
  font:inherit;padding:.7rem .8rem;border:2px solid var(--linen);border-radius:var(--radius);background:var(--white);color:var(--ink);
  accent-color:var(--rust);min-height:44px;
}
.field textarea{min-height:120px;resize:vertical;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--slate);}
.field-error{font-size:.8rem;color:var(--rust-dark);min-height:1.1em;}
.field input:invalid[data-touched="true"]{border-color:var(--rust-dark);}
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}
.form-note{font-size:.82rem;color:var(--slate);margin-top:.6rem;}

/* ===== notices ===== */
.notice{border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1.5rem;border:1px solid transparent;font-size:.92rem;}
.notice-info{background:#e4edf1;border-color:var(--slate);color:var(--slate-dark);}
.notice-success{background:#e9f0e4;border-color:#4e7a3a;color:#2c4a1f;}
.notice-error{background:#f6e3df;border-color:var(--rust);color:var(--rust-dark);}

/* ===== breadcrumbs ===== */
.breadcrumbs{font-size:.82rem;color:var(--slate);margin-bottom:1.5rem;}
.breadcrumbs a{color:var(--slate-dark);text-decoration:none;}
.breadcrumbs a:hover{text-decoration:underline;}
.breadcrumbs .sep{margin:0 .4em;opacity:.6;}

/* ===== page hero (inner pages) ===== */
.page-hero{background:var(--linen);padding-block:3rem 2.5rem;border-bottom:3px solid var(--ink);}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);}
.page-hero p{max-width:60ch;color:var(--slate-dark);font-size:1.05rem;}

/* ===== prose (legal) ===== */
.prose{max-width:72ch;}
.prose h2{margin-top:2.2rem;font-size:1.4rem;}
.prose h3{margin-top:1.6rem;font-size:1.1rem;}
.prose ul,.prose ol{padding-left:1.4rem;}
.prose li{margin-bottom:.4rem;}
.legal-layout{display:grid;grid-template-columns:260px 1fr;gap:2.5rem;align-items:start;}
@media (max-width:820px){.legal-layout{grid-template-columns:1fr;}}
.legal-toc{position:sticky;top:6rem;background:var(--white);border:1px solid var(--linen);border-radius:var(--radius);padding:1.2rem;font-size:.9rem;}
.legal-toc h2{font-size:.95rem;margin-bottom:.6rem;}
.legal-toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;}
.legal-toc a{color:var(--slate-dark);text-decoration:none;}
.legal-toc a:hover{color:var(--rust-dark);}

/* ===== faq ===== */
.faq{display:flex;flex-direction:column;gap:.9rem;max-width:72ch;}
.faq-item{border:1px solid var(--linen);border-radius:var(--radius);background:var(--white);overflow:hidden;}
.faq-item summary{list-style:none;cursor:pointer;padding:1.1rem 1.3rem;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:1.3rem;color:var(--rust);transition:transform .3s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .faq-body{padding:0 1.3rem 1.2rem;color:var(--slate-dark);}

/* ===== contact layout ===== */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;}
@media (max-width:820px){.contact-layout{grid-template-columns:1fr;}}
.contact-info{display:flex;flex-direction:column;gap:1rem;}
.contact-info .item{display:flex;gap:.8rem;align-items:flex-start;}
.contact-info .item svg{width:22px;height:22px;stroke:var(--rust-dark);flex:none;margin-top:.2rem;}

/* ===== about / story ===== */
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;}
@media (max-width:820px){.story-grid{grid-template-columns:1fr;}}
.story-photo{position:relative;aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.story-photo img{width:100%;height:100%;object-fit:cover;}

/* ===== badges / seals ===== */
.badge-row{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:center;}
.badge-row svg{width:64px;height:64px;}

/* ===== footer ===== */
.site-footer{background:var(--slate-dark);color:var(--linen);padding-block:3.5rem 2rem;margin-top:3rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2.5rem;}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h2{color:var(--white);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem;}
.footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;}
.footer-grid a{color:var(--linen);text-decoration:none;font-size:.92rem;}
.footer-grid a:hover{color:var(--gold);text-decoration:underline;}
.footer-brand svg{width:50px;height:50px;margin-bottom:1rem;}
.newsletter-form{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem;}
.newsletter-form input{flex:1;min-width:160px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:2.5rem;padding-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.82rem;color:#c4d2da;}

/* ===== cookie banner ===== */
.cookie-banner{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:100;max-width:560px;margin-inline:auto;
  background:var(--slate-dark);color:var(--white);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:var(--shadow);
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  transform:translateY(130%);transition:transform .45s ease;
}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner p{margin:0;font-size:.88rem;flex:1 1 240px;}
.cookie-banner a{color:var(--gold);}
.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap;}

/* ===== utilities ===== */
.mt-0{margin-top:0;}.mb-0{margin-bottom:0;}
.mt-1{margin-top:1rem;}.mb-1{margin-bottom:1rem;}
.mt-2{margin-top:2rem;}.mb-2{margin-bottom:2rem;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
@media (max-width:760px){.grid-2{grid-template-columns:1fr;}}
.text-center{text-align:center;}
.flex-center{display:flex;align-items:center;justify-content:center;}
.stack{display:flex;flex-direction:column;gap:1rem;}

/* Additional page styles */
.product-card-link{text-decoration:none;color:inherit;display:block;}
.product-card-link:hover h3{color:var(--rust);}
.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem;}
.short{font-size:0.95em;color:var(--slate);margin:0.5rem 0;}
.filter-btn{padding:0.6rem 1.2rem;border:1px solid var(--slate);background:transparent;color:var(--ink);border-radius:var(--radius);cursor:pointer;font-family:inherit;font-size:0.9em;transition:all var(--dur) ease;}
.filter-btn:hover{border-color:var(--rust);color:var(--rust);}
.filter-btn.active{background:var(--rust);color:var(--cream);border-color:var(--rust);}
.qty-minus,.qty-plus{padding:0.4rem 0.7rem;border:1px solid var(--slate);background:var(--white);color:var(--ink);cursor:pointer;border-radius:var(--radius);font-size:1rem;font-weight:bold;transition:all var(--dur) ease;}
.qty-minus:hover,.qty-plus:hover{background:var(--linen);border-color:var(--rust);}
.product-info{padding:1.5rem;}
.price-info{font-size:1.3em;font-weight:600;color:var(--rust);margin:1rem 0;}

/* COMPONENTS: .class - what it is
.site-header - sticky site header with logo and nav
.main-nav - primary navigation, becomes off-canvas drawer on mobile
.menu-toggle - mobile hamburger button
.cart-link / .cart-count - header cart icon and item-count bubble (add .bump to animate)
.btn / .btn-primary / .btn-ghost / .btn-small / .btn-block - button variants with fill-sweep hover
.hero / .hero-title / .hero-lead / .hero-cta / .hero-art - home hero layout and layered artwork (.loaded triggers slide-apart)
.grain - fixed full-viewport noise overlay
.divider - decorative inline SVG section divider (.on-dark variant)
.section-head - heading block with .kicker label above a section
.bg-dark - dark slate section background variant
.reveal / .in-view / .reveal-stagger - scroll-reveal animation hooks (IntersectionObserver)
.route / .route-path / .route-steps / .route-step / .route-marker / .route-card - home timeline/route layout along an SVG path
.calc / .calc-grid / .calc-result - signature feature: holiday quantity calculator
.product-grid - responsive catalog grid
.product-strip - horizontal scroll-snap product strip (mobile)
.product-card / .thumb / .tag / .price / .unit - product card and its parts
.filters - catalog category filter buttons
.product-detail / .gallery / .qty-row / .qty-control - single product page layout
.cart-table / .cart-item-name / .remove-line - cart line items table
.cart-summary / .cart-empty - order summary box and empty-cart state
.form-grid / .field / .field-error / .hp-field - form layout, field group, inline error, honeypot
.notice / .notice-info / .notice-success / .notice-error - inline status banners
.breadcrumbs - breadcrumb trail
.page-hero - heading band for inner pages
.prose - readable long-form legal/text column
.legal-layout / .legal-toc - legal page two-column layout with sticky table of contents
.faq / .faq-item - details/summary accordion list
.contact-layout / .contact-info - contact page two-column layout
.story-grid / .story-photo - about page photo+text layout
.badge-row - row of decorative seal/badge SVGs
.site-footer / .footer-grid / .footer-brand / .newsletter-form / .footer-bottom - site footer
.cookie-banner / .cookie-actions - cookie consent banner
.icon - stroke icon from the sprite
spacing/layout utilities: .container, .mt-0/.mb-0/.mt-1/.mb-1/.mt-2/.mb-2, .grid-2, .text-center, .flex-center, .stack, .visually-hidden
*/

.text-muted{color:var(--slate);}
.calc-section{background:var(--white);}
.qty-input{width:60px;padding:.5rem;border:2px solid var(--linen);border-radius:var(--radius);text-align:center;font-size:1rem;background:var(--white);color:var(--ink);}

/* wg-contrast-autofix */
section.bg-dark div.container div.section-head.reveal p.kicker { color: #ffffff !important; }
#home-products a.product-card.reveal div.body h3 { color: #111111 !important; }
div.container div.footer-grid div p.form-note { color: #ffffff !important; }
