/* ==========================================================================
   Domáci Textil Ľan — Herbarium specimen style
   ========================================================================== */

:root{
  --paper: #f4ecd8;
  --paper-dark: #e8dcc0;
  --paper-deep: #dccba3;
  --ink: #2a2620;
  --ink-soft: #4a443a;
  --pine: #2f4538;
  --pine-dark: #1c2c22;
  --pine-soft: #46644f;
  --berry: #9c3b3b;
  --berry-dark: #74282a;
  --berry-light: #c25a4f;
  --snow: #fbf8ef;
  --line: rgba(42,38,32,0.22);
  --shadow: 0 1px 0 rgba(42,38,32,0.06), 0 10px 24px -14px rgba(28,44,34,0.35);
  --font-display: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
  --font-body: 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --font-label: 'Courier New', Courier, monospace;
  --radius: 4px;
  --maxw: 1180px;
  --speed: 0.5s;
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:clip; margin:0;}
body{
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{max-width:100%; display:block;}
a{color: var(--berry); text-decoration: none;}
h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--pine-dark);
  line-height: 1.12;
  margin: 0 0 0.5em;
  font-weight: 700;
}
p{margin:0 0 1em;}
.wrap{max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1.1rem, 4vw, 2.5rem);}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
section{position:relative;}
::selection{background: var(--berry); color: var(--snow);}

:focus-visible{
  outline: 2px solid var(--berry);
  outline-offset: 3px;
  border-radius: 2px;
}

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

/* ---------------- Buttons ---------------- */
.btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--font-label);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.85em 1.4em;
  border: 1.5px solid var(--pine-dark);
  border-radius: var(--radius);
  background: transparent;
  color: var(--pine-dark);
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  min-height: 44px;
  transition: color 0.35s ease, border-color 0.35s ease;
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  width:100%;
  left:-100%;
  background: var(--pine-dark);
  z-index:-1;
  transition: left 0.35s ease;
}
.btn:hover,.btn:focus-visible{ color: var(--snow); }
.btn:hover::before,.btn:focus-visible::before{ left:0; }
.btn-primary{ background: var(--pine-dark); color: var(--snow); border-color: var(--pine-dark); }
.btn-primary::before{ background: var(--berry); }
.btn-primary:hover{ color: var(--snow); }
.btn-berry{ border-color: var(--berry-dark); color: var(--berry-dark); }
.btn-berry::before{ background: var(--berry-dark); }
.btn-berry:hover{ color: var(--snow); }
.btn[disabled]{ opacity: 0.5; cursor: not-allowed; }
.btn-sm{ padding: 0.55em 1em; font-size: 0.74rem; min-height: 36px;}
.btn-block{ width: 100%; justify-content: center; }

/* ---------------- Icons ---------------- */
.icon{ width: 1.3em; height: 1.3em; stroke: currentColor; fill: none; stroke-width: 1.6; vertical-align: -0.25em; }

/* ---------------- Header ---------------- */
.site-header{
  position: sticky; top: 0; z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap: 1rem; padding-top: 0.8rem; padding-bottom: 0.8rem;
}
.logo{ display:flex; align-items:center; gap:0.6rem; color: var(--pine-dark); }
.logo-mark{ width: 42px; height: 42px; flex-shrink:0; }
.logo-word{ width: clamp(150px, 22vw, 210px); height: auto; aspect-ratio: 210/40; }
.main-nav{ display:flex; align-items:center; }
.nav-list{ display:flex; gap: clamp(0.9rem, 2vw, 1.8rem); list-style:none; margin:0; padding:0; }
.nav-list a{
  color: var(--ink); font-size: 0.95rem; position:relative; padding: 0.3em 0;
}
.nav-list a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background: var(--berry);
  transition: right 0.3s ease;
}
.nav-list a:hover::after, .nav-list a:focus-visible::after, .nav-list a[aria-current="page"]::after{ right:0; }
.nav-list a[aria-current="page"]{ color: var(--berry-dark); font-weight:600; }
.cart-link{ display:flex; align-items:center; gap:0.4rem; color: var(--pine-dark); position:relative; min-height:44px; min-width:44px; justify-content:center;}
.cart-count{
  font-family: var(--font-label); font-size: 0.72rem; background: var(--berry); color: var(--snow);
  border-radius: 50%; min-width: 1.4em; height:1.4em; display:flex; align-items:center; justify-content:center;
  transition: transform 0.3s ease;
}
.cart-count.bump{ transform: scale(1.4); }
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:44px; height:44px; background:none; border:none; cursor:pointer; padding:0;
}
.nav-toggle span{ display:block; width:24px; height:2px; background: var(--pine-dark); margin:0 auto; transition: transform 0.3s ease, opacity 0.3s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 760px){
  .nav-toggle{ display:flex; }
  .main-nav{
    position:fixed; top:0; right:0; height:100vh; width: min(78vw, 320px);
    background: var(--snow); border-left: 1px solid var(--line);
    transform: translateX(100%); visibility:hidden;
    transition: transform 0.35s ease, visibility 0.35s ease;
    padding: 5.5rem 1.5rem 2rem; z-index: 60;
  }
  .main-nav.open{ transform: translateX(0); visibility: visible; }
  .nav-list{ flex-direction:column; gap: 1.4rem; }
  .nav-list a{ font-size: 1.1rem; }
}

/* ---------------- Reveal ---------------- */
.reveal{ transition: opacity 0.7s ease, transform 0.7s ease, clip-path 0.7s ease; }
.reveal.reveal-up{ opacity:0; transform: translateY(26px); }
.reveal.reveal-fade{ opacity:0; }
.reveal.reveal-clip{ clip-path: inset(0 0 100% 0); opacity:1; }
.reveal.in-view{ opacity:1; transform:none; clip-path: inset(0 0 0% 0); }
.reveal-stagger > *{ transition-delay: calc(var(--i, 0) * 90ms); }

/* ---------------- Hero ---------------- */
.hero{
  position: relative;
  padding: clamp(2.5rem, 7vw, 5rem) 0 clamp(3rem, 8vw, 6rem);
  overflow: hidden;
}
.hero-grid{
  display:grid; grid-template-columns: 1.1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items:center;
}
.hero-eyebrow{
  font-family: var(--font-label); letter-spacing:0.18em; text-transform:uppercase; font-size:0.78rem;
  color: var(--berry-dark); display:inline-flex; align-items:center; gap:0.6em; margin-bottom:1em;
}
.hero-eyebrow::before{ content:""; width:28px; height:1px; background: var(--berry-dark); display:inline-block; }
.hero h1{
  font-size: clamp(2.6rem, 6.4vw, 4.6rem);
  letter-spacing: -0.01em;
}
.hero h1 em{ color: var(--berry-dark); font-style:normal; }
.hero-lede{ font-size: 1.1rem; color: var(--ink-soft); max-width: 36ch; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-top: 1.6rem; }
.hero-figure{ position: relative; }
.hero-illustration{ width:100%; height:auto; }

@media (max-width: 860px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-figure{ order:-1; }
}

/* route line draw animation */
.route-line{
  stroke-dasharray: 1200;
  stroke-dashoffset: 1200;
  transition: stroke-dashoffset 2.4s ease;
}
.route-line.drawn{ stroke-dashoffset:0; }
.route-pin{ opacity:0; transform: translateY(-10px); transition: opacity 0.5s ease, transform 0.5s ease; }
.route-pin.dropped{ opacity:1; transform: translateY(0); }
.route-pin.dropped .pin-pulse{ animation: pin-pulse 2.6s ease-in-out infinite; transform-origin: center; }
@keyframes pin-pulse{
  0%, 100% { opacity:0.55; transform: scale(1); }
  50% { opacity:0.15; transform: scale(1.8); }
}

/* ---------------- Dividers & ornaments ---------------- */
.divider{ width:100%; height: auto; display:block; margin: clamp(1.5rem,4vw,3rem) 0; color: var(--pine-soft); }
.ornament{ position:absolute; width: 70px; height:70px; opacity:0.75; color: var(--berry-dark); }

/* ---------------- Section headings ---------------- */
.section-head{ max-width: 56ch; margin-bottom: clamp(1.6rem, 4vw, 2.6rem); }
.section-head .kicker{
  font-family: var(--font-label); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  color: var(--pine-soft); display:block; margin-bottom:0.6em;
}
.section-head h2{ font-size: clamp(1.8rem, 3.6vw, 2.6rem); }
.section-pad{ padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.section-alt{ background: var(--paper-dark); }

/* ---------------- Specimen card (herbarium) ---------------- */
.specimen{
  background: var(--snow);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  padding: 1.3rem;
  position: relative;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.specimen::before{
  content:""; position:absolute; top:10px; left:50%; width:10px; height:10px;
  background: var(--berry-dark); border-radius:50%; transform: translateX(-50%);
  box-shadow: 0 0 0 2px var(--snow), 0 1px 3px rgba(0,0,0,0.4);
}
.specimen:hover{ transform: translateY(-5px) rotate(-0.4deg); box-shadow: 0 1px 0 rgba(42,38,32,0.06), 0 20px 30px -16px rgba(28,44,34,0.45); }
.specimen-label{
  font-family: var(--font-label); font-size:0.72rem; letter-spacing:0.05em; color: var(--pine-soft);
  border-top: 1px dashed var(--line); margin-top:0.9rem; padding-top:0.6rem;
}
.specimen-no{ color: var(--berry-dark); }

/* ---------------- Route / journey timeline ---------------- */
.route-section{ position:relative; }
.route-wrap{ position:relative; }
.route-svg-path{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.route-steps{
  position:relative; z-index:1; display:grid; gap: clamp(1.8rem, 5vw, 3.2rem);
  grid-template-columns: repeat(3, 1fr);
}
.route-step{ text-align:left; }
.route-step:nth-child(even){ transform: translateY(clamp(20px,4vw,48px)); }
.step-photo-wrap{ position:relative; width:72px; height:72px; margin-bottom:0.9rem; }
.step-photo-wrap img{ width:100%; height:100%; object-fit:cover; border-radius:50%; border:2px solid var(--paper); box-shadow: var(--shadow); }
.step-photo-frame{ position:absolute; top:-10px; left:-10px; width:92px; height:92px; color: var(--berry-dark); opacity:0.65; pointer-events:none; }
.route-step .step-no{
  font-family: var(--font-label); color: var(--berry-dark); font-size:0.78rem; display:block; margin-bottom:0.4rem;
}
.route-step h3{ font-size:1.15rem; margin-bottom:0.3rem; }
.route-step p{ font-size:0.92rem; color: var(--ink-soft); margin-bottom:0; }
@media (max-width: 860px){
  .route-steps{ grid-template-columns: 1fr 1fr; }
  .route-step:nth-child(even){ transform:none; }
}
@media (max-width: 560px){
  .route-steps{ grid-template-columns: 1fr; }
}

/* ---------------- Compass (signature feature) ---------------- */
.compass{
  background: var(--pine-dark);
  color: var(--snow);
  border-radius: var(--radius);
  padding: clamp(1.8rem, 4vw, 3rem);
  position: relative;
  overflow:hidden;
}
.compass h2, .compass h3{ color: var(--snow); }
.compass::after{
  content:""; position:absolute; inset:0; opacity:0.08; pointer-events:none;
  background-image: radial-gradient(circle at 30% 20%, var(--berry) 0, transparent 45%);
}
.compass-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); position:relative; z-index:1; }
.compass-form label{ display:block; font-family: var(--font-label); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.4em; color: var(--paper-dark); }
.compass-form .field{ margin-bottom: 1.2rem; }
.compass-form select{
  width:100%; padding:0.75em 0.9em; min-height:44px; font-size:1rem;
  background: var(--snow); color: var(--ink); border: 1px solid transparent; border-radius: var(--radius);
}
.compass-result{
  background: var(--snow); color: var(--ink); border-radius: var(--radius); padding:1.4rem;
  min-height: 180px; display:flex; flex-direction:column; justify-content:center;
}
.compass .btn-berry{ border-color: var(--snow); color: var(--snow); }
.compass-result .placeholder{ color: var(--ink-soft); font-style:italic; }
.compass-result h4{ color: var(--berry-dark); margin-bottom:0.4rem; }
.compass-result .compass-links{ display:flex; gap:0.7rem; flex-wrap:wrap; margin-top:0.8rem; }
@media (max-width: 760px){ .compass-grid{ grid-template-columns:1fr; } }

/* ---------------- Product grid / strip ---------------- */
.product-grid{
  display:grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.6rem;
}
.product-strip{ display:grid; grid-template-columns: repeat(auto-fill, minmax(230px,1fr)); gap:1.6rem; }
.product-card{
  display:flex; flex-direction:column; background: var(--snow); border:1px solid var(--line);
  box-shadow: var(--shadow); transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.product-card:hover{ transform: translateY(-6px); box-shadow: 0 1px 0 rgba(42,38,32,0.06), 0 22px 32px -18px rgba(28,44,34,0.45); }
.product-thumb{ position:relative; overflow:hidden; aspect-ratio: 4/3; }
.product-thumb img{ width:100%; height:100%; object-fit:cover; transition: transform 0.5s ease; }
.product-card:hover .product-thumb img{ transform: scale(1.06); }
.product-tag{
  position:absolute; top:10px; left:10px; background: var(--paper); color: var(--pine-dark);
  font-family: var(--font-label); font-size: 0.68rem; letter-spacing:0.06em; text-transform:uppercase;
  padding: 0.3em 0.6em; border:1px solid var(--line);
}
.product-body{ padding: 1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:0.4rem; flex:1; }
.product-body h3{ font-size:1.05rem; margin-bottom:0; }
.product-body .material{ font-size:0.82rem; color: var(--ink-soft); font-family: var(--font-label); }
.product-price{ font-family: var(--font-label); font-size:1.15rem; color: var(--berry-dark); margin-top:auto; }
.product-card .btn{ margin-top:0.6rem; align-self:flex-start; }

@media (max-width: 680px){
  .product-strip{
    grid-auto-flow:column; grid-auto-columns: 72%; overflow-x:auto; scroll-snap-type:x mandatory;
    padding-bottom: 0.6rem; grid-template-columns:none;
  }
  .product-strip .product-card{ scroll-snap-align:start; }
}

/* filters */
.catalog-filters{ display:flex; gap:0.6rem; flex-wrap:wrap; margin-bottom:1.8rem; }
.filter-chip{
  font-family: var(--font-label); font-size:0.78rem; letter-spacing:0.04em; padding:0.5em 1em;
  border:1px solid var(--line); background: var(--snow); color: var(--ink-soft); border-radius: 20px;
  cursor:pointer; min-height:40px;
}
.filter-chip[aria-pressed="true"]{ background: var(--pine-dark); color: var(--snow); border-color: var(--pine-dark); }

/* ---------------- Product detail ---------------- */
.product-detail{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items:start; }
.product-detail-media{ position:relative; }
.product-detail-media img{ width:100%; aspect-ratio: 4/3; object-fit:cover; border: 1px solid var(--line); }
.specimen-tab{
  position:absolute; top:-14px; right:18px; background: var(--paper); border:1px solid var(--line);
  font-family: var(--font-label); font-size:0.7rem; padding:0.4em 0.8em; color: var(--pine-soft);
  transform: rotate(-2deg);
}
.product-detail h1{ font-size: clamp(2rem, 4vw, 2.8rem); }
.product-price-lg{ font-family: var(--font-label); font-size:1.8rem; color: var(--berry-dark); margin: 0.4rem 0 1rem; }
.product-meta{ list-style:none; margin:0 0 1.4rem; padding:0; font-size:0.92rem; color: var(--ink-soft); display:grid; gap:0.4rem; }
.product-meta b{ color: var(--ink); }
.qty-row{ display:flex; align-items:center; gap:0.8rem; margin-bottom:1.2rem; }
.qty-row input{ width: 4.5em; padding:0.6em; min-height:44px; border:1px solid var(--line); border-radius: var(--radius); font-size:1rem; text-align:center; }
@media (max-width: 760px){ .product-detail{ grid-template-columns:1fr; } }

/* ---------------- Cart / checkout ---------------- */
.cart-table{ width:100%; border-collapse:collapse; margin-bottom:1.6rem; }
.cart-table th{ text-align:left; font-family: var(--font-label); font-size:0.74rem; text-transform:uppercase; letter-spacing:0.06em; color: var(--pine-soft); padding-bottom:0.6rem; border-bottom:1px solid var(--line); }
.cart-table td{ padding: 0.9rem 0.4rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.cart-item-info{ display:flex; align-items:center; gap:0.8rem; }
.cart-item-info img{ width:64px; height:64px; object-fit:cover; border:1px solid var(--line); flex-shrink:0; }
.cart-qty{ width:4em; padding:0.4em; min-height:40px; border:1px solid var(--line); text-align:center; }
.cart-remove{ background:none; border:none; color: var(--berry-dark); cursor:pointer; font-family: var(--font-label); font-size:0.78rem; min-height:40px; }
.cart-empty{ padding: 2.5rem 0; text-align:center; color: var(--ink-soft); }
.cart-summary{ max-width: 360px; margin-left:auto; text-align:right; }
.cart-summary .total-row{ display:flex; justify-content:space-between; font-family: var(--font-label); font-size:1.2rem; color: var(--pine-dark); border-top:1px solid var(--line); padding-top:0.8rem; margin-top:0.4rem; }
.checkout-grid{ display:grid; grid-template-columns: 1.3fr 1fr; gap: clamp(1.6rem,4vw,3rem); align-items:start; }
@media (max-width: 860px){ .checkout-grid{ grid-template-columns:1fr; } }
.order-summary{ background: var(--paper-dark); border:1px solid var(--line); padding:1.3rem; }

/* ---------------- Forms ---------------- */
.form-field{ margin-bottom:1.2rem; }
.form-field label{ display:block; font-family: var(--font-label); font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:0.4em; color: var(--pine-soft); }
.form-field input, .form-field textarea, .form-field select{
  width:100%; padding:0.8em 0.9em; min-height:44px; border:1px solid var(--line); border-radius: var(--radius);
  background: var(--snow); color: var(--ink); font-size:1rem; font-family: inherit;
  accent-color: var(--berry-dark);
}
.form-field textarea{ min-height:120px; resize:vertical; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{ border-color: var(--berry-dark); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.honeypot{ position:absolute !important; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }
.form-msg{ font-size:0.9rem; min-height:1.4em; margin-top:0.6rem; }
.form-msg.ok{ color: var(--pine-soft); }
.form-msg.err{ color: var(--berry-dark); }
.field-row{ display:flex; gap:0.6rem; flex-wrap:wrap; }
.field-row input{ flex:1; min-width:180px; padding:0.8em 0.9em; min-height:44px; border:1px solid var(--line); border-radius: var(--radius); font-family: inherit; }

/* ---------------- About / content pages ---------------- */
.content-page{ padding: clamp(2.5rem, 6vw, 4.5rem) 0; max-width: 820px; }
.content-page h1{ font-size: clamp(2.2rem, 5vw, 3.2rem); margin-bottom:0.6rem; }
.content-page h2{ font-size:1.5rem; margin-top:2rem; }
.content-page ul{ padding-left:1.2rem; }
.page-hero{ background: var(--paper-dark); padding: clamp(2.5rem,6vw,4rem) 0 clamp(1.5rem,4vw,2rem); }
.page-hero .wrap{ max-width: var(--maxw); }
.page-hero h1{ font-size: clamp(2.2rem,5vw,3.4rem); margin-bottom:0.4rem; }
.breadcrumb{ font-family: var(--font-label); font-size:0.78rem; color: var(--pine-soft); margin-bottom:0.8rem; }
.breadcrumb a{ color: var(--pine-soft); }

/* ---------------- About page extras ---------------- */
.about-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,3.5rem); align-items:center; }
.about-grid img{ width:100%; aspect-ratio: 3/2; object-fit:cover; border:1px solid var(--line); }
@media (max-width:760px){ .about-grid{ grid-template-columns:1fr; } }
.values-list{ display:grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap:1.4rem; list-style:none; padding:0; margin: 2rem 0; }
.values-list li{ background: var(--snow); border:1px solid var(--line); padding:1.2rem; }
.values-list h3{ font-size:1.05rem; }

/* ---------------- FAQ ---------------- */
.faq-list{ display:flex; flex-direction:column; gap:0.8rem; }
.faq-item{ background: var(--snow); border:1px solid var(--line); padding: 0.2rem 1.2rem; }
.faq-item summary{ cursor:pointer; font-family: var(--font-display); font-weight:700; padding:1rem 0; list-style:none; 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 .plus{ flex-shrink:0; width:20px; height:20px; position:relative; }
.faq-item summary .plus::before, .faq-item summary .plus::after{ content:""; position:absolute; background: var(--berry-dark); }
.faq-item summary .plus::before{ width:100%; height:2px; top:9px; left:0; }
.faq-item summary .plus::after{ width:2px; height:100%; left:9px; top:0; transition: transform 0.25s ease; }
.faq-item[open] summary .plus::after{ transform: rotate(90deg); }
.faq-item p{ padding-bottom:1.1rem; color: var(--ink-soft); }

/* ---------------- Badges / seals ---------------- */
.badge-row{ display:flex; gap: clamp(1rem,3vw,2rem); flex-wrap:wrap; align-items:center; }
.badge{ width:84px; height:84px; color: var(--pine-dark); flex-shrink:0; }
.badge-item{ display:flex; align-items:center; gap:0.8rem; max-width:220px; }
.badge-item p{ font-size:0.85rem; margin:0; color: var(--ink-soft); }

/* ---------------- Cookie banner ---------------- */
.cookie-banner{
  position: fixed; left:1rem; right:1rem; bottom:1rem; z-index:100; max-width: 560px; margin: 0 auto;
  background: var(--pine-dark); color: var(--snow); border-radius: var(--radius);
  padding: 1.3rem 1.4rem; box-shadow: 0 20px 50px -20px rgba(0,0,0,0.5);
  transform: translateY(120%); transition: transform 0.5s ease;
}
.cookie-banner.show{ transform: translateY(0); }
.cookie-banner p{ font-size:0.9rem; margin-bottom:0.9rem; color: var(--paper); }
.cookie-banner a{ color: var(--snow); text-decoration:underline; }
.cookie-actions{ display:flex; gap:0.8rem; flex-wrap:wrap; }
.cookie-actions .btn{ color: var(--snow); border-color: var(--snow); }
.cookie-actions .btn-primary{ background: var(--berry); border-color: var(--berry); }
.cookie-actions .btn-primary::before{ background: var(--snow); }
.cookie-actions .btn-primary:hover{ color: var(--pine-dark); }
.cookie-actions .btn:not(.btn-primary):hover{ color: var(--pine-dark); }

/* ---------------- Footer ---------------- */
.site-footer{ background: var(--pine-dark); color: var(--paper); margin-top: clamp(3rem,6vw,5rem); position:relative; z-index:2;}
.footer-inner{ display:grid; grid-template-columns: 1.2fr 2fr 1.2fr; gap: clamp(1.6rem,4vw,3rem); padding: clamp(2.5rem,5vw,3.5rem) 0 2rem; }
.footer-brand .logo-mark{ color: var(--paper); }
.footer-brand p{ font-size:0.88rem; color: var(--paper-dark); max-width:28ch; margin-top:0.8rem; }
.footer-nav{ display:grid; grid-template-columns: repeat(3, 1fr); gap:1.4rem; }
.footer-col h3{ color: var(--paper); font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; font-family: var(--font-label); margin-bottom:0.8rem; }
.footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.55rem; }
.footer-col a{ color: var(--paper-dark); font-size:0.9rem; }
.footer-col a:hover{ color: var(--snow); }
.footer-newsletter h3{ color: var(--paper); font-family: var(--font-label); font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; }
.footer-newsletter p{ font-size:0.88rem; color: var(--paper-dark); }
.footer-newsletter input{ background: var(--paper); border:1px solid transparent; }
.footer-newsletter .btn{ border-color: var(--snow); color: var(--snow); }
.footer-bottom{ border-top: 1px solid rgba(251,248,239,0.15); padding: 1.2rem 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.6rem; font-size:0.85rem; color: var(--paper-dark); }
.footer-bottom a{ color: var(--paper-dark); }
@media (max-width: 860px){
  .footer-inner{ grid-template-columns: 1fr; }
  .footer-nav{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px){
  .footer-nav{ grid-template-columns: 1fr 1fr; }
}

/* ---------------- 404 ---------------- */
.error-page{ min-height: 60vh; display:flex; align-items:center; justify-content:center; text-align:center; padding: 4rem 0; }
.error-page .err-code{ font-family: var(--font-display); font-size: clamp(4rem,14vw,8rem); color: var(--berry-dark); margin:0; line-height:1; }

/* ---------------- Misc ---------------- */
.two-col{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(1.6rem,4vw,3rem); }
@media (max-width:760px){ .two-col{ grid-template-columns:1fr; } }
.center-head{ text-align:center; margin-left:auto; margin-right:auto; }
