:root{
  --cream:#F7F1E8; --card:#FFFDF9; --paper:#FBF7F0; --jute:#E2C9A6; --jute-soft:#EFE2CF; --sand:#F1E6D6;
  --terra:#8E4A32; --terra-dk:#743A25; --olive:#3F4A3C; --walnut:#2A211C; --muted:#6B5A4E; --line:#E6D8C3;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Jost', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --r:4px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--walnut);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--walnut);line-height:1.08;margin:0}
h1{font-size:clamp(40px,6vw,72px)}
h2{font-size:clamp(30px,3.8vw,46px)}
h3{font-size:24px}
p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--terra);color:#fff;padding:8px 14px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--terra);outline-offset:2px}
.wrap{max-width:1320px;margin:0 auto;padding:0 16px}
@media(min-width:768px){.wrap{padding:0 28px}}
.muted{color:var(--muted)}
.hide-sm{display:none}
@media(min-width:768px){.hide-sm{display:inline}}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--terra);font-weight:500}

/* utility bar */
.utility-bar{background:var(--walnut);color:#EADFCF;font-size:13px}
.utility-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:36px}
.utility-row strong{font-weight:500;color:var(--jute)}
.utility-row nav{display:flex;gap:18px}
.utility-row nav a{text-decoration:none;white-space:nowrap}
.utility-row nav a:hover{color:#fff;text-decoration:underline}
@media(max-width:520px){.utility-row p{display:none}.utility-row{justify-content:center}}

/* header */
.site-header{position:sticky;top:0;z-index:40;background:var(--card);border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:10px;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--terra);flex:none}
.logo-mark{width:30px;height:30px}
.logo-word{font-family:var(--serif);font-weight:600;letter-spacing:.24em;font-size:22px;color:var(--terra)}
.logo.light,.logo.light .logo-word{color:var(--cream)}
.search{position:relative;flex:1;max-width:560px;margin:0 auto;display:none;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:0 18px 0 44px;height:46px}
.search .search-ic{position:absolute;left:16px;width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round}
.search input{width:100%;border:0;background:none;font:inherit;font-size:15px;outline:none;color:var(--walnut)}
.search:focus-within{border-color:var(--terra);background:#fff}
.suggest{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(42,33,28,.12);flex-wrap:wrap;gap:8px}
.suggest p{width:100%;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.suggest a{padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:14px;text-decoration:none}
.suggest a:hover{border-color:var(--terra);color:var(--terra)}
.search:focus-within .suggest{display:flex}
.header-icons{display:flex;align-items:center;gap:2px;margin-left:auto}
.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:none;color:var(--walnut);cursor:pointer;border-radius:50%;text-decoration:none;flex:none}
.icon-btn:hover{background:var(--sand)}
.icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.count{position:absolute;top:5px;right:3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--terra);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center}
.count:empty{display:none}
.consult-btn{display:none!important;margin-right:6px}
@media(min-width:900px){.search{display:flex}.header-row{gap:24px}.consult-btn{display:inline-flex!important}}
@media(min-width:1100px){.menu-btn{display:none}}

/* category nav + mega menu */
.cat-nav{display:none;border-top:1px solid var(--line);background:var(--card)}
@media(min-width:1100px){.cat-nav{display:block}}
.cat-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.cat-nav li{position:static}
.cat-nav li > a{display:block;padding:14px 14px;font-size:14px;font-weight:500;letter-spacing:.04em;text-decoration:none;border-bottom:2px solid transparent}
.cat-nav li:hover > a,.cat-nav li:focus-within > a,.cat-nav li > a.active{border-bottom-color:var(--terra);color:var(--terra)}
.cat-nav li.offer > a{color:var(--terra)}
.mega{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 18px 36px rgba(42,33,28,.12)}
.cat-nav li:hover .mega,.cat-nav li:focus-within .mega{display:block}
.mega-inner{display:grid;grid-template-columns:repeat(3,1fr) 320px;gap:32px;padding:28px 28px 32px;max-width:1320px;margin:0 auto}
.mega h3{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:12px}
.mega a.sub{display:block;padding:6px 0;text-decoration:none;font-size:15px}
.mega a.sub:hover{color:var(--terra);text-decoration:underline}
.mega a.all{display:inline-block;margin-top:10px;font-weight:600;color:var(--terra);text-decoration:none;font-size:14px}
.mega-feature{display:block;text-decoration:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.mega-feature .art{aspect-ratio:16/10}
.mega-feature svg{width:100%;height:100%}
.mega-feature p{padding:10px 14px;font-weight:500;font-size:14px}

/* drawer (mobile) */
.drawer-backdrop{position:fixed;inset:0;background:rgba(42,33,28,.45);z-index:70}
.drawer{position:fixed;top:0;bottom:0;left:0;width:min(88vw,380px);z-index:80;background:var(--card);overflow-y:auto;padding:0 0 24px}
.drawer[hidden],.drawer-backdrop[hidden]{display:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card)}
.drawer details{border-bottom:1px solid var(--line)}
.drawer summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-weight:500;cursor:pointer;min-height:52px}
.drawer summary::after{content:"+";color:var(--terra);font-size:22px;line-height:1}
.drawer details[open] summary::after{content:"–"}
.drawer details a{display:block;padding:10px 32px;text-decoration:none;font-size:15px;color:var(--muted)}
.drawer details a.all{color:var(--terra);font-weight:600}
.drawer-links{padding:12px 0}
.drawer-links a{display:block;padding:12px 20px;text-decoration:none;font-weight:500}
.drawer .mobile-search{margin:16px 20px;display:flex;max-width:none;padding:0 6px 0 16px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 26px;border:1px solid var(--terra);background:var(--terra);color:#fff;font:500 15px/1 var(--sans);letter-spacing:.04em;text-decoration:none;border-radius:var(--r);cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:hover{background:var(--terra-dk);border-color:var(--terra-dk)}
.btn-sm{min-height:40px;padding:0 18px;font-size:14px}
.btn.ghost{background:transparent;color:var(--terra)}
.btn.ghost:hover{background:var(--sand)}
.btn.light{background:var(--cream);color:var(--terra);border-color:var(--cream)}
.btn.light:hover{background:#fff}
.btn.light-ghost{background:transparent;color:var(--cream);border-color:rgba(247,241,232,.7)}
.btn.light-ghost:hover{background:rgba(247,241,232,.1)}
.btn.block{width:100%}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.link{color:var(--terra);font-weight:500;text-decoration:none;border-bottom:1px solid var(--jute);padding-bottom:2px;white-space:nowrap}
.link:hover{border-color:var(--terra)}

/* sections */
.section{padding:56px 0}
@media(min-width:768px){.section{padding:80px 0}}
.section.tight{padding-top:0}
.section.sand{background:var(--sand)}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin-bottom:28px}
.section-head .eyebrow{display:block;margin-bottom:10px}

/* hero carousel */
.hero{padding:20px 0 0}
.carousel{position:relative;border-radius:6px;overflow:hidden}
.slides{display:flex;transition:transform .6s ease}
.slide{flex:0 0 100%;display:grid;min-height:460px}
@media(min-width:900px){.slide{grid-template-columns:1fr 1.2fr;min-height:500px}}
.slide-text{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:40px 28px 72px;color:var(--cream)}
@media(min-width:900px){.slide-text{padding:56px 64px}}
.slide-text .eyebrow{color:var(--jute)}
.slide-text h1,.slide-text h2{color:var(--cream);font-size:clamp(40px,5.4vw,66px)}
.slide-text p{font-size:18px;color:#EFE4D4;max-width:440px}
.slide-art{min-height:240px}
.slide-art svg{width:100%;height:100%}
.slide-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.car-ctrl{position:absolute;left:28px;bottom:24px;display:flex;align-items:center;gap:10px}
@media(min-width:900px){.car-ctrl{left:64px;bottom:32px}}
.car-dot{width:28px;height:4px;border:0;padding:0;background:rgba(247,241,232,.45);cursor:pointer;border-radius:2px;position:relative}
.car-dot::before{content:"";position:absolute;inset:-20px -2px}
.car-dot[aria-current="true"]{background:var(--cream)}
.car-btn{width:40px;height:40px;border-radius:50%;border:1px solid rgba(247,241,232,.6);background:transparent;color:var(--cream);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.car-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.car-btn:hover{background:rgba(247,241,232,.15)}

/* category circles */
.circles{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 2px 12px;scrollbar-width:thin}
.circle{flex:0 0 108px;scroll-snap-align:start;text-decoration:none;text-align:center}
.circle .disc{width:108px;height:108px;border-radius:50%;overflow:hidden;background:var(--paper);border:1px solid var(--line);transition:border-color .2s}
.circle .disc svg{width:100%;height:100%}
.circle span{display:block;margin-top:10px;font-size:14px;font-weight:500}
.circle:hover .disc{border-color:var(--terra)}
@media(min-width:1100px){.circles{justify-content:space-between;overflow:visible}.circle{flex-basis:96px}.circle .disc{width:96px;height:96px}}

/* room mosaic */
.mosaic{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.mosaic .room{position:relative;display:block;border-radius:var(--r);overflow:hidden;background:var(--paper);text-decoration:none;aspect-ratio:4/3}
.mosaic .room svg{width:100%;height:100%}
.mosaic .room .label{position:absolute;left:12px;bottom:12px;right:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:rgba(255,253,249,.94);border-radius:var(--r)}
.mosaic .room .label strong{font-family:var(--serif);font-size:22px;font-weight:600}
.mosaic .room .label span{font-size:13px;color:var(--terra);font-weight:500;white-space:nowrap}
.mosaic .room:first-child{grid-column:1/-1}
@media(min-width:900px){.mosaic{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px}.mosaic .room{aspect-ratio:auto}.mosaic .room:first-child{grid-column:span 2;grid-row:span 2}}
.mosaic .room:hover .label strong{color:var(--terra)}

/* tabs + product rail */
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:var(--card);font:500 14px var(--sans);color:var(--walnut);cursor:pointer}
.tab[aria-selected="true"]{background:var(--walnut);border-color:var(--walnut);color:var(--cream)}
.rail-wrap{position:relative}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
@media(min-width:1100px){.rail{grid-auto-columns:calc((100% - 54px)/4)}}
.rail > *{scroll-snap-align:start}
.rail-btn{display:none;position:absolute;top:34%;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(42,33,28,.12)}
.rail-btn svg{width:18px;height:18px;fill:none;stroke:var(--walnut);stroke-width:2}
.rail-btn.prev{left:-20px}.rail-btn.next{right:-20px}
@media(min-width:1100px){.rail-btn{display:inline-flex}}

/* product card */
.grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:768px){.grid{gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pc{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;position:relative;transition:box-shadow .2s}
.pc:hover{box-shadow:0 10px 26px rgba(42,33,28,.1)}
.pc .art{display:block;aspect-ratio:4/3;background:var(--paper)}
.pc .art svg{width:100%;height:100%}
.pc-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:4px;flex:1}
.pc-body .cat{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pc-body a.name{font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.15;color:var(--walnut);text-decoration:none}
.pc-body a.name::after{content:"";position:absolute;inset:0}
.pc-price{margin-top:auto;padding-top:8px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.pc-price strong{font-size:17px;font-weight:600}
.pc-price small{font-size:12px;color:var(--muted)}
.pc-perk{font-size:12px;color:var(--olive);display:flex;align-items:center;gap:6px}
.pc-perk::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--olive)}
.wish-btn{position:absolute;top:8px;right:8px;z-index:2;background:rgba(255,253,249,.9)}
.wish-btn.on svg{fill:var(--terra);stroke:var(--terra)}
.tier{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:var(--walnut);color:var(--cream);font-weight:500}
.tier.select{background:var(--terra)}
.tier.signature{background:var(--olive)}
.pc .tier{position:absolute;top:10px;left:10px;z-index:1}

/* promo banners */
.promos{display:grid;gap:16px}
@media(min-width:900px){.promos{grid-template-columns:1fr 1fr;gap:20px}}
.promo{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;border-radius:6px;overflow:hidden;min-height:260px;text-decoration:none}
.promo .txt{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:28px;color:var(--cream)}
.promo .txt .eyebrow{color:var(--jute)}
.promo .txt h3{color:var(--cream);font-size:clamp(26px,2.6vw,34px)}
.promo .txt span.go{margin-top:6px;font-weight:500;border-bottom:1px solid var(--jute);align-self:flex-start;padding-bottom:2px}
.promo .art svg{width:100%;height:100%}
.promo.terra{background:var(--terra)}
.promo.olive{background:var(--olive)}

/* tiers */
.tiers{display:grid;gap:16px}
@media(min-width:768px){.tiers{grid-template-columns:repeat(3,1fr);gap:20px}}
.tier-card{display:flex;flex-direction:column;gap:8px;padding:28px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);text-decoration:none;border-top:4px solid var(--walnut)}
.tier-card.select{border-top-color:var(--terra)}
.tier-card.signature{border-top-color:var(--olive)}
.tier-card h3{font-size:34px}
.tier-card .range{margin-top:auto;padding-top:10px;font-size:14px;color:var(--terra);font-weight:500}

/* service band */
.service{background:var(--terra);color:var(--cream)}
.service-grid{display:grid;gap:40px}
@media(min-width:1000px){.service-grid{grid-template-columns:1.3fr 1fr;gap:64px;align-items:start}}
.service h2{color:var(--cream)}
.service .eyebrow{color:var(--jute)}
.steps{display:grid;gap:22px;margin-top:32px}
@media(min-width:640px){.steps{grid-template-columns:repeat(2,1fr)}}
.step{border-top:1px solid rgba(247,241,232,.35);padding-top:16px}
.step .num{font-family:var(--serif);font-size:42px;color:var(--jute);line-height:1;font-weight:600}
.step h3{margin:8px 0 4px;font-size:24px;color:var(--cream)}
.step p{color:#F0E3D3;font-size:15px}
.lead-card{background:var(--card);color:var(--walnut);border-radius:6px;padding:28px}
.lead-card h3{font-size:30px;margin-bottom:6px}

/* trust strip */
.trust{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.trust{grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}}
.trust div{display:flex;gap:14px;align-items:flex-start;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
@media(min-width:900px){.trust div{border:0;border-radius:0;border-right:1px solid var(--line)}.trust div:last-child{border-right:0}}
.trust svg{width:30px;height:30px;flex:none;fill:none;stroke:var(--terra);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.trust h3{font-family:var(--sans);font-size:15px;font-weight:600;margin-bottom:2px}
.trust p{font-size:13px;color:var(--muted)}

/* store locator band */
.store-band{display:grid;gap:0;border-radius:6px;overflow:hidden;background:var(--olive);color:var(--cream)}
@media(min-width:900px){.store-band{grid-template-columns:1.1fr 1fr}}
.store-band .art svg{width:100%;height:100%}
.store-band .txt{padding:36px 28px;display:flex;flex-direction:column;gap:14px}
@media(min-width:900px){.store-band .txt{padding:56px}}
.store-band h2{color:var(--cream)}
.store-band .eyebrow{color:var(--jute)}
.store-band dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:6px 0 4px;font-size:15px}
.store-band dt{color:var(--jute)}
.store-band dd{margin:0}
.soon{display:flex;flex-wrap:wrap;gap:8px}
.soon span{padding:5px 14px;border:1px solid rgba(247,241,232,.45);border-radius:999px;font-size:13px}

/* split blocks, projects, journal */
.split{display:grid;gap:32px;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr;gap:64px}}
.art-box{border-radius:6px;overflow:hidden;background:var(--paper);aspect-ratio:4/3}
.art-box svg{width:100%;height:100%}
.stack{display:flex;flex-direction:column;gap:16px}
.project{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.project .art{aspect-ratio:16/10;background:var(--paper)}
.project .art svg{width:100%;height:100%}
.project .body{padding:20px}
.project .meta{font-size:13px;color:var(--muted);margin:6px 0 10px}
.ill{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.article{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.article h3{font-size:26px}
.article p{color:var(--muted);font-size:15px}

/* listing */
.page-head{padding:32px 0 20px;border-bottom:1px solid var(--line);margin-bottom:24px}
.page-head h1{font-size:clamp(36px,5vw,56px)}
.page-head p{margin-top:8px;color:var(--muted);max-width:680px}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:10px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline;color:var(--terra)}
.shop{display:grid;gap:24px;padding-bottom:80px}
@media(min-width:1024px){.shop{grid-template-columns:250px 1fr;gap:36px}}
.filters{display:flex;flex-direction:column;gap:22px}
@media(min-width:1024px){.filters{position:sticky;top:132px;align-self:start}}
.filters h3{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:40px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:var(--card);font:500 14px var(--sans);color:var(--walnut);cursor:pointer}
.chip:hover{border-color:var(--terra)}
.chip[aria-pressed="true"]{background:var(--terra);border-color:var(--terra);color:#fff}
.select{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);font:inherit;font-size:15px;color:var(--walnut);width:100%}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.toolbar .select{width:auto}
.empty{padding:56px 24px;text-align:center;border:1px dashed var(--jute);border-radius:var(--r);background:var(--paper)}
.empty h3{margin-bottom:8px}

/* product page */
.pdp{display:grid;gap:28px;padding-bottom:80px}
@media(min-width:960px){.pdp{grid-template-columns:1.15fr 1fr;gap:56px}}
.gallery-main{border-radius:var(--r);overflow:hidden;background:var(--paper);aspect-ratio:4/3;border:1px solid var(--line)}
.gallery-main svg{width:100%;height:100%}
.gallery-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.gallery-thumbs div{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:var(--paper);border:1px solid var(--line)}
.gallery-thumbs svg{width:100%;height:100%}
.pdp-info{display:flex;flex-direction:column;gap:18px}
.pdp-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pdp-price strong{font-size:30px;font-weight:600}
.opt-label{font-size:14px;font-weight:600;margin-bottom:10px;display:flex;justify-content:space-between}
.opt-label span{font-weight:400;color:var(--muted)}
.swatches{display:flex;flex-wrap:wrap;gap:10px}
.swatch{width:44px;height:44px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.swatch[aria-pressed="true"]{box-shadow:0 0 0 2px var(--terra)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.qty button{width:44px;height:44px;border:0;background:none;font-size:18px;cursor:pointer;color:var(--terra)}
.qty span{min-width:32px;text-align:center;font-weight:600}
.buy-row{display:flex;gap:10px;flex-wrap:wrap}
.buy-row .btn{flex:1;min-width:150px}
.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.perks div{padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);font-size:13px;text-align:center}
.perks svg{width:24px;height:24px;margin:0 auto 6px;fill:none;stroke:var(--terra);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
details.acc{border-top:1px solid var(--line);padding:14px 0}
details.acc:last-of-type{border-bottom:1px solid var(--line)}
details.acc summary{cursor:pointer;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between}
details.acc summary::after{content:"+";color:var(--terra);font-size:20px;line-height:1}
details.acc[open] summary::after{content:"–"}
details.acc p,details.acc table{margin-top:10px;font-size:14px;color:var(--muted)}
.spec{width:100%;border-collapse:collapse}
.spec td{padding:8px 0;border-bottom:1px solid var(--line)}
.spec td:first-child{color:var(--walnut);width:40%}
.help-box{padding:18px;border-radius:var(--r);background:var(--sand);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--card);border-top:1px solid var(--line)}
.sticky-buy strong{font-size:18px}
.sticky-buy .btn{margin-left:auto}
@media(min-width:960px){.sticky-buy{display:none}}

/* cart / checkout / forms */
.cart-layout{display:grid;gap:28px;padding-bottom:80px}
@media(min-width:960px){.cart-layout{grid-template-columns:1fr 360px;gap:48px}}
.line{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.line .thumb{border-radius:var(--r);overflow:hidden;background:var(--paper);aspect-ratio:1}
.line .thumb svg{width:100%;height:100%}
.line h3{font-size:22px}
.line .meta{font-size:13px;color:var(--muted);margin:4px 0 10px}
.line-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.remove{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;min-height:44px}
.summary{padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);display:flex;flex-direction:column;gap:12px;align-self:start}
.summary .row{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.summary .total{border-top:1px solid var(--line);padding-top:12px;font-weight:600;font-size:18px}
.form{display:grid;gap:16px}
.form .two{display:grid;gap:16px}
@media(min-width:640px){.form .two{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:6px}
.field label,.field .opt-label{font-size:14px;font-weight:600}
.field input,.field select,.field textarea{min-height:48px;padding:10px 14px;border:1px solid var(--jute);border-radius:var(--r);background:#fff;font:inherit;font-size:15px;color:var(--walnut)}
.field textarea{min-height:110px;resize:vertical}
.field .hint{font-size:12px;color:var(--muted)}
.pay-opt{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;font-size:15px}
.pay-opt.off{opacity:.55}
.notice{padding:14px 16px;border-radius:var(--r);background:var(--jute-soft);font-size:14px}
.wizard{max-width:760px;margin:0 auto;padding-bottom:80px}
.progress{height:4px;background:var(--jute-soft);border-radius:2px;margin:8px 0 28px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--terra);transition:width .3s}
.options{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:640px){.options{grid-template-columns:repeat(3,minmax(0,1fr))}}
.opt{min-height:64px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);font:500 15px var(--sans);color:var(--walnut);cursor:pointer;text-align:left}
.opt[aria-pressed="true"]{border-color:var(--terra);box-shadow:inset 0 0 0 1px var(--terra);background:var(--sand)}
.wizard-nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.estimate{padding:24px;border-radius:var(--r);background:var(--terra);color:var(--cream);display:flex;flex-direction:column;gap:6px}
.estimate .eyebrow{color:var(--jute)}
.estimate strong{font-family:var(--serif);font-weight:600;font-size:42px;color:var(--cream)}

/* newsletter + footer */
.newsletter{background:var(--jute-soft);border-top:1px solid var(--line)}
.newsletter-row{display:flex;flex-direction:column;gap:18px;padding:40px 16px}
@media(min-width:900px){.newsletter-row{flex-direction:row;justify-content:space-between;align-items:center;padding:44px 28px}}
.newsletter h2{font-size:clamp(28px,3vw,36px)}
.newsletter p{color:var(--muted)}
.newsletter-form{display:flex;gap:10px;flex-wrap:wrap}
.newsletter-form input{min-height:48px;padding:0 16px;border:1px solid var(--jute);border-radius:var(--r);font:inherit;font-size:15px;background:#fff;flex:1;min-width:220px}
.site-footer{background:var(--walnut);color:#D9CCBB;padding:56px 0 24px}
.footer-grid{display:grid;gap:32px;grid-template-columns:repeat(2,1fr)}
.footer-grid .footer-brand{grid-column:1/-1}
@media(min-width:960px){.footer-grid{grid-template-columns:1.6fr repeat(4,1fr)}.footer-grid .footer-brand{grid-column:auto}}
.footer-brand{display:flex;flex-direction:column;gap:10px;font-size:14px;color:#BDAE9C}
.footer-brand .tagline{font-family:var(--serif);font-size:24px;font-style:italic;color:var(--cream)}
.site-footer h2{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--jute);margin-bottom:12px;font-weight:600}
.site-footer nav a,.site-footer div > a:not(.logo){display:block;text-decoration:none;padding:6px 0;font-size:14px}
.site-footer a:hover{color:#fff}
.footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:40px;padding-top:20px;border-top:1px solid #45372F;font-size:13px;color:#A89886}

/* floating + toast */
.wa-float{position:fixed;right:16px;bottom:16px;z-index:35;display:flex;align-items:center;gap:8px;min-height:52px;padding:0 16px 0 14px;border:0;border-radius:999px;background:#1F6F4A;color:#fff;font:500 15px var(--sans);cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.wa-float svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linejoin:round}
.wa-float span{display:none}
@media(min-width:768px){.wa-float span{display:inline}}
body.has-sticky .wa-float{bottom:84px}
@media(min-width:960px){body.has-sticky .wa-float{bottom:16px}}
.toast{position:fixed;left:50%;bottom:24px;z-index:90;transform:translate(-50%,160%);max-width:calc(100% - 32px);padding:14px 20px;border-radius:var(--r);background:var(--walnut);color:#fff;font-size:15px;transition:transform .3s;pointer-events:none}
.toast.show{transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* tiles (rooms page) and value cards (about) */
.tile{position:relative;display:block;text-decoration:none;border-radius:var(--r);overflow:hidden;background:var(--paper);border:1px solid var(--line)}
.tile .art{aspect-ratio:4/3}
.tile .art svg{width:100%;height:100%}
.tile .tile-label{padding:14px 16px;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}
.tile .tile-label strong{font-family:var(--serif);font-weight:600;font-size:22px}
.tile .tile-label span{font-size:13px;color:var(--terra);font-weight:500}
.tile:hover .tile-label strong{color:var(--terra)}
.why{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:900px){.why{grid-template-columns:repeat(4,1fr);gap:20px}}
.why div{padding:22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.why svg{width:28px;height:28px;stroke:var(--terra);fill:none;stroke-width:1.6;margin-bottom:14px}
.why h3{font-family:var(--sans);font-size:16px;font-weight:600;margin-bottom:6px}
.why p{font-size:14px;color:var(--muted)}
@media(max-width:480px){
  .header-row{gap:2px}
  .logo{gap:7px}
  .logo-mark{width:26px;height:26px}
  .site-header .logo-word{font-size:18px;letter-spacing:.14em}
  .icon-btn{width:42px}
}
.drawer .mobile-search{padding:0 12px 0 44px}
@media(max-width:899px){.slide-art{order:-1;min-height:200px;max-height:260px;overflow:hidden}.slide-text{padding-bottom:84px}}
@media(max-width:899px){.mosaic .room:last-child:nth-child(even){grid-column:1/-1}}
