:root{--bg:#121417;--panel:#1b1e23;--panel2:#23272d;--line:#2d3238;--text:#ece8e1;--mute:#9ba1a9;--amber:#ffb000;--red:#e5322d;--r:6px;
--disp:'Barlow Condensed','Arial Narrow',sans-serif;--body:'Barlow',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
/* site-wide car background (default: silhouette; replace with your own photo in Admin > Settings) */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url(../img/bmw-silhouette.svg) no-repeat right 3% bottom 4%/min(980px,96vw);opacity:.13}
body.has-bgphoto::before{background-size:cover;background-position:center;opacity:1}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3,h4{font-family:var(--disp);font-weight:800;line-height:1.02;margin:0 0 .5em;letter-spacing:.2px}
h1{font-size:clamp(2.6rem,6.4vw,5rem);font-style:italic}h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}h3{font-size:1.4rem}
.h3{font-size:1.5rem}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--amber);color:#000;padding:.6rem 1rem;z-index:99}.skip:focus{left:0}
.wrap{width:min(1180px,92%);margin:0 auto}.narrow{width:min(760px,92%)}
/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(18,20,23,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:1.5rem;min-height:66px}
.logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;font:800 1.7rem/1 var(--disp);font-style:italic;color:var(--text)}.logo b{color:var(--amber)}
.nav{display:flex;gap:1.4rem;margin-left:auto}.nav a{text-decoration:none;font-weight:500;color:var(--mute);padding:.4rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a.on{color:var(--text);border-color:var(--amber)}
.cartlink{text-decoration:none;font-weight:600;display:flex;gap:.4rem;align-items:center}
.pill{background:var(--amber);color:#111;border-radius:99px;font-size:.78rem;font-weight:700;min-width:1.5rem;text-align:center;padding:0 .45rem;line-height:1.5rem}
.burger{display:none;background:none;border:0;padding:.5rem;margin-left:auto;cursor:pointer}.burger i{display:block;width:24px;height:2px;background:var(--text);margin:5px 0}
.flash{padding:.7rem 0;font-weight:500;background:#16301f;color:#9be3b0;border-bottom:1px solid #1f4a2e}.flash.err{background:#3a1816;color:#ff9a94;border-color:#5a2420}
/* buttons */
.btn{display:inline-block;background:var(--amber);color:#14110a;border:0;border-radius:var(--r);padding:.85rem 1.5rem;font:700 1rem var(--body);text-decoration:none;cursor:pointer;transition:transform .12s,background .12s}
.btn:hover{background:#ffc233;transform:translateY(-1px)}.btn.sm{padding:.45rem 1rem;font-size:.92rem}.btn.wide{display:block;width:100%;text-align:center;margin-top:1rem}
.btn.ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 2px var(--line)}.btn.ghost:hover{box-shadow:inset 0 0 0 2px var(--amber);background:transparent}
.link{background:none;border:0;color:var(--amber);font:inherit;cursor:pointer;padding:0;text-decoration:underline}
/* hero */
.hero{padding:clamp(2rem,6vw,5rem) 0;background:radial-gradient(900px 500px at 85% 40%,rgba(42,31,16,.85) 0,transparent 70%),linear-gradient(180deg,rgba(21,24,28,.78),rgba(18,20,23,.45));border-bottom:1px solid var(--line);overflow:hidden}
.herogrid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:center}
.kicker{color:var(--amber);font-weight:600;margin:0 0 1rem}
.lead{font-size:1.2rem;color:#cfcac2;max-width:34em}.lead.sm{font-size:1.1rem}
.cta{display:flex;gap:1rem;flex-wrap:wrap;margin:1.8rem 0 1rem}.perk{color:var(--mute);margin:0}.perk b{color:var(--amber)}
.tach{width:min(440px,100%);justify-self:center}.tach svg{width:100%;height:auto;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}
.t-bezel{fill:#2a2e34;stroke:#3a3f47;stroke-width:3}.t-face{fill:#0d0f11}
.tick{stroke:#d9d4cb}.tick.red{stroke:var(--red)}.tnum{fill:#d9d4cb;font:800 26px var(--disp);font-style:italic}.tnum.red{fill:var(--red)}
.tcap{fill:var(--mute);font:600 14px var(--body)}.tbrand{fill:var(--amber);font:800 20px var(--disp);font-style:italic;letter-spacing:3px}
.needle{transform-origin:200px 200px;transform:rotate(84deg);animation:rev 2.4s cubic-bezier(.3,.7,.3,1) both}.needle path,.needle circle{fill:var(--red)}.needle circle{fill:#333;stroke:var(--red);stroke-width:4}
@keyframes rev{0%{transform:rotate(-135deg)}45%{transform:rotate(112deg)}62%{transform:rotate(68deg)}100%{transform:rotate(84deg)}}
/* sections */
.sec{padding:clamp(2.5rem,5vw,4rem) 0}.sechead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem}.sechead h2{margin:0}.sechead a{color:var(--amber)}
.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem}
.cat{display:block;padding:1.4rem 1.1rem;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:var(--r);text-decoration:none;font:800 1.5rem var(--disp);font-style:italic}.cat:hover{background:var(--panel2)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.3rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.cardimg{position:relative;display:block;aspect-ratio:1/1;background:var(--panel2)}
.pimg{width:100%;height:100%;object-fit:cover}.pimg.ph{display:grid;place-items:center;align-content:center;gap:.6rem;color:hsl(var(--h),90%,55%);background:linear-gradient(135deg,#1e2126,#2a2e35)}
.ph svg{width:46%}.ph span{font:800 1.1rem var(--disp);font-style:italic;color:var(--mute)}
.pimg.big{aspect-ratio:1/1;border-radius:var(--r)}.pimg.tiny{width:70px;height:70px;border-radius:4px}.pimg.tiny.ph span,.pimg.tiny.ph svg{display:none}.pimg.tiny.ph svg{display:block;width:60%}
.off{position:absolute;top:.7rem;left:.7rem;background:var(--red);color:#fff;font-weight:700;font-size:.85rem;padding:.15rem .55rem;border-radius:3px}.off.inline{position:static;display:inline-block}
.cardbody{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.3rem;flex:1}.cardbody small{color:var(--amber);font-weight:600}
.cardbody h3{font-size:1.3rem;margin:0}.cardbody h3 a{text-decoration:none}.cardbody p{margin:0 0 .6rem;color:var(--mute);font-size:.95rem;flex:1}
.row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.price{font:800 1.5rem var(--disp)}.price s{color:var(--mute);font:400 .95rem var(--body)}.price.big{font-size:2.4rem}
.band{background:rgba(27,30,35,.9);border-block:1px solid var(--line)}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.three p{color:var(--mute);margin:0}
.revgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.3rem}
.rev{margin:0;padding:1.5rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}.stars{color:var(--amber);letter-spacing:3px}.rev blockquote{margin:.6rem 0 1rem}.rev figcaption{color:var(--mute);font-size:.95rem}.rev figcaption b{color:var(--text)}
.garage{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;padding:2.5rem;border-radius:var(--r);background:linear-gradient(110deg,#2b2110,#1b1e23 70%);border:1px solid #4a3a16}.garage h2{margin-bottom:.3rem}.garage p{margin:0;max-width:36em;color:#cfcac2}
/* pages */
.pagehead{padding:2.6rem 0 1.4rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.pagehead h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:0}.pagehead p{margin:.5rem 0 0;color:var(--mute)}
.filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.6rem}.chips{display:flex;flex-wrap:wrap;gap:.5rem;flex:1 1 100%}
.chips a{padding:.4rem 1rem;border:1px solid var(--line);border-radius:99px;text-decoration:none;color:var(--mute)}.chips a.on,.chips a:hover{background:var(--amber);color:#111;border-color:var(--amber)}
input,select,textarea{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .85rem;font:inherit;width:100%}.filters input,.filters select{width:auto;flex:1;min-width:180px}
.empty{padding:3rem 0;color:var(--mute);font-size:1.1rem}.empty a{color:var(--amber)}
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:3rem;padding-top:2.5rem}.pdpinfo h1{font-size:clamp(2rem,4vw,3rem);font-style:normal}.crumb{color:var(--amber);text-decoration:none;font-weight:600}
.buy{display:flex;gap:1rem;align-items:end;margin:1.2rem 0}.buy label{width:90px;font-size:.9rem;color:var(--mute)}
.facts{padding-left:1.1rem;color:var(--mute);margin:1.2rem 0 2rem}.prose p{margin:0 0 1rem;color:#cfcac2}.prose.big{font-size:1.15rem;padding-bottom:3rem}.prose.big p{color:#d6d1c9}
.cartgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:2.5rem;align-items:start;padding-bottom:3rem}
.cline{display:grid;grid-template-columns:70px 1fr 80px 90px auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}.cinfo small{display:block;color:var(--mute)}.cinfo a{text-decoration:none;font-weight:600}.cline b{text-align:right}
.cartlist .btn{margin-top:1rem}
.sum{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;position:sticky;top:86px}
.sum dl{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;margin:1rem 0}.sum dd{margin:0;text-align:right}.tot{font:800 1.5rem var(--disp);border-top:1px solid var(--line);padding-top:.6rem;margin-top:.3rem}
.coupon{display:flex;gap:.5rem;margin-bottom:.6rem}.mini{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;color:#cfcac2;font-size:.95rem}
.form{display:grid;gap:1rem}.form label{display:grid;gap:.35rem;font-weight:500;font-size:.95rem}.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form .three{gap:1rem}
.errline{background:#3a1816;color:#ff9a94;padding:.7rem 1rem;border-radius:var(--r);margin:0}
.success{padding:4rem 0}.success h1{font-size:clamp(2.2rem,5vw,3.6rem)}
.reward{margin:2rem 0;padding:2rem;border-radius:var(--r);background:linear-gradient(120deg,#2b2110,#1b1e23);border:2px dashed var(--amber)}.reward h2{color:var(--amber)}
.code{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1rem 0}.code span{font:800 2.4rem var(--disp);letter-spacing:4px;background:#0d0f11;padding:.2rem 1rem;border-radius:4px}
.track{margin-top:2rem;padding:1.5rem;background:var(--panel);border-radius:var(--r);border:1px solid var(--line)}
.steps{list-style:none;display:flex;padding:0;margin:1.2rem 0 1.5rem;gap:.5rem}.steps li{flex:1;padding:.7rem .4rem;text-align:center;border-top:4px solid var(--line);color:var(--mute);font-weight:500}.steps li.done{border-color:var(--amber);color:var(--text)}.steps li.now{font-weight:700;color:var(--amber)}
/* footer */
.foot{margin-top:3rem;background:#0d0f11;border-top:1px solid var(--line);padding-top:3rem}.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2rem}
.foot h4{font-size:1.2rem;color:var(--amber)}.foot a:not(.btn):not(.logo){display:block;color:var(--mute);text-decoration:none;padding:.15rem 0}.foot a:hover{color:var(--text)}.foot p{color:var(--mute);font-size:.95rem}
.legal{padding:1.5rem 0;margin-top:2rem;border-top:1px solid var(--line);color:var(--mute);font-size:.88rem}
@media(max-width:900px){.herogrid,.pdp,.cartgrid{grid-template-columns:1fr}.tach{width:min(340px,80%);order:-1}.fgrid{grid-template-columns:1fr 1fr}.three{grid-template-columns:1fr}.sum{position:static}.cline{grid-template-columns:60px 1fr 70px;}.cline b,.cline .link{grid-column:2/-1;text-align:left}}
@media(max-width:820px){.burger{display:block}.nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;background:var(--bg);padding:1rem 4%;border-bottom:1px solid var(--line);gap:.4rem;margin:0}body.navopen .nav{display:flex}.cartlink{margin-left:0}.two{grid-template-columns:1fr}.form .three{grid-template-columns:1fr}.steps{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.needle{animation:none}*{scroll-behavior:auto!important;transition:none!important}}
