/*
Theme Name: Dancing Forest
Theme URI: https://dancing-forest.com
Author: Dancing Forest
Description: Storefront theme for Dancing Forest — solid oak tables, chairs and semi-bar stools. Built for WooCommerce, with a spec-sheet layout that puts finish and length at the front of the catalogue.
Version: 1.0.3
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dancing-forest
Tags: e-commerce, custom-menu, featured-images, translation-ready
WC requires at least: 8.0
WC tested up to: 9.9
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
:root{
  --ground:#EDEDE8; --paper:#F8F8F5; --sink:#E3E4DD;
  --ink:#15171A; --ink-2:#5C625F; --line:#D4D6CF;
  --accent:#1F3A2E; --accent-ink:#F2F5EF;
  --fin-matt:#C9A97C; --fin-terra:#A75B33; --fin-black:#1B1B1B;
  --ok:#2F6B4F; --off:#8A8F8A; --warn:#A75B33;
  --f-disp:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --gut:clamp(16px,4vw,56px);
  --maxw:1480px;
  --hdr-h:62px;
}

/* ============================================================
   2. RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.55;
  font-variation-settings:"wdth" 100; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
a:hover{color:var(--accent)}
button{font:inherit; color:inherit}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
h1,h2,h3,h4{font-family:var(--f-disp); letter-spacing:-.015em; text-wrap:balance; margin:0 0 .5em}
h1{font-variation-settings:"wdth" 110,"wght" 600; font-size:clamp(1.8rem,4.6vw,3.2rem); line-height:1.02}
h2{font-variation-settings:"wdth" 108,"wght" 600; font-size:clamp(1.5rem,3.4vw,2.4rem); line-height:1.06}
h3{font-variation-settings:"wdth" 104,"wght" 600; font-size:1.15rem; line-height:1.25}
p{margin:0 0 1em}
.screen-reader-text{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap}
.skip-link:focus{position:fixed; top:8px; left:8px; z-index:999; background:var(--accent); color:var(--accent-ink); padding:10px 16px}

.df-wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut)}
.df-mono{font-family:var(--f-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase}
.df-muted{color:var(--ink-2)}
.df-sec{padding-block:clamp(46px,7vw,92px)}
.df-sec-head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:28px}
.df-sec-head p{margin:6px 0 0; max-width:52ch; color:var(--ink-2); font-size:.95rem}
.df-more{font-family:var(--f-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-2); border-bottom:1px solid var(--line); padding-bottom:2px}
.df-more:hover{color:var(--ink); border-bottom-color:var(--ink)}

/* ============================================================
   3. HEADER
   ============================================================ */
.df-hdr{position:sticky; top:0; z-index:60; background:color-mix(in srgb,var(--ground) 88%,transparent);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--line)}
.df-hdr-in{display:flex; align-items:center; gap:clamp(12px,3vw,40px); min-height:var(--hdr-h)}
.df-brand{display:flex; align-items:baseline; gap:10px; flex:0 0 auto}
.df-brand b{font-family:var(--f-disp); font-variation-settings:"wdth" 125,"wght" 700;
  font-size:1.12rem; letter-spacing:.14em; line-height:1}
.df-brand span{font-family:var(--f-mono); font-size:.6rem; letter-spacing:.16em; color:var(--ink-2); text-transform:uppercase}
.df-brand img{max-height:34px; width:auto}
.df-nav{margin-left:auto; display:flex; align-items:center; gap:clamp(10px,2vw,26px)}
.df-nav ul{display:flex; gap:clamp(10px,2vw,26px); list-style:none; margin:0; padding:0}
.df-nav a{font-size:.82rem; padding:6px 0; border-bottom:1px solid transparent; white-space:nowrap}
.df-nav a:hover,.df-nav .current-menu-item>a{border-bottom-color:var(--ink); color:var(--ink)}
.df-cart{font-family:var(--f-mono); font-size:.7rem; border:1px solid var(--line); padding:7px 11px;
  border-radius:2px; white-space:nowrap; text-transform:uppercase; letter-spacing:.06em}
.df-cart:hover{border-color:var(--ink); color:var(--ink)}
.df-burger{display:none; background:none; border:1px solid var(--line); border-radius:2px; padding:8px 11px; cursor:pointer}
.df-burger span{display:block; width:17px; height:1.5px; background:var(--ink)}
.df-burger span+span{margin-top:4px}
@media (max-width:900px){
  .df-burger{display:block; margin-left:auto}
  .df-nav{position:fixed; inset:var(--hdr-h) 0 auto 0; background:var(--ground); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:stretch; gap:0; padding:8px var(--gut) 20px; margin-left:0; display:none}
  .df-nav.is-open{display:flex}
  .df-nav ul{flex-direction:column; gap:0}
  .df-nav li{border-bottom:1px solid var(--line)}
  .df-nav a{display:block; padding:13px 0; font-size:.95rem}
  .df-cart{margin-top:14px; text-align:center}
}

/* ============================================================
   4. BUTTONS
   ============================================================ */
.df-btn,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--accent); color:var(--accent-ink); border:1px solid var(--accent);
  padding:13px 22px; border-radius:2px; font-family:var(--f-body); font-size:.85rem;
  letter-spacing:.03em; line-height:1.2; cursor:pointer; text-decoration:none;
  transition:transform .18s ease,opacity .18s ease; width:fit-content}
.df-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce #respond input#submit:hover{
  transform:translateY(-1px); background:var(--accent); color:var(--accent-ink); opacity:.92}
.df-btn--ghost,.woocommerce a.button.alt--ghost{background:none; color:var(--ink); border-color:var(--line)}
.df-btn--ghost:hover{border-color:var(--ink); background:none; color:var(--ink)}
.woocommerce .button.disabled,.woocommerce button.button:disabled{opacity:.45; cursor:not-allowed}

/* ============================================================
   5. HERO / FRONT PAGE
   ============================================================ */
.df-hero{position:relative}
.df-hero-img{position:relative; width:100%; max-width:100%; aspect-ratio:16/9; min-height:360px;
  max-height:76vh; overflow:hidden; background:var(--sink)}
@media (max-width:700px){
  .df-hero-img{aspect-ratio:4/5; min-height:0; max-height:74vh}
}
.df-hero-img img{width:100%; height:100%; object-fit:cover}
.df-hero-img::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(10,12,10,.42) 0%,rgba(10,12,10,0) 38%,rgba(10,12,10,.62) 100%)}
.df-hero-txt{position:absolute; inset:auto 0 0 0; z-index:2; padding-block:clamp(20px,4vw,44px); color:#F4F5F0}
.df-hero-txt .df-wrap{display:grid; gap:14px}
.df-hero h1{margin:0; font-size:clamp(2rem,6vw,4.4rem); font-variation-settings:"wdth" 112,"wght" 600;
  line-height:.99; letter-spacing:-.02em; max-width:17ch; color:#F4F5F0}
.df-hero p{margin:0; max-width:46ch; font-size:clamp(.92rem,1.5vw,1.05rem); color:#DCE0D8}
.df-hero-spec{position:absolute; top:0; right:0; z-index:2; padding:clamp(14px,3vw,26px) var(--gut);
  color:#E8EAE4; text-align:right; opacity:.85}
@media (max-width:620px){.df-hero-spec{display:none}}

.df-index{border-top:1px solid var(--line)}
.df-irow{display:grid; grid-template-columns:56px 1fr auto auto; gap:clamp(10px,2vw,24px); align-items:center;
  padding:16px 0; border-bottom:1px solid var(--line); transition:padding-left .2s ease}
.df-irow:hover{padding-left:10px; color:var(--ink)}
.df-irow .df-thumb{width:56px; height:56px; object-fit:cover; background:var(--sink)}
.df-irow .df-nm{font-family:var(--f-disp); font-variation-settings:"wdth" 106,"wght" 600;
  font-size:clamp(1.05rem,2.4vw,1.5rem); letter-spacing:-.01em}
.df-irow .df-kd{color:var(--ink-2); font-size:.85rem}
.df-irow .df-ct,.df-irow .df-ar{font-family:var(--f-mono); font-size:.72rem; color:var(--ink-2)}
.df-irow:hover .df-ar{color:var(--ink)}
@media (max-width:640px){
  .df-irow{grid-template-columns:44px 1fr auto; row-gap:2px}
  .df-irow .df-thumb{width:44px; height:44px}
  .df-irow .df-ar{display:none}
}

.df-fins{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(8px,1.4vw,18px)}
@media (max-width:760px){.df-fins{grid-template-columns:1fr}}
.df-fin{position:relative; background:var(--sink); overflow:hidden; display:block}
.df-fin img{aspect-ratio:4/5; width:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.df-fin:hover img{transform:scale(1.03)}
.df-fin-b{position:absolute; left:0; right:0; bottom:0; padding:16px 18px; color:#F4F5F0;
  background:linear-gradient(180deg,rgba(8,10,8,0) 0%,rgba(8,10,8,.74) 70%)}
.df-fin-b .df-sw{width:26px; height:26px; border-radius:50%; border:1px solid rgba(255,255,255,.55); margin-bottom:10px}
.df-fin-b h3{margin:0 0 4px; color:#F4F5F0}
.df-fin-b p{margin:0; font-size:.83rem; color:#D8DCD4; max-width:34ch}

.df-split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,4vw,72px); align-items:center}
@media (max-width:860px){.df-split{grid-template-columns:1fr}}
.df-lede{font-size:clamp(1.05rem,2vw,1.3rem); line-height:1.5; max-width:34ch;
  font-variation-settings:"wdth" 104,"wght" 500; letter-spacing:-.01em; text-wrap:balance}
.df-facts{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line)}
@media (max-width:620px){.df-facts{grid-template-columns:1fr}}
.df-fact{background:var(--ground); padding:20px}
.df-fact b{display:block; font-family:var(--f-mono); font-size:1.35rem; font-weight:500; font-variant-numeric:tabular-nums}
.df-fact span{font-size:.82rem; color:var(--ink-2)}

/* ============================================================
   6. PRODUCT GRID
   ============================================================ */
.woocommerce ul.products,
ul.products{display:grid!important; grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:clamp(14px,2vw,28px) clamp(10px,1.6vw,22px); list-style:none; margin:0; padding:0; clear:both}
.woocommerce ul.products li.product,
ul.products li.product{width:auto!important; margin:0!important; float:none!important; text-align:left; display:flex;
  flex-direction:column; gap:9px; position:relative}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after{display:none}
.df-ph{position:relative; background:var(--sink); overflow:hidden; aspect-ratio:1/1; display:block}
.df-ph img{width:100%; height:100%; object-fit:cover; margin:0; transition:transform .5s cubic-bezier(.2,.7,.3,1)}
li.product:hover .df-ph img{transform:scale(1.04)}
.df-ph .df-ph-2{position:absolute; inset:0; opacity:0; transition:opacity .35s ease}
li.product:hover .df-ph .df-ph-2{opacity:1}
.df-tag{position:absolute; top:10px; left:10px; z-index:2; background:var(--paper); color:var(--ink);
  font-family:var(--f-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; padding:5px 8px}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
li.product .df-title{margin:0; padding:0; font-family:var(--f-disp); font-size:1rem;
  font-variation-settings:"wdth" 104,"wght" 600; line-height:1.25; letter-spacing:-.005em}
.df-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-family:var(--f-mono);
  font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-2)}
.df-sw-dot{width:12px; height:12px; border-radius:50%; border:1px solid var(--line); flex:0 0 auto; display:inline-block}
.woocommerce ul.products li.product .price{color:var(--ink); font-family:var(--f-mono); font-size:.88rem;
  font-variant-numeric:tabular-nums; margin:0; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap}
.woocommerce ul.products li.product .price del{opacity:.5; font-size:.8rem}
.df-vat{font-family:var(--f-mono); font-size:.6rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-2)}
.woocommerce ul.products li.product .button,
li.product .button{margin-top:4px; padding:9px 14px; font-size:.75rem; letter-spacing:.05em}
.woocommerce ul.products li.product .onsale,.woocommerce span.onsale{
  position:absolute; top:10px; right:10px; left:auto; background:var(--accent); color:var(--accent-ink);
  font-family:var(--f-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 8px; border-radius:0; min-height:0; min-width:0; line-height:1.4; margin:0}

/* ============================================================
   7. ARCHIVE / FILTERS
   ============================================================ */
.df-arch-head{padding-top:clamp(18px,3vw,34px)}
.woocommerce .woocommerce-products-header__title,
.df-arch-head h1{margin:0 0 6px}
.df-arch-head .term-description p{color:var(--ink-2); max-width:56ch; font-size:.95rem}
.df-filters{display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding-block:14px;
  border-block:1px solid var(--line); margin-bottom:26px; position:sticky; top:var(--hdr-h); z-index:30;
  background:color-mix(in srgb,var(--ground) 93%,transparent); backdrop-filter:blur(10px)}
.df-chip{border:1px solid var(--line); padding:7px 13px; border-radius:999px; font-size:.78rem;
  display:inline-flex; align-items:center; gap:7px; transition:background .15s ease,border-color .15s ease;
  background:none; cursor:pointer; line-height:1.3}
.df-chip:hover{border-color:var(--ink); color:var(--ink)}
.df-chip.is-on{background:var(--accent); color:var(--accent-ink); border-color:var(--accent)}
.df-chip.is-on .df-sw-dot{border-color:rgba(255,255,255,.5)}
.df-fsep{width:1px; height:22px; background:var(--line); margin-inline:6px}
.df-count{margin-left:auto; font-family:var(--f-mono); font-size:.7rem; color:var(--ink-2); white-space:nowrap;
  letter-spacing:.05em; text-transform:uppercase}
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{display:none}
.df-filters select{border:1px solid var(--line); background:var(--paper); color:inherit; font:inherit;
  font-size:.78rem; padding:7px 10px; border-radius:999px}

.woocommerce nav.woocommerce-pagination{margin:44px 0; text-align:left}
.woocommerce nav.woocommerce-pagination ul{border:0; display:flex; gap:6px}
.woocommerce nav.woocommerce-pagination ul li{border:0; margin:0}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{border:1px solid var(--line); padding:9px 14px;
  font-family:var(--f-mono); font-size:.75rem; background:none}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--accent); color:var(--accent-ink); border-color:var(--accent)}

.df-crumb{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-2); padding-top:clamp(14px,3vw,26px)}
.woocommerce .woocommerce-breadcrumb{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-2); margin:0; padding-top:clamp(14px,3vw,26px)}
.woocommerce .woocommerce-breadcrumb a{color:var(--ink-2)}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--ink)}

/* ============================================================
   8. SINGLE PRODUCT
   ============================================================ */
.woocommerce div.product{display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(20px,4vw,64px);
  align-items:start; padding-top:clamp(20px,4vw,44px)}
@media (max-width:900px){.woocommerce div.product{grid-template-columns:1fr}}
.woocommerce div.product .woocommerce-product-gallery{width:100%!important; float:none!important; margin:0}
.woocommerce div.product .woocommerce-product-gallery__image{background:var(--sink)}
.woocommerce div.product .woocommerce-product-gallery ol.flex-control-thumbs{display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); gap:8px; margin:10px 0 0; padding:0; list-style:none}
.woocommerce div.product .woocommerce-product-gallery ol.flex-control-thumbs li{width:auto!important; margin:0; float:none!important}
.woocommerce div.product .woocommerce-product-gallery ol.flex-control-thumbs img{opacity:.55; transition:opacity .2s ease; background:var(--sink)}
.woocommerce div.product .woocommerce-product-gallery ol.flex-control-thumbs img.flex-active,
.woocommerce div.product .woocommerce-product-gallery ol.flex-control-thumbs img:hover{opacity:1}
.woocommerce div.product div.summary{margin:0; float:none!important; width:100%!important;
  position:sticky; top:calc(var(--hdr-h) + 24px); display:grid; gap:18px}
@media (max-width:900px){.woocommerce div.product div.summary{position:static}}
.woocommerce div.product .product_title{margin:0; font-size:clamp(1.6rem,3.6vw,2.5rem)}
.df-series-eyebrow{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-2); display:block; margin-bottom:6px}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ink); margin:0;
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap}
.woocommerce div.product p.price .amount,.woocommerce div.product span.price .amount{
  font-family:var(--f-mono); font-size:1.6rem; font-weight:500; font-variant-numeric:tabular-nums}
.woocommerce div.product p.price del{opacity:.5}
.df-spec{width:100%; border-collapse:collapse; font-size:.88rem}
.df-spec th,.df-spec td{text-align:left; padding:11px 0; border-bottom:1px solid var(--line); vertical-align:middle}
.df-spec th{font-weight:400; color:var(--ink-2); width:42%; font-family:var(--f-mono); font-size:.68rem;
  letter-spacing:.08em; text-transform:uppercase}
.df-spec td{font-variant-numeric:tabular-nums}
.df-instock{color:var(--ok)} .df-outstock{color:var(--off)}
.woocommerce div.product form.cart{margin:0; display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.woocommerce div.product form.cart div.quantity{margin:0; display:inline-flex; align-items:center;
  border:1px solid var(--line); border-radius:2px; overflow:hidden; float:none}
.woocommerce div.product form.cart .quantity input.qty{width:56px; height:44px; border:0; background:none;
  text-align:center; font-family:var(--f-mono); font-size:.9rem; color:inherit}
.woocommerce div.product .stock{margin:0; font-family:var(--f-mono); font-size:.72rem;
  letter-spacing:.06em; text-transform:uppercase}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--ink-2);
  font-size:.95rem; max-width:46ch}
.woocommerce .product_meta{font-family:var(--f-mono); font-size:.66rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--ink-2); display:grid; gap:5px}
.df-assure{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-2); margin:0}

.df-below{grid-column:1/-1}
.woocommerce div.product .woocommerce-tabs{grid-column:1/-1; padding-top:clamp(30px,5vw,60px)}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0; margin:0 0 22px; border-bottom:1px solid var(--line);
  display:flex; gap:24px; flex-wrap:wrap}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:none; border:0; border-radius:0; margin:0; padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{padding:0 0 12px; font-family:var(--f-mono);
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2);
  border-bottom:2px solid transparent; font-weight:400}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--ink); border-bottom-color:var(--accent)}
.woocommerce div.product .woocommerce-tabs .panel{max-width:70ch; margin:0}
.woocommerce div.product .woocommerce-tabs .panel h2{font-size:1.2rem}
.woocommerce div.product .woocommerce-tabs .panel ul{padding-left:1.1em}
.woocommerce .related,.woocommerce .up-sells{grid-column:1/-1; padding-top:clamp(30px,5vw,60px)}
.woocommerce .related h2,.woocommerce .up-sells h2{margin-bottom:22px}

/* ============================================================
   9. CART / CHECKOUT / ACCOUNT / FORMS
   ============================================================ */
.woocommerce table.shop_table{border:1px solid var(--line); border-radius:0; border-collapse:collapse}
.woocommerce table.shop_table th{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-2); font-weight:400}
.woocommerce table.shop_table td,.woocommerce table.shop_table th{border-top:1px solid var(--line); padding:14px}
.woocommerce-cart table.cart img{width:72px; background:var(--sink)}
.woocommerce .cart_totals h2,.woocommerce-checkout h3{font-size:1.15rem}
.woocommerce form .form-row{padding:0; margin:0 0 16px; display:grid; gap:6px}
.woocommerce form .form-row label{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-2)}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,
.woocommerce form .form-row select,.woocommerce .select2-container .select2-selection--single,
input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],input[type=password],textarea,select{
  width:100%; padding:12px; border:1px solid var(--line); background:var(--paper); color:inherit;
  font:inherit; font-size:.92rem; border-radius:2px}
.woocommerce .select2-container .select2-selection--single{height:auto; display:flex; align-items:center}
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top-color:var(--accent);
  background:var(--paper); border-radius:0}
.woocommerce-message::before,.woocommerce-info::before{color:var(--accent)}
.woocommerce .woocommerce-MyAccount-navigation ul{list-style:none; margin:0; padding:0; display:grid; gap:6px}
.woocommerce .woocommerce-MyAccount-navigation a{font-size:.9rem}

/* ============================================================
   10. PAGES / POSTS
   ============================================================ */
.df-page{padding-block:clamp(28px,5vw,60px)}
.df-page .df-entry{max-width:70ch}
.df-entry p,.df-entry li{color:var(--ink-2); font-size:1rem}
.df-entry h2,.df-entry h3{color:var(--ink); margin-top:1.6em}
.df-entry img{margin-block:1.4em}
.df-entry blockquote{border-left:2px solid var(--accent); margin:1.6em 0; padding-left:20px;
  font-size:1.1rem; color:var(--ink)}
.df-entry a{color:var(--accent); text-decoration:underline; text-underline-offset:3px}
.df-qa details{border-bottom:1px solid var(--line)}
.df-qa summary{list-style:none; cursor:pointer; padding:16px 0; display:flex; justify-content:space-between;
  gap:16px; font-variation-settings:"wdth" 104,"wght" 500}
.df-qa summary::-webkit-details-marker{display:none}
.df-qa summary::after{content:"+"; font-family:var(--f-mono); color:var(--ink-2)}
.df-qa details[open] summary::after{content:"–"}

/* ============================================================
   11. FOOTER
   ============================================================ */
.df-ftr{border-top:1px solid var(--line); padding-block:clamp(32px,5vw,56px); margin-top:clamp(40px,6vw,80px)}
.df-ftr-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:24px}
@media (max-width:820px){.df-ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.df-ftr-grid{grid-template-columns:1fr}}
.df-ftr h4{margin:0 0 12px; font-family:var(--f-mono); font-size:.66rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-2); font-weight:400}
.df-ftr ul{margin:0; padding:0; list-style:none; display:grid; gap:7px; font-size:.88rem}
.df-ftr a:hover{text-decoration:underline; text-underline-offset:3px}
.df-ftr-note{margin-top:28px; padding-top:18px; border-top:1px solid var(--line); display:flex;
  flex-wrap:wrap; gap:12px; justify-content:space-between; font-family:var(--f-mono); font-size:.66rem;
  color:var(--ink-2); letter-spacing:.05em; text-transform:uppercase}

@media (prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important; scroll-behavior:auto}}
