@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("plus-jakarta-sans.woff2") format("woff2")}
:root{--shop:url("../images/shop.jpg")}

/* ---------- Tokens: colours taken from the shop logo ---------- */
:root{
  --navy:#3F518F;
  --sky:#29AAE1;
  --deep:#1C2550;
  --ground:#E9EEF6;
  --sheet-edge:#D9E1EF;

  --surface:#FFFFFF;
  --tint:#EEF4FB;
  --ink:#1F2A55;
  --muted:#566189;
  --line:#D3DAEB;
  --dash:#B4BFDD;
  --head:#3A4B88;
  --link:#34478A;
  --focus:#3F518F;
  --star:#F2A900;
  --star-empty:var(--dash);

  --btn-bg:#3F518F;
  --btn-bg-hover:#33437A;
  --btn-ink:#FFFFFF;
  --btn-line:#3F518F;
  --btn-line-ink:#FFFFFF;

  --font:"Plus Jakarta Sans","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-tight:var(--font);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --surface:#151C42;
    --ground:#0D1230;
    --sheet-edge:transparent;
    --tint:#1D2658;
    --ink:#EDF0FA;
    --muted:#B0B9DA;
    --line:#303B70;
    --dash:#44508A;
    --head:#FFFFFF;
    --link:#7CCBF2;
    --focus:#7CCBF2;
    --btn-bg:#29AAE1;
    --btn-bg-hover:#5BC0EC;
    --btn-ink:#10183A;
    --btn-line:#EDF0FA;
    --btn-line-ink:#10183A;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --surface:#151C42;
    --ground:#0D1230;
    --sheet-edge:transparent;
  --tint:#1D2658;
  --ink:#EDF0FA;
  --muted:#B0B9DA;
  --line:#303B70;
  --dash:#44508A;
  --head:#FFFFFF;
  --link:#7CCBF2;
  --focus:#7CCBF2;
  --btn-bg:#29AAE1;
  --btn-bg-hover:#5BC0EC;
  --btn-ink:#10183A;
  --btn-line:#EDF0FA;
  --btn-line-ink:#10183A;
  color-scheme:dark;
}
/* Navy areas look the same in light and dark */
.on-navy{
  --star-empty:#6E7BB3;
  --ink:#FFFFFF;
  --muted:#D6DCF3;
  --head:#FFFFFF;
  --link:#FFFFFF;
  --focus:#FFFFFF;
  --btn-bg:#29AAE1;
  --btn-bg-hover:#5BC0EC;
  --btn-ink:#10183A;
  --btn-line:#FFFFFF;
  --btn-line-ink:#1C2550;
  color:var(--ink);
}
/* The white shop-sign header also stays the same in both */
.fascia{
  --ink:#1F2A55;
  --line:#D3DAEB;
  --focus:#3F518F;
  --btn-bg:#3F518F;
  --btn-bg-hover:#33437A;
  --btn-ink:#FFFFFF;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
html{
  background:var(--ground);
  scroll-padding-top:env(safe-area-inset-top,0px);
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--font);
  font-size:1rem;
  line-height:1.6;
}
/* A plain navy strip under a phone's status bar or an app's title bar, so nothing shows through behind it */
body::after{
  content:"";position:fixed;top:0;left:0;right:0;z-index:25;
  height:env(safe-area-inset-top,0px);background:var(--deep);
}
h1,h2,h3,p,ul,ol,dl,dd,table,figure{margin:0}
ul,ol{padding:0;list-style:none}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
[tabindex="-1"]:focus{outline:none}
.wrap{max-width:70rem;margin-inline:auto;padding-inline:clamp(.75rem,3.5vw,2.5rem)}

.display{
  font-family:var(--font);
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.022em;
  color:var(--head);
  text-wrap:balance;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:3rem;padding:.7rem 1.25rem;
  border-radius:10px;border:2px solid var(--btn-bg);
  background:var(--btn-bg);color:var(--btn-ink);
  font:inherit;font-weight:700;line-height:1.15;text-align:center;text-decoration:none;
  cursor:pointer;
}
.btn:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover)}
.btn--line{background:transparent;border-color:var(--btn-line);color:var(--btn-line)}
.btn--line:hover{background:var(--btn-line);border-color:var(--btn-line);color:var(--btn-line-ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

/* ---------- Header with the logo, then the tabs ---------- */
.fascia{background:#FFFFFF;color:var(--ink)}
.fascia__row{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;
  padding-block:.8rem;
}
.logo{display:block;margin-right:auto;line-height:0;text-decoration:none}
.logo__est{display:block;margin-top:.3rem;font-size:clamp(.9375rem,2.6vw,1.0625rem);font-weight:800;line-height:1.2;letter-spacing:.01em;color:#3F518F}
.logo img{height:clamp(3.25rem,9vw,4.75rem);width:auto}
.status{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.35rem .8rem;border:1px solid var(--line);border-radius:999px;
  font-size:.9375rem;font-weight:600;
}
a.status{color:var(--ink);text-decoration:underline;text-underline-offset:.18em;min-height:2.5rem}
a.status:hover{border-color:var(--btn-bg)}
.status__short{display:none}
/* Phones: a shorter label, so the hours link sits beside the logo and not on its own row */
@media (max-width:30rem){
  .status__long{display:none}
  .status__short{display:inline}
  .fascia__row{gap:.4rem .75rem;padding-block:.65rem}
  .logo__est{margin-top:.2rem}
}
/* Products: icon cards */
.stock{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.stock li{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.2rem;border-radius:14px;background:var(--tint)}
.stock strong{display:block;color:var(--head);font-weight:800;font-size:1.0625rem}
.stock span:not(.stock__icon){display:block;margin-top:.2rem;color:var(--muted);font-size:.9375rem;line-height:1.45}
.stock__icon{flex:none;display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:12px;background:#FFFFFF;color:#3F518F;box-shadow:0 2px 8px rgba(28,37,80,.08)}
.stock__icon svg{width:1.9rem;height:1.9rem}
.stock__icon .acc{stroke:#29AAE1}
@media (min-width:40rem){.stock{grid-template-columns:1fr 1fr}}
/* Find us: live map beside the page title */
.plate--map{display:grid;gap:1.25rem 2rem}
.minimap{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/10;min-height:13rem;background:#2B3777;border:2px solid rgba(255,255,255,.22)}
.minimap__wait{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;color:#C7CEEA;font-size:.9375rem;text-align:center;padding:1rem}
.minimap__wait svg{width:2.25rem;height:2.25rem;color:#29AAE1}
.minimap__wait span{color:#FFFFFF;font-weight:700}
.minimap__wait small{font-size:.8125rem}
.minimap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.minimap__open{position:absolute;right:.6rem;bottom:.6rem;z-index:1;padding:.4rem .75rem;border-radius:999px;background:#FFFFFF;color:#1C2550 !important;font-size:.875rem;font-weight:700;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.25)}
@media (min-width:48rem){.plate--map{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center}}
/* Social buttons in the header, on every page */
.social{display:flex;gap:.45rem;align-items:center}
.social__btn{display:block;width:2.75rem;height:2.75rem;line-height:0;border-radius:999px;transition:transform .15s ease}
.social__btn:hover{transform:translateY(-2px)}
.social__btn img{display:block;width:100%;height:100%}
@media (max-width:47.99rem){.social{margin-left:auto;margin-top:-.35rem}}
@media (max-width:30rem){.social__btn{width:2.5rem;height:2.5rem}.social{gap:.35rem}}
/* Tablets: the header is full, so the buttons float in the bottom corner instead */
@media (min-width:48rem) and (max-width:72rem){
  .social{position:fixed;right:1rem;bottom:1rem;z-index:25;flex-direction:column;gap:.5rem}
  .social__btn{width:3rem;height:3rem;filter:drop-shadow(0 6px 12px rgba(16,24,60,.3))}
}
.fascia__call{display:none}

.tabs{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:20;
  background:var(--navy);
}
.tabs__row{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none}
.tabs__row::-webkit-scrollbar{display:none}
.tab{
  flex:none;display:inline-flex;align-items:center;
  min-height:3rem;padding:.55rem 1.05rem;
  color:#FFFFFF;font-weight:600;text-decoration:none;white-space:nowrap;
}
.tab:hover{background:rgba(255,255,255,.12)}
.tab.is-current{font-weight:800;box-shadow:inset 0 -4px 0 var(--sky)}
button.tab{background:none;border:0;font:inherit;font-weight:600;cursor:pointer}
button.tab.is-current{font-weight:800}
.tab--menu svg{width:.7rem;height:.5rem;margin-left:.45rem}
.tab--menu[aria-expanded="true"] svg{transform:rotate(180deg)}
.menu{
  position:absolute;left:0;right:0;top:100%;
  background:var(--surface);border-bottom:1px solid var(--line);
  box-shadow:0 14px 26px rgba(16,24,58,.2);
}
.menu__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem;padding-block:.5rem .9rem}
.menu a{
  display:flex;align-items:center;min-height:2.9rem;
  color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line);
}
.menu a:hover{color:var(--link);text-decoration:underline}
.menu a[aria-current="page"]{color:var(--link);font-weight:800}
.menu__all{grid-column:1/-1}
@media (min-width:48rem){.menu__grid{grid-template-columns:repeat(3,1fr)}}
/* Phones and small tablets: Home, Repairs, Services and Find us stay in the bar. Products, About and Reviews sit under More. */
.tab--more{display:none}
@media (max-width:47.99rem){
  .tab--more{display:inline-flex}
  .tab--extra{display:none}
}
@media (min-width:48rem){#moreMenu{display:none}}
@media (max-width:30rem){
  .tabs .wrap{padding-inline:.4rem}
  .tabs .menu__grid{padding-inline:1rem}
  .tabs .tab{padding-inline:.55rem;font-size:.9375rem}
  .tab--menu svg{margin-left:.3rem}
  .tabs__row{justify-content:space-between;gap:0}
}
@media (max-width:24rem){.tabs .tab{padding-inline:.42rem}}
@media (max-width:22.5rem){.tabs .tab{padding-inline:.35rem;font-size:.875rem}}
@media (max-width:21rem){.tabs .tab{padding-inline:.2rem;font-size:.8125rem}}

.draftbar{background:#FFE9A8;color:#3B2E00;font-size:.875rem;font-weight:600;text-align:center;padding:.45rem 1rem}
.draft-note{display:inline-block;background:#FFE9A8;color:#3B2E00;font-size:.875rem;font-weight:600;padding:.3rem .7rem;border-radius:6px;margin-bottom:1rem}

/* ---------- Pages: white sheets and navy plates over the photo ---------- */
.page{padding-block:clamp(.9rem,3vw,1.75rem) clamp(2.5rem,6vw,4rem)}
.page > * + *{margin-top:clamp(.9rem,2.2vw,1.4rem)}
.sheet{
  background:var(--surface);color:var(--ink);
  border:1px solid var(--sheet-edge);
  border-radius:18px;padding:clamp(1.25rem,4vw,2.75rem);
}
.plate{
  background:var(--deep);
  border-radius:18px;padding:clamp(1.4rem,4.5vw,2.75rem);
}
.page-title{font-size:clamp(1.9rem,4.8vw,3rem)}
.lede{font-size:1.125rem;color:var(--muted);max-width:60ch;margin-top:1rem}
.lede--flush{margin-top:0;margin-bottom:1.75rem}
.section-title{font-size:clamp(1.5rem,3.2vw,2.1rem);margin-bottom:1.25rem}
.prose{max-width:62ch}
.prose p + p{margin-top:1.1rem}
.prose h2{font-size:1.3rem;margin:2rem 0 .5rem}
.prose h2:first-child{margin-top:0}
.prose h2.section-title{font-size:clamp(1.5rem,3.2vw,2.1rem);margin-bottom:1rem}

/* ---------- Home ---------- */
/* The gap above the headline is deliberate: it shows the shop front */
.hero__photo{
  aspect-ratio:594/336;border-radius:18px 18px 0 0;
  background:var(--shop) 30% 0%/cover no-repeat;
}
.hero .plate{border-radius:0 0 18px 18px}
.hero__title{font-size:clamp(2.05rem,5.4vw,3.4rem);line-height:1.08}
.hero .btn-row{margin-top:1.75rem}
.hero__rating{margin-top:1.1rem;font-size:.9375rem;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .7rem}
.stars{flex:none;width:6.25rem;height:1.25rem}
.hero__rating a{font-weight:700}
/* On wider screens the shop front shows through beside the headline instead */
@media (min-width:56rem){
  .hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,34rem)}
  .hero__photo{aspect-ratio:auto;min-height:100%;border-radius:18px 0 0 18px;background-position:12% center}
  .hero .plate{border-radius:0 18px 18px 0}
}

.triage{display:grid;gap:1.75rem}
.triage__title{font-size:clamp(1.5rem,3.2vw,2.1rem);margin-bottom:.5rem}
.field-label{display:block;font-size:.9375rem;font-weight:600;color:var(--muted);margin:1rem 0 .5rem}
.field{
  display:block;width:100%;max-width:26rem;min-height:3rem;padding:.55rem .85rem;
  border:1.5px solid var(--line);border-radius:10px;
  background:var(--surface);color:var(--ink);font:inherit;font-weight:600;
}
.field:hover{border-color:var(--btn-bg)}
.field + .field{margin-top:.5rem}
input.field::placeholder{color:var(--muted);font-weight:400}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{
  min-height:2.75rem;padding:.45rem 1rem;
  border:1.5px solid var(--line);border-radius:999px;
  background:var(--surface);color:var(--ink);
  font:inherit;font-weight:600;cursor:pointer;
}
.chip:hover{border-color:var(--btn-bg)}
.chip[aria-pressed="true"]{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-ink)}
@media (min-width:56rem){.triage{grid-template-columns:1fr 1fr;gap:3rem;align-items:start}}

.ticket__main{
  padding:1.25rem 1.4rem 1.35rem;border-radius:14px 14px 0 0;
  background:
    radial-gradient(circle at 0 100%,transparent 10px,var(--tint) 10.5px) left/51% 100% no-repeat,
    radial-gradient(circle at 100% 100%,transparent 10px,var(--tint) 10.5px) right/51% 100% no-repeat;
}
.ticket__stub{
  position:relative;padding:1.35rem 1.4rem 1.4rem;border-radius:0 0 14px 14px;
  background:
    radial-gradient(circle at 0 0,transparent 10px,var(--tint) 10.5px) left/51% 100% no-repeat,
    radial-gradient(circle at 100% 0,transparent 10px,var(--tint) 10.5px) right/51% 100% no-repeat;
}
.ticket__stub::before{
  content:"";position:absolute;top:-1px;left:18px;right:18px;
  border-top:2px dashed var(--dash);
}
.ticket__name{font-size:1.15rem;margin-bottom:.75rem}
.ticket dl > div{
  display:grid;grid-template-columns:7.25rem 1fr;gap:.75rem;
  padding:.5rem 0;border-top:1px solid var(--dash);
}
.ticket dt{color:var(--muted);font-size:.9375rem}
.ticket dd{font-weight:700}
.ticket__stub .btn{flex:1 1 12rem}
.ticket dd.is-new{animation:flash .35s ease-out}
@keyframes flash{from{opacity:.25}to{opacity:1}}

.promises{display:grid;gap:0 2.5rem}
.promises li{padding:1.1rem 0 1.4rem;border-top:3px solid var(--sky)}
.promises strong{
  display:block;font-family:var(--font-tight);font-weight:800;
  font-size:1.2rem;line-height:1.25;letter-spacing:-.015em;margin-bottom:.35rem;color:var(--head);
}
.promises span{color:var(--muted)}
@media (min-width:44rem){.promises{grid-template-columns:1fr 1fr}}
/* Home page: the four promises, each with an icon */
.promises--icons{gap:1.6rem 2.5rem}
.promises--icons li{display:grid;grid-template-columns:2.75rem 1fr;column-gap:1rem;row-gap:.2rem;align-items:start;align-content:start;padding:0;border-top:0}
.promises--icons .ico{grid-row:span 2;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--tint);color:var(--link)}
.promises--icons .ico svg{width:1.4rem;height:1.4rem}
.promises--icons strong{margin-bottom:0}
@media (min-width:62rem){
  .promises--icons{grid-template-columns:repeat(4,1fr);gap:2rem}
  .promises--icons li{grid-template-columns:1fr;row-gap:.55rem}
  .promises--icons .ico{grid-row:auto}
}

.where{display:grid;gap:1.5rem;padding:clamp(1.5rem,4vw,2.5rem);border-radius:18px;background:var(--navy)}
.where__address{font-size:clamp(1.5rem,3.6vw,2.2rem)}
.where p{color:var(--muted);margin-top:.6rem;max-width:48ch}
@media (min-width:56rem){.where{grid-template-columns:1.3fr auto;align-items:end}}

/* ---------- Repairs ---------- */
.devices li{display:grid;gap:.4rem 2rem;padding:1.4rem 0;border-top:1px solid var(--line)}
.devices li:first-child{padding-top:0;border-top:0}
.devices li:last-child{padding-bottom:0}
.devices h2{font-size:clamp(1.35rem,2.8vw,1.8rem)}
.devices p{max-width:52ch}
.devices .makes{font-weight:700}
.devices .faults{color:var(--muted)}
@media (min-width:44rem){.devices li{grid-template-columns:14rem 1fr;align-items:baseline}}

.steps{display:grid;gap:1.25rem;counter-reset:step}
.steps li{counter-increment:step;padding-top:1rem;border-top:3px solid var(--sky)}
.steps li::before{
  content:counter(step);display:block;
  font-family:var(--font-tight);font-weight:800;font-size:1.75rem;line-height:1;color:var(--head);
  margin-bottom:.5rem;
}
.steps strong{display:block;font-size:1.0625rem}
.steps span{color:var(--muted)}
.steps + .btn-row{margin-top:2rem}
@media (min-width:44rem){.steps{grid-template-columns:repeat(3,1fr);gap:2rem}}

.discount{
  padding:clamp(1.4rem,4vw,2.5rem);border-radius:18px;
  background:var(--sky);color:#10183A;
}
.discount h2{font-size:clamp(1.45rem,3.4vw,2.15rem);color:#10183A}
.discount p{margin-top:.5rem;max-width:50ch;font-weight:500}

/* ---------- About ---------- */
.about{display:grid;gap:2.5rem}
.timeline{border-top:3px solid var(--sky)}
.timeline li{display:grid;grid-template-columns:4.75rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.timeline strong{font-family:var(--font-tight);font-weight:800;font-size:1.15rem;line-height:1.3;color:var(--head)}
.see-work{padding-top:1.1rem;border-top:3px solid var(--sky)}
.see-work h2{font-size:1.3rem;margin-bottom:.6rem}
.see-work li + li{margin-top:.5rem}
.see-work a{font-weight:700}
.see-work span{display:block;color:var(--muted);font-size:.9375rem}
@media (min-width:56rem){.about{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:4rem;align-items:start}}

/* ---------- Find us ---------- */
.find{display:grid;gap:2.5rem}
.find h2{font-size:1.3rem;margin-bottom:.75rem}
.shopfront img{width:100%;border-radius:12px}
.shopfront figcaption{color:var(--muted);font-size:.9375rem;margin-top:.5rem}
.find address{font-style:normal;font-size:1.125rem;font-weight:700;line-height:1.4;margin-top:1.5rem}
.find .hint{color:var(--muted);margin-top:.6rem;max-width:42ch}
.find .btn-row{margin-top:1.4rem}
.contact-lines{margin-top:1.75rem}
.contact-lines li{padding:.7rem 0;border-top:1px solid var(--line)}
.contact-lines span{display:block;color:var(--muted);font-size:.9375rem}
.contact-lines a{font-weight:700;font-size:1.0625rem;overflow-wrap:anywhere}
.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:.7rem 0;border-top:1px solid var(--line);text-align:left;font-weight:400}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr.is-today th,.hours tr.is-today td{font-weight:800}
.hours tr.is-closed td{color:var(--muted)}
.hours-note{margin-top:.9rem;color:var(--muted)}
@media (min-width:56rem){.find{grid-template-columns:1fr 1fr;gap:4rem}}

/* ---------- Device pages, prices, reviews, WhatsApp ---------- */
.crumb{font-size:.9375rem;margin-bottom:.6rem}
.crumb{color:var(--muted)}
.crumb a{color:var(--muted);display:inline-block;padding-block:.35rem}
.cards{display:grid;gap:.9rem;grid-template-columns:1fr 1fr}
.card{
  display:block;padding:1.1rem 1.2rem;border-radius:14px;
  background:var(--tint);color:var(--ink);text-decoration:none;border:1.5px solid transparent;
}
.card:hover{border-color:var(--btn-bg)}
.card .ico{display:grid;place-items:center;width:2.75rem;height:2.75rem;margin:0 0 .8rem;border-radius:50%;background:var(--surface);color:var(--link)}
.card .ico svg{width:1.5rem;height:1.5rem}
/* Phones: one device per row, icon on the left, so the text isn't squeezed into a narrow column */
@media (max-width:30rem){
  .cards--devices{grid-template-columns:1fr;gap:.7rem}
  .cards--devices .card{display:grid;grid-template-columns:2.75rem 1fr;column-gap:.9rem;align-items:start}
  .cards--devices .ico{grid-row:span 3;margin:0}
  .cards--devices .card em{margin-top:.45rem}
}
.card strong{display:block;font-size:1.2rem;font-weight:800;line-height:1.25;letter-spacing:-.015em;color:var(--head)}
.card span{display:block;color:var(--muted);font-size:.9375rem;margin-top:.2rem}
.card em{display:block;font-style:normal;font-weight:700;color:var(--link);font-size:.9375rem;margin-top:.7rem}
@media (min-width:48rem){.cards{grid-template-columns:repeat(3,1fr)}.cards--4{grid-template-columns:repeat(4,1fr)}.cards--2{grid-template-columns:1fr 1fr}}

.pricelist li{display:flex;justify-content:space-between;align-items:baseline;gap:1.25rem;padding:.9rem 0;border-top:1px solid var(--line)}
.pricelist li:last-child{border-bottom:1px solid var(--line)}
.pricelist strong{display:block;font-weight:700}
.pricelist span{display:block;color:var(--muted);font-size:.9375rem}
.pricelist .price{flex:none;font-weight:800;font-size:1.2rem;color:var(--head);white-space:nowrap;font-variant-numeric:tabular-nums}
.pricelist .price small{font-weight:500;font-size:.8125rem;color:var(--muted);margin-right:.3rem}
.pricelist .price small.after{margin:0 0 0 .3rem}
.pricelist li{align-items:center}
.ask{
  flex:none;display:inline-flex;align-items:center;min-height:2.75rem;padding:.4rem .95rem;
  border:1.5px solid var(--btn-line);border-radius:999px;
  color:var(--btn-line);font-weight:700;font-size:.9375rem;text-decoration:none;white-space:nowrap;
}
.ask:hover{background:var(--btn-line);color:var(--btn-line-ink)}
.fineprint{color:var(--muted);font-size:.9375rem;margin:1rem 0 1.4rem;max-width:60ch}
a.chip{display:inline-flex;align-items:center;text-decoration:none}

.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  min-height:3.25rem;padding:.6rem 0;cursor:pointer;list-style:none;
  font-weight:700;color:var(--head);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;font-size:1.5rem;font-weight:500;line-height:1;color:var(--link)}
.faq details[open] summary::after{content:"\2212"}
.faq p{padding:0 2.5rem 1.1rem 0;max-width:62ch;color:var(--ink)}
.review-ask{margin-top:1.5rem;color:var(--muted)}
.awards{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.awards__badges{flex:none;display:flex;gap:.5rem;padding:.4rem .6rem;border-radius:14px;background:#FFFFFF}
.award{display:block;width:6.5rem;height:6.5rem;background:center/contain no-repeat}
.award--2022{background-image:var(--award22)}
.award--2023{background-image:var(--award23)}
.award--2024{background-image:var(--award24)}
.award--2025{background-image:var(--award25)}
.award--2026{background-image:var(--award26)}
.awards__badges--current .award{width:7.5rem;height:7.5rem}
.awards__badges--all{display:inline-flex;flex-wrap:wrap;gap:.4rem;max-width:100%}
.awards__badges--all .award{width:6.25rem;height:6.25rem}
@media (max-width:30rem){.awards__badges--all{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;padding:.4rem;width:100%;box-sizing:border-box}.awards__badges--all .award{width:100%;height:auto;aspect-ratio:1}}
.awards p{flex:1 1 16rem;max-width:52ch}
.awards strong{display:block;font-size:1.125rem;letter-spacing:-.01em;color:var(--head)}
.about__awards{grid-column:1/-1;padding-top:1.5rem;border-top:1px solid var(--line)}
.timeline li:last-child{border-bottom:0}
.about__awards h2{font-size:1.3rem;margin-bottom:.9rem}
.rating{font-size:1.0625rem;margin-bottom:1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .8rem}
.rating .stars{width:7.5rem;height:1.5rem}
.quotes{display:grid;gap:.9rem}
.quotes li{display:flex;flex-direction:column;padding:1.25rem 1.3rem 1.2rem;border-radius:14px;background:var(--tint)}
.quotes blockquote{margin:0 0 1.1rem;font-size:1.0625rem;font-weight:600;line-height:1.5;color:var(--head)}
.quotes .who{margin-top:auto;color:var(--muted);font-size:.9375rem;line-height:1.4}
.quotes .who strong{display:block;color:var(--ink);font-weight:700}
@media (min-width:48rem){.quotes{grid-template-columns:repeat(3,1fr)}}

.btn svg{width:1.15em;height:1.15em;margin-right:.45em;flex:none}
.btn--wa{background:#25D366;border-color:#25D366;color:#062B16}
.btn--wa:hover{background:#4AE285;border-color:#4AE285}
.fascia__wa{display:none}
.fascia__row .btn{min-height:2.75rem}
.call__short{display:none}
@media (min-width:48rem) and (max-width:60rem){.call__long{display:none}.call__short{display:inline}}
/* Tablets and small laptops: the shorter hours label keeps the header on one row */
@media (min-width:30.0625rem) and (max-width:64rem){.status__long{display:none}.status__short{display:inline}}
.ticket__more{display:inline-block;margin-top:.9rem;font-weight:700}
.ticket__alt{margin-top:.9rem;font-size:.9375rem;color:var(--muted)}

/* ---------- Footer and phone call bar ---------- */
.foot{background:var(--deep);color:#C7CEEA;padding-block:2.75rem 6.5rem;font-size:.9375rem}
.foot a{color:#FFFFFF;display:inline-block;padding-block:.22rem}
.foot__grid{display:grid;gap:2rem 2.5rem}
.foot__logo{padding:.5rem .7rem !important;border-radius:12px;background:#FFFFFF;line-height:0}
.foot__logo img{height:3rem;width:auto}
.foot__brand p{margin-top:.9rem;max-width:24ch}
.foot h2{margin-bottom:.5rem;font-size:1rem;font-weight:800;letter-spacing:-.005em;color:#FFFFFF}
.foot h2.foot__gap{margin-top:1.4rem}
.foot__hours{margin-top:.9rem}
.foot__pages{display:grid;grid-template-columns:1fr 1fr;column-gap:1.5rem;max-width:18rem}
.foot__social{display:flex;flex-wrap:wrap;gap:0 1.25rem}
.foot__email{overflow-wrap:anywhere}
.foot__base{margin-top:2.25rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.18)}
@media (min-width:40rem){.foot__grid{grid-template-columns:1fr 1fr}}
@media (min-width:62rem){
  .foot__grid{grid-template-columns:1.25fr .9fr 1.25fr 1.25fr}
  .foot__pages{grid-template-columns:1fr}
}
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  display:flex;gap:.6rem;
  padding:.6rem clamp(.75rem,3.5vw,2.5rem) calc(.6rem + env(safe-area-inset-bottom,0px));
  background:var(--deep);border-top:1px solid rgba(255,255,255,.2);
}
.callbar .btn{flex:1;min-height:2.9rem;padding-inline:.4rem;font-size:.9375rem}
@media (min-width:48rem){
  .fascia__call{display:inline-flex}
  .callbar{display:none}
  .fascia__wa{display:inline-flex}
  .foot{padding-bottom:2rem}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}

/* ---------- Reviews page ---------- */
.revsum{display:grid;gap:1.5rem;align-items:center;margin-bottom:1.75rem}
@media (min-width:48rem){.revsum{grid-template-columns:auto minmax(0,30rem);gap:3.5rem}}
.revsum__score{display:flex;flex-direction:column;gap:.4rem}
.revsum__score strong{font-size:3.5rem;line-height:1;font-weight:800;color:var(--head)}
.revsum__score .stars{width:8.75rem;height:1.75rem}
.revsum__score span{color:var(--muted);font-size:.9375rem}
.revbars{display:grid;gap:.5rem}
.revbars li{display:grid;grid-template-columns:4.25rem minmax(0,1fr) 2.25rem;align-items:center;gap:.75rem;font-size:.9375rem}
.revbars li>span:last-child{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.revbars__track{display:block;height:.6rem;border-radius:999px;background:var(--tint);overflow:hidden}
.revbars__track span{display:block;height:100%;border-radius:999px;background:var(--star)}
.revmeta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .7rem;margin-bottom:.75rem;color:var(--muted);font-size:.875rem}
.revmeta .stars{width:5.5rem;height:1.1rem}
.quotes--reviews blockquote{white-space:pre-line;font-size:1rem}
.reply{margin-top:1rem;padding:.85rem 1rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:.9375rem;line-height:1.5}
.reply strong{display:block;margin-bottom:.3rem;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.reply p{white-space:pre-line}
@media (min-width:48rem){.quotes--wide{grid-template-columns:1fr}}

:root{--award22:url("../images/award22.webp");--award23:url("../images/award23.webp");--award24:url("../images/award24.webp");--award25:url("../images/award25.webp");--award26:url("../images/award26.webp")}