/* Divano Rugs styles. */
:root{
  /* Accent: a dark terracotta. Buttons, links and state only. */
  --accent:#9a3f22;
  --accent-ink:#ffffff;
  --accent-hover:#7f3219;
  --accent-soft:#f3e3dc;
  --bg:#fcfaf8;          /* Showroom White */
  --cream:#f6f1ec;       /* Lounge Cream */
  --ink:#2b2522;
  --muted:#6b625c;
  --hair:#e2dbd5;
  --font:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gut:16px;
  --max:1280px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--font);overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
img,svg{max-width:100%}
a{color:var(--accent);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:12px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
h1,h2,h3{font-weight:600;line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(1.75rem,5vw,2.75rem)}
h2{font-size:clamp(1.375rem,3.5vw,1.875rem)}
h3{font-size:1.0625rem}
p{margin:0 0 1em}
.eyebrow{font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--muted);margin:0 0 .75em}
.muted{color:var(--muted)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}


/* header */
.site-header{border-bottom:1px solid var(--hair);background:var(--bg);position:sticky;top:0;z-index:20}
.hdr{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:60px}
.logo{font-weight:700;font-size:1.25rem;color:var(--ink);text-decoration:none;letter-spacing:-.02em;margin-right:auto;min-height:44px;display:flex;align-items:center}
.logo img{display:block;height:24px;width:auto}
.flogo{display:block;height:22px;width:auto;margin-bottom:4px}
@media(max-width:379px){.logo img{height:18px}}
@media(min-width:900px){.logo img{height:28px}}
.nav-toggle{min-width:44px;min-height:44px;background:none;border:1px solid var(--hair);border-radius:4px;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;padding:0 12px}
.nav{display:none;width:100%;order:5}
.nav.open{display:block;padding-bottom:12px}
.nav ul{list-style:none;margin:0;padding:0}
.nav a{display:flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--hair)}
.nav a:hover,.nav a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.cartlink{min-height:44px;min-width:44px;display:flex;align-items:center;color:var(--ink);text-decoration:none;font-weight:500}
@media(min-width:900px){
  .nav-toggle{display:none}
  .nav{display:block;width:auto;order:0;padding:0;margin-right:auto}
  .logo{margin-right:32px}
  .nav ul{display:flex;gap:4px}
  .nav a{border:0;padding:0 12px}
  .hdr{flex-wrap:nowrap}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:2px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:600 .875rem/1 var(--font);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--cream)}
.btn.block{width:100%}

/* Drawn rug art (CSS), used when an image is not available. */
.ph{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--hair);background:#ddd3c8;isolation:isolate}
.ph.sq{aspect-ratio:1}
.ph::before{content:"";position:absolute;inset:8%;z-index:0;border:3px solid var(--c3);background-color:var(--c1)}
.ph::after{content:"";position:absolute;inset:8%;z-index:1;background:var(--pattern);background-size:var(--ps,36px 36px)}
.ph.round::before,.ph.round::after{border-radius:50%;inset:6%;aspect-ratio:1}
.ph.runner::before,.ph.runner::after{inset:4% 34%}
/* Images. Flat lays are contained on a studio grey; rooms, texture and pile are cropped to fill. */
.pic{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--hair);background:#e3e0db;isolation:isolate}
.pic img{display:block;width:100%;height:100%;object-fit:contain}
.pic.cover img{object-fit:cover}
.pic .pat-stripe{--pattern:repeating-linear-gradient(90deg,var(--c2) 0 12px,transparent 12px 36px,var(--c3) 36px 40px,transparent 40px 70px);--ps:auto}
.pat-diamond{--pattern:linear-gradient(45deg,transparent 45%,var(--c2) 45% 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,var(--c3) 45% 55%,transparent 55%);--ps:38px 38px}
.pat-check{--pattern:conic-gradient(var(--c2) 25%,transparent 0 50%,var(--c2) 0 75%,transparent 0);--ps:46px 46px}
.pat-dots{--pattern:radial-gradient(circle at 50% 50%,var(--c2) 0 26%,transparent 27%),radial-gradient(circle at 0 0,var(--c3) 0 12%,transparent 13%);--ps:34px 34px}
.pat-wave{--pattern:radial-gradient(circle at 100% 50%,transparent 0 40%,var(--c2) 41% 48%,transparent 49%),radial-gradient(circle at 0 50%,transparent 0 40%,var(--c3) 41% 48%,transparent 49%);--ps:48px 48px}
.pat-abstract{--pattern:radial-gradient(ellipse 40% 30% at 25% 30%,var(--c2) 0 90%,transparent 92%),radial-gradient(ellipse 35% 45% at 70% 65%,var(--c3) 0 90%,transparent 92%),radial-gradient(ellipse 20% 20% at 75% 20%,var(--c2) 0 90%,transparent 92%);--ps:100% 100%}
.pat-plain{--pattern:repeating-linear-gradient(0deg,rgba(255,255,255,.14) 0 2px,transparent 2px 6px);--ps:auto}
.pat-border{--pattern:linear-gradient(var(--c2),var(--c2)),repeating-linear-gradient(90deg,var(--c3) 0 6px,transparent 6px 14px);--ps:64% 72%,auto}
.pat-border::after{background-position:center,0 0;background-repeat:no-repeat,repeat}
.ph.zoom.pat-border::after{background-size:64% 72%,auto}
.pat-tribal{--pattern:linear-gradient(135deg,var(--c2) 25%,transparent 25%) -18px 0/36px 36px,linear-gradient(225deg,var(--c2) 25%,transparent 25%) -18px 0/36px 36px,linear-gradient(315deg,var(--c3) 25%,transparent 25%) 0 0/36px 36px;--ps:auto}
/* texture close-up: bigger pattern, fills frame */
.ph.zoom::before,.ph.zoom::after{inset:0;border:0;border-radius:0}
.ph.zoom::after{background-size:110px 110px}
.ph.zoom.pat-stripe::after{background-size:auto}
.ph.zoom.pat-stripe{--pattern:repeating-linear-gradient(90deg,var(--c2) 0 40px,transparent 40px 120px,var(--c3) 120px 132px,transparent 132px 200px)}
.ph.zoom.pat-plain{--pattern:repeating-linear-gradient(0deg,rgba(255,255,255,.2) 0 3px,transparent 3px 9px)}
.ph.zoom.pat-border,.ph.zoom.pat-abstract{--ps:auto}
/* pile side view */
.ph.pile{background:var(--cream)}
.ph.pile::before{inset:auto 6% 34% 6%;height:30%;border:0;background:repeating-linear-gradient(90deg,var(--c2) 0 3px,var(--c1) 3px 5px,var(--c3) 5px 6px,var(--c1) 6px 9px);border-top:2px solid var(--c2)}
.ph.pile::after{inset:auto 6% 28% 6%;height:6%;background:#8d8379;opacity:.6}
/* room scene */
.ph.room{background:linear-gradient(#ece4dc 0 56%,#cdbfae 56%)}
.ph.room::before,.ph.room::after{inset:auto 12% 10% 12%;height:34%;transform:perspective(300px) rotateX(50deg);transform-origin:50% 100%;border-width:2px}
.ph.room .sofa{position:absolute;left:16%;right:16%;top:26%;height:26%;background:#8a8f94;border-radius:8px 8px 2px 2px;z-index:0}
.ph.room .sofa::after{content:"";position:absolute;left:3%;right:3%;bottom:-10%;height:16%;background:#6f747a;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* hero + bands */
.band{padding:48px 0}
.band.cream{background:var(--cream)}
.hero{display:grid;gap:24px;padding:32px var(--gut) 40px;align-items:center}
.hero p.lead{font-size:1.125rem;color:var(--muted);max-width:34em}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.hero-art{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.hero-art .stack{display:grid;gap:8px}
@media(min-width:900px){.hero{grid-template-columns:1fr 1.2fr;gap:56px;padding:56px var(--gut)}.band{padding:72px 0}}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:700px){.tiles.six{grid-template-columns:repeat(3,1fr)}.tiles.five{grid-template-columns:repeat(5,1fr)}}
.tile{display:block;text-decoration:none;color:var(--ink)}
.tile .ph,.tile .pic{aspect-ratio:1}
.tile strong{display:block;margin-top:8px;font-weight:600}
.tile span.sub{color:var(--muted);font-size:.875rem}
.tile:hover strong{text-decoration:underline;text-underline-offset:4px}
.size-tiles .tile{border:1px solid var(--hair);padding:16px;min-height:96px;background:var(--bg);display:flex;flex-direction:column;justify-content:center}
.size-tiles .tile:hover{border-color:var(--ink)}
.size-tiles .tile strong{margin:0;font-variant-numeric:tabular-nums}
.teaser{display:grid;gap:24px;align-items:center}
@media(min-width:900px){.teaser{grid-template-columns:1fr 1fr;gap:56px}}
.fp{position:relative;aspect-ratio:3/2;background:#e8dfd5;border:1px solid var(--hair);overflow:hidden}
.fp .bed{position:absolute;left:30%;top:14%;width:40%;height:62%;background:#cfc5bb;border:1px solid #a89c90}
.fp .rug{position:absolute;left:22%;top:30%;width:56%;height:62%;background:var(--accent-soft);border:2px dashed var(--accent)}
.fp small{position:absolute;right:6px;top:6px;background:#fffdfb;border:1px solid var(--hair);font-size:.6875rem;padding:3px 6px}
.strip{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:700px){.strip{grid-template-columns:repeat(3,1fr)}}
.strip h3{margin-bottom:.25em}
.site-footer{background:var(--cream);border-top:1px solid var(--hair);padding:40px 0 24px;font-size:.9375rem}
.fcols{display:grid;gap:24px;grid-template-columns:1fr 1fr}
@media(min-width:800px){.fcols{grid-template-columns:2fr 1fr 1fr 1fr}}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li a{display:inline-flex;min-height:44px;align-items:center;color:var(--ink)}
.site-footer h2{font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--muted)}

/* collection */
.crumbs{font-size:.875rem;color:var(--muted);padding:12px 0}
.crumbs a{color:var(--muted)}
.toolbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.toolbar .count{margin-right:auto;color:var(--muted);font-size:.9375rem}
.sel{min-height:44px;font:inherit;padding:0 10px;border:1px solid var(--muted);background:var(--bg);color:var(--ink);border-radius:2px}
.layout{display:block}
.filters{position:fixed;inset:0 0 0 auto;width:min(92vw,380px);background:var(--bg);z-index:60;transform:translateX(100%);transition:transform .25s;overflow-y:auto;padding:16px var(--gut) 96px;box-shadow:0 4px 12px rgba(43,37,34,.12);visibility:hidden}
.filters.open{transform:none;visibility:visible}
.scrim{position:fixed;inset:0;background:rgba(43,37,34,.4);z-index:55;display:none}
.scrim.open{display:block}
.filters .fhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.filters .fhead h2{margin:0;font-size:1.125rem}
.filters .apply{position:fixed;bottom:0;right:0;width:min(92vw,380px);padding:12px var(--gut);background:var(--bg);border-top:1px solid var(--hair)}
.fgroup{border-bottom:1px solid var(--hair);padding:4px 0}
.fgroup summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600;list-style:none;justify-content:space-between}
.fgroup summary::-webkit-details-marker{display:none}
.fgroup summary::after{content:"+";font-weight:400;font-size:1.25rem}
.fgroup[open] summary::after{content:"\2212"}
.fopts{padding-bottom:12px;display:flex;flex-direction:column}
.fopt{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:.9375rem}
.fopt input{width:20px;height:20px;accent-color:var(--accent);margin:0;flex:none}
.fopt .dot{width:16px;height:16px;border-radius:50%;border:1px solid var(--muted);flex:none}
.fopt .n{color:var(--muted);margin-left:auto;font-size:.8125rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;min-height:20px}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--accent);background:var(--accent-soft);color:#5e2512;border-radius:999px;font:500 .875rem var(--font);cursor:pointer}
.chip:hover{background:#ecd3c8}
.chip.clear{border-color:var(--muted);background:none;color:var(--ink)}
.grid{list-style:none;margin:0;padding:0 0 40px;display:grid;grid-template-columns:repeat(2,1fr);gap:20px 12px}
.card a{display:block;color:var(--ink);text-decoration:none}
.card h3{margin:10px 0 2px;font-size:.9375rem;font-weight:600}
.card a:hover h3{text-decoration:underline;text-underline-offset:4px}
.card .meta{font-size:.8125rem;color:var(--muted);margin:0}
.card .price{font-weight:500;margin:4px 0 0;font-variant-numeric:tabular-nums}
.card .dots{display:flex;gap:4px;margin-top:6px}
.card .dots i{width:12px;height:12px;border-radius:50%;border:1px solid var(--muted)}
.empty{padding:40px 0;color:var(--muted)}
@media(min-width:900px){
  .layout{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}
  .filters{position:static;transform:none;visibility:visible;width:auto;padding:0;box-shadow:none;overflow:visible;transition:none}
  .filters .apply,.filters .closebtn,.filter-open{display:none}
  .scrim{display:none!important}
  .grid{grid-template-columns:repeat(4,1fr);gap:28px 16px}
}

/* product */
.pdp{display:grid;gap:24px;padding-bottom:40px}
@media(min-width:900px){.pdp{grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}.buy{position:sticky;top:84px}}
.gallery{display:grid;gap:8px;min-width:0}
.gal-main .ph,.gal-main .pic{aspect-ratio:1}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.thumb{padding:2px;border:2px solid transparent;background:none;cursor:pointer;min-height:44px;display:block}
.thumb .ph,.thumb .pic{aspect-ratio:1}
.thumb .thumb[aria-pressed=true]{border-color:var(--accent)}
.price-line{font-size:1.25rem;font-weight:400;font-variant-numeric:tabular-nums;margin:8px 0 2px}
.at-size{color:var(--muted);font-size:.9375rem;margin-bottom:16px;min-height:1.5em}
fieldset.field{border:0;padding:0;margin:20px 0;min-inline-size:0}
.field legend{font-weight:600;font-size:.9375rem;padding:0;margin-bottom:8px}
.field legend span{font-weight:400;color:var(--muted)}
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.sw{position:relative}
.sw input,.size-btn input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.sw label{display:block;width:44px;height:44px;border-radius:50%;border:1px solid var(--muted);box-shadow:inset 0 0 0 3px var(--bg);background:var(--sw)}
.sw input:checked+label{outline:2px solid var(--accent);outline-offset:2px}
.sw input:focus-visible+label{outline:3px solid var(--accent);outline-offset:3px}
.sizes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media(min-width:420px){.sizes{grid-template-columns:repeat(3,1fr)}}
.size-btn{position:relative}
.size-btn label{display:flex;flex-direction:column;justify-content:center;min-height:56px;padding:6px 10px;border:1px solid var(--muted);border-radius:2px;background:var(--bg);font-variant-numeric:tabular-nums;font-weight:600;font-size:.9375rem;line-height:1.3}
.size-btn label small{font-weight:400;color:var(--muted);font-size:.75rem}
.size-btn input:checked+label{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.size-btn input:focus-visible+label{outline:3px solid var(--accent);outline-offset:2px}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px}
.cta-note{font-size:.875rem;color:var(--muted);margin:10px 0 0}
.facts{margin:24px 0;border-top:1px solid var(--hair)}
.facts div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--hair);font-size:.9375rem}
.facts dt{color:var(--muted)}
.facts dd{margin:0;text-align:right;font-weight:500}
.acc{border-bottom:1px solid var(--hair)}
.acc summary{min-height:56px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.875rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;list-style:none}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:1.25rem}
.acc[open] summary::after{content:"\2212"}
.acc .body{padding:0 0 16px}
dialog{border:1px solid var(--hair);border-radius:4px;padding:0;width:min(94vw,520px);background:var(--bg);color:var(--ink)}
dialog::backdrop{background:rgba(43,37,34,.45)}
.dlg{padding:20px var(--gut) 24px}
.dlg-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.dlg-head h2{margin:0;font-size:1.25rem}
.xbtn{min-width:44px;min-height:44px;background:none;border:1px solid var(--muted);border-radius:4px;font:inherit;cursor:pointer;color:var(--ink)}
.helper{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.helper label{display:block;font-weight:600;font-size:.9375rem}
.helper input{width:100%;min-height:44px;font:inherit;padding:0 10px;border:1px solid var(--muted);border-radius:2px;background:#fff;color:var(--ink);margin-top:4px}
.result{background:var(--cream);padding:14px;border-radius:2px;min-height:4em}
.reviews-empty{border:1px solid var(--hair);background:var(--cream);padding:20px;color:var(--muted);text-align:center}
.reviews-empty p{margin:0 0 .5em}
.related{padding:40px 0}

.pic.wide{aspect-ratio:4/3}
.pic.wide-3{aspect-ratio:3/2}

/* content pages */
.page{padding:8px 0 56px}
.prose{max-width:44em}
.prose h2{margin-top:1.75em;font-size:clamp(1.25rem,3vw,1.5rem)}
.prose h3{margin-top:1.5em}
.prose ul{padding-left:1.25em;margin:0 0 1em}
.prose li{margin-bottom:.4em}
.tblwrap{max-width:100%;overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.9375rem;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-bottom:1px solid var(--hair)}
.tbl th{font-weight:600;color:var(--muted);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase}
.split{display:grid;gap:24px;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr;gap:56px}}
.callout{background:var(--cream);padding:16px 20px;border-radius:2px;margin:1.25em 0}
.callout p:last-child{margin:0}
.helper-box{background:var(--cream);padding:20px var(--gut);margin:1em 0 0;max-width:34em}
.form{display:grid;gap:16px;max-width:34em;margin-top:1em}
.form label{display:block;font-weight:600;font-size:.9375rem}
.form input,.form textarea{display:block;width:100%;min-height:44px;padding:10px;margin-top:4px;border:1px solid var(--muted);border-radius:2px;background:#fff;color:var(--ink)}
.form textarea{min-height:140px;resize:vertical}
.notice{margin:0;padding:12px 16px;background:var(--accent-soft);color:#5e2512;border-radius:2px}
.notice:empty{display:none}
.added{margin:10px 0 0;font-size:.9375rem;font-weight:500}
.added:empty{display:none}
.cart-line{display:grid;grid-template-columns:72px 1fr;gap:4px 14px;padding:16px 0;border-bottom:1px solid var(--hair);align-items:start}
.cart-line .pic{width:72px;aspect-ratio:1}
.cart-line h2{font-size:1rem;margin:0}
.cart-line p{margin:0;font-size:.9375rem}
.cart-line .line-price{font-weight:600;font-variant-numeric:tabular-nums}
.cart-sum{max-width:30em;margin:24px 0 0 auto}
.cart-sum div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-variant-numeric:tabular-nums}
.cart-sum .total{border-top:1px solid var(--hair);font-weight:700;font-size:1.125rem}

/* Instagram styling strip (pitch example; posts are credited to their creators).
   The row and cards are positioned so the absolutely positioned .vh text stays inside the scroller (it widened the page). */
.ig-sub{max-width:40em;margin:0 0 20px}
.ig-row{position:relative;list-style:none;margin:0;padding:0 0 8px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.ig-row li{flex:0 0 150px;scroll-snap-align:start}
@media(min-width:700px){.ig-row li{flex-basis:180px}}
.ig-card{position:relative;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)}
.ig-pic{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;border-radius:2px;background:var(--hair)}
.ig-pic img{width:100%;height:100%;object-fit:cover;display:block}
.ig-plat{position:absolute;left:8px;bottom:8px;background:rgba(43,37,34,.78);color:#fff;font:600 .6875rem/1 var(--font);padding:4px 6px;border-radius:2px}
.ig-handle{font-weight:600;font-size:.8125rem;overflow-wrap:anywhere}
.ig-t{font-size:.8125rem;color:var(--muted);line-height:1.35}
.ig-card:hover .ig-t{color:var(--ink)}
.ig-dialog{width:min(calc(100vw - 16px),30rem);max-width:none;max-height:calc(100dvh - 16px);padding:0;border:0;border-radius:2px;background:var(--bg);color:var(--ink);overflow:auto}
.ig-dialog::backdrop{background:rgba(43,37,34,.72)}
.ig-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;position:sticky;top:0;background:var(--bg);z-index:1}
.ig-count{margin-left:auto;font-size:.8125rem}
.ig-x{width:44px;height:44px;border:0;background:transparent;font-size:1.75rem;line-height:1;cursor:pointer}
.ig-stage iframe{display:block;width:100%;height:min(80dvh,640px);border:0;background:#fff}
.ig-nav{display:flex;justify-content:space-between;padding:8px 16px}
.ig-nav button{width:44px;height:44px;border:1px solid var(--hair);background:var(--bg);font-size:1.5rem;cursor:pointer;border-radius:2px}
.ig-info{padding:0 16px 16px}
.ig-credit{margin:0 0 4px;font-size:.875rem}
.ig-title{margin:0 0 12px}
.ig-shop-h{font-size:1rem;margin:16px 0 8px}
.ig-shop{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ig-shop a{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);border:1px solid var(--hair);padding:8px;border-radius:2px}
.ig-shop img{width:64px;height:64px;object-fit:cover;flex:none}
.ig-shop span{display:flex;flex-direction:column;font-size:.875rem}
.ig-note{font-size:.75rem;margin:12px 0 0}

/* Homepage campaign banner (full width; no auto-advance) */
.campaign{position:relative;background:#e3dcd3}
.campaign .slide{position:relative;display:grid}
.campaign .slide[hidden]{display:none}
.campaign picture,.campaign .slide>picture img{grid-area:1/1;display:block;width:100%;height:min(78svh,720px);min-height:460px;object-fit:cover}
.slide-copy{grid-area:1/1;align-self:end;margin:0 var(--gut) 72px;padding:24px;max-width:34rem;background:rgba(252,250,248,.92);border-radius:2px}
.slide-copy h1,.slide-copy h2{font-size:clamp(1.75rem,5vw,2.75rem)}
.slide-copy .lead{color:var(--muted);margin:0 0 4px}
.slide-copy .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.btn.ghost.light{background:transparent}
@media(min-width:900px){
  .slide-copy{align-self:center;margin:0 0 0 max(var(--gut),calc((100vw - var(--max))/2 + var(--gut)));padding:32px}
  .slide-copy.right{justify-self:end;margin:0 max(var(--gut),calc((100vw - var(--max))/2 + var(--gut))) 0 0}
}
.campaign-ui{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;align-items:center;gap:12px;pointer-events:none}
.campaign-ui button{pointer-events:auto}
.c-prev,.c-next{width:44px;height:44px;border:0;border-radius:50%;background:rgba(252,250,248,.92);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer}
.c-dots{display:flex;gap:4px}
.c-dots button{width:28px;height:44px;border:0;background:transparent;cursor:pointer;position:relative}
.c-dots button::before{content:"";position:absolute;left:6px;right:6px;top:20px;height:4px;border-radius:2px;background:rgba(252,250,248,.6)}
.c-dots button[aria-current]::before{background:#fcfaf8}

/* Trust bar */
.trust{border-bottom:1px solid var(--hair);background:var(--bg)}
.trust-list{list-style:none;margin:0 auto;padding:16px var(--gut);display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px}
.trust-list li{display:flex;flex-direction:column;font-size:.875rem;line-height:1.4}
.trust-list strong{font-weight:600}
.trust-list span{color:var(--muted)}
@media(min-width:900px){.trust-list{grid-template-columns:repeat(4,1fr)}}

/* Shop the range: tabs + rail */
.rail-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 16px;scrollbar-width:none}
.tabs button{flex:none;min-height:44px;padding:0 16px;border:1px solid var(--hair);border-radius:999px;background:var(--bg);cursor:pointer;font-size:.875rem}
.tabs button[aria-selected="true"]{border-color:var(--ink);background:var(--ink);color:#fcfaf8}
.rail{position:relative;list-style:none;margin:0;padding:0 0 8px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory}
.rail li{flex:0 0 44%;scroll-snap-align:start;min-width:0}
@media(min-width:700px){.rail li{flex-basis:30%}}
@media(min-width:1100px){.rail li{flex-basis:calc((100% - 36px)/4)}}
.rail .pic{aspect-ratio:3/4}
.rail .tag{position:absolute;left:8px;top:8px;background:rgba(252,250,248,.92);font-size:.75rem;padding:4px 6px;border-radius:2px}

/* Wool feature: image and copy side by side */
.feature{display:grid;background:var(--cream)}
.feature-pic img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover}
.feature-copy{padding:40px var(--gut);max-width:40rem}
.feature-copy .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
@media(min-width:900px){.feature{grid-template-columns:1.2fr 1fr;align-items:center}.feature-copy{padding:56px}}

/* Shop by style */
.style-tiles .pic{aspect-ratio:3/4}
.style-tiles .sub{display:block;font-size:.8125rem;color:var(--muted)}

/* Spotlight */
.spotlight{display:grid;gap:24px;align-items:center}
.spot-pics{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.spot-pics .pic{aspect-ratio:auto;height:100%}
.spot-pics .pic:first-child{aspect-ratio:4/3}
.swatch-row{list-style:none;margin:12px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 16px}
.swatch-row a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-size:.875rem;min-height:44px}
.swatch-row i{width:22px;height:22px;border-radius:50%;border:1px solid var(--muted)}
.price-line{font-weight:600;font-variant-numeric:tabular-nums}
@media(min-width:900px){.spotlight{grid-template-columns:1.2fr 1fr;gap:56px}}

/* Full-width outdoor campaign band */
.campaign-band{position:relative;display:grid}
.campaign-band img{grid-area:1/1;width:100%;height:min(70svh,640px);min-height:420px;object-fit:cover;display:block}
.band-copy{grid-area:1/1;align-self:end;margin:0 var(--gut) 24px;padding:24px;max-width:30rem;background:rgba(252,250,248,.92);border-radius:2px}
@media(min-width:900px){.band-copy{align-self:center;margin-left:max(var(--gut),calc((100vw - var(--max))/2 + var(--gut)));padding:32px}}

/* Help cards */
.help-cards{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.help-cards li{background:var(--bg);border:1px solid var(--hair);padding:20px;border-radius:2px}
.help-cards h3{font-size:1.0625rem;margin:0 0 6px}
.help-cards p{margin:0 0 8px;color:var(--muted);font-size:.9375rem}
@media(min-width:700px){.help-cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.help-cards{grid-template-columns:repeat(4,1fr)}}

/* Newsletter */
.news{background:var(--ink);color:#fcfaf8;padding:48px 0}
.news .muted{color:#d8d0c9}
.news-in{display:grid;gap:16px;align-items:center}
.news-form{display:flex;flex-wrap:wrap;gap:8px}
.news-form input{flex:1 1 220px;min-height:48px;padding:0 14px;border:1px solid #d8d0c9;border-radius:2px;background:#fcfaf8;color:var(--ink)}
.news-form .btn{border-color:#fcfaf8}
.news-msg{flex-basis:100%;margin:4px 0 0;min-height:1.5em}
.news a{color:#fcfaf8}
@media(min-width:900px){.news-in{grid-template-columns:1fr 1fr}}

/* Phones: the photo on top, the words below it (an overlay hid most of the photo at 390 px) */
@media(max-width:899px){
  .campaign .slide{grid-template-rows:auto auto}
  .campaign picture,.campaign .slide>picture img{height:clamp(300px,56svh,520px);min-height:0}
  .campaign .slide>picture{grid-area:1/1}
  .slide-copy{grid-area:2/1;align-self:start;margin:0;max-width:none;padding:20px var(--gut) 28px;background:var(--bg);border-radius:0}
  .campaign-ui{bottom:auto;top:calc(clamp(300px,56svh,520px) - 56px)}
  .campaign-band img{grid-area:1/1;height:clamp(280px,50svh,480px);min-height:0}
  .campaign-band{grid-template-rows:auto auto}
  .band-copy{grid-area:2/1;align-self:start;margin:0;max-width:none;padding:24px var(--gut) 32px;background:var(--cream);border-radius:0}
}

.nw{white-space:nowrap}

/* size cards: plan-view drawings at one scale; swipe on phones, one row on wide screens */
.size-row{list-style:none;margin:20px -16px 0;padding:0 16px 8px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,64%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.size-row li{scroll-snap-align:start;display:flex}
.size-card{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;padding:16px 12px 18px;background:var(--bg);border:1px solid var(--hair);color:var(--ink);text-decoration:none}
.size-card:hover{border-color:var(--ink)}
.size-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.size-card svg{width:100%;max-width:260px;height:auto;aspect-ratio:4/3;margin-bottom:12px}
.size-card strong{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.size-card .cm{margin-top:4px;font-variant-numeric:tabular-nums}
.size-card .use{margin-top:2px;font-size:.875rem;color:var(--muted)}
.size-card .rug{fill:#efe4d8;stroke:var(--accent);stroke-width:1.2}
.size-card .rug-b{fill:none;stroke:var(--accent);stroke-width:.6;stroke-dasharray:2 2;opacity:.7}
.size-card .f{fill:#fff;stroke:var(--ink);stroke-width:1.1}
.size-card .f2{fill:none;stroke:var(--ink);stroke-width:.7}
.size-card .wall{stroke:var(--ink);stroke-width:1.4;fill:none}
@media(min-width:700px){.size-row{grid-auto-columns:minmax(200px,31%)}}
.size-card .dim{stroke:var(--muted);stroke-width:1}
.size-card.help{background:var(--cream)}
@media(min-width:1100px){.size-row{margin:20px 0 0;padding:0;grid-auto-flow:row;grid-template-columns:repeat(4,1fr);gap:16px;overflow:visible}}
