/* Shop add-on styles (preview variants). Builds on styles.css variables. */
.links{gap:1.8rem}
.nav-tool{display:inline-flex!important;align-items:center;gap:.4rem;position:relative}
.nav-tool svg{width:19px;height:19px}
.nav-badge{position:absolute;top:-8px;right:-14px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--sky);color:var(--navy);font-size:.7rem;font-weight:800;display:grid;place-items:center;line-height:1}
.nav-badge[hidden]{display:none}
.btn-sm{padding:.55rem 1rem;font-size:.86rem}
.btn-outline{border-color:var(--navy);color:var(--navy);background:#fff}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn svg{flex:none}
/* page band (no photo) */
.shop-band{background:linear-gradient(115deg,#071a3a 0%,var(--navy) 55%,var(--navy-2) 100%);color:#fff;padding:150px 0 64px;position:relative;overflow:hidden}
.shop-band::after{content:"";position:absolute;right:-90px;top:-60px;width:380px;height:380px;background:url(images/logo-icon-white.png) center/contain no-repeat;opacity:.05}
.shop-band h1{color:#fff;font-size:clamp(2rem,4vw,3.1rem);max-width:820px}
.shop-band .eyebrow{color:var(--sky-2)}
.shop-band .lead{color:rgba(255,255,255,.84);margin-top:1rem;max-width:720px}
section.shop,section.checkout,section.pd{padding:56px 0 100px}
/* steps strip */
.shop-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
.ss{display:flex;gap:.9rem;align-items:center;border:1px solid var(--line);border-radius:16px;padding:1rem 1.2rem;background:#fff}
.ss .ico{width:44px;height:44px;border-radius:12px}.ss .ico svg{width:22px;height:22px}
.ss b{display:block;font-family:var(--fd);color:var(--navy);font-size:.98rem}.ss span{color:var(--muted);font-size:.86rem}
.ws-banner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--mist);border:1px solid var(--sky-2);border-radius:16px;padding:1rem 1.3rem;margin-bottom:2rem}
.ws-banner>svg{width:26px;height:26px;color:var(--navy);flex:none}.ws-banner>div{flex:1;min-width:220px;color:var(--muted);font-size:.93rem}.ws-banner b{color:var(--navy)}
.ws-banner .btn{padding:.6rem 1.2rem;font-size:.9rem}
/* tools */
.shop-tools{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.chips-row{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.55rem 1rem;font:600 .9rem var(--ff);color:var(--navy);cursor:pointer;transition:.2s;display:inline-flex;gap:.45rem;align-items:center}
.chip i{font-style:normal;font-size:.75rem;background:var(--mist);border-radius:999px;padding:.05rem .45rem;color:var(--muted)}
.chip:hover{border-color:var(--sky)}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.chip.on i{background:rgba(255,255,255,.18);color:#fff}
.shop-right{display:flex;gap:.6rem;flex-wrap:wrap}
.search{display:flex;align-items:center;gap:.4rem;border:1.5px solid var(--line);border-radius:999px;padding:0 .9rem;background:#fbfdff}
.search svg{width:17px;height:17px;color:var(--muted)}.search input{border:0;background:none;font:inherit;font-size:.9rem;padding:.6rem 0;width:210px;outline:0}
#sort{border:1.5px solid var(--line);border-radius:999px;padding:.6rem .9rem;font:inherit;font-size:.9rem;background:#fbfdff;color:var(--navy)}
.shop-count{color:var(--muted);font-size:.88rem;margin-bottom:1.2rem}
.empty-q{text-align:center;color:var(--muted);padding:3rem 0}
/* grid + cards */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:.3s}
.pcard:hover{box-shadow:var(--sh2);transform:translateY(-4px);border-color:transparent}
.pcard[hidden]{display:none}
.pimg{display:block;background:#fff;border-bottom:1px solid var(--line);padding:1rem}
.pimg img{width:100%;aspect-ratio:1;object-fit:contain;transition:transform .5s}
.pcard:hover .pimg img{transform:scale(1.04)}
.pbody{padding:1rem 1.15rem 1.2rem;display:flex;flex-direction:column;flex:1}
.pcat{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sky);font-weight:700}
.pbrand{font-size:.82rem;color:var(--muted);font-weight:600;margin-top:.15rem}
.pcard h3{font-size:1rem;line-height:1.3;margin:.2rem 0 .25rem}.pcard h3 a:hover{color:var(--navy-2);text-decoration:underline}
.psize{font-size:.84rem;color:var(--muted)}
.pfoot{margin-top:auto;padding-top:.9rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.price{font-family:var(--fd);font-weight:800;color:var(--navy);font-size:1.15rem;line-height:1.2}
.price small{font-size:.66rem;letter-spacing:.1em;color:var(--muted);font-weight:700;margin-right:.15rem}
.price .case{display:block;font:500 .76rem var(--ff);color:var(--muted)}
.price-lock{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:600;color:var(--navy-2);background:var(--mist);border-radius:999px;padding:.5rem .85rem}
.price-lock svg{width:15px;height:15px}.price-lock:hover{background:var(--navy);color:#fff}
.pcard .btn.added{background:var(--sky);color:var(--navy)}
/* product detail */
.crumbs{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.86rem;color:var(--muted);margin:90px 0 1.6rem}
.crumbs a:hover{color:var(--navy)}.crumbs b{color:var(--navy);font-weight:600}
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.pd-img{border:1px solid var(--line);border-radius:24px;padding:2rem;background:#fff;box-shadow:var(--sh)}
.pd-img img{width:100%;aspect-ratio:1;object-fit:contain}
.pd-info .pbrand{font-size:1rem;margin-top:.4rem}
.pd-info h1{font-size:clamp(1.8rem,3vw,2.5rem);margin:.3rem 0 .4rem}
.pd-size{color:var(--muted);font-weight:500}
.pd-desc{margin:1.2rem 0 1.4rem;font-size:1.05rem;color:var(--ink)}
.pd-price{font-family:var(--fd);font-size:2rem;font-weight:800;color:var(--navy);margin-bottom:1.2rem}
.pd-price small{font-size:.8rem;letter-spacing:.12em;color:var(--muted)}.pd-price .unit{font:500 .9rem var(--ff);color:var(--muted)}
.pd-case{display:flex;align-items:center;gap:.5rem;color:var(--muted);margin-bottom:1.2rem}.pd-case svg{width:20px;height:20px;color:var(--navy)}.pd-case b{color:var(--navy)}
.buy{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.qty button{width:42px;height:46px;border:0;background:none;font-size:1.25rem;color:var(--navy);cursor:pointer}.qty button:hover{background:var(--mist)}
.qty input{width:50px;text-align:center;border:0;font:600 1rem var(--ff);color:var(--navy);-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.qty.sm button{width:34px;height:36px;font-size:1.05rem}.qty.sm input{width:40px;font-size:.92rem}
.qty-l{color:var(--muted);font-size:.9rem}
.pd-notes{list-style:none;margin-top:1.6rem;display:grid;gap:.6rem;border-top:1px solid var(--line);padding-top:1.3rem}
.pd-notes li{display:flex;gap:.6rem;color:var(--muted);font-size:.92rem}.pd-notes svg{width:18px;height:18px;flex:none;color:var(--navy);margin-top:3px}
.lock-box{display:flex;gap:.9rem;align-items:center;background:var(--mist);border:1px solid var(--sky-2);border-radius:16px;padding:1.1rem 1.2rem;margin-bottom:1.3rem}
.lock-box>svg{width:26px;height:26px;color:var(--navy);flex:none}.lock-box b{display:block;color:var(--navy)}.lock-box span{color:var(--muted);font-size:.92rem}
.back{display:inline-flex;gap:.4rem;align-items:center;margin-top:2rem;color:var(--muted);font-weight:600;font-size:.92rem}.back svg{width:17px;height:17px}.back:hover{color:var(--navy)}
.related{margin-top:5rem}.related h2{font-size:1.6rem;margin-bottom:1.4rem}
/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,140%);background:var(--navy);color:#fff;border-radius:14px;padding:.85rem 1.1rem;display:flex;gap:1rem;align-items:center;box-shadow:var(--sh2);z-index:60;transition:.35s;font-size:.93rem;max-width:92vw}
.toast.show{transform:translate(-50%,0)}.toast a{color:var(--sky);font-weight:700;white-space:nowrap}
/* checkout */
.co-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:start}
.co-h{font-size:1.4rem;margin-bottom:1rem}
.lines{display:grid;gap:.8rem}
.line{display:grid;grid-template-columns:76px 1fr auto;gap:1rem;align-items:center;border:1px solid var(--line);border-radius:16px;padding:.8rem 1rem;background:#fff}
.line img{width:76px;height:76px;object-fit:contain}
.line .lt b{display:block;color:var(--navy);font-family:var(--fd);font-size:.97rem;line-height:1.3}.line .lt span{color:var(--muted);font-size:.84rem;display:block}
.line .lr{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
.line .lp{font-weight:700;color:var(--navy)}
.rm{background:none;border:0;color:var(--muted);font-size:.8rem;cursor:pointer;text-decoration:underline}.rm:hover{color:#d14343}
.lines-empty{border:1.5px dashed var(--line);border-radius:16px;padding:2.4rem;text-align:center;color:var(--muted)}.lines-empty .btn{margin-top:1rem}
.totals{margin-top:1.2rem;border-top:2px solid var(--line);padding-top:1rem}
.totals div{display:flex;justify-content:space-between;font-size:1.05rem;margin-bottom:.3rem}.totals b{font-family:var(--fd);color:var(--navy);font-size:1.25rem}
.totals p{color:var(--muted);font-size:.86rem;margin-top:.4rem}
.co-form{margin-top:0}
.fs-l{display:block;font-family:var(--fd);font-weight:700;color:var(--navy);margin:.6rem 0 .7rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:.95rem}
.row.three{grid-template-columns:1.4fr .8fr .8fr}
.form-error{display:none;margin-top:1rem;background:#fff4f4;border:1px solid #f1c6c6;color:#8a2a2a;border-radius:12px;padding:.9rem 1rem;font-size:.9rem}
.form-error a{text-decoration:underline}
.form.failed .form-error{display:block}
.form.done .success{display:block}.form.done form,.form.done>h3,.form.done>p{display:none}
.cf-ts{margin:.4rem 0}
/* login */
.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.login-box{margin-top:0}
.login-msg{display:flex;gap:.8rem;align-items:flex-start;margin-top:1.2rem;background:#fff8ec;border:1px solid #f0d9a8;border-radius:12px;padding:1rem 1.1rem;color:#5c4510;font-size:.93rem}
.login-msg[hidden]{display:none}.login-msg svg{width:20px;height:20px;flex:none;margin-top:2px}.login-msg a{font-weight:700;text-decoration:underline;color:var(--navy)}
.login-side{background:var(--mist);border-radius:var(--r);padding:2.2rem}.login-side .checks{margin:1.2rem 0 0}
.apply{margin-top:4rem;scroll-margin-top:100px}.apply-box{margin:0 auto;max-width:860px}
@media (max-width:1100px){.pgrid{grid-template-columns:repeat(3,1fr)}.links{gap:1.2rem}}
@media (max-width:1000px){.co-grid,.login-grid,.pd-grid{grid-template-columns:1fr;gap:2rem}.shop-steps{grid-template-columns:1fr}}
@media (max-width:820px){.pgrid{grid-template-columns:repeat(2,1fr);gap:.9rem}.nav-badge{right:auto;left:110px;top:2px}
 .shop-band{padding:120px 0 44px}.search input{width:100%}.shop-right,.search{width:100%}#sort{width:100%}
 .chips-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.3rem;width:100%}.chip{white-space:nowrap}
 .crumbs{margin-top:70px}.row,.row.three{grid-template-columns:1fr;gap:0}.pd-img{padding:1rem}}
@media (max-width:520px){.pbody{padding:.8rem .8rem 1rem}.pcard h3{font-size:.92rem}.pfoot .btn{width:100%;justify-content:center}.form{padding:1.6rem}.line{grid-template-columns:56px 1fr;}.line img{width:56px;height:56px}.line .lr{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
/* fixes */
.pimg img,.pd-img img{height:auto}
.secure svg{width:14px;height:14px;flex:none}
.pd-info .pcat,.pd-info .pbrand{display:block}
/* v1b: list price, sale, footer, policy pages, homepage category links */
.pw{display:flex;flex-direction:column;gap:.15rem}
.list-price{font-size:.78rem;color:var(--muted)}.list-price s{margin-left:.15rem}
.pw .pd-price{margin-bottom:.15rem}.pd-info .pw{margin-bottom:1.1rem}.pd-info .list-price{font-size:.95rem}
.pw.is-sale .now{color:#b42318}.pw.is-sale s{font:500 .85em var(--ff);color:var(--muted);margin-left:.25rem}
.pd-price .now{color:#b42318}
.sale-ends{font-size:.78rem;font-weight:600;color:#b42318}.pd-info .sale-ends{font-size:.92rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pimg{position:relative}
.sale-badge{position:absolute;top:.7rem;left:.7rem;z-index:2;background:#b42318;color:#fff;font:800 .72rem var(--ff);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.3rem .65rem}
.sale-badge.inline{position:static;display:inline-block;margin-bottom:.6rem}
.chip-sale{border-color:#f3c3bd;color:#b42318}.chip-sale.on{background:#b42318;border-color:#b42318;color:#fff}
.sale-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#fff4f2;border:1px solid #f3c3bd;border-radius:16px;padding:.9rem 1.2rem;margin-bottom:1.6rem}
.sale-bar .sale-badge{margin:0}.sale-bar>div{flex:1;min-width:220px;font-size:.93rem;color:var(--muted)}.sale-bar b{color:var(--navy)}
.lp-note{font-size:.82rem;color:var(--muted);margin:-.5rem 0 1.2rem}.lp-note a,.lp-foot a{text-decoration:underline}
.lp-foot{font-size:.82rem;color:var(--muted);margin-top:2rem;text-align:center}
.line-sale{font-style:normal;color:#b42318;font-weight:600}
footer .f-co{margin-top:.9rem;font-size:.88rem}footer .f-co a{text-decoration:underline}
footer .f-contact li{line-height:1.6}footer .f-contact a{text-decoration:underline}
/* homepage category cards -> shop */
.cat-grid .cat-wrap{display:flex;flex-direction:column;gap:.9rem}
.cat-grid a.cat{display:block}
.cat-grid .cat .num{display:block}
.cat-btn{justify-content:center;width:100%}
/* policy pages */
section.legal{padding:48px 0 80px}
.legal-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:3rem;align-items:start}
.legal-toc{position:sticky;top:96px;align-self:start;max-height:calc(100vh - 116px);overflow-y:auto;background:var(--mist);border-radius:16px;padding:1.2rem 1.3rem;font-size:.9rem}
.legal-toc b{display:block;color:var(--navy);margin-bottom:.6rem}.legal-toc ul{list-style:none;display:grid;gap:.4rem}.legal-toc a{color:var(--muted)}.legal-toc a:hover{color:var(--navy)}
.legal-body{max-width:780px}.legal-body .eff{color:var(--muted);font-size:.9rem;margin-bottom:1.25rem}
.legal-body section{margin:0 0 1.75rem;padding:0;min-height:0;scroll-margin-top:110px}.legal-body section:last-child{margin-bottom:0}
.legal-body h2{font-size:1.3rem;line-height:1.3;margin:0 0 .55rem}
.legal-body p,.legal-body li{color:var(--ink);line-height:1.65}.legal-body p{margin:0}.legal-body p+p,.legal-body ul+p,.legal-body p+ul{margin-top:.75rem}
.legal-body ul{padding-left:1.2rem;display:grid;gap:.4rem}.legal-body a{text-decoration:underline;color:var(--navy-2)}
/* sticky needs a non-scrolling ancestor chain: base styles.css sets html,body{overflow-x:hidden}, which makes body a scroll container and kills sticky */
@supports (overflow:clip){html,body{overflow-x:clip}}
@media (max-width:900px){.legal-grid{grid-template-columns:1fr;gap:1.5rem}.legal-toc{position:static;max-height:none}section.legal{padding:32px 0 60px}.legal-body section{scroll-margin-top:90px}}
