/* 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;} }
