/*
Theme Name: Berkshire Heat
Theme URI: https://berkshireheat.co.uk
Author: Berkshire Heat
Description: Bespoke theme for Berkshire Heat Ltd. Domestic and commercial mechanical, gas and compliance specialists serving Reading, Berkshire and the surrounding counties.
Version: 1.6
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: berkshire-heat
*/

/* self-hosted variable fonts (SIL OFL, via @fontsource) */
@font-face{
  font-family:'Bricolage Grotesque';
  src:url('fonts/bricolage.woff2') format('woff2-variations');
  font-weight:200 800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Instrument Sans';
  src:url('fonts/instrument.woff2') format('woff2-variations');
  font-weight:400 700; font-style:normal; font-display:swap;
}

/* ============================================================
   BERKSHIRE HEAT · MODERN BUILD - design system v2
   Anchored to the live brand: sampled green #4FB55F, the site's
   own gradient (#5FBF6A→#91D084), charcoal pill counterpoint.
   Type: Bricolage Grotesque (display) + Instrument Sans (UI).
   ============================================================ */
:root{
  --green:      #4FB55F;
  --green-deep: #2B7F3E;
  --grad-a:     #5FBF6A;
  --grad-b:     #91D084;
  --charcoal:   #3B3B3B;
  --ink:        #26302A;
  --body:       #5A6660;
  --paper:      #FCFDFC;
  --wash:       #F1F8F2;
  --line:       #E2EDE4;
  --font-display:"Bricolage Grotesque","Segoe UI",sans-serif;
  --font-ui:"Instrument Sans","Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.7,.25,1);
  --radius:18px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--paper); color:var(--body);
  font-family:var(--font-ui); font-size:1.03rem; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ text-decoration:none; color:var(--green-deep); }
:focus-visible{ outline:2px solid var(--green); outline-offset:3px; border-radius:4px; }
.wrap{ width:min(1150px, 100% - 2.75rem); margin-inline:auto; }
.section{ padding:5rem 0; }
.section--tight{ padding:3.4rem 0; }
.section--wash{ background:var(--wash); }

body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(900px 520px at 88% -6%, rgba(79,181,95,.12), transparent 60%),
    radial-gradient(760px 480px at -6% 108%, rgba(145,208,132,.16), transparent 62%);
}

h1,h2,h3{ font-family:var(--font-display); color:var(--ink); letter-spacing:-.015em; line-height:1.12; }
h1{ font-weight:700; font-size:clamp(2.4rem,5.2vw,3.8rem); }
h2{ font-weight:700; font-size:clamp(1.7rem,3.4vw,2.4rem); }
h3{ font-weight:600; font-size:1.2rem; }
.mark{
  background:linear-gradient(90deg,var(--grad-a),var(--grad-b));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.76rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--green-deep);
}
.eyebrow::before{ content:""; width:24px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,var(--grad-a),var(--grad-b)); }
.section-head{ max-width:640px; margin-bottom:2.6rem; }
.section-head h2{ margin:.8rem 0 .7rem; }
.section-head.center{ margin-inline:auto; text-align:center; }
.lede{ font-size:1.1rem; }
.lede strong, p strong{ color:var(--ink); font-weight:600; }

/* ---------- buttons & tags ---------- */
.btn{
  font:600 .95rem var(--font-ui); border-radius:999px; padding:.9rem 1.65rem;
  display:inline-flex; align-items:center; gap:.5rem; cursor:pointer; border:0;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.btn-green{
  color:#fff; background:linear-gradient(135deg,var(--grad-a),var(--green));
  box-shadow:0 10px 24px rgba(79,181,95,.32), inset 0 1px 0 rgba(255,255,255,.3);
}
.btn-green:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(79,181,95,.4), inset 0 1px 0 rgba(255,255,255,.3); }
.btn-ghost{ color:var(--ink); border:1.5px solid var(--line); background:#fff; }
.btn-ghost:hover{ border-color:var(--green); transform:translateY(-2px); }
.btn-charcoal{ color:#fff; background:var(--charcoal); }
.btn-charcoal:hover{ background:#2c2c2c; transform:translateY(-2px); color:#fff; }
.offer-tag{
  display:inline-flex; align-items:center; gap:.7rem;
  border:1.5px dashed rgba(79,181,95,.5); border-radius:12px;
  background:var(--wash); padding:.55rem 1rem .55rem .65rem;
  font-size:.9rem; color:var(--ink);
}
.offer-tag b{
  font-family:var(--font-display); font-weight:700; font-size:.98rem; color:#fff;
  background:linear-gradient(135deg,var(--grad-a),var(--green));
  border-radius:8px; padding:.2rem .55rem;
}

/* ---------- top strip & header ---------- */
.topbar{
  background:linear-gradient(90deg,var(--grad-a),var(--grad-b));
  color:#fff; font-size:.82rem; font-weight:500;
}
.topbar .wrap{ display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; }
.topbar a{ color:#fff; font-weight:600; }
.topbar a:hover{ opacity:.85; }

.site-header{
  background:rgba(252,253,252,.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40;
}
.site-header .wrap{ display:flex; align-items:center; gap:1.6rem; padding:.8rem 0; }
.logo{ display:flex; align-items:center; gap:.7rem; margin-right:auto; }
.logo-badge{
  width:46px; height:46px; border-radius:50%; flex:none;
  background:radial-gradient(circle at 32% 28%,var(--grad-b),var(--green) 70%);
  color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(79,181,95,.35), inset 0 1px 0 rgba(255,255,255,.4);
  line-height:1; text-align:center;
}
.logo-badge small{ font-size:.42rem; font-weight:500; }
.logo-badge strong{ font-family:var(--font-display); font-size:.72rem; font-weight:700; letter-spacing:.12em; }
.logo-name{ font-family:var(--font-display); font-weight:600; font-size:1.12rem; color:var(--ink); }
.nav{ display:flex; align-items:center; gap:1.7rem; }
.nav > a, .nav-drop > a{
  font-size:.79rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase;
  color:var(--body); transition:color .25s var(--ease); display:inline-block; padding:.4rem 0;
}
.nav > a:hover, .nav-drop > a:hover, .nav > a.on{ color:var(--green-deep); }
.nav .phone{
  background:var(--charcoal); color:#fff; border-radius:999px;
  padding:.6rem 1.2rem; letter-spacing:.05em;
}
.nav .phone:hover{ background:#2c2c2c; color:#fff; }
.nav-drop{ position:relative; }
.nav-drop > a::after{ content:" ▾"; font-size:.7em; color:var(--green); }
.drop{
  position:absolute; top:100%; left:-1rem; min-width:230px;
  background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:0 18px 44px -14px rgba(38,48,42,.22); padding:.5rem;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:.25s var(--ease); z-index:50;
}
.nav-drop:hover .drop, .nav-drop:focus-within .drop{ opacity:1; visibility:visible; transform:none; }
.drop a{
  display:block; font-size:.9rem; font-weight:500; color:var(--body);
  padding:.55rem .8rem; border-radius:9px;
}
.drop a:hover{ background:var(--wash); color:var(--green-deep); }
.menu-btn{ display:none; background:none; border:1px solid var(--line); color:var(--ink);
  border-radius:8px; padding:.5rem .8rem; font:600 .8rem var(--font-ui); letter-spacing:.08em; cursor:pointer; }
.mobile-nav{ display:none; background:#fff; border-bottom:1px solid var(--line); padding:.8rem 1.4rem 1.2rem; }
.mobile-nav.open{ display:block; }
.mobile-nav a{ display:block; padding:.6rem 0; font-weight:600; color:var(--ink); border-bottom:1px solid var(--wash); }
.mobile-nav .sub a{ padding-left:1rem; font-weight:400; color:var(--body); }

/* ---------- page hero (sub-pages) ---------- */
.page-hero{ padding:4.2rem 0 3.4rem; }
.page-hero h1{ margin:.9rem 0 .9rem; max-width:18ch; }
.page-hero .lede{ max-width:56ch; }
.page-hero .cta-row{ margin-top:1.7rem; }
.cta-row{ display:flex; align-items:center; gap:.9rem; flex-wrap:wrap; }

/* ---------- home hero ---------- */
.hero{ position:relative; padding:4.4rem 0 5rem; overflow:hidden; }
.hero .wrap{ display:grid; grid-template-columns:1.05fr .95fr; gap:3.6rem; align-items:center; }
.hero h1{ margin:1rem 0 1.2rem; }
.hero .lede{ max-width:46ch; margin-bottom:1.9rem; }
.hero .cta-row{ margin-bottom:1.5rem; }
.trust{
  display:flex; gap:2rem; margin-top:2.4rem; padding-top:1.5rem;
  border-top:1px solid var(--line); flex-wrap:wrap;
}
.trust div{ font-size:.84rem; }
.trust b{
  display:block; font-family:var(--font-display); font-weight:600;
  font-size:1.02rem; color:var(--ink); margin-bottom:.1rem;
}

/* ---------- quote card ---------- */
.quote-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 24px 60px -18px rgba(38,48,42,.18); overflow:hidden;
}
.quote-card .card-head{
  background:linear-gradient(115deg,var(--grad-a),var(--grad-b));
  color:#fff; padding:1.15rem 1.6rem;
}
.quote-card .card-head h2{ color:#fff; font-size:1.25rem; }
.quote-card .card-head p{ font-size:.85rem; opacity:.92; }
.quote-card form{ padding:1.5rem 1.6rem 1.7rem; }
.field{ margin-bottom:.9rem; }
.field label{
  display:block; font-size:.78rem; font-weight:600; letter-spacing:.04em;
  color:var(--ink); margin-bottom:.32rem;
}
.field input, .field select, .field textarea{
  width:100%; font:inherit; color:var(--ink);
  border:1.5px solid var(--line); border-radius:10px;
  padding:.68rem .8rem; background:var(--paper);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(79,181,95,.18);
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.quote-card .btn{ width:100%; justify-content:center; }
.card-note{ font-size:.78rem; text-align:center; margin-top:.8rem; }

/* ---------- service cards ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.svc-card{
  display:flex; flex-direction:column; gap:.55rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.6rem; color:var(--body);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.svc-card:hover{
  transform:translateY(-4px); border-color:rgba(79,181,95,.5);
  box-shadow:0 20px 44px -16px rgba(38,48,42,.2);
}
.svc-card .chip{
  width:48px; height:48px; border-radius:13px; margin-bottom:.5rem;
  background:var(--wash); color:var(--green-deep);
  display:grid; place-items:center;
}
.svc-card h3{ font-size:1.12rem; }
.svc-card p{ font-size:.93rem; }
.svc-card .go{
  margin-top:auto; padding-top:.6rem; font-weight:600; font-size:.88rem; color:var(--green-deep);
}
.svc-card:hover .go{ color:var(--green); }

/* ---------- gradient panel (their green panel, modernised) ---------- */
.green-panel{
  background:linear-gradient(115deg,var(--grad-a),var(--grad-b));
  border-radius:calc(var(--radius) + 6px);
  color:#fff; padding:3.2rem 3rem;
  box-shadow:0 28px 60px -20px rgba(79,181,95,.45);
}
.green-panel h2{ color:#fff; }
.panel-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-top:2.2rem; }
.panel-grid b{
  display:block; font-family:var(--font-display); font-weight:700; font-size:1.5rem; margin-bottom:.2rem;
}
.panel-grid span{ font-size:.9rem; opacity:.95; }

/* ---------- testimonial band ---------- */
.testi{ position:relative; }
.testi-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:2rem 2.2rem; box-shadow:0 18px 44px -18px rgba(38,48,42,.16);
}
.testi-card blockquote{
  font-family:var(--font-display); font-weight:500; font-size:1.25rem;
  color:var(--ink); line-height:1.4;
}
.testi-card blockquote::before{ content:"“"; color:var(--green); font-size:2.6rem; line-height:0; vertical-align:-14px; margin-right:.2rem; }
.testi-card cite{ display:block; margin-top:1rem; font-style:normal; font-weight:600; color:var(--green-deep); }
.testi-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }

/* ---------- lists ---------- */
.check-list{ list-style:none; padding:0; display:grid; gap:.55rem; }
.check-list li{ display:flex; gap:.6rem; align-items:baseline; }
.check-list li::before{
  content:"✓"; flex:none; width:20px; height:20px; border-radius:6px;
  background:var(--wash); color:var(--green-deep);
  font-size:.75rem; font-weight:700; display:grid; place-items:center; translate:0 3px;
}
.check-cols{ columns:3; column-gap:2.4rem; }
.check-cols li{ break-inside:avoid; margin-bottom:.55rem; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }

/* ---------- chips / areas ---------- */
.chip-row{ display:flex; flex-wrap:wrap; gap:.55rem; }
.chip-row span{
  background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:.42rem 1rem; font-weight:600; font-size:.88rem; color:var(--ink);
}

/* ---------- FAQ ---------- */
.faq details{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:1rem 1.3rem; margin-bottom:.75rem;
}
.faq summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:1rem;
  font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:1rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--green); font-size:1.3rem; font-weight:700; }
.faq details[open] summary::after{ content:"\2212"; }
.faq details p{ margin-top:.7rem; font-size:.95rem; }

/* ---------- map ---------- */
.map-card{
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:0 18px 44px -18px rgba(38,48,42,.16);
}
.map-card iframe{ width:100%; height:380px; border:0; display:block; }

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(115deg,var(--grad-a),var(--grad-b));
  border-radius:calc(var(--radius) + 6px);
  color:#fff; padding:2.8rem 3rem;
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  box-shadow:0 28px 60px -20px rgba(79,181,95,.45);
}
.cta-band h2{ color:#fff; margin-bottom:.3rem; }
.cta-band p{ opacity:.95; }
.cta-band .phone-pill{
  background:var(--charcoal); color:#fff; border-radius:999px;
  font-family:var(--font-display); font-weight:700; font-size:1.25rem;
  padding:.9rem 1.9rem; white-space:nowrap;
  transition:transform .25s var(--ease);
}
.cta-band .phone-pill:hover{ transform:translateY(-2px); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#B9C6BD; margin-top:5rem; font-size:.92rem; }
.site-footer .wrap{ padding:3.6rem 0 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.3fr; gap:2.4rem; margin-bottom:2.4rem; }
.site-footer h3{ color:#fff; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:.9rem; }
.site-footer ul{ list-style:none; padding:0; display:grid; gap:.45rem; }
.site-footer a{ color:#D5E0D8; }
.site-footer a:hover{ color:#fff; }
.site-footer address{ font-style:normal; line-height:1.7; }
.van-band{ background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:3.6rem 0; }
.gas-mark{ width:60px; height:auto; margin-top:1rem; border-radius:6px; display:block; }
.gas-slot{
  width:60px; height:68px; border:1px dashed rgba(255,255,255,.3); border-radius:8px;
  display:grid; place-items:center; font-size:.55rem; text-align:center; color:#8fa295;
  margin-top:1rem; line-height:1.3;
}
.socials{ display:flex; gap:.6rem; margin-top:1rem; }
.socials a{
  width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.08);
  display:grid; place-items:center; color:#D5E0D8;
}
.socials a:hover{ background:var(--green); color:#fff; }
.footer-bar{
  border-top:1px solid rgba(255,255,255,.12); padding-top:1.3rem;
  font-size:.8rem; color:#8fa295; text-align:center; line-height:1.7;
}

/* ---------- motion ---------- */
.reveal{ opacity:0; transform:translateY(16px); animation:rise .8s var(--ease) forwards; }
.d1{ animation-delay:.06s } .d2{ animation-delay:.16s } .d3{ animation-delay:.26s }
.d4{ animation-delay:.36s } .d5{ animation-delay:.46s } .d6{ animation-delay:.58s }
.d7{ animation-delay:.72s } .d8{ animation-delay:.5s }
@keyframes rise{ to{ opacity:1; transform:none; } }
.io{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.io.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  *{ animation:none!important; transition:none!important; }
  .reveal,.io{ opacity:1; transform:none; }
}

/* ---------- responsive ---------- */
@media (max-width: 960px){
  .nav{ display:none; }
  .menu-btn{ display:block; }
  .hero .wrap, .two-col, .testi-grid{ grid-template-columns:1fr; }
  .hero .wrap{ gap:2.6rem; }
  .card-grid{ grid-template-columns:1fr 1fr; }
  .panel-grid{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .check-cols{ columns:2; }
  .green-panel, .cta-band{ padding:2.2rem 1.8rem; }
  .section{ padding:3.6rem 0; }
}
@media (max-width: 580px){
  .card-grid{ grid-template-columns:1fr; }
  .field-row{ grid-template-columns:1fr; }
  .cta-row .btn{ width:100%; justify-content:center; }
  .check-cols{ columns:1; }
  .footer-grid{ grid-template-columns:1fr; }
  .panel-grid{ grid-template-columns:1fr; gap:1.3rem; }
  .trust{ gap:1.1rem 1.5rem; }
}

/* ---------- photography ---------- */
.photo-card{
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:0 18px 44px -18px rgba(38,48,42,.16); margin:0;
}
.photo-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.photo-grid .photo-card{ aspect-ratio:4/3; }
.photo-wide{ grid-column:span 2; aspect-ratio:16/10 !important; }
@media (max-width:960px){ .photo-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:580px){ .photo-grid{ grid-template-columns:1fr; } .photo-wide{ grid-column:span 1; } }

/* ---------- header logo, skip link, mobile call bar ---------- */
.logo-img{ width:46px; height:46px; border-radius:50%; box-shadow:0 4px 14px rgba(79,181,95,.35); display:block; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--ink); color:#fff;
  padding:.6rem 1rem; z-index:100; border-radius:0 0 10px 0; }
.skip-link:focus{ left:0; }
.call-bar{ position:fixed; bottom:0; left:0; right:0; z-index:60; display:none;
  padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(38,48,42,.96); backdrop-filter:blur(8px); }
.call-bar .btn{ width:100%; justify-content:center; }
@media (max-width:640px){ .call-bar{ display:block; } body{ padding-bottom:70px; } }

/* ---------- mobile polish ---------- */
@media (max-width:640px){
  .van-band{ padding:2.2rem 0; }
  .van-band .two-col{ gap:1.6rem; }
  .testi-card{ padding:1.4rem 1.5rem; }
  .map-card iframe{ height:300px; }
  .cta-band{ text-align:center; justify-content:center; }
  .cta-band .phone-pill{ width:100%; text-align:center; }
  .page-hero{ padding:3rem 0 2.4rem; }
}

/* ---------- service tiles (domestic / commercial) ---------- */
.tile-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; }
.tile{ display:flex; align-items:center; gap:.75rem; background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:.85rem 1.05rem; color:var(--ink);
  font-family:var(--font-display); font-weight:600; font-size:.98rem; line-height:1.3;
  transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease); }
a.tile:hover{ transform:translateY(-3px); border-color:rgba(79,181,95,.5);
  box-shadow:0 14px 30px -14px rgba(38,48,42,.2); color:var(--ink); }
.tile .chip{ width:38px; height:38px; border-radius:11px; background:var(--wash);
  color:var(--green-deep); display:grid; place-items:center; flex:none; }
@media (max-width:960px){ .tile-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:580px){ .tile-grid{ grid-template-columns:1fr; } }

.stat-note{ font-size:.76rem; color:#7d8b81; margin-top:1rem; }

/* ---------- breadcrumbs, lazy maps, small-screen headline ---------- */
.crumbs{ font-size:.8rem; padding:1.1rem 0 0; color:#8a978d; }
.crumbs a{ font-weight:600; }
.crumbs span{ margin:0 .35rem; opacity:.6; }
.crumbs b{ color:var(--ink); font-weight:600; }
.map-lazy{ display:grid; place-items:center; align-content:center; gap:.5rem; height:380px;
  background:var(--wash); cursor:pointer; }
.map-lazy p{ font-size:.8rem; color:#7d8b81; padding:0; }
@media (max-width:640px){ .map-lazy{ height:300px; } h1{ font-size:1.9rem; } }

/* ---------- final QA pass ---------- */
.topbar .tb-num{ white-space:nowrap; }
.tb-short{ display:none; }
.card-h{ font-size:1.12rem; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.site-footer .foot-h{ color:#fff; font-family:var(--font-ui); font-weight:700; font-size:.8rem;
  letter-spacing:.16em; text-transform:uppercase; margin-bottom:.9rem; }
@media (max-width:640px){
  .tb-long{ display:none; }
  .tb-short{ display:inline; }
}
@media (max-width:580px){ .grid-2{ grid-template-columns:1fr; } }

.google-line{ margin-top:1.4rem; font-size:.95rem; font-weight:600; color:var(--ink); }
.google-line .star{ color:var(--green); }

.google-line + .google-line{ margin-top:.35rem; }

/* ---------- mobile: content always visible, no reveal gating ---------- */
@media (max-width:820px){
  .io, .reveal{ opacity:1 !important; transform:none !important; animation:none !important; transition:none !important; }
  .site-header{ backdrop-filter:none; background:#fff; }
  body::before{ display:none; }
}

/* ---------- generic entry content (posts, legal pages) ---------- */
.entry p{ margin-bottom:1rem; }
.entry h2{ margin:1.8rem 0 .7rem; }
.entry h3{ margin:1.4rem 0 .5rem; }
.entry ul, .entry ol{ margin:0 0 1.1rem 1.3rem; }
.entry li{ margin-bottom:.4rem; }
.entry img{ border-radius:14px; height:auto; }
.entry a{ text-decoration:underline; }
