/* Product page v1 — composed from the frozen Global Component Library (Elementor-first).
   Tokens = the CSS-variable single source (tokens.css / Elementor Global Kit); values verbatim from DESIGN_SYSTEM.md. */
@font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{
  --navy-900:#102134;--navy-800:#112250;--navy-700:#1a293f;--slate-600:#404751;--sapphire-500:#3C507D;
  --gold-500:#896f3d;--gold-300:#E0C58F;--ivory-50:#F5F0E9;--sand-200:#D9CBC2;
  --accessible-gold:#7F6220;--clay-error:#B4402E;--success:#2E7D5B;--warning:#C58A2E;
  --white:#fff;--n-100:#ECE4DA;--n-300:#C0B2A6;--n-500:#6E6A66;--n-700:#2C3A4C;--n-800:#1B2B3E;
  --bg-base:var(--ivory-50);--bg-elevated:var(--white);--bg-sunken:var(--n-100);
  --text-primary:var(--navy-900);--text-secondary:var(--slate-600);--text-tertiary:var(--n-500);--text-on-dark:var(--ivory-50);
  --brand-primary:var(--navy-800);--brand-accent:var(--gold-500);--action-lead-magnet:var(--gold-500);--action-buy:var(--navy-800);
  --link:var(--sapphire-500);--gold-text:var(--accessible-gold);--border:var(--sand-200);--border-strong:var(--n-300);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;
  --radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-pill:999px;
  --shadow-e1:0 1px 2px rgba(16,33,52,.06);--shadow-e2:0 4px 12px rgba(16,33,52,.08);--shadow-e3:0 8px 24px rgba(16,33,52,.10);--shadow-e4:0 16px 40px rgba(16,33,52,.14);--shadow-e5:0 24px 64px rgba(16,33,52,.18);
  --z-sticky-header:1100;--z-floating-chat:1150;--z-buybar:1100;--z-modal-overlay:1300;--z-modal:1310;--z-toast:1400;
  --duration-fast:120ms;--duration-base:200ms;--duration-moderate:300ms;--ease-standard:cubic-bezier(.2,0,0,1);--ease-entrance:cubic-bezier(0,0,0,1);--ease-exit:cubic-bezier(.4,0,1,1);
  --container:1280px;--pad-inline:clamp(16px,4vw,40px);
  --font-sans:"Vazirmatn","Segoe UI",Tahoma,system-ui,sans-serif;--font-logo:"Georgia","Times New Roman",serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
h1,h2,h3,h4{margin:0;line-height:1.2;font-weight:700;letter-spacing:0}
h2{font-size:clamp(1.4rem,3vw,1.75rem)}h3{font-size:1.25rem;font-weight:600;line-height:1.25}
p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:var(--radius-sm)}
.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--pad-inline)}
.section{padding-block:clamp(40px,6vw,64px)}
.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.eyebrow{font-size:.8125rem;font-weight:600;color:var(--gold-text);margin:0 0 var(--space-3)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8);flex-wrap:wrap}
.link-more{color:var(--link);font-weight:600;font-size:.9375rem;display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}
.link-more svg{width:16px;height:16px}
.skip{position:absolute;inset-inline-start:var(--space-4);top:-60px;background:var(--navy-900);color:var(--ivory-50);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:var(--z-toast);transition:top var(--duration-base)}
.skip:focus{top:var(--space-2)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:600;font-size:.9375rem;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);transition:background-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast),transform var(--duration-fast);min-height:44px}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}
.btn svg{width:18px;height:18px}
.btn-buy{background:var(--action-buy);color:var(--ivory-50);box-shadow:var(--shadow-e1)}.btn-buy:hover{background:#0c1b3f;box-shadow:var(--shadow-e2)}
.btn-cta{background:var(--action-lead-magnet);color:var(--navy-900);box-shadow:var(--shadow-e1);font-weight:700;font-size:1.1875rem}.btn-cta:hover{background:#96793f;box-shadow:var(--shadow-e2)}
.btn-cta svg{width:20px;height:20px}
.btn-outline{background:transparent;border:1.5px solid var(--border-strong);color:var(--text-primary)}.btn-outline:hover{border-color:var(--navy-800);background:var(--n-100)}
.btn-lg{padding:var(--space-4) var(--space-8);font-size:1.05rem;min-height:54px}
.btn-block{width:100%}
.chip{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.8125rem;font-weight:600;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--n-100);color:var(--text-secondary)}
.stars{display:inline-flex;align-items:center;gap:2px;color:var(--gold-500)}
.stars svg{width:16px;height:16px;fill:var(--gold-500);stroke:none}
/* topbar + header (NAV-01) */
.topbar{background:var(--navy-900);color:var(--sand-200);font-size:.8125rem}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:38px}
.topbar a{color:var(--gold-300)}.topbar .tb-note{display:inline-flex;align-items:center;gap:var(--space-2)}
.topbar .tb-note svg{width:15px;height:15px;stroke:var(--gold-300)}
@media(max-width:767px){.topbar .tb-right{display:none}}
.site-header{position:sticky;top:0;z-index:var(--z-sticky-header);background:rgba(245,240,233,.9);backdrop-filter:saturate(140%) blur(10px);transition:box-shadow var(--duration-base),border-color var(--duration-base);border-bottom:1px solid transparent}
.site-header.scrolled{box-shadow:var(--shadow-e3);border-color:var(--border)}
.hdr{display:flex;align-items:center;gap:var(--space-6);min-height:72px;padding-block:var(--space-3)}
.brand-lockup{display:flex;align-items:center;gap:var(--space-3);flex:none}.brand-lockup img{width:44px;height:44px}
.brand-lockup .wm{display:flex;flex-direction:column;line-height:1.05}
.brand-lockup .wm b{font-family:var(--font-logo);font-size:1rem;color:var(--navy-900)}
.brand-lockup .wm span{font-size:.7rem;color:var(--gold-text);font-weight:600}
.primary{margin-inline:auto}.primary ul{display:flex;gap:var(--space-1);list-style:none;margin:0;padding:0}
.primary a{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-weight:600;font-size:.9375rem;position:relative}
.primary a:hover{background:var(--n-100);color:var(--navy-800)}.primary a.active{color:var(--accessible-gold)}
.primary a.active::after{content:"";position:absolute;inset-inline:var(--space-3);bottom:2px;height:2px;background:var(--gold-500);border-radius:2px}
.utils{display:flex;align-items:center;gap:var(--space-2);flex:none}
.icon-btn{position:relative;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--navy-900)}
.icon-btn:hover{background:var(--n-100)}
.icon-btn .badge{position:absolute;top:5px;inset-inline-end:5px;min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius-pill);background:var(--clay-error);color:#fff;font-size:.6875rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.wallet-pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--navy-900);color:var(--ivory-50);font-size:.8125rem;font-weight:600}
.wallet-pill svg{width:18px;height:18px;stroke:var(--gold-300)}.wallet-pill b{color:var(--gold-300)}
.avatar{width:36px;height:36px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--navy-700),var(--sapphire-500));color:var(--ivory-50);display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.login-link{font-weight:600;font-size:.9rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);display:inline-flex;gap:var(--space-2);align-items:center}.login-link:hover{background:var(--n-100)}
.menu-toggle{display:none}
[data-logged="true"] .logged-out{display:none!important}[data-logged="false"] .logged-in{display:none!important}
/* logged-in header carries the wider wallet-pill — tighten nav spacing so it fits the container (scoped so logged-out pages are unaffected) */
[data-logged="true"] .primary a{padding-inline:var(--space-2)}[data-logged="true"] .primary ul{gap:0}
@media(max-width:1080px){.primary{display:none}.menu-toggle{display:inline-flex}.hdr .utils{margin-inline-start:auto}}
@media(max-width:640px){.hdr{gap:var(--space-3)}.brand-lockup .wm{display:none}.cta-label{display:none}.hdr .cta-hdr .btn{padding:0;width:44px;height:44px}.utils .search-btn,.utils .login-link{display:none}.wallet-pill b{display:none}}
/* breadcrumb (NAV-03) */
.breadcrumb{padding-block:var(--space-4) 0}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0;padding:0;font-size:.8125rem;color:var(--text-tertiary)}
.breadcrumb a:hover{color:var(--link)}
.breadcrumb svg{width:14px;height:14px;transform:scaleX(-1);stroke:var(--n-300)}
.breadcrumb [aria-current]{color:var(--text-primary);font-weight:600}
/* product main */
.pmain{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(24px,4vw,var(--space-16));align-items:start;padding-block:var(--space-8)}
@media(max-width:900px){.pmain{grid-template-columns:1fr;gap:var(--space-8)}}
/* gallery (block 2) */
.gallery{position:sticky;top:96px}
@media(max-width:900px){.gallery{position:static}}
.gal-main{position:relative;aspect-ratio:4/5;background:linear-gradient(160deg,#fbf8f3,var(--n-100));border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-e1)}
.gal-main img{width:100%;height:100%;object-fit:cover}
.gal-badge{position:absolute;top:var(--space-4);inset-inline-start:var(--space-4);display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(16,33,52,.86);color:var(--gold-300);border:1px solid var(--gold-300);font-size:.8rem;font-weight:700;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill)}
.gal-badge svg{width:16px;height:16px;stroke:var(--gold-300)}
.gal-disc{position:absolute;top:var(--space-4);inset-inline-end:var(--space-4);background:var(--clay-error);color:#fff;font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill)}
.gal-zoom{position:absolute;bottom:var(--space-4);inset-inline-end:var(--space-4);width:40px;height:40px;border-radius:var(--radius-pill);background:var(--bg-elevated);box-shadow:var(--shadow-e2);display:flex;align-items:center;justify-content:center}
.gal-zoom svg{width:18px;height:18px;stroke:var(--slate-600)}
.gal-thumbs{display:flex;gap:var(--space-3);margin-top:var(--space-3)}
.gal-thumbs button{position:relative;flex:1;aspect-ratio:1/1;border-radius:var(--radius-md);overflow:hidden;border:2px solid var(--border);background:var(--n-100)}
.gal-thumbs button.on{border-color:var(--navy-800)}
.gal-thumbs img{width:100%;height:100%;object-fit:cover}
.gal-thumbs .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(16,33,52,.35)}
.gal-thumbs .play svg{width:22px;height:22px;stroke:#fff;fill:rgba(16,33,52,.5)}
/* info block (COM-04, block 3) */
.info .brandrow{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.info .brandrow .bchip{background:var(--navy-900);color:var(--ivory-50);font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill)}
.info .brandrow .auth{display:inline-flex;align-items:center;gap:4px;color:var(--success);font-size:.75rem;font-weight:600}
.info .brandrow .auth svg{width:15px;height:15px;stroke:var(--success)}
.info h1{font-size:clamp(1.5rem,3vw,2rem);line-height:1.25}
.info .ratingrow{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap}
.info .ratingrow .rev-link{color:var(--link);font-size:.85rem;font-weight:600}
.info .ratingrow .rate-n{font-weight:700}
/* live activity (FBK-01) */
.live{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--navy-900);color:var(--ivory-50);border-radius:var(--radius-md)}
.live .li{display:flex;align-items:center;gap:var(--space-2);font-size:.8125rem;color:var(--sand-200)}
.live .li svg{width:18px;height:18px;stroke:var(--gold-300)}.live .li b{color:var(--gold-300);font-weight:700}
.live .pulse{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 0 rgba(46,125,91,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(46,125,91,.5)}70%{box-shadow:0 0 0 8px rgba(46,125,91,0)}100%{box-shadow:0 0 0 0 rgba(46,125,91,0)}}
.priceblk{display:flex;align-items:baseline;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap}
.priceblk .price{font-size:2rem;font-weight:700;color:var(--navy-900)}.priceblk .price small{font-size:.9rem;font-weight:600;color:var(--text-tertiary)}
.priceblk .strike{font-size:1rem;color:var(--text-tertiary);text-decoration:line-through}
.priceblk .off{background:rgba(180,64,46,.1);color:var(--clay-error);font-size:.8rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-pill)}
.priceblk .save{width:100%;font-size:.8rem;color:var(--success);font-weight:600;margin-top:var(--space-1)}
.trustrow{display:flex;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap}
.trustrow .t{display:flex;align-items:center;gap:var(--space-2);font-size:.8125rem;color:var(--text-secondary)}
.trustrow .t svg{width:20px;height:20px;stroke:var(--gold-500)}
.opt{margin-top:var(--space-6)}
.opt label{display:block;font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}
.opt .segs{display:flex;gap:var(--space-2);flex-wrap:wrap}
.opt .segs button{border:1.5px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-weight:600;font-size:.875rem;background:var(--bg-elevated);min-height:44px}
.opt .segs button.on{border-color:var(--navy-800);background:var(--n-100);color:var(--navy-900)}
.opt .segs button small{display:block;font-weight:400;color:var(--text-tertiary);font-size:.7rem}
.buyrow{display:flex;gap:var(--space-3);margin-top:var(--space-6);align-items:stretch}
.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden}
.stepper button{width:44px;height:100%;min-height:52px;display:flex;align-items:center;justify-content:center;color:var(--navy-900)}
.stepper button:hover{background:var(--n-100)}.stepper button svg{width:18px;height:18px}
.stepper input{width:48px;text-align:center;border:0;font-family:inherit;font-weight:700;font-size:1.05rem;color:var(--navy-900);background:transparent}
.buyrow .btn-buy{flex:1}
.wish-btn{width:54px;border:1.5px solid var(--border-strong);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--slate-600)}
.wish-btn:hover{border-color:var(--clay-error);color:var(--clay-error)}.wish-btn svg{width:22px;height:22px}
.wholesale-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-sunken)}
.wholesale-link b{font-size:.9rem}.wholesale-link span{font-size:.8rem;color:var(--text-secondary)}
.wholesale-link .btn{padding:var(--space-2) var(--space-4);min-height:40px}
.lab-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-5);color:var(--accessible-gold);font-weight:600;font-size:.9rem}
.lab-link svg{width:18px;height:18px;stroke:var(--accessible-gold)}
/* sticky mobile buy bar (COM-10) */
.buybar{position:fixed;inset-inline:0;bottom:0;z-index:var(--z-buybar);background:var(--bg-elevated);border-top:1px solid var(--border);box-shadow:0 -6px 20px rgba(16,33,52,.12);padding:var(--space-3) var(--pad-inline);display:none;align-items:center;gap:var(--space-4);transform:translateY(100%);transition:transform var(--duration-base) var(--ease-standard)}
.buybar.show{transform:translateY(0)}
.buybar .p{display:flex;flex-direction:column;line-height:1.2}
.buybar .p .price{font-size:1.15rem;font-weight:700}.buybar .p .strike{font-size:.75rem;color:var(--text-tertiary);text-decoration:line-through}
.buybar .btn-buy{flex:1}
@media(max-width:900px){.buybar{display:flex}main{padding-bottom:80px}}
/* tabs (NAV-06, block 5) */
.tabs-wrap{margin-top:var(--space-8)}
.tablist{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.tablist::-webkit-scrollbar{display:none}
.tablist button{padding:var(--space-4) var(--space-4);font-weight:600;font-size:.95rem;color:var(--text-secondary);white-space:nowrap;position:relative;border-bottom:2px solid transparent;margin-bottom:-1px}
.tablist button[aria-selected="true"]{color:var(--navy-900);border-bottom-color:var(--gold-500)}
.tabpanel{padding-block:var(--space-6);display:none}.tabpanel.on{display:block}
.spec-table{width:100%;border-collapse:collapse;max-width:640px}
.spec-table th,.spec-table td{text-align:start;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:.9rem}
.spec-table th{color:var(--text-secondary);font-weight:600;width:45%}
.spec-table td{font-weight:600}
.usage-steps{display:grid;gap:var(--space-4);max-width:640px}
.usage-steps .st{display:flex;gap:var(--space-4);align-items:flex-start}
.usage-steps .n{width:32px;height:32px;flex:none;border-radius:var(--radius-pill);background:var(--navy-900);color:var(--gold-300);display:flex;align-items:center;justify-content:center;font-weight:700}
.usage-steps b{display:block}.usage-steps span{color:var(--text-secondary);font-size:.9rem}
.labtab{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--space-8);align-items:center}
@media(max-width:720px){.labtab{grid-template-columns:1fr}}
.labtab .vid{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:#000}
.labtab .vid img{width:100%;height:100%;object-fit:cover;opacity:.85}
.labtab .vid .pbtn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.labtab .vid .pbtn span{width:64px;height:64px;border-radius:var(--radius-pill);background:rgba(224,197,143,.92);display:flex;align-items:center;justify-content:center}
.labtab .vid .pbtn svg{width:26px;height:26px;fill:var(--navy-900);stroke:none}
.labtab .octab{width:100%;border-collapse:collapse;margin-top:var(--space-4)}
.labtab .octab td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:.9rem}
.labtab .grade{display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(46,125,91,.12);color:var(--success);font-weight:700;padding:4px 12px;border-radius:var(--radius-pill)}
/* vehicle-fit selector (block 6 · MKT-05) */
.vfit{background:linear-gradient(135deg,var(--navy-900),var(--navy-800));color:var(--ivory-50);border-radius:var(--radius-2xl);padding:clamp(24px,3vw,var(--space-12));margin-top:var(--space-12)}
.vfit .eyebrow{color:var(--gold-300)}.vfit h2{color:var(--ivory-50)}
.vfit p{color:var(--sand-200);margin-top:var(--space-2);font-size:.9rem}
.vfit .controls{display:flex;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap}
.vfit select{flex:1;min-width:160px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid rgba(224,197,143,.3);background:rgba(16,33,52,.5);color:var(--ivory-50);font-family:inherit;min-height:48px;font-size:.9rem}
.vfit .btn-cta{white-space:nowrap}
.vfit .result{display:none;margin-top:var(--space-5);padding:var(--space-5);background:rgba(245,240,233,.07);border:1px solid rgba(224,197,143,.25);border-radius:var(--radius-lg)}
.vfit .result.show{display:block}
.vfit .result .ok{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--gold-300);font-weight:700}
.vfit .result .ok svg{width:20px;height:20px;stroke:var(--gold-300)}
.vfit .result .dose{margin-top:var(--space-3);display:flex;gap:var(--space-8);flex-wrap:wrap}
.vfit .result .dose div b{display:block;font-size:1.5rem;color:var(--gold-300)}
.vfit .result .dose div span{font-size:.8rem;color:var(--sand-200)}
/* similar + recently (COM-01 cards) */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:var(--space-5);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--space-3);scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}.rail>*{scroll-snap-align:start}
@media(min-width:1024px){.rail{grid-auto-columns:calc((100% - 3*var(--space-5))/4)}}
.prod{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-e1);overflow:hidden;transition:box-shadow var(--duration-base),transform var(--duration-base)}
.prod:hover{box-shadow:var(--shadow-e2);transform:translateY(-3px)}
.prod .media{position:relative;aspect-ratio:1/1;background:linear-gradient(160deg,#fbf8f3,var(--n-100));display:flex;align-items:center;justify-content:center}
.prod .media .wmk{width:64px;height:64px;stroke:var(--n-300);fill:none;stroke-width:1.5}
.prod .brandchip{position:absolute;top:var(--space-3);inset-inline-start:var(--space-3);background:rgba(16,33,52,.9);color:var(--ivory-50);font-size:.6875rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-pill)}
.prod .pbody{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.prod h3{font-size:.95rem;font-weight:600;line-height:1.4}
.prod .stars span{color:var(--text-tertiary);font-size:.8rem;margin-inline-start:4px}
.prod .price{font-size:1.05rem;font-weight:700;margin-top:auto}.prod .price small{font-size:.72rem;color:var(--text-tertiary)}
.prod .btn-buy{margin-top:var(--space-2)}
/* reviews (CON-04, block 8) */
.rev-top{display:grid;grid-template-columns:auto 1fr;gap:var(--space-10);align-items:center;margin-bottom:var(--space-8)}
@media(max-width:720px){.rev-top{grid-template-columns:1fr;gap:var(--space-6)}}
.rev-score{text-align:center}.rev-score .big{font-size:3rem;font-weight:700;line-height:1}
.rev-score .cnt{font-size:.8rem;color:var(--text-secondary);margin-top:var(--space-2)}
.histo{display:grid;gap:var(--space-2);max-width:420px}
.histo .row{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:center;font-size:.8rem}
.histo .bar{height:8px;border-radius:var(--radius-pill);background:var(--n-100);overflow:hidden}
.histo .bar i{display:block;height:100%;background:var(--gold-500)}
.rev-filters{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-6);align-items:center}
.rev-filters .lbl{font-size:.8rem;color:var(--text-tertiary)}
.rev-filters button{font-size:.8125rem;font-weight:600;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-secondary)}
.rev-filters button.on{background:var(--navy-900);color:var(--ivory-50);border-color:var(--navy-900)}
.rev-note{font-size:.8rem;color:var(--text-tertiary);margin-inline-start:auto;display:inline-flex;align-items:center;gap:var(--space-2)}
.rev-note svg{width:15px;height:15px;stroke:var(--success)}
.reviews-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}
@media(max-width:720px){.reviews-grid{grid-template-columns:1fr}}
.rev{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-e1)}
.rev .badge-buy{display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(46,125,91,.12);color:var(--success);font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);margin-bottom:var(--space-3)}
.rev .badge-buy svg{width:13px;height:13px;stroke:var(--success)}
.rev .who{display:flex;align-items:center;gap:var(--space-3)}
.rev .who .av{width:38px;height:38px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--navy-700),var(--sapphire-500));color:var(--ivory-50);display:flex;align-items:center;justify-content:center;font-weight:700}
.rev .who b{font-size:.9rem;display:flex;align-items:center;gap:var(--space-2)}
.rev .who .verified svg{width:14px;height:14px;stroke:var(--sapphire-500)}
.rev .vtag{font-size:.72rem;color:var(--text-tertiary)}
.rev .stars{margin:var(--space-3) 0 var(--space-2)}
.rev p{color:var(--text-secondary);font-size:.9rem;line-height:1.7}
.rev .rmeta{margin-top:var(--space-3);font-size:.75rem;color:var(--text-tertiary);display:flex;gap:var(--space-4)}
.rev .rmeta button{color:var(--text-secondary);font-weight:600}
/* Q&A (block 9 · CON-05) */
.faq details{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-3);overflow:hidden;box-shadow:var(--shadow-e1)}
.faq summary{list-style:none;cursor:pointer;padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-weight:600;text-align:start}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{width:28px;height:28px;flex:none;border-radius:var(--radius-pill);background:var(--bg-sunken);display:flex;align-items:center;justify-content:center;transition:transform var(--duration-base)}
.faq summary .ic svg{width:16px;height:16px;stroke:var(--navy-800)}
.faq details[open] summary .ic{transform:rotate(180deg);background:var(--navy-900)}.faq details[open] summary .ic svg{stroke:var(--gold-300)}
.faq .ans{padding:0 var(--space-5) var(--space-5);color:var(--text-secondary);line-height:1.8}
.faq .qmeta{font-size:.72rem;color:var(--text-tertiary);margin-top:var(--space-2)}
/* footer (NAV-04) */
.site-footer{background:var(--navy-900);color:var(--sand-200);padding-block:var(--space-16) var(--space-8);margin-top:var(--space-16)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-10)}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.site-footer .brand-lockup .wm b{color:var(--ivory-50)}
.site-footer .about{color:var(--sand-200);font-size:.875rem;line-height:1.8;margin-top:var(--space-4);max-width:34ch}
.site-footer h4{color:var(--ivory-50);font-size:.95rem;margin-bottom:var(--space-4)}
.site-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}
.site-footer ul a{color:var(--sand-200);font-size:.875rem}.site-footer ul a:hover{color:var(--gold-300)}
.foot-return{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--gold-300)!important;font-weight:600}.foot-return svg{width:16px;height:16px;stroke:var(--gold-300)}
.foot-social{display:flex;gap:var(--space-2);margin-top:var(--space-4)}
.foot-social a{width:40px;height:40px;border-radius:var(--radius-pill);border:1px solid rgba(224,197,143,.25);display:flex;align-items:center;justify-content:center;color:var(--sand-200)}
.foot-social a:hover{border-color:var(--gold-300);color:var(--gold-300)}.foot-social svg{width:18px;height:18px}
.foot-bottom{border-top:1px solid rgba(224,197,143,.15);margin-top:var(--space-12);padding-top:var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;font-size:.8rem}
.foot-seals{display:flex;gap:var(--space-3)}.foot-seals .s{width:48px;height:48px;border-radius:var(--radius-sm);background:rgba(245,240,233,.06);border:1px solid rgba(224,197,143,.25);display:flex;align-items:center;justify-content:center}.foot-seals .s svg{width:24px;height:24px;stroke:var(--gold-300)}
/* gaftino (NAV-05) */
.gaftino{position:fixed;inset-inline-end:var(--space-6);bottom:var(--space-6);z-index:var(--z-floating-chat);display:flex;align-items:center;gap:var(--space-3);background:var(--navy-900);color:var(--ivory-50);padding:var(--space-3) var(--space-5) var(--space-3) var(--space-4);border-radius:var(--radius-pill);box-shadow:var(--shadow-e4);border:1px solid rgba(224,197,143,.3)}
.gaftino .dot{width:10px;height:10px;border-radius:50%;background:var(--success)}.gaftino svg{width:22px;height:22px;stroke:var(--gold-300)}
.gaftino b{font-size:.85rem}.gaftino span{font-size:.7rem;color:var(--sand-200);display:block}
@media(max-width:900px){.gaftino{bottom:84px}}@media(max-width:560px){.gaftino .txt{display:none}.gaftino{padding:var(--space-3)}}
/* modal (UTL-09 / MKT-02) */
.scrim{position:fixed;inset:0;background:rgba(16,33,52,.55);backdrop-filter:blur(2px);z-index:var(--z-modal-overlay);opacity:0;pointer-events:none;transition:opacity var(--duration-moderate)}
.scrim.show{opacity:1;pointer-events:auto}
.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:var(--z-modal);pointer-events:none;padding:var(--space-4)}
.modal .box{background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-e4);max-width:420px;width:100%;padding:var(--space-8);position:relative;opacity:0;transform:translateY(12px) scale(.98);transition:opacity var(--duration-moderate) var(--ease-entrance),transform var(--duration-moderate) var(--ease-entrance);pointer-events:none;text-align:center}
.modal.show .box{opacity:1;transform:none;pointer-events:auto}
.modal .close{position:absolute;top:var(--space-3);inset-inline-end:var(--space-3);width:36px;height:36px;border-radius:var(--radius-pill);background:var(--bg-sunken);display:flex;align-items:center;justify-content:center}.modal .close svg{width:18px;height:18px;stroke:var(--slate-600)}
.modal .ico{width:64px;height:64px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--navy-700),var(--sapphire-500));display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4)}.modal .ico svg{width:30px;height:30px;stroke:var(--ivory-50)}
.modal h3{font-size:1.3rem}.modal p{color:var(--text-secondary);margin-top:var(--space-3)}
.modal .acts{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-6)}
@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* ── Continuous Consistency: canonical shared components (promoted from pages 2026-07-10) ── */
/* CON-01 trust bar (canonical) */
.truststrip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);background:var(--bg-sunken);border-block:1px solid var(--border);border-radius:var(--radius-md);margin-top:var(--space-6)}
.truststrip .t{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:.8125rem;color:var(--text-secondary)}
.truststrip .t + .t{border-inline-start:1px solid var(--border)}
.truststrip .t svg{width:20px;height:20px;stroke:var(--gold-500);flex:none}
@media(max-width:640px){.truststrip{grid-template-columns:repeat(2,1fr)}}
/* COM-11 comparison table (canonical; pages set only min-width per column count) */
.compare-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-e1)}
table.compare{width:100%;border-collapse:collapse;font-size:.9rem}
table.compare th,table.compare td{padding:var(--space-4);text-align:start;border-bottom:1px solid var(--border);white-space:nowrap}
table.compare thead th{background:var(--navy-900);color:var(--ivory-50);font-weight:600;font-size:.8125rem;position:sticky;top:0}
table.compare tbody tr:hover{background:var(--bg-sunken)}
table.compare .bname{font-weight:700;display:flex;flex-direction:column}
table.compare .bname small{color:var(--text-tertiary);font-weight:400}
table.compare .boost{color:var(--success);font-weight:700}
table.compare .labok{display:inline-flex;gap:4px;align-items:center;color:var(--gold-text);font-weight:600;font-size:.8125rem}
table.compare .labok svg{width:15px;height:15px;stroke:var(--gold-text)}
table.compare .rate{color:var(--gold-text);font-weight:700}
table.compare td .btn-buy{padding:var(--space-2) var(--space-4);min-height:38px}
/* CON-06 blog/content card + grid (canonical; ≥3-page pattern promoted 2026-07-10) */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
@media(max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.blog-grid{grid-template-columns:1fr}}
.post{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-e1);transition:box-shadow var(--duration-base),transform var(--duration-base);display:flex;flex-direction:column}
.post:hover{box-shadow:var(--shadow-e2);transform:translateY(-3px)}
.post .m{aspect-ratio:16/9;background:linear-gradient(135deg,var(--navy-800),var(--navy-700));display:flex;align-items:center;justify-content:center;position:relative}
.post .m svg{width:40px;height:40px;stroke:rgba(224,197,143,.6)}
.post .cat{position:absolute;top:var(--space-3);inset-inline-start:var(--space-3);background:var(--gold-500);color:var(--navy-900);font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill)}
.post .b{padding:var(--space-5);display:flex;flex-direction:column;flex:1}
.post h3{font-size:1.05rem;line-height:1.4}
.post p{color:var(--text-secondary);font-size:.85rem;margin-top:var(--space-2);flex:1}
.post .meta{margin-top:var(--space-4);font-size:.72rem;color:var(--text-tertiary);display:flex;gap:var(--space-3)}
