/*
Theme Name: Shesher Kobita
Theme URI: https://shesherkobitabd.com
Author: Shesher Kobita
Description: Custom boutique theme. Burgundy boutique direction, hand coded, no page builder.
Version: 0.1.0
Requires PHP: 8.0
Text Domain: shesher-kobita
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Inter:wght@300;400;500&family=Noto+Serif+Bengali:wght@100;200;300;400;600&display=swap');

:root{
  --room:#6b1130;        /* the brand burgundy they already use */
  --room-deep:#470a1f;
  --night:#191113;       /* near-black plum for alternate rooms */
  --cream:#f4ecdd;       /* lamplit cream */
  --cream-dim:#cdbfa8;
  --gilt:#c9963f;        /* chandelier gold */
  --rose:#e3a68b;        /* the blush sarees */
  --hairline:rgba(244,236,221,.14);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',-apple-system,sans-serif;
  --bn:'Noto Serif Bengali',serif;
}
*{margin:0;padding:0;box-sizing:border-box}
::selection{background:var(--gilt);color:var(--night)}
html{scroll-behavior:smooth}
body{background:var(--room);color:var(--cream);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}

/* lamplight vignette on the whole room */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(120% 90% at 50% 0%, rgba(201,150,63,.10), transparent 55%), radial-gradient(140% 100% at 50% 100%, rgba(0,0,0,.5), transparent 60%)}
main{position:relative;z-index:2}

/* ================= preloader : the lamp warms up ================= */
.loader{position:fixed;inset:0;z-index:1000;background:var(--night);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.8rem;transition:opacity .9s .15s,visibility .9s .15s}
.loader.done{opacity:0;visibility:hidden}
.loader .bnline{font-family:var(--bn);font-weight:200;font-size:clamp(1.3rem,3vw,2.2rem);color:var(--cream);overflow:hidden;white-space:nowrap;width:0;border-right:1px solid var(--gilt);animation:write 1.5s .2s steps(22) forwards}
@keyframes write{to{width:13.4em}}
.loader small{font-size:.58rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gilt);opacity:0;animation:fin .5s 1.5s forwards}
@keyframes fin{to{opacity:1}}

/* ================= masthead ================= */
header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2.4rem;transition:background .4s,box-shadow .4s}
header.scrolled{background:rgba(56,16,15,.82);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--hairline)}
.mark{display:flex;align-items:center;gap:1rem;text-decoration:none}
.mark .glyph{font-family:var(--bn);font-weight:600;font-size:1.65rem;color:var(--gilt);line-height:1}
.mark .word{font-size:.64rem;letter-spacing:.46em;text-transform:uppercase;color:var(--cream)}
nav.top{display:flex;gap:2.4rem;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase}
nav.top a{text-decoration:none;position:relative}
nav.top a::after{content:'';position:absolute;left:0;bottom:-5px;height:1px;width:100%;background:var(--gilt);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.6,0,.2,1)}
nav.top a:hover::after{transform:scaleX(1);transform-origin:left}
.bag{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;border:1px solid var(--hairline);padding:.7rem 1.5rem;transition:all .35s}
.bag:hover{background:var(--cream);color:var(--room);border-color:var(--cream)}

/* ================= hero : inside the boutique ================= */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden}
.hero .backdrop{position:absolute;inset:0}
.hero .backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 38%;transform:scale(1.06);animation:settle 3.2s .4s cubic-bezier(.16,1,.3,1) forwards;filter:brightness(.92)}
@keyframes settle{to{transform:scale(1)}}
.hero .backdrop::after{content:'';position:absolute;inset:0;background:linear-gradient(to top, rgba(25,17,19,.88) 4%, rgba(74,21,24,.18) 45%, rgba(74,21,24,.30));}
.hero-inner{position:relative;z-index:3;width:100%;padding:0 2.4rem 5.5rem}
.hero .over{font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:var(--cream-dim);display:flex;align-items:center;gap:1.1rem;margin-bottom:2rem}
.hero .over::before{content:'';width:3.4rem;height:1px;background:var(--gilt)}
.hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,7.8vw,7rem);line-height:.98;letter-spacing:-.01em;max-width:14ch}
.hero h1 em{font-style:italic;color:var(--rose)}
.hero h1 .bn{display:block;font-family:var(--bn);font-weight:200;font-size:.34em;letter-spacing:.14em;color:var(--cream-dim);margin-top:1.6rem}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:3rem;gap:2rem;flex-wrap:wrap}
.hero-foot p{max-width:40ch;font-size:.88rem;line-height:1.9;color:var(--cream-dim)}
.hero-cta{display:flex;gap:1.6rem;align-items:center}
.btn{display:inline-block;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;text-decoration:none;padding:1.15rem 2.7rem;background:var(--cream);color:var(--night);position:relative;overflow:hidden}
.btn i{position:absolute;inset:0;background:var(--gilt);transform:translateY(101%);transition:transform .45s cubic-bezier(.6,0,.2,1)}
.btn:hover i{transform:none}
.btn b{position:relative;z-index:2;font-weight:500}
.link-lite{font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--gilt);padding-bottom:.4rem}

/* ================= refrain ================= */
.refrain{border-block:1px solid var(--hairline);background:var(--night);overflow:hidden;padding:1.1rem 0}
.refrain-track{display:flex;gap:4.5rem;white-space:nowrap;width:max-content;animation:slide 48s linear infinite}
.refrain span{font-family:var(--serif);font-style:italic;font-size:1.02rem;color:var(--cream-dim)}
.refrain b{font-weight:400;font-size:.58rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gilt);align-self:center;font-style:normal;font-family:var(--sans)}
.refrain .bn{font-family:var(--bn);font-style:normal;font-weight:300}
@keyframes slide{to{transform:translateX(-50%)}}

/* ================= poem index ================= */
.poem-index{padding:8.5rem 0 7rem;position:relative;background:linear-gradient(var(--room), var(--room-deep))}
.pi-head{padding:0 2.4rem;display:flex;justify-content:space-between;align-items:baseline}
.kicker{font-size:.6rem;letter-spacing:.44em;text-transform:uppercase;color:var(--gilt)}
.ch-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.8rem 1.6rem;margin-top:3.5rem;padding:0 2.4rem}
.ch{position:relative;text-decoration:none;color:var(--cream);display:block}
.ch .win{overflow:hidden;background:var(--room-deep);outline:1px solid var(--hairline);outline-offset:7px}
.ch img{width:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.16,1,.3,1)}
.ch:hover img{transform:scale(1.04)}
.ch .cap{display:flex;align-items:baseline;gap:.9rem;margin-top:1.2rem;padding:0 .1rem}
.ch .cap .no{font-family:var(--bn);font-weight:200;font-size:1.3rem;color:var(--gilt)}
.ch .cap .nm{font-family:var(--serif);font-weight:300;font-size:1.6rem}
.ch .cap .bn{font-family:var(--bn);font-weight:300;font-size:.9rem;color:var(--cream-dim)}
.ch .cap .ct{margin-left:auto;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-dim)}
.ch1{grid-column:1/span 7}.ch1 img{height:30rem;object-position:center 30%}
.ch2{grid-column:8/span 5}.ch2 img{height:30rem;object-position:center 14%}
.ch3{grid-column:1/span 4}.ch3 img{height:25rem;object-position:center 8%}
.ch4{grid-column:5/span 4}.ch4 img{height:25rem;object-position:center 10%}
.ch5{grid-column:9/span 4}.ch5 img{height:25rem;object-position:center 8%}

/* ================= gallery : the plates ================= */
.plates{padding:8rem 2.4rem 7rem;background:var(--room)}
.plates-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3rem}
.plates-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.plate{position:relative;overflow:hidden;display:block;text-decoration:none;background:var(--room-deep)}
.plate img{aspect-ratio:3/4;width:100%;object-fit:cover;object-position:center top;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.plate:hover img{transform:scale(1.045)}
.plate .pl-no{position:absolute;left:.9rem;bottom:.7rem;font-family:var(--bn);font-weight:200;font-size:1.1rem;color:var(--cream);text-shadow:0 2px 10px rgba(0,0,0,.5)}

/* ================= long verse : horizontal ================= */
.longverse{position:relative;height:360vh}
.lv-pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;background:var(--night)}
.lv-track{display:flex;align-items:center;gap:5vw;padding:0 8vw;will-change:transform}
.lv-intro{flex:0 0 30vw;min-width:20rem}
.lv-intro h2{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,3.4vw,3.4rem);line-height:1.12;margin-top:1.4rem}
.lv-intro h2 em{font-style:italic;color:var(--rose)}
.lv-intro p{margin-top:1.4rem;color:var(--cream-dim);font-size:.88rem;line-height:1.9;max-width:34ch}
.lv-card{flex:0 0 23vw;min-width:17rem;text-decoration:none;color:var(--cream)}
.lv-card .win{overflow:hidden;background:var(--room-deep)}
.lv-card img{aspect-ratio:3/4;width:100%;object-fit:cover;object-position:center top;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.lv-card:hover img{transform:scale(1.05)}
.lv-card .cap{display:flex;justify-content:space-between;align-items:baseline;margin-top:1rem}
.lv-card .cap .nm{font-family:var(--serif);font-size:1.25rem;font-weight:300}
.lv-card .cap .pr{font-size:.7rem;letter-spacing:.1em;color:var(--gilt)}
.lv-card .tag{font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-dim);margin-top:.35rem}
.lv-outro{flex:0 0 26vw;min-width:16rem;display:flex;flex-direction:column;align-items:flex-start;gap:1.8rem}
.lv-outro .bn{font-family:var(--bn);font-weight:200;font-size:1.9rem;line-height:1.85;color:var(--cream-dim)}

/* ================= the portrait room (about) ================= */
.portrait-room{display:grid;grid-template-columns:6fr 5fr;min-height:44rem;background:var(--room-deep)}
.portrait-room .win{overflow:hidden;position:relative}
.portrait-room .win img{width:100%;height:100%;object-fit:cover;object-position:center top}
.portrait-room .win::after{content:'';position:absolute;inset:0;background:linear-gradient(to right, transparent 60%, rgba(56,16,15,.55))}
.portrait-room .note{display:flex;flex-direction:column;justify-content:center;padding:5.5rem 4.5rem}
.portrait-room h2{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,3.2vw,3.2rem);line-height:1.14;margin-top:1.6rem}
.portrait-room h2 em{font-style:italic;color:var(--rose)}
.portrait-room p{margin-top:1.5rem;font-size:.92rem;line-height:2;color:var(--cream-dim);max-width:48ch}
.portrait-room .sig{margin-top:2.4rem;font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--cream)}
.portrait-room .sig small{display:block;font-family:var(--sans);font-style:normal;font-size:.56rem;letter-spacing:.32em;text-transform:uppercase;color:var(--cream-dim);margin-top:.5rem}

/* ================= interlude verse ================= */
.interlude{padding:10rem 2rem;text-align:center;background:linear-gradient(var(--room-deep), var(--room))}
.interlude .bnv{font-family:var(--bn);font-weight:100;font-size:clamp(1.9rem,4.4vw,3.4rem);line-height:1.95;color:var(--cream)}
.interlude .tr{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--cream-dim);margin-top:2rem}
.interlude .src{font-size:.56rem;letter-spacing:.44em;text-transform:uppercase;color:var(--gilt);margin-top:2.4rem}

/* ================= diptych ================= */
.diptych{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;padding:0 2.4rem 7rem;background:var(--room)}
.dip{position:relative;overflow:hidden;text-decoration:none;color:var(--cream);min-height:36rem;display:flex;align-items:flex-end;padding:2.6rem}
.dip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.dip:hover img{transform:scale(1.045)}
.dip::after{content:'';position:absolute;inset:0;background:linear-gradient(to top, rgba(25,17,19,.72), transparent 55%)}
.dip .cap{position:relative;z-index:2}
.dip .cap .k{font-size:.56rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gilt)}
.dip .cap h3{font-family:var(--serif);font-weight:300;font-size:2.1rem;margin-top:.6rem;line-height:1.2}
.dip .cap span{display:inline-block;margin-top:1.1rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;border-bottom:1px solid var(--gilt);padding-bottom:.35rem}

/* ================= promises ================= */
.promises{border-top:1px solid var(--hairline);display:grid;grid-template-columns:repeat(4,1fr);background:var(--room)}
.promise{padding:3.2rem 2.4rem;border-right:1px solid var(--hairline)}
.promise:last-child{border-right:0}
.promise .bn{font-family:var(--bn);font-size:1.5rem;font-weight:300;color:var(--gilt)}
.promise h5{font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;margin-top:1rem;font-weight:500}
.promise p{font-size:.8rem;line-height:1.75;color:var(--cream-dim);margin-top:.7rem}

/* ================= colophon ================= */
footer{background:var(--night)}
.foot-verse{padding:5.5rem 2.4rem 0;text-align:center}
.foot-verse .bn{font-family:var(--bn);font-weight:100;font-size:clamp(2.6rem,8vw,6rem);line-height:1.5;color:#2a1e21;user-select:none}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:3rem;padding:3.6rem 2.4rem 3.2rem;border-bottom:1px solid var(--hairline)}
footer p{font-size:.84rem;line-height:1.95;max-width:36ch;margin-top:1.3rem;color:var(--cream-dim)}
footer h4{font-size:.58rem;letter-spacing:.36em;text-transform:uppercase;color:var(--cream);font-weight:500;margin-bottom:1.2rem}
footer a{display:block;text-decoration:none;font-size:.84rem;line-height:2.2;color:var(--cream-dim)}
footer a:hover{color:var(--gilt)}
.legal{display:flex;justify-content:space-between;padding:2rem 2.4rem;font-size:.64rem;color:var(--cream-dim)}
.legal .pay{display:flex;gap:1.3rem;font-size:.56rem;letter-spacing:.2em;text-transform:uppercase}

/* ================= reveal ================= */
.rv{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}

/* ================= responsive ================= */
@media (max-width:1000px){
  header{padding:1rem 1.2rem} nav.top{display:none}
  .hero-inner{padding:0 1.2rem 4rem}
  .pi-head{padding:0 1.2rem}
  .ch-grid{grid-template-columns:1fr 1fr;gap:1.4rem 1rem;padding:0 1.2rem}
  .ch1,.ch2,.ch3,.ch4,.ch5{grid-column:auto}
  .ch1{grid-column:1/span 2}
  .ch1 img{height:14rem}
  .ch2 img,.ch3 img,.ch4 img,.ch5 img{height:16rem}
  .ch .cap .nm{font-size:1.05rem}
  .ch .cap .bn,.ch .cap .ct{display:none}
  .plates{padding:4rem 1.2rem}
  .plates-grid{grid-template-columns:1fr 1fr;gap:1rem}
  .longverse{height:auto}
  .lv-pin{position:static;height:auto;padding:4rem 0}
  .lv-track{overflow-x:auto;padding:0 1.2rem;gap:1.2rem;scroll-snap-type:x mandatory}
  .lv-intro,.lv-card,.lv-outro{flex:0 0 80vw;scroll-snap-align:start}
  .portrait-room{grid-template-columns:1fr}
  .portrait-room .win{height:26rem}
  .portrait-room .note{padding:3rem 1.4rem}
  .diptych{grid-template-columns:1fr;padding:0 1.2rem 4rem}
  .dip{min-height:26rem;padding:1.6rem}
  .promises{grid-template-columns:1fr 1fr}
  .promise{border-bottom:1px solid var(--hairline)}
  .foot-grid{grid-template-columns:1fr 1fr;padding:3rem 1.2rem 2.6rem}
}

/* Elementor Pro Theme Builder injections are not part of this theme */
.elementor-location-header,.elementor-location-footer{display:none !important}


/* ================================================================
   PAGE SHELL + WOOCOMMERCE in the burgundy language
   ================================================================ */
.page-shell{padding:10rem 2.4rem 6rem;min-height:70vh;max-width:66rem;margin:0 auto}
.page-title{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,4.5vw,4rem);margin:.8rem 0 2.2rem}
.page-body{max-width:70ch;line-height:2;color:var(--cream-dim);font-size:.95rem}
.page-body a{color:var(--gilt)}
.journal-item{margin-bottom:3rem}
.journal-item h2 a{font-family:var(--serif);font-weight:300;font-size:1.8rem;text-decoration:none}

/* breadcrumb + notices */
.woocommerce-breadcrumb{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cream-dim)!important;margin-bottom:1rem!important}
.woocommerce-breadcrumb a{color:var(--gilt)!important;text-decoration:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--night)!important;color:var(--cream)!important;border-top-color:var(--gilt)!important}
.woocommerce-message a,.woocommerce-info a{color:var(--gilt)!important}
.woocommerce-message::before,.woocommerce-info::before{color:var(--gilt)!important}

/* result count / ordering */
.woocommerce-result-count{color:var(--cream-dim)!important;font-size:.72rem!important;letter-spacing:.12em}
.woocommerce-ordering select{background:var(--night);color:var(--cream);border:1px solid var(--hairline);padding:.6rem 1rem;font-size:.75rem}

/* product grid */
.woocommerce ul.products li.product{text-align:left;background:transparent}
.woocommerce ul.products li.product a img{aspect-ratio:3/4;object-fit:cover;object-position:center top;margin-bottom:1.1rem!important;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.woocommerce ul.products li.product:hover a img{transform:scale(1.03)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif)!important;font-weight:300!important;font-size:1.2rem!important;color:var(--cream)!important;padding:0!important}
.woocommerce ul.products li.product .price{color:var(--gilt)!important;font-size:.82rem!important;letter-spacing:.08em}
.woocommerce ul.products li.product .price del{color:var(--cream-dim)!important;opacity:.7}
.woocommerce ul.products li.product .button{display:none}  /* shop grid: click through to product page */
.woocommerce ul.products li.product .onsale{background:var(--gilt);color:var(--night);font-weight:500;border-radius:0;letter-spacing:.1em}

/* buttons everywhere */
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{
  background:var(--cream)!important;color:var(--night)!important;border-radius:0!important;
  font-size:.66rem!important;letter-spacing:.28em;text-transform:uppercase;font-weight:500!important;padding:1.05rem 2.2rem!important;transition:background .3s!important}
.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #payment #place_order:hover{background:var(--gilt)!important;color:var(--night)!important}
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background:var(--gilt)!important;color:var(--night)!important}

/* single product */
.woocommerce div.product .product_title{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,3.4vw,3rem);color:var(--cream)}
.woocommerce div.product p.price{color:var(--gilt)!important;font-size:1.15rem!important;letter-spacing:.08em}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--cream-dim);line-height:1.95;font-size:.92rem}
.woocommerce div.product form.cart div.quantity .qty{background:var(--night);color:var(--cream);border:1px solid var(--hairline);height:3.3rem}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0!important;margin-bottom:0!important}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-bottom:1px solid var(--hairline)!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent!important;border:0!important;border-radius:0!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{color:var(--cream-dim)!important;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--gilt)!important}
.woocommerce div.product .woocommerce-tabs .panel{color:var(--cream-dim);line-height:2;font-size:.92rem}
.woocommerce div.product .woocommerce-tabs .panel h2{font-family:var(--serif);font-weight:300;color:var(--cream)}
.related.products > h2, .upsells.products > h2{font-family:var(--serif);font-weight:300;color:var(--cream);font-size:1.9rem;margin:3rem 0 1.5rem}
.woocommerce div.product div.images .flex-control-thumbs li img{opacity:.6}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active{opacity:1;border:1px solid var(--gilt)}
.woocommerce div.product .posted_in, .woocommerce div.product .sku_wrapper{font-size:.72rem;letter-spacing:.12em;color:var(--cream-dim)}
.woocommerce div.product .posted_in a{color:var(--gilt)}

/* cart */
.woocommerce table.shop_table{border:1px solid var(--hairline)!important;border-radius:0!important}
.woocommerce table.shop_table th{color:var(--cream)!important;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase}
.woocommerce table.shop_table td{border-top:1px solid var(--hairline)!important;color:var(--cream-dim)}
.woocommerce table.shop_table td a{color:var(--cream)}
.woocommerce table.shop_table td.product-name a{font-family:var(--serif);font-size:1.1rem;text-decoration:none}
.woocommerce .cart_totals h2, .woocommerce-billing-fields h3, #order_review_heading, .woocommerce-additional-fields h3{font-family:var(--serif);font-weight:300;color:var(--cream)}
.woocommerce td.product-quantity .qty{background:var(--night);color:var(--cream);border:1px solid var(--hairline)}
.woocommerce #coupon_code{background:var(--night);color:var(--cream);border:1px solid var(--hairline);height:auto;padding:1rem}

/* forms (checkout, account, login) */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single{
  background:var(--night)!important;color:var(--cream)!important;border:1px solid var(--hairline)!important;border-radius:0!important;padding:.95rem 1rem!important;height:auto!important}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--cream)!important;line-height:1.4!important}
.woocommerce form .form-row label{color:var(--cream-dim);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.woocommerce form .form-row .required{color:var(--rose)}

/* checkout payment box */
.woocommerce-checkout #payment{background:var(--night)!important;border-radius:0!important}
.woocommerce-checkout #payment div.payment_box{background:rgba(244,236,221,.06)!important;color:var(--cream-dim)!important}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:rgba(244,236,221,.06)!important}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--hairline)!important}
.woocommerce-checkout #payment ul.payment_methods label{color:var(--cream)}

/* account pages */
.woocommerce-MyAccount-navigation ul{list-style:none}
.woocommerce-MyAccount-navigation ul li a{color:var(--cream-dim);text-decoration:none;line-height:2.4;font-size:.85rem}
.woocommerce-MyAccount-navigation ul li.is-active a{color:var(--gilt)}

/* pagination */
.woocommerce nav.woocommerce-pagination ul{border:0!important}
.woocommerce nav.woocommerce-pagination ul li{border:0!important}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{color:var(--cream-dim)!important;background:transparent!important;font-size:.8rem;padding:.7rem 1.1rem}
.woocommerce nav.woocommerce-pagination ul li span.current{color:var(--gilt)!important;border-bottom:1px solid var(--gilt)}

/* star ratings */
.woocommerce .star-rating span::before, .woocommerce p.stars a{color:var(--gilt)}

@media (max-width:1000px){
  .page-shell{padding:7rem 1.2rem 4rem}
}


/* ================= detail pass 01 ================= */
.woo-shell h1.woocommerce-products-header__title, .woo-shell .page-title{font-family:var(--serif);font-weight:300;font-size:clamp(2.4rem,4.5vw,4rem);color:var(--cream)}
.woocommerce ul.products{margin-top:2.5rem!important}
.woocommerce ul.products li.product{transition:transform .6s cubic-bezier(.16,1,.3,1)}
.woocommerce ul.products li.product:hover{transform:translateY(-4px)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{margin-top:.2rem}
.woocommerce ul.products li.product .price{margin-top:.2rem!important}
.woocommerce .woocommerce-ordering{margin-bottom:1rem}
/* keep long product names to one clean line */
.woocommerce ul.products li.product .woocommerce-loop-product__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


/* ================= editorial pages ================= */
.page-shell .kicker{margin-bottom:.4rem}
.lux-lede{font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.55;color:var(--cream);max-width:40ch;margin:0 0 3.4rem}
.lux-lede em{font-style:italic;color:var(--rose)}
.lux-section{display:grid;grid-template-columns:3.4rem 1fr;gap:1.6rem;padding:3rem 0;border-top:1px solid var(--hairline)}
.lux-section .no{font-family:var(--bn);font-weight:200;font-size:1.6rem;color:var(--gilt)}
.lux-section h3{font-family:var(--serif);font-weight:400;font-size:1.45rem;color:var(--cream);margin-bottom:.8rem}
.lux-section p{color:var(--cream-dim);line-height:2;font-size:.95rem;max-width:64ch}
.lux-section p+p{margin-top:.9rem}
.lux-section a{color:var(--gilt);text-decoration:none;border-bottom:1px solid var(--gilt)}
.lux-table{width:100%;max-width:34rem;border-collapse:collapse;margin:1.2rem 0 .4rem}
.lux-table td{padding:1rem 0;border-bottom:1px solid var(--hairline);color:var(--cream-dim);font-size:.9rem}
.lux-table td:last-child{text-align:right;color:var(--gilt);letter-spacing:.06em}
.lux-note{font-size:.78rem;letter-spacing:.06em;color:var(--cream-dim);opacity:.8;margin-top:1.6rem}
.lux-cta{display:inline-block;margin-top:2.4rem;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;text-decoration:none;background:var(--cream);color:var(--night)!important;padding:1.1rem 2.5rem;border-bottom:0!important}
.lux-cta:hover{background:var(--gilt)}
/* wpautop injects empty paragraphs into the grid; remove them from flow */
.lux-section > p:empty{display:none}
@media (max-width:1000px){ .lux-section{grid-template-columns:2.6rem 1fr;gap:1rem} }


/* ================= shop uses the full stage ================= */
/* Woo's float-era clearfix pseudo-elements become ghost grid items; remove them */
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important;content:none!important}
.page-shell.woo-shell{max-width:104rem}
.woocommerce.woocommerce-page ul.products[class*="columns-"],
.woocommerce ul.products[class*="columns-"]{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem 2rem}
.woocommerce ul.products[class*="columns-"] li.product{width:auto!important;margin:0!important;float:none!important}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:1.35rem!important}
@media (max-width:1000px){
  .woocommerce ul.products[class*="columns-"]{grid-template-columns:1fr 1fr;gap:1.6rem 1rem}
  .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:1.05rem!important}
}


/* ================= editorial feature pages (story, size guide) ================= */
.page-shell:has(.story-hero){max-width:104rem}
.page-body:has(.story-hero){max-width:none}
.story-hero{position:relative;margin:1.5rem 0 0;overflow:hidden}
.story-hero img{width:100%;height:34rem;object-fit:cover;object-position:center 25%;filter:saturate(.96)}
.story-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top, rgba(25,17,19,.55), transparent 45%)}
.story-hero .cap{position:absolute;left:2rem;bottom:1.6rem;z-index:2;font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--cream)}
.lux-row{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:center;padding:5rem 0}
.lux-row + .lux-row{border-top:1px solid var(--hairline)}
.lux-row .lux-media{overflow:hidden;outline:1px solid var(--hairline);outline-offset:7px}
.lux-row .lux-media img{width:100%;height:32rem;object-fit:cover;object-position:center 12%;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.lux-row:hover .lux-media img{transform:scale(1.03)}
.lux-row.rev .lux-media{order:2}
.lux-row .no{font-family:var(--bn);font-weight:200;font-size:1.5rem;color:var(--gilt);display:block;margin-bottom:1rem}
.lux-row h3{font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,2.6vw,2.4rem);color:var(--cream);margin-bottom:1.2rem;line-height:1.2}
.lux-row h3 em{font-style:italic;color:var(--rose)}
.lux-row p{color:var(--cream-dim);line-height:2.05;font-size:.95rem;max-width:52ch}
.lux-row p+p{margin-top:1rem}
.lux-row > p:empty, .lux-text > p:empty{display:none}
.lux-quote{text-align:center;padding:6rem 2rem;border-top:1px solid var(--hairline)}
.lux-quote .bn{font-family:var(--bn);font-weight:100;font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.95;color:var(--cream)}
.lux-quote .tr{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--cream-dim);margin-top:1.6rem}
.size-pills{display:flex;gap:1rem;flex-wrap:wrap;margin:1.4rem 0 .6rem}
.size-pills span{border:1px solid var(--hairline);padding:.85rem 1.6rem;font-size:.78rem;letter-spacing:.22em;color:var(--cream);transition:all .3s}
.size-pills span:hover{border-color:var(--gilt);color:var(--gilt)}
.lux-steps{counter-reset:step;margin-top:.6rem}
.lux-steps li{list-style:none;display:grid;grid-template-columns:2.6rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--hairline);color:var(--cream-dim);line-height:1.9;font-size:.92rem}
.lux-steps li::before{counter-increment:step;content:counter(step);font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--gilt)}
@media (max-width:1000px){
  .story-hero img{height:16rem}
  .lux-row{grid-template-columns:1fr;gap:1.8rem;padding:2.6rem 0}
  .lux-row.rev .lux-media{order:0}
  .lux-row .lux-media img{height:20rem}
}


/* ================= single product : one of one ================= */
.single-product .woo-shell{max-width:96rem}
.single-product div.product{display:grid;grid-template-columns:1.05fr .95fr;gap:4.5rem;align-items:start}
.woocommerce.single-product div.product div.images{width:100%!important;float:none!important;margin:0!important;outline:1px solid var(--hairline);outline-offset:8px}
.woocommerce.single-product div.product div.summary{width:100%!important;float:none!important;margin:0!important;position:sticky;top:7.5rem;padding:1rem 0 0}
.single-product div.product .woocommerce-tabs,.single-product div.product .related.products,.single-product div.product .up-sells{grid-column:1/-1}
.sk-one{display:inline-flex;align-items:center;gap:.8rem;font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gilt);border:1px solid var(--hairline);padding:.7rem 1.2rem;margin-bottom:1.6rem}
.sk-one .bn-glyph{font-family:var(--bn);font-weight:400;font-size:1rem;letter-spacing:0}
.sk-help{display:flex;gap:1rem;align-items:center;margin-top:1.8rem;font-size:.72rem;letter-spacing:.14em}
.sk-help a{color:var(--cream-dim);text-decoration:none;border-bottom:1px solid var(--hairline);padding-bottom:.25rem;transition:color .3s,border-color .3s}
.sk-help a:hover{color:var(--gilt);border-color:var(--gilt)}
.sk-help span{color:var(--cream-dim);opacity:.5}
.woocommerce.single-product div.product form.cart{margin:1.8rem 0 0!important}
.woocommerce.single-product div.product form.cart .button{width:100%;padding:1.3rem 2rem!important;font-size:.72rem!important}
.woocommerce.single-product div.product form.cart div.quantity{display:none} /* one of one: quantity is always 1 */
.single-product .related.products{margin-top:5rem;padding-top:3rem;border-top:1px solid var(--hairline)}
@media (max-width:1000px){
  .single-product div.product{grid-template-columns:1fr;gap:2rem}
  .woocommerce.single-product div.product div.summary{position:static}
}

/* ================= mobile navigation ================= */
.burger{display:none;background:none;border:0;width:2.4rem;height:2.4rem;position:relative;cursor:pointer;z-index:210}
.burger i{position:absolute;left:.35rem;right:.35rem;height:1px;background:var(--cream);transition:all .35s}
.burger i:nth-child(1){top:.8rem}.burger i:nth-child(2){top:1.2rem}.burger i:nth-child(3){top:1.6rem}
body.nav-open .burger i:nth-child(1){top:1.2rem;transform:rotate(45deg)}
body.nav-open .burger i:nth-child(2){opacity:0}
body.nav-open .burger i:nth-child(3){top:1.2rem;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:200;background:var(--night);display:flex;flex-direction:column;justify-content:center;padding:0 2rem;gap:.4rem;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
body.nav-open .mnav{opacity:1;visibility:visible}
.mnav a{font-family:var(--serif);font-weight:300;font-size:2.2rem;color:var(--cream);text-decoration:none;padding:.7rem 0;border-bottom:1px solid var(--hairline)}
.mnav a small{display:inline-block;margin-left:1rem;font-family:var(--bn);font-size:1rem;color:var(--gilt)}
.mnav .mnav-foot{margin-top:2rem;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--cream-dim)}
@media (max-width:1000px){ .burger{display:block} }


/* ================= category strip on shop pages ================= */
.cat-strip{display:flex;flex-wrap:wrap;gap:.8rem;margin:.6rem 0 1.2rem}
.cat-strip a{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;color:var(--cream-dim);border:1px solid var(--hairline);padding:.75rem 1.5rem;transition:all .3s}
.cat-strip a:hover{color:var(--cream);border-color:var(--cream)}
.cat-strip a.on{color:var(--night);background:var(--gilt);border-color:var(--gilt)}
@media (max-width:1000px){ .cat-strip{gap:.5rem} .cat-strip a{padding:.6rem 1rem;font-size:.6rem} }
