/* Dove House: shop, product, checkout and content pages */
.page-hd{padding:clamp(36px,6vw,80px) 0 var(--s6);border-bottom:1px solid rgba(195,162,103,.55)}
.page-hd h1{font-size:clamp(2.6rem,5.6vw,4.8rem);margin:var(--s2) 0 var(--s3)}
.crumbs{font-size:var(--t-sm);color:var(--ink-2);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--ink-2)}
.crumbs [aria-current]{color:var(--ink)}
.hair{height:1px;background:var(--brass);border:0}

/* Shop */
.shop{display:grid;grid-template-columns:250px 1fr;gap:clamp(24px,4vw,56px);padding-top:var(--s6);padding-bottom:var(--s9)}
.filters{position:sticky;top:calc(var(--hdr) + 16px);align-self:start;max-height:calc(100vh - var(--hdr) - 32px);overflow:auto}
.filters summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:600;min-height:48px;padding:0 var(--s4);border:1px solid var(--taupe);border-radius:var(--r1)}
.filters summary::-webkit-details-marker{display:none}
.filters summary::after{content:"+";font-size:1.3rem}
.filters[open] summary::after{content:"–"}
@media (min-width:900px){.filters summary{display:none}}
.fgroup{padding:var(--s4) 0;border-bottom:var(--line);margin:0}
.fgroup legend{font-family:var(--f-display);font-weight:400;font-size:1.45rem;margin-bottom:var(--s2);float:left;width:100%}
.fgroup legend+*{clear:both}
.fopt{display:flex;align-items:center;gap:var(--s3);min-height:38px;cursor:pointer;font-size:var(--t-sm);border-radius:var(--r1);transition:color var(--dur)}
.fopt:hover{color:var(--earth);text-decoration:underline;text-decoration-color:var(--brass-deep)}
.fopt input{accent-color:var(--walnut);width:18px;height:18px;margin:0;flex:0 0 auto}
.fopt .n{margin-left:auto;color:var(--ink-2);font-variant-numeric:tabular-nums}
.swatch{display:inline-block;width:18px;height:18px;border-radius:50%;border:1px solid rgba(54,37,27,.3);flex:0 0 auto}
.sw-walnut{background:var(--earth)}
.sw-walnut-d{background:var(--walnut)}
.sw-brass{background:linear-gradient(135deg,var(--brass-deep),var(--brass) 50%,var(--brass-deep))}
.sw-marble{background:linear-gradient(135deg,var(--marble) 40%,var(--brass) 46%,var(--marble) 52%,var(--marble))}
.sw-linen{background:var(--linen)}
.sw-linen-t{background:var(--taupe)}
.sw-linen-d{background:var(--earth)}
.sw-boucle{background:radial-gradient(circle,var(--alabaster) 0 1.4px,transparent 2px) 0 0/5px 5px,var(--boucle)}
.sw-alabaster{background:var(--alabaster)}
.toolbar{display:flex;min-width:0;justify-content:space-between;align-items:center;gap:var(--s3) var(--s5);margin-bottom:var(--s5);flex-wrap:wrap}
.toolbar p{margin:0;font-weight:600}
.toolbar label{display:flex;align-items:center;gap:var(--s3);font-size:var(--t-sm)}
.toolbar select{min-height:44px;padding:0 var(--s4);border:1px solid var(--taupe);border-radius:var(--r1);background:var(--alabaster)}
.toolbar .chips{flex:1}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s6) var(--s5)}
.pcard{position:relative;text-decoration:none;display:flex;flex-direction:column;gap:var(--s2)}
.pcard__art{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r1);border:1px solid transparent;transition:border-color var(--dur) var(--ease);background:var(--boucle);margin-bottom:var(--s2)}
.pcard__art svg{width:100%;height:100%;transition:transform 1.1s var(--ease)}
.pcard:hover .pcard__art{border-color:var(--brass)}
.pcard:hover .pcard__art svg{transform:scale(1.05)}
.pcard h3{font-size:1.45rem}
.pcard:hover h3{text-decoration:underline;text-decoration-color:var(--brass-deep);text-decoration-thickness:1px;text-underline-offset:.18em}
.pcard__meta{display:flex;justify-content:space-between;gap:var(--s3);font-size:var(--t-sm)}
.pcard__mat{color:var(--ink-2)}
.pcard__price{font-weight:600;white-space:nowrap}
.pcard .badges{position:absolute;top:10px;left:10px;display:flex;gap:6px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:7px;min-height:26px;padding:0 10px;border:1px solid var(--brass-deep);border-radius:var(--r1);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--walnut);background:rgba(249,248,246,.9)}
.badge::before{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--brass-deep)}
.skel .pcard__art{background:linear-gradient(90deg,var(--boucle),var(--linen),var(--boucle));background-size:200% 100%;animation:sh 1.4s infinite linear}
.skel .bar{height:14px;background:var(--linen);border-radius:2px;margin-top:6px}
@keyframes sh{to{background-position:-200% 0}}
@media (max-width:899px){.shop{grid-template-columns:1fr;padding-top:var(--s5)}.filters summary{margin-bottom:var(--s2)}.filters{position:static;max-height:none}.filters[open] form{padding:0 var(--s2)}}

/* Product page */
.pdp{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,80px);padding:var(--s5) 0 var(--s8)}
.gal{display:grid;grid-template-columns:76px 1fr;gap:var(--s4);align-self:start;position:sticky;top:calc(var(--hdr) + 16px)}
.gal__main{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r1);background:var(--boucle);border:1px solid rgba(195,162,103,.55)}
#gart,#gart svg{width:100%;height:100%}
.gal__main svg{animation:fade .5s var(--ease)}
.gal__cap{position:absolute;left:12px;bottom:12px;background:rgba(249,248,246,.92);padding:4px 10px;font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.gal__thumbs{display:flex;flex-direction:column;gap:var(--s3)}
.gal__thumbs button{padding:0;border:1px solid rgba(54,37,27,.15);border-radius:var(--r1);overflow:hidden;cursor:pointer;aspect-ratio:1;background:none;transition:border-color var(--dur),transform var(--dur) var(--ease)}
.gal__thumbs button:hover{border-color:var(--brass);transform:scale(1.04)}
.gal__thumbs button[aria-pressed="true"]{border-color:var(--walnut);box-shadow:0 0 0 1px var(--walnut)}
.gal__thumbs svg{width:100%;height:100%}
.gal__nav{position:absolute;right:12px;bottom:12px;display:flex;gap:6px}
.gal__nav button{width:44px;height:44px;border:1px solid var(--brass-deep);background:rgba(249,248,246,.92);cursor:pointer;border-radius:var(--r1);transition:background-color var(--dur)}
.gal__nav button:hover{background:var(--boucle)}
@media (max-width:899px){.pdp{grid-template-columns:1fr}.gal{position:static;grid-template-columns:1fr}.gal__thumbs{flex-direction:row;order:2;overflow-x:auto}.gal__thumbs button{flex:0 0 68px}}
.pinfo h1{font-size:clamp(2.4rem,4.4vw,3.8rem);margin:0 0 var(--s4)}
.pinfo .badges{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s5)}
.price{font-family:var(--f-display);font-size:2.3rem;line-height:1;margin:0}
.price small{font-family:var(--f-body);font-size:var(--t-sm);color:var(--ink-2);margin-left:8px}
.opt{margin:var(--s5) 0}
.opt legend{display:flex;justify-content:space-between;gap:var(--s4);width:100%;font-weight:600;font-size:var(--t-sm)}
.opt legend .muted{font-weight:400}
.seg{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s2)}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.seg label>span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 var(--s4);border:1px solid var(--taupe);border-radius:var(--r1);font-size:var(--t-sm);background:var(--alabaster);transition:border-color var(--dur),background-color var(--dur),transform var(--dur) var(--ease)}
.seg label:hover>span{border-color:var(--brass-deep);transform:translateY(-1px)}
.seg input:checked+span{border-color:var(--walnut);background:var(--boucle);box-shadow:inset 0 0 0 1px var(--walnut)}
.seg input:focus-visible+span{outline:2px solid var(--walnut);outline-offset:3px}
.seg .d{color:var(--ink-2)}
.opt.has-err .seg label>span{border-style:dashed;border-color:var(--walnut)}
.buy{display:flex;gap:var(--s3);align-items:stretch;margin:var(--s5) 0}
.buy .qty{min-height:48px}
.buy .btn{flex:1}
.lead{display:flex;gap:var(--s3);align-items:flex-start;font-size:var(--t-sm);padding:var(--s4);background:var(--boucle);border-radius:var(--r1);border-left:2px solid var(--brass-deep)}
.lead span:first-child{color:var(--brass-deep)}
.acc{border-top:1px solid rgba(195,162,103,.65);margin-top:var(--s6)}
.acc details{border-bottom:1px solid rgba(195,162,103,.65)}
.acc summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);min-height:60px;cursor:pointer;font-family:var(--f-display);font-size:1.45rem;list-style:none;transition:color var(--dur)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";flex:0 0 10px;width:10px;height:10px;border-right:1.5px solid var(--walnut);border-bottom:1.5px solid var(--walnut);transform:rotate(45deg) translate(-3px,-3px);transition:transform var(--dur) var(--ease)}
.acc details[open] summary::after{transform:rotate(-135deg)}
.acc summary:hover{color:var(--earth)}
.acc__bd{padding:0 0 var(--s5);color:var(--ink-2)}
.acc details[open] .acc__bd{animation:fade .45s var(--ease)}
.acc dl{display:grid;grid-template-columns:auto 1fr;gap:6px var(--s5);margin:0}
.acc dt{font-weight:600;color:var(--ink)}
.acc dd{margin:0}

/* Checkout */
.co{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,5vw,72px);padding:var(--s5) 0 var(--s9)}
.co aside{position:sticky;top:calc(var(--hdr) + 16px);align-self:start;background:var(--boucle);padding:var(--s5);border-radius:var(--r1);border:1px solid rgba(195,162,103,.55)}
.co aside .citem{grid-template-columns:64px 1fr auto}
.co aside .art{width:64px}
.scen{border:1px dashed var(--taupe);padding:var(--s4);border-radius:var(--r1);margin-bottom:var(--s5);background:var(--marble)}
.scen .input{margin-top:6px}
.supplier{margin-top:var(--s4)}
@media (max-width:899px){.co{grid-template-columns:1fr}.co aside{position:static;order:-1}}

/* Content pages */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
@media (max-width:899px){.split{grid-template-columns:1fr}}
.arch{border-radius:var(--arch);overflow:hidden;aspect-ratio:4/5;max-width:520px}
.arch>div,.arch svg{width:100%;height:100%}
.mats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s5)}
.mat .sw{aspect-ratio:3/4;border-radius:var(--arch);overflow:hidden;margin-bottom:var(--s4);transition:transform var(--dur) var(--ease)}
.mat .sw svg{width:100%;height:100%}
.mat:hover .sw{transform:translateY(-4px)}
.mat h3{margin-bottom:var(--s2)}
.mat .src{font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
@media (max-width:899px){.mats{grid-template-columns:1fr 1fr}}
.steps{display:grid;border-top:1px solid rgba(195,162,103,.65)}
.step{display:grid;grid-template-columns:110px 1fr 1.3fr;gap:var(--s5);padding:var(--s6) 0;border-bottom:1px solid rgba(195,162,103,.65);align-items:baseline}
.step__n{font-family:var(--f-display);font-size:3rem;line-height:1;color:var(--taupe)}
.step p{margin:0;color:var(--ink-2)}
@media (max-width:700px){.step{grid-template-columns:1fr;gap:var(--s2)}}
.jgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:var(--s6) var(--s5);padding:var(--s7) 0 var(--s9)}
.jcard{text-decoration:none;display:flex;flex-direction:column;gap:var(--s2)}
.jcard__art{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r1);border:1px solid transparent;transition:border-color var(--dur);margin-bottom:var(--s3)}
.jcard:hover .jcard__art{border-color:var(--brass)}
.jcard__art svg{width:100%;height:100%;transition:transform 1.1s var(--ease)}
.jcard:hover .jcard__art svg{transform:scale(1.05)}
.jcard h3{font-size:1.8rem}
.jcard .eyebrow{margin:0}
@media (max-width:899px){.jgrid{grid-template-columns:1fr}}
.art-hero{aspect-ratio:16/6;overflow:hidden;border-radius:var(--r1);margin:0 0 var(--s7);border:1px solid rgba(195,162,103,.55)}
.art-hero svg{width:100%;height:100%}
.prose{max-width:680px;margin:0 auto;padding-bottom:var(--s9)}
.prose p{font-size:1.125rem}
.prose .lede{font-size:1.4rem;color:var(--ink)}
.prose h2{font-size:2.2rem;margin:var(--s7) 0 var(--s4)}
.prose blockquote{margin:var(--s6) 0;padding-left:var(--s5);border-left:2px solid var(--brass-deep);font-family:var(--f-display);font-size:2rem;line-height:1.2;font-style:italic}
.more{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2)}
.more a{font-family:var(--f-display);font-size:1.6rem;text-decoration-color:var(--brass-deep)}
.contact{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(32px,6vw,96px);padding-top:var(--s7);padding-bottom:var(--s9)}
@media (max-width:899px){.contact{grid-template-columns:1fr}}
.showroom{padding:var(--s5);background:var(--boucle);border:1px solid rgba(195,162,103,.55);border-radius:var(--r1);align-self:start;position:sticky;top:calc(var(--hdr) + 16px)}
@media (max-width:899px){.showroom{position:static}}
.showroom h2{font-size:2rem;margin:var(--s4) 0 var(--s3)}
.hours{display:grid;grid-template-columns:auto 1fr;gap:4px var(--s5);margin:var(--s4) 0;font-size:var(--t-sm)}
.hours dd{margin:0}
.hours .today{font-weight:600}
.legal-nav{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s5)}
.banner{padding:var(--s4) var(--s5);border:1px solid var(--brass-deep);border-left:4px solid var(--walnut);background:var(--boucle);border-radius:var(--r1);font-size:var(--t-sm)}
.legal{padding-top:var(--s6);padding-bottom:var(--s9)}.legal>*{max-width:760px}
.legal section{padding-top:var(--s7);scroll-margin-top:calc(var(--hdr) + 16px)}
.legal h2{font-size:2.3rem;margin-bottom:var(--s4)}
.legal h3{font-size:1.4rem;margin:var(--s5) 0 var(--s2)}
.legal li{margin-bottom:6px}
.cta{text-align:center}
.cta h2{max-width:18ch;margin:0 auto var(--s5)}
.cta .btn{margin-top:var(--s4)}