:root{--ink:#111;--muted:#595959;--line:#e6e6e6;--bg:#fff;--soft:#fafafa;--gold:#febe10;--gold-soft:#ffe499;--dark:#0d0d0d;--radius:10px;--wrap:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Questrial","Montserrat",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px}
body.lock{overflow:hidden}
h1,h2,h3,h4{font-family:"Montserrat",system-ui,sans-serif;line-height:1.2;margin:0 0 .5em}
a{color:inherit}img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.7em 1.3em;border-radius:6px;border:1px solid var(--ink);background:#fff;color:var(--ink);font:600 .9rem "Montserrat",sans-serif;text-decoration:none;cursor:pointer;transition:.2s}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:#333}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#111}.btn-gold:hover{background:#ffcd45}
.btn.wide{width:100%;padding:1em}
/* announcement */
.announce{background:#000;color:var(--gold);font-size:.78rem;overflow:hidden;white-space:nowrap;padding:.45em 0}
.announce .track{display:inline-block;animation:tick 30s linear infinite}
.announce span{margin:0 1.6em}.announce span::after{content:"•";margin-left:3.2em;color:#fff}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.announce .track{animation:none}}
/* header */
.site-header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.hdr{display:flex;align-items:center;gap:24px;height:72px}
.logo img{height:52px;width:auto}
.nav{display:flex;gap:26px;margin-left:auto;font:600 .9rem "Montserrat",sans-serif}
.nav a{text-decoration:none}.nav a:hover{color:#b88700}
.cart-btn{border:0;background:none;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;gap:6px}
.cart-count{background:var(--gold);border-radius:99px;font:700 .75rem sans-serif;padding:2px 7px}
.menu-btn{display:none;margin-left:auto;border:0;background:none;font-size:1.5rem;cursor:pointer}
@media (max-width:820px){.menu-btn{display:block}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;padding:16px 20px;gap:14px;border-bottom:1px solid var(--line)}.nav.show{display:flex}.cart-btn{margin-left:4px}}
/* hero */
.hero{position:relative;color:#fff;background:#1a1a1a linear-gradient(90deg,#0d0d0d 0%,#0d0d0dcc 45%,#0d0d0d10 100%);overflow:hidden}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center;z-index:0;opacity:.95;transform:scaleX(-1)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000000ee 0%,#000000aa 45%,#00000000 80%);z-index:1}
.hero .wrap{position:relative;z-index:2;padding-top:110px;padding-bottom:110px}
.hero h1{font-size:clamp(2.2rem,5vw,3.8rem);max-width:640px;font-weight:700}
.hero h1 em{color:var(--gold);font-style:italic}
.hero p{max-width:520px;color:#ddd;font-size:1.08rem;margin:0 0 1.8em}
.hero .btns{display:flex;gap:12px;flex-wrap:wrap}.hero .btn:not(.btn-gold){background:transparent;color:#fff;border-color:#fff}
/* sections */
section{padding:72px 0}.sec-head{text-align:center;margin-bottom:40px}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.3rem)}.sec-head p{color:var(--muted);max-width:620px;margin:0 auto}
.soft{background:var(--soft)}
/* goals */
.goals{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.goal{display:block;text-decoration:none;border-radius:var(--radius);padding:30px;background:linear-gradient(140deg,#151515,#2b2b2b);color:#fff;min-height:190px;position:relative;overflow:hidden;transition:.25s}
.goal:hover{transform:translateY(-3px)}.goal::before{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:var(--gold);opacity:.18}
.goal h3{font-size:1.3rem}.goal p{color:#ccc;margin:0 0 1em;font-size:.95rem}.goal span{color:var(--gold);font-weight:700;font-size:.9rem}
.goal.active{outline:3px solid var(--gold)}
@media (max-width:820px){.goals{grid-template-columns:1fr}}
/* product grid */
.filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:30px}
.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:.45em 1.1em;cursor:pointer;font:600 .85rem "Montserrat",sans-serif}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid{grid-template-columns:1fr}}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;text-align:center}
.card-img{display:block;aspect-ratio:1;background:var(--soft);border-radius:8px;overflow:hidden;margin-bottom:14px}
.card-img img{width:100%;height:100%;object-fit:contain;transition:.3s}.card:hover .card-img img{transform:scale(1.04)}
.card h3{font-size:1.05rem;margin:0 0 2px}.card h3 a{text-decoration:none}
.card .tag{color:var(--muted);font-size:.88rem;margin:0 0 6px}
.card .price{font:700 1.1rem "Montserrat",sans-serif;margin:0 0 14px}.price s{color:#999;font-weight:400;margin-right:4px}
.card-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.card-btns .btn{padding:.65em .5em;font-size:.82rem}
.ribbon{position:absolute;top:14px;left:14px;z-index:2;background:var(--gold);font:700 .7rem "Montserrat",sans-serif;padding:4px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}
/* trust */
.trust{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px;font-size:.88rem;color:var(--muted)}
.trust li{display:flex;align-items:center;gap:8px}.trust span{font-size:1.2rem}
.trust-band{padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* why */
.why{background:#0d0d0d;color:#fff}
.why .sec-head p{color:#bbb}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pillar{border:1px solid #2a2a2a;border-radius:var(--radius);padding:24px;background:#151515}
.pillar b{display:block;color:var(--gold);font:700 1.6rem "Montserrat",sans-serif;margin-bottom:6px}
.pillar h3{font-size:1.05rem}.pillar p{color:#bbb;font-size:.92rem;margin:0}
@media (max-width:900px){.pillars{grid-template-columns:1fr 1fr}}@media (max-width:560px){.pillars{grid-template-columns:1fr}}
/* start */
.start{position:relative;color:#fff;overflow:hidden;background:#111}
.start .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.start .wrap{position:relative;display:flex;justify-content:flex-end}
.start .box{max-width:520px;padding:40px 0}.start h2{font-size:clamp(1.8rem,3vw,2.6rem)}.start h2 em{color:var(--gold);font-style:normal}
.start p{color:#ddd}
/* product page */
.crumbs{font-size:.85rem;color:var(--muted);padding:20px 0 0}.crumbs a{text-decoration:none}
.pdp{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;padding:28px 0 60px;align-items:start}
@media (max-width:860px){.pdp{grid-template-columns:1fr;gap:24px}}
.gallery .main{aspect-ratio:1;background:var(--soft);border-radius:var(--radius);overflow:hidden;position:relative}
.gallery .main img{width:100%;height:100%;object-fit:contain}
.thumbs{display:flex;gap:10px;margin-top:10px}.thumbs button{width:72px;height:72px;border:1px solid var(--line);border-radius:8px;padding:0;background:var(--soft);cursor:pointer;overflow:hidden}.thumbs button.on{border-color:var(--ink)}
.thumbs img{width:100%;height:100%;object-fit:contain}
.info h1{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:4px}
.info .tag{color:#b88700;font-weight:700;margin:0 0 14px}
.info .price{font:700 1.7rem "Montserrat",sans-serif;margin:0}.info .tax{color:var(--muted);font-size:.85rem;margin:2px 0 20px}
.info .lead{font-size:1.02rem}
.buy{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin:22px 0}
.stepper{display:flex;border:1px solid var(--ink);border-radius:6px;overflow:hidden}
.stepper button{width:42px;border:0;background:#fff;font-size:1.2rem;cursor:pointer}.stepper span{min-width:40px;display:grid;place-items:center;font-weight:700}
.buy .btn{flex:1;min-width:140px}
.acc{border-top:1px solid var(--line)}.acc details{border-bottom:1px solid var(--line);padding:14px 0}
.acc summary{cursor:pointer;font:700 1rem "Montserrat",sans-serif;list-style:none;display:flex;justify-content:space-between}
.acc summary::after{content:"+";font-size:1.3rem}.acc details[open] summary::after{content:"−"}
.acc .body{color:#333;padding-top:8px}.acc .body p{margin:.4em 0}
.disclaimer{font-size:.8rem;color:var(--muted);background:var(--soft);border-radius:8px;padding:12px 14px;margin-top:20px}
.msg{padding:120px 20px;text-align:center}
.err{color:#b00020;font-size:.9rem}
/* footer */
.site-footer{background:#fff;border-top:1px solid var(--line);padding-top:50px;font-size:.92rem}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:30px}
.foot h4{font-size:.95rem;margin-bottom:12px}.foot a{display:block;text-decoration:none;color:var(--muted);margin-bottom:6px}.foot a:hover{color:var(--ink)}
.foot p{color:var(--muted);margin:0 0 10px}.foot p a{display:inline}.flogo{height:60px;width:auto;margin-bottom:10px}
.legal{border-top:1px solid var(--line);margin-top:30px;padding-top:18px;padding-bottom:26px;font-size:.78rem;color:var(--muted)}
.legal p{margin:0 0 8px}
@media (max-width:820px){.foot{grid-template-columns:1fr 1fr}}@media (max-width:520px){.foot{grid-template-columns:1fr}}
.wa{position:fixed;right:18px;bottom:18px;z-index:30;width:54px;height:54px;border-radius:50%;background:#25d366;display:grid;place-items:center;font-size:1.5rem;text-decoration:none;box-shadow:0 6px 20px #0003}
/* drawer */
.drawer{position:fixed;inset:0;z-index:50;visibility:hidden}.drawer.open{visibility:visible}
.drawer-bg{position:absolute;inset:0;background:#0007;opacity:0;transition:.25s}.drawer.open .drawer-bg{opacity:1}
.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(420px,100%);background:#fff;display:flex;flex-direction:column;transform:translateX(100%);transition:.25s}
.drawer.open .drawer-panel{transform:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.drawer-head h3{margin:0}
.drawer-close{border:0;background:none;font-size:1.2rem;cursor:pointer}
.drawer-body{flex:1;overflow:auto;padding:16px 20px}.drawer-foot{padding:16px 20px;border-top:1px solid var(--line)}
.line{display:grid;grid-template-columns:64px 1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}
.line img{width:64px;height:64px;object-fit:contain;background:var(--soft);border-radius:6px}
.line-info{display:flex;flex-direction:column;gap:2px;font-size:.9rem}.line-info span{color:var(--muted)}
.qty{display:flex;align-items:center;gap:8px;margin-top:6px}.qty button{width:28px;height:28px;border:1px solid var(--line);background:#fff;border-radius:4px;cursor:pointer}
.qty .rm{width:auto;border:0;text-decoration:underline;color:var(--muted);font-size:.8rem;margin-left:6px}
.empty{color:var(--muted);margin-bottom:14px}.sum{display:flex;justify-content:space-between;font-size:1.05rem;margin-bottom:4px}
.note{font-size:.8rem;color:var(--muted);margin:0 0 12px}
.skeleton{background:linear-gradient(90deg,#f3f3f3,#e9e9e9,#f3f3f3);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:var(--radius);min-height:360px}
@keyframes sk{to{background-position:-200% 0}}
/* policy pages */
.policy{max-width:820px;padding-bottom:60px}.policy h1{font-size:clamp(1.8rem,3vw,2.4rem);margin-top:18px}
.policy h2{font-size:1.15rem;margin:1.8em 0 .5em}.policy p,.policy li{color:#333}.policy ul{padding-left:1.2em}.policy li{margin:.35em 0}
.policy .updated{color:var(--muted);font-size:.85rem}.policy-contact{margin-top:2.4em;padding:18px 20px;background:var(--soft);border-radius:var(--radius)}.policy-contact h2{margin-top:0}
/* blog */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:900px){.post-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.post-grid{grid-template-columns:1fr}}
.post-card{display:flex;flex-direction:column;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.25s}
.post-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #0000000f}
.post-cover{aspect-ratio:16/9;background:var(--soft);overflow:hidden}.post-cover img{width:100%;height:100%;object-fit:contain}
.post-body{padding:18px;display:flex;flex-direction:column;gap:6px;flex:1}.post-body h3{font-size:1.1rem;margin:0}.post-body p{color:var(--muted);font-size:.92rem;margin:0}
.kicker{color:#b88700;font:700 .72rem "Montserrat",sans-serif;text-transform:uppercase;letter-spacing:.06em}.meta{color:#888;font-size:.8rem;margin-top:auto}
.article{max-width:760px;padding-bottom:60px}.article h1{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-top:16px}
.article .meta{display:block;margin-bottom:20px}.article .hero-img{border-radius:var(--radius);overflow:hidden;background:var(--soft);aspect-ratio:16/9;margin-bottom:28px}.article .hero-img img{width:100%;height:100%;object-fit:contain}
.article .content{font-size:1.05rem}.article .content p,.article .content li{color:#2b2b2b}.article .content h2{font-size:1.35rem;margin:1.6em 0 .4em}.article .content h3{font-size:1.1rem;margin:1.6em 0 .4em}
.article blockquote{margin:1.5em 0;padding:14px 20px;border-left:4px solid var(--gold);background:var(--soft);font-style:italic;border-radius:0 8px 8px 0}.article blockquote p{margin:0}
.article .shop-box{margin-top:30px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.article .shop-box img{width:90px;height:90px;object-fit:contain;background:var(--soft);border-radius:8px}.article .shop-box div{flex:1;min-width:180px}