/* PrintShip: storefront styles (aspirational theme) */
@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(../fonts/inter-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Montserrat;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Montserrat;font-weight:600;font-display:swap;src:url(../fonts/montserrat-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:Montserrat;font-weight:700;font-display:swap;src:url(../fonts/montserrat-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Montserrat;font-weight:800;font-display:swap;src:url(../fonts/montserrat-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:Montserrat;font-weight:800;font-style:italic;font-display:swap;src:url(../fonts/montserrat-latin-800-italic.woff2) format('woff2')}
/* design fonts used inside customer designs */
@font-face{font-family:Fraunces;font-weight:400;font-display:swap;src:url(../fonts/fraunces-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Fraunces;font-weight:600;font-display:swap;src:url(../fonts/fraunces-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:Fraunces;font-weight:700;font-display:swap;src:url(../fonts/fraunces-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Dancing Script';font-weight:700;font-display:swap;src:url(../fonts/dancing-script-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Pacifico;font-weight:400;font-display:swap;src:url(../fonts/pacifico-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Bebas Neue';font-weight:400;font-display:swap;src:url(../fonts/bebas-neue-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Caveat;font-weight:700;font-display:swap;src:url(../fonts/caveat-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-weight:400;font-display:swap;src:url(../fonts/playfair-display-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-weight:700;font-display:swap;src:url(../fonts/playfair-display-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Tiro Devanagari Hindi';font-weight:400;font-display:swap;src:url(../fonts/tiro-devanagari-hindi-devanagari-400-normal.woff2) format('woff2');unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:'Tiro Devanagari Hindi';font-weight:400;font-display:swap;src:url(../fonts/tiro-devanagari-hindi-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF}

:root{
  --ink:#111114;--ink-2:#3c3c44;--muted:#73737d;--paper:#faf9f6;--paper-2:#f1eee9;--stone:#e8e4de;--line:#e3ded6;--card:#fff;
  --night:#0d0e12;--night-2:#17181e;--night-line:#2a2b33;--on-night:#f4f2ee;--on-night-2:#a9a8b2;
  --cyan:#25c4ee;--green:#46bb3c;--orange:#ff7a14;--sun:#ffc21c;
  --grad:linear-gradient(90deg,var(--cyan),var(--green) 45%,var(--orange) 80%,var(--sun));
  --ok:#1f7a4d;--warn:#b4501b;
  --r:10px;--r-sm:6px;--shadow:0 1px 2px rgba(17,17,20,.04),0 18px 40px -18px rgba(17,17,20,.18);
  --display:Montserrat,Inter,system-ui,sans-serif;--sans:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --wrap:1240px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
[hidden]{display:none!important}
h1,h2,h3,.h1,.h2,.h3{font-family:var(--display);font-weight:600;line-height:1.08;margin:0 0 .5em;letter-spacing:-.025em;text-wrap:balance}
h1,.h1{font-size:clamp(2.2rem,4.4vw,3.6rem)}
h2,.h2{font-size:clamp(1.7rem,3vw,2.5rem)}
h3,.h3{font-size:1.3rem;letter-spacing:-.015em}
.h4{font:600 1rem var(--sans);letter-spacing:0;margin:0 0 .5em}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.fine{font-size:.85rem;color:var(--muted)}
.center{text-align:center}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;padding:8px 12px;border-radius:8px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.eyebrow{display:inline-block;font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hairline{height:2px;background:var(--grad);opacity:.9}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:1em 1.9em;font:600 .86rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;min-height:48px}
.btn:hover{background:#000;box-shadow:0 10px 24px -10px rgba(0,0,0,.45)}
.btn:disabled{opacity:.6;cursor:wait}
.btn-coral{background:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}.btn-light:hover{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.15)}
.btn-ghost-light{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}.btn-ghost-light:hover{background:#fff;color:var(--ink)}
.btn-sm{padding:.7em 1.15em;font-size:.74rem;min-height:38px}
.btn-block{width:100%}
.link{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer}
.link.danger{color:var(--warn)}
.arrow{font:600 .8rem var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding-bottom:4px;background:var(--grad) no-repeat 0 100%/100% 1px}
.arrow:hover{background-size:100% 2px}

/* announcement + header */
.announce{background:var(--night);color:var(--on-night-2);text-align:center;font-size:.78rem;letter-spacing:.04em;padding:.7em 1em}
.announce b{color:var(--on-night);font-weight:600}
.hdr{position:sticky;top:0;z-index:30;background:rgba(250,249,246,.92);backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:28px;height:76px}
.logo{display:flex;align-items:center;text-decoration:none;flex:none}
.logo img{height:34px;width:auto}
.logo small{font:500 .7rem/1 var(--sans);color:var(--on-night-2);letter-spacing:.14em;text-transform:uppercase;margin-left:14px;padding-left:14px;border-left:1px solid var(--night-line)}
.nav{display:flex;gap:2px;margin-left:8px}
.nav a{text-decoration:none;font:500 .86rem var(--sans);letter-spacing:.02em;padding:.6em .85em;position:relative;color:var(--ink-2)}
.nav a:hover{color:var(--ink)}
.nav a[aria-current]{color:var(--ink)}
.nav a[aria-current]::after,.nav a:hover::after{content:'';position:absolute;left:.85em;right:.85em;bottom:2px;height:2px;background:var(--grad);border-radius:2px}
.hdr-tools{margin-left:auto;display:flex;align-items:center;gap:4px}
.search{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 4px 0 16px;height:42px;min-width:250px}
.search input{border:0;outline:0;background:transparent;font:inherit;font-size:.86rem;flex:1;min-width:0}
.search button{border:0;background:transparent;cursor:pointer;width:36px;height:36px;border-radius:50%;display:grid;place-items:center}
.search button svg{width:18px;height:18px}
.icon-btn{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;text-decoration:none;background:transparent;border:0;cursor:pointer;color:var(--ink)}
.icon-btn:hover{background:var(--paper-2)}
.icon-btn svg{width:21px;height:21px}
.badge{position:absolute;top:5px;right:3px;background:var(--ink);color:#fff;font:700 .66rem/1 var(--sans);min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px var(--paper)}
#burger{display:none}

/* hero */
.hero{position:relative;background:var(--night);color:var(--on-night);overflow:hidden;padding:84px 0 92px}
.hero::before{content:'';position:absolute;inset:-20% -10% auto auto;width:70%;height:120%;background:radial-gradient(closest-side,rgba(37,196,238,.22),transparent 70%);pointer-events:none}
.hero::after{content:'';position:absolute;inset:auto auto -40% 35%;width:60%;height:90%;background:radial-gradient(closest-side,rgba(255,122,20,.16),transparent 70%);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center}
.hero .eyebrow{color:var(--on-night-2)}
.hero h1{font-size:clamp(3rem,7vw,6.2rem);font-weight:700;line-height:.94;letter-spacing:-.045em;margin-bottom:.3em}
.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .sub{font:500 clamp(1.1rem,1.8vw,1.35rem)/1.4 var(--display);color:var(--on-night);margin:0 0 .8em;letter-spacing:-.01em}
.hero p.lead{max-width:32em;color:var(--on-night-2)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:30px}
.hero-art{position:relative;height:540px}
.hero-art .hp{position:absolute;filter:drop-shadow(0 40px 50px rgba(0,0,0,.55))}
.hero-art .hp img{width:100%}
.hp1{width:31%;left:2%;top:16%;z-index:3}
.hp2{width:58%;right:2%;top:0;z-index:1}
.hp3{width:44%;left:14%;bottom:0;z-index:2}
.hp4{width:27%;right:8%;bottom:4%;z-index:4}
.hero-blob{display:none}
.trust-strip{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px;font-size:.8rem;letter-spacing:.03em;color:var(--on-night-2)}
.trust-strip span::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--grad);margin-right:.6em;vertical-align:middle}

/* sections */
.sec{padding:92px 0}
.sec-alt{background:var(--paper-2)}
.sec-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:36px}
.sec-head h2{margin:0}
.sec-head p{margin:0;color:var(--ink-2);max-width:40em}
/* recipients */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 20px}
.tile{display:flex;flex-direction:column;gap:14px;text-decoration:none}
.tile .tile-img{display:block;aspect-ratio:4/5;background:var(--stone);border-radius:var(--r);overflow:hidden;position:relative}
.tile .tile-img::after{content:'';position:absolute;inset:0;background:radial-gradient(90% 70% at 50% 30%,rgba(255,255,255,.55),transparent 70%);pointer-events:none}
.tile img{position:absolute;inset:0;margin:auto;width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 22px 26px rgba(17,17,20,.22));transition:transform .5s cubic-bezier(.2,.7,.2,1);z-index:1}
.tile:hover img{transform:scale(1.04) translateY(-4px)}
.tile b{font:600 1.08rem var(--display);letter-spacing:-.01em;display:flex;justify-content:space-between;align-items:center}
.tile b::after{content:'→';font-family:var(--sans);font-weight:400;opacity:.5;transition:transform .2s,opacity .2s}
.tile:hover b::after{transform:translateX(4px);opacity:1}
.tile span{display:none}
.tile.dark .tile-img{background:#24252b}
.tile.mist .tile-img{background:#e2e4e7}
.tile.sand .tile-img{background:#ece6dc}
.occasions{display:flex;flex-wrap:wrap;gap:6px 0;align-items:center;margin-top:44px;padding-top:26px;border-top:1px solid var(--line);font-size:.92rem}
.occasions .lbl{font:600 .72rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-right:20px}
.occasions a{text-decoration:none;color:var(--ink-2);padding:.2em 0}
.occasions a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.occasions a+a::before{content:'·';margin:0 14px;color:var(--line);text-decoration:none;display:inline-block}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{display:inline-flex;align-items:center;gap:.4em;padding:.6em 1.15em;border-radius:999px;background:transparent;border:1px solid var(--line);text-decoration:none;font:500 .86rem var(--sans);color:var(--ink-2);transition:border-color .15s,color .15s,background .15s}
.pill:hover{border-color:var(--ink);color:var(--ink);background:#fff}
/* feature bands */
.band{border-radius:20px;padding:64px;display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;overflow:hidden;position:relative}
.band-ink{background:var(--night);color:var(--on-night)}
.band-ink::before{content:'';position:absolute;right:-10%;top:-30%;width:60%;height:150%;background:radial-gradient(closest-side,rgba(70,187,60,.16),transparent 70%)}
.band-ink .fine,.band-ink p{color:var(--on-night-2)}
.band-ink .eyebrow{color:var(--on-night-2)}
.band-ink .pill{border-color:var(--night-line);color:var(--on-night)}
.band-ink .pill:hover{background:#fff;color:var(--ink);border-color:#fff}
.band-sage{background:var(--stone)}
.band-art{display:flex;gap:22px;justify-content:center;align-items:flex-end;position:relative;z-index:1}
.band-art img{width:28%;filter:drop-shadow(0 28px 34px rgba(0,0,0,.45))}
.band-art img:nth-child(2){transform:translateY(-26px)}
.band-sage .band-art img{filter:drop-shadow(0 24px 28px rgba(17,17,20,.22))}
.band>div{position:relative;z-index:1}
.steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;margin:36px 0 40px;padding:0;border-top:1px solid var(--line)}
.steps4 li{list-style:none;counter-increment:s;padding:28px 28px 0 0;color:var(--ink-2);font-size:.94rem}
.steps4 li::before{content:'0' counter(s);display:block;font:600 .8rem var(--display);letter-spacing:.1em;margin-bottom:18px;color:var(--muted)}
.steps4 b{display:block;font:600 1.15rem var(--display);color:var(--ink);letter-spacing:-.01em;margin-bottom:6px}
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.why div{padding:30px 32px 30px 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:.94rem}
.why b{display:block;font:600 1.08rem var(--display);color:var(--ink);margin-bottom:6px;letter-spacing:-.01em}
.final{text-align:center;padding:110px 0;background:var(--paper-2)}
.final h2{font-size:clamp(2rem,4vw,3.2rem)}
.final p{color:var(--ink-2)}

/* product cards */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 22px}
.pcard{display:flex;flex-direction:column;text-decoration:none;background:none}
.pcard-img{background:var(--stone);aspect-ratio:1/1;display:block;overflow:hidden;border-radius:var(--r)}
.pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.pcard:hover .pcard-img img{transform:scale(1.035)}
.pcard-body{padding:16px 2px 0;display:flex;flex-direction:column;gap:3px;flex:1}
.pcard-name{font:600 .98rem/1.35 var(--display);letter-spacing:-.01em}
.pcard-feat{font-size:.8rem;color:var(--muted)}
.pcard-price{font-weight:500;color:var(--ink-2);margin-top:2px}
.pcard-cta{margin-top:10px;font:600 .7rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);opacity:.0;transform:translateY(-4px);transition:opacity .2s,transform .2s}
.pcard:hover .pcard-cta,.pcard:focus .pcard-cta{opacity:1;transform:none}

/* collection page */
.crumbs{font-size:.78rem;color:var(--muted);padding:26px 0 0;letter-spacing:.02em}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.col-head{padding:30px 0 10px;max-width:820px}
.col-head p{font-size:1.06rem;color:var(--ink-2)}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 40px}
.col-copy{max-width:820px;margin:72px 0 0;color:var(--ink-2)}
.faq details{border-top:1px solid var(--line);padding:18px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font:600 1rem var(--display);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-weight:400;font-size:1.3rem;line-height:1;color:var(--muted)}
.faq details[open] summary::after{content:'–'}
.faq p{margin:.7em 0 0;color:var(--ink-2)}

/* product page */
.pdp{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;padding:20px 0 72px;align-items:start}
.pdp-stage{position:sticky;top:96px}
.stage-box{background:radial-gradient(110% 80% at 50% 15%,#fff 0,var(--stone) 75%);border-radius:16px;padding:44px 20px;display:grid;place-items:center;min-height:600px;position:relative}
.stage-tools{display:flex;gap:16px;justify-content:center;margin-top:16px;flex-wrap:wrap;align-items:center}
.seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px}
.seg button{border:0;background:transparent;border-radius:999px;padding:.5em 1.1em;font:500 .8rem var(--sans);cursor:pointer;letter-spacing:.02em}
.seg button.on{background:var(--ink);color:#fff}
.toggle{font-size:.82rem;display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.toggle input{accent-color:var(--ink)}
.pdp-panel h1{font-size:clamp(1.9rem,3vw,2.6rem);margin-top:10px}
.price-row{display:flex;align-items:baseline;gap:12px;margin:2px 0 14px}
.price{font:600 1.5rem/1 var(--display);letter-spacing:-.01em}
.price-row .fine{margin:0}
.blurb{color:var(--ink-2);font-size:1.02rem}
.step{border-top:1px solid var(--line);padding:24px 0}
.step-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.step-head h3{font:600 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;margin:0}
.step-num{font:600 .78rem var(--display);color:var(--muted);letter-spacing:.06em}
.step-num::before{content:'0'}
.step-hint{font-size:.76rem;color:var(--muted);margin-left:auto}
.chips,.model-list{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.55em 1.1em;font:500 .86rem var(--sans);cursor:pointer;min-height:42px;transition:border-color .15s}
.chip:hover{border-color:var(--ink)}
.chip.on{border-color:var(--ink);background:var(--ink);color:#fff}
.chip.off{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.chip small{font-size:.72rem;opacity:.75;margin-left:3px}
.layouts{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.layout{border:1px solid var(--line);background:#fff;border-radius:var(--r);padding:10px 8px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;transition:border-color .15s,box-shadow .15s}
.layout:hover{border-color:var(--ink-2)}
.layout.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.lt-img{display:block;width:100%;background:var(--paper-2);border-radius:6px;overflow:hidden}
.lt-case{aspect-ratio:1/2;width:52%;border-radius:9px}
.lt-mug{aspect-ratio:2.4/1}
.lt-frame{aspect-ratio:4/5;width:80%}
.lt-cushion{aspect-ratio:1/1;width:80%}
.lt-tee{aspect-ratio:400/480;width:80%;background:#d9d6d0}
.lt-img img{width:100%;height:100%;object-fit:cover}
.lt-label{font:500 .74rem var(--sans);text-align:center;color:var(--ink-2)}
.photos{display:grid;gap:10px}
.photo-tile{border:1px dashed #cdc6bb;border-radius:var(--r);background:#fff;padding:12px;transition:border-color .15s,background .15s}
.photo-tile.has{border-style:solid;border-color:var(--line)}
.photo-tile.drag{border-color:var(--ink);background:var(--paper-2)}
.photo-drop{display:flex;gap:14px;align-items:center;cursor:pointer}
.photo-drop img,.up-ico{width:56px;height:56px;border-radius:6px;object-fit:cover;flex:none}
.up-ico{display:grid;place-items:center;background:var(--paper-2);font-size:1.3rem;color:var(--ink-2)}
.photo-meta{display:flex;flex-direction:column;font-size:.86rem;min-width:0}
.photo-meta span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.q{font-size:.76rem;font-weight:600}
.q-great{color:var(--ok)}.q-ok{color:#8a6d00}.q-low{color:var(--warn)}
.photo-ctrl{display:flex;align-items:center;gap:14px;margin-top:10px;font-size:.84rem;flex-wrap:wrap}
.photo-ctrl label{display:flex;align-items:center;gap:8px;flex:1;min-width:160px}
.photo-ctrl input[type=range]{flex:1;accent-color:var(--ink)}
.field{margin-bottom:14px}
.field label{display:block;font-weight:500;font-size:.84rem;margin-bottom:6px;color:var(--ink-2)}
.field label small{font-weight:400;color:var(--muted)}
.input-wrap{position:relative}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:.95rem;padding:.8em .95em;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;min-height:48px;color:var(--ink)}
.field input:focus,.field select:focus{border-color:var(--ink);outline:0;box-shadow:0 0 0 3px rgba(17,17,20,.06)}
.field.bad input,.field.bad select{border-color:var(--warn);background:#fff8f4}
.count{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.72rem;color:var(--muted)}
.swatches{display:flex;flex-wrap:wrap;gap:12px}
.swatch{border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.72rem;color:var(--ink-2)}
.swatch span{width:40px;height:40px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);position:relative;display:block}
.swatch i{position:absolute;width:13px;height:13px;border-radius:50%;right:-1px;bottom:-1px;box-shadow:0 0 0 2px #fff}
.swatch.on span{box-shadow:0 0 0 2px #fff,0 0 0 3px var(--ink)}
.buybox{border-top:1px solid var(--line);padding-top:22px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:#fff;height:52px}
.qty button{width:42px;height:50px;border:0;background:none;font-size:1.1rem;cursor:pointer}
.qty input{width:34px;text-align:center;border:0;font:600 .95rem var(--sans);background:transparent}
#add-btn{flex:1;min-height:54px}
.err{background:#fff3ec;color:var(--warn);border-radius:var(--r-sm);padding:.75em 1em;font-size:.88rem;font-weight:500;margin-top:10px;width:100%}
.assure{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;font-size:.84rem;color:var(--ink-2);margin-top:20px;padding:0;list-style:none}
.assure li::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--grad);margin-right:.7em;vertical-align:middle}
.details{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:56px 0;border-top:1px solid var(--line)}
.details ul{padding-left:1.1em;color:var(--ink-2)}
.added{position:fixed;right:24px;top:92px;z-index:60;background:#fff;border-radius:14px;box-shadow:0 30px 70px -20px rgba(17,17,20,.35),0 0 0 1px var(--line);padding:22px;width:min(380px,calc(100vw - 32px))}
.added-row{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.added-text{display:flex;flex-direction:column;font-size:.88rem}
.added-text span{color:var(--muted)}
.added-actions{display:flex;gap:8px}
.added-actions .btn{flex:1}
.added .x{position:absolute;right:8px;top:6px;border:0;background:none;font-size:1.3rem;cursor:pointer;width:36px;height:36px;color:var(--muted)}
.added h3{font:600 .74rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ok);margin:0 0 14px}

/* ---- mockups ---- */
.mock{position:relative}
.mock canvas{display:block}
.mock-case{width:min(292px,70vw);aspect-ratio:1/2;border-radius:15%/7.5%;overflow:hidden;box-shadow:0 0 0 6px #1d1d22,0 0 0 7px #3a3a42,0 40px 70px -20px rgba(17,17,20,.5);background:#fff}
.mock-case .canvas-container,.mock-case canvas{width:100%!important;height:100%!important}
.cam-wrap{position:absolute;inset:0;z-index:3;pointer-events:none}
.cam-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}
.cam-svg .keepout{display:none}
.show-safe .cam-svg .keepout{display:inline}
.shine{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.2) 0,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 70%,rgba(255,255,255,.07) 100%);pointer-events:none;z-index:2}
.safe{position:absolute;inset:4%;border:2px dashed rgba(37,196,238,.9);border-radius:12%/6%;pointer-events:none;z-index:4;display:none}
.show-safe .safe{display:block}
.mock-mug{width:min(560px,86vw)}
.mock-mug .flat{border-radius:6px;overflow:hidden;box-shadow:0 24px 50px -20px rgba(17,17,20,.3);background:#fff}
.mock-mug .flat .canvas-container,.mock-mug .flat canvas{width:100%!important;height:auto!important;aspect-ratio:840/350}
.mugview{display:none;position:relative;width:min(560px,86vw);margin:0 auto;gap:4%;justify-content:center}
.mug{position:relative;width:46%;aspect-ratio:1/1.02}
.mug-body{position:absolute;left:0;top:4%;width:80%;height:92%;border-radius:4% 4% 14% 14%/3% 3% 9% 9%;overflow:hidden;background:#fff;box-shadow:0 30px 44px -16px rgba(17,17,20,.35)}
.mug.r .mug-body{left:auto;right:0}
.mug-body img{position:absolute;top:9%;height:82%;width:auto;max-width:none;left:-6%}
.mug.r .mug-body img{left:auto;right:-6%}
.mug-body::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.16),rgba(255,255,255,.2) 22%,rgba(255,255,255,0) 40%,rgba(0,0,0,.04) 70%,rgba(0,0,0,.2));pointer-events:none}
.mug-handle{position:absolute;right:2%;top:24%;width:28%;height:48%;border:14px solid #f3f1ed;border-left:0;border-radius:0 50% 50% 0/0 50% 50% 0;box-shadow:6px 10px 18px rgba(0,0,0,.1)}
.mug.r .mug-handle{right:auto;left:2%;border:14px solid #f3f1ed;border-right:0;border-radius:50% 0 0 50%/50% 0 0 50%;box-shadow:-6px 10px 18px rgba(0,0,0,.1)}
.mock-mug[data-view=mug] .flat{display:none}
.mock-mug[data-view=mug] .mugview{display:flex}
.mock-frame{width:min(370px,74vw);padding:16px;background:linear-gradient(145deg,#26262a,#0f0f12);border-radius:3px;box-shadow:0 40px 70px -24px rgba(17,17,20,.55),inset 0 0 0 1px rgba(255,255,255,.06)}
.mock-frame .mat{background:#fbfaf7;padding:8%;box-shadow:inset 0 2px 8px rgba(0,0,0,.16)}
.mock-frame .canvas-container,.mock-frame canvas{width:100%!important;height:auto!important;aspect-ratio:4/5}
.mock-cushion{width:min(390px,76vw);border-radius:9%;overflow:hidden;box-shadow:0 36px 60px -24px rgba(17,17,20,.4)}
.mock-cushion::after{content:'';position:absolute;inset:0;border-radius:9%;box-shadow:inset 0 0 44px rgba(0,0,0,.16);pointer-events:none}
.mock-cushion .canvas-container,.mock-cushion canvas{width:100%!important;height:auto!important;aspect-ratio:1/1}
.mock-tee{width:min(450px,82vw);aspect-ratio:1/1.08;--garment:#fff}
.mock-tee svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 26px 34px rgba(17,17,20,.22))}
.mock-tee svg path{fill:var(--garment)}
.mock-tee .print{position:absolute;left:31%;top:24%;width:38%}
.mock-tee .canvas-container,.mock-tee canvas{width:100%!important;height:auto!important;aspect-ratio:400/480}
.model-label{font-size:.82rem;color:var(--ink-2);font-weight:500}

/* phone picker */
.phonepick .pp-search{position:relative;margin-bottom:14px}
.phonepick input[type=search],.phone-search input{width:100%;font:inherit;font-size:.95rem;padding:.85em 1.2em;border:1px solid var(--line);border-radius:999px;background:#fff;min-height:50px}
.phonepick input[type=search]:focus,.phone-search input:focus{border-color:var(--ink);outline:0}
.pp-results{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:20;padding:6px;max-height:340px;overflow:auto}
.pp-results button,.pp-results a{display:block;width:100%;text-align:left;border:0;background:none;padding:.65em .85em;border-radius:6px;font:inherit;cursor:pointer;text-decoration:none}
.pp-results button:hover,.pp-results button:focus,.pp-results a:hover{background:var(--paper-2)}
.pp-results button[disabled]{opacity:.5;cursor:not-allowed}
.pp-none{display:block;padding:.65em .85em;color:var(--muted);font-size:.9rem}
.pp-selects .field{margin-bottom:10px}
.pp-label{display:block;font-weight:500;font-size:.84rem;margin:6px 0 8px;color:var(--ink-2)}
.ct-note{margin:10px 0 0}
.ctag{font-weight:600;color:var(--ink)}

/* phone pages */
.brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.brand-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;text-decoration:none;display:flex;flex-direction:column;gap:4px;transition:border-color .15s,box-shadow .2s}
.brand-card:hover{border-color:var(--ink);box-shadow:var(--shadow)}
.brand-card b{font:600 1.15rem var(--display);letter-spacing:-.01em}
.brand-card span{font-size:.8rem;color:var(--muted)}
.series{margin:24px 0}
.series h3{font:600 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.model-links{display:flex;flex-wrap:wrap;gap:8px}
.model-links a,.model-links span{display:inline-flex;padding:.5em 1em;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;font-size:.86rem}
.model-links a:hover{border-color:var(--ink)}
.model-links span{color:var(--muted);text-decoration:line-through;background:transparent}
.fit-box{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:14px 0 44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fit-box div{padding:22px 24px 22px 0;color:var(--ink-2);font-size:.92rem}
.fit-box div+div{padding-left:24px;border-left:1px solid var(--line)}
.fit-box b{display:block;font:600 1rem var(--display);color:var(--ink);margin-bottom:4px}
.ct-table{width:100%;border-collapse:collapse;margin:8px 0 32px}
.ct-table th,.ct-table td{padding:14px 12px 14px 0;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem}
.ct-table th{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.phone-search{max-width:600px;position:relative;margin:10px 0 36px}

/* minis for cart */
.mini{display:block;flex:none;background:var(--paper-2);overflow:hidden}
.mini img{width:100%;height:100%;object-fit:cover}
.mini-case{width:46px;height:92px;border-radius:9px;box-shadow:0 0 0 3px #1d1d22}
.mini-mug{width:96px;height:40px;border-radius:4px}
.mini-frame{width:64px;height:80px;border:5px solid #1a1a1d}
.mini-cushion{width:72px;height:72px;border-radius:12px}
.mini-tee{width:64px;height:76px;background:#ddd9d2}

/* cart & checkout */
.page-title{padding:44px 0 14px}
.cart-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start;padding-bottom:72px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px}
.cart-side{position:sticky;top:96px}
.line{display:grid;grid-template-columns:auto 1fr auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.cart-lines .line{padding:22px 0}
.cart-lines .line:first-child{border-top:1px solid var(--line)}
.line-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.line-name{font:600 .98rem var(--display);text-decoration:none;letter-spacing:-.01em}
.line-meta,.line-words{font-size:.82rem;color:var(--muted)}
.line-words{font-style:italic}
.line-actions{display:flex;gap:18px;font-size:.82rem;margin-top:8px}
.line-qty{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px}
.line-qty button{width:34px;height:34px;border:0;background:none;cursor:pointer;font-size:1rem}
.line-qty.static{border:0;color:var(--muted)}
.line-price{font-weight:600;min-width:70px;text-align:right}
.sum{margin:14px 0}
.sum div{display:flex;justify-content:space-between;padding:7px 0;font-size:.94rem}
.sum dt{color:var(--ink-2)}.sum dd{margin:0;font-weight:500}
.sum .tot{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;font-size:1.08rem}
.sum .tot dt{color:var(--ink);font-weight:600}
.sum .tot dd{font-weight:700}
.sum.split{background:var(--paper-2);border-radius:var(--r-sm);padding:6px 14px}
.free{color:var(--ok)}
.nudge{background:var(--paper-2);border-radius:var(--r-sm);padding:.7em 1em;font-size:.85rem;font-weight:500;margin:0}
.nudge.ok{color:var(--ok)}
.empty{text-align:center;padding:96px 0}
.empty.slim{padding:44px 0}
.co-sec{margin-bottom:24px}
.co-sec h2{font:600 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 14px}
.payopt{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:10px;cursor:pointer;background:#fff;transition:border-color .15s}
.payopt:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.payopt.disabled{opacity:.55;cursor:not-allowed}
.payopt input{margin-top:4px;accent-color:var(--ink);width:18px;height:18px}
.payopt b{display:block;font-weight:600}
.payopt p b{display:inline}
.payopt .amt{margin-left:auto;font-weight:600;white-space:nowrap}
.payopt p{margin:3px 0 0;font-size:.84rem;color:var(--muted)}
.cod-terms{background:#fbf7ef;border:1px solid #ecdfc6;border-radius:var(--r);padding:16px 18px;font-size:.86rem;margin:4px 0 14px}
.cod-terms ul{margin:.4em 0 .7em;padding-left:1.1em}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;padding:8px;border-radius:var(--r-sm)}
.agree input{margin-top:3px;width:18px;height:18px;accent-color:var(--ink);flex:none}
.agree.bad{background:#fff3ec}
.errbox{background:#fff3ec;color:var(--warn);border-radius:var(--r-sm);padding:.85em 1.1em;margin-bottom:16px}
.modal{position:fixed;inset:0;background:rgba(13,14,18,.6);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:80;padding:16px}
.modal[hidden]{display:none}
.gw{background:#fff;border-radius:16px;width:min(390px,100%);overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.45)}
.gw-top{background:#0b1f4d;color:#fff;padding:18px 20px;display:flex;justify-content:space-between;align-items:center}
.gw-top b{font-size:1rem}
.gw-body{padding:22px}
.gw-amt{font:700 1.8rem var(--display);margin:4px 0 14px}
.gw-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.gw-methods span{border:1px solid var(--line);border-radius:8px;padding:10px;font-size:.84rem;text-align:center}
.gw-x{border:0;background:none;color:#fff;font-size:1.4rem;cursor:pointer}
.ok-hero{text-align:center;padding:56px 0 36px}
.tick{width:60px;height:60px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:1.6rem;margin:0 auto 18px;box-shadow:0 0 0 6px rgba(17,17,20,.06)}
.next{padding-left:1.2em;color:var(--ink-2)}
.next li{margin-bottom:10px}
.order{margin-bottom:20px}
.order-head{display:flex;justify-content:space-between;align-items:start;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px}
.order-head h2{margin:0}
.shipment{padding-top:14px}
.shipment .line{border-bottom:0;padding:10px 0}
.tl{display:flex;list-style:none;padding:0;margin:16px 0;gap:0;font-size:.78rem;color:var(--muted)}
.tl li{flex:1;position:relative;padding-top:22px;text-align:center}
.tl li span{position:absolute;top:0;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#d9d3c9;z-index:1}
.tl li::before{content:'';position:absolute;top:5px;left:-50%;right:50%;height:2px;background:#d9d3c9}
.tl li:first-child::before{display:none}
.tl li.done span,.tl li.cur span{background:var(--ink)}
.tl li.done::before,.tl li.cur::before{background:var(--ink)}
.tl li.cur{color:var(--ink);font-weight:600}
.tl li.cur span{box-shadow:0 0 0 4px rgba(17,17,20,.12)}
.rto{background:#fff3ec;color:var(--warn);border-radius:var(--r-sm);padding:.8em 1em;font-size:.9rem}
.warn{color:var(--warn)}
.demo-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding:10px 12px;border:1px dashed #d4ccbf;border-radius:var(--r-sm);font-size:.78rem;color:var(--muted)}

/* partner portal */
.portal{background:#f3f2ef}
.portal .hdr{background:var(--night);border:0}
.portal .hdr-in{height:72px}
.portal .logo img{height:30px}
.ptabs{display:flex;gap:6px;flex-wrap:wrap;margin:24px 0 14px}
.ptab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.55em 1.1em;font:600 .84rem var(--sans);cursor:pointer}
.ptab span{background:var(--paper-2);border-radius:999px;padding:0 .55em;margin-left:4px}
.ptab.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ptab.on span{background:#33333b}
.bulkbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:.86rem}
.job{display:grid;grid-template-columns:32px 1fr auto;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:12px;align-items:start}
.job-check input{width:20px;height:20px;accent-color:var(--ink);margin-top:2px}
.job-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:12px}
.job-items{display:flex;flex-wrap:wrap;gap:22px}
.job-item{display:flex;gap:12px;align-items:center}
.job-item div{display:flex;flex-direction:column;font-size:.84rem}
.job-item div span{color:var(--muted)}
.job-item .link{font-size:.8rem;text-align:left}
.ship-to{font-size:.84rem;color:var(--ink-2);margin:14px 0 0}
.job-act{display:flex;flex-direction:column;gap:8px;align-items:flex-end;min-width:180px}
.tag{font-size:.72rem;font-weight:600;background:var(--paper-2);border-radius:5px;padding:.25em .6em}
.tag.ok{background:#e3f1e8;color:var(--ok)}.tag.warn{background:#fde8dd;color:var(--warn)}
.issue-pill{font-size:.78rem;font-weight:600;color:var(--warn);background:#fff3ec;border-radius:6px;padding:.3em .7em}
.flag summary{font-size:.8rem;cursor:pointer;color:var(--muted)}
.flag .link{display:block;font-size:.8rem;margin:6px 0;text-align:right;width:100%}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.85em 1.3em;border-radius:10px;z-index:90;font-size:.88rem}
.demo-note{background:#fbf7ef;border:1px solid #ecdfc6;border-radius:var(--r);padding:12px 16px;font-size:.86rem;margin-top:20px}

/* text pages */
.prose{max-width:780px;padding:36px 0 80px}
.prose h2{font-size:1.4rem;margin-top:1.8em}
.prose li{margin-bottom:.45em}
.prose table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.92rem}
.prose td,.prose th{border-bottom:1px solid var(--line);padding:10px 10px 10px 0;text-align:left}

/* footer */
.ftr{background:var(--night);color:var(--on-night-2);padding:76px 0 30px;position:relative}
.ftr::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--grad);opacity:.85}
.ftr a{color:var(--on-night-2);text-decoration:none}
.ftr a:hover{color:#fff}
.ftr-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:32px}
.ftr h4{font:600 .7rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#fff;margin:0 0 16px}
.ftr ul{list-style:none;padding:0;margin:0}
.ftr li{margin-bottom:10px;font-size:.88rem}
.ftr .logo img{height:32px}
.ftr p{font-size:.92rem}
.ftr-bottom{border-top:1px solid var(--night-line);margin-top:48px;padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.78rem;color:#7d7c87}
.corp{border:1px solid var(--night-line);border-radius:var(--r);padding:16px 18px;margin-top:20px;font-size:.86rem}
.corp b{color:#fff;font-weight:600}
.corp a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* responsive */
@media (max-width:1060px){
  .nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);flex-direction:column;padding:12px 28px 24px;border-bottom:1px solid var(--line);margin:0}
  .nav.open{display:flex}
  .nav a{padding:.9em 0;border-bottom:1px solid var(--line)}
  .nav a::after{display:none}
  #burger{display:grid}
  .search{min-width:0;width:44px;padding:0;border:0;background:transparent;justify-content:center}
  .search input{display:none}
  .grid{grid-template-columns:repeat(3,1fr)}
  .ftr-grid{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:860px){
  .hero-grid,.pdp,.band,.cart-grid,.details{grid-template-columns:1fr}
  .hero{padding:48px 0 64px}
  .hero-art{height:380px;order:-1}
  .pdp-stage{position:static}
  .stage-box{min-height:0;padding:32px 16px}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .grid{grid-template-columns:repeat(2,1fr);gap:28px 14px}
  .steps4,.why{grid-template-columns:1fr 1fr}
  .band{padding:36px 28px}
  .cart-side{position:static}
  .fit-box{grid-template-columns:1fr}
  .fit-box div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .job{grid-template-columns:28px 1fr}
  .job-act{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap}
  .pcard-cta{opacity:1;transform:none}
}
@media (max-width:560px){
  .wrap{padding:0 16px}
  .hdr-in{gap:8px;height:64px}
  .logo img{height:26px}
  .nav{top:64px}
  .sec{padding:60px 0}
  .tiles{gap:20px 12px}
  .steps4,.why{grid-template-columns:1fr}
  .two,.three{grid-template-columns:1fr}
  .line{grid-template-columns:auto 1fr;gap:10px 14px}
  .line-qty,.line-price{grid-column:2}
  .line-price{text-align:left}
  .ftr-grid{grid-template-columns:1fr 1fr}
  .assure{grid-template-columns:1fr}
  .sec-head{flex-direction:column;align-items:flex-start}
  .tl{font-size:.68rem}
  .occasions .lbl{width:100%;margin-bottom:6px}
  .announce{font-size:.72rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* mobile header fit + no sideways drift */
html{overflow-x:hidden}
body{overflow-x:clip}
.logo{min-width:0;flex:0 1 auto}
.logo img{max-width:100%;object-fit:contain;object-position:left center}
.nav-mobile{display:none}
@media (max-width:1060px){.nav .nav-mobile{display:block}}
@media (max-width:560px){
  .hdr-in{gap:4px}
  .hdr-tools{gap:0;flex:none}
  .icon-btn{width:40px;height:40px}
  .search{width:40px;height:40px}
  .search button{width:40px;height:40px}
  .logo img{height:24px}
}
@media (max-width:400px){
  .hdr-tools .acct{display:none}
  .logo img{height:22px}
}
@media (max-width:700px){
  .portal .hdr-in{flex-wrap:wrap;height:auto;padding:12px 0;gap:6px}
  .portal .hdr-tools{margin-left:0;width:100%;font-size:.8rem;flex-wrap:wrap}
  .portal .logo small{display:none}
}
.pdp>*,.cart-grid>*,.hero-grid>*,.band>*,.details>*{min-width:0}
@media (max-width:860px){.hero-grid,.pdp,.band,.cart-grid,.details{grid-template-columns:minmax(0,1fr)}}
/* phones: stop iOS zoom-on-focus (inputs under 16px make the page zoom and then slide sideways) */
@media (max-width:860px){
  input,select,textarea,.search input,.field input,.field select,.phonepick input[type=search],.phone-search input{font-size:16px!important}
  main,.ftr,.announce{overflow-x:hidden}
}
