/* ==========================================================================
   Iron Spine Medical - global stylesheet
   Design source: Figma "Iron Spine Medical" (1600px artboard, 1500px content)

   Layout rule: every column from the Figma is expressed as a PERCENTAGE of the
   1500px content width, and every display size as clamp(min, vw, figma-size).
   The design therefore holds its exact Figma proportions at 1600px and scales
   cleanly through every laptop width and browser zoom level, instead of being
   correct at one width and breaking everywhere else.
   ========================================================================== */

:root{
  --brand:#32b0e5;          /* Figma variable "Color 2" */
  --ink:#535152;            /* Figma variable "Color"   */
  --tint:#eaf6fa;
  --line:#e5e7eb;
  --footer-text:#e2e8f0;
  --muted:#94a3b8;
  --maxw:1600px;
  --gutter:min(3.125vw,50px);   /* 50px at 1600 - scales so columns keep their ratio */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:#fff;
  color:var(--ink);
  font-family:'Poppins',Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:normal;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
button,input{font:inherit;color:inherit}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --------------------------------------------------------- shared pieces */
.h-section{
  font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(30px,3.44vw,55px);line-height:1.164;letter-spacing:-.03em;
  color:var(--ink);margin:0;
}
.h-section .accent{color:var(--brand)}

.tagline{
  display:inline-flex;align-items:center;
  background:var(--brand);color:#fff;
  font-weight:600;font-size:clamp(15px,1.375vw,22px);
  padding:1px 8px;
}
.tagline--invert{background:#fff;color:var(--brand)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10.595px;
  min-height:47px;padding:10px 16.951px;border:0;cursor:pointer;
  border-radius:12.714px;background:var(--brand);color:#fff;
  font-weight:700;font-size:clamp(14px,.99vw,15.892px);text-transform:capitalize;white-space:nowrap;
  filter:drop-shadow(0 10.595px 12.714px rgba(167,139,250,.25));
}
.btn img{width:19.07px;height:19.07px;flex:none}
.btn--ink{background:var(--ink);color:var(--brand)}

.phone-pill{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:clamp(200px,14.81vw,237px);height:clamp(48px,3.5vw,56px);
  padding-left:clamp(38px,2.95vw,45px);
  border:1px solid var(--ink);border-radius:12.71px;
  font-family:'Outfit',Arial,sans-serif;font-weight:700;
  font-size:clamp(18px,1.48vw,23.676px);letter-spacing:-.03em;color:var(--ink);
}
.phone-pill img{position:absolute;left:3px;top:50%;transform:translateY(-50%);
  width:clamp(40px,2.95vw,47.142px);height:auto;aspect-ratio:47.142/47.644}
.phone-pill--light{border-color:#fff;color:#fff}

/* ============================================================ top bar */
.topbar{display:flex;align-items:center;justify-content:center;gap:12px;
  min-height:28px;padding:4px 20px;background:var(--brand);color:#fff;
  font-size:clamp(13px,1vw,16px);text-align:center}
.topbar img{width:14.1px;height:14.5px;flex:none}

/* ============================================================= header */
.site-header{position:relative;z-index:30;background:#fff}
.site-header .container{display:flex;align-items:center;height:86px}
.site-header .logo{width:clamp(160px,13.31vw,213px);height:auto;aspect-ratio:213/64;object-fit:contain;flex:none}
.main-nav{margin-left:clamp(24px,6.75vw,108px)}
.main-nav>ul{display:flex;align-items:center;gap:clamp(16px,2.63vw,42px)}
.main-nav a{display:inline-block;font-weight:500;font-size:clamp(14px,1vw,16px);color:var(--ink);
  padding-bottom:5px;border-bottom:3px solid transparent;white-space:nowrap}
.main-nav a:hover{color:var(--brand)}
.main-nav a.is-active{border-bottom-color:var(--brand)}
.header-actions{display:flex;align-items:center;gap:clamp(12px,1.88vw,30px);margin-left:auto}
.header-actions .btn{min-height:55px;width:clamp(140px,10.19vw,163px)}
.nav-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:10px;background:#fff;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;margin-left:auto;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink)}
.mobile-nav{display:none}

/* =============================================================== hero */
.hero{position:relative;min-height:min(51.88vw,830px);overflow:hidden;isolation:isolate}
.hero__layer{position:absolute;inset:0;pointer-events:none}
.hero__layer img{width:100%;height:100%;object-fit:cover}
.hero__tint{position:absolute;inset:0;background:var(--brand);mix-blend-mode:color}
.hero__grad-a{position:absolute;inset:0;mix-blend-mode:multiply;
  background:linear-gradient(81.1648deg,rgb(83,81,82) 28.142%,rgba(83,81,82,0) 144.38%)}
.hero__grad-b{position:absolute;inset:0;
  background:linear-gradient(131.7075deg,rgba(83,81,82,.82) 16.114%,rgba(185,181,183,0) 65.808%)}
.hero__photo{position:absolute;inset:0}
.hero__photo img{width:100%;height:100%;object-fit:cover}
.hero .container{position:relative;min-height:min(51.88vw,830px);display:flex;flex-direction:column}
.hero__inner{display:flex;align-items:flex-start;justify-content:space-between;
  padding-top:clamp(40px,4.9vw,78.43px);flex:1}

.hero__copy{width:45.13%}                       /* 677 / 1500 */
.hero h1{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(28px,3.75vw,60px);line-height:1.35;letter-spacing:-.031em;color:#fff}
.hero h1 .lead{font-size:clamp(40px,5.63vw,90px);color:var(--brand)}
.hero .tagline{margin-top:clamp(14px,1.37vw,21.9px)}
.hero__intro{margin-top:clamp(12px,1.31vw,21px);font-size:clamp(14px,1vw,16px);color:#fff}

.lead-form{margin-top:clamp(20px,2.38vw,38px);display:flex;flex-direction:column;gap:clamp(14px,1.59vw,25.427px);
  padding:16.951px 21.189px 28.606px;border-radius:16.951px;box-shadow:0 12.714px 29.665px 0 rgba(0,0,0,.15)}
.lead-form__fields{display:flex;gap:12.714px;align-items:flex-end}
.lead-form__field{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6.357px}
.lead-form label{font-weight:600;font-size:11.654px;letter-spacing:.6992px;text-transform:uppercase;color:rgba(255,255,255,.7)}
.lead-form input:not(.sr-only){height:46.617px;width:100%;padding:0 12.714px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);border-radius:12.714px;
  font-family:'Inter',Arial,sans-serif;font-size:14.833px;color:#fff}
.lead-form input:not(.sr-only)::placeholder{color:rgba(255,255,255,.5)}
.lead-form .btn{width:100%;min-height:46.617px}

.hero__trust{position:absolute;left:1.05%;bottom:clamp(32px,4.9vw,78.43px);width:51.36%;  /* x 16.86 and w 821.8 of the 1600 frame */
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 0}
.hero__trust-item{display:flex;align-items:center;justify-content:center;gap:9.056px;flex:1 1 auto;min-width:0}
.hero__trust-item img{width:18.111px;height:18.111px;flex:none}
.hero__trust-item span{font-family:'Manrope',Arial,sans-serif;font-weight:500;
  font-size:clamp(12px,.92vw,14.715px);color:#fff;white-space:nowrap}
.hero__trust-sep{width:1px;height:20.375px;background:#fff;flex:none}

.injury-card{position:relative;flex:none;width:18.47%;                 /* 277 / 1500 */
  align-self:flex-start;margin-top:26.07%;                             /* 391.1 / 1500 */
  display:flex;flex-direction:column;gap:16px;
  padding:20px 18px;border:1px solid #fff;border-radius:20px;overflow:hidden;isolation:isolate}
.injury-card::before,.injury-card::after{content:"";position:absolute;inset:0;border-radius:20px;z-index:-1}
.injury-card::before{background:linear-gradient(154.7871deg,rgba(0,0,0,.73) 2.6772%,rgba(255,255,255,0) 93.086%)}
.injury-card::after{background:var(--brand);mix-blend-mode:soft-light}
.injury-card__eyebrow{font-family:'Inter',Arial,sans-serif;font-weight:700;font-size:12px;
  letter-spacing:2px;text-transform:uppercase;color:var(--brand)}
.injury-card__sub{font-size:13px;line-height:1.5;color:#fff;margin-top:6px}
.injury-card__divider{height:1px;background:#fff}
.injury-card ul{display:flex;flex-direction:column;gap:12px}
.injury-card li{display:flex;align-items:center;gap:12px;font-family:'Inter',Arial,sans-serif;
  font-weight:600;font-size:clamp(13px,.94vw,15px);color:#fff}
.injury-card li i{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;
  background:#fff;border:1px solid var(--brand);border-radius:12px}
.injury-card li i img{width:13px;height:13px}

/* ================================================== insurance carriers */
.carriers{background:#fff}
.carriers .container{display:flex;padding-block:clamp(16px,1.75vw,28px)}
.carriers__track{flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px 2%}
.carriers__track--dup{display:none}
.carriers .logo-box{position:relative;overflow:hidden;flex:none;background:#fff}
.carriers .logo-box img{position:absolute;max-width:none}
/* widths are the Figma box widths as a share of the 1500px content column */
.carrier-1{width:11.35%;aspect-ratio:170.296/76.51}
.carrier-2{width:11.98%;aspect-ratio:179.66/76.259}
.carrier-3{width:12.84%;aspect-ratio:192.539/77.345}
.carrier-4{width:11.35%;aspect-ratio:170.296/76.51}
.carrier-5{width:11.27%;aspect-ratio:169/104.619;background:none}
.carrier-6{width:12.81%;aspect-ratio:192.182/77.493;background:none}
.carrier-1 img,.carrier-5 img{inset:0;width:100%;height:100%;object-fit:cover}
.carrier-2 img{left:3.07%;top:-12.44%;width:94.79%;height:125.06%}
.carrier-3 img{left:3.42%;top:-15.27%;width:93.31%;height:130.66%}
.carrier-4 img{left:-38.05%;top:-99.45%;width:142%;height:316.75%}
.carrier-6 img{left:-.29%;top:-5.63%;width:100.29%;height:111.05%}

/* ============================================================== about */
.about{position:relative;overflow:hidden;background:#fff;padding-block:clamp(48px,4.69vw,75px)}
.about__bg{position:absolute;inset:0;pointer-events:none}
.about__bg img{width:100%;height:100%;object-fit:cover;opacity:.2}
.about__bg::after{content:"";position:absolute;inset:0;background:var(--brand);mix-blend-mode:color-burn}
.about .container{position:relative}
.about__row{display:flex;align-items:flex-start}
.about__thumbs{flex:none;width:15.53%;aspect-ratio:233/749;   /* 233 / 1500 */
  display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:3.6%}
.about__thumbs img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:10px;transform:scaleX(-1)}
.about__main{position:relative;flex:none;width:32.47%;margin-left:1.33%;  /* 487 / 1500, 20px gap */
  aspect-ratio:487/749;border-radius:10px;overflow:hidden}
.about__main img{position:absolute;left:-88.41%;top:0;width:230.67%;height:100%;max-width:none;object-fit:cover}
.about__copy{flex:none;width:47.13%;margin-left:2.27%}                 /* 707 / 1500, 34px gap */
.about__copy .tagline{margin-top:clamp(14px,1.56vw,25px)}
.about__text{margin-top:clamp(14px,1.56vw,25px);font-size:clamp(14px,1vw,16px);color:var(--ink)}
.about__text p.gap{margin-top:1.5em}
.about__copy .btn{margin-top:clamp(18px,2vw,32px)}

/* ========================================================= treatments */
.treatments{background:#fff;padding-block:clamp(56px,7.75vw,124px)}
.treatments h2{text-align:center}
.treatments__sub{margin:clamp(12px,1.13vw,18px) auto 0;width:67.6%;min-width:280px;
  text-align:center;font-size:clamp(14px,1vw,16px)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.67%;
  width:99.27%;margin:clamp(28px,3.13vw,50px) auto 0}
.service-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--brand);
  border-radius:20px;overflow:hidden;box-shadow:0 16px 32px -12px rgba(0,0,0,.07),0 2px 8px 0 rgba(0,0,0,.04)}
.service-card__img{position:relative;aspect-ratio:469/350;flex:none}
.service-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.service-card__accent{height:3px;background:var(--brand);flex:none}
.service-card__body{display:flex;flex-direction:column;gap:16px;padding:clamp(16px,1.5vw,24px);flex:1}
.service-card__text{display:flex;flex-direction:column;gap:12px}
.title-row{display:flex;align-items:center;gap:12px}
.title-row .icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;
  background:var(--tint);border-radius:12px}
.title-row .icon img{width:20px;height:20px}
.title-row h3{margin:0;flex:1;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(17px,1.375vw,22px);line-height:1.3;letter-spacing:-.01em;color:var(--ink)}
.service-card p{font-size:clamp(13px,.88vw,14px);line-height:1.5;color:var(--ink)}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{background:var(--tint);color:var(--brand);font-weight:600;font-size:12px;padding:6px 12px;border-radius:100px}
.card-cta{display:flex;align-items:center;gap:6px;margin-top:auto;padding-top:12px;
  border-top:1px solid var(--line);color:var(--brand);font-weight:600;font-size:clamp(14px,.94vw,15px)}
.card-cta img{width:14px;height:14px}

/* =========================================== a personalized approach */
.approach__box{position:relative;display:flex;align-items:flex-start;
  min-height:min(53.79vw,860.566px);padding:clamp(32px,3.89vw,62.29px) 2.93%;
  background:var(--ink);overflow:hidden}
.approach__glow{position:absolute;left:11.21%;top:48.95%;width:28.24%;height:auto;aspect-ratio:1}
.approach__spine{position:absolute;top:37.34%;bottom:0;overflow:hidden;mix-blend-mode:luminosity;pointer-events:none}
.approach__spine img{position:absolute;top:0;height:100%;max-width:none}
.approach__spine--a{left:.63%;width:25.89%}
.approach__spine--a img{left:-6.15%;width:202.58%}
.approach__spine--b{left:25.23%;width:20.26%}
.approach__spine--b img{left:-151.04%;width:258.89%}
.approach__copy{position:relative;z-index:2;flex:none;width:45.75%}   /* 646 / 1412 content box */
.approach__copy h2{color:#fff;letter-spacing:-.078em;text-transform:capitalize}  /* Figma -3.85px, a hair tighter so the line never wraps */
.approach__copy p{margin-top:clamp(8px,.75vw,12px);font-weight:600;font-size:clamp(14px,1vw,16px);color:#fff}
.approach__copy .phone-pill{margin-top:clamp(16px,1.34vw,21.5px)}
.steps{position:relative;z-index:2;flex:none;width:51.77%;margin-left:2.48%;  /* 731 / 1412, 35px gap */
  display:flex;flex-direction:column;gap:clamp(14px,1.5vw,24px)}
.step{display:flex;gap:clamp(12px,1.5vw,24px);align-items:stretch}
.step__rail{display:flex;flex-direction:column;align-items:center;gap:8px;width:clamp(40px,3.5vw,56px);flex:none}
.step__icon{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;flex:none;
  background:rgba(50,176,229,.11);border:1px solid var(--brand);border-radius:50%}
.step__icon img{width:42%;height:auto}
.step__line{width:2px;flex:1;min-height:30px;background:var(--brand)}
.step:last-child .step__line{flex:none;height:60px;min-height:0}
.step__card{flex:1;min-width:0;display:flex;flex-direction:column;gap:clamp(8px,.75vw,12px);
  padding:clamp(16px,1.5vw,24px);background:#fff;border:1px solid #1e294b;border-radius:16px;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.25))}
.step__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.step__head h3{margin:0;flex:1;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(16px,1.375vw,22px);color:var(--brand)}
.step__num{font-family:'Sora',Arial,sans-serif;font-weight:800;font-size:clamp(20px,1.75vw,28px);color:var(--brand)}
.step__card p{font-size:clamp(13px,.88vw,14px);line-height:1.5;color:var(--ink)}

/* ============================================ trusted pain + injury */
.trusted{margin-top:clamp(48px,6.25vw,100px);padding-bottom:clamp(40px,6.25vw,100px)}
.trusted .container{display:flex;align-items:flex-start}
.trusted__visual{position:relative;flex:none;width:26.23%;aspect-ratio:1;margin-left:.99%}  /* 393.5 / 1500 */
.trusted__glow{position:absolute;inset:0;width:100%;height:100%}
.trusted__figure{position:absolute;left:21.55%;top:11.63%;width:56.9%;height:76.73%;object-fit:contain}
.trusted__body{flex:1;min-width:0;margin-left:5.59%;padding-top:clamp(16px,1.95vw,31.25px)}
.trusted h2 .lead-ico{display:inline-block;width:clamp(30px,3.25vw,52px);height:auto;
  aspect-ratio:52/46.352;margin:0 clamp(8px,1.25vw,20px) 0 clamp(4px,1.375vw,22px);vertical-align:-.12em}
.trusted__lists{display:flex;margin-top:clamp(20px,3.13vw,50px)}
.trusted__list{font-weight:600;font-size:clamp(14px,1.367vw,21.872px);line-height:2.337;color:var(--ink)}
.trusted__list li{display:flex;align-items:center;gap:clamp(6px,.56vw,8.94px)}
.trusted__list li img{width:clamp(18px,1.68vw,26.9px);height:auto;aspect-ratio:27/25;flex:none}
.trusted__list--left{flex:0 1 48%;min-width:0}                         /* 483.61 / 1007.8 */
.trusted__divider{width:1px;align-self:stretch;background:#000;flex:none}
.trusted__list--right{flex:1 1 auto;min-width:0;margin-left:3.4%}

/* ======================================================= testimonials */
.testimonials{position:relative;overflow:hidden;background:#fff;padding-block:clamp(48px,6.31vw,101px)}
.testimonials__bg{position:absolute;inset:0;pointer-events:none}
.testimonials__bg img{width:100%;height:100%;object-fit:cover;opacity:.4}
.testimonials .container{position:relative}
.testimonials h2{text-align:center;text-transform:capitalize}
.testimonials__sub{margin-top:clamp(12px,1.13vw,18px);text-align:center;font-weight:600;font-size:clamp(14px,1vw,16px)}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.47%;align-items:stretch;
  width:92.13%;margin:clamp(28px,3.13vw,50px) auto 0}
.t-card{position:relative;display:flex;flex-direction:column;min-height:min(28.28vw,452.469px);
  padding:clamp(48px,4.63vw,74px) clamp(16px,1.5vw,24px) clamp(20px,2.72vw,43.5px) clamp(18px,2.25vw,36px);
  background:#fff;border-radius:20px}
.t-card__quote{position:absolute;left:1.79%;top:3.32%;width:11.21%;height:auto;aspect-ratio:1}
.t-card p{font-size:clamp(14px,1.125vw,18px);line-height:1.35;color:var(--ink)}
.t-card__meta{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:24px}
.t-card__name{font-weight:600;font-size:clamp(15px,1.125vw,18px);color:#152848}
.t-card__stars{width:clamp(84px,6.63vw,106px);height:auto;aspect-ratio:106/18;margin-top:clamp(12px,1.25vw,20px)}
.t-card__google{width:clamp(44px,3.75vw,60px);height:auto;aspect-ratio:1;flex:none}
.testimonials .btn{display:flex;width:fit-content;min-width:clamp(170px,12.63vw,202px);margin:clamp(28px,3.13vw,50px) auto 0}

/* =========================================================== cta band */
.cta-band{position:relative;overflow:hidden;
  padding-block:clamp(48px,8.06vw,129px) clamp(40px,5.25vw,84px);min-height:min(35.25vw,564px)}
.cta-band__bg{position:absolute;inset:0;pointer-events:none}
.cta-band__bg img{width:100%;height:100%;object-fit:cover}
.cta-band .container{position:relative}
.cta-band__copy{padding-left:.8%}
.cta-band h2{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(30px,3.91vw,62.51px);line-height:1.296;letter-spacing:-.03em;color:#fff}
.cta-band .tagline{margin-top:clamp(12px,1.25vw,20px)}
.cta-band p{margin-top:clamp(12px,1.38vw,22px);width:47.65%;min-width:280px;
  font-weight:600;font-size:clamp(14px,1vw,16px);color:#fff}
.cta-band__actions{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(12px,1.13vw,18px);
  margin-top:clamp(20px,2.19vw,35px)}
.cta-band .btn{width:clamp(260px,20.63vw,330px)}

/* =============================================================== map */
.map{height:min(16.25vw,260px)}   /* 260 / 1600 */
.map a,.map img{display:block;width:100%;height:100%;object-fit:cover}

/* ============================================================ footer */
.site-footer{display:flex;flex-direction:column;gap:clamp(28px,3.13vw,50px);
  padding:clamp(48px,5vw,80px) 6.25% clamp(28px,2.5vw,40px);
  background:var(--ink);border-top:4px solid var(--brand)}
.footer-top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:32px 2%}
.footer-col{display:flex;flex-direction:column;gap:clamp(16px,1.5vw,24px)}
.footer-brand{width:27.14%;min-width:280px}    /* 380 / 1400 */
.footer-links{width:15.71%;min-width:180px}    /* 220 / 1400 */
.footer-services{width:20%;min-width:200px}    /* 280 / 1400 */
.footer-contact{width:24.29%;min-width:260px}  /* 340 / 1400 */
.footer-logo{width:clamp(200px,19.14vw,268px);height:auto;aspect-ratio:268/79.837;object-fit:contain}
.footer-brand p{font-size:14px;line-height:1.6;color:var(--footer-text)}
.footer-col h3{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(19px,1.5vw,24px);letter-spacing:.5px;color:#fff}
.footer-head{display:flex;flex-direction:column;gap:12px}
.footer-accent{width:32px;height:3px;background:var(--brand);border-radius:2px}
.footer-list{display:flex;flex-direction:column;gap:16px}
.footer-list li{display:flex;align-items:center;gap:8px}
.footer-list li img{width:4px;height:4px;flex:none}
.footer-list a,.footer-list span{font-weight:500;font-size:14px;color:var(--footer-text)}
.footer-list a:hover{color:#fff}
.contact-list{display:flex;flex-direction:column;gap:18px}
.contact-item{display:flex;align-items:flex-start;gap:12px}
.contact-item .icon-circle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;
  background:#fff;border-radius:16px}
.contact-item .icon-circle img{width:14px;height:14px}
.contact-item__label{font-family:'Inter',Arial,sans-serif;font-weight:600;font-size:12px;color:var(--brand)}
.contact-item__value{margin-top:2px;font-weight:500;font-size:14px;color:var(--footer-text)}
.newsletter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px 40px;
  padding:clamp(20px,2vw,32px) clamp(20px,2.5vw,40px);background:var(--brand);border:1px solid #1e3a5f;border-radius:16px}
.newsletter__left{display:flex;align-items:center;flex-wrap:wrap;gap:20px 40px;flex:1 1 520px;min-width:0}
.newsletter__heading{width:320px;max-width:100%;flex:none;color:#fff}
.newsletter__heading strong{display:block;font-weight:700;font-size:16px}
.newsletter__heading span{display:block;margin-top:4px;font-family:'Inter',Arial,sans-serif;font-size:13px}
.newsletter form{display:flex;flex:1 1 320px;min-width:0;height:48px;border-radius:8px;overflow:hidden}
.newsletter input[type="email"]{flex:1;min-width:0;height:100%;padding:0 16px;border:0;background:#fff;
  font-family:'Inter',Arial,sans-serif;font-size:14px;color:var(--ink)}
.newsletter input[type="email"]::placeholder{color:var(--muted)}
.newsletter button{height:100%;padding:0 28px;border:0;background:var(--ink);color:#fff;
  font-weight:700;font-size:14px;cursor:pointer}
.socials{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.socials strong{font-family:'Inter',Arial,sans-serif;font-weight:700;font-size:12px;
  letter-spacing:1px;text-transform:uppercase;color:var(--ink)}
.socials div{display:flex;gap:8px}
.socials a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;
  background:var(--ink);border:1px solid #fff;border-radius:20px}
.socials a img{width:18px;height:18px}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 24px;
  padding-top:24px;border-top:1px solid #fff}
.footer-bottom p,.footer-bottom a{font-family:'Inter',Arial,sans-serif;font-size:13px;color:var(--muted)}
.footer-bottom a:hover{color:#fff}
.legal{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px}
.legal i{display:block;width:1px;height:12px;background:#1e3a5f}

/* ======================================================= plain pages */
.plain-page{padding-block:clamp(64px,7.5vw,120px)}
.plain-page p{margin-top:16px;font-size:16px;max-width:700px}
.plain-page p a{color:var(--brand);font-weight:600}
.plain-page .btn{margin-top:32px}

/* ===================================================================
   Breakpoints - the fluid rules above carry every laptop width, so these
   handle only the genuine layout changes: tablet stacking and mobile.
   =================================================================== */
@media (max-width:1200px){
  :root{--gutter:32px}
  .main-nav,.header-actions{display:none}
  .nav-toggle{display:flex}
  .mobile-nav{display:none;position:absolute;left:0;right:0;top:100%;z-index:40;background:#fff;
    padding:20px 32px 28px;box-shadow:0 18px 30px rgba(0,0,0,.12)}
  .mobile-nav.is-open{display:block}
  .mobile-nav>ul{display:flex;flex-direction:column;gap:18px}
  .mobile-nav a{font-weight:500;font-size:16px}
  .mobile-nav .btn{width:100%;margin-top:20px}
  .mobile-nav .phone-pill{width:100%;margin-top:12px}

  .hero{min-height:0}
  .hero .container{min-height:0}
  .hero__inner{flex-direction:column;padding-top:56px}
  .hero__copy{width:100%;max-width:677px}
  .injury-card{width:100%;max-width:420px;margin:32px 0 0}
  .hero__trust{position:static;left:auto;bottom:auto;width:100%;justify-content:flex-start;padding:32px 0 48px;gap:16px 24px}
  .hero__trust-item{width:auto;min-width:0}
  .hero__trust-sep{display:none}

  .about__row{flex-wrap:wrap}
  .about__thumbs{width:32%}
  .about__main{width:64%;margin-left:4%}
  .about__copy{width:100%;margin:36px 0 0}

  .services-grid{grid-template-columns:repeat(2,1fr);gap:28px;width:100%}

  .approach__box{flex-direction:column;min-height:0;padding:48px 32px}
  .approach__copy,.steps{width:100%}
  .steps{margin:36px 0 0}
  .approach__spine,.approach__glow{display:none}

  .trusted .container{flex-direction:column;align-items:center}
  .trusted__visual{width:300px;margin:0}
  .trusted__body{width:100%;margin:24px 0 0;padding-top:0}
  .trusted h2{text-align:center}
  .trusted h2 .lead-ico{margin-left:0}
  .trusted__lists{justify-content:center}
  .trusted__list--left,.trusted__list--right{flex:0 1 auto}

  .t-grid{grid-template-columns:1fr;justify-items:center;width:100%}
  .t-card{width:100%;max-width:446px;min-height:0}

  .cta-band{min-height:0;padding-block:72px}
  .cta-band__bg img{object-position:22% center}
  .cta-band p{width:100%}
  .cta-band__copy{padding-left:0}

  .site-footer{padding:60px 40px 32px}
  .footer-brand{width:100%}
  .footer-links,.footer-services,.footer-contact{width:auto;flex:1 1 200px}
  .socials{align-items:flex-start;width:100%}
}

@media (max-width:900px){
  .map img{object-position:33% center}
  .map{height:150px}
  /* logos become a continuously sliding strip instead of a tall stack */
  .carriers .container{overflow:hidden;gap:0}
  .carriers__track{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-start;width:max-content;
    gap:40px;padding-right:40px;animation:carriers-slide 26s linear infinite}
  .carriers__track--dup{display:flex}
  .carriers .logo-box{width:120px}
  .carrier-5{width:104px}
  .about__row{flex-direction:column}
  .about__thumbs{width:100%;grid-template-rows:none;grid-template-columns:repeat(2,1fr);gap:14px}
  .about__thumbs img{aspect-ratio:233/167.043;height:auto}
  .about__main{width:100%;margin:20px 0 0}
  .trusted__lists{flex-direction:column;gap:0}
  .trusted__divider{display:none}
  .trusted__list{line-height:2}
  .trusted__list--right{margin-left:0}
  .footer-top{gap:32px}
}

@media (max-width:600px){
  :root{--gutter:20px}
  .mobile-nav{padding:20px 20px 28px}
  .carriers .logo-box{width:104px}
  .carrier-5{width:92px}
  .lead-form{padding:16px;gap:18px}
  .lead-form__fields{flex-direction:column;align-items:stretch;gap:14px}
  .about__thumbs{grid-template-columns:1fr}
  .services-grid{grid-template-columns:1fr}
  .trusted__visual{width:230px}
  .t-card{padding:56px 20px 24px}
  .cta-band__actions{flex-direction:column;align-items:stretch}
  .cta-band .btn,.cta-band .phone-pill{width:100%;max-width:330px}
  .step{gap:14px}
  .step__rail{width:40px}
  .site-footer{padding:48px 20px 28px}
  .footer-links,.footer-services,.footer-contact{width:100%;flex:1 1 100%}
  .newsletter form{flex-direction:column;height:auto;gap:10px}
  .newsletter input[type="email"],.newsletter button{height:48px;border-radius:8px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}

/* ------------------------------- carrier strip animation (mobile) */
@keyframes carriers-slide{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){
  .carriers__track{animation:none}
  .carriers .container{overflow-x:auto}
}

/* ===================================================================
   Interior page components (About, Services)
   Same ratio rules as the home page: columns are % of the 1500px
   content width, display sizes are clamp(min, vw, figma).
   =================================================================== */

/* ------------------------------------------- interior page hero */
.page-hero{position:relative;min-height:min(51.88vw,830px);overflow:hidden;isolation:isolate}
.page-hero__bg,.page-hero__photo{position:absolute;inset:0;pointer-events:none}
.page-hero__bg img,.page-hero__photo img{width:100%;height:100%;object-fit:cover}
.page-hero__grad{position:absolute;inset:0;
  background:linear-gradient(78.5037deg,rgb(83,81,82) 3.3767%,rgba(83,81,82,0) 143.33%)}
.page-hero .container{position:relative;min-height:min(51.88vw,830px);display:flex;flex-direction:column;
  padding-top:clamp(40px,14.56vw,233px)}  /* h1 at y 347 of the frame */
.page-hero__copy{width:45.13%}                            /* 677 / 1500 */
.page-hero h1{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(28px,3.75vw,60px);line-height:1.35;letter-spacing:-.031em;color:#fff}
.page-hero h1 .lead{font-size:clamp(40px,5.63vw,90px);color:var(--brand)}
.page-hero .tagline{margin-top:clamp(16px,2.56vw,41px)}
.page-hero__intro{margin-top:clamp(12px,1.88vw,30px);width:95.42%;   /* 646 / 677 */
  font-size:clamp(14px,1vw,16px);color:#fff}
.page-hero__intro p+p{margin-top:1.5em}

/* --------------------------------- about band with a single photo */
.about--single .about__media{position:relative;flex:none;width:49.13%;  /* 737 / 1500 */
  aspect-ratio:737/749;border-radius:10px;overflow:hidden}
.about--single .about__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about--single .about__copy{width:47.13%;margin:8.18% 0 0 2.27%}       /* 707 / 1500, offset 122.7 */
.about--single .about__copy .tagline{margin-top:clamp(18px,2.25vw,33.76px)}
.about--single .about__text{margin-top:clamp(18px,2.25vw,33.77px)}
.about--single .about__copy .btn{margin-top:clamp(18px,1.6vw,26px)}

/* ------------------------------------ education + clinical training */
.edu{padding-block:clamp(40px,6.25vw,100px) 0}
.edu__box{position:relative;min-height:min(43.03vw,688.566px);text-align:center;
  padding:clamp(32px,5.52vw,88.29px) 2.93% clamp(28px,3.6vw,58px);
  background:var(--ink);border:5px solid var(--brand)}
.edu__box h2{color:#fff;text-transform:capitalize}
.edu__intro{margin:clamp(12px,1.56vw,25px) auto 0;width:43.07%;min-width:280px;
  font-weight:600;font-size:clamp(14px,1vw,16px);color:#fff}
.edu__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3.42vw,50px);
  width:86.26%;margin:clamp(28px,3.13vw,50px) auto 0;text-align:left}
.edu-card{display:flex;flex-direction:column;gap:clamp(16px,1.5vw,24px);
  padding:clamp(20px,2vw,32px);background:#fff;border:5px solid var(--brand);border-radius:16px;
  filter:drop-shadow(0 4px 10px rgba(17,41,44,.03))}
.edu-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.edu-card__degree{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1;min-width:0}
.edu-card__badge{display:inline-flex;padding:4px 10px;border-radius:100px;background:var(--brand);
  font-family:'Geist',Arial,sans-serif;font-weight:600;font-size:12px;text-transform:uppercase;color:#fff}
.edu-card__school{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(16px,1.25vw,20px);color:var(--brand)}
.edu-card__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;
  background:#eff6f6;border-radius:24px}
.edu-card__icon img{width:24px;height:24px}
.edu-card__rule{height:1px;background:#1e3a5f;opacity:.25}
.edu-card__meta{display:flex;flex-wrap:wrap;gap:12px 24px}
.edu-card__meta span{display:flex;align-items:center;gap:8px;
  font-family:'Geist',Arial,sans-serif;font-size:14px;color:var(--ink)}
.edu-card__meta img{width:16px;height:16px;flex:none}
.edu-card__focus{display:flex;flex-direction:column;gap:12px}
.edu-card__focus strong{font-family:'Geist',Arial,sans-serif;font-weight:600;font-size:14px;
  text-transform:uppercase;color:var(--ink)}
.edu-card__focus ul{display:flex;flex-direction:column;gap:10px}
.edu-card__focus li{display:flex;align-items:center;gap:10px;
  font-family:'Geist',Arial,sans-serif;font-size:14px;color:var(--ink)}
.edu-card__focus li img{width:16px;height:16px;flex:none}

/* --------------------------------------------- what makes us different */
.features{padding-block:clamp(48px,5.9vw,94px)}
.features h2{text-align:center}
.features__intro{margin:clamp(12px,1.5vw,24px) auto 0;width:84.47%;min-width:280px;  /* 1267 / 1500 */
  text-align:center;font-size:clamp(14px,1vw,16px);line-height:1.75}
.features__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.13vw,32px);
  width:93.33%;margin:clamp(28px,3.77vw,60px) auto 0}
.feature-card{display:flex;flex-direction:column;gap:clamp(16px,1.5vw,24px);min-height:min(20.31vw,325px);
  padding:clamp(24px,2.5vw,40px);background:#fff;border:1px solid var(--brand);border-radius:20px;
  filter:drop-shadow(0 12px 12px rgba(9,36,64,.04))}
.feature-card{transition:background-color .25s ease,border-color .25s ease}
.feature-card:hover,.feature-card:focus-within{background:var(--ink);border-color:var(--ink)}
.feature-card__head{display:flex;align-items:center;justify-content:space-between}
.feature-card__icon{display:flex;align-items:center;justify-content:center;width:clamp(52px,4vw,64px);
  aspect-ratio:1;flex:none;background:#f0f4f5;border-radius:50%}
.feature-card:hover .feature-card__icon,.feature-card:focus-within .feature-card__icon{background:#fff}
.feature-card__icon img{width:44%;height:auto}
.feature-card__dot{width:8px;height:8px;flex:none}
.feature-card h3{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(19px,1.5vw,24px);line-height:1.167;color:var(--ink)}
.feature-card:hover h3,.feature-card:focus-within h3{color:var(--brand)}
.feature-card p{font-size:clamp(14px,.94vw,15px);line-height:1.6;color:var(--ink)}
.feature-card:hover p,.feature-card:focus-within p{color:#fff}
.feature-card__more{display:flex;align-items:center;gap:8px;margin-top:auto;
  font-weight:600;font-size:14px;color:var(--brand)}
.feature-card__more img{width:14px;height:14px}

@media (max-width:1200px){
  .page-hero{min-height:0;padding-block:64px}
  .page-hero .container{min-height:0}
  .page-hero__copy{width:100%;max-width:677px}
  .page-hero__intro{width:100%}
  .about--single .about__media{width:100%;margin:0}
  .about--single .about__copy{width:100%;margin:32px 0 0}
  .edu__box{padding:48px 32px}
  .edu__grid{width:100%;grid-template-columns:1fr;gap:24px}
  .edu__intro{width:100%}
  .features__grid,.features__intro{width:100%}
}
@media (max-width:900px){
  .features__grid{grid-template-columns:1fr}
}

/* Services hero: its own gradient angle and a left-anchored crop (Figma 22:2074) */
.page-hero--services .page-hero__grad{
  background:linear-gradient(81.1648deg,rgb(83,81,82) 28.142%,rgba(83,81,82,0) 144.38%)}
.page-hero--services .page-hero__bg img,
.page-hero--services .page-hero__photo img{object-position:left center}
/* the dark box carries a 100px space after it; collapses with .trusted's
   margin-top on the home ordering, and supplies the gap before the reviews
   band on the services ordering */
.approach{margin-bottom:clamp(40px,6.25vw,100px)}

/* ===================================================================
   Service detail pages (Chiropractic Adjustments, SoftWave, Decompression)
   One template - per-page copy and photos only.
   =================================================================== */

/* service hero uses the home page's gradient angle, left-anchored crop */
.page-hero--service .page-hero__grad{
  background:linear-gradient(81.1648deg,rgb(83,81,82) 28.142%,rgba(83,81,82,0) 144.38%)}
.page-hero--service .page-hero__bg img,
.page-hero--service .page-hero__photo img{object-position:left center}

/* "What is ..." band reuses .about--single with its own photo ratio */
.about--service .about__media{aspect-ratio:737.056/640.566}
.about--service .about__copy{margin-top:6.97%}          /* 104.52 / 1500 */

/* ------------------------------------------- searching for a chiropractor */
.svc-cta{margin-block:clamp(40px,6.25vw,100px)}   /* margins collapse with neighbours */
.svc-cta__card{padding:clamp(28px,3.34vw,53.5px) 2.5%;border-radius:20px;text-align:center;
  background:linear-gradient(90deg,#32b0e5 13.467%,#535152 137.2%)}
.svc-cta__card h2{color:#fff;text-transform:capitalize}
.svc-cta__card p{margin:clamp(16px,1.88vw,30px) auto 0;width:67.17%;min-width:280px;   /* 1007.6 / 1500 */
  font-size:clamp(14px,1vw,16px);color:#fff}
.svc-cta__card p+p{margin-top:1.5em}
.svc-cta__card .btn{width:clamp(150px,10.19vw,163px);min-height:clamp(48px,3.44vw,55px);
  margin:clamp(20px,2.5vw,40px) auto 0}

/* ------------------------------------------------------- check pill lists */
.check-pill{display:flex;align-items:center;gap:10px;min-height:clamp(30px,2.19vw,35px);
  padding:1px 10px;color:#fff;font-weight:600;font-size:clamp(15px,1.375vw,22px)}
.check-pill img{width:clamp(19px,1.69vw,27px);height:auto;aspect-ratio:27/25;flex:none}
.benefit-list{display:flex;flex-direction:column;gap:clamp(12px,2.5vw,40px)}
.benefit-list .check-pill{background:var(--brand)}

/* dark box variant: benefit pills + note box instead of the numbered steps */
.approach__box--benefits{padding-top:clamp(36px,5.46vw,87.28px)}
.approach__box--benefits .approach__copy{width:62%}   /* heading runs to x 894 on this page, not 646 */
.approach__side{position:relative;z-index:2;flex:none;width:37.18%;margin-left:auto}  /* 525 / 1412 */
.approach__note{margin-top:clamp(18px,2.13vw,34px);padding:clamp(18px,1.95vw,31.25px) clamp(14px,1.56vw,25px);
  border:1px solid #fff;text-align:center}
.approach__note h3{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(18px,1.56vw,25px);line-height:1.28;letter-spacing:-.02em;color:var(--brand);text-transform:capitalize}
.approach__note p{margin-top:clamp(12px,1.19vw,19px);font-size:clamp(14px,1vw,16px);color:#fff}
.approach__note p+p{margin-top:1.5em}

/* ------------------------------------------- conditions we commonly address */
.conditions{margin-block:clamp(40px,6.25vw,100px)}
.conditions .container{display:flex;align-items:flex-start;gap:clamp(24px,1.6vw,26px)}
.conditions__copy{flex:1 1 auto;min-width:0;margin-left:.73%;padding-top:clamp(8px,1.21vw,19.4px)}
.conditions__sub{margin-top:clamp(14px,1.56vw,25px);width:47.13%;min-width:260px;
  font-size:clamp(14px,1vw,16px);color:var(--ink)}
.conditions__list{display:flex;flex-direction:column;gap:clamp(10px,1.56vw,25px);
  margin-top:clamp(18px,1.56vw,25px);width:76.6%}                  /* 622 / 812 column */
.conditions__list .check-pill{background:linear-gradient(180deg,#32b0e5 36.248%,#535152 197.67%)}
.conditions .btn{margin-top:clamp(20px,2.5vw,40px);width:clamp(220px,16.63vw,266px);color:#fff}
.conditions__media{flex:none;width:49.14%;aspect-ratio:737.056/779.434;   /* 737.056 / 1500 */
  border-radius:10px;overflow:hidden;position:relative}
.conditions__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ------------------------------------------------ why choose iron spine */
.why-choose{position:relative;overflow:hidden;padding-block:clamp(48px,7.38vw,118px)}
.why-choose__bg{position:absolute;inset:0;pointer-events:none}
.why-choose__bg img{width:100%;height:100%;object-fit:cover;opacity:.2}
.why-choose__bg::after{content:"";position:absolute;inset:0;background:var(--brand);mix-blend-mode:color-burn}
.why-choose .container{position:relative;display:flex;align-items:flex-start;gap:0}
/* columns are % of the 1500 content width: left ends where the card starts (801.6) */
.why-choose__left{flex:none;width:50.11%}
.why-choose__left h2{margin-left:12.69%}                      /* 95.375 / 751.6 */
.why-choose__left .trusted__visual{width:52.35%;             /* 393.5 / 751.6 */
  margin:clamp(10px,1.2vw,18px) 0 0 23.1%}                    /* 173.625 / 751.6 */
.why-choose__card{flex:none;width:43.53%;                     /* 653 / 1500 */
  padding:clamp(24px,3.63vw,58px) clamp(14px,2.57vw,41.12px);
  background:var(--ink);border-radius:30px;text-align:center}
.why-choose__card>p{padding-inline:clamp(6px,1.32vw,21.12px);font-size:clamp(14px,1vw,16px);color:#fff}
.why-choose__card>p+p{margin-top:1.5em}
.why-choose__inner{margin-top:clamp(20px,2.5vw,40px);         /* 570.76 wide inside the 653 card */
  padding:clamp(18px,1.94vw,31px) clamp(12px,1.32vw,21.12px);
  background:var(--brand);border-radius:20px}
.why-choose__inner p{font-size:clamp(14px,1vw,16px);color:#fff}

@media (max-width:1200px){
  .svc-cta__card p{width:100%}
  .approach__box--benefits{padding-top:48px}
  .approach__side{width:100%;margin:36px 0 0}
  .conditions .container{flex-direction:column-reverse;gap:28px}
  .conditions__copy{margin-left:0;width:100%;padding-top:0}
  .conditions__sub,.conditions__list{width:100%}
  .conditions__media{width:100%;aspect-ratio:16/10}
  .why-choose .container{flex-direction:column;align-items:center}
  .why-choose__left{width:100%;padding-left:0;text-align:center}
  .why-choose__left h2{margin-left:0}          /* the desktop indent must not survive stacking */
  .why-choose__left .trusted__visual{margin:24px auto 0}
  .why-choose__card{width:100%}
}

/* ===================================================================
   FAQ page — tabs + accordion (Figma 26:5526)
   =================================================================== */
.faq{padding-block:clamp(48px,5.32vw,85.19px) clamp(56px,6.28vw,100.43px)}
.faq-head h1{text-align:center;line-height:1.473;letter-spacing:0}

.faq-tabs{display:flex;gap:.835%;width:82.73%;margin:clamp(28px,3.89vw,62.19px) auto 0}  /* 1241 / 1500 */
.faq-tab{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:12px;white-space:nowrap;
  padding:16px clamp(10px,1.25vw,20px);background:#fff;border:1px solid var(--brand);border-radius:12px;
  font-weight:600;font-size:clamp(13px,.94vw,15px);color:var(--ink);text-align:left;cursor:pointer;
  transition:background-color .2s ease,color .2s ease}
.faq-tab::before{content:"";width:8px;height:8px;flex:none;border-radius:50%;background:currentColor}
.faq-tab[aria-selected="true"]{background:#ebf7fa;color:var(--brand)}

.faq-list{width:82.73%;margin:clamp(28px,3.89vw,62.19px) auto 0;                     /* 1241 / 1500 */
  display:flex;flex-direction:column;gap:clamp(16px,2.5vw,40px)}
.faq-item{background:#fff;border:1px solid var(--brand);border-radius:10px;
  box-shadow:0 4px 6px rgba(0,0,0,.02);transition:background-color .2s ease}
.faq-item__q{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;
  padding:clamp(16px,1.5vw,24px);background:none;border:0;cursor:pointer;text-align:left;
  font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(16px,1.5vw,24px);line-height:1.25;color:var(--ink)}
.faq-item__toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;
  background:#f8fafc;border-radius:50%}
.faq-item__toggle img{width:14px;height:14px}
.faq-item__toggle .minus,.faq-item[open] .faq-item__toggle .plus{display:none}
.faq-item[open] .faq-item__toggle .minus{display:block}
.faq-item__a{padding:0 clamp(16px,1.5vw,24px) clamp(16px,1.5vw,24px)}
.faq-item__a p{padding-top:8px;border-top:1px solid #e2e8f0;
  font-size:clamp(13px,.875vw,14px);line-height:1.6;color:var(--ink)}
/* open state */
.faq-item[open]{background:var(--brand)}
.faq-item[open] .faq-item__q{color:#fff}
.faq-item[open] .faq-item__toggle{background:#fff}
.faq-item[open] .faq-item__a p{color:#fff}
.faq-item__q::-webkit-details-marker{display:none}
.faq-panel[hidden]{display:none}

@media (max-width:1200px){
  .faq-tabs,.faq-list{width:100%}
  .faq-tabs{flex-wrap:wrap;gap:10px}
  .faq-tab{flex:1 1 auto;min-width:200px}
}
@media (max-width:600px){
  .faq-tab{flex:1 1 100%}
}
.faq-empty{width:82.73%;margin:clamp(28px,3.89vw,62.19px) auto 0;text-align:center;
  font-size:clamp(14px,1vw,16px);color:var(--ink)}
.faq-empty a{color:var(--brand);font-weight:600}

/* ===================================================================
   Contact page (Figma 26:5969) — no hero, no CTA band
   =================================================================== */
.contact{padding-block:clamp(48px,6.25vw,100px) clamp(48px,6.28vw,100.5px)}
.contact .container{display:flex;align-items:flex-start;justify-content:space-between}
.contact__left{width:46.77%}                                   /* 701.5 / 1500 */
.contact__intro{margin-top:clamp(10px,.94vw,15px);font-size:clamp(14px,1vw,16px);line-height:1.5}
.contact__intro p+p{margin-top:1.5em}
.contact__details{margin-top:clamp(24px,2.78vw,44.5px);width:87.38%}   /* 613 of the 701.5 left column */
.contact-detail{display:flex;align-items:flex-start;gap:16px;padding-bottom:14px;margin-bottom:15px;
  border-bottom:1px solid rgba(83,81,82,.25)}
.contact-detail:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.contact-detail img{width:clamp(38px,2.75vw,44px);height:auto;aspect-ratio:1;flex:none}
.contact-detail h2{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(18px,1.375vw,22px);line-height:1.227;color:var(--brand)}
.contact-detail p{margin-top:2px;font-size:clamp(16px,1.25vw,20px);line-height:1.5;color:var(--ink)}

.contact-form{width:46.67%;                                    /* 700 / 1500 */
  display:flex;flex-direction:column;gap:24px;
  padding:clamp(20px,2.5vw,40px);background:#fff;border:1px solid var(--ink);border-radius:16px;
  filter:drop-shadow(0 8px 12px rgba(15,23,42,.04))}
.contact-form__row{display:flex;gap:16px}
.contact-form__field{display:flex;flex-direction:column;gap:6px;flex:1 1 0;min-width:0}
.contact-form label{font-family:'Inter',Arial,sans-serif;font-weight:600;font-size:13px;line-height:1.23;color:var(--ink)}
.contact-form label em{font-style:normal;color:#ef4444;margin-left:4px}
.contact-form input:not(.sr-only),.contact-form textarea{
  height:44px;padding:0 14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;
  font-family:'Inter',Arial,sans-serif;font-size:14px;color:var(--ink);width:100%}
.contact-form textarea{height:120px;padding:12px 14px;resize:vertical;line-height:1.5}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted)}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(50,176,229,.12)}
.contact-form__submit{display:flex;align-items:center;justify-content:center;gap:8px;
  height:48px;border:0;border-radius:8px;background:var(--brand);cursor:pointer;
  font-family:'Inter',Arial,sans-serif;font-weight:600;font-size:15px;color:#fff}
.contact-form__submit img{width:16px;height:16px}
.contact-form__legal{text-align:center;font-family:'Inter',Arial,sans-serif;font-size:12px;line-height:1.4;color:var(--ink)}
.contact-form__legal a{color:var(--brand)}

@media (max-width:1200px){
  .contact .container{flex-direction:column;gap:40px}
  .contact__left,.contact-form,.contact__details{width:100%}
}
@media (max-width:600px){
  .contact-form__row{flex-direction:column;gap:24px}
}

/* -------------------------------- Decompression Therapy page deltas
   Same service template, but: hero art is mirrored in Figma, the H1 word
   is longer, the benefit column is wider and carries 7 pills. */
.page-hero--decomp .page-hero__grad{
  background:linear-gradient(81.1648deg,rgb(83,81,82) 28.142%,rgba(83,81,82,0) 144.38%)}
.page-hero--decomp .page-hero__bg img,
.page-hero--decomp .page-hero__photo img{object-position:right center;transform:scaleX(-1)}
.page-hero--decomp .page-hero__copy{width:50.67%}        /* 760 / 1500 - "Decompression" at 90px */
.page-hero--decomp .page-hero__intro{width:85%}          /* 646 / 760 */
.about--decomp .about__copy{margin-top:7.77%}            /* 116.52 / 1500 */
.approach__box--decomp .approach__side{width:42.56%}     /* 601 / 1412 */
.approach__box--decomp .approach__note{margin-top:clamp(20px,2.5vw,40px)}
.conditions--decomp .conditions__sub{width:47.13%;min-width:min(100%,707px)}
/* decomp's pill column is 601 wide, so the copy column must give way:
   786.97 + 601 = 1387.97 inside the 1412 content box (Figma leaves 24px slack) */
.approach__box--decomp .approach__copy{width:55.73%}      /* 786.97 / 1412 */
.approach__box--decomp .approach__side{margin-left:0}     /* butts against the copy column, per Figma x880.97 */

/* ===================================================================
   Blog index (Figma 26:5120)
   =================================================================== */
.page-hero--blog .page-hero__grad{
  background:linear-gradient(81.1648deg,rgb(83,81,82) 28.142%,rgba(83,81,82,0) 144.38%)}
.page-hero--blog .page-hero__bg img,
.page-hero--blog .page-hero__photo img{position:absolute;left:.01%;top:-16.99%;
  width:105.36%;height:120.48%;object-fit:fill}   /* Figma's manual crop, both layers identical */
.page-hero--blog .container{padding-top:clamp(40px,15.25vw,244px)}
.page-hero--blog .page-hero__copy{margin-left:11.73%}   /* Figma nudges the copy to x226 */
.page-hero--blog h1{line-height:.9}

.blog-band{position:relative;overflow:hidden;padding-block:clamp(48px,5.55vw,88.79px)}
.blog-band__bg{position:absolute;inset:0;pointer-events:none}
.blog-band__bg img{width:100%;height:100%;object-fit:cover;opacity:.2}
.blog-band__bg::after{content:"";position:absolute;inset:0;background:var(--brand);mix-blend-mode:color-burn}
.blog-band .container{position:relative}
.blog-band h2{text-align:center}

/* ------------------------------------------------- featured article */
.featured-card{display:flex;align-items:flex-start;gap:2.75%;              /* 40 / 1452 content box */
  margin-top:clamp(24px,3.5vw,56px);padding:clamp(16px,1.5vw,24px);
  background:#fff;border:1px solid var(--brand);border-radius:24px;
  filter:drop-shadow(0 16px 16px rgba(0,0,0,.03))}
.featured-card__media{flex:none;width:33.06%;aspect-ratio:480/340;border-radius:16px;overflow:hidden}  /* 480 / 1452 */
.featured-card__media img{width:100%;height:100%;object-fit:cover}
.featured-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
.featured-card__meta,.post-card__meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.blog-badge{background:var(--brand);color:#fff;padding:4px 12px;border-radius:6px;
  font-weight:600;font-size:clamp(11px,.75vw,12px);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}
.featured-card__date{font-size:clamp(12px,.81vw,13px);color:var(--brand)}
.featured-card h3{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(20px,1.75vw,28px);line-height:1.3;color:var(--brand)}
.featured-card p{font-size:clamp(14px,1vw,16px);line-height:1.6;color:var(--ink)}
.featured-card__rule,.post-card__rule{height:1px;background:#e2e8f0}
.featured-card__foot,.post-card__foot{display:flex;align-items:center;justify-content:space-between;gap:16px}
.featured-card__author{display:flex;align-items:center;gap:12px}
.featured-card__author img{width:40px;height:40px;flex:none;border-radius:50%;object-fit:cover}
.featured-card__author strong{display:block;font-weight:700;font-size:14px;color:var(--ink)}
.featured-card__author span{display:block;font-size:12px;color:#1a2b4a}
.blog-read{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:var(--brand);white-space:nowrap}
.blog-read img{width:14px;height:14px}

/* --------------------------------------------------------- post grid */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1%;              /* 15 / 1500 */
  margin-top:clamp(40px,6.25vw,100px)}
.post-card{display:flex;flex-direction:column;gap:16px;padding:16px;
  background:#fff;border:1px solid var(--brand);border-radius:20px;overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.02)}
.post-card__media{aspect-ratio:458/220;border-radius:12px;overflow:hidden}
.post-card__media img{width:100%;height:100%;object-fit:cover}
.post-card__date{font-size:clamp(11px,.75vw,12px);color:#8391a5;white-space:nowrap}
.post-card__text{display:flex;flex-direction:column;gap:8px}
.post-card h3{margin:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(15px,1.125vw,18px);line-height:1.4;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post-card p{font-size:clamp(13px,.875vw,14px);line-height:1.5;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-card__foot{margin-top:auto}
.post-card__author{display:flex;align-items:center;gap:8px;font-weight:500;font-size:13px;color:var(--ink)}
.post-card__author::before{content:"";width:8px;height:8px;flex:none;border-radius:50%;background:var(--brand)}
.post-card .blog-read{font-size:13px}
.post-card .blog-read img{width:12px;height:12px}

@media (max-width:1200px){
  .page-hero--blog .page-hero__copy{margin-left:0}
  .featured-card{flex-direction:column;gap:20px}
  .featured-card__media{width:100%}
  .post-grid{grid-template-columns:repeat(2,1fr);gap:20px}
}
@media (max-width:768px){
  .post-grid{grid-template-columns:1fr}
}

/* ------------------------------------------- services dropdown */
.main-nav li{position:relative}
.main-nav .has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg)}
.sub-menu{position:absolute;left:-12px;top:100%;z-index:40;display:none;min-width:255px;padding:8px;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 30px rgba(0,0,0,.12)}
.main-nav .has-sub:hover .sub-menu,.main-nav .has-sub:focus-within .sub-menu{display:block}
.sub-menu a{display:block;padding:10px 12px;border:0;border-radius:8px;
  font-weight:500;font-size:clamp(13px,.94vw,15px);color:var(--ink);white-space:nowrap}
.sub-menu a:hover{background:var(--tint);color:var(--brand)}
/* mobile: the submenu is always expanded, indented under Services */
.mobile-nav .sub-menu{position:static;display:block;min-width:0;margin:10px 0 0 14px;padding:0 0 0 12px;
  border:0;border-left:2px solid var(--tint);border-radius:0;box-shadow:none}
.mobile-nav .sub-menu li+li{margin-top:10px}
.mobile-nav .sub-menu a{padding:0;font-size:15px}
.mobile-nav .has-sub>a::after{display:none}

/* ===================================================================
   Mobile resets for the page-scoped widths above.
   These rules are appended after the main breakpoints, so they must be
   restated here or their desktop widths survive the stacked layout.
   =================================================================== */
@media (max-width:1200px){
  .page-hero--decomp .page-hero__copy{width:100%;max-width:677px}
  .page-hero--decomp .page-hero__intro{width:100%}
  .approach__box--benefits .approach__copy,
  .approach__box--decomp .approach__copy{width:100%}
  .approach__box--decomp .approach__side{width:100%;margin:36px 0 0}
  .conditions--decomp .conditions__sub{width:100%;min-width:0}
  .about--decomp .about__copy{margin-top:32px}
  .why-choose__left h2{margin-left:0}
  .contact__details{width:100%}
}

/* ===================================================================
   Mobile heroes: the photo stays visible as a background and the copy
   sits in front of a vertical scrim. Alpha chosen from the measured
   luminance of the hero images (brightest is services-hero at 190),
   so white text clears ~4.3:1 at the lightest point.
   Every --variant is listed because those selectors outrank the base one.
   =================================================================== */
@media (max-width:1200px){
  .page-hero__grad,
  .page-hero--services .page-hero__grad,
  .page-hero--service .page-hero__grad,
  .page-hero--decomp .page-hero__grad,
  .page-hero--blog .page-hero__grad,
  .hero__grad-b{
    background:linear-gradient(180deg,rgba(83,81,82,.82) 0%,rgba(83,81,82,.62) 55%,rgba(83,81,82,.8) 100%)}
  .hero__grad-a{display:none}          /* the 81deg multiply only reads beside the desktop copy column */
  .hero__tint{opacity:.5}
  /* show the subject rather than an empty edge of the frame */
  .page-hero--decomp .page-hero__bg img,
  .page-hero--decomp .page-hero__photo img{object-position:center}
  .page-hero--services .page-hero__bg img,
  .page-hero--services .page-hero__photo img,
  .page-hero--service .page-hero__bg img,
  .page-hero--service .page-hero__photo img{object-position:center}
}
/* Home hero on mobile. The photo is 1.93:1 but the stacked hero is ~0.35:1, so a
   full-height cover crop blows the subject up to a torso close-up. Instead the
   photo keeps its own proportions across the top (subject spans 46-83%, centre
   63%) and fades into the scrim, with the copy below it. */
@media (max-width:1200px){
  .hero__photo{inset:0 0 auto 0;height:48%;
    -webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 62%,transparent 100%)}
  .hero__photo img{object-position:73% top}
  .hero__layer img{object-position:63% center}
}

/* ===================================================================
   Blog post (article) page
   =================================================================== */
.post{padding-block:clamp(40px,4.5vw,72px) clamp(48px,5vw,80px)}
.post__head{max-width:100%}
.post__back{display:inline-block;margin-bottom:16px;font-weight:600;font-size:14px;color:var(--brand)}
.post__head .blog-badge{display:inline-block;margin-bottom:16px}
.post__head h1{margin:0}
.post__meta{margin-top:12px;font-size:clamp(13px,.88vw,14px);color:#8391a5}
.post__media{margin-top:clamp(24px,2.5vw,40px);aspect-ratio:1500/560;border-radius:20px;overflow:hidden;position:relative}
.post__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post__body{max-width:100%;margin-top:clamp(28px,3vw,48px)}
.post__body h2{margin:clamp(28px,2.5vw,40px) 0 0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(22px,2vw,32px);line-height:1.25;letter-spacing:-.02em;color:var(--ink)}
.post__body h3{margin:clamp(20px,1.75vw,28px) 0 0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:clamp(18px,1.5vw,24px);line-height:1.3;color:var(--brand)}
.post__body p{margin-top:16px;font-size:clamp(15px,1.06vw,17px);line-height:1.75;color:var(--ink)}
.post__body ul{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.post__body li{position:relative;padding-left:26px;font-size:clamp(15px,1.06vw,17px);line-height:1.6;color:var(--ink)}
.post__body li::before{content:"";position:absolute;left:6px;top:.62em;width:8px;height:8px;
  border-radius:50%;background:var(--brand)}
.post__body a:not(.btn){color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.post__cta{margin-top:clamp(24px,2.5vw,40px)}
.post__faq{max-width:100%;margin-top:clamp(40px,4.5vw,72px)}
.post__faq h2{margin-bottom:clamp(20px,2vw,32px)}
.post__faq .faq-list{width:100%;margin:0}
.post__serving{margin-top:clamp(24px,2.5vw,40px);font-size:clamp(13px,.94vw,15px);line-height:1.7;color:#8391a5}

@media (max-width:1200px){
  .post__head,.post__body,.post__faq{max-width:100%}
  .post__media{aspect-ratio:16/9}
}

/* form error notice (shown when send.php redirects back with ?form=error) */
.form-error{background:#fdecea;border:1px solid #f5c2c0;color:#8a1f1a;border-radius:8px;padding:14px 16px;margin:0 0 18px;font-size:15px;line-height:1.5}
