/* ==========================================================================
   Northnavia — main stylesheet
   Design system from the owner's drafts. Written as tokens + classes rather
   than the drafts' inline styles, so there is one source of truth.
   ========================================================================== */

@font-face{font-family:'Montas';src:url('../fonts/Montas-Regular.woff2') format('woff2'),url('../fonts/Montas-Regular.woff') format('woff'),url('../fonts/Montas-Regular.otf') format('opentype');font-weight:400 700;font-style:normal;font-display:swap;}
@font-face{font-family:'Satoshi';src:url('../fonts/Satoshi-Variable.woff2') format('woff2-variations'),url('../fonts/Satoshi-Variable.woff2') format('woff2');font-weight:300 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Satoshi';src:url('../fonts/Satoshi-VariableItalic.woff2') format('woff2-variations');font-weight:300 900;font-style:italic;font-display:swap;}

:root{
  --green:#244940; --green-dark:#1A352E; --green-mid:#34584F;
  --cream:#EDECE7; --sage:#A5A792; --sage-warm:#8F9285;
  --gold:#C4996D; --gold-dark:#A9835C; --gold-light:#CDBAA0;
  --white:#FFFFFF; --off-white:#F4F2EE; --border:#D9D7CE;
  --text:#333333; --text-strong:#1C1C1C; --muted:#6B6B66;
  --ok:#2F7D5F; --warn:#B4741F; --err:#A33A2B;

  --font-display:'Montas',Georgia,'Times New Roman',serif;
  --font-body:'Satoshi','Helvetica Neue',Arial,sans-serif;

  --maxw:1400px;
  --gutter:48px;
  --section-y:72px;
  --radius:0;
  --shadow:0 1px 3px rgba(26,53,46,.08);
  --tr:.18s ease;
}

/* Breakpoints are a build decision (the drafts carry none):
   <=1200 tighten gutters · <=1024 drawer nav · <=760 single column · <=480 compact */
@media (max-width:1200px){ :root{ --gutter:32px; --section-y:56px; } }
@media (max-width:760px){  :root{ --gutter:20px; --section-y:44px; } }
@media (max-width:480px){  :root{ --gutter:16px; --section-y:36px; } }

*,*::before,*::after{box-sizing:border-box;}
/* `clip`, not `hidden`: overflow-x:hidden turns <html> into a scroll container,
   which stops position:sticky working anywhere inside it. `clip` clips without
   that side effect; `hidden` stays first as a fallback for old engines. */
html{-webkit-text-size-adjust:100%;overflow-x:hidden;overflow-x:clip;}
/* Sticky footer: #main absorbs the slack so the green always reaches the bottom
   of the viewport and no white canvas is left under it on a short page. */
body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--text);background:var(--white);
  min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;}
#main{flex:1 0 auto;min-width:0;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--green);}
::selection{background:var(--gold);color:var(--white);}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.15;color:var(--green);margin:0 0 .5em;}
h1{font-size:clamp(28px,4.2vw,52px);} h2{font-size:clamp(23px,2.6vw,36px);} h3{font-size:clamp(18px,1.6vw,22px);}
p{margin:0 0 1em;}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
/* Hidden by clipping, NOT by left:-9999px — an off-screen-left box overflows the
   document horizontally, which is what forced overflow-x:hidden onto <body>. */
.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap;}
.skip-link:focus{left:8px;top:8px;width:auto;height:auto;overflow:visible;clip:auto;clip-path:none;z-index:200;background:var(--white);padding:10px 16px;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}

/* The single alignment contract: header, footer and every page container share
   this box, so their left and right edges line up at any viewport width.
   ⚠ A class used ON THE SAME ELEMENT as .wrap must set padding-top/-bottom as
   LONGHAND. The `padding` shorthand resets padding-left/right to 0 and pushes
   that block's content out to the 1400px edge while the header stays inset. */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);width:100%;}
.section{padding-top:var(--section-y);padding-bottom:var(--section-y);}
.stack>*+*{margin-top:16px;}

/* ---- Buttons ---- */
.btn{display:inline-block;padding:15px 32px;font-size:15px;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;transition:background var(--tr),color var(--tr);border-radius:var(--radius);}
.btn--primary{background:var(--green);color:var(--white);}
.btn--primary:hover{background:var(--green-dark);}
.btn--light{background:var(--cream);color:var(--green);}
.btn--light:hover{background:var(--white);}
.btn--ghost{background:transparent;color:var(--green);border-color:var(--green);}
.btn--ghost:hover{background:var(--green);color:var(--white);}
.btn--block{display:block;width:100%;text-align:center;}
.link-underline{color:var(--green);text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:2px;}

/* ---- Header ---- */
.topbar{background:var(--green);color:var(--cream);font-size:13px;flex:0 0 auto;}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:9px;padding-bottom:9px;flex-wrap:wrap;}
.topbar a{color:var(--cream);text-decoration:none;}
/* No border-bottom: the drafts have no rule under the header. */
.site-header{background:var(--white);position:relative;z-index:50;flex:0 0 auto;}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:20px;padding-bottom:20px;}
.site-logo img{height:38px;width:auto;}
.nav{display:flex;gap:32px;flex-wrap:wrap;}
.nav a{color:var(--green);font-size:15px;font-weight:500;text-decoration:none;padding:4px 0;border-bottom:2px solid transparent;transition:border-color var(--tr);}
.nav a:hover,.nav a[aria-current]{border-bottom-color:var(--gold);}
.header-tools{display:flex;gap:24px;font-size:14px;align-items:center;}
.header-tools a{color:var(--green);text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.cart-count{background:var(--green);color:var(--white);border-radius:999px;font-size:12px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;}
.nav-toggle{display:none;background:none;border:1px solid var(--border);padding:9px 12px;color:var(--green);font:inherit;font-size:14px;align-items:center;gap:8px;}

@media (max-width:1024px){
  .nav{display:none;}
  .nav-toggle{display:inline-flex;}
  .site-header .wrap{gap:12px;}
  .drawer[open] .nav{display:flex;flex-direction:column;gap:0;}
}
@media (max-width:600px){
  .topbar .wrap{justify-content:center;text-align:center;font-size:12px;}
  .topbar .topbar__phone{display:none;}
  .site-logo img{height:30px;}
  .header-tools{gap:16px;}
  .header-tools .label{display:none;}
}

/* ---- Mobile drawer ---- */
.drawer{position:fixed;inset:0;background:var(--white);z-index:100;padding:0;display:none;overflow-y:auto;}
.drawer.is-open{display:block;}
.drawer__head{display:flex;justify-content:space-between;align-items:center;padding:20px var(--gutter);border-bottom:1px solid var(--border);}
.drawer__close{background:none;border:none;font-size:26px;line-height:1;color:var(--green);cursor:pointer;padding:4px 8px;}
.drawer nav{display:flex;flex-direction:column;padding:8px var(--gutter) 40px;}
.drawer nav a{padding:15px 0;border-bottom:1px solid var(--border);color:var(--green);text-decoration:none;font-size:17px;}
body.drawer-open{overflow:hidden;}

/* ---- Hero ---- */
.hero{position:relative;min-height:660px;display:flex;align-items:center;background-color:var(--sage-warm);background-size:cover;background-position:center;overflow:hidden;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,32,28,.82) 0%,rgba(20,32,28,.5) 42%,rgba(20,32,28,.08) 68%,rgba(20,32,28,0) 85%);}
.hero .wrap{position:relative;z-index:1;padding-top:72px;padding-bottom:72px;}
.hero__inner{max-width:520px;}
.hero h1{color:var(--white);margin-bottom:20px;}
.hero p{color:var(--cream);max-width:440px;margin-bottom:32px;}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;}
@media (max-width:760px){
  .hero{min-height:440px;}
  .hero::after{background:linear-gradient(180deg,rgba(20,32,28,.55) 0%,rgba(20,32,28,.8) 100%);}
  .hero__inner{max-width:none;}
  .hero__actions .btn{flex:1 1 100%;text-align:center;}
}

/* ---- Grids ---- */
.grid{display:grid;gap:28px;}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}
@media (max-width:1100px){ .grid--4{grid-template-columns:repeat(3,1fr);} }
@media (max-width:860px){  .grid--4,.grid--3{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){  .grid--4,.grid--3,.grid--2{grid-template-columns:repeat(2,1fr);gap:16px;} }
@media (max-width:380px){  .grid--4,.grid--3{grid-template-columns:1fr;} }


/* ---- Category tiles ---- */

/* ---- Product card ---- */
.stock{font-size:13px;display:inline-flex;align-items:center;gap:7px;}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none;}
.dot--warn{background:var(--warn);} .dot--off{background:var(--sage);}

/* ---- Product page ---- */

/* ---- Category / archive ---- */
.breadcrumb{font-size:13px;color:var(--sage);margin-bottom:0;padding-top:20px;}
.breadcrumb a{color:var(--sage);text-decoration:none;}
.breadcrumb a:hover{color:var(--green);}
.breadcrumb__here{color:var(--text);}

/* ---- Editorial / prose ---- */
.prose{max-width:760px;}
.prose h2{margin-top:1.6em;}
.prose img{margin:1.5em 0;}
.prose ul,.prose ol{padding-left:1.2em;}
.prose li{margin-bottom:.5em;}
.prose blockquote{border-left:3px solid var(--gold);margin:1.5em 0;padding:.2em 0 .2em 1.2em;color:var(--muted);font-style:italic;}
.prose table{width:100%;border-collapse:collapse;margin:1.5em 0;}
.prose th,.prose td{border:1px solid var(--border);padding:10px 12px;text-align:left;font-size:15px;}
.prose th{background:var(--off-white);}

/* Blog card — the drafts' anatomy: 4/3 media, gold uppercase category,
   Montas title, sage read-time. */
.post-card{display:flex;flex-direction:column;gap:14px;text-decoration:none;background:none;height:100%;}
.post-card__media{display:block;aspect-ratio:4/3;background:var(--cream);overflow:hidden;}
.post-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.post-card:hover .post-card__media img{transform:scale(1.03);}
.post-card__tag{font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;}
.post-card__title{font-family:var(--font-display);font-size:18px;color:var(--green);font-weight:500;margin:0;line-height:1.35;}
.post-card__title a{color:inherit;text-decoration:none;}
.post-card__title a:hover{color:var(--gold-dark);}
.post-card__excerpt{font-size:13px;color:var(--text);margin:0;}
.post-card__read{font-size:13px;color:var(--sage);margin-top:auto;}
.meta{font-size:13px;color:var(--muted);}

/* ---- Footer ---- */
/* Matched to the footer shared by 8 of the 10 drafts (see Product Page.dc.html):
   green field, oversized brand mark bleeding off the right at 8%, four flex
   columns with SAGE headings, an outlined withdrawal button, and a bottom bar
   carrying the group attribution beside the copyright. */
.site-footer{background:var(--green);color:var(--cream);position:relative;overflow:hidden;flex:0 0 auto;}
.site-footer a{color:var(--cream);text-decoration:none;}
.site-footer a:hover{color:var(--white);text-decoration:underline;}

/* Decorative watermark. Sized in px to match the draft, pinned to the right edge
   and clipped by the footer's overflow:hidden. */
.site-footer__mark{position:absolute;right:-100px;top:48px;height:480px;width:auto;max-width:none;
  opacity:.08;pointer-events:none;user-select:none;z-index:0;}

.footer-grid{display:flex;flex-wrap:wrap;gap:56px;padding-top:64px;padding-bottom:32px;position:relative;z-index:1;}
.footer-grid > *{flex:1 1 160px;min-width:0;}
.footer-grid > .footer-about{flex:1 1 200px;}
.footer-grid h4{color:var(--sage);font-family:var(--font-body);font-size:13px;font-weight:400;
  letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px;}
.footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.footer-grid li{margin:0;font-size:14px;line-height:1.35;}

.footer-logo img{height:38px;width:auto;margin-bottom:16px;}
.footer-about__where{font-size:13px;color:var(--sage);max-width:220px;margin:0 0 12px;}
.footer-about__contact{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--cream);}

/* Outlined statutory-withdrawal button. */
.footer-withdraw{display:inline-block;width:fit-content;margin-top:14px;
  border:2px solid var(--cream);color:var(--cream);padding:9px 16px;font-size:13px;text-decoration:none;
  transition:background var(--tr),color var(--tr);}
.footer-withdraw:hover{background:var(--cream);color:var(--green);text-decoration:none;}

.footer-bottom{border-top:2px solid var(--green-mid);padding-top:24px;padding-bottom:24px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  font-size:12px;color:var(--sage);position:relative;z-index:1;}
.footer-bottom__left{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.footer-bottom__sep{width:1px;height:14px;background:var(--green-mid);flex:none;}
.footer-bottom__group{display:flex;align-items:center;gap:8px;}
.footer-bottom__group img{height:14px;width:auto;opacity:.85;display:block;}
/* "Osa Nordhauser grupist" links to the group site. Inherits the footer's muted
   sage so it reads as a credit line, not a call to action; the underline only
   appears on hover. On the main footer the whole group — wording and mark — is
   one target. */
.footer-group-link{color:inherit;text-decoration:none;}
.footer-group-link:hover,.footer-group-link:focus-visible{color:var(--cream);text-decoration:underline;}
.footer-group-link:hover img{opacity:1;}
.footer-pay{height:16px;width:auto;display:block;opacity:.7;}

@media (max-width:900px){
  .footer-grid{gap:40px;}
  .site-footer__mark{height:360px;right:-120px;}
}
@media (max-width:520px){
  .footer-grid{gap:28px;padding-top:44px;padding-bottom:28px;}
  .footer-grid > *,.footer-grid > .footer-about{flex:1 1 100%;}
  .site-footer__mark{height:260px;right:-90px;top:24px;opacity:.06;}
  .footer-bottom{padding-top:20px;padding-bottom:20px;}
  .footer-bottom__left{gap:10px;}
  .footer-bottom__sep{display:none;}
}

/* ---- Notices / misc ---- */
.notice{border-left:3px solid var(--gold);background:var(--off-white);padding:14px 18px;margin:0 0 20px;}

/* ==========================================================================
   CART + CHECKOUT — follows the Cart / Checkout drafts
   ========================================================================== */
/* ==========================================================================
   CART — matched to "Northnavia Cart Page.dc.html"
   Item rows separated by 2px cream rules, a cream summary card with the coupon
   at the top, and a cross-sell row carrying its own add-to-cart buttons.
   ========================================================================== */
/* WooCommerce shortcode pages get the full container (see page.php). */
.page-wide{padding-top:32px;padding-bottom:96px;}
.page-title{font-family:var(--font-display);font-size:clamp(26px,3vw,34px);font-weight:500;color:var(--green);margin:0 0 36px;}

/* align-items MUST stay stretch: with flex-start the <aside> is only as tall as
   the summary card, so position:sticky on that card has nowhere to move. */
.cart-layout{display:flex;gap:64px;flex-wrap:wrap;align-items:stretch;}
.cart-layout > *:first-child{flex:1 1 600px;min-width:0;}
.cart-layout > aside{flex:1 1 320px;max-width:380px;min-width:280px;}

.cart-line{display:flex;gap:20px;padding:28px 0;border-top:2px solid var(--cream);border-bottom:none;align-items:flex-start;}
.cart-line > div:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.cart-lines__end{border-top:2px solid var(--cream);}
.cart-line__img{width:100px;height:100px;flex:none;object-fit:cover;background:var(--cream);}
.cart-line__sku{font-size:11px;color:var(--sage);text-transform:uppercase;letter-spacing:.04em;}
.cart-line__name{font-size:15px;line-height:1.4;color:var(--text);font-weight:400;margin:0;}
.cart-line__name a{color:var(--text);text-decoration:none;}
.cart-line__name a:hover{color:var(--green);}
.cart-line__variant{font-size:13px;color:var(--sage);}
.cart-line__delivery{font-size:12px;color:var(--green);margin-top:2px;}
.cart-line__controls{display:flex;align-items:center;gap:20px;margin-top:10px;flex-wrap:wrap;}
/* The draft's cart stepper is smaller than the buybox one. */
.cart-line .qty button{width:30px;height:34px;font-size:16px;}
.cart-line .qty input{width:30px;height:34px;font-size:14px;}
.cart-line__remove{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--sage);text-decoration:underline;cursor:pointer;}
.cart-line__remove:hover{color:var(--green);}
.cart-line__total{font-size:16px;font-weight:500;color:var(--green);white-space:nowrap;text-align:right;}

/* Order note: cream field, no border. */
.cart-note{margin-top:36px;}
.cart-note label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:10px;}
.cart-note textarea{width:100%;max-width:480px;background:var(--cream);border:none;border-radius:0;
  padding:13px 14px;font:inherit;font-size:14px;color:var(--text);resize:vertical;}
.cart-note textarea:focus{outline:2px solid var(--green);outline-offset:-2px;}
.cart-note textarea::placeholder{color:var(--sage);}
.cart-update{margin-top:20px;}

/* Summary: cream card, coupon on top, serif total. */
/* The card AND the trust lines under it travel together, so sticky lives on the
   wrapper — not on the card, which would leave the list behind. */
.summary-sticky{position:sticky;top:24px;}
.summary-card{background:var(--cream);border:none;padding:32px;}
.summary-card__eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--sage);margin-bottom:20px;}
.coupon{display:flex;gap:10px;margin:0 0 20px;}
.coupon input{flex:1;min-width:0;background:var(--white);border:none;border-bottom:2px solid transparent;
  padding:11px 12px;font:inherit;font-size:14px;color:var(--text);border-radius:0;}
.coupon input:focus{outline:none;border-bottom-color:var(--green);}
.coupon input::placeholder{color:var(--sage);}
.coupon button{background:var(--green);color:var(--cream);border:none;padding:0 18px;font:inherit;font-size:13px;
  text-transform:uppercase;letter-spacing:.03em;cursor:pointer;}
.coupon button:hover{background:var(--green-dark);}

.sum-rows{display:flex;flex-direction:column;gap:12px;font-size:14px;padding-bottom:20px;border-bottom:2px solid var(--white);}
.sum-row{display:flex;justify-content:space-between;gap:12px;padding:0;}
.sum-row__k{color:var(--sage);}
.sum-row--coupon{color:var(--green);}
.sum-row--total{align-items:baseline;padding:20px 0 6px;border:none;margin:0;font-size:15px;font-weight:400;color:var(--text);}
.sum-total{font-family:var(--font-display);font-size:24px;color:var(--green);font-weight:500;}
.sum-total .woocommerce-Price-amount{white-space:nowrap;}
.sum-note{font-size:12px;color:var(--sage);margin:0;padding-bottom:28px;}

.summary-card .checkout-button,
.summary-card .btn--primary{display:block;width:100%;text-align:center;padding:16px;font-size:14px;letter-spacing:.04em;}

/* Inside the cream summary card, below the checkout button, over a 2px white rule —
   exactly as the Cart draft has it. */
.trust-list{list-style:none;margin:28px 0 0;padding:24px 0 0;border:none;border-top:2px solid var(--white);
  display:flex;flex-direction:column;gap:16px;}
.trust-list li{display:flex;gap:10px;font-size:13px;font-weight:500;color:var(--text);margin:0;align-items:flex-start;}
.trust-list li::before{content:"";width:8px;height:8px;background:var(--gold);flex:none;margin-top:5px;}

/* Empty cart: centred under a single rule, per the draft. */
.cart-empty{text-align:center;padding:64px 0;border:none;border-top:2px solid var(--cream);}
.cart-empty p{font-size:16px;color:var(--text);margin:0 0 24px;}
.cart-empty .btn{padding:14px 32px;font-size:14px;letter-spacing:.04em;}

/* Cross-sells under the cart. */
.cart-cross{margin-top:80px;}
.cart-cross h2{font-family:var(--font-display);font-size:24px;color:var(--green);font-weight:500;margin:0 0 6px;}
.cart-cross__lede{font-size:14px;color:var(--sage);margin:0 0 28px;}
.cart-cross__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px;}
.cross-card{display:flex;flex-direction:column;gap:10px;min-width:0;}
.cross-card__media{display:block;aspect-ratio:1;background:var(--cream);overflow:hidden;}
.cross-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.cross-card__sku{font-size:11px;color:var(--sage);text-transform:uppercase;letter-spacing:.04em;}
.cross-card__name{font-size:14px;line-height:1.4;min-height:38px;}
.cross-card__name a{color:var(--text);text-decoration:none;}
.cross-card__name a:hover{color:var(--green);}
.cross-card__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;flex-wrap:wrap;}
.cross-card__price{font-size:15px;font-weight:500;color:var(--green);}
.cross-card__price del{color:var(--sage);font-weight:400;font-size:.85em;margin-right:6px;}
.cross-card__price ins{text-decoration:none;background:none;}
.cross-card__add{background:var(--white);border:2px solid var(--green);color:var(--green);padding:8px 14px;font-size:12px;
  text-transform:uppercase;letter-spacing:.03em;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background var(--tr),color var(--tr);}
.cross-card__add:hover{background:var(--green);color:var(--cream);}

@media (max-width:980px){
  .cart-layout{gap:32px;}
  .cart-layout > aside{max-width:none;}
  .summary-sticky{position:static;}
}
@media (max-width:600px){
  .page-wide{padding-bottom:56px;}
  .page-title{margin-bottom:24px;}
  .cart-line{gap:14px;padding:20px 0;flex-wrap:wrap;}
  .cart-line__img{width:72px;height:72px;}
  .cart-line__total{width:100%;text-align:left;}
  .cart-line__controls{gap:14px;}
  .summary-card{padding:24px 20px;}
  .cart-cross{margin-top:48px;}
  .cart-cross__grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .cross-card__name{min-height:0;}
  .cross-card__foot{flex-direction:column;align-items:flex-start;}
}

/* Checkout */
/* ==========================================================================
   CHECKOUT — matched to "Northnavia Checkout Page.dc.html"
   Numbered sections using WooCommerce's OWN field set, radio cards for shipping
   and payment, and a cream order card carrying the coupon (as on the cart).
   ========================================================================== */
/* Lean checkout chrome: logo + step indicator, nothing else. */
.site-header--lean{border-bottom:2px solid var(--cream);}
.site-header--lean .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  padding-top:22px;padding-bottom:22px;}
.site-header--lean .site-logo img{height:34px;}
.site-footer--lean .footer-bottom{border-top:none;padding-top:28px;padding-bottom:28px;}

.checkout-steps{display:flex;gap:16px;align-items:center;font-size:13px;color:var(--sage);margin:0;flex-wrap:wrap;}
.checkout-steps a{color:var(--sage);text-decoration:none;}
.checkout-steps a:hover{color:var(--green);}
.checkout-steps b{color:var(--green);font-weight:600;}
.checkout-steps__rule{width:24px;height:1px;background:var(--sage);flex:none;}

.woocommerce-checkout .wrap.page-wide{padding-top:48px;padding-bottom:112px;}
.woocommerce-checkout .cart-layout{gap:64px;}
.woocommerce-checkout .cart-layout > *:first-child{flex:1 1 560px;}
.woocommerce-checkout .cart-layout > aside{flex:1 1 340px;max-width:380px;min-width:280px;}

.co-sec{margin-bottom:44px;}
.co-sec:last-child{margin-bottom:0;}
.co-sec__num{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--sage);margin-bottom:6px;}
.co-sec__title{font-family:var(--font-display);font-size:20px;color:var(--green);font-weight:500;margin:0 0 22px;}

/* WooCommerce renders its own <h3> inside the billing / shipping blocks; the
   numbered heading above already says what the section is. The ship-to-different
   heading is a LABEL, so it must survive. */
.co-fields > .woocommerce-billing-fields > h3,
.co-fields > .woocommerce-additional-fields > h3{display:none;}
.co-fields h3#ship-to-different-address{font-family:var(--font-body);font-size:14px;font-weight:400;color:var(--text);margin:0 0 16px;}
.co-fields h3#ship-to-different-address label{display:flex;align-items:center;gap:10px;cursor:pointer;margin:0;}
.co-fields h3#ship-to-different-address input{width:18px;height:18px;accent-color:var(--green);flex:none;}

.co-fields{display:flex;flex-direction:column;gap:20px;}
.co-fields > *{min-width:0;}
/* A fixed TWO-column grid, not auto-fit: WooCommerce marks only first/last name
   as half-width (form-row-first / form-row-last) and everything else wide, so the
   track count has to be 2 for the name pair to add up to one full-width field.
   With auto-fit they became a third each on a wide column. */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.woocommerce form .form-row{margin:0;padding:0;min-width:0;}
.form-row-wide,.form-row.notes{grid-column:1 / -1;}
.form-row-first{grid-column:1 / 2;}
.form-row-last{grid-column:2 / 3;}
.woocommerce-input-wrapper{display:block;width:100%;}
.woocommerce form .form-row label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:8px;}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .form-row .select2-selection{
  width:100%;background:var(--cream);border:none;border-bottom:2px solid transparent;border-radius:0;
  padding:13px 14px;font:inherit;font-size:15px;color:var(--text);}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{outline:none;border-bottom-color:var(--green);}

/* --- select2 / selectWoo, used for Riik and Maakond --- */
.woocommerce form .form-row .select2-container{display:block;width:100%!important;max-width:100%;}
.woocommerce form .form-row .select2-container .select2-selection--single{width:100%;max-width:100%;box-sizing:border-box;}
.select2-container--default .select2-selection--single{
  height:auto;min-height:0;background:var(--cream);border:none;border-bottom:2px solid transparent;border-radius:0;}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  padding:13px 34px 13px 14px;line-height:1.5;font-size:15px;color:var(--text);}
.select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--sage);}
.select2-container--default .select2-selection--single .select2-selection__arrow{
  height:100%;top:0;right:12px;width:12px;}
.select2-container--default .select2-selection--single .select2-selection__arrow b{
  border-color:var(--green) transparent transparent;border-width:5px 5px 0;margin-left:-5px;}
.select2-container--default.select2-container--open .select2-selection--single{border-bottom-color:var(--green);}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{
  border-color:transparent transparent var(--green);border-width:0 5px 5px;}
.select2-container--default .select2-selection--single:focus{outline:2px solid var(--gold);outline-offset:2px;}
/* Dropdown panel */
.select2-dropdown{border:2px solid var(--green);border-radius:0;background:var(--white);}
.select2-container--default .select2-search--dropdown .select2-search__field{
  border:none;background:var(--cream);padding:10px 12px;font:inherit;font-size:14px;border-radius:0;}
.select2-container--default .select2-results__option{font-size:14px;padding:9px 12px;}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected]{background:var(--green);color:var(--cream);}
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option[data-selected=true]{background:var(--cream);color:var(--green);}
.woocommerce form .form-row ::placeholder{color:var(--sage);}
.woocommerce form .form-row textarea{min-height:100px;resize:vertical;}

/* Shipping + payment: the draft's radio cards. */
.woocommerce-shipping-methods,.wc_payment_methods{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.woocommerce-shipping-methods li,.wc_payment_methods li{border:2px solid var(--cream);background:var(--cream);
  padding:18px 20px;margin:0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.woocommerce-shipping-methods li:has(input:checked),
.wc_payment_methods li:has(input:checked){border-color:var(--green);background:var(--white);}
.woocommerce-shipping-methods input[type=radio],.wc_payment_methods input[type=radio]{width:16px;height:16px;accent-color:var(--green);flex:none;margin:0;}
.woocommerce-shipping-methods label,.wc_payment_methods label{flex:1;min-width:0;margin:0;font-size:15px;font-weight:500;color:var(--text);cursor:pointer;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;text-transform:none;letter-spacing:0;}
.wc_payment_method .payment_box{flex:1 1 100%;background:var(--cream);padding:20px;margin:0;font-size:14px;color:var(--text);}
.wc_payment_method .payment_box p:last-child{margin-bottom:0;}
.wc_payment_method img{max-height:24px;width:auto;display:inline-block;}

.woocommerce-terms-and-conditions-wrapper{margin:28px 0;}
.woocommerce-terms-and-conditions-wrapper label{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:var(--text);cursor:pointer;}
.woocommerce-terms-and-conditions-wrapper input[type=checkbox]{width:18px;height:18px;margin-top:1px;accent-color:var(--green);flex:none;}
.place-order .btn,#place_order{display:block;width:100%;text-align:center;padding:18px;font-size:15px;letter-spacing:.04em;}

/* Order card: same cream panel as the cart's summary. */
.co-order{background:var(--cream);border:none;padding:32px;}
.co-order__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;}
.co-order__head .summary-card__eyebrow{margin:0;}
.co-order__edit{font-size:13px;color:var(--green);text-decoration:underline;}
.co-order__lines{display:flex;flex-direction:column;gap:16px;padding-bottom:20px;border-bottom:2px solid var(--white);}
.co-order__line{display:flex;gap:14px;align-items:flex-start;padding:0;border:none;font-size:13px;}
.co-order__line img{width:56px;height:56px;object-fit:cover;background:var(--white);flex:none;}
.co-order__meta{flex:1;min-width:0;}
.co-order__name{font-size:13px;line-height:1.4;color:var(--text);}
.co-order__qty{font-size:12px;color:var(--sage);}
.co-order__total{font-size:13px;font-weight:500;color:var(--green);white-space:nowrap;}
.co-order .sum-rows{padding:20px 0;border-bottom:2px solid var(--white);border-top:none;}
.co-order .sum-row--total{padding:20px 0 0;}
.co-order .sum-note{padding-bottom:0;margin-top:4px;}
.co-order .coupon{margin:0 0 20px;}

.secure-note{font-size:12px;color:var(--sage);margin-top:14px;}

@media (max-width:980px){ .summary-sticky{position:static;} }
@media (max-width:600px){
  .co-sec{margin-bottom:32px;}
  .co-fields{gap:16px;}
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper,
  .woocommerce-additional-fields__field-wrapper{grid-template-columns:1fr;gap:16px;}
  .form-row-first,.form-row-last{grid-column:1 / -1;}
  .co-order{padding:24px 20px;}
  .woocommerce-shipping-methods li,.wc_payment_methods li{padding:14px 16px;gap:12px;}
}

/* ==========================================================================
   CONTACT / BLOG / LEGAL — follows the Contact, Blog and Legal drafts
   ========================================================================== */
/* ==========================================================================
   CONTACT — matched to "Northnavia Contact Page.dc.html"
   Centred intro · details rail beside a cream form card · cream KKK band.
   ========================================================================== */
.contact-intro{max-width:720px;margin:20px auto 0;padding:72px var(--gutter) 0;text-align:center;}
.contact-intro h1{font-family:var(--font-display);font-size:clamp(28px,3.6vw,40px);font-weight:500;color:var(--green);margin:0 0 20px;line-height:1.25;}
.contact-intro__lede{font-size:17px;color:var(--text);line-height:1.7;}
.contact-intro__lede p{margin:0 0 .8em;}
.contact-intro__lede p:last-child{margin-bottom:0;}

.contact{display:flex;gap:72px;flex-wrap:wrap;padding-top:72px;padding-bottom:112px;align-items:flex-start;}
.contact__rail{flex:1 1 300px;min-width:260px;}
.contact__form{flex:1 1 420px;min-width:300px;max-width:600px;}
.contact__eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--sage);margin-bottom:24px;}

.contact-items{display:flex;flex-direction:column;gap:26px;}
.contact-item{display:flex;gap:12px;}
.contact-item__dot{width:8px;height:8px;background:var(--gold);margin-top:7px;flex:none;}
.contact-item__k{display:block;font-size:13px;color:var(--sage);margin-bottom:2px;}
.contact-item__v{display:block;font-size:16px;color:var(--green);font-weight:500;line-height:1.5;text-decoration:none;overflow-wrap:anywhere;}
a.contact-item__v:hover{color:var(--green-dark);text-decoration:underline;}

.contact__block{margin-top:32px;padding-top:24px;border-top:2px solid var(--cream);}
.contact__block:first-of-type{margin-top:44px;}
.contact__block .contact__eyebrow{margin-bottom:18px;}
.contact__legal{font-size:13px;color:var(--sage);line-height:1.7;margin:0;}
.contact-links{display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.contact-links a{color:var(--green);font-size:15px;text-decoration:none;}
.contact-links a:hover{color:var(--green-dark);}
.contact-links__accent{border-bottom:2px solid var(--gold);width:fit-content;padding-bottom:1px;}

/* Form card: cream panel, white fields with only a focus underline. */
.form-card{background:var(--cream);border:none;padding:48px;}
.form-card h2{font-family:var(--font-display);font-size:22px;color:var(--green);font-weight:500;margin:0 0 8px;}
.form-card .lede{font-size:14px;color:var(--text);margin:0 0 28px;}
.form-card form{display:flex;flex-direction:column;gap:20px;}
.field{margin:0;}
.field label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:8px;}
.field input,.field textarea{width:100%;background:var(--white);border:none;border-bottom:2px solid transparent;
  padding:13px 14px;font:inherit;font-size:15px;color:var(--text);border-radius:0;}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--green);}
.field input::placeholder,.field textarea::placeholder{color:var(--sage);}
.field textarea{min-height:120px;resize:vertical;}
.field--half{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin:0;}
/* Honeypot. Hidden by CLIPPING, never by left:-9999px — an off-screen-left box
   overflows the document horizontally (see .skip-link). It must stay in the DOM
   and stay submittable: a bot fills it, a human never sees it. */
.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap;margin:0;}

/* Attachment: a dashed drop area; the native file input is hidden behind it. */
.field--file .filedrop{display:flex;align-items:center;gap:12px;background:var(--white);border:2px dashed var(--sage);
  padding:16px;cursor:pointer;font-size:14px;color:var(--sage);margin:0;text-transform:none;letter-spacing:0;}
.field--file .filedrop:hover{border-color:var(--green);color:var(--green);}
.field--file .filedrop input[type=file]{position:absolute;width:1px;height:1px;opacity:0;}
.field--file .filedrop:focus-within{border-color:var(--green);outline:2px solid var(--gold);outline-offset:2px;}
.filedrop__label{overflow-wrap:anywhere;}
.filedrop.has-file{border-style:solid;border-color:var(--green);color:var(--green);}

.form-card__submit{align-self:flex-start;margin-top:8px;padding:16px 32px;font-size:14px;letter-spacing:.06em;
  background:var(--green);color:var(--cream);border:none;}
.form-card__submit:hover{background:var(--green-dark);}

.form-ok{min-height:280px;display:flex;flex-direction:column;justify-content:center;background:none;border:none;padding:0;margin:0;}
.form-ok__dot{width:8px;height:8px;background:var(--gold);margin-bottom:18px;display:block;}
.form-ok h2{margin:0 0 12px;}
.form-ok p{font-size:15px;color:var(--text);margin:0;}
.form-err{background:var(--white);border-left:3px solid var(--err);padding:14px;margin:0 0 18px;font-size:14px;}

/* KKK — full-bleed cream band, narrow measure, centred heading. */
.faq-band{background:var(--cream);width:100%;}
.faq-band .wrap{max-width:900px;padding-top:112px;padding-bottom:112px;}
.faq-head{text-align:center;margin-bottom:48px;}
.faq-head h2{font-family:var(--font-display);font-size:clamp(26px,3vw,32px);color:var(--green);font-weight:500;margin:0;}
.faq{border-top:none;max-width:none;}
.faq__item{border-top:2px solid var(--border);border-bottom:none;}
.faq__item:last-child{border-bottom:2px solid var(--border);}
.faq__q{width:100%;background:none;border:none;text-align:left;padding:24px 4px;font-family:var(--font-display);
  font-size:17px;font-weight:500;color:var(--green);cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;}
.faq__q::after{content:"+";font-size:20px;line-height:1;color:var(--gold);flex:none;}
.faq__q[aria-expanded="true"]::after{content:"−";}
.faq__a{padding:0 4px 28px;color:var(--text);max-width:680px;font-size:15px;line-height:1.7;}
.faq__a p{margin:0;}
.faq__a[hidden]{display:none;}

@media (max-width:900px){
  .contact{gap:40px;padding-top:48px;padding-bottom:64px;}
  .contact__form{max-width:none;}
  .contact-intro{padding-top:48px;}
  .faq-band .wrap{padding-top:64px;padding-bottom:64px;}
  .faq-head{margin-bottom:32px;}
}
@media (max-width:600px){
  .contact-intro{padding-top:36px;}
  .contact-intro__lede{font-size:16px;}
  .form-card{padding:24px 20px;}
  .form-card__submit{align-self:stretch;text-align:center;}
  .faq-band .wrap{padding-top:48px;padding-bottom:48px;}
  .faq__q{font-size:16px;gap:16px;padding:20px 0;}
  .faq__a{padding:0 0 24px;}
}

/* Blog */
.tag{display:inline-block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:10px;}
.readtime{font-size:13px;color:var(--sage);}

/* Article */
.article{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start;}
@media (max-width:980px){ .article{grid-template-columns:1fr;gap:24px;} .toc{position:static!important;} }
.toc{position:sticky;top:24px;font-size:14px;}
.toc h2{font-family:var(--font-body);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:toc;}
.toc li{margin-bottom:9px;counter-increment:toc;}
.toc a{color:var(--text);text-decoration:none;display:flex;gap:8px;}
.toc a::before{content:counter(toc,decimal-leading-zero);color:var(--sage);flex:none;}
.toc a:hover{color:var(--green);}
.article__lede{font-size:18px;color:var(--muted);margin-bottom:28px;max-width:720px;}
.story-products{background:var(--off-white);padding:28px;margin:40px 0;}
.story-products h2{font-size:20px;margin-bottom:4px;}
.story-products p{color:var(--muted);font-size:14px;margin-bottom:20px;}

/* ==========================================================================
   FRONT PAGE — matched to "Northnavia Front Page.dc.html"
   Full-bleed bands (white / cream / green), a 112px section rhythm, category
   tiles with the label UNDER the image, and a two-column Lõppmüük band.
   ========================================================================== */

/* Bands + rhythm. The front page runs 112px, not the 72px used elsewhere. */
.fp-band{width:100%;}
.fp-band--white{background:var(--white);}
.fp-band--cream{background:var(--cream);}
.fp-band--green{background:var(--green);}
.fp-sec{padding-top:112px;padding-bottom:112px;}

.eyebrow{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-bottom:8px;}
.fp-title{font-family:var(--font-display);font-size:clamp(26px,3vw,32px);color:var(--green);font-weight:500;margin:0 0 48px;max-width:520px;}
.fp-title--flush{margin-bottom:0;}
.fp-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:16px;margin-bottom:48px;}

.arrow-link{display:inline-block;color:var(--green);text-decoration:none;font-size:15px;white-space:nowrap;
  border-bottom:2px solid var(--green);padding-bottom:2px;flex-shrink:0;}
.arrow-link:hover{color:var(--green-dark);border-bottom-color:var(--green-dark);}

/* ---- Hero ---- */
.hero h1{font-size:clamp(34px,4.2vw,52px);}
.hero__link{color:var(--cream);padding:15px 8px;font-size:15px;text-decoration:none;border-bottom:2px solid var(--gold);}
.hero__link:hover{color:var(--white);}

/* ---- USP strip: cream, no rule under it ---- */
.usp{background:var(--cream);}
.usp__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;padding-top:40px;padding-bottom:40px;}
.usp__item{display:flex;gap:12px;}
.usp__dot{width:8px;height:8px;background:var(--gold);margin-top:6px;flex:none;}
.usp__t{font-size:14px;font-weight:500;color:var(--green);display:block;}
.usp__s{font-size:13px;color:var(--sage);display:block;}

/* ---- Categories: 4/5 media, label UNDERNEATH (no gradient overlay) ---- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:36px;}
.cat-tile{display:flex;flex-direction:column;gap:16px;text-decoration:none;color:inherit;background:none;}
.cat-tile__media{display:block;aspect-ratio:4/5;background:var(--cream);overflow:hidden;}
.cat-tile__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.cat-tile:hover .cat-tile__media img{transform:scale(1.04);}
.cat-tile__label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.cat-tile__name{font-family:var(--font-display);font-size:17px;color:var(--green);font-weight:500;transition:color var(--tr);}
.cat-tile:hover .cat-tile__name{color:var(--gold);}
.cat-tile__arrow{color:var(--gold);font-size:16px;line-height:1;}

/* ---- Bestsellers: auto-filling grid on the cream band ---- */
ul.products.fp-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:32px;margin:0 0 48px;}
.fp-band--cream .card__media{background:var(--white);}

/* ---- Lõppmüük: copy on the left, a 2x2 of dark cards on the right ---- */
.sale-split{display:flex;gap:64px;flex-wrap:wrap;align-items:flex-start;}
.sale-split__copy{flex:1 1 380px;min-width:0;}
.fp-band--green .eyebrow{color:var(--gold);margin-bottom:16px;}
.sale-title{font-family:var(--font-display);font-size:clamp(26px,3vw,34px);color:var(--cream);font-weight:500;margin:0 0 20px;line-height:1.2;}
.sale-lede{font-size:16px;color:var(--sage);margin:0 0 32px;max-width:400px;}
.btn--gold{background:var(--gold);color:var(--text-strong);}
.btn--gold:hover{background:var(--gold-light);color:var(--text-strong);}

.sale-grid{flex:1 1 420px;min-width:0;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.sale-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;min-width:0;}
.sale-card__media{display:block;aspect-ratio:1;background:#2F5850;overflow:hidden;}
.sale-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.sale-card__name{font-size:12px;line-height:1.4;color:var(--cream);min-height:34px;}
.sale-card:hover .sale-card__name{color:var(--white);}
.sale-card__price{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;}
.sale-card__now{font-size:14px;font-weight:500;color:var(--gold);}
.sale-card__now .woocommerce-Price-amount{white-space:nowrap;}
.sale-card__was{font-size:12px;color:var(--sage);text-decoration:line-through;}

/* ---- Blog teaser ---- */
/* Four teasers, four columns — stated, not inferred. `auto-fill minmax(280px,1fr)`
   resolves to 4 tracks at the 1400px max-width, so the old 3-post query left a
   visibly empty fourth slot; and because the track count moved with the viewport,
   any fixed post count was wrong at some width. The column count is now fixed per
   breakpoint and front-page.php asks for exactly that many posts. */
.blog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;}

@media (max-width:1100px){
  .fp-sec{padding-top:88px;padding-bottom:88px;}
  .sale-split{gap:40px;}
  .blog-grid{grid-template-columns:repeat(2,1fr);gap:28px;}
}
@media (max-width:900px){
  .fp-sec{padding-top:64px;padding-bottom:64px;}
  .fp-title{margin-bottom:32px;}
  .fp-head{margin-bottom:32px;}
  .cat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px;}
  ul.products.fp-products{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px;margin-bottom:32px;}
  .blog-grid{grid-template-columns:repeat(2,1fr);gap:28px;}
}
@media (max-width:600px){
  .fp-sec{padding-top:48px;padding-bottom:48px;}
  .usp__grid{gap:18px;padding-top:28px;padding-bottom:28px;}
  .cat-grid,ul.products.fp-products{grid-template-columns:repeat(2,1fr);gap:16px;}
  .blog-grid{grid-template-columns:1fr;gap:28px;}
  .sale-split{gap:32px;}
  .sale-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .sale-split__copy .btn{width:100%;text-align:center;}
}

/* ---- Category filter panel (Category Page draft) ---- */

/* ==========================================================================
   WooCommerce chrome — replacements for the dequeued core stylesheets.
   Everything below styles markup WooCommerce emits that the theme does not
   template itself. Add to this rather than re-enabling woocommerce.css.
   ========================================================================== */

/* Shop bar: result count + ordering */
.woocommerce-result-count{margin:0;color:var(--sage);font-size:14px;}
.woocommerce-ordering{margin:0;}
.woocommerce-ordering select,
.woocommerce-ordering .orderby{
  padding:10px 34px 10px 14px;border:2px solid var(--green);background:var(--white);
  font:inherit;font-size:14px;color:var(--green);border-radius:0;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--green) 50%),linear-gradient(135deg,var(--green) 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}

/* The product loop is CSS Grid; strip WooCommerce's list semantics. */
ul.products{list-style:none;margin:0;padding:0;}
ul.products li.product{margin:0;float:none;width:auto;}

/* Prices */
.woocommerce-Price-amount{white-space:nowrap;}
.card__price del,.pdp__price del{color:var(--muted);font-weight:400;font-size:.8em;margin-right:6px;}
.card__price ins,.pdp__price ins{text-decoration:none;background:none;}
.price{font-size:30px;color:var(--green);font-weight:600;margin:0 0 4px;}
.price del{font-size:.6em;}


/* Notices */
.woocommerce-notices-wrapper:empty{display:none;}
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  list-style:none;border-left:3px solid var(--gold);background:var(--off-white);
  padding:14px 18px;margin:0 0 20px;font-size:15px;display:flex;justify-content:space-between;
  align-items:center;gap:16px;flex-wrap:wrap;}
.woocommerce-message{border-left-color:var(--ok);}
.woocommerce-error{border-left-color:var(--err);}
.woocommerce-error li{list-style:none;}
.woocommerce-message .button,.woocommerce-info .button{
  background:var(--green);color:var(--white);padding:10px 18px;text-decoration:none;font-size:14px;}

/* Stock line WooCommerce prints above the buybox */
p.stock{font-size:14px;margin:0 0 10px;}
p.stock.out-of-stock{color:var(--err);}

/* Star rating */
.star-rating{display:inline-block;color:var(--gold);font-size:14px;}

/* Empty cart message from WooCommerce itself */
.wc-empty-cart-message{margin:0;}
.cart-empty .woocommerce-info{justify-content:center;}

/* Forms WooCommerce renders that the theme does not template */
.woocommerce form .form-row .required{color:var(--err);text-decoration:none;}
.woocommerce form .form-row.woocommerce-invalid input.input-text{border-color:var(--err);}
.woocommerce .quantity input[type=number]{width:56px;border:none;text-align:center;font:inherit;padding:14px 0;}
.woocommerce .quantity{display:flex;}

/* ---- Order confirmation (Order Confirmation draft) ---- */
/* ==========================================================================
   ORDER CONFIRMATION — matched to "Northnavia Order Confirmation Page.dc.html"
   One centred 900px column: celebratory heading, then a single cream card.
   ========================================================================== */
.woocommerce-order-received .wrap.page-wide{max-width:900px;padding-top:0;padding-bottom:112px;}
.conf__head{text-align:center;padding:80px 0 32px;position:relative;}
.conf__head h1{font-family:var(--font-display);font-size:clamp(28px,3.4vw,38px);font-weight:500;color:var(--green);
  margin:0 0 14px;position:relative;z-index:1;}
.conf__order{font-size:16px;color:var(--text);margin:0 0 4px;}
.conf__email{font-size:15px;color:var(--sage);margin:0;}

/* Confetti. Decorative only: aria-hidden in the markup, and it does not run for
   anyone who has asked for reduced motion. */
.conf__confetti{position:absolute;inset:-20px 0 auto;height:200px;pointer-events:none;overflow:hidden;}
.conf__bit{position:absolute;top:-24px;width:9px;height:14px;border-radius:0 60% 0 60%;opacity:0;
  animation:nn-confetti 3.4s ease-in infinite;}
@keyframes nn-confetti{
  0%{opacity:0;transform:translateY(-10px) rotate(0deg);}
  10%{opacity:1;}
  100%{opacity:0;transform:translateY(200px) rotate(320deg);}
}
.conf__bit--1{left:4%;background:var(--gold);animation-delay:.0s;}
.conf__bit--2{left:12%;background:var(--green);animation-delay:.7s;}
.conf__bit--3{left:19%;background:var(--gold-light);animation-delay:1.4s;}
.conf__bit--4{left:27%;background:var(--gold);animation-delay:.3s;}
.conf__bit--5{left:34%;background:var(--green-mid);animation-delay:2.1s;}
.conf__bit--6{left:42%;background:var(--gold-light);animation-delay:1.1s;}
.conf__bit--7{left:49%;background:var(--gold);animation-delay:2.6s;}
.conf__bit--8{left:57%;background:var(--green);animation-delay:.5s;}
.conf__bit--9{left:64%;background:var(--gold-light);animation-delay:1.8s;}
.conf__bit--10{left:71%;background:var(--gold);animation-delay:.9s;}
.conf__bit--11{left:78%;background:var(--green-mid);animation-delay:2.3s;}
.conf__bit--12{left:85%;background:var(--gold-light);animation-delay:1.6s;}
.conf__bit--13{left:91%;background:var(--gold);animation-delay:.2s;}
.conf__bit--14{left:96%;background:var(--green);animation-delay:2.9s;}
@media (prefers-reduced-motion:reduce){ .conf__confetti{display:none;} }

.conf-card{background:var(--cream);padding:40px;}
.conf-card__head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:24px;
  margin-bottom:28px;padding-bottom:28px;border-bottom:2px solid var(--white);}
.conf-fact__k{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);margin-bottom:6px;}
.conf-fact__v{font-size:15px;font-weight:500;color:var(--text);}
.conf-card__invoice{display:inline-block;border:2px solid var(--green);color:var(--green);padding:12px 24px;
  font-size:13px;text-transform:uppercase;letter-spacing:.03em;text-decoration:none;white-space:nowrap;
  transition:background var(--tr),color var(--tr);}
.conf-card__invoice:hover{background:var(--green);color:var(--cream);}

.conf-card__lines{display:flex;flex-direction:column;gap:20px;padding-bottom:20px;border-bottom:2px solid var(--white);}
.conf-line{display:flex;gap:16px;align-items:flex-start;}
.conf-line img{width:64px;height:64px;object-fit:cover;background:var(--white);flex:none;}
.conf-line__meta{flex:1;min-width:0;}
.conf-line__name{font-size:14px;line-height:1.4;color:var(--text);}
.conf-line__qty{font-size:12px;color:var(--sage);}
.conf-line__total{font-size:14px;font-weight:500;color:var(--green);white-space:nowrap;}

.conf-card__totals{display:flex;flex-direction:column;gap:12px;font-size:14px;padding:20px 0;}
.conf-card__paid{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding-top:20px;border-top:2px solid var(--white);}
.conf-card__paid > span:first-child{font-size:16px;}
.conf-card__paid-value{font-family:var(--font-display);font-size:26px;color:var(--green);font-weight:500;}
.conf-card__paid-value .woocommerce-Price-amount{white-space:nowrap;}

/* Slim footer used on the confirmation page. */
.footer-slim{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;
  padding-top:56px;padding-bottom:32px;position:relative;z-index:1;}
.footer-slim__back{color:var(--cream);font-size:14px;text-decoration:underline;}
.site-footer--slim .footer-logo img{height:34px;margin-bottom:16px;}

@media (max-width:600px){
  .conf__head{padding:48px 0 24px;}
  .conf-card{padding:24px 20px;}
  .conf-card__head{gap:16px;margin-bottom:20px;padding-bottom:20px;}
  .conf-card__invoice{width:100%;text-align:center;}
  .footer-slim{padding-top:40px;}
}
.spec-group{font-family:var(--font-body);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:28px 0 10px;}

/* ==========================================================================
   PRODUCT PAGE — matched to "Northnavia Product Page.dc.html"
   Flex-wrap columns (not a fixed grid), vertical thumb rail, gold serif price,
   colour-square swatches, cream availability pill, inline CTA, and numbered
   FULL-BLEED sections alternating cream / white below the buybox.
   ========================================================================== */

/* The draft has no page-wide container: the buybox gets a .wrap, each section
   below is a full-bleed band with its own .wrap inside. */
.pdp-page{display:block;}
.pdp-top{padding-top:32px;padding-bottom:72px;}

.pdp{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start;}
.pdp__media{flex:1 1 480px;display:flex;gap:16px;min-width:0;}
.pdp__summary{flex:1 1 420px;display:flex;flex-direction:column;gap:26px;min-width:0;}
.pdp__summary > *{margin:0;}

/* Gallery: vertical thumb rail on the LEFT, main image fills the rest.
   .gallery is display:contents so the rail and the main image are direct flex
   children of .pdp__media; the rail is emitted first in the markup. */
.gallery{display:contents;}
.gallery__thumbs{display:flex;flex-direction:column;gap:10px;width:76px;flex:0 0 76px;max-height:600px;overflow-y:auto;overflow-x:hidden;}
.gallery__thumbs img{width:76px;height:76px;aspect-ratio:1;object-fit:cover;background:var(--cream);cursor:pointer;outline:1px solid transparent;outline-offset:-1px;display:block;}
.gallery__thumbs img:hover{outline-color:var(--sage);}
.gallery__thumbs img[aria-current="true"]{outline:2px solid var(--green);outline-offset:-2px;}
.gallery__main{flex:1 1 auto;aspect-ratio:1;background:var(--cream);overflow:hidden;min-width:0;}
.gallery__main img{width:100%;height:100%;object-fit:cover;display:block;}

.pdp__brand{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);}
.pdp h1{font-family:var(--font-display);font-size:clamp(26px,3vw,38px);font-weight:500;color:var(--green);margin:0;overflow-wrap:anywhere;}
.pdp__rating{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--sage);}
.pdp__rating .stars{color:var(--sage);letter-spacing:.05em;}
.pdp__rating a{color:var(--green);text-decoration:underline;}

/* Price: gold, display serif, on one baseline with the VAT note. */
.pdp__price-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.pdp__price,.pdp .price{font-family:var(--font-display);font-size:clamp(28px,3vw,34px);color:var(--gold);font-weight:500;margin:0;line-height:1.1;}
.pdp__price del,.pdp .price del{color:var(--sage);font-size:.6em;}
.pdp__price ins,.pdp .price ins{text-decoration:none;background:none;}
.pdp__vat{font-size:13px;color:var(--sage);margin:0;}
.pdp__instalment{font-size:14px;color:var(--text);margin:0;line-height:1.55;}
.pdp__instalment strong{font-weight:600;}
.instalment-sep{color:var(--sage);margin:0 4px;}
.sum-note strong{font-weight:600;color:var(--text);}

.pdp__intro{font-size:16px;color:var(--text);margin:0;max-width:520px;}
.pdp__bullets{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--text);}
.pdp__bullets li{display:flex;gap:10px;}
.pdp__bullets li::before{content:"—";color:var(--gold);flex:none;}

/* Colour swatches: 40px squares + label underneath. */
.swatches__head{font-size:13px;color:var(--sage);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;}
.swatches__head b{color:var(--text);font-weight:500;}
.swatches__row{display:flex;gap:14px;flex-wrap:wrap;}
.swatch{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;width:auto;height:auto;border:none;}
.swatch__chip{width:40px;height:40px;display:block;background-size:cover;background-position:center;outline:1px solid var(--border);outline-offset:3px;}
.swatch[aria-current="true"] .swatch__chip{outline:2px solid var(--green);outline-offset:3px;}
.swatch__name{font-size:12px;color:var(--text);max-width:64px;text-align:center;line-height:1.3;}

/* Availability pill */
.pdp__avail{font-size:14px;color:var(--green);background:var(--cream);padding:10px 16px;
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;width:fit-content;max-width:100%;}
.pdp__avail-sep{color:var(--sage);}
.pdp__eta{color:var(--muted);}
.pdp__avail .stock{font-size:14px;}

/* Quantity + CTA on one row; the CTA is NOT full width. */
.buy-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0;}
.buy-row .quantity,.qty{display:flex;align-items:center;border:2px solid var(--green);flex:none;}
.qty button,.buy-row .qty-minus,.buy-row .qty-plus{width:40px;height:44px;background:var(--white);border:none;color:var(--green);font-size:18px;cursor:pointer;font-family:inherit;line-height:1;}
.qty button:hover{background:var(--cream);}
.qty input,.buy-row .quantity input[type=number]{width:44px;height:44px;border:none;text-align:center;font:inherit;font-size:15px;padding:0;background:var(--white);-moz-appearance:textfield;appearance:textfield;}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
/* Compact stepper used inside bundle cards (28x32 in the draft). */
.qty--sm button{width:28px;height:32px;font-size:15px;}
.qty--sm input{width:30px;height:32px;font-size:13px;}
.single_add_to_cart_button,.buy-row .btn{background:var(--green);color:var(--cream);border:none;padding:14px 34px;font-size:15px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;flex:0 0 auto;}
.single_add_to_cart_button:hover{background:var(--green-dark);}

.trust{display:flex;gap:28px;flex-wrap:wrap;padding-top:8px;border:none;}
.trust__item{display:flex;gap:10px;max-width:160px;}
.trust__dot{width:8px;height:8px;background:var(--gold);margin-top:6px;flex:none;}
.trust__t{font-size:14px;font-weight:500;display:block;}
.trust__s{font-size:12px;color:var(--sage);display:block;}

/* --------------------------------------------------------------------------
   Numbered sections. Each is a FULL-BLEED band (cream / white, alternating)
   with its own .wrap; see nn_pdp_section() in inc/template-helpers.php.
   -------------------------------------------------------------------------- */
.pdp-band{width:100%;}
.pdp-band--cream{background:var(--cream);}
.pdp-band--white{background:var(--white);}
.pdp-sec{padding:72px 0;}
.pdp-band--cream .pdp-sec{padding:64px 0;}
.pdp-sec__num{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);margin-bottom:8px;}
.pdp-sec__title{font-family:var(--font-display);font-size:clamp(23px,2.4vw,30px);font-weight:500;color:var(--green);margin:0 0 10px;}
.pdp-sec__lede{font-size:15px;color:var(--sage);max-width:560px;margin:0 0 32px;}

/* 01 — tabs */
.tabs{display:flex;gap:36px;margin-bottom:32px;border-bottom:2px solid var(--green);flex-wrap:wrap;}
.tabs button{background:none;border:none;padding:0 0 14px;font-size:17px;cursor:pointer;font-family:var(--font-display);color:var(--sage);border-bottom:3px solid transparent;margin-bottom:-2px;}
.tabs button[aria-selected="true"]{color:var(--green);font-weight:600;border-bottom-color:var(--gold);}
.tabpanel[hidden]{display:none;}
.tabpanel.prose{max-width:760px;font-size:15px;}

/* Specs: two columns of zebra-striped rows, not a bordered table. */
.spec-cols{display:flex;gap:64px;flex-wrap:wrap;}
.spec-col{flex:1 1 320px;min-width:0;}
.spec-col--feat{flex:1 1 420px;}
.spec-col .spec-group{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);margin:0 0 16px;font-family:var(--font-body);font-weight:400;}
.spec-row{display:flex;justify-content:space-between;gap:16px;padding:12px;}
.spec-row:nth-child(odd){background:rgba(255,255,255,.55);}
.pdp-band--white .spec-row:nth-child(odd){background:var(--cream);}
.spec-row__k{color:var(--sage);font-size:14px;}
.spec-row__v{font-size:14px;text-align:right;overflow-wrap:anywhere;}

/* 02 — "Lisa kohe komplekti": filter chips, card grid, cream footer bar. */
.bundle-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px;}
.bundle-chip{background:var(--cream);color:var(--green);border:none;padding:10px 18px;font-size:13px;font-family:inherit;cursor:pointer;transition:background var(--tr),color var(--tr);}
.bundle-chip:hover{background:var(--border);}
.bundle-chip.is-on{background:var(--green);color:var(--cream);}
.pdp-band--cream .bundle-chip{background:var(--white);}
.pdp-band--cream .bundle-chip.is-on{background:var(--green);color:var(--cream);}

.bundle__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px;margin-bottom:32px;}
.bundle__card{display:flex;flex-direction:column;gap:10px;min-width:0;}
.bundle__card[hidden]{display:none;}
.bundle__media{display:block;aspect-ratio:1;background:var(--cream);overflow:hidden;}
.pdp-band--cream .bundle__media{background:var(--white);}
.bundle__media img{width:100%;height:100%;object-fit:cover;display:block;}
.bundle__sku{font-size:11px;color:var(--sage);text-transform:uppercase;letter-spacing:.04em;}
.bundle__name{font-size:14px;line-height:1.4;min-height:38px;}
.bundle__name a{color:var(--text);text-decoration:none;}
.bundle__name a:hover{color:var(--green);}
.bundle__foot-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;flex-wrap:wrap;}
.bundle__price{font-size:15px;font-weight:500;color:var(--green);}
.bundle__price .woocommerce-Price-amount{white-space:nowrap;}

.bundle__bar{display:flex;justify-content:space-between;align-items:center;background:var(--cream);padding:20px 28px;flex-wrap:wrap;gap:16px;}
.pdp-band--cream .bundle__bar{background:var(--white);}
.bundle__summary{font-size:15px;}
.bundle__bar .btn{padding:13px 30px;font-size:14px;}

/* 03 — related: auto-filling grid, matching the draft's 200px minimum. */
ul.products.grid--auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:28px;margin-bottom:0;}
.pdp-band--cream .card__media{background:var(--white);}

/* 04 — reviews: list on the left, write-a-review form on the right. */
.reviews{display:flex;gap:64px;flex-wrap:wrap;align-items:flex-start;}
.reviews__list{flex:1 1 300px;min-width:0;}
.reviews__form{flex:1 1 380px;max-width:460px;min-width:0;}
.reviews__title{font-family:var(--font-display);font-size:18px;color:var(--green);font-weight:500;margin:0 0 18px;}
.reviews__empty,.reviews__closed{font-size:15px;color:var(--text);margin:0;}
.reviews__closed{color:var(--muted);}
.reviews .commentlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px;}
.reviews .commentlist li{margin:0;}
.reviews .comment-reply-title,.reviews #review_form h3{font-family:var(--font-display);font-size:18px;color:var(--green);font-weight:500;margin:0 0 18px;display:block;}
.reviews .comment-form{display:flex;flex-direction:column;gap:14px;margin:0;}
.reviews .comment-form p{margin:0;}
.reviews .comment-form input[type=text],
.reviews .comment-form input[type=email],
.reviews .comment-form textarea{width:100%;border:2px solid var(--sage);padding:12px;font-family:inherit;font-size:14px;background:var(--white);border-radius:0;}
.reviews .comment-form textarea{resize:vertical;min-height:96px;}
.reviews .comment-form .form-submit{margin:0;}
.reviews .comment-form .submit{background:var(--green);color:var(--cream);border:none;padding:13px 28px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;font-family:inherit;}
.reviews .comment-form .submit:hover{background:var(--green-dark);}
/* Name + e-mail share a row, as in the draft. */
.reviews .comment-form-author,.reviews .comment-form-email{flex:1 1 160px;}
@supports (display:grid){
  .reviews .comment-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .reviews .comment-form > *{grid-column:1 / -1;}
  .reviews .comment-form-author{grid-column:1 / 2;}
  .reviews .comment-form-email{grid-column:2 / 3;}
}
/* Star picker: five radios rendered right-to-left so :hover/:checked cascade. */
.stars-input{border:0;padding:0;margin:0 0 4px;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:6px;}
.stars-input input{position:absolute;width:1px;height:1px;opacity:0;}
.stars-input label{cursor:pointer;font-size:22px;line-height:1;color:var(--border);transition:color var(--tr);}
.stars-input label:hover,.stars-input label:hover ~ label,
.stars-input input:checked ~ label{color:var(--gold);}
.stars-input input:focus-visible + label{outline:2px solid var(--gold);outline-offset:2px;}

/* --------------------------------------------------------------------------
   Product page — responsive. The draft carries no mobile state; this is it.
   -------------------------------------------------------------------------- */
@media (max-width:1100px){
  .pdp{gap:40px;}
  .spec-cols{gap:40px;}
  .reviews{gap:40px;}
}
@media (max-width:900px){
  .pdp{gap:32px;}
  .pdp__media{flex:1 1 100%;}
  .pdp__summary{flex:1 1 100%;gap:20px;}
  .pdp-top{padding-top:24px;padding-bottom:48px;}
  .pdp-sec,.pdp-band--cream .pdp-sec{padding:48px 0;}
  .bundle__grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;}
  ul.products.grid--auto{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;}
  .reviews__form{max-width:none;}
}
@media (max-width:600px){
  /* Thumb rail becomes a horizontal strip UNDER the main image. The rail is
     first in the DOM, so it is re-ordered rather than column-reversed. */
  .pdp__media{flex-direction:column;gap:10px;}
  .gallery__main{order:1;width:100%;}
  .gallery__thumbs{order:2;flex-direction:row;width:100%;flex:0 0 auto;max-height:none;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
  .gallery__thumbs img{width:64px;height:64px;flex:0 0 64px;}

  .pdp{gap:24px;}
  .buy-row{gap:12px;}
  .buy-row .quantity,.qty{flex:0 0 auto;}
  .single_add_to_cart_button,.buy-row .btn{flex:1 1 auto;padding:14px 20px;}

  .pdp-sec,.pdp-band--cream .pdp-sec{padding:40px 0;}
  .pdp-sec__lede{margin-bottom:24px;}
  .tabs{gap:20px;margin-bottom:24px;}
  .tabs button{font-size:15px;padding-bottom:10px;}
  .spec-cols{gap:28px;}
  .spec-row{gap:12px;}
  .spec-row__v{text-align:right;}

  .trust{gap:16px;}
  .trust__item{flex:1 1 140px;max-width:none;}

  .bundle-chips{gap:8px;margin-bottom:24px;}
  .bundle-chip{padding:8px 14px;}
  .bundle__grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;}
  .bundle__name{font-size:13px;min-height:0;}
  .bundle__foot-row{gap:8px;}
  .bundle__bar{padding:16px 18px;}
  .bundle__bar .btn{width:100%;text-align:center;}
  ul.products.grid--auto{grid-template-columns:repeat(2,1fr);gap:16px;}

  .reviews{gap:28px;}
  .reviews .comment-form{grid-template-columns:1fr;}
  .reviews .comment-form-author,.reviews .comment-form-email{grid-column:1 / -1;}
}
@media (max-width:400px){
  .bundle__grid,ul.products.grid--auto{grid-template-columns:1fr;}
  .bundle__card{flex-direction:row;align-items:flex-start;gap:12px;flex-wrap:wrap;}
  .bundle__media{flex:0 0 84px;width:84px;}
  .bundle__card > :not(.bundle__media){flex:1 1 140px;}
}

/* ==========================================================================
   CATEGORY / SHOP — matched to "Northnavia Category Page.dc.html"
   Title block, subcategory scroller, 260px filter rail beside the results,
   and the SEO copy as a full-bleed cream band under the whole layout.
   ========================================================================== */
.shop-head{padding-top:24px;}
.shop-title{font-family:var(--font-display);font-size:clamp(28px,3.4vw,40px);font-weight:500;color:var(--green);margin:0 0 16px;}
.cat-intro{font-size:16px;color:var(--text);max-width:680px;margin:0 0 40px;}

/* Subcategories: 132px tiles in a horizontal scroller. */
.subcats{display:flex;gap:20px;overflow-x:auto;padding-bottom:4px;margin:0 0 48px;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch;}
.subcat{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;flex-shrink:0;width:132px;}
.subcat__img{aspect-ratio:1;width:132px;background:var(--cream);overflow:hidden;outline:2px solid transparent;outline-offset:-2px;}
.subcat__img img{width:100%;height:100%;object-fit:cover;display:block;}
.subcat__name{font-size:13px;color:var(--text);line-height:1.35;text-align:center;}
.subcat:hover .subcat__name{color:var(--green);}
.subcat.is-on .subcat__img{outline-color:var(--green);}
.subcat.is-on .subcat__name{color:var(--green);font-weight:500;}

/* Two columns: a fixed 260px rail beside the results. */
.shop{display:flex;gap:48px;align-items:flex-start;flex-wrap:wrap;padding-bottom:96px;}
.shop__side{flex:0 0 260px;min-width:0;}
.shop__main{flex:1 1 600px;min-width:0;}

/* ---- Filter panel ---- */
.filters{border:none;padding:0;}
.filters__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;}
.filters__head h3{font-family:var(--font-display);font-size:19px;color:var(--green);font-weight:500;margin:0;letter-spacing:0;text-transform:none;}
.filters__reset{font-size:13px;color:var(--sage);text-decoration:underline;}
.filters__reset:hover{color:var(--green);}

/* Each facet is CLOSED by a 2px cream rule, not opened by a hairline. */
.facet{border:none;border-bottom:2px solid var(--cream);padding:0 0 24px;margin-bottom:24px;}
.facet--last,.facet:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0;}
.facet h4{font-family:var(--font-body);font-size:13px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);margin:0 0 14px;}

.facet__list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0;}
.facet__list li{margin:0;}
.facet__item{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;color:var(--text);font-size:14px;}
.facet__name{font-size:14px;color:var(--text);flex:1;min-width:0;}
.facet__count{font-size:12px;color:var(--sage);}
.facet__box{width:16px;height:16px;border:1px solid var(--sage);flex:none;background:var(--white);}
.facet__item.is-on .facet__box{background:var(--green);border-color:var(--green);position:relative;}
.facet__item.is-on .facet__box::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--white);border-width:0 2px 2px 0;transform:rotate(45deg);}
.facet__item.is-on .facet__name{color:var(--green);font-weight:500;}
/* Colour facet: 22px squares, as the draft */
.facet__swatch{width:22px;height:22px;flex:none;outline:1px solid var(--border);outline-offset:2px;background-size:cover;background-position:center;}
.facet__item.is-on .facet__swatch{outline:2px solid var(--green);outline-offset:2px;}
/* Dimension facets: wrapping pill buttons */
.facet__pills{display:flex;flex-wrap:wrap;gap:8px;}
.facet__pill{background:var(--white);color:var(--text);border:2px solid var(--border);padding:8px 12px;font-size:13px;
  text-decoration:none;cursor:pointer;transition:border-color var(--tr),color var(--tr);}
.facet__pill:hover{border-color:var(--sage);color:var(--green);}
.facet__pill.is-on{background:var(--green);border-color:var(--green);color:var(--cream);}
.facet__more{background:none;border:none;padding:12px 0 0;font:inherit;font-size:13px;color:var(--green);text-decoration:underline;cursor:pointer;}

/* Price: current range above two native sliders. */
.price-now{font-size:15px;color:var(--text);margin-bottom:14px;}
.price-rows{display:flex;flex-direction:column;gap:10px;}
.price-rows .row{display:flex;align-items:center;gap:10px;}
.price-rows .k{font-size:11px;color:var(--sage);width:28px;flex-shrink:0;}
.price-rows input[type=range]{flex:1;min-width:0;accent-color:var(--green);}
.price-rows__go{align-self:flex-start;margin-top:4px;}
.btn--sm{padding:9px 12px;font-size:13px;}

/* ---- Results column ---- */
.shop__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px;}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--cream);color:var(--green);
  padding:8px 10px 8px 14px;font-size:13px;text-decoration:none;border:none;}
.chip:hover{background:var(--border);}
.chip__x{color:var(--sage);font-size:15px;line-height:1;}
.chip:hover .chip__x{color:var(--green);}

/* Empty state: centred copy and a link, no box. */
.shop-empty{padding:64px 0;text-align:center;}
.shop-empty p{font-size:16px;color:var(--sage);margin:0 0 20px;}
.shop-empty__reset{font-size:14px;color:var(--green);text-decoration:underline;}

/* The archive loop comes from woocommerce_product_loop_start(), which emits
   `ul.products columns-4` — a class nothing in this theme styled, so the cards
   stacked in a single column. Scoped to the results area so the PDP/front-page
   grids keep their own tracks. */
.shop__main ul.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:28px;margin:0 0 48px;}

/* ---- SEO copy: a full-bleed cream band under the layout ---- */
.seo-band{background:var(--cream);width:100%;}
.seo-band .wrap{padding-top:72px;padding-bottom:72px;}
.seo-block{max-width:760px;position:relative;border:none;margin:0;padding:0;color:var(--text);}
.seo-block__body{display:flex;flex-direction:column;gap:22px;font-size:15px;}
.seo-block__body p{margin:0;}
.seo-block.is-clamped .seo-block__body{max-height:240px;overflow:hidden;position:relative;}
.seo-block.is-clamped .seo-block__body::after{content:"";position:absolute;inset:auto 0 0 0;height:90px;
  background:linear-gradient(to bottom,rgba(237,236,231,0),var(--cream));}
.seo-block__toggle{display:inline-block;background:none;border:none;padding:0;margin-top:20px;font:inherit;font-size:14px;
  color:var(--green);text-decoration:underline;cursor:pointer;}

@media (max-width:980px){
  .shop{gap:32px;padding-bottom:64px;}
  .shop__side{flex:1 1 100%;}
  .shop__main{flex:1 1 100%;}
}
@media (max-width:900px){
  .shop__main ul.products{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;margin-bottom:32px;}
}
@media (max-width:600px){
  .shop{gap:24px;padding-bottom:48px;}
  .shop__main ul.products{grid-template-columns:repeat(2,1fr);gap:16px;}
  .subcats{gap:14px;margin-bottom:32px;}
  .subcat,.subcat__img{width:112px;}
  .cat-intro{margin-bottom:28px;}
  .seo-band .wrap{padding-top:48px;padding-bottom:48px;}
}

/* Product card: no border, no padding — the draft's card is just a column. */
ul.products.grid{display:grid;gap:28px;margin-bottom:48px;}
.card{background:none;border:none;display:flex;flex-direction:column;gap:10px;height:auto;}
.card__link{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;}
.card__media{position:relative;aspect-ratio:1;background:var(--cream);overflow:hidden;}
.card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.card__body{padding:0;display:flex;flex-direction:column;gap:10px;}
.badge{position:absolute;top:10px;left:10px;background:var(--green);color:var(--cream);
  font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;}
.badge--out{left:auto;right:10px;background:var(--sage);color:var(--white);}
.card__sku{font-size:11px;color:var(--sage);text-transform:uppercase;letter-spacing:.04em;}
.card__title{font-family:var(--font-body);font-size:14px;line-height:1.4;min-height:38px;color:var(--text);font-weight:400;margin:0;}
.card__title a{color:inherit;text-decoration:none;}
.card__title a:hover{color:var(--green);}
.card__swatches{display:flex;gap:7px;flex-wrap:wrap;}
.card__swatch{width:17px;height:17px;outline:1px solid var(--border);outline-offset:2px;display:block;background-size:cover;background-position:center;}
.card__price{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-top:0;font-size:15px;font-weight:500;color:var(--green);}
.card__price.is-sale{color:var(--gold-dark);}
.card__was{font-size:13px;color:var(--sage);text-decoration:line-through;font-weight:400;margin:0;}
.card__instal{font-size:12px;color:var(--sage);display:block;line-height:1.4;}
.card__instal .woocommerce-Price-amount{white-space:nowrap;}
/* Price with its "3 x" line beneath, where the foot row also holds a button/stepper. */
.card__prices{display:flex;flex-direction:column;gap:2px;min-width:0;}
.card__brand{display:none;}

/* Pagination: 38px squares with a 2px border.
   ⚠ WooCommerce puts `page-numbers` on the <ul> ITSELF as well as on every link
   inside it, so an unscoped `.woocommerce-pagination .page-numbers` (two classes)
   out-specifies `.woocommerce-pagination ul` (one class + element) and wraps the
   whole row in a 38px-tall bordered box. Item rules are therefore scoped to the
   CHILD of an <li> / of .nav-links, never to the container. */
.woocommerce-pagination,.pagination{margin-top:40px;}
.woocommerce-pagination ul.page-numbers,
.pagination .nav-links{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;
  list-style:none;margin:0;padding:0;}
.woocommerce-pagination li{margin:0;list-style:none;}

.woocommerce-pagination li > .page-numbers,
.pagination .nav-links > .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;
  border:2px solid var(--green);background:var(--white);color:var(--green);font-size:15px;text-decoration:none;
  transition:background var(--tr),color var(--tr);}
.woocommerce-pagination li > .page-numbers:hover,
.pagination .nav-links > .page-numbers:hover{background:var(--cream);}
.woocommerce-pagination li > .page-numbers.current,
.pagination .nav-links > .page-numbers.current{background:var(--green);color:var(--white);}
.woocommerce-pagination li > .page-numbers.dots,
.pagination .nav-links > .page-numbers.dots{border-color:transparent;background:none;color:var(--sage);min-width:0;padding:0 2px;}
.woocommerce-pagination li > .page-numbers.dots:hover,
.pagination .nav-links > .page-numbers.dots:hover{background:none;}

@media (max-width:560px){
  .card__title{min-height:0;}
}

/* ==========================================================================
   LEGAL PAGE — matched to "Northnavia Legal Page.dc.html"
   3px progress bar, centred title block, sticky contents beside a 720px column.
   ========================================================================== */
.doc-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--cream);z-index:1000;pointer-events:none;}
.doc-progress__bar{display:block;width:0;height:100%;background:var(--gold);transition:width .08s linear;}

.legal-head{max-width:760px;margin:20px auto 0;padding:72px var(--gutter) 64px;text-align:center;}
.legal-head h1{font-family:var(--font-display);font-size:clamp(28px,3.6vw,40px);font-weight:500;color:var(--green);margin:0 0 20px;line-height:1.25;}
.legal-head__lede{font-size:16px;color:var(--text);margin:0;}

.doc{display:flex;gap:64px;flex-wrap:wrap;align-items:flex-start;padding-top:64px;padding-bottom:96px;}
.doc-toc{flex:0 1 220px;min-width:200px;align-self:stretch;}
.doc-toc__inner{position:sticky;top:24px;}
.doc-toc__label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--sage);margin-bottom:16px;}
.doc-toc__item{display:block;padding:9px 0 9px 14px;border-left:2px solid transparent;text-decoration:none;
  color:var(--sage);font-size:14px;line-height:1.4;transition:color var(--tr),border-color var(--tr);}
.doc-toc__item:hover{color:var(--green);}
.doc-toc__item.is-active{border-left-color:var(--gold);color:var(--green);font-weight:500;}

.doc-body{flex:1 1 480px;min-width:0;max-width:720px;font-size:16px;color:var(--text);}
.doc--no-toc .doc-body{margin:0 auto;}
/* The opening paragraph is the draft's 18px lead. */
.doc-body > p:first-child{font-size:18px;line-height:1.7;margin:0 0 32px;}
.doc-body p{margin:0 0 18px;}
.doc-body h2{font-family:var(--font-display);font-size:24px;font-weight:500;color:var(--green);margin:44px 0 16px;line-height:1.3;scroll-margin-top:32px;}
.doc-body h3{font-family:var(--font-display);font-size:19px;font-weight:500;color:var(--green);margin:32px 0 12px;line-height:1.35;scroll-margin-top:32px;}
.doc-body h4{font-family:var(--font-body);font-size:16px;font-weight:600;color:var(--text);margin:24px 0 10px;}
.doc-body > h2:first-child,.doc-body > h3:first-child{margin-top:0;}
.doc-body ul,.doc-body ol{margin:0 0 18px;padding-left:22px;}
.doc-body li{margin:0 0 6px;}
.doc-body ul li::marker{color:var(--gold);}
.doc-body a{color:var(--green);}
.doc-body a:hover{color:var(--green-dark);}

@media (max-width:980px){
  .doc{gap:32px;padding-top:40px;padding-bottom:64px;}
  .doc-toc{flex:1 1 100%;align-self:auto;}
  .doc-toc__inner{position:static;}
  .doc-body{flex:1 1 100%;max-width:none;}
}
@media (max-width:600px){
  .legal-head{padding-top:40px;padding-bottom:32px;}
  .doc-body > p:first-child{font-size:17px;}
  .doc-body h2{font-size:21px;margin-top:36px;}
}

/* ==========================================================================
   SEARCH — FiboSearch in a drop-down overlay (pattern ported from nordhauser.ee)
   Class is .nn-search, never a bare .search: WordPress adds `search` to <body>
   on /?s=… pages, and a bare `.search{display:flex}` would flex the whole body.
   FiboSearch's own rules are specific (0,2,1), so overrides are prefixed with
   `.nn-search .dgwt-wcas-sf-wrapp` (0,3,x) — and a few need !important.
   ========================================================================== */
/* visibility (not just an off-screen transform) keeps the closed panel's input out of
   the Tab order. The delay lets the slide-up finish before it hides. */
.nn-search-host{position:fixed;inset:0;z-index:250;pointer-events:none;visibility:hidden;transition:visibility 0s linear .25s;}
.nn-search-host.is-open{pointer-events:auto;visibility:visible;transition-delay:0s;}
.nn-search-backdrop{position:absolute;inset:0;background:rgba(26,53,46,.4);opacity:0;transition:opacity .2s ease;}
.nn-search-host.is-open .nn-search-backdrop{opacity:1;}
.nn-search-panel{position:absolute;top:0;left:0;right:0;background:var(--white);box-shadow:0 10px 30px rgba(26,53,46,.12);
  transform:translateY(-100%);transition:transform .25s ease;
  padding-top:max(20px, env(safe-area-inset-top, 20px));padding-bottom:20px;}
.nn-search-host.is-open .nn-search-panel{transform:translateY(0);}
@media (prefers-reduced-motion:reduce){ .nn-search-panel,.nn-search-backdrop{transition:none;} }
.nn-search-panel__inner{display:flex;align-items:center;gap:12px;}
.nn-search{flex:1;min-width:0;position:relative;}
.nn-search-close{flex:none;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:2px solid var(--cream);color:var(--green);cursor:pointer;padding:0;}
.nn-search-close:hover{background:var(--cream);}

/* FiboSearch skin: one cream bar, green uppercase submit — the theme's form language. */
.nn-search .dgwt-wcas-search-wrapp,
.nn-search .dgwt-wcas-search-wrapp.js-dgwt-wcas-layout-classic{background:transparent!important;border:0!important;padding:0!important;
  box-shadow:none!important;width:100%;max-width:none!important;margin:0!important;}
.nn-search .dgwt-wcas-search-wrapp .dgwt-wcas-search-form{display:flex;align-items:center;margin:0;width:100%;}
.nn-search .dgwt-wcas-sf-wrapp::before,.nn-search .dgwt-wcas-sf-wrapp::after{content:none!important;display:none!important;}
.nn-search .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp{display:flex!important;align-items:stretch;flex:1;min-width:0;gap:0;
  background:var(--cream)!important;border:0!important;border-bottom:2px solid transparent!important;box-shadow:none!important;
  padding:0 0 0 44px!important;margin:0;width:auto;max-width:none;position:relative;height:52px;}
.nn-search .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp:focus-within{border-bottom-color:var(--green)!important;}
.nn-search .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input,
.nn-search input[type="search"].dgwt-wcas-search-input{flex:1;min-width:0;width:auto;max-width:none;border:0!important;
  background:transparent!important;outline:0!important;font:inherit!important;font-family:var(--font-body)!important;
  font-size:15px!important;height:50px!important;line-height:50px!important;padding:0!important;margin:0!important;
  color:var(--text)!important;box-shadow:none!important;border-radius:0!important;-webkit-appearance:none;}
.nn-search .dgwt-wcas-search-input::placeholder{color:var(--sage)!important;opacity:1!important;}
.nn-search input[type="search"]::-webkit-search-decoration,
.nn-search input[type="search"]::-webkit-search-cancel-button,
.nn-search input[type="search"]::-webkit-search-results-button,
.nn-search input[type="search"]::-webkit-search-results-decoration{-webkit-appearance:none!important;appearance:none!important;display:none!important;}
/* The magnifier inside the field, on the left. */
.nn-search .dgwt-wcas-sf-wrapp > .dgwt-wcas-ico-magnifier,
.nn-search .dgwt-wcas-sf-wrapp label + .dgwt-wcas-ico-magnifier{position:absolute!important;left:16px;top:50%;transform:translateY(-50%);
  width:18px!important;height:18px!important;margin:0!important;}
.nn-search .dgwt-wcas-ico-magnifier path{fill:var(--sage)!important;}
.nn-search .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit,
.nn-search .dgwt-wcas-search-form .dgwt-wcas-search-submit{position:static!important;right:auto!important;top:auto!important;bottom:auto!important;
  height:50px!important;min-height:0!important;width:auto!important;min-width:0!important;padding:0 28px!important;margin:0!important;
  border-radius:0!important;background:var(--green)!important;background-color:var(--green)!important;color:var(--cream)!important;
  font-family:var(--font-body)!important;font-size:14px!important;font-weight:400!important;text-transform:uppercase!important;
  letter-spacing:.06em!important;text-shadow:none!important;border:0!important;cursor:pointer;display:inline-flex!important;
  align-items:center;justify-content:center;line-height:50px!important;box-shadow:none!important;flex:none;transition:background-color .18s ease;}
.nn-search .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit:hover,
.nn-search .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit:focus,
.nn-search .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit:active{background:var(--green-dark)!important;background-color:var(--green-dark)!important;opacity:1!important;}
.nn-search .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit .dgwt-wcas-ico-magnifier{display:none!important;}
.nn-search .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit::before,
.nn-search .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit::after{content:none!important;display:none!important;border:0!important;background:none!important;}
.nn-search .dgwt-wcas-preloader{position:absolute!important;right:120px;top:50%;transform:translateY(-50%);}
.nn-search .dgwt-wcas-voice-search,.nn-search .dgwt-wcas-om-bar{display:none!important;}
.nn-search .dgwt-wcas-close{right:120px;}

/* Suggestions dropdown (FiboSearch appends it to <body>, so it is unscoped).
   Must sit ABOVE the overlay (z-index 250). */
.dgwt-wcas-suggestions-wrapp,.dgwt-wcas-details-wrapp{z-index:260!important;border:2px solid var(--cream)!important;border-top:0!important;
  border-radius:0!important;box-shadow:0 12px 30px rgba(26,53,46,.12)!important;}
.dgwt-wcas-suggestion{border-bottom:1px solid var(--cream);}
.dgwt-wcas-suggestion:hover,.dgwt-wcas-suggestion-selected,.dgwt-wcas-suggestion-focused{background:var(--cream)!important;}
.dgwt-wcas-st-title{color:var(--text);font-family:var(--font-body);}
.dgwt-wcas-st-title strong{color:var(--green);}
.dgwt-wcas-st-price,.dgwt-wcas-st-price ins{color:var(--green);font-weight:500;}
.dgwt-wcas-sp{color:var(--green);}
.dgwt-wcas-st-sku{color:var(--sage);font-size:11px;text-transform:uppercase;letter-spacing:.04em;}
.dgwt-wcas-suggestion-more .dgwt-wcas-st-more{color:var(--green);text-transform:uppercase;letter-spacing:.04em;font-size:13px;}

/* No-JS/plugin-off fallback form, styled to match. */
.nn-search__fallback{display:flex;height:52px;}
.nn-search__fallback input[type=search]{flex:1;min-width:0;border:0;background:var(--cream);padding:0 16px;font:inherit;font-size:15px;}
.nn-search__fallback .btn{padding:0 28px;}

@media (max-width:600px){
  .nn-search-panel{padding-bottom:14px;}
  .nn-search-panel__inner{gap:8px;}
  .nn-search .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit{padding:0 16px!important;}
  .nn-search .dgwt-wcas-preloader,.nn-search .dgwt-wcas-close{right:84px;}
  .nn-search-close{width:44px;height:44px;}
}

/* ==========================================================================
   BLOG POST — matched to "Northnavia Blog Post.dc.html"
   Shares .doc / .doc-toc / .doc-body / .doc-progress with the legal pages;
   adds the cream title band, the product block and the article's callouts.
   ========================================================================== */
/* Title band of a single post. */
.article-hero{position:relative;background:var(--cream);margin-top:20px;overflow:hidden;}
.article-hero__inner{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:72px var(--gutter) 64px;text-align:center;}
.article-hero__cat{display:inline-block;font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;text-decoration:none;}
.article-hero__cat:hover{color:var(--gold-dark);}
.article-hero h1{font-family:var(--font-display);font-size:clamp(28px,3.6vw,40px);font-weight:500;color:var(--green);margin:0 0 20px;line-height:1.25;}
.article-hero__lede{font-size:16px;color:var(--text);margin:0;}

/* With a featured image: the photo fills the band, darkened evenly so centred
   light text reads anywhere on it. */
.article-hero--image{min-height:480px;display:flex;align-items:center;background:var(--green);}
.article-hero--image .article-hero__inner{width:100%;padding-top:96px;padding-bottom:88px;}
.article-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;}
.article-hero--image::after{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(20,32,28,.45) 0%,rgba(20,32,28,.62) 100%);}
.article-hero--image h1{color:var(--white);}
.article-hero--image .article-hero__lede{color:var(--cream);}
.article-hero--image .article-hero__cat{color:var(--gold-light);}
.article-hero--image .article-hero__cat:hover{color:var(--white);}

/* The post column may run to 900px (the product block does, in the draft);
   text inside it keeps the 720px measure. */
.doc-body--post{max-width:900px;}
.doc-body--post > *:not(.story-products){max-width:720px;}
.doc-body img{max-width:100%;height:auto;display:block;}
.doc-body figure{margin:24px 0 8px;}
.doc-body figure img,.doc-body > p > img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--cream);}
.doc-body figcaption{font-size:13px;color:var(--sage);margin-top:8px;}

/* "✓ Soovitame / ✕ Ei soovita" — the article's own callouts. */
.callout{position:relative;background:var(--cream);padding:16px 20px 16px 48px;margin:0 0 18px;font-size:15px;line-height:1.6;}
.callout::before{position:absolute;left:18px;top:15px;font-size:17px;line-height:1.4;font-weight:600;}
.callout--yes::before{content:"✓";color:var(--green);}
.callout--no{background:var(--off-white);}
.callout--no::before{content:"✕";color:var(--err);}
.callout strong{color:var(--green);font-weight:600;}
.callout--no strong{color:var(--text);}

/* "Selle loo tooted" */
.story-products{background:var(--cream);padding:44px 40px;margin:16px 0 56px;max-width:900px;}
.story-products__eyebrow{font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;}
.story-products__title{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--green);margin:0 0 28px;}
.story-products__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;}
.story-card{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;min-width:0;}
.story-card__media{display:block;aspect-ratio:1;background:var(--white);overflow:hidden;}
.story-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.story-card:hover .story-card__media img{transform:scale(1.03);}
.story-card__sku{font-size:11px;color:var(--sage);text-transform:uppercase;letter-spacing:.04em;}
.story-card__name{font-size:14px;line-height:1.4;min-height:38px;color:var(--text);}
.story-card:hover .story-card__name{color:var(--green);}
.story-card__price{font-size:15px;font-weight:500;color:var(--green);}

@media (max-width:980px){ .doc-body--post > *:not(.story-products){max-width:none;} }
@media (max-width:600px){
  .article-hero__inner{padding-top:40px;padding-bottom:36px;}
  .article-hero--image{min-height:340px;}
  .article-hero--image .article-hero__inner{padding-top:56px;padding-bottom:48px;}
  .story-products{padding:28px 20px;margin-bottom:40px;}
  .story-products__grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .story-card__name{min-height:0;}
}

/* ==========================================================================
   BLOG INDEX — matched to "Northnavia Blog Page.dc.html" (overlay layout)
   ========================================================================== */
.blog-head{padding-top:24px;padding-bottom:56px;}
.blog-head h1{font-family:var(--font-display);font-size:clamp(28px,3.4vw,40px);font-weight:500;color:var(--green);margin:0 0 16px;}
.blog-head p{font-size:16px;color:var(--text);max-width:640px;margin:0;}

/* Featured article: full-bleed photo, text bottom-left over a gradient. */
.blog-feature{display:block;position:relative;min-height:480px;background:var(--sage-warm);overflow:hidden;text-decoration:none;color:inherit;}
.blog-feature--plain{background-image:repeating-linear-gradient(135deg,rgba(36,73,64,.14) 0 1px,transparent 1px 14px);}
.blog-feature__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;transition:transform .6s ease;}
.blog-feature:hover .blog-feature__img{transform:scale(1.02);}
.blog-feature::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,32,28,.88) 0%,rgba(20,32,28,.45) 45%,rgba(20,32,28,.05) 75%);}
.blog-feature__inner{position:relative;z-index:1;display:flex;align-items:flex-end;min-height:480px;padding-top:56px;padding-bottom:56px;}
.blog-feature__text{display:block;max-width:640px;}
.blog-feature__tag{display:block;font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;}
.blog-feature__title{display:block;font-family:var(--font-display);font-size:clamp(24px,3vw,34px);font-weight:500;color:var(--white);margin:0 0 16px;line-height:1.25;}
.blog-feature__excerpt{display:block;font-size:15px;color:var(--cream);margin:0 0 18px;max-width:520px;}
.blog-feature__read{display:block;font-size:13px;color:var(--sage);}

/* Mosaic: 240px rows, dense packing; first tile 2×2, one horizontal tile. */
.blog-list{padding-top:64px;padding-bottom:96px;}
.blog-grid-mosaic{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-auto-rows:240px;grid-auto-flow:dense;gap:28px;margin-bottom:28px;}
.blog-tile{display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;min-width:0;}
.blog-tile__media{display:block;width:100%;flex:1;min-height:0;background:var(--cream);overflow:hidden;}
.blog-tile__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.blog-tile:hover .blog-tile__media img{transform:scale(1.03);}
.blog-tile__body{display:flex;flex-direction:column;gap:8px;padding:14px 2px 0;min-height:0;overflow:hidden;flex:none;}
.blog-tile__tag{font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;}
.blog-tile__title{font-family:var(--font-display);font-size:16px;color:var(--green);font-weight:500;line-height:1.3;}
.blog-tile:hover .blog-tile__title{color:var(--gold-dark);}
/* Rows are a fixed 240px (the draft), and real titles run much longer than its
   samples — cap them so the image keeps its share and nothing is cut mid-line. */
.blog-tile__title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.blog-tile--big .blog-tile__title{-webkit-line-clamp:3;}
.blog-tile--wide .blog-tile__title{-webkit-line-clamp:4;}
.blog-tile__excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.blog-tile__excerpt{font-size:13px;color:var(--text);}
.blog-tile__read{font-size:12px;color:var(--sage);margin-top:auto;}
.blog-tile--big{grid-column:span 2;grid-row:span 2;}
.blog-tile--big .blog-tile__title{font-size:21px;}
.blog-tile--wide{flex-direction:row;background:var(--cream);}
.blog-tile--wide .blog-tile__media{width:42%;height:100%;flex:none;}
.blog-tile--wide .blog-tile__body{flex:1;min-width:0;padding:20px 24px;justify-content:center;}

@media (max-width:760px){
  .blog-head{padding-bottom:36px;}
  .blog-feature,.blog-feature__inner{min-height:380px;}
  .blog-feature__inner{padding-top:40px;padding-bottom:40px;}
  .blog-list{padding-top:40px;padding-bottom:64px;}
  /* One column: spans would invent a phantom column, so every tile is a plain card. */
  .blog-grid-mosaic{grid-template-columns:1fr;grid-auto-rows:auto;gap:28px;}
  .blog-tile,.blog-tile--big{grid-column:auto;grid-row:auto;}
  .blog-tile__media,.blog-tile--wide .blog-tile__media{flex:none;width:100%;height:auto;aspect-ratio:4/3;}
  .blog-tile--wide{flex-direction:column;background:none;}
  .blog-tile--wide .blog-tile__body{padding:14px 2px 0;}
  .blog-tile--big .blog-tile__title{font-size:19px;}
  .blog-tile__title,.blog-tile--big .blog-tile__title,.blog-tile--wide .blog-tile__title{-webkit-line-clamp:unset;display:block;}
}
