/* Sport-Fit landing shell: header + footer for the 23 condition landing pages ONLY.
   Loaded only by includes/landing-header.php. All selectors are prefixed
   .lp-hdr / .lp-mnav / .lp-ftr, so nothing here can affect any other page
   (the html/body rule below is safe for the same reason: only these pages load it). */

/* fallback heights; landing-shell.js overwrites with the real measured height */
:root{ --lp-hdr-h:74px; }
@media (max-width:1099px){ :root{ --lp-hdr-h:68px; } }

/* style.css sets overflow-x:hidden on BOTH html and body, which turns body into
   its own scroll box and silently kills position:sticky. clip hides sideways
   overflow the same way without creating a scroll box, so the header sticks. */
html,body{ overflow-x:visible; }
html{ overflow-x:hidden; }
@supports (overflow:clip){ html,body{ overflow-x:clip; } }

/* section jumps land below the sticky bar */
main.clp section[id]{ scroll-margin-top:calc(var(--lp-hdr-h) + 8px); }
/* style.css adds scroll-padding-top for the sitewide header; the sections'
   scroll-margin already clears the landing header, so don't add both */
html{ scroll-padding-top:0; }

/* ---------------- HEADER ---------------- */
.lp-hdr{
  position:-webkit-sticky; position:sticky; top:0; z-index:900;
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:saturate(1.4) blur(10px); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid #dbe7f2;
  padding-top:env(safe-area-inset-top,0px);
  padding-left:env(safe-area-inset-left,0px);
  padding-right:env(safe-area-inset-right,0px);
  font-family:var(--ff-body,'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif);
  transition:box-shadow .2s ease;
}
.lp-hdr.is-scrolled{ box-shadow:0 6px 20px rgba(10,40,80,.08); }
.lp-hdr *,.lp-hdr *::before,.lp-hdr *::after{ box-sizing:border-box; }

/* desktop: logo | nav | call + book, one row */
.lp-hdr__bar{
  max-width:1240px; margin:0 auto; padding:0 clamp(12px,3vw,24px);
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center;
  column-gap:clamp(12px,2vw,28px); min-height:74px;
}
.lp-hdr__logo{ display:flex; align-items:center; flex:0 0 auto; text-decoration:none; padding:6px 0; }
.lp-hdr__logo img{ display:block; height:56px; width:auto; max-width:none; }
.lp-hdr__logo-txt{ font-weight:800; font-size:1.05rem; line-height:1.1; color:#1a4d8f; }
.lp-hdr__logo-txt small{ display:block; font-size:.62rem; font-weight:600; color:#0096c7; }

.lp-hdr__nav{ position:relative; min-width:0; }
.lp-hdr__list{
  display:flex; align-items:stretch; height:74px; margin:0; padding:0; list-style:none;
  overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch;
  scrollbar-width:none; overscroll-behavior-x:contain;
}
.lp-hdr__list::-webkit-scrollbar{ display:none; }
.lp-hdr__list > li{ flex:0 0 auto; display:flex; }
/* centres when it fits, scrolls from the start (no clipped first item) when it does not */
.lp-hdr__list > li:first-child{ margin-left:auto; }
.lp-hdr__list > li:last-child{ margin-right:auto; }

.lp-hdr__link{
  position:relative; display:flex; align-items:center; min-height:44px;
  padding:0 clamp(10px,1.3vw,20px);
  font-size:15px; font-weight:700; line-height:1; letter-spacing:.005em; white-space:nowrap;
  color:#3a5a80; text-decoration:none; -webkit-tap-highlight-color:transparent;
  transition:color .18s ease;
}
.lp-hdr__link::after{
  content:""; position:absolute; left:clamp(10px,1.3vw,20px); right:clamp(10px,1.3vw,20px); bottom:0;
  height:3px; border-radius:3px 3px 0 0; background:#00b4d8;
  transform:scaleX(0); transform-origin:center; transition:transform .22s ease;
}
.lp-hdr__link:hover{ color:#1a4d8f; }
.lp-hdr__link.is-active{ color:#0e2f5a; }
.lp-hdr__link.is-active::after{ transform:scaleX(1); }
.lp-hdr__link:focus-visible{ outline:2px solid #1a4d8f; outline-offset:-3px; border-radius:6px; }

/* edge fades when the strip can scroll (toggled by JS) */
.lp-hdr__nav::before,.lp-hdr__nav::after{
  content:""; position:absolute; top:0; bottom:0; width:22px; z-index:2; pointer-events:none;
  opacity:0; transition:opacity .2s ease;
}
.lp-hdr__nav::before{ left:0;  background:linear-gradient(90deg,#fff,rgba(255,255,255,0)); }
.lp-hdr__nav::after{  right:0; background:linear-gradient(270deg,#fff,rgba(255,255,255,0)); }
.lp-hdr.can-left  .lp-hdr__nav::before{ opacity:1; }
.lp-hdr.can-right .lp-hdr__nav::after{  opacity:1; }

/* call + book (+ burger below desktop) */
.lp-hdr__cta{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.lp-hdr__call,.lp-hdr__book{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  min-height:42px; margin:0; padding:0 16px; border-radius:999px;
  font:700 14px/1 var(--ff-body,'Inter',system-ui,sans-serif); white-space:nowrap; text-decoration:none;
  cursor:pointer; -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent;
  transition:transform .15s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.lp-hdr__call svg,.lp-hdr__book svg{ flex:0 0 auto; }
.lp-hdr__call{ background:#fff; color:#1a4d8f; border:1.5px solid #1a4d8f; }
.lp-hdr__call:hover{ background:#1a4d8f; color:#fff; }
.lp-hdr__book{ border:0; color:#fff; background:linear-gradient(135deg,#00b4d8,#1a4d8f); box-shadow:0 6px 16px rgba(26,77,143,.22); }
.lp-hdr__book:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(26,77,143,.3); }
.lp-hdr__call:focus-visible,.lp-hdr__book:focus-visible,.lp-hdr__logo:focus-visible,.lp-hdr__burger:focus-visible{ outline:2px solid #1a4d8f; outline-offset:2px; }

/* burger: hidden on desktop, same look as the sitewide .nav-burger */
.lp-hdr__burger{
  display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:44px; height:44px; margin:0; padding:0; border:0; border-radius:10px;
  background:rgba(0,180,216,.1); color:#1a4d8f; cursor:pointer; flex:0 0 auto;
  -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent;
  transition:background .18s ease;
}
.lp-hdr__burger:hover{ background:rgba(0,180,216,.18); }
.lp-hdr__burger span{
  display:block; width:22px; height:2.5px; border-radius:2px; background:currentColor;
  transition:transform .25s ease,opacity .2s ease;
}
.lp-hdr__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.lp-hdr__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.lp-hdr__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* tablet + phone: logo | call + book + burger, one row; section links move into the panel */
@media (max-width:1099px){
  .lp-hdr__bar{ grid-template-columns:minmax(0,1fr) auto; min-height:68px; padding:0 clamp(12px,3vw,24px); }
  .lp-hdr__nav{ display:none; }
  .lp-hdr__burger{ display:inline-flex; }
  .lp-hdr__logo img{ height:52px; }
}
@media (max-width:600px){
  .lp-hdr__bar{ min-height:64px; column-gap:10px; padding:0 14px; }
  .lp-hdr__cta{ gap:8px; }
  .lp-hdr__call{ width:42px; padding:0; }         /* icon-only call button */
  .lp-hdr__call-txt{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .lp-hdr__book{ padding:0 14px; font-size:13.5px; }
  .lp-hdr__logo img{ height:48px; }
}
@media (max-width:380px){
  .lp-hdr__bar{ padding:0 10px; column-gap:8px; }
  .lp-hdr__cta{ gap:6px; }
  .lp-hdr__book svg{ display:none; }
  .lp-hdr__book{ padding:0 12px; font-size:13px; }
  .lp-hdr__call,.lp-hdr__burger{ width:40px; height:40px; min-height:40px; }
  .lp-hdr__book{ min-height:40px; }
  .lp-hdr__logo img{ height:42px; }
}

/* ---------------- MOBILE PANEL (slide-in, like the sitewide mobile nav) ---------------- */
.lp-mnav-overlay{
  position:fixed; inset:0; z-index:1099;
  background:rgba(7,28,54,.5);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
  opacity:0; visibility:hidden; transition:opacity .3s ease,visibility .3s ease;
}
.lp-mnav-overlay.is-open{ opacity:1; visibility:visible; }

.lp-mnav{
  position:fixed; top:0; left:0; bottom:0; z-index:1100;
  width:min(340px,86vw); height:100vh; height:100dvh;
  display:flex; flex-direction:column;
  background:#fff; box-shadow:4px 0 28px rgba(5,42,97,.16);
  transform:translateX(-100%); visibility:hidden;
  transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s linear .35s;
  padding-top:env(safe-area-inset-top,0px); padding-left:env(safe-area-inset-left,0px);
  font-family:var(--ff-body,'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif);
  overscroll-behavior:contain;
}
.lp-mnav.is-open{ transform:translateX(0); visibility:visible; transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s; }
.lp-mnav *,.lp-mnav *::before,.lp-mnav *::after{ box-sizing:border-box; }

.lp-mnav__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 16px 12px 20px; border-bottom:1px solid #edf2f8; flex:0 0 auto;
}
.lp-mnav__logo{ display:flex; align-items:center; text-decoration:none; }
.lp-mnav__logo img{ display:block; height:48px; width:auto; max-width:none; }
.lp-mnav__close{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; margin:0; padding:0; border:0; border-radius:50%;
  background:#f1f6fb; color:#1a4d8f; cursor:pointer;
  -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent;
  transition:background .18s ease;
}
.lp-mnav__close:hover{ background:#e2edf8; }

.lp-mnav__label{
  margin:0; padding:18px 20px 6px; flex:0 0 auto;
  font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#7f96b3;
}
.lp-mnav__list{
  flex:1 1 auto; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  margin:0; padding:0 0 8px; list-style:none;
}
.lp-mnav__list > li{ border-bottom:1px solid #f1f4f8; }
.lp-mnav__list > li:last-child{ border-bottom:0; }
.lp-mnav__link{
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:52px; padding:12px 20px;
  font-size:16px; font-weight:600; line-height:1.3; color:#1a1a2e; text-decoration:none;
  -webkit-tap-highlight-color:transparent; transition:color .18s ease,background .18s ease;
}
.lp-mnav__link svg{ color:#9fb3cb; flex:0 0 auto; transition:transform .18s ease,color .18s ease; }
.lp-mnav__link:hover,.lp-mnav__link:focus-visible{ color:#1a4d8f; background:#f5f9ff; outline:none; }
.lp-mnav__link:hover svg{ transform:translateX(2px); color:#1a4d8f; }
.lp-mnav__link.is-active{ color:#1a4d8f; background:#eef6fd; }
.lp-mnav__link.is-active::before{ content:""; position:absolute; left:0; top:10px; bottom:10px; width:3px; border-radius:0 3px 3px 0; background:#00b4d8; }
.lp-mnav__link.is-active svg{ color:#00b4d8; }

.lp-mnav__foot{
  flex:0 0 auto; display:grid; gap:10px;
  padding:14px 20px calc(16px + env(safe-area-inset-bottom,0px));
  border-top:1px solid #edf2f8; background:#fff;
}
.lp-mnav__call,.lp-mnav__book{
  display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  min-height:48px; margin:0; padding:0 16px; border-radius:10px;
  font:700 15px/1 var(--ff-body,'Inter',system-ui,sans-serif); text-decoration:none; white-space:nowrap;
  cursor:pointer; -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent;
  transition:background .18s ease,color .18s ease,transform .15s ease;
}
.lp-mnav__call{ background:#fff; color:#1a4d8f; border:1.5px solid #1a4d8f; }
.lp-mnav__call:hover{ background:#1a4d8f; color:#fff; }
.lp-mnav__book{ border:0; color:#fff; background:linear-gradient(135deg,#00b4d8,#1a4d8f); box-shadow:0 6px 16px rgba(26,77,143,.22); }
.lp-mnav__book:hover{ transform:translateY(-1px); }
.lp-mnav__close:focus-visible,.lp-mnav__call:focus-visible,.lp-mnav__book:focus-visible,.lp-mnav__logo:focus-visible{ outline:2px solid #1a4d8f; outline-offset:2px; }

/* page scroll locked while the panel is open */
html.lp-mnav-lock,html.lp-mnav-lock body{ overflow:hidden; }

/* the panel only exists below desktop */
@media (min-width:1100px){
  .lp-mnav,.lp-mnav-overlay{ display:none; }
}

/* ---------------- SECTION HEADS ----------------
   core.css lays .clp-head out as a 2-column grid (title left, intro right).
   On the landing pages: one centred column, eyebrow > heading > intro. */
main.clp .clp-head{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:clamp(14px,1.6vw,18px);
  max-width:100%; margin:0 auto clamp(2rem,4vw,3rem);
}
main.clp .clp-head > div{ display:flex; flex-direction:column; align-items:center; min-width:0; width:100%; }
main.clp .clp-head .clp-eyebrow{
  display:inline-flex; align-items:center; justify-content:center; gap:.65rem;
  margin:0 0 clamp(10px,1.2vw,14px); max-width:100%;
}
main.clp .clp-head .clp-eyebrow::before,
main.clp .clp-head .clp-eyebrow::after{
  content:""; flex:0 0 auto; display:block; width:22px; height:2px; margin:0; border-radius:2px; background:currentColor;
}
main.clp .clp-head .clp-h2{ max-width:40ch; margin:0 auto; }
main.clp .clp-head .clp-intro{ max-width:90ch; margin:0 auto; }
/* final CTA section */
main.clp .clp-final .clp-h2{ max-width:50ch; }
main.clp .clp-final-lead{ max-width:90ch; }
main.clp .clp-head .clp-count{ margin-top:clamp(12px,1.4vw,16px); }

@media (max-width:620px){
  main.clp .clp-head{ gap:12px; }
  main.clp .clp-head .clp-eyebrow{ gap:.5rem; }
  main.clp .clp-head .clp-eyebrow::before,
  main.clp .clp-head .clp-eyebrow::after{ width:16px; }
  main.clp .clp-head .clp-h2{ max-width:100%; }
  main.clp .clp-head .clp-intro{ font-size:.98rem; }
}

/* ---------------- HERO BUTTONS: Book Your First Visit + WhatsApp ----------------
   Same height, side by side while they fit, full width and stacked on phones. */
/* identical box for both, so they sit on one line at the same height
   (the site's .button is display:flex - a full-width block - which pushed WhatsApp below) */
main.clp .clp-actions > a.clp-btn-book,
main.clp .clp-actions > a.clp-btn-wa{
  display:inline-flex !important; align-items:center; justify-content:center; gap:.6rem;
  box-sizing:border-box; min-height:54px; margin:0; padding:.9rem 1.5rem;
  border:1.5px solid transparent; font-size:1rem; line-height:1.2; white-space:nowrap;
  flex:1 1 240px;            /* equal halves on one line; each full width once they wrap */
}
main.clp .clp-actions > a.clp-btn-wa{ border-color:#cfe0ee; }
main.clp .clp-btn-book{ cursor:pointer; }
main.clp .clp-btn-book svg{ width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
main.clp .clp-btn-book > span{ transition:transform .25s ease; }
main.clp .clp-btn-book:hover > span{ transform:translateX(3px); }
main.clp .clp-btn-book:focus-visible,
main.clp .clp-actions > .clp-btn-wa:focus-visible{ outline:2px solid #1a4d8f; outline-offset:3px; }
@media (max-width:640px){
  main.clp .clp-actions{ gap:.7rem; }
  main.clp .clp-actions > a.clp-btn-book,
  main.clp .clp-actions > a.clp-btn-wa{ width:100%; min-height:52px; }
}
@media (max-width:360px){
  main.clp .clp-actions > a.clp-btn-book,
  main.clp .clp-actions > a.clp-btn-wa{ padding-left:1rem; padding-right:1rem; font-size:.95rem; }
}

/* ---------------- HERO IMAGE (imt-treatment.webp, landscape) ----------------
   A centred crop cut the clinic's wall logo in half at most widths; shifting right keeps
   the therapist, the patient and the WHOLE logo. On narrow phones the centred crop
   leaves the logo out cleanly instead, so it stays there. */
@media (min-width:421px){
  main.clp .clp-visual > img{ object-position:79% 50%; }
}

/* ---------------- FOOTER ---------------- */
.lp-ftr{
  background:#03122b; color:#a9c8ee; border-top:1px solid #0b2447;
  padding:clamp(36px,5vw,56px) 0 calc(clamp(32px,4vw,48px) + env(safe-area-inset-bottom,0px));
  font-family:var(--ff-body,'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif);
}
.lp-ftr *,.lp-ftr *::before,.lp-ftr *::after{ box-sizing:border-box; }
.lp-ftr__grid{
  max-width:1200px; margin:0 auto;
  padding:0 max(clamp(16px,4vw,24px),env(safe-area-inset-left,0px)) 0 max(clamp(16px,4vw,24px),env(safe-area-inset-right,0px));
  display:grid; gap:32px clamp(28px,5vw,64px);
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);
  align-items:start;
}
.lp-ftr__col{ min-width:0; }
.lp-ftr__logo{ display:inline-block; margin:0 0 16px; line-height:0; }
.lp-ftr__logo img{ display:block; width:132px; max-width:100%; height:auto; }
.lp-ftr__h{
  position:relative; margin:0 0 16px; padding-bottom:10px;
  font:700 15px/1.3 var(--ff-body,'Inter',system-ui,sans-serif); letter-spacing:.01em; text-transform:none; color:#fff;
}
.lp-ftr__h::after{ content:""; position:absolute; left:0; bottom:0; width:32px; height:2px; border-radius:2px; background:#00b4d8; }
.lp-ftr__brand .lp-ftr__h{ padding-bottom:0; margin-bottom:6px; }
.lp-ftr__brand .lp-ftr__h::after{ display:none; }
.lp-ftr__t{ margin:0 0 8px; font-size:14px; line-height:1.7; font-style:normal; color:#a9c8ee; overflow-wrap:anywhere; }
.lp-ftr__tag{ margin-bottom:16px; }

.lp-ftr__contact{ margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.lp-ftr__contact li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.6; }
.lp-ftr__contact svg{ flex:0 0 auto; margin-top:3px; color:#00b4d8; }
.lp-ftr__contact address{ margin:0; font-style:normal; color:#a9c8ee; overflow-wrap:anywhere; }
.lp-ftr__tel{ color:#fff; font-weight:600; text-decoration:none; }
.lp-ftr__tel:hover{ color:#00b4d8; }

/* related pages: stacked links, full-width tap targets */
.lp-ftr__links{ margin:0; padding:0; list-style:none; }
.lp-ftr__links li{ border-bottom:1px solid rgba(169,200,238,.12); }
.lp-ftr__links li:last-child{ border-bottom:0; }
.lp-ftr__links a{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:44px; padding:10px 2px;
  font-size:14.5px; font-weight:500; line-height:1.35; color:#cfe0f5; text-decoration:none;
  transition:color .18s ease,padding .18s ease;
}
.lp-ftr__links a svg{ flex:0 0 auto; color:#5f86b5; transition:transform .18s ease,color .18s ease; }
.lp-ftr__links a:hover{ color:#fff; padding-left:6px; }
.lp-ftr__links a:hover svg{ color:#00b4d8; transform:translateX(2px); }

.lp-ftr__note{
  display:flex; align-items:flex-start; gap:12px; padding:16px 18px;
  border:1px solid rgba(169,200,238,.16); border-radius:12px; background:rgba(255,255,255,.03);
}
.lp-ftr__note svg{ flex:0 0 auto; margin-top:2px; color:#00b4d8; }
.lp-ftr__note p{ margin:0; font-size:13.5px; line-height:1.7; color:#a9c8ee; }

.lp-ftr a:focus-visible{ outline:2px solid #00b4d8; outline-offset:2px; border-radius:4px; }

/* tablet: brand + related side by side, note full width */
@media (max-width:980px){
  .lp-ftr__grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .lp-ftr__imp{ grid-column:1 / -1; }
}
/* phone: one column */
@media (max-width:620px){
  .lp-ftr__grid{ grid-template-columns:minmax(0,1fr); gap:28px; }
  .lp-ftr__imp{ grid-column:auto; }
  .lp-ftr__logo img{ width:120px; }
  .lp-ftr__links a{ font-size:15px; min-height:48px; }
}

@media (prefers-reduced-motion:reduce){
  .lp-hdr,.lp-hdr__link,.lp-hdr__link::after,.lp-hdr__book,.lp-hdr__call,.lp-hdr__burger span,.lp-hdr__nav::before,.lp-hdr__nav::after,
  .lp-mnav,.lp-mnav.is-open,.lp-mnav-overlay,.lp-mnav__link,.lp-mnav__link svg,.lp-ftr__links a,.lp-ftr__links a svg{ transition:none; }
}
