/* ===================== Fonts ===================== */
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic-ext.woff2") format('woff2'); unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic.woff2") format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-greek-ext.woff2") format('woff2'); unicode-range:U+1F00-1FFF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-greek.woff2") format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-vietnamese.woff2") format('woff2'); unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/inter-tight-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic-ext.woff2") format('woff2'); unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic.woff2") format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-greek-ext.woff2") format('woff2'); unicode-range:U+1F00-1FFF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-greek.woff2") format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-vietnamese.woff2") format('woff2'); unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:500; font-display:swap; src:url("/assets/fonts/inter-tight-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic-ext.woff2") format('woff2'); unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic.woff2") format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-greek-ext.woff2") format('woff2'); unicode-range:U+1F00-1FFF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-greek.woff2") format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-vietnamese.woff2") format('woff2'); unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:600; font-display:swap; src:url("/assets/fonts/inter-tight-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic-ext.woff2") format('woff2'); unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-cyrillic.woff2") format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-greek-ext.woff2") format('woff2'); unicode-range:U+1F00-1FFF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-greek.woff2") format('woff2'); unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-vietnamese.woff2") format('woff2'); unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter Tight'; font-style:normal; font-weight:700; font-display:swap; src:url("/assets/fonts/inter-tight-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

@font-face { font-family:'Mr Dafoe'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/mr-dafoe-latin-ext.woff2") format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Mr Dafoe'; font-style:normal; font-weight:400; font-display:swap; src:url("/assets/fonts/mr-dafoe-latin.woff2") format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Market Pro'; src:url("/assets/fonts/market-pro.otf") format('opentype'); font-weight:400; font-style:normal; font-display:swap; }

/* ===================== Base ===================== */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: #EFEFEE;
  color: #000;
  font-family: 'Inter Tight', -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
:root { --ink: #5457E9; }

.page {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  background: #EFEFEE;
  overflow: hidden;
}

.desktop-only.desktop-only { display: block; }
.mobile-only.mobile-only { display: none; }

.script {
  font-family: 'Market Pro', cursive;
}

a { color: inherit; }

/* ===================== Hero (desktop) ===================== */
.hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  display: flex !important;
  justify-content: center;
}
.hero-stage {
  position: relative;
  width: 1440px;
  flex: 0 0 1440px;
  container-type: inline-size;
}
.hero-photo {
  display: block;
  width: 100%;
  height: 88cqw;
  object-fit: cover;
  object-position: top center;
  background-image: url("assets/images/hero-desktop.avif");
  background-size: cover;
  background-position: top center;
}
.hero-fade {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 8cqw;
  background: linear-gradient(180deg, rgba(239,239,238,0) 0%, #EFEFEE 100%);
  pointer-events: none;
}
/* Darkens the top of the hero photo behind the nav for contrast, fading
   to transparent before it reaches the headline. */
.hero-nav-fade {
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 18cqw;
  background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 100%);
  pointer-events: none;
}
.hero-headline {
  position: absolute;
  left: 50%; top: 15.7cqw;
  transform: translateX(-50%);
  margin: 0;
  width: 64cqw;
  text-align: center;
  color: #fff;
  font-weight: 600;
  font-size: 6.39cqw;
  line-height: 6.39cqw;
  letter-spacing: .01em;
  white-space: pre-line;
}
.hero-sub {
  position: absolute;
  left: 50%; top: 29.2cqw;
  transform: translateX(-50%);
  margin: 0;
  width: 64cqw;
  text-align: center;
  color: rgba(255,255,255,.8);
  font-weight: 500;
  font-size: 2.22cqw;
  line-height: 2.92cqw;
  letter-spacing: .01em;
  white-space: pre-line;
}
.clipboard {
  position: absolute;
  left: 50%; top: 52.3cqw;
  transform: translateX(-50%);
  width: 44.7cqw;
  line-height: normal;
  padding: 2.6cqw 2.9cqw 2.9cqw;
}
.clipboard-top {
  display: flex; align-items: center; justify-content: space-between; gap: 1cqw;
}
.clipboard-top img.bh-logo { height: 3.26cqw; width: auto; }
.clipboard-top img.cross { width: 4.7cqw; height: auto; }
.care-by { display: flex; align-items: center; gap: .7cqw; }
.care-by span { font-size: .95cqw; color: #444; }
.care-by img { height: 1.45cqw; width: auto; }
.clipboard-rule { height: 1px; background: #000; margin: 2cqw 0 2.6cqw; }
.clipboard h2 {
  margin: 0 0 2.4cqw;
  font-weight: 600;
  font-size: 3.41cqw;
  line-height: 1.1;
  letter-spacing: .01em;
  white-space: pre-line;
}
.symptom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.8cqw 3.9cqw;
}
.symptom-grid p { margin: 0; font-size: 1.11cqw; line-height: 1.46cqw; }

/* Fixed nav: transparent over the hero photo, gains a frosted white bar
   once scrolled, and hides on scroll-down / reveals on scroll-up. */
.site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex !important;
  background: transparent;
  transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease;
}
.site-nav-inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px clamp(20px,5.3vw,60px) 18px clamp(20px,3.5vw,40px);
}
.site-nav--scrolled {
  background: rgba(255,255,255,.75);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(0,0,0,.06);
}
.site-nav--hidden {
  transform: translateY(-100%);
}
.nav-logo {
  height: 56px;
  width: auto;
  display: block;
}
.nav-left {
  display: flex;
  align-items: center;
  gap: 20px;
}
.nav-divider {
  width: 1px;
  height: 34px;
  background: rgba(255,255,255,.4);
  transition: background-color .3s ease;
}
.site-nav--scrolled .nav-divider { background: rgba(0,0,0,.15); }
.nav-info {
  line-height: 1.3;
}
.nav-info-date {
  font-weight: 600;
  font-size: 15px;
  color: #fff;
  transition: color .3s ease;
}
.nav-info-booth {
  font-size: 14px;
  color: rgba(255,255,255,.75);
  transition: color .3s ease;
}
.site-nav--scrolled .nav-info-date { color: #000; }
.site-nav--scrolled .nav-info-booth { color: #666; }
.nav-links {
  display: flex;
  align-items: center;
  gap: 12px;
}
.btn-ghost {
  display: flex; align-items: center; justify-content: center;
  width: 128px; height: 42px; border-radius: 40px;
  box-shadow: inset 0 0 0 1px #fff;
  color: #fff; font-weight: 600; font-size: 15px; letter-spacing: .01em;
  text-decoration: none; white-space: nowrap;
  transition: background-color .15s ease, color .3s ease, box-shadow .3s ease;
}
.btn-ghost:hover { background-color: rgba(255,255,255,.15); }
.site-nav--scrolled .btn-ghost {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}
.site-nav--scrolled .btn-ghost:hover { background-color: rgba(0,0,0,.06); }
.btn-white {
  display: flex; align-items: center; justify-content: center;
  width: 168px; height: 42px; border-radius: 40px;
  background: #fff; color: #000; font-weight: 600; font-size: 15px;
  letter-spacing: .01em; text-decoration: none; white-space: nowrap;
  transition: background-color .15s ease, color .3s ease, box-shadow .3s ease;
}
.btn-white:hover { background-color: #e6e6e6; }
.site-nav--scrolled .btn-white {
  background: #000;
  color: #fff;
}
.site-nav--scrolled .btn-white:hover { background-color: #222; }

/* ===================== Hero (mobile) - hidden on desktop ===================== */
.hero-mobile { display: none; }

/* ===================== Care team ===================== */
.care-team {
  max-width: 648px;
  margin: 0 auto;
  padding: clamp(40px,6vw,72px) clamp(20px,5vw,40px) 0;
}
.care-team h2 {
  margin: 0 0 30px;
  font-weight: 600;
  font-size: clamp(32px,5.2vw,49px);
  line-height: 1;
  letter-spacing: .01em;
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px,1fr));
  gap: 16px;
}
.team-card { display: flex; flex-direction: column; padding-top: 22px; }
.team-card .name {
  font-weight: 700; font-size: 20px; line-height: 21px;
  white-space: pre-line; margin-bottom: 8px;
}
.team-card .desc { font-size: 16px; line-height: 20px; white-space: pre-line; }
.team-card .learn { font-size: 16px; line-height: 20px; color: var(--ink); margin-top: auto; padding-top: 6px; text-decoration: none; }
.team-card .learn:hover { text-decoration: underline; }

.care-247 {
  display: flex; align-items: flex-start; gap: 20px; margin-top: 40px;
}
.care-247 img { width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0; object-fit: cover; }
.care-247 .title { font-weight: 700; font-size: 20px; line-height: 20px; }
.care-247 p { margin: 11px 0 0; max-width: 374px; font-size: 16px; line-height: 20px; }
.care-247 p a { color: var(--ink); text-decoration: none; }
.care-247 p a:hover { text-decoration: underline; }

/* ===================== Take as recommended ===================== */
.recommend {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: clamp(56px,8vw,96px) clamp(20px,5vw,40px) 0;
  scroll-margin-top: 20px;
}
.recommend h2 {
  margin: 0; font-weight: 600; font-size: clamp(32px,5.2vw,49px); line-height: 1; letter-spacing: .01em;
}
.recommend > p {
  margin: 18px 0 0; max-width: 527px; font-size: 20px; line-height: 26px;
  letter-spacing: .01em; color: #222;
}

.rx-card {
  margin-top: clamp(36px,5vw,52px);
  width: min(618px,100%);
  background: #fff;
  box-shadow: 0 4px 8.2px 10px rgba(0,0,0,.02);
  text-align: left;
}
.rx-card-shadow-strip { height: 13px; box-shadow: 0 1px 4px rgba(0,0,0,.10), 0 6px 4px rgba(0,0,0,.05); }
.rx-card-body { padding: clamp(28px,5vw,42px) clamp(26px,6vw,60px) clamp(40px,6vw,54px); }
.rx-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.rx-head .rx-icon { width: 56px; height: auto; display: block; }
.rx-head .lockup { height: 36px; width: auto; opacity: .3; }
.rx-field {
  margin-top: 28px; display: flex; align-items: baseline; gap: 10px;
  border-bottom: 1px solid #000; padding-bottom: 6px;
}
.rx-field + .rx-field { margin-top: 12px; }
.rx-field .label { font-weight: 600; font-size: 18px; }
.rx-field .value { font-family: 'Market Pro', cursive; font-size: 30px; line-height: 1; color: var(--ink); }

.events-list { margin-top: 8px; }
.event-row { display: grid; grid-template-columns: 58px 1fr; gap: 16px; padding: 20px 0; }
.event-sep { height: 1px; background: #000; }
.event-day { font-family: 'Market Pro', cursive; font-size: 28px; line-height: 1.02; color: var(--ink); white-space: pre-line; }
.event-title { font-weight: 600; font-size: 18px; line-height: 1.25; letter-spacing: .01em; color: #000; }
.event-place, .event-speaker { margin-top: 4px; margin-bottom: 4px; font-size: 16px; line-height: 20px; color: #444; white-space: pre-line; }
.event-time { font-size: 16px; line-height: 20px; color: #444; }
.event-cta { display: block; margin-top: 9px; font-weight: 700; font-size: 16px; color: var(--ink); text-decoration: none; }
.event-cta:hover { text-decoration: underline; }

.rx-signed {
  margin-top: 24px; display: flex; align-items: baseline; justify-content: flex-end; gap: 14px;
}
.rx-signed .label { font-weight: 600; font-size: 16px; color: #000; }
.rx-signed .sig { font-family: 'Mr Dafoe', cursive; font-size: 34px; line-height: 1; color: var(--ink); }

.consult {
  margin-top: 48px; display: flex; flex-direction: column; align-items: center; text-align: center;
}
.consult img { width: 113px; height: 115px; border-radius: 50%; object-fit: cover; }
.consult .name { margin-top: 16px; font-weight: 700; font-size: 20px; line-height: 26px; white-space: pre-line; }
.consult .where { margin-top: 6px; font-size: 16px; line-height: 22px; color: #444; }

/* ===================== Pharmacy ===================== */
.pharmacy {
  position: relative;
  margin-top: clamp(64px,9vw,110px);
  overflow: hidden;
}
/* Slight zoom crops a few stray edge pixels baked into the source photo
   (a faint white line at the top, a stray sliver at the right) without
   changing the section's box size — transforms don't affect layout. */
.pharmacy img.bg { display: block; width: 100%; height: auto; transform: scale(1.02); }
.pharmacy-text {
  position: absolute; left: 5.5%; top: 9%; width: 36%; min-width: 240px;
}
.pharmacy-text h2 {
  margin: 0; font-weight: 600; font-size: clamp(26px,3.6vw,52px); line-height: 1.07; letter-spacing: .01em;
}
.pharmacy-text p {
  margin: clamp(12px,1.6vw,22px) 0 0; font-size: clamp(14px,1.4vw,20px); line-height: 1.3;
  letter-spacing: .01em; color: #222; max-width: 370px;
}

/* ===================== Peloton ===================== */
.peloton {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: clamp(56px,8vw,100px) clamp(20px,5vw,40px) 0;
}
.peloton h2 {
  margin: 0; font-weight: 600; font-size: clamp(30px,5.2vw,49px); line-height: 1.02;
  letter-spacing: .01em; white-space: pre-line;
}
.peloton p {
  margin: 18px 0 0; max-width: 527px; font-size: 20px; line-height: 26px;
  letter-spacing: .01em; color: #222;
}
.peloton img { margin-top: clamp(28px,4vw,48px); width: min(994px,100%); height: auto; display: block; }

/* ===================== Booking ===================== */
.booking {
  display: flex; flex-direction: column; align-items: center;
  padding: clamp(64px,9vw,110px) clamp(20px,5vw,40px) 0;
  scroll-margin-top: 20px;
}
.booking h2 {
  margin: 0 0 clamp(40px,5vw,56px); font-weight: 600; font-size: clamp(32px,5.4vw,52px);
  line-height: 1; letter-spacing: .01em; text-align: center;
}
.booking-grid {
  display: grid; grid-template-columns: repeat(auto-fit,minmax(300px,390px));
  gap: clamp(28px,4vw,61px); justify-content: center; width: 100%;
}
.booking-card {
  background: #fff; box-shadow: 0 4px 8.2px 10px rgba(0,0,0,.02);
  padding: 40px clamp(28px,4vw,48px) 45px;
}
.booking-card img.logo { height: 46px; width: auto; }
.booking-card .field {
  margin-top: 24px; display: flex; align-items: baseline; gap: 10px;
  border-bottom: 1px solid #000; padding-bottom: 6px;
}
.booking-card .field + .field { margin-top: 10px; }
.booking-card .field .label { font-weight: 600; font-size: 16px; }
.booking-card .field .value { font-family: 'Market Pro', cursive; font-size: 28px; line-height: 1; color: var(--ink); }
.booking-card h3 { margin: 40px 0 0; font-weight: 600; font-size: 32px; line-height: 38px; letter-spacing: .01em; }
.booking-card p { margin: 18px 0 0; font-size: 16px; line-height: 20px; color: #666; }
.btn-black {
  display: inline-flex; align-items: center; height: 48px; margin-top: 32px;
  padding: 0 35px; border-radius: 40px; background: #000; color: #fff;
  font-weight: 600; font-size: 16px; text-decoration: none;
  transition: background-color .15s ease;
}
.btn-black:hover { background-color: #222; }
.btn-outline {
  display: inline-flex; align-items: center; height: 48px; margin-top: 32px;
  padding: 0 33px; border-radius: 40px; box-shadow: inset 0 0 0 2px #000;
  color: #000; font-weight: 600; font-size: 16px; text-decoration: none;
  transition: background-color .15s ease;
}
.btn-outline:hover { background-color: rgba(0,0,0,.06); }
.btn-icon { width: 16px; height: 16px; margin-left: 2px; flex-shrink: 0; vertical-align: -3px; }
.btn-icon--new-tab { transform: scaleX(-1); }

/* ===================== Footer ===================== */
.site-footer {
  margin-top: clamp(72px,10vw,120px);
  text-align: center;
  padding: 0 clamp(20px,5vw,40px);
}
.site-footer .legal {
  max-width: 578px; margin: 0 auto; font-size: 12px; line-height: 16px;
  color: #AFAFAF; white-space: pre-line; text-align: left;
}
.site-footer img.banner {
  width: min(1350px,100%); margin: clamp(24px,4vw,40px) auto 0; height: auto;
}

/* =====================================================================
   MOBILE  (<=768px)
   ===================================================================== */
@media (max-width: 768px) {
  /* full viewport width (not a fixed 375px column) so the hero/symptoms
     background photo and section fill edge-to-edge at any width up to
     this breakpoint; sizing below uses vw (scaled from the 375px design)
     instead of px so it stays proportional rather than just at 375px. */
  .page { width: 100%; }

  /* hide desktop hero, show mobile hero */
  .hero { display: none; }
  .hero-mobile { display: block; position: relative; line-height: 0; }
  .hero-mobile .hero-photo-m {
    display: block; width: 100%; height: auto;
  }
  /* Fixed mobile nav: same treatment as desktop — transparent over the
     hero photo, frosted white + dark logo/button once scrolled, hides on
     scroll-down / reveals on scroll-up. */
  .site-nav-m {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: transparent;
    transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease;
  }
  .site-nav-m.site-nav--scrolled {
    background: rgba(255,255,255,.75);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(0,0,0,.06);
  }
  .site-nav-m.site-nav--hidden { transform: translateY(-100%); }
  .nav-logo-m { height: 28px; width: auto; display: block; }
  .site-nav-m .nav-left { display: flex; align-items: center; gap: 8px; min-width: 0; flex-shrink: 1; }
  .site-nav-m .nav-divider { width: 1px; align-self: stretch; height: auto; flex-shrink: 0; }
  .site-nav-m .nav-info { line-height: 1.2; min-width: 0; }
  .site-nav-m .nav-info-date { font-size: 10px; white-space: normal; }
  .site-nav-m .nav-info-booth { font-size: 9px; white-space: nowrap; margin-top: 1px; }
  .hero-nav-fade-m {
    position: absolute; left: 0; right: 0; top: 0;
    height: 35vw;
    background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 100%);
    pointer-events: none;
  }
  .btn-white-m {
    display: flex; align-items: center; height: 38px; padding: 0 16px;
    border-radius: 40px; background: #fff; color: #000; font-weight: 600;
    font-size: 13px; text-decoration: none; white-space: nowrap; flex-shrink: 0;
    transition: background-color .15s ease, box-shadow .3s ease;
  }
  .btn-white-m:hover { background-color: #e6e6e6; }
  .site-nav-m.site-nav--scrolled .btn-white-m {
    background: #000; color: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.15);
  }
  .site-nav-m.site-nav--scrolled .btn-white-m:hover { background-color: #222; }
  .hero-mobile-headline {
    position: absolute; left: 0; right: 0; top: 42.133vw; padding: 0 6.4vw;
    text-align: center; line-height: normal;
  }
  .hero-mobile-headline h1 {
    margin: 0; color: #fff; font-weight: 600; font-size: 10.667vw; line-height: 1.0;
    letter-spacing: .01em; white-space: pre-line;
  }
  .hero-mobile-headline p {
    margin: 4.267vw 0 0; color: rgba(255,255,255,.92); font-weight: 500;
    font-size: 4.267vw; line-height: 1.35; letter-spacing: .01em; white-space: pre-line;
  }

  /* symptoms */
  .clipboard-mobile-wrap {
    position: relative; z-index: 1; margin-top: -85.333vw; background: transparent;
  }
  .clipboard-m { background: transparent; margin: 0; padding: 12.267vw 12.267vw 10.667vw; }
  .clipboard-m .clipboard-top img.bh-logo { height: 6.933vw; }
  .clipboard-m .care-by span { font-size: 2.933vw; }
  .clipboard-m .care-by img { height: 3.467vw; }
  .clipboard-m .clipboard-rule { margin: 4.8vw 0 5.867vw; }
  .clipboard-m h2 { margin: 0 0 5.867vw; font-size: 9.067vw; line-height: 1.1; }
  .symptom-grid-m { display: flex; flex-direction: column; gap: 4vw; }
  .symptom-grid-m p { margin: 0; font-size: 4vw; line-height: 1.3; }

  .desktop-only.desktop-only { display: none !important; }
  .mobile-only.mobile-only { display: block !important; }
  .site-nav-m.mobile-only { display: flex !important; }

  /* care team */
  .care-team { padding: clamp(32px,6vw,46px) 24px 0; max-width: none; }
  .care-team h2 { margin: 0 0 24px; font-size: 30px; }
  .team-grid { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .team-card { padding-top: 0; }
  .team-card .name { font-size: 17px; line-height: 1.05; margin-bottom: 7px; }
  .team-card .desc { font-size: 14px; line-height: 1.25; }
  .team-card .learn { font-size: 14px; line-height: 1.25; margin-top: auto; padding-top: 5px; }
  .care-247 { gap: 14px; margin-top: 30px; }
  .care-247 img { width: 48px; height: 48px; }
  .care-247 .title { font-size: 16px; line-height: 1.1; }
  .care-247 p { margin: 8px 0 0; font-size: 14px; line-height: 1.3; max-width: none; }

  /* recommend */
  .recommend { padding: clamp(80px,14vw,108px) 24px 0; }
  .recommend h2 { font-size: 30px; }
  .recommend > p { margin: 14px 0 0; font-size: 15px; line-height: 1.35; max-width: none; }
  .rx-card { margin-top: 28px; box-shadow: 0 4px 8.2px 6px rgba(0,0,0,.02); width: 100%; }
  .rx-card-shadow-strip { height: 10px; }
  .rx-card-body { padding: 24px 22px 30px; }
  .rx-head { gap: 12px; }
  .rx-head .rx-icon { width: 44px; }
  .rx-head .lockup { height: 28px; }
  .rx-field { margin-top: 20px; gap: 8px; padding-bottom: 5px; }
  .rx-field + .rx-field { margin-top: 10px; }
  .rx-field .label { font-size: 15px; }
  .rx-field .value { font-size: 24px; }
  .events-list { margin-top: 6px; }
  .event-row { grid-template-columns: 46px 1fr; gap: 12px; padding: 16px 0; }
  .event-day { font-size: 22px; }
  .event-title { font-size: 16px; line-height: 1.2; }
  .event-place { margin-top: 3px; font-size: 13px; line-height: 1.25; }
  .event-time { font-size: 13px; line-height: 1.25; }
  .event-cta { margin-top: 7px; font-size: 14px; }
  .rx-signed { margin-top: 18px; gap: 10px; }
  .rx-signed .label { font-size: 14px; }
  .rx-signed .sig { font-size: 28px; }
  .consult { margin-top: clamp(80px,14vw,108px); }
  .consult img { width: 92px; height: 94px; }
  .consult .name { margin-top: 14px; font-size: 17px; line-height: 1.3; }
  .consult .where { margin-top: 5px; font-size: 13px; line-height: 1.4; }

  /* pharmacy */
  .pharmacy { margin-top: 0; padding: clamp(80px,15vw,115px) 24px 0; }
  .pharmacy-text { position: static; width: auto; min-width: 0; }
  .pharmacy-text h2 { font-size: 30px; line-height: 1.05; }
  .pharmacy-text p { margin: 14px 0 0; font-size: 15px; line-height: 1.35; max-width: none; }
  .pharmacy img.bg { margin-top: 18px; }

  /* peloton */
  .peloton { padding: clamp(80px,14vw,108px) 24px 0; }
  .peloton h2 { font-size: 30px; line-height: 1.05; }
  .peloton p { margin: 14px 0 0; font-size: 15px; line-height: 1.35; max-width: none; }
  .peloton img { margin-top: 20px; width: 100%; }

  /* booking */
  .booking { padding: clamp(80px,15vw,115px) 24px 0; }
  .booking h2 { margin: 0 0 28px; font-size: 30px; line-height: 1.05; }
  .booking-grid { display: flex; flex-direction: column; gap: 24px; }
  .booking-card { box-shadow: 0 4px 8.2px 6px rgba(0,0,0,.02); padding: 28px 24px 32px; }
  .booking-card img.logo { height: 38px; }
  .booking-card .field { margin-top: 18px; gap: 8px; padding-bottom: 5px; }
  .booking-card .field + .field { margin-top: 9px; }
  .booking-card .field .label { font-size: 15px; }
  .booking-card .field .value { font-size: 24px; }
  .booking-card h3 { margin: 28px 0 0; font-size: 25px; line-height: 1.15; }
  .booking-card p { margin: 14px 0 0; font-size: 14px; line-height: 1.3; }
  .btn-black, .btn-outline { height: 44px; margin-top: 24px; font-size: 15px; }
  .btn-black { padding: 0 30px; }
  .btn-outline { padding: 0 28px; }

  /* footer */
  .site-footer { margin-top: clamp(56px,10vw,77px); padding: 0 24px; text-align: left; }
  .site-footer .legal { font-size: 9px; line-height: 1.4; max-width: none; }
  .site-footer img.banner { width: calc(100% + 48px); max-width: none; margin: 20px -24px 0; }
}

/* ===================== Booking modal ===================== */
#booking-modal {
  border: none;
  border-radius: 16px;
  padding: 0;
  width: min(560px, 92vw);
  max-height: 85vh;
  overflow: auto;
  background: #fff;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
}
#booking-modal::backdrop {
  background: rgba(0,0,0,.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
#booking-modal .modal-inner {
  position: relative;
  padding: 48px 32px 32px;
}
#booking-modal .modal-title {
  margin: 0 48px 8px 0;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: .01em;
  color: #000;
}
#booking-modal .modal-caption {
  margin: 0 24px 20px 0;
  font-size: 16px;
  line-height: 20px;
  color: #666;
}
#booking-modal .modal-close {
  position: absolute;
  top: 16px; right: 16px;
  width: 32px; height: 32px;
  border: none; border-radius: 50%;
  background: #f0f0ee;
  color: #000;
  font-size: 20px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background-color .15s ease;
}
#booking-modal .modal-close:hover { background: #e2e2e0; }
#hubspot-form-container { min-height: 280px; }
#booking-modal .modal-loading {
  margin: 0; padding: 100px 0; text-align: center;
  color: #666; font-size: 15px;
}
@media (max-width: 600px) {
  #booking-modal { width: 100vw; max-width: 100vw; max-height: 100vh; height: 100%; border-radius: 0; }
  #booking-modal .modal-inner { padding: 56px 20px 24px; }
}
