:root{
  --red:#c8102e; --red-dark:#a00d24; --red-soft:#fdecef;
  --ink:#24262b; --ink-2:#4a4e57; --muted:#6b7079;
  --green:#2f8f57; --green-soft:#e8f5ed;
  --line:#e4e2dd; --ground:#f7f5f1; --card:#ffffff; --dark:#1f2126;
  --radius:14px; --shadow:0 1px 2px rgba(20,20,30,.06),0 6px 20px rgba(20,20,30,.06);
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:18px;line-height:1.6;color:var(--ink);background:#fff;overflow-wrap:break-word}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--red-dark)}
a:hover{color:var(--red)}
h1,h2,h3,h4{font-family:Montserrat,system-ui,sans-serif;line-height:1.2;margin:0 0 .5em;color:var(--ink);letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.6vw,3.3rem);font-weight:800}
h2{font-size:clamp(1.55rem,3vw,2.2rem);font-weight:800}
h3,h2.h3{font-size:1.2rem;font-weight:700}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
p{margin:0 0 1em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:100}
.skip:focus{left:8px}

/* ---------- header ---------- */
.topbar{background:var(--dark);color:#d9dbe0;font-size:.85rem}
.tb-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.tb-cta{display:flex;align-items:center;gap:8px}
.tbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid #454951;border-radius:999px;padding:5px 13px;
  font-family:Montserrat,sans-serif;font-weight:700;font-size:.82rem;color:#fff;text-decoration:none;white-space:nowrap}
.tbtn:hover{border-color:#fff;color:#fff}
.tbtn svg{width:15px;height:15px}
.tbtn.book{background:var(--red);border-color:var(--red)}
.tbtn.book:hover{background:var(--red-dark);border-color:var(--red-dark)}
.topbar .wrap{display:flex;gap:18px;justify-content:space-between;align-items:center;padding-top:6px;padding-bottom:6px;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none;font-weight:600}
.topbar .tb-hide{display:inline}
header.site{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:132px}
.brand{display:flex;align-items:center;text-decoration:none;flex:none}
.brand img{height:120px;width:auto}
.topbar .tb-links{display:flex;gap:16px;flex-wrap:wrap}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:6px;align-items:center}
nav.main a{display:block;position:relative;white-space:nowrap;padding:12px 14px;text-decoration:none;color:var(--ink);font-family:Montserrat,sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:-.005em}
nav.main > ul > li > a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:3px;border-radius:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
nav.main > ul > li > a:hover::after,nav.main > ul > li > a[aria-current=page]::after{transform:scaleX(1)}
nav.main a:hover,nav.main a[aria-current=page]{color:var(--red-dark)}
nav.main .sub a:hover,nav.main .sub a[aria-current=page]{background:var(--ground)}
nav.main .sub a{border-radius:8px}
nav.main a.nav-lockers{color:var(--red-dark)}
nav.main > ul > li + li{border-left:1px solid var(--line)}
nav.main li{position:relative}
nav.main .caret{font-size:.7em;margin-left:5px;opacity:.7}
nav.main .sub{position:absolute;left:0;top:100%;margin-top:0;min-width:216px;background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:0 14px 30px rgba(20,20,30,.12);padding:8px;display:none;flex-direction:column;gap:2px;z-index:60}
nav.main .has-sub:hover .sub,nav.main .has-sub:focus-within .sub{display:flex}
nav.main .sub a{font-weight:600;font-size:.95rem;padding:9px 12px;text-align:left}
nav.main .sub{align-items:stretch;text-align:left}
.hdr-cta{display:flex;gap:8px;align-items:center;margin-left:8px}
header.site nav.main{margin-left:auto}
.menu-toggle{display:none}
.menu-btn{display:none;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-weight:700;font-family:Montserrat,sans-serif;font-size:.9rem;background:#fff}

/* ---------- buttons ---------- */
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:999px;font-weight:700;font-family:Montserrat,sans-serif;font-size:.98rem;text-decoration:none;border:2px solid transparent;cursor:pointer;line-height:1.2;text-align:center}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark);color:#fff}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000;color:#fff}
.btn-sm{padding:9px 16px;font-size:.9rem}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}

/* ---------- hero ---------- */
.hero{background:var(--ground);border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding-top:64px;padding-bottom:64px}
.eyebrow{display:inline-block;font-family:Montserrat,sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);background:var(--green-soft);padding:6px 12px;border-radius:999px;margin-bottom:16px}
.eyebrow.red{color:var(--red-dark);background:var(--red-soft)}
.lead{font-size:1.2rem;color:var(--ink-2);max-width:40em}
.hero-art{background:#fff;border-radius:22px;box-shadow:var(--shadow);padding:24px;border:1px solid var(--line)}
.hero-art.has-photo{padding:0;overflow:hidden;position:relative;background:#f3f1ee}
.locker-photo{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;object-position:center 30%}
.locker-stamp{position:absolute;top:10px;right:10px;width:118px;height:118px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}
@media (max-width:640px){.locker-stamp{width:92px;height:92px}}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;font-size:.95rem;color:var(--ink-2);padding:0;list-style:none}
.trust li::before{content:"\2713";color:var(--green);font-weight:800;margin-right:6px}
.page-hero .wrap{grid-template-columns:1fr;padding-top:48px;padding-bottom:40px}
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:12px}
.crumbs a{color:var(--muted)}

/* ---------- sections ---------- */
section.band{padding:72px 0}
section.band.alt{background:var(--ground);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
section.band.dark{background:var(--dark);color:#e7e8eb}
section.band.dark h2,section.band.dark h3{color:#fff}
.sec-head{max-width:46em;margin-bottom:34px}
.sec-head p{color:var(--ink-2);font-size:1.1rem}
.dark .sec-head p{color:#c9ccd3}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);min-width:0}
.card h3{margin-bottom:.35em}
.card p:last-child{margin-bottom:0}
.card.link{text-decoration:none;color:inherit;display:block;transition:transform .15s,border-color .15s}
.card.link:hover{transform:translateY(-2px);border-color:#cfcac2}
.card .ico{width:44px;height:44px;border-radius:12px;background:var(--red-soft);color:var(--red-dark);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.card .ico svg{width:24px;height:24px}
.card .more{font-weight:700;color:var(--red-dark);font-size:.95rem}
.card .price{font-family:Montserrat,sans-serif;font-weight:700;color:var(--ink);font-size:.95rem;margin-bottom:.4em}

/* option cards (three ways to get it to us) */
.ways{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px}
.way{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow);min-width:0}
.way.feature{border:2px solid var(--red);background:linear-gradient(180deg,#fff 0%,#fff7f8 100%)}
.way .tag{position:absolute;top:-13px;left:24px;background:var(--red);color:#fff;font-family:Montserrat,sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.way h3{font-size:1.35rem}
.way ul{padding-left:1.1em;margin:0 0 1em;color:var(--ink-2)}
.way li{margin-bottom:.3em}

/* steps */
.steps{counter-reset:s;display:grid;gap:18px;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;position:relative;min-width:0}
.steps li::before{content:counter(s);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-family:Montserrat,sans-serif;font-weight:800;margin-bottom:12px}
.steps li b{display:block;font-family:Montserrat,sans-serif;margin-bottom:4px}
.dark .steps li{background:#2a2d33;border-color:#3a3d44;color:#dfe1e5}
.dark .steps li::before{background:var(--red)}

/* status banner for lockers */
.status{display:flex;gap:14px;align-items:flex-start;background:#fff8e6;border:1px solid #f1dfae;border-radius:var(--radius);padding:16px 18px;color:#5e4a12;margin:0 0 24px}
.status b{color:#3f3108}
.status .dot{flex:none;width:12px;height:12px;border-radius:50%;background:#e0a800;margin-top:7px}
.status.live{background:var(--green-soft);border-color:#bfe3cc;color:#1f5a37}
.status.live .dot{background:var(--green)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split>*{min-width:0}
.split.top{align-items:start}
.checks{list-style:none;padding:0;margin:0 0 1em}
.checks li{padding-left:30px;position:relative;margin-bottom:.55em}
.checks li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:var(--green-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%232f8f57' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.dark .checks li::before{background-color:#23422f}

/* prose */
.prose{max-width:46em}
.prose h2{margin-top:1.4em}
.prose h3{margin-top:1.2em}
.prose ul{padding-left:1.2em}
.prose li{margin-bottom:.35em}

/* tables */
.tbl-wrap{min-width:0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
table.prices{width:100%;border-collapse:collapse;min-width:0}
table.prices th,table.prices td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
table.prices th{font-family:Montserrat,sans-serif;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--ground)}
table.prices tr:last-child td{border-bottom:0}
table.prices td.p{font-family:Montserrat,sans-serif;font-weight:700;white-space:nowrap}

/* areas */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.chips a,.chips span{display:inline-block;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem}
.chips a:hover{border-color:var(--red);color:var(--red-dark)}

/* FAQ */
details.faq{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px}
details.faq summary{cursor:pointer;padding:16px 18px;font-weight:700;font-family:Montserrat,sans-serif;font-size:1rem;list-style:none;display:flex;justify-content:space-between;gap:12px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--red)}
details.faq[open] summary::after{content:"\2013"}
details.faq .a{padding:0 18px 16px;color:var(--ink-2)}

/* forms */
form.form{display:grid;gap:14px;grid-template-columns:1fr 1fr}
form.form .full{grid-column:1/-1}
form.form label{display:block;font-weight:700;font-size:.92rem;margin-bottom:5px}
form.form input:disabled,form.form select:disabled{background:#f2f0ec;color:var(--muted)}
form.form input,form.form select,form.form textarea{width:100%;font:inherit;font-size:1rem;padding:12px 14px;border:1px solid #cfcac2;border-radius:10px;background:#fff;color:var(--ink)}
form.form textarea{min-height:120px;resize:vertical}
form.form input:focus,form.form select:focus,form.form textarea:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.pickup-only .grid{display:grid}
.radio-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.radio-cards label{display:flex;gap:10px;align-items:flex-start;border:1px solid #cfcac2;border-radius:12px;padding:12px;font-weight:600;cursor:pointer;margin:0}
.radio-cards input{width:auto;margin-top:5px}
.radio-cards small{display:block;font-weight:400;color:var(--muted)}
.hp{position:absolute!important;left:-5000px!important}
.note{font-size:.9rem;color:var(--muted)}

/* rating / cta band */
.rating{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.stars{color:#f5a623;font-size:1.4rem;letter-spacing:2px}
.cta-band{background:var(--red);color:#fff;border-radius:22px;padding:40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin:0 0 .2em}
.cta-band p{margin:0;color:#ffe3e7}
.cta-band .btn-ghost{border-color:#fff}

/* footer */
footer.site{background:var(--dark);color:#b9bcc4;font-size:.95rem;padding:56px 0 28px}
footer.site h4,footer.site h2.fh{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
footer.site a{color:#dfe1e6;text-decoration:none}
footer.site a:hover{color:#fff;text-decoration:underline}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site li{margin-bottom:6px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.foot-base{border-top:1px solid #353840;margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.85rem}
.foot-brand b{color:#fff}

/* sticky mobile call bar */
.callbar{display:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .tb-left .tb-hide:first-child{display:none}
}
@media (max-width:1080px){
  nav.main a{padding:10px 7px;font-size:.93rem}
}
@media (max-width:960px){
  .hero .wrap,.split{grid-template-columns:1fr;gap:32px}
  .ways{grid-template-columns:1fr}
  .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid{grid-template-columns:1fr 1fr}
  .menu-btn{display:inline-block}
  nav.main{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);display:none;box-shadow:0 12px 24px rgba(0,0,0,.08);
    max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  nav.main ul{padding-bottom:28px}
  nav.main ul{flex-direction:column;align-items:stretch;padding:8px 20px 16px}
  nav.main a{padding:12px}
  nav.main > ul > li + li{border-left:0;border-top:1px solid var(--line)}
  nav.main > ul > li > a::after{display:none}
  nav.main .sub{position:static;display:none;box-shadow:none;border:0;padding:0 0 6px 14px}
  nav.main .has-sub.open .sub{display:flex}
  nav.main .caret{display:inline-block;padding:6px 10px;margin-left:8px;border:1px solid var(--line);border-radius:8px;opacity:1}
  nav.main .has-sub.open .caret{background:var(--ground)}
  .menu-toggle:checked ~ nav.main{display:block}
  header.site .wrap{position:relative}
}
@media (max-width:640px){
  body{font-size:17px;padding-bottom:64px}
  section.band{padding:52px 0}
  .hero .wrap{padding-top:40px;padding-bottom:40px}
  .g2,.g3,.g4,.steps{grid-template-columns:1fr}
  .pickup-only .grid{display:grid}
.radio-cards{grid-template-columns:1fr}
  form.form{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .topbar .tb-hide{display:none}
  .cta-band{padding:28px}
  .way{padding:24px}
  .callbar{display:grid;grid-template-columns:1fr 1fr 1.1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 16px rgba(0,0,0,.08)}
  .callbar a{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 8px;text-align:center;font-weight:700;font-family:Montserrat,sans-serif;text-decoration:none;font-size:.95rem;color:var(--ink);border-right:1px solid var(--line)}
  .callbar a svg{width:18px;height:18px;flex:none}
  .callbar a.cb-book{background:var(--red);color:#fff;border-right:0}
  .tbl-wrap table.prices{font-size:.95rem}
  table.prices th,table.prices td{padding:12px}
}


/* ---------- opening special ---------- */
.special{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:center;border:2px solid var(--red);background:linear-gradient(180deg,#fff 0%,#fff6f7 100%);border-radius:18px;padding:28px;box-shadow:var(--shadow)}
.special .sp-badge{display:inline-block;background:var(--red);color:#fff;font-family:Montserrat,sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;margin-bottom:12px}
.special h3,.special .sp-title{font-family:Montserrat,sans-serif;font-weight:800;line-height:1.15;font-size:clamp(1.3rem,2.4vw,1.9rem);margin-bottom:.4em}
.special p{margin-bottom:.6em}
.special p:last-child{margin-bottom:0}
.sp-sum{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.sp-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.98rem}
.sp-row b{font-family:Montserrat,sans-serif}
.sp-row.total{border-bottom:1px solid var(--line);border-top:0;margin:0 0 2px;padding-bottom:12px;font-size:1.2rem}
.sp-row.total b{color:var(--red-dark)}
.sp-sum .note{margin:8px 0 0}
.special.compact{display:block;padding:14px 18px;border-width:1px;border-radius:12px;font-size:1rem;margin-bottom:24px;box-shadow:none}
.special.compact b{color:var(--red-dark)}
.special.compact a{font-weight:700;white-space:nowrap}

/* ---------- google reviews carousel ---------- */
.revs{padding:44px 0 52px}
.rev-head{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:22px}
.rev-tools{display:flex;gap:8px;align-items:center}
.rev-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);
  font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.rev-btn:hover{border-color:var(--red);color:var(--red-dark)}
.rev-btn:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.rev-wrap{position:relative}
.rev-loop{display:flex;gap:18px}
.rev-track{scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
.rev-track{display:flex;gap:18px;overflow-x:auto;padding:4px 2px 14px;
  scrollbar-width:thin;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.rev-track:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:var(--radius)}
.rev{flex:0 0 330px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;margin:0;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.rev blockquote{margin:0;font-size:.97rem;color:var(--ink-2);line-height:1.55}
.rev figcaption{font-family:Montserrat,sans-serif;font-weight:700;font-size:.9rem;margin-top:auto}
.rev figcaption span{font-weight:400;color:var(--muted)}

/* ---------- service area map ---------- */
.map-band{border-top:1px solid var(--line)}
.map-box{width:100%;min-height:440px;border-radius:18px;border:1px solid var(--line);background:var(--ground);overflow:hidden}
.map-drawn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 12px 14px;
  background:radial-gradient(circle at 50% 46%,#fff 0 58%,var(--ground) 100%)}
.ring-svg{display:block;width:100%;max-width:660px;height:auto;font-family:Montserrat,sans-serif}
.ring-svg .rg{fill:rgba(200,16,46,.05);stroke:var(--red);stroke-width:2;stroke-dasharray:6 5}
.ring-svg .cp text{font-size:13px;font-weight:700;fill:var(--muted);text-anchor:middle}
.ring-svg .ld line{stroke:#b9bcc3;stroke-width:1}
.ring-svg .pn circle{fill:var(--red)}
.ring-svg .lb rect{fill:rgba(255,255,255,.96);stroke:var(--line)}
.ring-svg .lb text{font-size:13px;font-weight:600;fill:var(--ink-2);text-anchor:middle}
.ring-svg .lb a:hover rect{stroke:var(--red)}
.ring-svg .hub{fill:var(--red)}
.ring-svg .hub-t{font-size:14px;font-weight:700;fill:#fff;text-anchor:middle}
.ring-svg .hub-s{font-size:11px;fill:#fff;opacity:.92;text-anchor:middle}
.map-list{display:none}
.map-note{margin:12px 0 0;font-size:.82rem;color:var(--muted);text-align:center}

.badge-247{display:flex;align-items:flex-start;gap:14px;background:var(--green-soft);border:1px solid #bfe3cc;
  border-radius:var(--radius);padding:16px 18px;margin-top:20px;color:#1f5a37;max-width:46em}
.badge-247 svg{width:30px;height:30px;flex:none;color:var(--green);margin-top:2px}
.badge-247 b{display:block;font-family:Montserrat,sans-serif;font-size:1rem}
.badge-247 span{font-size:.93rem;opacity:.9}
.dark .badge-247{background:#1f3a2b;border-color:#2f5a42;color:#dbeee3}
.dark .badge-247 svg{color:#6ed39b}

/* ---------- workshop photos ---------- */
.service-shot{margin:0 0 24px}
.service-shot img{aspect-ratio:16/10}
.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.shot{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.shot img{width:100%;aspect-ratio:4/3;object-fit:cover;max-width:100%}
.shot figcaption{padding:12px 14px;font-size:.9rem;color:var(--muted)}

/* home page photo strip: small photos that drift sideways */
.photo-strip,.strip-loop{display:flex;gap:14px}
.photo-strip{overflow-x:auto;scrollbar-width:none;padding:4px 2px 10px}
.photo-strip::-webkit-scrollbar{display:none}
.photo-strip:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:var(--radius)}
.strip-shot{flex:0 0 240px;margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.strip-shot img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.strip-shot figcaption{padding:9px 12px;font-size:.82rem;color:var(--muted);line-height:1.35}
@media (max-width:640px){.strip-shot{flex-basis:200px}}

/* business page: MSP division block with the Managed IT Helpdesk logo */
.msp-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:center}
.msp-logo{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 30px;box-shadow:var(--shadow)}
.msp-logo img{display:block;width:100%;height:auto}
@media (max-width:860px){.msp-grid{grid-template-columns:1fr;gap:24px}.msp-logo{max-width:420px}}

.legal h2{font-size:1.15rem;margin-top:1.8em}
.legal .toc{margin:22px 0 10px}
.legal .toc ul{margin:0;padding-left:1.1em;columns:2;column-gap:28px;list-style:none}
.legal .toc li{margin-bottom:5px;font-size:.92rem}
.legal .toc ul{padding-left:0}
@media (max-width:640px){.legal .toc ul{columns:1}}

/* narrow phones (360px and under): keep the header inside the screen */
@media (max-width:420px){
  .wrap{padding-left:14px;padding-right:14px}
  header.site .wrap{gap:8px;min-height:88px}
  .brand img{width:min(132px,36vw)}
  .hdr-cta{margin-left:0;gap:6px}
  .hdr-cta .btn{padding:9px 12px;font-size:.84rem}
  .menu-btn{padding:7px 10px;font-size:.84rem}
  .topbar .wrap{font-size:.78rem}
}
html,body{max-width:100%}

/* service and business pages: the article fills the main column, with a sidebar beside it */
.split.article{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:46px}
.split.article .side{align-self:start;position:sticky;top:150px}
.split.article .side .shot{margin-bottom:22px}
.split.article .prose h2{margin-top:1.6em}
.split.article .prose h2:first-child{margin-top:0}
@media (max-width:960px){.split.article{grid-template-columns:1fr;gap:28px}.split.article .side{position:static}}

/* one-at-a-time photo carousel (service page sidebars) */
.side-car{margin-bottom:22px}
.car-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.car-track::-webkit-scrollbar{display:none}
.car-track:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.car-shot{flex:0 0 100%;margin:0;scroll-snap-align:start}
.car-shot img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.car-shot figcaption{padding:10px 14px;font-size:.86rem;color:var(--muted);line-height:1.4;min-height:3.2em}
.area-car{max-width:520px;margin-top:22px}
.car-dots{display:flex;gap:6px;justify-content:center;margin-top:10px}
.car-dot{width:8px;height:8px;padding:0;border-radius:50%;border:0;background:#cfd2d8;cursor:pointer}
.car-dot.on{background:var(--red)}

/* site search */
.hdr-search{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 12px;background:#fff}
.hdr-search input{border:0;outline:0;font:inherit;font-size:.9rem;width:170px;background:transparent}
.hdr-search button{border:0;background:var(--red);color:#fff;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.hdr-search svg{width:17px;height:17px}
@media (max-width:1150px){.hdr-search{display:none}}
@media (min-width:1151px){nav.main li a.only-small{display:none}}
@media (max-width:1150px){nav.main li a.only-small{display:block}}
.search-big{display:flex;gap:10px;margin-bottom:18px}
.search-big input{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font:inherit}
.search-results{list-style:none;margin:18px 0 0;padding:0}
.search-results li{border-top:1px solid var(--line)}
.search-results a{display:block;padding:14px 2px;text-decoration:none}
.search-results b{display:block;font-family:Montserrat,sans-serif;color:var(--red-dark);margin-bottom:3px}
.search-results span{color:var(--ink-2);font-size:.94rem}
.search-results a:hover b{text-decoration:underline}

/* ---------- footer additions ---------- */
.foot-logo{height:auto;width:186px;max-width:100%;background:#fff;padding:12px 14px;border-radius:12px;margin-bottom:16px}
.foot-contacts{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 22px}
.foot-contacts a{display:inline-flex;align-items:center;gap:7px;border:1px solid #3a3d44;border-radius:999px;padding:8px 14px;font-size:.88rem;font-weight:600;text-decoration:none}
.foot-contacts a:hover{border-color:#fff;text-decoration:none}
.foot-contacts svg{width:17px;height:17px}

@media (max-width:960px){
  .special{grid-template-columns:1fr;gap:20px}
  .shots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .map-box{min-height:320px}
}
@media (max-width:640px){
  .brand img{height:auto;width:min(150px,38vw)}
  header.site .wrap{min-height:100px;gap:10px}
  .tb-cta{display:none}
  .topbar .wrap{justify-content:flex-start}
  .shots{grid-template-columns:1fr}
  .rev{flex-basis:80vw}
  .rev-head{gap:12px}
  .hdr-cta .btn-ghost{display:none}
  .ring-svg{display:none}
  .map-drawn{padding:20px 16px;display:block}
  .map-box{min-height:0}
  .map-list{display:block;width:100%}
  .ml-centre{display:inline-flex;flex-direction:column;background:var(--red);color:#fff;border-radius:10px;
    padding:8px 14px;font-family:Montserrat,sans-serif;font-weight:700;font-size:1rem;margin-bottom:16px;line-height:1.2}
  .ml-centre span{font-weight:400;font-size:.75rem;opacity:.92}
  .map-list ul{list-style:none;margin:0;padding:0}
  .map-list li{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:.92rem}
  .map-list li b{font-family:Montserrat,sans-serif;color:var(--red-dark);font-size:.8rem;letter-spacing:.04em}
  .map-list li span{color:var(--ink-2)}
  .map-box{min-height:280px}
  .special{padding:20px}
  .special.compact{font-size:.95rem}
}
