/* =============================================================
   B2B Rehab theme styles
   1.  Tokens
   2.  Reset and base
   3.  Layout helpers
   4.  Buttons and links
   5.  Header and navigation
   6.  Hero
   7.  Sections and cards
   8.  Accordion, tabs, testimonials
   9.  Forms and booking
   10. Blog and single
   11. Footer and mobile action bar
   12. Utilities, animation, print
   ============================================================= */

/* 1. Tokens ------------------------------------------------- */
:root{
  --white:#ffffff;
  --ink:#101010;
  --ink-soft:#333333;
  --muted:#5f6663;
  --line:#e4e8e5;
  --line-strong:#d2d8d4;
  --wash:#f6f9f7;
  --wash-2:#f2f5f3;

  --green:#1f8f57;
  --green-dark:#176d43;
  --green-light:#37b073;
  --green-soft:#e9f4ee;
  --green-tint:#f3faf6;

  --orange:#e0762a;
  --orange-dark:#bd5f1b;
  --orange-soft:#fdf1e7;

  --radius-sm:8px;
  --radius:14px;
  --radius-lg:22px;
  --radius-pill:999px;

  --shadow-sm:0 1px 2px rgba(16,16,16,.06), 0 2px 8px rgba(16,16,16,.04);
  --shadow:0 4px 14px rgba(16,16,16,.07), 0 12px 32px rgba(16,16,16,.06);
  --shadow-lg:0 18px 48px rgba(16,16,16,.12);

  --wrap:1180px;
  --wrap-narrow:820px;
  --gap:clamp(18px, 2.4vw, 30px);
  --section-y:clamp(56px, 7vw, 104px);

  --font-head:"Poppins", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-body:"Inter", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  --header-h:84px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* 2. Reset and base ----------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.68;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.menu-open{overflow:hidden}
img,svg,video{max-width:100%;height:auto;display:block}
/* Safety net: every theme icon has a sane size even where no component rule applies. */
.b2b-icon{width:20px;height:20px;flex:none}
.quote__mark svg{width:100%;height:100%}
figure{margin:0}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-head);
  color:var(--ink);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.02em;
  margin:0 0 .6em;
}
h1{font-size:clamp(2.1rem,4.6vw,3.5rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem)}
h3{font-size:clamp(1.22rem,1.9vw,1.55rem)}
h4{font-size:1.1rem}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
a{color:var(--green-dark);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--orange-dark)}
ul,ol{margin:0 0 1.2em;padding-left:1.25em}
li{margin-bottom:.4em}
strong,b{font-weight:600}
blockquote{
  margin:1.6em 0;padding:1.2em 1.5em;
  background:var(--green-tint);
  border-left:4px solid var(--green);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-style:normal;color:var(--ink-soft);
}
hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
pre{background:var(--wash);padding:1.1em;border-radius:var(--radius-sm);overflow:auto;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;margin-bottom:1.6em;font-size:.96rem}
th,td{padding:.8em 1em;border:1px solid var(--line);text-align:left}
th{background:var(--wash);font-family:var(--font-head);font-weight:600}
::selection{background:var(--green-soft);color:var(--ink)}
:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:4px}

.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);
  height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important;word-wrap:normal!important;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--green);color:#fff;padding:12px 20px;border-radius:0 0 var(--radius-sm) 0;font-weight:600;
}
.skip-link:focus{left:0;color:#fff}

/* 3. Layout helpers ----------------------------------------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 22px}
.wrap-narrow{max-width:var(--wrap-narrow)}
.section{padding:var(--section-y) 0;position:relative}
.section--wash{background:var(--wash)}
.section--tint{background:var(--green-tint)}
.section--tight{padding-top:clamp(34px,4vw,56px);padding-bottom:clamp(34px,4vw,56px)}
.section--dark{background:var(--ink);color:#fff}
.section--dark h1,.section--dark h2,.section--dark h3{color:#fff}

.section-head{max-width:760px;margin:0 auto clamp(34px,4vw,56px);text-align:center}
.section-head--left{margin-left:0;text-align:left}
.section-head p{color:var(--muted);font-size:1.05rem;margin-bottom:0}
.eyebrow{
  display:inline-block;font-family:var(--font-head);font-size:.76rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);
  background:var(--green-soft);padding:6px 14px;border-radius:var(--radius-pill);margin-bottom:16px;
}
.eyebrow--orange{color:var(--orange-dark);background:var(--orange-soft)}
.rule{width:56px;height:4px;border-radius:2px;background:var(--green);margin:0 auto 20px}
.section-head--left .rule{margin-left:0}

.grid{display:grid;gap:var(--gap)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.split--media-right .split__media{order:2}
@media (max-width:980px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .split--media-right .split__media{order:0}
}
@media (max-width:620px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
}

/* 4. Buttons ------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-head);font-weight:600;font-size:.95rem;letter-spacing:.01em;
  padding:15px 28px;border-radius:var(--radius-pill);border:2px solid transparent;
  cursor:pointer;text-align:center;line-height:1.2;
  transition:transform .18s var(--ease), background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn svg{width:18px;height:18px;flex:none}
.btn--primary{background:var(--green);color:#fff;box-shadow:0 6px 18px rgba(31,143,87,.22)}
.btn--primary:hover{background:var(--green-dark);color:#fff;box-shadow:0 10px 26px rgba(31,143,87,.28)}
.btn--orange{background:var(--orange);color:#fff;box-shadow:0 6px 18px rgba(224,118,42,.22)}
.btn--orange:hover{background:var(--orange-dark);color:#fff}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--outline:hover{border-color:var(--green);color:var(--green-dark);background:var(--green-tint)}
.btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.btn--ghost-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn--block{width:100%}
.btn--sm{padding:11px 20px;font-size:.86rem}
.btn--lg{padding:18px 36px;font-size:1.02rem}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn-row--center{justify-content:center}

.link-arrow{
  display:inline-flex;align-items:center;gap:7px;font-family:var(--font-head);
  font-weight:600;font-size:.92rem;color:var(--green-dark);
}
.link-arrow svg{width:15px;height:15px;transition:transform .2s var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}

/* 5. Header ------------------------------------------------- */
.topbar{
  background:var(--ink);color:#fff;font-size:.83rem;
}
.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:40px;padding-top:6px;padding-bottom:6px}
.topbar a{color:#fff;display:inline-flex;align-items:center;gap:7px}
.topbar a:hover{color:var(--green-light)}
.topbar svg{width:15px;height:15px;color:var(--green-light)}
.topbar__set{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
@media (max-width:860px){.topbar{display:none}}

.site-header{
  position:sticky;top:0;z-index:900;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s var(--ease), background-color .25s var(--ease);
}
.site-header.is-stuck{box-shadow:var(--shadow-sm);background:rgba(255,255,255,.98)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand img{max-height:56px;width:auto}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{font-family:var(--font-head);font-weight:700;font-size:1.24rem;color:var(--ink);letter-spacing:-.02em}
.brand__name em{font-style:normal;color:var(--green)}
.brand__tag{font-size:.72rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:500}

.nav{display:flex;align-items:center;gap:4px}
.nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.nav li{margin:0;position:relative}
.nav a{
  display:block;padding:10px 14px;border-radius:var(--radius-sm);white-space:nowrap;
  font-family:var(--font-head);font-weight:500;font-size:.94rem;color:var(--ink);
}
@media (max-width:1240px){.nav a{padding:10px 10px;font-size:.9rem}}
.nav a:hover,.nav .current-menu-item>a,.nav .current_page_item>a,.nav .current-menu-ancestor>a{
  color:var(--green-dark);background:var(--green-tint);
}
.nav .menu-item-has-children>a{padding-right:26px}
.nav .menu-item-has-children>a::after{
  content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-70%) rotate(45deg);opacity:.6;
}
.nav ul ul{
  position:absolute;top:calc(100% + 8px);left:0;min-width:242px;display:block;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.nav li:hover>ul,.nav li:focus-within>ul{opacity:1;visibility:visible;transform:translateY(0)}
.nav ul ul li{width:100%}
.nav ul ul a{padding:10px 12px;font-size:.9rem}
.nav ul ul ul{top:8px;left:100%}

.header__actions{display:flex;align-items:center;gap:12px;flex:none}
.header__phone{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);
  font-weight:600;font-size:.95rem;color:var(--ink);
}
.header__phone svg{width:17px;height:17px;color:var(--green)}
.header__phone:hover{color:var(--green-dark)}
@media (max-width:1100px){.header__phone span{display:none}}

.burger{
  display:none;width:46px;height:46px;border:1px solid var(--line);background:#fff;
  border-radius:var(--radius-sm);cursor:pointer;padding:0;place-items:center;
}
.burger span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;position:relative;transition:background .2s}
.burger span::before,.burger span::after{
  content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);border-radius:2px;
  transition:transform .25s var(--ease), top .25s var(--ease);
}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media (max-width:1024px){
  .nav{display:none}
  .burger{display:grid}
}
@media (max-width:600px){
  :root{--header-h:70px}
  .header__inner{gap:12px}
  .header__actions .btn{display:none}
  .brand img{max-height:46px}
  .brand__name{font-size:1.06rem}
  .brand__tag{font-size:.62rem}
  .header__phone{width:46px;height:46px;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-sm)}
  .header__phone svg{width:19px;height:19px}
}

/* Mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:950;background:rgba(16,16,16,.45);
  opacity:0;visibility:hidden;transition:opacity .28s var(--ease), visibility .28s;
}
.drawer.is-open{opacity:1;visibility:visible}
.drawer__panel{
  position:absolute;top:0;right:0;height:100%;width:min(400px,88vw);background:#fff;
  padding:22px 22px 120px;overflow-y:auto;transform:translateX(100%);
  transition:transform .32s var(--ease);box-shadow:var(--shadow-lg);
}
.drawer.is-open .drawer__panel{transform:translateX(0)}
.drawer__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.drawer__close{
  width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:var(--radius-sm);
  cursor:pointer;font-size:1.4rem;line-height:1;color:var(--ink);display:grid;place-items:center;
}
.drawer ul{list-style:none;margin:0 0 20px;padding:0}
.drawer li{margin:0;border-bottom:1px solid var(--line)}
.drawer a{
  display:block;padding:15px 4px;font-family:var(--font-head);font-weight:500;
  font-size:1.02rem;color:var(--ink);
}
.drawer a:hover,.drawer .current-menu-item>a{color:var(--green-dark)}
.drawer ul ul{margin:0 0 8px 14px;border-left:2px solid var(--green-soft);padding-left:10px}
.drawer ul ul li{border:0}
.drawer ul ul a{padding:9px 4px;font-size:.94rem;color:var(--muted);font-weight:400}
.drawer__cta{display:grid;gap:10px;margin-top:8px}
.drawer__meta{margin-top:26px;padding-top:20px;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.drawer__meta a{color:var(--ink);font-weight:500}

/* 6. Hero --------------------------------------------------- */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg picture{display:block;width:100%;height:100%}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg, rgba(10,12,11,.92) 0%, rgba(10,12,11,.78) 42%, rgba(10,12,11,.35) 100%);
}

.hero__inner{padding:clamp(70px,9vw,132px) 0 clamp(60px,7vw,104px);max-width:720px}
.hero .rule{margin-left:0;background:var(--green-light)}
.hero h1{color:#fff;margin-bottom:.35em}
.hero h1 .accent{color:var(--green-light);display:block}
.hero__lead{font-size:clamp(1.02rem,1.5vw,1.2rem);color:rgba(255,255,255,.88);max-width:560px;margin-bottom:32px}
.hero .eyebrow{background:rgba(255,255,255,.12);color:#fff}
.hero__points{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-wrap:wrap;gap:10px 26px}
.hero__points li{display:flex;align-items:center;gap:9px;font-size:.94rem;color:rgba(255,255,255,.9);margin:0}
.hero__points svg{width:18px;height:18px;color:var(--green-light);flex:none}

/* Light hero, used when no background photograph has been set. */
.hero--plain{background:var(--white);color:var(--ink);border-bottom:1px solid var(--line)}
.hero--plain::after{
  background:
    radial-gradient(circle at 88% 12%, var(--green-soft), transparent 42%),
    radial-gradient(circle at 96% 78%, var(--orange-soft), transparent 38%),
    linear-gradient(180deg, var(--green-tint) 0%, #fff 62%);
}
.hero--plain h1{color:var(--ink)}
.hero--plain h1 .accent{color:var(--green)}
.hero--plain .hero__lead{color:var(--ink-soft)}
.hero--plain .rule{background:var(--green)}
.hero--plain .eyebrow{background:var(--green-soft);color:var(--green-dark)}
.hero--plain .hero__points li{color:var(--muted)}
.hero--plain .hero__points svg{color:var(--green)}
.hero--plain .btn--ghost-light{color:var(--ink);border-color:var(--line-strong);background:#fff}
.hero--plain .btn--ghost-light:hover{background:var(--green-tint);border-color:var(--green);color:var(--green-dark)}

.page-hero{background:var(--wash);border-bottom:1px solid var(--line);padding:clamp(44px,5.5vw,76px) 0}
.page-hero h1{margin-bottom:.3em}
.page-hero p{color:var(--muted);max-width:680px;font-size:1.05rem}
.breadcrumbs{font-size:.84rem;color:var(--muted);margin-bottom:14px}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--green-dark)}
.breadcrumbs span[aria-hidden]{margin:0 7px;opacity:.55}

/* Trust strip */
.trust{background:#fff;border-bottom:1px solid var(--line)}
.trust__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:26px 0}
.trust__item{display:flex;align-items:center;gap:12px;justify-content:center;text-align:left;padding:6px 10px}
.trust__item svg{width:26px;height:26px;color:var(--green);flex:none}
.trust__item strong{display:block;font-family:var(--font-head);font-size:.95rem;font-weight:600;line-height:1.25}
.trust__item span{font-size:.82rem;color:var(--muted)}
@media (max-width:860px){.trust__inner{grid-template-columns:repeat(2,1fr);gap:16px}}
@media (max-width:460px){.trust__inner{grid-template-columns:1fr}.trust__item{justify-content:flex-start}}

/* 7. Cards -------------------------------------------------- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:30px 28px;position:relative;height:100%;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--green-soft)}
.card__icon{
  width:56px;height:56px;border-radius:16px;background:var(--green-soft);color:var(--green-dark);
  display:grid;place-items:center;margin-bottom:20px;
}

.card--orange .card__icon{background:var(--orange-soft);color:var(--orange-dark)}
.card h3{margin-bottom:.5em;font-size:1.18rem}
.card p{color:var(--muted);font-size:.96rem;margin-bottom:1em}
.card .link-arrow{margin-top:auto}
.card--flat{border-radius:var(--radius);padding:24px}
.card--flat:hover{transform:none;box-shadow:var(--shadow-sm)}
a.card{display:flex;flex-direction:column;color:inherit}
a.card:hover{color:inherit}

.card--media{padding:0;overflow:hidden;display:flex;flex-direction:column}
.card--media img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card--media .card__body{padding:26px 26px 30px;display:flex;flex-direction:column;flex:1}

/* Feature list */
.checklist{list-style:none;padding:0;margin:0 0 1.4em;display:grid;gap:12px}
.checklist li{display:flex;gap:12px;align-items:flex-start;margin:0;font-size:.98rem}
.checklist svg{width:21px;height:21px;color:var(--green);flex:none;margin-top:2px}
.checklist--orange svg{color:var(--orange)}
.checklist--2{grid-template-columns:1fr 1fr;gap:12px 26px}
@media (max-width:620px){.checklist--2{grid-template-columns:1fr}}

/* Steps */
.steps{counter-reset:step;display:grid;gap:var(--gap);grid-template-columns:repeat(4,1fr)}
.step{position:relative;padding-top:8px}
.step__num{
  width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;
  display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:1.1rem;margin-bottom:18px;
  box-shadow:0 6px 16px rgba(31,143,87,.24);
}
.step:nth-child(even) .step__num{background:var(--orange);box-shadow:0 6px 16px rgba(224,118,42,.24)}
.step h3{font-size:1.08rem;margin-bottom:.45em}
.step p{color:var(--muted);font-size:.94rem;margin:0}
@media (max-width:980px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* Funding tiles */
.funding-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.funding-tile{
  display:flex;flex-direction:column;gap:8px;padding:22px 20px;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);text-align:left;color:inherit;
  transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.funding-tile:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:var(--shadow-sm);color:inherit}
.funding-tile strong{font-family:var(--font-head);font-size:1.02rem}
.funding-tile span{font-size:.88rem;color:var(--muted)}
.funding-tile svg{width:24px;height:24px;color:var(--green)}
.funding-tile:nth-child(even) svg{color:var(--orange)}
@media (max-width:980px){.funding-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.funding-grid{grid-template-columns:1fr}}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0;list-style:none}
.chips li{margin:0}
.chip{
  display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--radius-pill);
  background:var(--wash);border:1px solid var(--line);font-size:.9rem;color:var(--ink-soft);
}
.chip svg{width:14px;height:14px;color:var(--green)}

/* Conditions treated. A plain, evenly spaced list rather than ragged pills. */
.cond-list{list-style:none;padding:0;margin:0;columns:3;column-gap:34px}
.cond-list li{
  break-inside:avoid;display:flex;gap:10px;align-items:flex-start;
  margin:0 0 13px;font-size:.95rem;line-height:1.45;color:var(--ink-soft);
}
.cond-list svg{width:16px;height:16px;color:var(--green);flex:none;margin-top:4px}
.cond-list--2{columns:2;column-gap:24px}
.cond-list--2 li{font-size:.92rem;margin-bottom:10px}
@media (max-width:900px){.cond-list{columns:2}}
@media (max-width:560px){.cond-list{columns:1}}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);text-align:center}
.stat__num{font-family:var(--font-head);font-weight:700;font-size:clamp(2rem,3.4vw,2.8rem);color:var(--green);line-height:1}
.stat__num em{font-style:normal;color:var(--orange)}
.stat p{color:var(--muted);font-size:.92rem;margin:8px 0 0}
@media (max-width:700px){.stats{grid-template-columns:repeat(2,1fr);gap:26px}}

/* Media block */
.media-frame{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--wash);box-shadow:var(--shadow)}
.media-frame img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.media-frame--tall img{aspect-ratio:3/4}
.media-badge{
  position:absolute;left:20px;bottom:20px;background:#fff;border-radius:var(--radius);
  padding:14px 18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px;max-width:82%;
}
.media-badge svg{width:26px;height:26px;color:var(--green);flex:none}
.media-badge strong{display:block;font-family:var(--font-head);font-size:.95rem}
.media-badge span{font-size:.82rem;color:var(--muted)}
.media-placeholder{
  display:grid;place-items:center;aspect-ratio:4/3;background:linear-gradient(135deg,var(--green-tint),var(--orange-soft));
  color:var(--muted);font-size:.9rem;text-align:center;padding:30px;border-radius:var(--radius-lg);border:1px dashed var(--line-strong);
}

/* CTA band */
.cta-band{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.cta-band::before{
  content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(31,143,87,.35),transparent 68%);
}
.cta-band::after{
  content:"";position:absolute;left:-90px;bottom:-160px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(224,118,42,.28),transparent 68%);
}
.cta-band__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.35fr .65fr;gap:34px;align-items:center;padding:clamp(44px,5vw,70px) 0}
.cta-band h2{color:#fff;margin-bottom:.4em}
.cta-band p{color:rgba(255,255,255,.82);margin-bottom:0}
.cta-band .btn-row{justify-content:flex-end}
@media (max-width:900px){
  .cta-band__inner{grid-template-columns:1fr;text-align:center}
  .cta-band .btn-row{justify-content:center}
}

/* 8. Accordion ---------------------------------------------- */
.accordion{display:grid;gap:12px;max-width:900px;margin:0 auto}
.acc{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;transition:border-color .2s var(--ease), box-shadow .2s var(--ease)}
.acc.is-open{border-color:var(--green-soft);box-shadow:var(--shadow-sm)}
.acc__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:20px 22px;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--font-head);font-weight:600;font-size:1.03rem;color:var(--ink);line-height:1.35;
}
.acc__label{display:flex;flex-direction:column;gap:3px;min-width:0}
.acc__label small{font-family:var(--font-body);font-weight:400;font-size:.86rem;color:var(--muted)}
.acc__btn:hover{color:var(--green-dark)}
.acc__ico{
  width:34px;height:34px;border-radius:50%;background:var(--green-soft);color:var(--green-dark);
  display:grid;place-items:center;flex:none;transition:transform .28s var(--ease), background-color .2s;
}
.acc__ico svg{width:15px;height:15px}
.acc.is-open .acc__ico{transform:rotate(180deg);background:var(--green);color:#fff}
.acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
.acc.is-open .acc__panel{grid-template-rows:1fr}
.acc__panel>div{overflow:hidden}
.acc__inner{padding:0 22px 22px;color:var(--muted);font-size:.98rem}
.acc__inner p:last-child{margin-bottom:0}

/* Testimonials */
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.quote{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:34px 28px 28px;display:flex;flex-direction:column;text-align:center;height:100%;
}

.quote blockquote{all:revert;margin:0;padding:0;background:none;border:0;border-radius:0;flex:1;display:block}
.quote p{font-size:.99rem;color:var(--ink-soft);font-style:italic;margin-bottom:20px}
.quote cite{font-style:normal;font-family:var(--font-head);font-weight:600;font-size:.94rem;color:var(--ink)}
.quote .stars{display:flex;gap:3px;justify-content:center;margin-bottom:14px}
.quote .stars svg{width:16px;height:16px;color:var(--orange)}
@media (max-width:980px){.testimonials{grid-template-columns:1fr}}

/* 9. Forms and booking -------------------------------------- */
.form-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(24px,3.2vw,40px);box-shadow:var(--shadow-sm);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field--full{grid-column:1/-1}
.field label{font-family:var(--font-head);font-weight:600;font-size:.88rem;color:var(--ink)}
.field .req{color:var(--orange-dark)}
.field .hint{font-size:.8rem;color:var(--muted);font-weight:400}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=search],input[type=number],input[type=password],select,textarea{
  width:100%;font-family:var(--font-body);font-size:.98rem;color:var(--ink);background:#fff;
  border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:13px 15px;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
textarea{min-height:140px;resize:vertical}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6663' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px;cursor:pointer}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
input::placeholder,textarea::placeholder{color:#9aa19d}
.field--error input,.field--error select,.field--error textarea{border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.1)}
.field__error{font-size:.8rem;color:#c0392b}

.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;width:0;height:0}
.choice span{
  display:flex;align-items:center;gap:11px;padding:15px 16px;border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);cursor:pointer;font-size:.94rem;font-weight:500;
  transition:border-color .2s var(--ease), background-color .2s var(--ease);height:100%;
}
.choice span svg{width:20px;height:20px;color:var(--muted);flex:none}
.choice input:checked+span{border-color:var(--green);background:var(--green-tint);color:var(--green-dark)}
.choice input:checked+span svg{color:var(--green)}
.choice input:focus-visible+span{outline:3px solid var(--green);outline-offset:2px}
.choice-grid--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.choice-grid--3{grid-template-columns:1fr}}
@media (max-width:560px){.choice-grid{grid-template-columns:1fr}}

.consent{display:flex;gap:11px;align-items:flex-start;font-size:.88rem;color:var(--muted)}
.consent input{margin-top:3px;width:17px;height:17px;accent-color:var(--green);flex:none}
.hp-field{position:absolute!important;left:-9999px;opacity:0;height:0;overflow:hidden}

.form-note{font-size:.84rem;color:var(--muted);margin-top:14px}
.form-alert{
  border-radius:var(--radius-sm);padding:15px 18px;margin-bottom:20px;font-size:.94rem;display:none;
  border:1px solid transparent;
}
.form-alert.is-visible{display:block}
.form-alert--ok{background:var(--green-soft);border-color:var(--green);color:var(--green-dark)}
.form-alert--err{background:#fdecea;border-color:#e0b4ae;color:#a93226}

.is-loading{position:relative;pointer-events:none;opacity:.75}
.spinner{
  width:17px;height:17px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;
  animation:spin .7s linear infinite;display:none;
}
.is-loading .spinner{display:block}
@keyframes spin{to{transform:rotate(360deg)}}

/* Booking steps */
.booking{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,3.4vw,48px);align-items:start}
@media (max-width:980px){.booking{grid-template-columns:1fr}}
.booking-steps{display:flex;gap:6px;margin-bottom:28px;flex-wrap:wrap}
.booking-step{
  display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:var(--radius-pill);
  background:var(--wash);font-size:.84rem;font-weight:500;color:var(--muted);font-family:var(--font-head);
}
.booking-step b{
  width:22px;height:22px;border-radius:50%;background:var(--line-strong);color:#fff;
  display:grid;place-items:center;font-size:.74rem;
}
.booking-step.is-active{background:var(--green-soft);color:var(--green-dark)}
.booking-step.is-active b{background:var(--green)}
.booking-step.is-done b{background:var(--green)}
.booking-panel{display:none}
.booking-panel.is-active{display:block;animation:fadeUp .32s var(--ease)}
.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:26px;flex-wrap:wrap}
.booking-summary{
  background:var(--wash);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 24px;
  position:sticky;top:calc(var(--header-h) + 20px);
}
.booking-summary h3{font-size:1.08rem}
.booking-summary dl{margin:0;display:grid;gap:12px}
.booking-summary dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.booking-summary dd{margin:2px 0 0;font-size:.96rem;font-weight:500}
.booking-summary .divider{height:1px;background:var(--line);margin:18px 0}
.booking-embed{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);min-height:640px;background:#fff}
.booking-embed iframe{width:100%;min-height:640px;border:0;display:block}

/* Contact blocks */
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:20px}
.contact-list li{display:flex;gap:15px;align-items:flex-start;margin:0}
.contact-list .ico{
  width:46px;height:46px;border-radius:14px;background:var(--green-soft);color:var(--green-dark);
  display:grid;place-items:center;flex:none;
}
.contact-list .ico svg{width:21px;height:21px}
.contact-list strong{display:block;font-family:var(--font-head);font-size:.95rem;margin-bottom:2px}
.contact-list span,.contact-list a{font-size:.96rem;color:var(--muted)}
.contact-list a:hover{color:var(--green-dark)}
.map-frame{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);line-height:0}
.map-frame iframe{width:100%;height:380px;border:0}

/* 10. Blog -------------------------------------------------- */
.content-area{padding:var(--section-y) 0}
.with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(28px,4vw,56px);align-items:start}
@media (max-width:980px){.with-sidebar{grid-template-columns:1fr}}
.entry{background:#fff}
.entry-header{margin-bottom:28px}
.entry-meta{font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}
.entry-meta a{color:var(--muted)}
.entry-thumb{border-radius:var(--radius-lg);overflow:hidden;margin-bottom:30px}
.entry-content>*{max-width:100%}
.entry-content h2{margin-top:1.6em}
.entry-content h3{margin-top:1.4em}
.entry-content img{border-radius:var(--radius)}
.entry-content ul li::marker,.entry-content ol li::marker{color:var(--green)}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:transform .22s var(--ease), box-shadow .22s var(--ease)}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.post-card img{aspect-ratio:16/9;object-fit:cover;width:100%}
.post-card__body{padding:24px;display:flex;flex-direction:column;flex:1}
.post-card h3{font-size:1.12rem;margin-bottom:.4em}
.post-card h3 a{color:var(--ink)}
.post-card h3 a:hover{color:var(--green-dark)}
.post-card p{color:var(--muted);font-size:.94rem}

.widget{background:var(--wash);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:22px}
.widget-title{font-size:1.02rem;margin-bottom:16px}
.widget ul{list-style:none;padding:0;margin:0}
.widget li{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.widget li:last-child{margin:0;padding:0;border:0}
.widget a{color:var(--ink-soft);font-size:.94rem}
.widget a:hover{color:var(--green-dark)}

.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:44px;justify-content:center}
.pagination .page-numbers{
  min-width:44px;height:44px;display:grid;place-items:center;padding:0 12px;border-radius:var(--radius-sm);
  border:1px solid var(--line);color:var(--ink);font-weight:500;font-size:.94rem;background:#fff;
}
.pagination .page-numbers:hover{border-color:var(--green);color:var(--green-dark)}
.pagination .current{background:var(--green);border-color:var(--green);color:#fff}

.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:44px;padding-top:32px;border-top:1px solid var(--line)}
.post-nav a{display:block;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.post-nav a:hover{border-color:var(--green)}
.post-nav small{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}
.post-nav strong{font-family:var(--font-head);font-size:.98rem;color:var(--ink);font-weight:600}
.post-nav .next{text-align:right}
@media (max-width:620px){.post-nav{grid-template-columns:1fr}.post-nav .next{text-align:left}}

.comment-list{list-style:none;padding:0;margin:0 0 32px}
.comment-list li{margin-bottom:22px}
.comment-body{background:var(--wash);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.comment-author{font-family:var(--font-head);font-weight:600;font-size:.95rem;margin-bottom:4px}
.comment-metadata{font-size:.8rem;color:var(--muted);margin-bottom:10px}
.comment-list .children{list-style:none;padding-left:26px;margin-top:20px}

/* 11. Footer ------------------------------------------------ */
.site-footer{background:var(--ink);color:rgba(255,255,255,.74);padding-top:clamp(52px,6vw,78px);font-size:.94rem}
.site-footer h3{color:#fff;font-size:1rem;margin-bottom:18px;letter-spacing:0}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:clamp(24px,3vw,46px);padding-bottom:46px}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}
.site-footer a{color:rgba(255,255,255,.74)}
.site-footer a:hover{color:var(--green-light)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:11px}
.footer-brand__name{font-family:var(--font-head);font-weight:700;font-size:1.3rem;color:#fff;margin-bottom:12px;display:block}
.footer-brand__name em{font-style:normal;color:var(--green-light)}
.footer-brand img{max-height:64px;margin-bottom:16px;width:auto}
.footer-contact li{display:flex;gap:11px;align-items:flex-start}
.footer-contact svg{width:17px;height:17px;color:var(--green-light);flex:none;margin-top:4px}
.socials{display:flex;gap:10px;margin-top:20px}
.socials a{
  width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);
  display:grid;place-items:center;transition:background-color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.socials a:hover{background:var(--green);border-color:var(--green);transform:translateY(-2px)}
.socials svg{width:18px;height:18px}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);padding:22px 0 26px;display:flex;
  justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.85rem;color:rgba(255,255,255,.55);
}
.footer-bottom ul{display:flex;gap:20px;flex-wrap:wrap}
.footer-bottom li{margin:0}
.footer-disclaimer{font-size:.8rem;color:rgba(255,255,255,.45);padding-bottom:26px;max-width:900px;line-height:1.6}

/* Mobile action bar */
.action-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:880;display:none;
  background:rgba(255,255,255,.97);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  gap:10px;box-shadow:0 -4px 18px rgba(16,16,16,.07);
}
.action-bar .btn{flex:1;padding:14px 14px;font-size:.9rem}
@media (max-width:768px){
  .action-bar{display:flex}
  body{padding-bottom:78px}
}

.to-top{
  position:fixed;right:20px;bottom:96px;z-index:870;width:46px;height:46px;border-radius:50%;
  background:var(--ink);color:#fff;display:grid;place-items:center;border:0;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:all .25s var(--ease);
}
.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:hover{background:var(--green)}
.to-top svg{width:18px;height:18px}
@media (min-width:769px){.to-top{bottom:24px}}

/* 12. Utilities --------------------------------------------- */
.text-center{text-align:center}
.mt-0{margin-top:0}
.mb-0{margin-bottom:0}
.mt-3{margin-top:24px}
.mt-4{margin-top:34px}
.muted{color:var(--muted)}
.lead{font-size:1.08rem;color:var(--ink-soft)}
.badge{
  display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:var(--radius-pill);
  background:var(--orange-soft);color:var(--orange-dark);font-size:.78rem;font-weight:600;font-family:var(--font-head);
}
.badge--green{background:var(--green-soft);color:var(--green-dark)}
.alignwide{max-width:1120px;margin-left:auto;margin-right:auto}
.alignfull{max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.alignleft{float:left;margin:.4em 1.6em 1em 0}
.alignright{float:right;margin:.4em 0 1em 1.6em}
.wp-caption-text,.wp-block-image figcaption{font-size:.85rem;color:var(--muted);text-align:center;margin-top:10px}
.sticky,.bypostauthor{display:block}

@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(18px)}
.reveal.is-in{opacity:1;transform:none;transition:opacity .6s var(--ease), transform .6s var(--ease)}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* =============================================================
   Icon free styling
   The theme carries no decorative iconography. Hierarchy comes
   from rules, markers and spacing instead.
   ============================================================= */

/* Cards lead with a short accent rule where the icon tile used to sit. */
.card h3,.card--flat h3{margin-top:0}
.card > h3:first-child::before,
.card__body > h3:first-child::before{
  content:"";display:block;width:34px;height:3px;border-radius:2px;
  background:var(--green);margin-bottom:16px;
}
.card--orange > h3:first-child::before{background:var(--orange)}

/* List markers replace the tick icons. */
.checklist li::before{
  content:"";flex:none;width:7px;height:7px;border-radius:50%;
  background:var(--green);margin-top:9px;
}
.checklist--orange li::before{background:var(--orange)}
.cond-list li::before{
  content:"";flex:none;width:6px;height:6px;border-radius:50%;
  background:var(--green);margin-top:8px;
}
.hero__points li::before{
  content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--green-light);
}
.hero--plain .hero__points li::before{background:var(--green)}
.chip{padding:9px 15px}

/* Contact details sit against a rule rather than an icon tile. */
.contact-list li{display:block;padding-left:15px;border-left:2px solid var(--green-soft)}
.contact-list strong{margin-bottom:3px}

/* Trust strip is text only. */
.trust__item{justify-content:center;text-align:center;padding:10px}
.trust__item strong{margin-bottom:2px}

/* Testimonials open with a rule instead of a quote mark. */
.quote{padding-top:30px}
.quote blockquote::before{
  content:"";display:block;width:40px;height:3px;border-radius:2px;
  background:var(--green);margin:0 auto 18px;
}

/* Accordion toggle drawn in CSS, so it still reads as expandable. */
.acc__ico{position:relative}
.acc__ico::before,.acc__ico::after{
  content:"";position:absolute;top:50%;left:50%;background:currentColor;border-radius:2px;
  transform:translate(-50%,-50%);transition:opacity .2s var(--ease);
}
.acc__ico::before{width:13px;height:2px}
.acc__ico::after{width:2px;height:13px}
.acc.is-open .acc__ico{transform:none}
.acc.is-open .acc__ico::after{opacity:0}

/* Social links are words now. */
.socials{flex-wrap:wrap;gap:8px 18px}
.socials a{
  width:auto;height:auto;border:0;border-radius:0;display:inline;
  font-size:.9rem;text-decoration:underline;text-underline-offset:3px;
}
.socials a:hover{background:none;transform:none;color:var(--green-light)}

/* Footer contact list without icon columns. */
.footer-contact li{display:block}

/* The phone control in the header shows a word rather than a handset. */
.header__phone-short{display:none}
@media (max-width:1100px){
  .header__phone-number{display:none}
  .header__phone-short{display:inline}
  .header__phone{
    border:1px solid var(--line);border-radius:var(--radius-pill);
    padding:11px 18px;font-size:.9rem;
  }
}

/* Back to top is a small text control. */
.to-top{
  width:auto;height:auto;border-radius:var(--radius-pill);padding:10px 16px;
  font-family:var(--font-head);font-weight:600;font-size:.82rem;letter-spacing:.04em;
}

/* Choice buttons in the booking form. */
.choice span{justify-content:flex-start;gap:0}

/* =============================================================
   Mobile refinements
   Verified at 320px and 375px against the live site.
   ============================================================= */

/* Form fields must never force their own intrinsic width. A date input in
   particular reports a wide minimum, which was squeezing the field beside it. */
input,select,textarea{min-width:0;max-width:100%}
input[type="date"]{-webkit-appearance:none;appearance:none}
input[type="date"]::-webkit-date-and-time-value{text-align:left}

/* The theme always renders its own booking button in the header and in the
   drawer, so a Book item in the menu itself would appear twice. */
.nav li.b2b-book,
.drawer li.b2b-book{display:none}

/* Comfortable tap targets in the footer and the drawer. */
.site-footer li a,
.footer-bottom a{display:inline-block;padding:3px 0}

/* Long addresses and email addresses must wrap rather than push the layout. */
body{overflow-wrap:break-word}
.contact-list a,.footer-contact a,.topbar a{overflow-wrap:anywhere}

@media (max-width:980px){
  /* Sticky is useful beside the form, but not when it sits below it. */
  .booking-summary{position:static;top:auto}
}

@media (max-width:620px){
  /* One field per row. Two columns at this width clipped the time select. */
  .form-grid{grid-template-columns:1fr}
  .entry-content table{display:block;overflow-x:auto}
  .map-frame iframe{height:260px}
  .booking-embed,.booking-embed iframe{min-height:520px}
}

@media (max-width:560px){
  /* Full width calls to action read better than two uneven pills. */
  .hero .btn-row .btn,
  .cta-band .btn-row .btn,
  .section-head + .btn-row .btn,
  .btn-row--center .btn{width:100%}
  .btn-row{gap:10px}
}

@media (max-width:420px){
  .booking-actions{flex-direction:column-reverse;align-items:stretch}
  .booking-actions .btn{width:100%}
  .btn{padding:14px 20px}
}

@media (max-width:768px){
  /* The fixed action bar already occupies this corner. */
  .to-top{display:none}
}

@media (max-width:700px){
  /* Less of the photo is lost when the hero is not unnecessarily tall. */
  .hero__inner{padding-top:clamp(52px,12vw,80px);padding-bottom:clamp(44px,10vw,70px)}
  /* A vertical wash keeps text readable without blacking out the subject. */
  .hero::after{background:linear-gradient(180deg,rgba(10,12,11,.88) 0%,rgba(10,12,11,.72) 45%,rgba(10,12,11,.62) 100%)}
  .hero--plain::after{background:linear-gradient(180deg,var(--green-tint) 0%,#fff 62%)}
}

/* -------------------------------------------------------------
   Tablets and unfolded foldables (roughly 700px to 1024px)
   Single column sections would otherwise stretch text far too wide.
   ------------------------------------------------------------- */
@media (min-width:700px) and (max-width:1024px){
  .testimonials{max-width:660px;margin-left:auto;margin-right:auto}
  .split__media{max-width:640px;margin-left:auto;margin-right:auto}
  .form-card{max-width:720px;margin-left:auto;margin-right:auto}
  .booking > div:first-child,
  .booking-summary{max-width:720px;margin-left:auto;margin-right:auto}
  .accordion{max-width:720px}
  .map-frame iframe{height:340px}
}

/* -------------------------------------------------------------
   Narrow phones and folded cover screens (360px and under)
   ------------------------------------------------------------- */
@media (max-width:768px){
  /* The fixed bar at the bottom already offers Call, so the header
     does not need to as well. */
  .header__phone{display:none}
}

@media (max-width:380px){
  .brand__tag{display:none}
}

@media (max-width:360px){
  .wrap{padding-left:16px;padding-right:16px}
  h1{font-size:1.85rem}
  h2{font-size:1.5rem}
  .hero__lead,.lead{font-size:1rem}
  .btn{padding:14px 18px;font-size:.9rem}
  .btn--lg{padding:16px 20px;font-size:.95rem}
  .action-bar{padding-left:10px;padding-right:10px;gap:8px}
  .action-bar .btn{padding:13px 8px;font-size:.85rem}
  .card{padding:24px 20px}
  .card--flat{padding:20px 18px}
  .form-card{padding:20px 16px}
  .acc__btn{padding:17px 16px;font-size:.95rem}
  .booking-step{font-size:.78rem;padding:8px 11px}
  .quote{padding:26px 20px 24px}
  .section-head{margin-bottom:30px}
}

@media print{
  .site-header,.site-footer,.action-bar,.to-top,.drawer,.cta-band{display:none!important}
  body{padding:0;font-size:12pt;color:#000}
  a{color:#000;text-decoration:underline}
}
