:root{
  --paper:#fbf8f3;
  --cream:#f1e9de;
  --cream-2:#e8ddcf;
  --white:#fffdf9;
  --ink:#28231f;
  --muted:#766d65;
  --gold:#aa8450;
  --gold-dark:#876638;
  --line:rgba(40,35,31,.13);
  --serif:"Manrope",serif;
  --sans:"Manrope",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.75}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:94px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:rgba(251,248,243,.88);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:.3s}
.site-header.scrolled{height:76px;border-color:var(--line);box-shadow:0 10px 30px rgba(40,35,31,.05)}
.brand{display:flex;align-items:center;gap:14px}
.brand-number{font:600 44px/1 var(--serif);letter-spacing:-.05em;color:var(--gold-dark)}
.brand-copy{font-size:11px;font-weight:700;letter-spacing:.14em;line-height:1.35}
.brand-copy small{display:block;color:var(--muted);font-size:8px;font-weight:500;letter-spacing:.16em}
.nav{display:flex;align-items:center;gap:28px}
.nav a{font-size:11px;font-weight:600;letter-spacing:.06em}
.nav-cta{padding:12px 18px;border:1px solid var(--ink)}
.menu-toggle{display:none;border:0;background:none;width:38px;height:38px;padding:8px;cursor:pointer}
.menu-toggle span{display:block;height:1px;background:var(--ink);margin:7px 0}
.hero{position:relative;min-height:100vh;padding:160px 7vw 90px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.55fr);gap:7vw;align-items:center;overflow:hidden;background:linear-gradient(135deg,#fbf8f3 0%,#f5eee5 55%,#ece1d4 100%)}
.hero:before{content:"";position:absolute;inset:105px 5vw 45px;border:1px solid rgba(170,132,80,.22);border-radius:280px 280px 34px 34px;pointer-events:none}
.hero-shape{position:absolute;border-radius:50%;filter:blur(3px);opacity:.72}
.hero-shape-one{width:420px;height:420px;right:3vw;top:16%;background:radial-gradient(circle at 35% 30%,#fff 0%,#dcc7ad 60%,#c6aa86 100%)}
.hero-shape-two{width:220px;height:220px;right:27vw;bottom:6%;background:radial-gradient(circle at 30% 30%,#fff 0%,#eadbca 60%,#d9c1a3 100%)}
.hero-content{position:relative;z-index:2;max-width:850px}
.eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--gold-dark);text-transform:uppercase;margin-bottom:22px}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;line-height:.98}
h1{font-size:clamp(70px,8.3vw,138px);letter-spacing:-.045em}
h1 em,h2 em{font-weight:500;color:var(--gold-dark)}
.hero-content p{max-width:620px;color:var(--muted);font-size:17px;line-height:1.9;margin:30px 0 36px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:51px;padding:0 24px;border:1px solid transparent;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:.25s}
.button-primary{background:var(--ink);color:white}
.button-primary:hover{background:var(--gold-dark);transform:translateY(-2px)}
.button-secondary{border-color:var(--line);background:rgba(255,255,255,.48)}
.button-secondary:hover{border-color:var(--gold);background:white}
.hero-card{position:relative;z-index:3;align-self:end;margin-bottom:55px;background:rgba(255,253,249,.82);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.65);box-shadow:0 30px 90px rgba(69,54,40,.14);padding:42px}
.hero-card>span{font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--gold-dark)}
.hero-card strong{display:block;font:600 32px var(--serif);margin:9px 0 12px}
.hero-card p{color:var(--muted);font-size:12px;margin:0 0 25px}
.hero-card a{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;font-size:11px;font-weight:700}
.scroll-link{position:absolute;left:7vw;bottom:38px;z-index:2;font-size:9px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.scroll-link span{margin-left:12px}
.section{padding:120px 7vw}
.section-heading{display:grid;grid-template-columns:1.15fr .65fr;gap:9vw;align-items:end;margin-bottom:65px}
.section-heading h2{font-size:clamp(56px,6vw,96px);letter-spacing:-.035em}
.section-heading>p{color:var(--muted);max-width:480px;margin:0}
.services{background:var(--white)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-card{position:relative;min-height:390px;padding:35px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:.3s;background:var(--white)}
.service-card:hover{background:var(--cream);transform:translateY(-5px);box-shadow:0 25px 60px rgba(65,49,33,.08)}
.service-number{font-size:9px;color:var(--muted);letter-spacing:.16em}
.service-icon{font:500 46px var(--serif);color:var(--gold);margin:35px 0 50px}
.service-card h3{font-size:32px;line-height:1.05;margin-bottom:20px}
.service-card p{color:var(--muted);font-size:13px}
.service-card small{position:absolute;left:30px;bottom:28px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark)}
.service-note{max-width:900px;color:var(--muted);font-size:11px;margin:30px 0 0}
.roster{background:var(--cream)}
.roster-shell{background:rgba(255,253,249,.85);border:1px solid rgba(255,255,255,.75);box-shadow:0 30px 80px rgba(75,57,39,.08);padding:18px 36px 38px}
.day-tabs{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}
.day-tab{border:0;border-bottom:2px solid transparent;background:none;padding:20px 5px 17px;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;transition:.2s}
.day-tab small{display:block;font-size:8px;font-weight:400;margin-top:2px}
.day-tab:hover,.day-tab.active{color:var(--ink);border-color:var(--gold)}
.schedule-content{min-height:330px;padding:30px 0 5px;transition:opacity .18s}
.schedule-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}
.schedule-title{font:600 44px var(--serif);margin:0}
.schedule-subtitle{font-size:10px;color:var(--muted);margin:0}
.practitioner{display:grid;grid-template-columns:64px 1fr auto;gap:20px;align-items:center;padding:19px 0;border-bottom:1px solid var(--line)}
.avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--cream);font:600 27px var(--serif);color:var(--gold-dark)}
.practitioner strong{display:block;font:600 24px var(--serif)}
.practitioner small{display:block;color:var(--muted);font-size:10px}
.status-pill{background:#eef1e8;color:#5c674f;padding:8px 13px;border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;background:var(--paper)}
.contact-card{padding:58px;background:var(--white);border:1px solid var(--line)}
.contact-details{background:linear-gradient(145deg,#efe5d8,#f8f3ec)}
.contact h2{font-size:clamp(60px,6vw,92px);letter-spacing:-.035em}
.detail-list{margin-top:55px}
.detail-list>div{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.detail-list span,.quick-contact span{font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.detail-list strong{font:500 20px/1.5 var(--serif)}
.text-link{display:inline-block;margin-top:35px;border-bottom:1px solid var(--ink);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.contact-form-wrap h3{font-size:48px;margin:6px 0 12px}
.contact-form-wrap>p{color:var(--muted);font-size:12px}
.quick-contact{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:32px 0}
.quick-contact a{padding:18px;background:var(--cream);border:1px solid transparent;transition:.2s}
.quick-contact a:hover{background:white;border-color:var(--gold)}
.quick-contact strong{display:block;font:600 17px var(--serif);margin-top:4px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;margin-top:17px;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
input,select,textarea{width:100%;border:0;border-bottom:1px solid var(--line);padding:13px 0;background:transparent;outline:none;color:var(--ink);font-size:13px;text-transform:none;letter-spacing:normal}
textarea{resize:vertical}
form .button{width:100%;margin-top:25px}
.form-status{min-height:20px;font-size:10px;color:var(--gold-dark)}
footer{padding:60px 7vw 90px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);background:var(--white)}
footer p{color:var(--muted);font-size:10px}
.mobile-actions{display:none}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1050px){.menu-toggle{display:block}.nav{display:none;position:fixed;top:94px;left:0;right:0;padding:25px 6vw;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:145px}.hero-card{max-width:440px;margin-left:auto}.service-grid{grid-template-columns:repeat(2,1fr)}.contact{grid-template-columns:1fr}.section-heading{grid-template-columns:1fr;gap:25px}.section-heading>p{max-width:700px}}
@media(max-width:680px){body{padding-bottom:60px}.site-header{height:76px;padding:0 20px}.site-header.scrolled{height:70px}.brand-number{font-size:36px}.brand-copy{font-size:9px}.nav{top:76px}.hero{min-height:850px;padding:120px 22px 95px;display:block}.hero:before{inset:95px 15px 28px;border-radius:150px 150px 24px 24px}.hero h1{font-size:64px}.hero-content p{font-size:14px}.hero-actions{flex-direction:column}.hero-actions .button{width:100%}.hero-card{margin:70px 0 0;padding:30px}.hero-shape-one{width:300px;height:300px;right:-110px;top:32%}.hero-shape-two{width:150px;height:150px;right:15px;bottom:13%}.scroll-link{display:none}.section{padding:85px 22px}.section-heading{margin-bottom:42px}.section-heading h2{font-size:52px}.service-grid{grid-template-columns:1fr}.service-card{min-height:330px}.service-icon{margin:25px 0 35px}.roster-shell{padding:8px 14px 24px}.day-tab{font-size:8px;padding:15px 1px}.day-tab small{font-size:6px}.schedule-top{display:block}.schedule-title{font-size:34px}.practitioner{grid-template-columns:48px 1fr;gap:13px}.avatar{width:48px;height:48px}.status-pill{grid-column:2;justify-self:start}.contact-card{padding:38px 24px}.detail-list>div{grid-template-columns:1fr;gap:5px}.quick-contact,.form-row{grid-template-columns:1fr}.contact h2{font-size:55px}footer{display:block;text-align:center;padding:50px 22px 90px}.footer-brand{justify-content:center;margin-bottom:20px}.mobile-actions{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(3,1fr);background:var(--white);border-top:1px solid var(--line)}.mobile-actions a{text-align:center;padding:16px 5px;font-size:10px;font-weight:700}.mobile-actions a:last-child{background:var(--ink);color:white}}

/* =========================
   SERVICES & PRICING
========================= */

.services {
  background: #faf9f7;
}

.service-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
  margin-top: 56px;
}

/* BOTH CARDS */

.pricing-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 40px;
  background: #ffffff;
  border: 1px solid #ebe7e1;
  border-radius: 28px;
  box-shadow: 0 18px 55px rgba(34, 28, 20, 0.05);
}

.pricing-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  min-height: 110px;
  padding-bottom: 28px;
  border-bottom: 1px solid #e5e0d9;
}

.pricing-label {
  display: block;
  margin-bottom: 12px;
  color: #9c7a4d;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.pricing-card h3 {
  max-width: 420px;
  margin: 0;
  color: #171717;
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.045em;
}

.pricing-icon {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  background: #f5f1ea;
  border: 1px solid #ebe4da;
  border-radius: 50%;
  color: #9c7a4d;
  font-size: 20px;
}

/* TABLE AREA */

.pricing-list {
  flex: 1;
  margin-top: 8px;
}

.pricing-row {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid #e8e3dc;
}

.pricing-row > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pricing-row strong {
  color: #1a1917;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.35;
}

.pricing-row span {
  color: #77716a;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}

.pricing-row .price {
  flex: 0 0 auto;
  color: #171717;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: -0.035em;
}

/* BUTTONS */

.pricing-button {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 30px;
  padding: 0 22px;
  background: #171717;
  border: 1px solid #171717;
  border-radius: 15px;
  color: #ffffff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 650;
  transition:
    transform 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease;
}

.pricing-button span {
  color: inherit;
  font-size: 20px;
  transition: transform 0.25s ease;
}

.pricing-button:hover {
  background: #9c7a4d;
  border-color: #9c7a4d;
  transform: translateY(-2px);
}

.pricing-button:hover span {
  transform: translateX(4px);
}

/* NOTE */

.service-note {
  max-width: 860px;
  margin: 30px auto 0;
  color: #7a756f;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.75;
  text-align: center;
}

/* TABLET */

@media (max-width: 960px) {
  .service-layout {
    grid-template-columns: 1fr;
  }

  .pricing-card {
    padding: 34px;
  }

  .pricing-card-header {
    min-height: auto;
  }
}

/* MOBILE */

@media (max-width: 640px) {
  .service-layout {
    gap: 18px;
    margin-top: 36px;
  }

  .pricing-card {
    padding: 26px 20px;
    border-radius: 22px;
  }

  .pricing-card-header {
    gap: 16px;
    padding-bottom: 22px;
  }

  .pricing-card h3 {
    font-size: 30px;
  }

  .pricing-icon {
    width: 46px;
    height: 46px;
    font-size: 18px;
  }

  .pricing-row {
    min-height: 78px;
    gap: 18px;
    padding: 17px 0;
  }

  .pricing-row strong {
    font-size: 16px;
  }

  .pricing-row span {
    font-size: 13px;
  }

  .pricing-row .price {
    font-size: 22px;
  }

  .pricing-button {
    min-height: 54px;
    margin-top: 24px;
    border-radius: 13px;
  }

  .service-note {
    margin-top: 22px;
    padding: 0 8px;
  }
}

/* =========================
   WEEKLY ROSTER
========================= */

.roster {
  background: #f7f5f1;
}

.roster-shell {
  margin-top: 54px;
}

.day-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 46px;
}

.day-tab {
  min-height: 62px;
  padding: 12px 16px;
  background: #ffffff;
  border: 1px solid #e6e1da;
  border-radius: 16px;
  color: #302e2b;
  font: inherit;
  font-size: 15px;
  font-weight: 650;
  cursor: pointer;
  transition:
    background 0.25s ease,
    color 0.25s ease,
    transform 0.25s ease,
    border-color 0.25s ease;
}

.day-tab small {
  display: block;
  margin-top: 4px;
  color: #817a72;
  font-size: 12px;
  font-weight: 500;
}

.day-tab:hover {
  transform: translateY(-2px);
  border-color: #b99a6b;
}

.day-tab.active {
  background: #171717;
  border-color: #171717;
  color: #ffffff;
}

.day-tab.active small {
  color: rgba(255,255,255,0.72);
}

.roster-display {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 42px;
  align-items: center;
}

.roster-summary span {
  display: block;
  margin-bottom: 12px;
  color: #8b7961;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.roster-summary h3 {
  margin: 0 0 28px;
  color: #171717;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: -0.04em;
}

.roster-button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 20px;
  background: #171717;
  border-radius: 14px;
  color: #ffffff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 650;
}

.roster-slider-wrap {
  min-width: 0;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  gap: 16px;
  align-items: center;
}

.schedule-slider {
  display: flex;
  gap: 22px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
}

.schedule-slider::-webkit-scrollbar {
  display: none;
}

.therapist-card {
  flex: 0 0 220px;
  scroll-snap-align: start;
}

.therapist-image {
  width: 220px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #ebe8e2;
  border-radius: 50%;
}

.therapist-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.therapist-card:hover img {
  transform: scale(1.05);
}

.therapist-info {
  padding-top: 16px;
  text-align: center;
}

.therapist-info h4 {
  margin: 0 0 5px;
  color: #171717;
  font-size: 19px;
}

.therapist-info p {
  margin: 0;
  color: #817b74;
  font-size: 13px;
  line-height: 1.6;
}

.slider-arrow {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  background: #ffffff;
  border: 1px solid #e3ded7;
  border-radius: 50%;
  color: #171717;
  font-size: 30px;
  cursor: pointer;
  transition:
    background 0.25s ease,
    color 0.25s ease,
    transform 0.25s ease;
}

.slider-arrow:hover {
  background: #171717;
  color: #ffffff;
  transform: scale(1.05);
}

@media (max-width: 980px) {
  .day-tabs {
    display: flex;
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: none;
  }

  .day-tabs::-webkit-scrollbar {
    display: none;
  }

  .day-tab {
    flex: 0 0 132px;
  }

  .roster-display {
    grid-template-columns: 1fr;
  }

  .roster-summary {
    text-align: center;
  }
}

@media (max-width: 640px) {
  .roster-shell {
    margin-top: 36px;
  }

  .roster-slider-wrap {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    gap: 8px;
  }

  .slider-arrow {
    width: 38px;
    height: 38px;
    font-size: 24px;
  }

  .therapist-card {
    flex-basis: 185px;
  }

  .therapist-image {
    width: 185px;
  }
}

/* =========================================
   DOUBLE ROW ROSTER
========================================= */

.schedule-double {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.schedule-slider {
  width: 100%;
  display: flex;
  align-items: stretch;
  gap: 22px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.schedule-slider::-webkit-scrollbar {
  display: none;
}

.therapist-card {
  flex: 0 0 220px;
  scroll-snap-align: start;
}

.roster-slider-wrap {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center;
  gap: 18px;
}

.slider-arrow {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(25, 25, 25, 0.14);
  border-radius: 50%;
  background: #ffffff;
  color: #191919;
  font: inherit;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  transition:
    transform 0.25s ease,
    background 0.25s ease,
    border-color 0.25s ease;
}

.slider-arrow:hover {
  transform: translateY(-2px);
  background: #191919;
  border-color: #191919;
  color: #ffffff;
}

.roster-summary-text {
  max-width: 280px;
  margin: 18px 0 28px;
  line-height: 1.7;
  opacity: 0.72;
}

@media (max-width: 900px) {
  .roster-slider-wrap {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    gap: 10px;
  }

  .slider-arrow {
    width: 42px;
    height: 42px;
  }

  .therapist-card {
    flex-basis: 190px;
  }
}

@media (max-width: 640px) {
  .roster-display {
    display: block;
  }

  .roster-summary {
    margin-bottom: 30px;
  }

  .schedule-double {
    gap: 18px;
  }

  .roster-slider-wrap {
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    gap: 7px;
  }

  .slider-arrow {
    width: 36px;
    height: 36px;
    font-size: 24px;
  }

  .therapist-card {
    flex-basis: 160px;
  }
}