:root{--blue:#0b4f9e;--blue-d:#083a75;--blue-l:#e8f1fb;--green:#16a34a;--green-d:#11803a;--green-l:#e7f6ec;--ink:#1f2a37;--g7:#4b5563;--g5:#6b7280;--g3:#d1d5db;--g2:#e5e7eb;--g1:#f3f4f6;--bg:#fff;--r:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue)}img{max-width:100%;height:auto}h1,h2,h3{line-height:1.2;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(1.8rem,4.5vw,2.9rem);letter-spacing:-.02em}h2{font-size:clamp(1.4rem,3vw,1.9rem);letter-spacing:-.01em}h3{font-size:1.15rem}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.sec{padding-top:56px;padding-bottom:56px}.narrow{max-width:720px}
.band{background:var(--g1)}.sub{color:var(--g7);max-width:70ch;margin-top:0}.note,.hint{color:var(--g5);font-size:.92rem}.hint{margin:.3em 0 0}
.vh,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}

/* seasonal banner */
.banner{display:flex;gap:.6em;justify-content:center;align-items:center;flex-wrap:wrap;padding:9px 16px;text-align:center;color:#fff;background:var(--blue-d);font-size:.95rem}
.banner strong{font-size:1.05rem;letter-spacing:.02em}.b-sub{opacity:.92}
.banner-christmas{background:radial-gradient(circle,#fff 1.2px,transparent 1.6px) 0 0/26px 22px,radial-gradient(circle,rgba(255,255,255,.6) 1px,transparent 1.4px) 13px 11px/26px 22px,linear-gradient(90deg,var(--green-d),var(--blue))}
.banner-newyear{background:linear-gradient(90deg,var(--blue-d),#374151)}.banner-valentine,.banner-spring{background:linear-gradient(90deg,var(--blue),var(--green))}
.banner-july4{background:linear-gradient(90deg,var(--blue-d),var(--blue))}.banner-halloween,.banner-thanksgiving{background:linear-gradient(90deg,#374151,var(--green-d))}
.banner-backtoschool{background:var(--green-d)}.banner-plain{background:var(--ink)}

.top{background:#fff;border-bottom:1px solid var(--g2);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;gap:18px;min-height:72px}.brand img{display:block;height:56px;width:auto}
.top nav{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}.top nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:.95rem}.top nav a:hover{color:var(--blue)}
.tel{font-weight:700;color:var(--blue);text-decoration:none;white-space:nowrap}

.btn{display:inline-flex;align-items:center;gap:.5em;border:2px solid transparent;border-radius:999px;padding:.55em 1.15em;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;line-height:1.2;white-space:nowrap}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--green-d)}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:var(--blue-d)}
.btn-ghost{background:#fff;color:var(--blue);border-color:var(--g3)}.btn-ghost:hover{border-color:var(--blue)}
.btn-lg{padding:.8em 1.5em;font-size:1.05rem}.btn-sm{padding:.4em .9em;font-size:.9rem}
.link{background:none;border:0;padding:0;color:var(--blue);font:inherit;text-decoration:underline;cursor:pointer}.danger{color:#6b7280}

.hero{background:linear-gradient(160deg,var(--blue-l),#fff 55%,var(--green-l))}
.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center;padding-top:64px;padding-bottom:64px}
.eyebrow{font-weight:700;color:var(--green-d);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;margin:0 0 .8em}
.lead{font-size:1.15rem;color:var(--g7);max-width:60ch}.cta{display:flex;gap:12px;flex-wrap:wrap;margin:1.4em 0}
.ticks{list-style:none;padding:0;margin:0;display:flex;gap:18px;flex-wrap:wrap;color:var(--g7);font-weight:500}.ticks li::before{content:"✓ ";color:var(--green);font-weight:800}
.clock{display:grid;place-items:center}.clock-face{width:min(280px,70vw);aspect-ratio:1;border-radius:50%;background:#fff;border:10px solid var(--blue);box-shadow:0 0 0 10px var(--green-l),0 20px 40px rgba(11,79,158,.18);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.clock .big{font-size:6.5rem;font-weight:800;line-height:.9;color:var(--blue)}.clock .unit{font-size:1.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--green-d)}.clock .sub{color:var(--g5);font-size:.9rem}

.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard{display:block;background:#fff;border:1px solid var(--g2);border-radius:var(--r);padding:24px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
.pcard:hover{border-color:var(--blue);box-shadow:0 8px 24px rgba(31,42,55,.08)}.pcard p{margin:.3em 0;color:var(--g7)}
.price{font-size:2rem;font-weight:800;color:var(--ink)!important}.price small{font-size:.9rem;font-weight:500;color:var(--g5)}.more{color:var(--blue);font-weight:700}
.tag{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.2em .7em;border-radius:999px;margin-bottom:.8em}
.tag.blue{background:var(--blue-l);color:var(--blue-d)}.tag.green{background:var(--green-l);color:var(--green-d)}.tag.gray{background:var(--g1);color:var(--g7)}
.svc>div{background:#fff;border-radius:var(--r);padding:22px;border:1px solid var(--g2)}.svc p{margin:0;color:var(--g7)}

.tablewrap{overflow-x:auto}.rates{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--g2);margin:1em 0}
.rates th,.rates td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--g2);vertical-align:top}.rates th{background:var(--blue);color:#fff;font-size:.9rem}
.rates tr:last-child td{border-bottom:0}.rates td:last-child{font-weight:600}.rates tr.hl td{background:var(--green-l)}

.steps{list-style:none;counter-reset:s;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.steps li{counter-increment:s;background:var(--g1);border-radius:var(--r);padding:20px}.steps li::before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;margin-bottom:10px}
.steps strong{display:block}.steps span{color:var(--g7);font-size:.95rem}
details{background:#fff;border:1px solid var(--g2);border-radius:var(--r);padding:14px 18px;margin-bottom:10px}summary{font-weight:700;cursor:pointer}details p{margin:.6em 0 0;color:var(--g7)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:28px}address{font-style:normal}

/* catalog */
.filters{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:1.2em 0}
.seg{display:inline-flex;border:1px solid var(--g3);border-radius:999px;overflow:hidden}.seg a{padding:.45em 1.1em;text-decoration:none;color:var(--g7);font-weight:600}.seg a.on{background:var(--blue);color:#fff}
.search{flex:1;min-width:220px}input,select,textarea{font:inherit;color:inherit;width:100%;padding:.65em .8em;border:1px solid var(--g3);border-radius:8px;background:#fff}
input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:2px solid var(--blue-l)}
.grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.item{display:flex;gap:14px;background:#fff;border:1px solid var(--g2);border-radius:var(--r);padding:14px}.item[hidden]{display:none}
.avatar{width:74px;height:auto;flex:none;display:block}.avatar .scr{fill:#0b4f9e}.avatar .a-lg{fill:#fff;font-weight:800;font-family:system-ui,Arial,sans-serif}.avatar .a-sm{fill:#bcd6f3;font-weight:600;font-family:system-ui,Arial,sans-serif;letter-spacing:.5px}.avatar .a-tag{fill:#fff;font-weight:800;font-family:system-ui,Arial,sans-serif;letter-spacing:1px}
.ib h2{font-size:1rem;margin:0}.ib h2 a{color:var(--ink);text-decoration:none}.ib h2 a:hover{color:var(--blue)}.ib p{margin:.15em 0}
.meta,.brk{color:var(--g5);font-size:.82rem}.tot{font-size:1.35rem;font-weight:800;color:var(--blue)}.tot small{font-size:.8rem;color:var(--g5);font-weight:500}
.two{color:var(--green-d);font-weight:700;font-size:.85rem;margin-bottom:.5em!important}
.crumbs{font-size:.9rem;color:var(--g5)}.dgrid{display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:start}.dav .avatar{width:100%}

/* forms */
.form{display:grid;gap:16px}.form label{display:block;font-weight:600;font-size:.95rem}.form label>input,.form label>select,.form label>textarea{display:block;margin-top:5px;font-weight:400}.form b{color:var(--green-d)}.opt{font-weight:400;color:var(--g5);font-size:.82rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
fieldset{border:1px dashed var(--g3);border-radius:var(--r);padding:16px;margin:0}legend{font-weight:600;padding:0 6px}
.pbtns{display:flex;gap:10px;flex-wrap:wrap}.pbtns label{display:inline-flex!important}
.preview{display:flex;gap:14px;align-items:center;margin-top:12px}.preview[hidden]{display:none}.preview img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--g3)}
.check{display:flex!important;gap:10px;align-items:flex-start;background:var(--blue-l);border-radius:var(--r);padding:14px;font-weight:400!important;cursor:pointer}.check input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--green)}
.shipbox{display:grid;gap:12px;border-left:4px solid var(--green);padding-left:16px;animation:rise .25s ease-out}.shipbox[hidden]{display:none}
@keyframes rise{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.shipbox{animation:none}html{scroll-behavior:auto}}
.errbox{background:#f3f4f6;border-left:4px solid var(--ink);padding:12px 16px;border-radius:8px}.errbox ul{margin:.3em 0 0;padding-left:1.2em}
.okmsg{background:var(--green-l);border-left:4px solid var(--green);padding:12px 16px;border-radius:8px;margin-bottom:16px}
.okbox{text-align:center;background:var(--green-l);border-radius:var(--r);padding:36px 24px}.okic{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff}.okic svg{width:34px;height:34px}
.ticket{font-size:2.2rem;font-weight:800;letter-spacing:.08em;color:var(--blue);margin:0}.shipto{background:#fff;border-radius:var(--r);padding:16px;display:inline-block;text-align:left;margin:1em 0}
.picked{display:flex;gap:14px;align-items:center;background:var(--g1);border-radius:var(--r);padding:12px 16px;margin-bottom:18px}.picked .avatar{width:48px}
.h-ic{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--green);color:#fff;vertical-align:middle;margin-right:6px}.h-ic svg{width:26px;height:26px}
.thread{display:grid;gap:10px;margin-top:18px}.msg{padding:12px 14px;border-radius:12px;max-width:92%}.msg small{display:block;color:var(--g5);font-size:.78rem;margin-bottom:2px}
.msg.me{background:var(--g1)}.msg.shop{background:var(--blue-l);margin-left:auto}
.pill{display:inline-block;background:var(--blue-l);color:var(--blue-d);border-radius:999px;padding:.1em .7em;font-size:.8rem;font-weight:700;vertical-align:middle}.pill.warn{background:var(--g2);color:var(--ink)}

.foot{background:var(--ink);color:#d1d5db;padding:44px 0 90px;font-size:.93rem}.foot a{color:#fff}.foot strong{color:#fff}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}.copy{margin-top:26px;padding-top:18px;border-top:1px solid #374151;color:#9ca3af}
body:has(#checkin) .fab{display:none!important}.fab{position:fixed;right:16px;bottom:16px;z-index:30;display:none;align-items:center;gap:8px;background:var(--green);color:#fff;border-radius:999px;padding:14px 20px;font-weight:800;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.25)}

/* admin */
.admin .bar{min-height:60px}.admin .brand img{height:42px}.admin nav{margin-left:24px}.admin .bar form{margin-left:auto}
.agrid{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;align-items:start}.kv td:first-child{color:var(--g5);font-weight:400;width:120px}
.aphoto{max-width:100%;max-height:340px;border-radius:var(--r);border:1px solid var(--g2)}.inline{display:inline-flex;gap:8px;align-items:center;margin:8px 12px 0 0}.inline select{width:auto}
.ptab input[type=number]{width:96px;padding:.35em .5em}.ptab input[type=checkbox]{width:18px;height:18px}.ptab td,.etab td{padding:8px 12px;font-weight:400!important}.admin .filters select{width:auto}

@media (max-width:900px){.top nav,.tel{display:none}.checkin{margin-left:auto}.fab{display:flex}.top .checkin{display:none}.brand{margin-right:auto}
 .hero-grid,.contact,.dgrid,.agrid{grid-template-columns:1fr}.cards3,.steps{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.row2,.row3{grid-template-columns:1fr}.dav{max-width:150px}
 .admin .top nav{display:flex;margin:0;gap:12px}.admin .bar{flex-wrap:wrap;padding-bottom:8px}.clock-face{width:200px}.clock .big{font-size:4.5rem}}

/* tickets */
.track{list-style:none;padding:0;margin:1.2em 0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;text-align:center;font-size:.85rem;color:var(--g5);font-weight:600}
.track li{position:relative;padding-top:44px}.track li span{position:absolute;top:0;left:50%;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--g2);color:var(--g7);font-weight:800;z-index:1}
.track li::before{content:"";position:absolute;top:16px;left:-50%;width:100%;height:3px;background:var(--g2)}.track li:first-child::before{display:none}
.track .done span{background:var(--green);color:#fff}.track .done::before,.track .now::before{background:var(--green)}.track .now{color:var(--blue-d)}.track .now span{background:var(--blue);color:#fff;box-shadow:0 0 0 5px var(--blue-l)}.track .done{color:var(--green-d)}
.quote{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--green-l);border-radius:var(--r);padding:16px 20px;margin:1em 0}.quote small{display:block;color:var(--g7)}.quote strong{font-size:1.8rem;color:var(--green-d)}
.timeline{list-style:none;padding:0;margin:0;border-left:3px solid var(--g2)}.timeline li{position:relative;padding:0 0 14px 18px}.timeline li::before{content:"";position:absolute;left:-8px;top:5px;width:13px;height:13px;border-radius:50%;background:var(--blue);border:2px solid #fff}
.timeline small{display:block;color:var(--g5);font-size:.78rem}.timeline .private{background:var(--g1);border-radius:8px;padding:8px 12px 8px 18px;margin-bottom:10px}.timeline .private::before{background:var(--g5)}
.panel{background:var(--g1);border-radius:var(--r);padding:16px;margin:14px 0}.panel .check{background:#fff;padding:10px}.nr{display:inline-flex;gap:6px;align-items:center;white-space:nowrap}.nr input{width:auto}
/* share */
.share{background:var(--blue-l);padding:22px 0}.share .wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.sbtns{display:flex;gap:8px;flex-wrap:wrap}
.sb{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--g3);border-radius:999px;padding:.4em 1em;font:inherit;font-size:.9rem;font-weight:600;color:var(--blue-d);text-decoration:none;cursor:pointer}.sb:hover{border-color:var(--blue)}
.sb-native{background:var(--green);border-color:var(--green);color:#fff}.sb-native small{font-weight:400;opacity:.9}.sb[hidden]{display:none}
@media (max-width:900px){.track{font-size:.72rem}}

/* map + comms */
.mapbox{border:1px solid var(--g2);border-radius:var(--r);overflow:hidden;background:#fff}.mapbox iframe{display:block;width:100%;height:320px;border:0;background:var(--g1)}
.maplinks{padding:14px 16px;display:grid;gap:10px}.contact{grid-template-columns:1fr 1.6fr}
.chan{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:.92rem}.chan label{display:inline-flex!important;gap:6px;align-items:center;font-weight:500}.chan input{width:auto;margin:0!important}.chan small{color:var(--g5)}
.commlog{margin-top:16px}.commlog p{border-top:1px solid var(--g2);padding-top:8px;font-size:.9rem}.bad{color:var(--ink);font-weight:700;text-decoration:underline}
@media (max-width:900px){.contact{grid-template-columns:1fr}}

/* AI chat */
.chat-open{position:fixed;left:16px;bottom:16px;z-index:30;display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border:0;border-radius:999px;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.chatbox{position:fixed;left:16px;bottom:72px;z-index:40;width:min(360px,calc(100vw - 32px));height:min(480px,calc(100vh - 110px));background:#fff;border:1px solid var(--g3);border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden}.chatbox[hidden]{display:none}
.chatbox header{background:var(--blue);color:#fff;padding:12px 44px 12px 14px;position:relative}.chatbox header small{display:block;opacity:.9;font-size:.75rem}
.chatbox header button{position:absolute;right:8px;top:8px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer}
.chatlog{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--g1)}
.cm{max-width:86%;padding:8px 12px;border-radius:14px;font-size:.93rem;white-space:pre-wrap;overflow-wrap:anywhere}.cm.bot{background:#fff;border:1px solid var(--g2);align-self:flex-start}.cm.me{background:var(--green);color:#fff;align-self:flex-end}.cm.wait{color:var(--g5);font-style:italic}
.chatbox form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--g2)}.chatbox form input{flex:1;min-width:0}

/* FAQ learning */
.bars{list-style:none;padding:0;margin:0;display:grid;gap:8px}.bars a{display:grid;grid-template-columns:150px 1fr;gap:4px 12px;align-items:center;text-decoration:none;color:var(--ink)}
.bl{font-weight:600;font-size:.92rem}.bt{background:var(--g2);border-radius:6px;height:14px;overflow:hidden}.bt i{display:block;height:100%;background:var(--blue);border-radius:6px}.bn{grid-column:2;font-size:.85rem;font-weight:700}.bn small{font-weight:400;color:var(--g5)}
.askrow{border:1px solid var(--g2);border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:.93rem;background:#fff}.askrow small{display:block;color:var(--g5);font-size:.78rem}.askrow form{margin-top:8px;display:flex;gap:12px;align-items:center}
.cm.bot strong{display:block}

.timenote{background:var(--blue-l);border-left:4px solid var(--blue);border-radius:8px;padding:12px 16px;margin:1em 0;max-width:75ch}.timenote[hidden]{display:none}

.rate{color:var(--green-d)!important;font-weight:700!important}.oem{font-weight:800;color:var(--green-d);font-size:1.05rem}.oem small{font-size:.8rem;color:var(--g5);font-weight:500}
.cmp th small{font-weight:400;opacity:.9}.cmp td:first-child{font-weight:600}.cmp td{font-weight:400!important}.cmp tr.hl td{font-weight:800!important}

#scanbox{margin-top:12px}#reader{width:100%;max-width:420px;border-radius:12px;overflow:hidden;background:#000;margin-bottom:8px}#reader[hidden],#scanbox[hidden]{display:none}
.fform .form input,.fform .form select,.fform .form textarea{font-size:16px;padding:.8em}.fform .btn-lg{width:100%;justify-content:center}
@media (max-width:600px){.fform .pbtns .btn{flex:1 1 100%;justify-content:center}}

.contactbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.aphoto.small{max-height:120px;margin-top:6px}details.panel{border:0}
.erow{display:grid;grid-template-columns:1fr 70px 100px;gap:8px;margin-bottom:8px}.esttot{margin:4px 0}.esttot td{padding:6px 12px}.esttot td:last-child,.est td:last-child,.est th:last-child{text-align:right}
.est .sum td:first-child{text-align:right;color:var(--g7)}.estbox{border:2px solid var(--green);border-radius:var(--r);padding:16px 18px;margin:1em 0}.estbox h2{font-size:1.2rem}
body:has(.fform) .fab,body:has(.fform) .chat-open,body:has(.track) .fab{display:none!important}

.wordmark{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;color:var(--blue);text-decoration:none}.brand{text-decoration:none}.brand img{display:block}
