/* ===== css/style.css — DocWell · Celtic Knotwork design system (single stylesheet) ===== */
:root{
  --parch:#F3ECDC;
  --parch-deep:#EAE0C8;
  --forest:#2E5E4E;
  --forest-bright:#3A7563;
  --gold:#B08D3E;
  --gold-bright:#C6A252;
  --rust:#A6502E;
  --ink:#26221C;
  --muted:#7E7466;
  --line:#D5C9AC;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Nunito",system-ui,-apple-system,sans-serif;
  --maxw:1180px;
  --radius:10px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--parch);
  background-image:
    radial-gradient(ellipse at 20% 0%, rgba(213,201,172,.35), transparent 55%),
    radial-gradient(ellipse at 85% 100%, rgba(213,201,172,.3), transparent 50%);
  line-height:1.6;
  min-height:100vh;
  display:flex;flex-direction:column;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--forest);text-decoration:none}
a:hover{color:var(--forest-bright)}
h1,h2,h3,h4,.serif{font-family:var(--serif);font-weight:600;line-height:1.15;color:var(--ink)}
h1{font-size:clamp(2.4rem,5vw,4rem)}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
h3{font-size:1.45rem}
:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-radius:2px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
main{flex:1}
.small{font-size:.85rem;color:var(--muted)}
.muted{color:var(--muted)}
.center{text-align:center}

/* ---------- drop cap ---------- */
.dropcap::first-letter{
  font-family:var(--serif);font-weight:700;
  font-size:3.4em;float:left;line-height:.82;
  padding:.08em .12em 0 0;color:var(--forest);
}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:var(--sans);font-weight:700;font-size:1rem;
  padding:14px 30px;border-radius:8px;border:1px solid var(--ink);
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
  text-align:center;
}
.btn-primary{background:var(--forest);color:var(--parch)}
.btn-primary:hover{background:var(--forest-bright);color:var(--parch);transform:translateY(-2px);box-shadow:0 8px 18px rgba(46,94,78,.28)}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-bright);color:var(--ink);transform:translateY(-2px);box-shadow:0 8px 18px rgba(176,141,62,.3)}
.btn-ghost{background:transparent;color:var(--forest);border:1px solid var(--forest)}
.btn-ghost:hover{background:rgba(46,94,78,.08);transform:translateY(-2px)}
.btn-block{display:block;width:100%}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;
  background:rgba(243,236,220,.94);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:1.55rem;font-weight:700;color:var(--ink)}
.brand:hover{color:var(--ink)}
.brand svg{flex:none}
.nav-links{display:flex;gap:20px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav-links a{font-weight:700;font-size:.94rem;color:var(--ink)}
.nav-links a:hover{color:var(--forest)}
.nav-badge{
  background:var(--rust);color:var(--parch);font-size:.72rem;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:20px;
}
.nav-cta{padding:9px 20px;font-size:.9rem}
.cart-count{display:inline-block;min-width:20px;text-align:center;background:var(--forest);color:var(--parch);border-radius:12px;font-size:.75rem;padding:1px 6px;margin-left:4px}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);background:var(--parch-deep);margin-top:80px}
.footer-grid{max-width:var(--maxw);margin:0 auto;padding:48px 24px 28px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px}
.footer-grid h4{font-size:1.1rem;margin-bottom:12px;color:var(--forest)}
.footer-grid ul{list-style:none}
.footer-grid li{margin-bottom:8px}
.footer-grid a{color:var(--ink)}
.footer-grid a:hover{color:var(--forest)}
.footer-company p{margin-bottom:6px;font-size:.92rem}
.data-own{
  border-top:1px solid var(--line);
  text-align:center;padding:16px 24px;font-weight:700;color:var(--forest);
  background:var(--parch);
}
.copyright{text-align:center;font-size:.82rem;color:var(--muted);padding:0 24px 26px;background:var(--parch)}

/* ---------- cookie banner ---------- */
.cookie{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:80;
  max-width:640px;margin:0 auto;background:var(--parch);border:1px solid var(--ink);
  border-radius:var(--radius);padding:18px 22px;box-shadow:0 14px 40px rgba(38,34,28,.22);
  display:flex;gap:16px;align-items:center;flex-wrap:wrap;
}
.cookie p{font-size:.9rem;flex:1;min-width:220px}
.cookie .btn{padding:9px 18px;font-size:.88rem}
.btn-decline{background:transparent;border:1px solid var(--gold);color:var(--ink)}
.btn-decline:hover{background:rgba(176,141,62,.14)}

/* ---------- knot card ---------- */
.card{
  position:relative;background:var(--parch);border:1px solid var(--ink);
  border-radius:var(--radius);padding:26px;
  transition:transform .2s ease,box-shadow .2s ease;
}
.card::before,.card::after{
  content:"";position:absolute;width:26px;height:26px;pointer-events:none;
  border:3px solid var(--gold);border-radius:50% 0 50% 0;
}
.card::before{top:-8px;left:-8px;border-right:none;border-bottom:none}
.card::after{bottom:-8px;right:-8px;border-left:none;border-top:none}
.card:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(38,34,28,.16)}
.card:hover::before,.card:hover::after{border-color:var(--gold-bright);box-shadow:0 0 10px rgba(176,141,62,.5)}

/* ---------- badges & stars ---------- */
.badge-pop{
  display:inline-flex;align-items:center;gap:7px;background:var(--gold);color:var(--ink);
  border:1px solid var(--ink);border-radius:999px;padding:5px 15px;font-weight:800;
  font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;
}
.badge-pop::before{content:"";width:14px;height:14px;border:2px solid var(--ink);border-radius:50% 0 50% 0;transform:rotate(45deg)}
.stars{display:inline-flex;gap:2px;align-items:center}
.stars svg{width:17px;height:17px}
.stars .fill-forest{fill:var(--forest)}
.stars .fill-line{fill:var(--line)}

/* ---------- hero (full knot ring) ---------- */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--line)}
.hero-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.hero-bg svg{width:min(140vmin,1100px);height:auto;opacity:.9}
.weave-draw{stroke-dasharray:2400;stroke-dashoffset:2400;animation:weave 9s ease forwards}
.weave-draw.d2{animation-delay:1.2s}
.weave-draw.d3{animation-delay:2.4s}
@keyframes weave{to{stroke-dashoffset:0}}
.hero-content{position:relative;text-align:center;max-width:780px;padding:40px 24px}
.hero-content h1{margin-bottom:18px}
.hero-content .sub{font-size:1.2rem;color:var(--muted);max-width:560px;margin:0 auto 32px}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---------- three strands (process, no cards) ---------- */
.strands{padding:90px 0}
.strand-row{display:flex;align-items:center;gap:34px;margin:54px 0;position:relative}
.strand-row:nth-child(even){flex-direction:row-reverse}
.strand-rope{flex:none;width:150px;height:150px}
.strand-rope svg{width:100%;height:100%}
.strand-body h3{font-size:1.9rem;margin-bottom:8px;letter-spacing:.04em}
.strand-body h3 span{color:var(--gold)}
.strand-body p{max-width:520px;color:var(--ink)}
.strand-line{position:absolute;left:75px;top:150px;bottom:-56px;width:3px;background:repeating-linear-gradient(180deg,var(--gold) 0 10px,transparent 10px 20px)}
.strand-row:last-child .strand-line{display:none}

/* ---------- clan plate wall ---------- */
.plates{padding:80px 0 60px;background:var(--parch-deep);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.plate-wall{display:flex;gap:26px;overflow-x:auto;padding:30px 4px 20px;scroll-snap-type:x mandatory}
.plate{flex:0 0 300px;scroll-snap-align:start;text-align:center;transform:rotate(var(--tilt,0deg));transition:transform .2s ease}
.plate:hover{transform:rotate(0deg) translateY(-6px)}
.plate img{border-radius:14px;border:1px solid var(--ink);box-shadow:0 10px 22px rgba(38,34,28,.18)}
.plate p{margin-top:12px;font-size:.9rem;color:var(--muted)}

/* ---------- big quote in knot ring ---------- */
.quote-ring{padding:90px 0;text-align:center}
.quote-ring blockquote{
  max-width:760px;margin:0 auto;font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.2rem);
  font-style:italic;padding:56px 60px;position:relative;
}
.quote-ring blockquote::before,.quote-ring blockquote::after{
  content:"";position:absolute;inset:0;border:3px solid var(--gold);border-radius:50%;
}
.quote-ring blockquote::after{inset:10px;border-color:var(--forest);border-radius:47% 53% 50% 50%/52% 48% 52% 48%}
.quote-ring cite{display:block;margin-top:22px;font-family:var(--sans);font-style:normal;font-weight:700;font-size:.95rem;color:var(--muted)}

/* ---------- loose knot pricing entry ---------- */
.loose-knot{padding:70px 0;text-align:center}
.loose-knot a{display:inline-flex;align-items:center;gap:22px;padding:20px 34px;border:1px dashed var(--gold);border-radius:14px;color:var(--ink);font-family:var(--serif);font-size:1.5rem;transition:background .2s,transform .2s}
.loose-knot a:hover{background:rgba(176,141,62,.1);transform:translateY(-3px);color:var(--forest)}
.loose-knot svg{width:74px;height:74px;flex:none}

/* ---------- newsletter / hearth letter ---------- */
.hearth{padding:80px 0;text-align:center;background:var(--parch-deep);border-top:1px solid var(--line)}
.hearth form{max-width:480px;margin:26px auto 0;display:flex;gap:10px}
.hearth input{flex:1;padding:14px 16px;border:1px solid var(--ink);border-radius:8px;background:var(--parch);font-family:var(--sans);font-size:1rem}
.hearth-success{font-family:var(--serif);font-size:1.5rem;color:var(--forest);margin-top:22px}

/* ---------- features: weaver's bench ---------- */
.bench-panel{display:flex;gap:44px;align-items:center;margin:70px 0}
.bench-panel:nth-child(even){flex-direction:row-reverse}
.bench-panel img{width:50%;border:1px solid var(--ink);border-radius:var(--radius);box-shadow:0 12px 26px rgba(38,34,28,.14)}
.bench-copy h3{font-size:2rem;margin-bottom:14px;color:var(--forest)}
.bench-icons{display:flex;justify-content:center;gap:44px;padding:50px 0 20px;flex-wrap:wrap}
.bench-icons figure{text-align:center;width:130px}
.bench-icons svg{width:64px;height:64px;margin:0 auto 10px}
.bench-icons figcaption{font-size:.88rem;font-weight:700}

/* ---------- pricing: knot board ---------- */
.promo-bar{
  background:var(--rust);color:var(--parch);text-align:center;padding:12px 20px;
  font-weight:800;letter-spacing:.06em;border-radius:8px;margin:26px auto;max-width:640px;
}
.trust-bar{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin:34px 0;color:var(--muted);font-size:.92rem;font-weight:700}
.trust-bar span::before{content:"◈ ";color:var(--gold)}
.knot-board{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:44px 0}
.knot-piece{
  position:relative;background:var(--parch);border:1px solid var(--ink);border-radius:var(--radius);
  padding:30px 18px 24px;text-align:center;cursor:pointer;
  transition:transform .2s,box-shadow .2s;
}
.knot-piece:hover{transform:translateY(-5px);box-shadow:0 12px 26px rgba(38,34,28,.16)}
.knot-piece .knot-svg{width:110px;height:110px;margin:0 auto 16px}
.knot-piece .knot-svg svg{width:100%;height:100%;transition:transform .5s ease,opacity .5s ease}
.knot-piece.open .knot-svg svg{transform:rotate(140deg) scale(.82);opacity:.55}
.knot-piece h3{font-size:1.5rem}
.knot-piece .price{font-family:var(--serif);font-size:1.9rem;font-weight:700;color:var(--forest);margin-top:6px}
.knot-medal{
  position:absolute;top:-14px;right:-10px;width:52px;height:52px;border-radius:50%;
  background:var(--gold);border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;
  font-size:.55rem;font-weight:800;text-align:center;line-height:1.1;letter-spacing:.03em;
  box-shadow:0 6px 14px rgba(38,34,28,.25);transform:rotate(8deg);
}
.knot-detail{
  grid-column:1/-1;display:none;border:1px solid var(--ink);border-radius:var(--radius);
  background:var(--parch-deep);padding:34px;overflow:hidden;
}
.knot-detail.show{display:block;animation:slideDown .45s ease}
@keyframes slideDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}
.knot-detail h3{margin-bottom:6px}
.knot-detail ul{list-style:none;margin:18px 0}
.knot-detail li{padding:7px 0 7px 30px;position:relative;border-bottom:1px dashed var(--line)}
.knot-detail li::before{
  content:"";position:absolute;left:2px;top:12px;width:13px;height:13px;
  border:2.5px solid var(--gold);border-radius:50% 0 50% 0;transform:rotate(45deg);
}
.knot-detail .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:20px}

/* ---------- compare table ---------- */
.compare-wrap{overflow-x:auto;margin:50px 0 20px}
table.compare{width:100%;border-collapse:collapse;min-width:720px;background:var(--parch)}
table.compare th,table.compare td{border:1px solid var(--line);padding:13px 16px;text-align:center;font-size:.94rem}
table.compare thead th{background:var(--parch-deep);font-family:var(--serif);font-size:1.25rem;border-bottom:2px solid var(--ink)}
table.compare td:first-child,table.compare th:first-child{text-align:left;font-weight:700}
table.compare .hl{background:rgba(46,94,78,.1)}
table.compare thead th.hl{background:var(--forest);color:var(--parch)}
table.compare .hl td{border-color:var(--forest)}
.renew-line{text-align:center;color:var(--muted);font-size:.92rem;margin:18px 0 40px}

/* ---------- plan scroll page ---------- */
.crumbs{font-size:.88rem;color:var(--muted);margin:26px 0 10px}
.crumbs a{color:var(--forest)}
.plan-head h1{margin-bottom:6px}
.byline{color:var(--muted);margin-bottom:8px}
.star-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.rank-line{font-size:.85rem;color:var(--muted)}
.scroll{
  max-width:680px;margin:40px auto;padding:56px 52px;position:relative;
  background:linear-gradient(180deg,var(--parch) 0%,var(--parch-deep) 100%);
  border:1px solid var(--ink);
  box-shadow:0 18px 44px rgba(38,34,28,.2);
}
.scroll::before,.scroll::after{
  content:"";position:absolute;left:-26px;right:-26px;height:30px;
  background:linear-gradient(180deg,#8a6a45,#6e5334);
  border:1px solid var(--ink);border-radius:15px;
}
.scroll::before{top:-16px}
.scroll::after{bottom:-16px}
.scroll section{margin-bottom:44px}
.scroll h2{font-size:1.7rem;color:var(--forest);margin-bottom:16px;border-bottom:2px solid var(--gold);padding-bottom:8px;display:inline-block}
.scroll-gallery .main-img{border:1px solid var(--ink);border-radius:8px;cursor:zoom-in;width:100%}
.thumb-row{display:flex;gap:12px;margin-top:14px}
.thumb-row img{width:calc(33.33% - 8px);border:1px solid var(--ink);border-radius:6px;cursor:pointer;transition:transform .18s}
.thumb-row img:hover{transform:translateY(-3px);border-color:var(--gold)}
.strand-list{list-style:none}
.strand-list li{padding:9px 0 9px 34px;position:relative;border-bottom:1px dashed var(--line)}
.strand-list li::before{
  content:"";position:absolute;left:4px;top:15px;width:14px;height:14px;
  border:3px solid var(--forest);border-radius:50% 0 50% 0;transform:rotate(45deg);
}
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
.spec-grid div{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:.93rem}
.spec-grid dt{font-weight:800;color:var(--muted)}
.spec-grid dd{text-align:right}
.big-quote{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--forest);border-left:4px solid var(--gold);padding-left:20px;margin:10px 0}

/* reviews */
.reviews-summary{display:flex;gap:34px;align-items:center;margin-bottom:26px;flex-wrap:wrap}
.big-score{font-family:var(--serif);font-size:3.4rem;font-weight:700;color:var(--forest)}
.dist-bars{flex:1;min-width:230px}
.dist-row{display:flex;align-items:center;gap:10px;font-size:.82rem;margin-bottom:5px}
.dist-row .bar{flex:1;height:10px;background:var(--parch-deep);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.dist-row .bar i{display:block;height:100%;background:var(--forest)}
.review{border-top:1px solid var(--line);padding:20px 0}
.review p{margin:8px 0}
.review .meta{font-size:.84rem;color:var(--muted)}
.review .helpful{font-size:.8rem;color:var(--gold);font-weight:700}

/* seal of accord (purchase block) */
.seal{border:2px solid var(--gold);border-radius:12px;padding:34px;text-align:center;background:var(--parch);position:relative}
.seal::before{
  content:"";position:absolute;top:-24px;left:50%;transform:translateX(-50%);
  width:48px;height:48px;border-radius:50%;background:var(--rust);border:2px solid var(--ink);
  box-shadow:inset 0 0 0 5px rgba(243,236,220,.35);
}
.seal .big-price{font-family:var(--serif);font-size:3rem;font-weight:700;color:var(--forest)}
.seal .per{font-size:1rem;color:var(--muted)}
.seal .bill-note{font-size:.85rem;color:var(--muted);margin:6px 0 18px}
.seal .qty-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.seal label{font-size:.82rem;font-weight:800;color:var(--muted);display:block;text-align:left;margin-bottom:4px}
.seal select,.seal input{padding:10px 12px;border:1px solid var(--ink);border-radius:8px;background:var(--parch);font-family:var(--sans);font-size:.95rem}
.seal .cta-col{display:grid;gap:12px;max-width:380px;margin:0 auto}
.delivery-line{color:var(--gold);font-weight:800;margin-top:18px}
.assure{font-size:.85rem;color:var(--muted);margin-top:14px;line-height:1.9}
.sold-by{margin-top:16px;font-size:.88rem;font-weight:700}
.trial-note{font-size:.8rem;color:var(--muted)}

/* also like */
.also-like{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:26px 0 10px}
.mini-scroll{text-align:center;padding:22px 18px}
.mini-scroll .p{font-family:var(--serif);font-size:1.5rem;color:var(--forest);font-weight:700}
.mini-scroll img{border:1px solid var(--ink);border-radius:8px;margin-bottom:12px}

/* ---------- cart ---------- */
.demo-bar{background:var(--rust);color:var(--parch);text-align:center;padding:9px 16px;font-size:.85rem;font-weight:700;letter-spacing:.04em}
.cart-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:36px;margin:40px 0}
.cart-item{display:flex;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.cart-item img{width:110px;border:1px solid var(--ink);border-radius:8px}
.cart-item .grow{flex:1}
.cart-item h3{font-size:1.25rem}
.cart-item .qty{display:flex;align-items:center;gap:8px;margin-top:8px}
.cart-item .qty input{width:64px;padding:7px;border:1px solid var(--ink);border-radius:6px;background:var(--parch)}
.remove-link{font-size:.82rem;color:var(--rust);font-weight:700;background:none;border:none;cursor:pointer;padding:0}
.summary{position:sticky;top:96px}
.summary .row{display:flex;justify-content:space-between;padding:8px 0;font-size:.95rem}
.summary .total{border-top:2px solid var(--ink);margin-top:10px;padding-top:14px;font-family:var(--serif);font-size:1.5rem;font-weight:700}
.promo-row{display:flex;gap:10px;margin:14px 0}
.promo-row input{flex:1;padding:11px;border:1px solid var(--ink);border-radius:8px;background:var(--parch)}
.promo-ok{color:var(--forest);font-weight:700;font-size:.85rem}
.empty-state{text-align:center;padding:90px 20px}
.empty-state h2{margin-bottom:14px}
.empty-state p{color:var(--muted);margin-bottom:26px}

/* ---------- checkout ---------- */
.checkout{max-width:560px;margin:44px auto}
.checkout .card{padding:36px}
.form-field{margin-bottom:18px}
.form-field label{display:block;font-weight:800;font-size:.86rem;margin-bottom:6px}
.form-field input{width:100%;padding:13px 14px;border:1px solid var(--ink);border-radius:8px;background:var(--parch);font-family:var(--sans);font-size:1rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.order-lines{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:14px 0;margin:20px 0}
.order-lines .row{display:flex;justify-content:space-between;font-size:.92rem;padding:4px 0}
.order-lines .total{font-weight:800;border-top:1px solid var(--line);margin-top:8px;padding-top:10px}
.success-seal{text-align:center;padding:30px 10px}
.success-seal .wax{width:84px;height:84px;border-radius:50%;background:var(--rust);border:2px solid var(--ink);margin:0 auto 22px;box-shadow:inset 0 0 0 9px rgba(243,236,220,.35)}
.success-seal h2{color:var(--forest);margin-bottom:12px}

/* ---------- faq accordion ---------- */
.faq-item{border:1px solid var(--ink);border-radius:var(--radius);margin-bottom:14px;background:var(--parch);overflow:hidden}
.faq-q{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;
  padding:20px 24px;font-family:var(--serif);font-size:1.25rem;font-weight:700;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.faq-q::after{content:"";flex:none;width:16px;height:16px;border:3px solid var(--gold);border-radius:50% 0 50% 0;transform:rotate(45deg);transition:transform .3s}
.faq-item.open .faq-q::after{transform:rotate(225deg);border-color:var(--forest)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a div{padding:0 24px 22px;color:var(--ink)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;margin:44px 0;align-items:start}
textarea{width:100%;padding:13px 14px;border:1px solid var(--ink);border-radius:8px;background:var(--parch);font-family:var(--sans);font-size:1rem;min-height:140px;resize:vertical}
.company-card p{margin-bottom:8px;font-size:.94rem}
.company-card .lbl{font-weight:800;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}

/* ---------- about ---------- */
.about-story{max-width:720px;margin:0 auto}
.about-story p{margin-bottom:22px;font-size:1.06rem}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:56px 0}
.values .card h3{color:var(--forest);margin-bottom:10px;font-size:1.3rem}
.work-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0 10px}
.work-gallery img{border:1px solid var(--ink);border-radius:var(--radius)}

/* ---------- legal ---------- */
.legal-body{max-width:740px;margin:36px auto}
.legal-body h2{font-size:1.4rem;color:var(--forest);margin:30px 0 12px}
.legal-body p{margin-bottom:14px}
.legal-body ul{margin:0 0 14px 22px}
.legal-body li{margin-bottom:6px}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:90;background:rgba(38,34,28,.88);display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.show{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;border:3px solid var(--gold);border-radius:10px;background:var(--parch)}
.lightbox button{position:absolute;top:22px;right:28px;background:var(--parch);border:1px solid var(--ink);border-radius:50%;width:44px;height:44px;font-size:1.3rem;cursor:pointer}

/* ---------- section headings ---------- */
.sec-head{text-align:center;padding:70px 0 10px}
.sec-head h2{margin-bottom:12px}
.sec-head p{color:var(--muted);max-width:560px;margin:0 auto}
.page-head{padding:60px 0 10px;text-align:center}
.page-head p{color:var(--muted);max-width:620px;margin:10px auto 0}

/* ---------- responsive ---------- */
@media (max-width:920px){
  .knot-board{grid-template-columns:repeat(2,1fr)}
  .bench-panel,.bench-panel:nth-child(even){flex-direction:column}
  .bench-panel img{width:100%}
  .cart-grid,.contact-grid{grid-template-columns:1fr}
  .also-like,.values,.work-gallery{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .strand-row,.strand-row:nth-child(even){flex-direction:column;text-align:center}
  .strand-body p{margin:0 auto}
  .strand-line{display:none}
  .spec-grid{grid-template-columns:1fr}
  .scroll{padding:44px 26px}
  .nav-inner{flex-wrap:wrap}
}
@media (max-width:560px){
  .knot-board{grid-template-columns:1fr}
  .hearth form{flex-direction:column}
  .form-row{grid-template-columns:1fr}
}
/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .weave-draw{stroke-dashoffset:0}
}
