/* Fonts are loaded from each page head (non-blocking). */

:root{
  --ink:#141210; --ink-soft:#3d3833; --paper:#faf9f6; --paper-alt:#f0eee9;
  --line:#dedad2; --accent:#7a2e2e; --ok:#3f5d3a; --warn:#a3672c;
  --serif:'Cormorant Garamond', Georgia, serif; --sans:'Inter', -apple-system, sans-serif;
  --shadow-sm: 0 1px 3px rgba(20,18,16,0.06);
  --shadow-md: 0 8px 24px rgba(20,18,16,0.08);
  --header-h: 68px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{-webkit-text-size-adjust:100%; overflow-x:clip;}
body{font-family:var(--sans); background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; overflow-x:clip; min-width:0;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button, input, select, textarea{font-family:inherit;}
button{cursor:pointer;}
:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}

/* ============ HEADER (shared, injected via assets/header.js) ============ */
.site-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:0 24px; height:var(--header-h); border-bottom:1px solid var(--line);
  background:var(--paper); position:sticky; top:0; z-index:40;
}
.logo{font-family:var(--serif); font-size:22px; font-weight:600; letter-spacing:.01em; white-space:nowrap;}
.logo span{font-weight:400;}
.main-nav{display:flex; gap:30px;}
.main-nav a{font-size:13.5px; font-weight:500; color:var(--ink-soft); padding:6px 0; position:relative; transition:color .15s;}
.main-nav a:hover{color:var(--ink);}
.header-icons{display:flex; gap:18px; align-items:center;}
.icon-link{position:relative; display:flex; padding:6px; margin:-6px; border-radius:4px; transition:background .15s;}
.icon-link:hover{background:var(--paper-alt);}
.icon-link svg{width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:1.4;}
.cart-badge{position:absolute; top:1px; right:1px; background:var(--ink); color:var(--paper); font-size:10px; width:16px; height:16px; border-radius:50%; display:none; align-items:center; justify-content:center; font-weight:600;}

.menu-toggle{display:none; background:none; border:none; padding:6px; margin:-6px; color:var(--ink);}
.menu-toggle svg{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.5;}

.mobile-nav-overlay{
  position:fixed; inset:0; background:rgba(20,18,16,.45); z-index:50;
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.mobile-nav-overlay.open{opacity:1; pointer-events:auto;}
.mobile-nav-panel{
  position:fixed; top:0; left:0; bottom:0; width:82%; max-width:320px;
  background:var(--paper); z-index:51; transform:translateX(-100%);
  transition:transform .25s ease; display:flex; flex-direction:column;
  box-shadow:var(--shadow-md);
}
.mobile-nav-panel.open{transform:translateX(0);}
.mobile-nav-head{display:flex; justify-content:space-between; align-items:center; padding:18px 20px; border-bottom:1px solid var(--line);}
.mobile-nav-links{display:flex; flex-direction:column; padding:8px 0;}
.mobile-nav-links a{padding:15px 20px; font-size:15px; border-bottom:1px solid var(--paper-alt);}

/* ============ BUTTONS ============ */
.btn-primary{display:inline-block; background:var(--ink); color:var(--paper); padding:14px 30px; font-size:13.5px; font-weight:600; letter-spacing:.04em; border:1px solid var(--ink); transition:.15s;}
.btn-primary:hover{background:transparent; color:var(--ink);}
.btn-secondary{display:inline-block; background:transparent; color:var(--ink); padding:13px 30px; font-size:13.5px; font-weight:600; letter-spacing:.04em; border:1px solid var(--ink); transition:.15s;}
.btn-secondary:hover{background:var(--ink); color:var(--paper);}
.btn-full{width:100%; text-align:center;}
button:disabled{opacity:.5; cursor:not-allowed;}

/* ============ FOOTER ============ */
.site-footer{border-top:1px solid var(--line); padding:48px 24px 24px;}
.footer-grid{max-width:1300px; margin:0 auto 32px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;}
.footer-grid p{font-size:13px; color:var(--ink-soft); line-height:1.6; max-width:260px; margin-top:12px;}
.footer-col h4{font-size:12px; letter-spacing:.06em; margin-bottom:14px; color:var(--ink-soft); font-weight:600;}
.footer-col a{display:block; font-size:13.5px; margin-bottom:10px;}
.footer-bottom{max-width:1300px; margin:0 auto; border-top:1px solid var(--line); padding-top:18px; font-size:12px; color:var(--ink-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}

/* ============ PRODUCT GRID / CARDS ============ */
.product-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.product-card{cursor:pointer; border-radius:2px;}
.product-card .thumb{aspect-ratio:3/4; background:var(--paper-alt); overflow:hidden; margin-bottom:12px; position:relative; border-radius:2px; box-shadow:var(--shadow-sm); transition:box-shadow .25s;}
.product-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.product-card:hover .thumb img{transform:scale(1.045);}
.product-card:hover .thumb{box-shadow:var(--shadow-md);}
.sale-tag{position:absolute; top:10px; left:10px; background:var(--accent); color:#fff; font-size:10px; font-weight:600; padding:4px 8px; letter-spacing:.03em;}
.product-card h3{font-size:14.5px; font-weight:500; margin-bottom:4px; transition:color .15s;}
.price-row{display:flex; gap:8px; font-size:14px; align-items:baseline;}
.price-row .sale{color:var(--accent); font-weight:600;}
.price-row .was{text-decoration:line-through; color:#a8a29a; font-size:12.5px;}

/* ============ FORMS ============ */
.field{display:block; margin-bottom:14px;}
.field span{display:block; font-size:12px; color:var(--ink-soft); margin-bottom:6px;}
.field input, .field textarea, .field select{width:100%; border:1px solid var(--line); background:var(--paper); padding:12px 14px; font-size:14px; border-radius:2px; transition:border-color .15s;}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--ink);}
.form-error{color:var(--accent); font-size:13px; margin-bottom:14px;}
.form-success{color:var(--ok); font-size:14px;}

.container{max-width:1300px; margin:0 auto; padding:0 24px;}
.narrow{max-width:480px; margin:0 auto; padding:64px 24px;}
.section-title{font-family:var(--serif); font-size:28px; font-weight:500;}

/* ============ STATES ============ */
.state-message{padding:48px 24px; text-align:center; color:var(--ink-soft); font-size:14px;}
.state-message.error{color:var(--accent);}
.skeleton{background:linear-gradient(90deg, var(--paper-alt) 25%, #e8e5de 37%, var(--paper-alt) 63%); background-size:400% 100%; animation:skeleton-loading 1.4s ease infinite;}
@keyframes skeleton-loading{0%{background-position:100% 50%;} 100%{background-position:0 50%;}}

/* ============ RESPONSIVE FOUNDATION ============ */
@media (max-width:880px){
  .main-nav{display:none;}
  .menu-toggle{display:flex;}
  .product-grid{grid-template-columns:repeat(2,1fr); gap:16px 14px;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:24px;}
  .site-header{padding:0 16px;}
  .container{padding:0 16px;}
}
@media (max-width:420px){
  .logo{font-size:19px;}
  .header-icons{gap:12px;}
  .section-title{font-size:24px;}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important; transition-duration:.01ms !important;}
}

/* ============ CART DRAWER (Phase 2B) ============ */
.cart-drawer-overlay{
  position:fixed; inset:0; background:rgba(20,18,16,.45); z-index:60;
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.cart-drawer-overlay.open{opacity:1; pointer-events:auto;}
.cart-drawer-panel{
  position:fixed; top:0; right:0; bottom:0; width:100%; max-width:420px;
  background:var(--paper); z-index:61; transform:translateX(100%);
  transition:transform .28s ease; display:flex; flex-direction:column;
  box-shadow:var(--shadow-md);
}
.cart-drawer-panel.open{transform:translateX(0);}
.cart-drawer-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 22px; border-bottom:1px solid var(--line); flex-shrink:0;
}
.cart-drawer-title{font-family:var(--serif); font-size:19px; font-weight:600; letter-spacing:.02em;}
.cart-drawer-close{background:none; border:none; font-size:24px; line-height:1; padding:4px; color:var(--ink);}
.cart-drawer-body{flex:1; overflow-y:auto; padding:18px 22px;}

.cart-drawer-shipping{font-size:12.5px; color:var(--ink-soft); margin-bottom:16px;}
.cart-drawer-shipping.unlocked{color:var(--ok); font-weight:600;}
.cart-drawer-shipping-track{background:var(--paper-alt); height:5px; border-radius:3px; margin-top:6px; overflow:hidden;}
.cart-drawer-shipping-fill{height:100%; background:var(--ink);}

.cart-drawer-item{display:flex; gap:12px; padding:16px 0; border-bottom:1px solid var(--paper-alt);}
.cart-drawer-item-img{width:64px; height:80px; flex-shrink:0; background:var(--paper-alt); overflow:hidden;}
.cart-drawer-item-img img{width:100%; height:100%; object-fit:cover;}
.cart-drawer-item-info{flex:1; min-width:0;}
.cart-drawer-item-info h4{font-size:13px; font-weight:600; margin-bottom:3px;}
.cart-drawer-item-variant{font-size:11.5px; color:var(--ink-soft); margin-bottom:6px;}
.cart-drawer-item-price{font-size:13.5px; font-weight:600; margin-bottom:8px;}
.cart-drawer-qty{display:inline-flex; align-items:center; border:1px solid var(--line); font-size:13px;}
.cart-drawer-qty button{background:none; border:none; width:26px; height:26px;}
.cart-drawer-qty span{width:22px; text-align:center;}
.cart-drawer-remove{align-self:flex-start; background:none; border:none; font-size:11px; color:var(--ink-soft); text-decoration:underline;}

.cart-drawer-footer{padding-top:16px; border-top:1px solid var(--line); margin-top:4px;}
.cart-drawer-subtotal-row{display:flex; justify-content:space-between; font-size:14.5px; font-weight:600; margin-bottom:14px;}
.cart-drawer-continue-link{display:block; width:100%; text-align:center; background:none; border:none; font-size:12.5px; color:var(--ink-soft); text-decoration:underline; margin-top:10px; padding:6px;}

@media (max-width:480px){
  .cart-drawer-panel{max-width:100%;}
}

/* ============ OVERFLOW GUARDS + MOBILE LAYOUTS (issue-fix pass) ============ */
img,video,svg,iframe{max-width:100%;}
h1,h2,h3,p,a,td,th,span,label{overflow-wrap:anywhere;}
table{max-width:100%;}
.footer-contact a{text-decoration:underline;}
.site-search{display:none; border-bottom:1px solid var(--line); background:var(--paper); padding:12px 24px;}
.site-search.open{display:block;}
.site-search form{display:flex; gap:8px; max-width:640px; margin:0 auto;}
.site-search input{flex:1; min-width:0; padding:10px 12px; border:1px solid var(--line); background:#fff; font-size:15px;}
.site-search button{padding:10px 16px; border:1px solid var(--ink); background:var(--ink); color:#fff; font-size:13.5px;}
@media (max-width:880px){
  #hero{grid-template-columns:1fr !important; min-height:0 !important;}
  #hero > div:first-child{padding:36px 20px !important; max-width:none !important;}
  #hero-title{font-size:34px !important;}
  #hero-image{min-height:260px; order:-1;}
  #promo-strip{gap:10px 20px !important; padding:14px 16px !important;}
  .container[style*="grid-template-columns"]{grid-template-columns:1fr !important; gap:24px !important;}
  div[style*="repeat(3,1fr)"]{grid-template-columns:1fr !important; gap:20px !important;}
  .container{padding-left:16px !important; padding-right:16px !important;}
  .site-search{padding:10px 16px;}
}
@media (max-width:420px){
  .btn-primary,.btn-secondary{white-space:normal;}
  .footer-grid{grid-template-columns:1fr !important;}
}

.product-card .thumb .no-img{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:15px; letter-spacing:.04em; color:var(--ink-soft); opacity:.55;}

/* hero image fills its box without layout shift */
.hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}

/* shop filters on phones: hidden behind a button */
.filter-toggle{display:none; align-items:center; gap:6px; padding:9px 14px; border:1px solid var(--line); background:var(--paper); font-size:13px; font-weight:500;}
@media (max-width:880px){
  .filter-toggle{display:inline-flex;}
  #filters{display:none;}
  #filters.open{display:block; border:1px solid var(--line); padding:4px 16px 8px; background:var(--paper);}
  #filters > h2{display:none;}
}

/* phone-only sticky add-to-cart */
#sticky-atc{display:none;}
@media (max-width:880px){
  #sticky-atc{display:flex; position:fixed; left:0; right:0; bottom:0; z-index:40; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:var(--paper); border-top:1px solid var(--line); transform:translateY(110%); transition:transform .25s;}
  #sticky-atc.show{transform:none;}
  #sticky-atc .sticky-name{font-size:12.5px; color:var(--ink-soft); max-width:46vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  #sticky-atc .sticky-price{font-weight:600; font-size:15px;}
  #sticky-atc button{flex:0 0 auto; padding:12px 22px;}
}
@media (prefers-reduced-motion: reduce){ #sticky-atc{transition:none;} }
@media (max-width:880px){ #filters.open > div:first-of-type{border-top:0;} }


/* ============ GLASS NAVIGATION (header + mobile tab bar) ============ */
:root{--glass-bg:rgba(255,255,255,.58); --glass-edge:rgba(255,255,255,.85); --glass-line:rgba(20,18,16,.07); --glass-shadow:0 1px 0 rgba(255,255,255,.95) inset, 0 8px 24px rgba(20,18,16,.08);}
.site-header{background:rgba(250,249,246,.74); -webkit-backdrop-filter:blur(18px) saturate(1.7); backdrop-filter:blur(18px) saturate(1.7); border-bottom:1px solid var(--glass-line);}
.main-nav{gap:2px; padding:5px; border-radius:999px; background:var(--glass-bg); border:1px solid var(--glass-edge); box-shadow:var(--glass-shadow), 0 0 0 1px var(--glass-line); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);}
.main-nav a, .main-nav button{padding:8px 16px; border-radius:999px; transition:background .2s, color .2s, box-shadow .2s;}
.main-nav a:hover, .main-nav button:hover{background:rgba(20,18,16,.05);}
.main-nav a.on{color:var(--ink); font-weight:600; background:rgba(255,255,255,.92); box-shadow:0 1px 0 #fff inset, 0 2px 8px rgba(20,18,16,.10);}
.header-icons{gap:10px;}
.header-icons .icon-link, .header-icons #search-toggle{width:40px; height:40px; margin:0; padding:0; align-items:center; justify-content:center; border-radius:50%; background:var(--glass-bg) !important; border:1px solid var(--glass-edge) !important; box-shadow:var(--glass-shadow), 0 0 0 1px var(--glass-line); display:flex; transition:background .2s;}
.header-icons .icon-link:hover, .header-icons #search-toggle:hover{background:rgba(255,255,255,.9) !important;}
.header-icons .cart-badge{top:-3px; right:-3px;}
.header-icons .menu-toggle{width:40px; height:40px; margin:0; padding:0; align-items:center; justify-content:center; border-radius:50%; background:var(--glass-bg); border:1px solid var(--glass-edge); box-shadow:var(--glass-shadow), 0 0 0 1px var(--glass-line);}
.site-search{background:rgba(250,249,246,.86); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header{background:var(--paper);} .main-nav{background:#fff;}}
@media (prefers-reduced-transparency: reduce){.site-header{background:var(--paper); backdrop-filter:none; -webkit-backdrop-filter:none;} .main-nav{background:#fff; backdrop-filter:none;}}

/* Desktop: whole header is one floating glass pill (like reference) */
@media (min-width:1025px){
  .site-header{margin:12px auto 0; width:calc(100% - 48px); max-width:1240px; top:12px; height:60px; padding:0 14px 0 24px; border-radius:999px; border:1px solid rgba(255,255,255,.85);
    background:rgba(255,255,255,.55); -webkit-backdrop-filter:blur(20px) saturate(1.8); backdrop-filter:blur(20px) saturate(1.8);
    box-shadow:0 1px 0 rgba(255,255,255,.95) inset, 0 10px 30px rgba(20,18,16,.10), 0 0 0 1px rgba(20,18,16,.06);}
  .main-nav{background:transparent; border:0; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; padding:0;}
  .site-search{max-width:1240px; margin:8px auto 0; border-radius:20px;}
}

/* Social icons */
.soc-row{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap;}
.soc-link{width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:50%; color:var(--ink); transition:background .2s,color .2s,border-color .2s;}
.soc-link:hover{background:var(--ink); color:#fff; border-color:var(--ink);}

/* About page */
.about-wrap{max-width:720px; margin:0 auto; padding:56px 24px 72px;}
.about-crumb{font-size:12.5px; color:var(--ink-soft); margin-bottom:36px;}
.about-eyebrow{font-size:11.5px; letter-spacing:.22em; color:var(--ink-soft); margin-bottom:10px;}
.about-title{font-family:var(--serif); font-weight:500; font-size:clamp(34px,6vw,52px); line-height:1.08; margin:0 0 32px; letter-spacing:-.01em;}
.prose h2{font-family:var(--serif); font-weight:500; font-size:24px; margin:34px 0 8px !important;}
.prose p{font-size:16px; line-height:1.8; color:var(--ink-soft); margin:8px 0 !important;}
.prose ul{color:var(--ink-soft); line-height:1.8;}
.about-follow{margin-top:44px; padding-top:22px; border-top:1px solid var(--line); font-size:11.5px; letter-spacing:.2em; color:var(--ink-soft);}
.about-follow:has(.js-social:empty){display:none;}
.about-cta{display:inline-block; margin-top:28px; padding:14px 30px; border:1px solid var(--ink); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); transition:background .2s,color .2s;}
.about-cta:hover{background:var(--ink); color:#fff;}

/* ===================== PREMIUM EDITORIAL POLISH ===================== */
body{letter-spacing:.005em;}
/* Buttons: slim, uppercase, generous tracking */
.btn-primary,.btn-secondary,.about-cta{font-size:12px !important; font-weight:600 !important; letter-spacing:.18em !important; text-transform:uppercase; padding:17px 38px !important; border-radius:0; transition:background .25s, color .25s, border-color .25s, box-shadow .25s, transform .25s;}
.btn-primary{background:var(--ink); color:#fff !important; border:1px solid var(--ink);}
.btn-primary:hover{background:#2a2622; color:#fff !important; box-shadow:0 10px 26px rgba(20,18,16,.22);}
.btn-secondary:hover{background:var(--ink); color:#fff;}
/* Glass CTA: used for the hero button and the filter button */
#hero-cta{display:inline-flex; align-items:center; gap:12px; background:rgba(20,18,16,.86); border:1px solid rgba(255,255,255,.28); -webkit-backdrop-filter:blur(14px) saturate(1.6); backdrop-filter:blur(14px) saturate(1.6); box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 12px 30px rgba(20,18,16,.22); border-radius:999px; padding:17px 34px !important;}
#hero-cta::after{content:"→"; font-size:15px; letter-spacing:0; transition:transform .25s;}
#hero-cta:hover{transform:translateY(-1px); background:rgba(20,18,16,.96);}
#hero-cta:hover::after{transform:translateX(4px);}

/* Hero: full-bleed image with a frosted text panel */
#hero-label{font-size:11px !important; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-soft) !important;}
#hero-title{font-size:clamp(38px,5vw,64px) !important; letter-spacing:-.015em; line-height:1.02 !important;}
#hero-subtitle{font-size:15.5px !important; line-height:1.75 !important;}
@media (min-width:900px){
  #hero{display:block !important; position:relative; min-height:660px !important; background:var(--paper-alt);}
  #hero-image{position:absolute !important; inset:0; min-height:0;}
  #hero > div:first-child{position:relative; z-index:2; margin:84px 0 84px max(32px,6vw); padding:48px 46px !important; max-width:520px !important; border-radius:22px;
    background:rgba(255,255,255,.58); border:1px solid rgba(255,255,255,.8); -webkit-backdrop-filter:blur(22px) saturate(1.6); backdrop-filter:blur(22px) saturate(1.6);
    box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 24px 60px rgba(20,18,16,.16);}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ #hero > div:first-child{background:rgba(255,255,255,.92);} }

/* Promo strip: quiet, uppercase */
#promo-strip{font-size:11px !important; letter-spacing:.2em !important; text-transform:uppercase; gap:56px !important; padding:20px 32px !important; background:var(--paper);}

/* Section headings and links */
.section-title{font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.4vw,40px); letter-spacing:-.01em;}
#home .container > div:first-child a{font-size:11.5px !important; letter-spacing:.18em; text-transform:uppercase; border-bottom:1px solid var(--ink) !important; padding-bottom:3px;}

/* Product cards: flat editorial, no boxed look */
.product-card{border-radius:0;}
.product-card .thumb{border-radius:0 !important; box-shadow:none !important; background:var(--paper-alt); margin-bottom:14px;}
.product-card:hover .thumb{box-shadow:none !important;}
.product-card h3{font-size:13.5px; font-weight:500; letter-spacing:.02em; margin-bottom:5px;}
.product-grid{gap:34px 24px;}
.sale-tag{border-radius:0; letter-spacing:.14em; font-size:9.5px; padding:5px 9px;}

/* Shop: glass filter + sort controls */
#filter-toggle,#sort-select{border-radius:999px !important; background:rgba(255,255,255,.6) !important; border:1px solid rgba(255,255,255,.85) !important; -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset, 0 6px 18px rgba(20,18,16,.08), 0 0 0 1px rgba(20,18,16,.07); font-size:12.5px !important; letter-spacing:.06em; padding:11px 20px !important; color:var(--ink); cursor:pointer;}
#filter-toggle:hover,#sort-select:hover{background:rgba(255,255,255,.9) !important;}
@media (max-width:900px){
  #filters{border-radius:22px; background:rgba(255,255,255,.72) !important; border:1px solid rgba(255,255,255,.85) !important; -webkit-backdrop-filter:blur(22px) saturate(1.6); backdrop-filter:blur(22px) saturate(1.6); box-shadow:0 18px 44px rgba(20,18,16,.14); padding:18px 20px !important; margin-bottom:16px;}
}
@media (prefers-reduced-motion:reduce){ #hero-cta,#hero-cta::after,.btn-primary{transition:none !important;} }

/* Hero slideshow / video background */
.hero-track{display:flex; height:100%; width:100%; transition:transform 1s cubic-bezier(.65,0,.35,1); will-change:transform;}
.hero-slide{flex:0 0 100%; position:relative; height:100%; overflow:hidden;}
.hero-slide img,.hero-slide video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
#hero-panel > *{transition:opacity .35s;}
#hero-panel.swap > *{opacity:0;}
.hero-dots{position:absolute; z-index:3; right:max(24px,5vw); bottom:26px; display:flex; gap:8px; padding:9px 12px; border-radius:999px; background:rgba(255,255,255,.5); border:1px solid rgba(255,255,255,.8); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);}
.hero-dots button{width:8px; height:8px; padding:0; border-radius:50%; border:0; background:rgba(20,18,16,.3); cursor:pointer; transition:background .25s, width .25s;}
.hero-dots button[aria-current="true"]{background:var(--ink); width:22px; border-radius:6px;}
@media (max-width:899px){
  #hero{display:block !important; position:relative; min-height:calc(100svh - 150px) !important; background:var(--paper-alt);}
  #hero-image{position:absolute !important; inset:0; min-height:0 !important; order:0 !important;}
  #hero > div:first-child{position:absolute !important; left:14px; right:14px; bottom:18px; z-index:2; max-width:none !important; padding:22px 20px 24px !important; border-radius:22px;
    background:rgba(255,255,255,.62); border:1px solid rgba(255,255,255,.85); -webkit-backdrop-filter:blur(20px) saturate(1.6); backdrop-filter:blur(20px) saturate(1.6); box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 16px 40px rgba(20,18,16,.18);}
  #hero-title{font-size:30px !important; min-height:0 !important; margin-bottom:10px !important;}
  #hero-subtitle{font-size:14px !important; margin-bottom:18px !important;}
  #hero-cta{width:100%; justify-content:center;}
  .hero-dots{top:14px; bottom:auto; right:14px;}
}
@media (prefers-reduced-motion:reduce){ .hero-track,#hero-panel > *{transition:none !important;} }

/* sticky add-to-cart sits above the floating tab bar on phones */
@media (max-width:899px){ #sticky-atc{bottom:calc(84px + env(safe-area-inset-bottom)) !important; left:12px !important; right:12px !important; border:1px solid var(--line); border-radius:18px; padding:8px 8px 8px 16px !important;} }

/* ===== Mobile home (matches the approved mockup) ===== */
.m-sr{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.sec-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
.view-all{font-size:12.5px; font-weight:500; border-bottom:1px solid var(--ink); white-space:nowrap;}
/* desktop keeps the previous category tiles */
.cat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:16px;}
.cat-tile{display:block; border:1px solid var(--line); text-align:center; padding-bottom:14px; font-weight:500;}
.cat-tile img{width:100%; aspect-ratio:4/5; object-fit:cover; display:block; margin-bottom:12px;}
.cat-ph{display:block; height:14px;}
.cat-name i{display:none; font-style:normal;}
.pc-actions{display:none;}
.tg-m{display:none;}
@media (min-width:701px){ .m-only{display:none !important;} }
@media (max-width:700px){
  .d-only{display:none !important;}
  #m-tools{padding:6px 14px 0;}
  .m-search{display:flex; gap:8px; margin:0 0 12px;}
  .m-sbox{flex:1; display:flex; align-items:center; gap:9px; height:44px; border-radius:22px; background:#fff; border:1px solid var(--line); padding:0 14px; min-width:0;}
  .m-sbox svg,.m-filter svg,.trust-card svg{width:18px; height:18px; stroke:var(--ink); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto;}
  .m-sbox input{flex:1; min-width:0; border:0; outline:0; background:transparent; font-size:16px; color:var(--ink); height:100%;}
  .m-sbox:focus-within{outline:2px solid var(--ink); outline-offset:1px;}
  .m-filter{width:44px; height:44px; border-radius:50%; background:var(--ink); display:grid; place-items:center; flex:0 0 auto;}
  .m-filter svg{stroke:#fff;}
  .m-chips{display:flex; gap:8px; overflow-x:auto; padding:0 0 14px; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
  .m-chips::-webkit-scrollbar{display:none;}
  .m-chips a{flex:0 0 auto; padding:9px 16px; border-radius:20px; background:#fff; border:1px solid var(--line); font-size:13px; white-space:nowrap; color:var(--ink);}
  .m-chips a.on{background:var(--ink); color:#fff; border-color:var(--ink);}
  /* hero: rounded card, glass panel at the bottom */
  #hero{margin:0 14px; border-radius:26px; overflow:hidden; min-height:clamp(320px,46svh,400px) !important;}
  #hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:55%; z-index:1; pointer-events:none; background:linear-gradient(to top,rgba(10,9,8,.55),rgba(10,9,8,0));}
  #hero > div:first-child{left:16px !important; right:16px !important; bottom:16px !important; padding:0 !important; border-radius:0 !important; background:none !important; border:0 !important; box-shadow:none !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  #hero-label,#hero-subtitle{display:none !important;}
  #hero-title{color:#fff !important; text-shadow:0 1px 14px rgba(0,0,0,.35); margin-bottom:12px !important;}
  #hero-label{font-size:9.5px !important; letter-spacing:.2em !important; margin-bottom:6px !important;}
  #hero-title{font-size:27px !important; line-height:1.06 !important; margin-bottom:6px !important;}
  #hero-subtitle{font-size:12.5px !important; line-height:1.45 !important; margin-bottom:11px !important;}
  #hero-cta{width:auto !important; justify-content:flex-start !important; padding:11px 20px !important; font-size:11.5px !important; letter-spacing:.16em !important; gap:8px !important;}
  .hero-dots{top:14px !important; left:16px !important; right:auto !important; bottom:auto !important; padding:0 !important; background:none !important; border:0 !important; box-shadow:none !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; gap:5px !important;}
  .hero-dots button{width:18px !important; height:3px !important; border-radius:2px !important; background:rgba(255,255,255,.55) !important;}
  .hero-dots button[aria-current="true"]{background:#fff !important;}
  /* trust row */
  #sec-trust_row{padding:16px 0 0 !important;}
  #sec-trust_row .trust-row{display:flex; gap:10px; overflow-x:auto; padding:0 14px 4px !important; scroll-snap-type:x proximity; scroll-padding:0 14px; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
  .trust-row::-webkit-scrollbar{display:none;}
  .trust-card{flex:0 0 150px; scroll-snap-align:start; border-radius:18px; background:#fff; border:1px solid var(--line); padding:12px;}
  .trust-card b{display:block; font-size:12.5px; font-weight:600; margin:6px 0 2px;}
  .trust-card span{font-size:11px; color:var(--ink-soft); line-height:1.35; display:block;}
  /* sale banner */
  #sec-sale_banner{padding:16px 14px 0 !important;}
  .sale-banner{display:flex; justify-content:space-between; align-items:center; gap:12px; border-radius:22px; background:var(--ink); color:#fff; padding:14px 16px;}
  .sale-banner b{display:block; font:500 17px/1.2 var(--serif);}
  .sale-banner small{display:block; font-size:11px; color:#cfc9bb; margin-top:3px;}
  .sale-banner a{text-transform:none !important; letter-spacing:0 !important; border:0 !important; flex:0 0 auto; background:#fff; color:var(--ink); border-radius:14px; padding:8px 14px; font-size:12px; font-weight:600;}
  /* category tiles */
  #sec-categories{padding:20px 14px 0 !important;}
  #sec-categories .section-title,#sec-new_in .section-title{font-size:22px;}
  .cat-grid{grid-template-columns:1fr 1fr; gap:10px;}
  .cat-tile{position:relative; height:150px; border:0; border-radius:22px; overflow:hidden; padding:0; text-align:left; background:linear-gradient(160deg,#d8cfbd,#a79d86);}
  .cat-tile:nth-child(even){background:linear-gradient(160deg,#cfd3d6,#8d949a);}
  .cat-tile img{position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; margin:0;}
  .cat-ph{height:100%;}
  .cat-name{position:absolute; left:10px; right:10px; bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:6px; padding:8px 12px; border-radius:14px; background:rgba(255,255,255,.66); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); font:500 16px/1.15 var(--serif); color:var(--ink);}
  .cat-name i{display:inline;}
  /* new in */
  #sec-new_in{padding:20px 14px 0 !important;}
  #sec-new_in > div:first-child{border-bottom:0 !important; padding-bottom:0 !important; margin-bottom:12px !important;}
  #new-in-grid,#product-grid{grid-template-columns:1fr 1fr !important; gap:14px 12px !important;}
  .pc{position:relative;}
  #new-in-grid .product-card .thumb,#product-grid .product-card .thumb{border-radius:20px !important; background:#ece8de !important; margin-bottom:8px !important;}
  #new-in-grid .product-card h3,#product-grid .product-card h3{font-size:12.5px; line-height:1.3; margin:0 2px 2px !important; letter-spacing:0;}
  #new-in-grid .price-row,#product-grid .price-row{margin:0 2px; gap:6px;}
  #new-in-grid .price-row .sale,#product-grid .price-row .sale{color:var(--ink);}
  #new-in-grid .sale-tag,#product-grid .sale-tag{top:9px; left:9px; background:var(--ink); border-radius:10px; font-size:10px; padding:3px 8px; letter-spacing:.02em;}
  .tg-d{display:none;} .tg-m{display:inline;}
  .pc-actions{display:block; position:absolute; left:0; right:0; top:0; aspect-ratio:3/4; pointer-events:none;}
  .pc-actions button{pointer-events:auto; position:absolute; width:36px; height:36px; border-radius:50%; border:0; display:grid; place-items:center; padding:0; cursor:pointer;}
  .pc-actions svg{width:17px; height:17px; stroke:var(--ink); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
  .wl-btn{top:9px; right:9px; background:rgba(255,255,255,.85);}
  .wl-btn.on svg{fill:var(--ink);}
  .qa-btn{bottom:9px; right:9px; background:var(--ink);}
  .qa-btn svg{stroke:#fff;}
  .pc-actions button:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
}
/* quick-add sheet */
#qa-ov{position:fixed; inset:0; z-index:70; background:rgba(20,18,16,.45); display:flex; align-items:flex-end; justify-content:center;}
#qa-ov[hidden]{display:none;}
#qa{position:relative; width:100%; max-width:520px; background:var(--paper); border-radius:26px 26px 0 0; padding:22px 18px calc(20px + env(safe-area-inset-bottom)); box-shadow:0 -10px 40px rgba(20,18,16,.25); animation:qaUp .25s ease-out;}
@keyframes qaUp{from{transform:translateY(40px); opacity:.6;}to{transform:none; opacity:1;}}
@media (prefers-reduced-motion:reduce){ #qa{animation:none;} }
#qa h3{font:500 20px/1.25 var(--serif); padding-right:36px; margin-bottom:4px;}
#qa-price{font-weight:600; font-size:16px; min-height:22px; margin-bottom:12px;}
.qa-x{position:absolute; top:12px; right:14px; width:40px; height:40px; border:0; background:none; font-size:28px; line-height:1; color:var(--ink); cursor:pointer;}
#qa-opts{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px;}
.qa-chip{padding:10px 16px; border-radius:20px; border:1px solid var(--line); background:#fff; font-size:13.5px; cursor:pointer; color:var(--ink);}
.qa-chip[aria-checked="true"]{background:var(--ink); color:#fff; border-color:var(--ink);}
.qa-chip:disabled{opacity:.45; text-decoration:line-through; cursor:not-allowed;}
#qa-msg{font-size:13px; color:var(--ink-soft); min-height:18px; margin-bottom:8px;}
#qa-add{width:100%; justify-content:center;}
#qa-add:disabled{opacity:.5; cursor:not-allowed;}
#qa-more{display:block; text-align:center; margin-top:12px; font-size:13px; border-bottom:0; text-decoration:underline;}

/* Side menu — premium bordered rows */
.mobile-nav-overlay{z-index:59 !important; background:rgba(20,18,16,.5);}
.mobile-nav-panel{z-index:60 !important; width:86% !important; max-width:340px !important; overflow-y:auto; overscroll-behavior:contain; box-shadow:12px 0 40px rgba(20,18,16,.18) !important;}
.mobile-nav-head{padding:20px 20px 16px !important; border-bottom:1px solid var(--line); flex-shrink:0;}
#mobile-nav-close{width:40px; height:40px; border:1px solid var(--line) !important; border-radius:50% !important; display:flex; align-items:center; justify-content:center; background:#fff !important; padding:0 !important; font-size:20px !important;}
.mobile-nav-links{padding:16px 16px calc(24px + env(safe-area-inset-bottom)) !important; gap:10px;}
.mobile-nav-links a{display:flex; align-items:center; justify-content:space-between; padding:0 18px !important; min-height:52px; font-size:15px !important; font-weight:500; letter-spacing:.01em; color:var(--ink); background:#fff; border:1px solid var(--line) !important; border-radius:14px; transition:border-color .2s, background .2s, transform .15s;}
.mobile-nav-links a::after{content:""; width:7px; height:7px; border-top:1.6px solid var(--ink-soft); border-right:1.6px solid var(--ink-soft); transform:rotate(45deg); flex:0 0 auto; margin-right:2px;}
.mobile-nav-links a:active,.mobile-nav-links a:hover{border-color:var(--ink) !important; background:var(--paper-alt);}
.mobile-nav-links a:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
.mobile-nav-links > div{border-top:0 !important; margin-top:10px !important; padding-top:16px; border-top:1px solid var(--line) !important; gap:10px;}
.mobile-nav-links a[href="signup.html"]{background:var(--ink); color:#fff; border-color:var(--ink) !important;}
.mobile-nav-links a[href="signup.html"]::after{border-color:#fff;}
@media (prefers-reduced-motion:reduce){.mobile-nav-links a{transition:none;}}

/* Quick-add sheet v2 */
#qa{padding-top:26px !important;}
.qa-grab{position:absolute; top:9px; left:50%; width:38px; height:4px; margin-left:-19px; border-radius:2px; background:var(--line);}
.qa-top{display:flex; gap:14px; align-items:center; margin:4px 0 16px; padding-right:34px;}
.qa-top img{width:72px; height:90px; object-fit:cover; border-radius:14px; background:var(--paper-alt); flex:0 0 auto;}
.qa-top img[hidden]{display:none;}
#qa h3{font:500 18px/1.25 var(--serif); padding-right:0 !important; margin:0 0 4px !important;}
#qa-price{margin:0 !important; min-height:0 !important;}
.qa-lab{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin:14px 0 8px;}
.qa-lab b{letter-spacing:0; text-transform:none; color:var(--ink); font-weight:600;}
.qa-row{display:flex; flex-wrap:wrap; gap:8px;}
#qa-opts{display:block !important; margin-bottom:6px !important;}
.qa-size{min-width:50px; text-align:center; padding:10px 14px !important;}
.qa-col{display:inline-flex; align-items:center; gap:8px;}
.qa-col i{width:14px; height:14px; border-radius:50%; border:1px solid rgba(20,18,16,.25); flex:0 0 auto;}
.qa-chip[aria-checked="true"] i{border-color:#fff;}
#qa-add{border-radius:26px !important; margin-top:6px;}
#qa-msg{min-height:20px; color:var(--accent) !important;}

/* Shop page — phone */
.shop-chips{display:none;}
.fs-head{display:block;} .fs-x,.fs-foot{display:none;}
#filters-ov{display:none;}
@media (max-width:880px){
  #page-title{text-align:left !important; margin:6px 16px 4px !important; font-size:32px !important; line-height:1.05;}
  .container:has(#crumb-category){padding-top:12px !important;}
  .container:has(#filters){display:block !important; padding-bottom:110px !important;}
  .container:has(#filters) > div:last-child > div:first-child{display:flex !important; flex-wrap:wrap; gap:10px !important; margin-bottom:14px !important;}
  #result-count{order:-1; flex:0 0 100%; font-size:12.5px !important; margin:-2px 2px 0;}
  #filter-toggle{order:1; background:var(--ink) !important; color:#fff !important; border:1px solid var(--ink) !important; box-shadow:none !important; -webkit-backdrop-filter:none; backdrop-filter:none; padding:10px 18px !important;}
  #sort-select{order:2; flex:1; min-width:0; background:#fff !important; border:1px solid var(--line) !important; box-shadow:none !important; padding:10px 16px !important; -webkit-backdrop-filter:none; backdrop-filter:none;}
  .shop-chips{display:flex; gap:8px; overflow-x:auto; padding:2px 16px 14px; scrollbar-width:none; scroll-padding:0 16px;}
  .shop-chips::-webkit-scrollbar{display:none;}
  .shop-chips a{flex:0 0 auto; padding:9px 16px; border-radius:20px; background:#fff; border:1px solid var(--line); font-size:13px; color:var(--ink); white-space:nowrap;}
  .shop-chips a.on{background:var(--ink); color:#fff; border-color:var(--ink);}
  .container:has(#filters){padding-left:16px; padding-right:16px;}
  /* filter bottom sheet */
  #filters{display:block !important; position:fixed; left:0; right:0; bottom:0; z-index:66; max-height:82vh; overflow-y:auto; overscroll-behavior:contain; margin:0 !important; padding:20px 20px calc(96px + env(safe-area-inset-bottom)) !important; background:var(--paper) !important; border:0 !important; border-radius:26px 26px 0 0 !important; box-shadow:0 -12px 40px rgba(20,18,16,.2) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; transform:translateY(105%); visibility:hidden; transition:transform .28s ease, visibility 0s .28s;}
  #filters.open{transform:none; visibility:visible; transition:transform .28s ease;}
  #filters > .fs-head > h2{display:block !important;}
  .fs-head{display:flex; justify-content:space-between; align-items:flex-start;}
  .fs-x{display:flex; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:#fff; align-items:center; justify-content:center; font-size:22px; line-height:1; cursor:pointer;}
  .fs-foot{display:flex; gap:10px; position:sticky; bottom:calc(-96px - env(safe-area-inset-bottom)); margin:18px -20px calc(-96px - env(safe-area-inset-bottom)); padding:14px 20px calc(16px + env(safe-area-inset-bottom)); background:var(--paper); border-top:1px solid var(--line);}
  .fs-foot .btn-primary{flex:1; justify-content:center; border-radius:26px !important;}
  .fs-clear{padding:0 20px; border:1px solid var(--line); background:#fff; border-radius:26px; font-size:13px; cursor:pointer;}
  #filters-ov:not([hidden]){display:block; position:fixed; inset:0; z-index:65; background:rgba(20,18,16,.45);}
  #filters label{padding:6px 0;}
  #filters input[type=checkbox]{width:18px; height:18px;}
}
@media (prefers-reduced-motion:reduce){ #filters,#filters.open{transition:none;} }

/* All products (category picker) */
.ac-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
@media (min-width:701px){.ac-grid{grid-template-columns:repeat(3,1fr); gap:18px;}}
.ac-tile{position:relative; display:block; aspect-ratio:4/5; border-radius:22px; overflow:hidden; background:linear-gradient(160deg,#d8cfbd,#a79d86);}
.ac-tile:nth-child(even){background:linear-gradient(160deg,#cfd3d6,#8d949a);}
.ac-tile img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.ac-tile:hover img{transform:scale(1.04);}
.ac-name{position:absolute; left:10px; right:10px; bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:6px; padding:10px 14px; border-radius:16px; background:rgba(255,255,255,.68); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.8); font-size:13.5px; font-weight:500; color:var(--ink);}
.ac-name i{font-style:normal;}
.ac-tile:focus-visible{outline:2px solid var(--ink); outline-offset:3px;}
.ac-all{display:flex !important; justify-content:center; border-radius:26px !important; margin-top:4px;}
@media (prefers-reduced-motion:reduce){.ac-tile img{transition:none;}}

/* Log in / sign up / reset — soft pill fields */
.narrow .section-title,.narrow h1{font-size:34px !important; letter-spacing:-.01em;}
.narrow .field input{border-radius:26px; padding:15px 20px; background:#fff; font-size:15px;}
.narrow .field input:focus{box-shadow:0 0 0 3px rgba(20,18,16,.08);}
.narrow .btn-primary,.narrow .btn-secondary{border-radius:26px !important;}

/* Footer */
.footer-col summary{list-style:none; cursor:default;}
.footer-col summary::-webkit-details-marker{display:none;}
.footer-col summary{font-size:12px; letter-spacing:.06em; margin-bottom:14px; color:var(--ink-soft); font-weight:600;}
@media (min-width:701px){ .footer-col summary{pointer-events:none;} }
@media (max-width:700px){
  .site-footer{border-top:0; padding:20px 14px calc(110px + env(safe-area-inset-bottom));}
  .footer-grid{display:flex !important; flex-direction:column; gap:10px !important; margin-bottom:18px;}
  .footer-grid > div:first-child{background:var(--ink); color:#e8e4da; border-radius:26px; padding:24px 20px 22px; margin-bottom:6px;}
  .footer-grid > div:first-child p{color:#b9b4a8; max-width:none;}
  .footer-grid > div:first-child .soc-link{color:#e8e4da; border-color:#3a3630;}
  .footer-grid > div:first-child #nl-form{max-width:none !important;}
  .footer-grid > div:first-child #nl-form label{color:#b9b4a8;}
  .footer-grid > div:first-child #nl-email{background:#26231f !important; border:1px solid #3a3630 !important; color:#fff; border-radius:24px; padding:12px 18px !important;}
  .footer-grid > div:first-child #nl-email::placeholder{color:#8a857b;}
  .footer-grid > div:first-child #nl-form button{background:#fff !important; color:var(--ink) !important; border:0 !important; border-radius:24px !important; padding:0 20px !important;}
  .footer-grid > div:first-child #nl-msg{color:#b9b4a8;}
  .footer-col{background:#fff; border:1px solid var(--line); border-radius:22px; padding:0 18px; overflow:hidden;}
  .footer-col summary{display:flex; justify-content:space-between; align-items:center; margin:0; padding:17px 0; min-height:54px; cursor:pointer; color:var(--ink); font-size:12.5px; letter-spacing:.1em;}
  .footer-col summary::after{content:""; width:8px; height:8px; border-right:1.6px solid var(--ink-soft); border-bottom:1.6px solid var(--ink-soft); transform:rotate(45deg); transition:transform .2s; margin-right:3px;}
  .footer-col[open] summary::after{transform:rotate(-135deg);}
  .footer-col[open] summary{border-bottom:1px solid #efece5; margin-bottom:6px;}
  .footer-col a{padding:6px 0; margin-bottom:2px; font-size:14px;}
  .footer-col[open]{padding-bottom:10px;}
  .footer-col summary:focus-visible{outline:2px solid var(--ink); outline-offset:2px; border-radius:8px;}
  .footer-bottom{border-top:0; text-align:center; justify-content:center; flex-direction:column; gap:8px; padding-top:4px; font-size:12px;}
}
@media (prefers-reduced-motion:reduce){.footer-col summary::after{transition:none;}}

/* Product page — premium rounded look */
#gallery{border-radius:24px;}
#gallery img{display:block;}
#g-dots{width:max-content; max-width:80%; margin:-30px auto 16px !important; position:relative; z-index:2; padding:6px 10px; border-radius:12px; background:rgba(255,255,255,.6);}
#g-prev,#g-next{border-radius:50% !important; width:40px !important; height:40px !important;}
#product-root h1{font-size:28px !important; line-height:1.15; letter-spacing:-.005em;}
#price{color:var(--ink);}
.size-btn{border-radius:22px !important; width:auto !important; min-width:50px; padding:11px 16px !important; cursor:pointer;}
.size-btn:disabled{text-decoration:line-through; cursor:not-allowed;}
.color-btn{border-radius:22px !important; cursor:pointer;}
.color-btn:disabled{cursor:not-allowed;}
.size-btn:focus-visible,.color-btn:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
div:has(> #qty-minus){border-radius:22px; overflow:hidden; background:#fff;}
#qty-input{background:transparent;}
.pdp-actions{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:22px;}
.pdp-actions .btn-primary,.pdp-actions .btn-secondary{border-radius:26px !important; padding:16px 10px !important; justify-content:center; font-size:11.5px !important; letter-spacing:.14em !important;}
#wishlist-btn,#cart-message{grid-column:1 / -1;}
#wishlist-btn{background:transparent !important; border:1px solid var(--line) !important; font-size:13px !important; letter-spacing:.04em !important; text-transform:none !important; padding:13px 10px !important;}
.pdp-folds{display:flex; flex-direction:column; gap:8px;}
.pdp-folds details{background:#fff; border:1px solid var(--line); border-radius:18px; padding:0 16px;}
.pdp-folds summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; min-height:50px; font-size:13.5px; font-weight:500;}
.pdp-folds summary::-webkit-details-marker{display:none;}
.pdp-folds summary::after{content:"+"; font-size:18px; font-weight:400; color:var(--ink-soft);}
.pdp-folds details[open] summary::after{content:"\2212";}
.pdp-folds details[open]{padding-bottom:14px;}
.pdp-folds summary:focus-visible{outline:2px solid var(--ink); outline-offset:2px; border-radius:10px;}
@media (max-width:899px){
  #product-root{display:block !important; padding:12px 16px 120px !important;}
  #product-root > div + div{margin-top:4px;}
  #g-prev,#g-next{display:none !important;}
  #gallery{aspect-ratio:4/5 !important;}
  #sticky-atc{border-radius:30px !important; background:rgba(255,255,255,.82) !important; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); box-shadow:0 8px 28px rgba(20,18,16,.15); padding:8px 8px 8px 18px !important;}
  #sticky-atc button{border-radius:24px !important; padding:13px 24px !important;}
}
#sticky-atc:not(.show){opacity:0 !important; visibility:hidden !important; pointer-events:none;}
#qty-minus,#qty-plus{background:transparent !important; border:0 !important;}

/* Bag page */
.bag-list{display:flex; flex-direction:column; gap:12px;}
.bag-item{display:flex; gap:14px; padding:14px; background:#fff; border:1px solid var(--line); border-radius:22px;}
.bag-thumb{width:74px; height:92px; flex-shrink:0; background:var(--paper-alt); overflow:hidden; border-radius:14px;}
.bag-qty{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:18px; font-size:13px; background:#fff;}
.bag-qty button{width:32px !important; height:30px !important; cursor:pointer; font-size:16px;}
.bag-qty span{min-width:22px; text-align:center;}
.bag-sum{max-width:360px; margin-left:auto; margin-top:20px; background:#fff; border:1px solid var(--line); border-radius:22px; padding:18px;}
.bag-sum .btn-primary{border-radius:26px !important; display:block; padding:16px 10px !important;}
@media (max-width:700px){
  .bag-page{padding:18px 16px 130px !important;}
  .bag-page .section-title{text-align:left !important; font-size:30px !important; margin-bottom:16px !important;}
  .bag-sum{max-width:none;}
}

/* Checkout */
.narrow .field select,.narrow .field textarea{border-radius:22px; background:#fff; padding:14px 18px; font-size:15px;}
#checkout-form label:has(.payment-radio),#checkout-form label:has(input[name="saved_addr"]){border-radius:18px !important; background:#fff;}
#checkout-form label:has(.payment-radio:checked),#checkout-form label:has(input[name="saved_addr"]:checked){border-color:var(--ink) !important;}
#checkout-form .payment-radio,#checkout-form input[name="saved_addr"]{width:18px; height:18px; accent-color:var(--ink);}
#checkout-form > div:has(#preview-total){background:#fff; border:1px solid var(--line) !important; border-radius:22px; padding:18px !important;}
#coupon-input{border-radius:24px !important; background:#fff; padding:12px 18px !important;}
#coupon-apply{border-radius:24px !important;}
#place-order-btn{border-radius:28px !important; padding:17px 10px !important;}
#checkout-root h3{letter-spacing:.14em; font-size:11.5px !important; color:var(--ink-soft);}
@media (max-width:700px){
  .narrow:has(#checkout-root){padding:18px 16px 130px;}
  .narrow:has(#checkout-root) .section-title{text-align:left !important; font-size:30px !important; margin-bottom:16px !important;}
  #place-order-btn{position:sticky; bottom:calc(92px + env(safe-area-inset-bottom)); z-index:30; box-shadow:0 10px 30px rgba(20,18,16,.25);}
}

/* Order confirmation */
.oc-hero{text-align:center; margin-bottom:14px;}
.oc-check{display:inline-grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--ink);}
.oc-check svg{width:28px; height:28px; stroke:#fff; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;}
.oc-lead{font-size:14px; color:var(--ink-soft); margin-top:12px; line-height:1.5;}
.oc-card{background:#fff; border:1px solid var(--line); border-radius:22px; padding:6px 18px;}
.oc-card > div{padding-top:8px; padding-bottom:8px;}
.oc-btn{display:flex !important; justify-content:center; border-radius:26px !important; margin-top:24px; padding:16px 10px !important;}
#order-root h3{letter-spacing:.14em; font-size:11.5px !important; color:var(--ink-soft);}

/* Account */
.acc-head{display:flex; gap:14px; align-items:center; margin:0 0 18px;}
.acc-av{width:60px; height:60px; border-radius:50%; background:var(--ink); color:#fff; display:grid; place-items:center; font:500 24px var(--serif);}
.acc-name{font:500 24px var(--serif);} .acc-mail{font-size:13px; color:var(--ink-soft);}
#account-root > div[style*="border:1px solid"]{border-radius:22px; background:#fff; box-shadow:none !important;}
#account-root .field input{border-radius:24px; padding:14px 18px; background:#fff; font-size:15px;}
#account-root .field input[disabled]{background:var(--paper-alt);}
#account-root .btn-primary,#account-root .btn-secondary{border-radius:24px !important;}
#account-root #account-logout-btn{width:100%; align-self:stretch !important; padding:14px !important;}
@media (max-width:700px){ .container:has(#account-root){padding:16px 16px 130px !important;} .container:has(#account-root) .section-title{text-align:left !important; font-size:28px !important;} }

/* Orders */
.o-chips{display:flex; gap:8px; margin:0 0 14px;}
.o-chips button{padding:9px 16px; border-radius:20px; background:#fff; border:1px solid var(--line); font-size:13px; cursor:pointer; color:var(--ink);}
.o-chips button.on{background:var(--ink); color:#fff; border-color:var(--ink);}
.o-chips button:focus-visible{outline:2px solid var(--ink); outline-offset:2px;}
.order-card{border-radius:22px !important; background:#fff; overflow:hidden; margin-bottom:12px; box-shadow:none !important;}
.order-status-pill{border-radius:12px !important; text-transform:capitalize;}
.container:has(#orders-root) .btn-secondary,.container:has(#orders-root) .btn-primary{border-radius:22px !important;}
@media (max-width:700px){ .container:has(#orders-root){padding:16px 16px 130px !important;} .container:has(#orders-root) .section-title{text-align:left !important; font-size:28px !important;} }

/* Wishlist tiles */
.wl-rm{display:none;}
@media (max-width:700px){
  #grid.product-grid{grid-template-columns:1fr 1fr !important; gap:14px 12px !important;}
  #grid .product-card .thumb{border-radius:20px !important; background:#ece8de !important; margin-bottom:8px !important;}
  #grid .product-card h3{font-size:12.5px; line-height:1.3; margin:0 2px 2px !important; letter-spacing:0;}
  #grid .price-row{margin:0 2px; gap:6px;}
  .wl-rm{display:grid; top:9px; right:9px; background:rgba(255,255,255,.85);}
  .wl-rm.on svg{fill:var(--ink);}
  .wl-text-rm{display:none;}
  .container:has(#grid){padding-bottom:130px !important;}
}

/* Contact */
.c-row{display:flex; align-items:center; gap:12px; padding:15px 16px; margin-bottom:8px; background:#fff; border:1px solid var(--line); border-radius:18px; font-size:14px; color:var(--ink);}
.c-row span{flex:1; min-width:0; overflow-wrap:anywhere;}
.c-row svg{width:18px; height:18px; stroke:var(--ink); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto;}
.c-row i{font-style:normal; color:var(--ink-soft);}
a.c-row:hover,a.c-row:focus-visible{border-color:var(--ink);}
#contact-info{line-height:1.4 !important;}
#contact-form .field input,#contact-form .field textarea{border-radius:24px; background:#fff; padding:14px 18px; font-size:15px;}
#contact-form .field textarea{border-radius:22px;}
#contact-form .btn-primary{border-radius:26px !important; padding:16px 10px !important;}
@media (max-width:700px){ .container:has(#contact-form){display:block !important; padding:16px 16px 130px !important;} .container:has(#contact-form) > div + div{margin-top:20px;} .container:has(#contact-form) .section-title{text-align:left !important; font-size:30px !important;} }

/* About */
.about-cta{border-radius:26px !important; display:flex !important; justify-content:center; margin-top:28px !important;}
.about-wrap .prose h2{font-size:22px !important; margin-top:26px;}
.about-wrap .prose h2 + p{background:#fff; border:1px solid var(--line); border-radius:20px; padding:16px 18px; margin-top:8px;}
@media (max-width:700px){ .about-wrap{padding-bottom:130px !important;} }

.container:has(#contact-form) nav{margin:0 0 12px !important; padding:0 !important;}

/* Reserve space for blocks that are filled in by script, so the page does not jump while loading. */
#header-mount:empty{min-height:68px}
.has-ann #header-mount:empty{min-height:104px}
#m-chips:empty{min-height:50px}
#sec-trust_row:empty,#sec-categories:empty{display:block; box-sizing:border-box; background:var(--paper-alt); border-radius:14px; width:calc(100% - 24px) !important; margin-inline:12px;}
#sec-trust_row:empty{min-height:121px}
#sec-categories:empty{min-height:382px}
@media (min-width:900px){
  #header-mount:empty{min-height:72px}
  .has-ann #header-mount:empty{min-height:108px}
  #sec-categories:empty{min-height:219px}
}
