:root{
  --ivory:#FAF7F1;
  --paper:#F7EEE7;
  --stone:#E9DDD1;
  --taupe:#B9A688;
  --ink:#1C1A17;
  --ink-soft:#5B5245;
  --line:rgba(28,26,23,0.14);
  --serif:'Bodoni Moda', serif;
  --sans:'Montserrat', sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--ivory);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1320px; margin:0 auto; padding:0 48px;}
.tracked{ letter-spacing:0.16em; text-transform:uppercase; font-size:11.5px; font-weight:500; }
.eyebrow{ color:var(--taupe); font-weight:600; }
h1,h2,h3{ font-family:var(--serif); font-weight:400; color:var(--ink); letter-spacing:-0.01em; }
h2 em, h1 em, h3 em{ font-style:italic; font-weight:400; }

.btn-line{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 34px;
  border:1px solid var(--ink);
  font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
  transition: all .3s ease;
}
.btn-line:hover{ background:var(--ink); color:var(--ivory); }
.btn-line-light{ border-color:rgba(250,247,241,0.6); color:var(--ivory); }
.btn-line-light:hover{ background:var(--ivory); color:var(--ink); border-color:var(--ivory); }
.btn-solid{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 36px;
  background:var(--ink); color:var(--ivory);
  font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
  border:1px solid var(--ink);
  transition: all .3s ease;
}
.btn-solid:hover{ background:transparent; color:var(--ink); }

.btn-small{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:600;
  color:var(--taupe); margin-top:14px;
  border-bottom:1px solid transparent;
}
.btn-small:hover{ border-bottom-color:var(--taupe); }

.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------------- HEADER ---------------- */
.topbar{
  background:var(--paper); color:var(--ink-soft);
  font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.topbar .wrap{ display:flex; justify-content:space-between; }
.topbar a:hover{ color:var(--ink); }

header{ background:var(--ivory); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100; }
.nav-main{ display:flex; align-items:center; justify-content:space-between; padding:26px 0; }
.menu-btn{ display:flex; align-items:center; gap:10px; background:none; border:none; cursor:pointer; font-family:var(--sans); }
.menu-btn .bars{ display:flex; flex-direction:column; gap:4px; }
.menu-btn .bars span{ width:20px; height:1px; background:var(--ink); display:block; }
.logo{ font-family:var(--serif); font-size:30px; letter-spacing:0.14em; display:inline-flex; align-items:center; }
.logo img{ height:46px; width:auto; display:block; }
.inline-logo{ height:0.68em; width:auto; display:inline-block; vertical-align:-0.1em; }
.nav-sub{ border-top:1px solid var(--line); }
.nav-sub .wrap{ display:flex; align-items:center; gap:42px; padding:16px 48px; }
.nav-sub .brandline{ font-size:13px; letter-spacing:0.06em; font-weight:500; padding-right:32px; border-right:1px solid var(--line); white-space:nowrap; }
.nav-sub-links{ display:flex; gap:38px; flex:1; }
.nav-sub-links a{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); position:relative; padding:4px 0; white-space:nowrap; }
.nav-sub-links a.active, .nav-sub-links a:hover{ color:var(--ink); }
.nav-sub-links a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-17px; height:2px; background:var(--taupe); }

@media(max-width:1300px){
  .nav-sub .wrap{ gap:26px; padding:16px 32px; }
  .nav-sub .brandline{ display:none; }
  .nav-sub-links{ gap:20px; }
  .nav-sub-links a{ font-size:11px; }
}

.mobile-menu{
  position:fixed; inset:0; background:var(--ivory); z-index:999;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
  transform:translateY(-100%); transition:transform .5s ease;
}
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a{ font-family:var(--serif); font-size:26px; }
.mobile-menu .close-btn{ position:absolute; top:30px; right:40px; background:none; border:none; font-size:13px; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; }

/* ---------------- HERO ---------------- */
.hero{ position:relative; background:var(--ivory); padding-bottom:44px; }
.hero-media{ padding:0 56px; box-sizing:border-box; }
.hero-frame{ position:relative; width:100%; aspect-ratio:16/10; max-height:80vh; overflow:hidden; box-sizing:border-box; border-bottom:4px solid var(--ink); }
.hero-frame img{ width:100%; height:100%; object-fit:cover; object-position:center 42%; display:block; }
.hero-tag{ color:var(--taupe); margin-bottom:22px; display:inline-block; }
.hero p{ margin-top:24px; color:var(--ink-soft); font-size:16.5px; max-width:420px; font-weight:300; }
.hero-actions{ display:flex; gap:16px; margin-top:32px; padding:0 20px; flex-wrap:wrap; justify-content:center; }

/* Split hero: portrait reception photo beside the headline + CTAs */
.hero-split{ padding:0 0 64px; }
.hero-split-grid{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:72px; align-items:center; }
.hero-split-photo{ border-bottom:4px solid var(--ink); aspect-ratio:3/4; overflow:hidden; width:100%; }
.hero-split-photo img{ width:100%; height:100%; object-fit:cover; object-position:center bottom; }
.hero-split-text h1{ font-size:clamp(40px,4.6vw,66px); line-height:1.06; margin-top:20px; }
.hero-split-text h1 em{ color:var(--taupe); }
.hero-split-text p{ margin-top:22px; color:var(--ink-soft); font-size:17px; font-weight:300; max-width:420px; }
.hero-actions.left{ justify-content:flex-start; padding:0; margin-top:34px; }
@media(max-width:960px){
  .hero-split-grid{ gap:40px; }
}
@media(max-width:720px){
  .hero-split{ padding-bottom:40px; }
  .hero-split-grid{ grid-template-columns:1fr; gap:24px; padding:0 20px; }
  .hero-split-photo{ max-height:none; aspect-ratio:3/4; }
  .hero-split-photo img{ object-position:center bottom; }
  .hero-split-text{ text-align:center; }
  .hero-split-text h1{ font-size:34px; margin-top:14px; }
  .hero-split-text p{ margin:14px auto 0; font-size:15px; }
  .hero-actions.left{ justify-content:center; margin-top:22px; }
}
.hero-meta{ display:flex; gap:40px; margin-top:56px; padding-top:26px; border-top:1px solid var(--line); }
.hero-meta div p:first-child{ font-family:var(--serif); font-size:24px; color:var(--ink); }
.hero-meta div p:last-child{ font-size:11.5px; color:var(--ink-soft); letter-spacing:0.06em; text-transform:uppercase; margin-top:4px; }

/* ---------------- PULL QUOTE ---------------- */
.pull-quote{ padding:20px 0 100px; text-align:center; background:var(--ivory); }
.pull-quote .wrap{ max-width:780px; }
.pull-quote .script-quote{ font-family:'Dancing Script', cursive; font-weight:600; font-size:clamp(26px,3.1vw,38px); line-height:1.5; color:var(--taupe); margin:0; }
.pull-quote .attr{ display:block; margin-top:20px; font-family:var(--sans); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-soft); }

/* ---------------- PAGE TABS (in-page jump nav, e.g. Rachel's page) ---------------- */
.page-tabs{ background:var(--ivory); border-bottom:1px solid var(--line); }
.page-tabs-links{ display:flex; gap:38px; padding:18px 48px; }
.page-tabs a{ font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); position:relative; padding:4px 0; white-space:nowrap; }
.page-tabs a.active, .page-tabs a:hover{ color:var(--ink); }
.page-tabs a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-15px; height:2px; background:var(--taupe); }

/* ---------------- PAGE HERO (Academy / Rachel subpages) ---------------- */
.page-hero{ padding:64px 0 90px; text-align:center; background:var(--paper); }
.page-hero .back-link{ display:block; margin-bottom:26px; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); }
.page-hero .back-link:hover{ color:var(--ink); }
.page-hero h1{ font-size:clamp(36px,4.6vw,64px); font-weight:400; max-width:820px; margin:18px auto 0; }
.page-hero h1 em{ color:var(--taupe); font-style:italic; }
.page-hero p{ margin:22px auto 0; max-width:520px; color:var(--ink-soft); font-size:16px; font-weight:300; }

.academy-hero{ position:relative; overflow:hidden; }
.academy-hero::before{
  content:"";
  position:absolute; inset:-30px;
  background:url('images/academy-hero-bg.jpg') center 42% / cover no-repeat;
  filter:blur(4px) saturate(1.05);
  transform:scale(1.03);
  opacity:1;
}
.academy-hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(247,238,231,0.34) 0%, rgba(247,238,231,0.44) 55%, var(--paper) 100%);
}
.academy-hero .wrap{ position:relative; z-index:1; }

/* ---------------- INTRO / STORY ---------------- */
.story-hero{ padding:48px 0 30px; }
.story-hero-grid{ display:grid; grid-template-columns:minmax(300px,440px) 1fr; gap:80px; align-items:center; }
.story-hero-text .rule{ width:40px; height:1px; background:var(--line); margin-bottom:26px; }
.story-hero-text h2{ font-size:clamp(38px,4.6vw,60px); line-height:1.08; color:var(--ink); font-weight:400; }
.story-hero-text h2 em{ color:var(--taupe); font-style:italic; }
.story-hero-text .subhead{ font-family:var(--serif); font-style:italic; font-size:19px; color:var(--ink-soft); margin-top:22px; }
.story-hero-text p{ margin-top:22px; color:var(--ink-soft); font-size:16px; max-width:420px; font-weight:300; }
.story-hero-text .actions{ margin-top:32px; }

.text-link{ display:inline-flex; align-items:center; gap:10px; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500; color:var(--ink); padding-bottom:9px; border-bottom:1px solid var(--ink); }
.text-link span{ font-size:14px; transition:transform .25s ease; }
.text-link:hover span{ transform:translateX(4px); }

/* Three plain, uniformly cropped (3:4) salon photos — no frames */
.film-trio{ display:flex; align-items:flex-start; gap:18px; width:100%; }
.film-card{ flex:1 1 0; min-width:0; }
.film-card img{ display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }

.placeholder-block{
  position:relative; width:100%; aspect-ratio:4/5;
  background: var(--paper);
  display:flex; align-items:center; justify-content:center;
}
.placeholder-block .cap{ font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-soft); opacity:0.55; }

/* ---------------- SERVICES ---------------- */
.services{ background:var(--paper); padding:130px 0; }
.section-head{ text-align:center; max-width:640px; margin:0 auto 48px; }
.section-head h2{ font-size:clamp(32px,3.4vw,48px); margin-top:18px; font-weight:400; }
.section-head p{ margin-top:18px; color:var(--ink-soft); font-size:15.5px; font-weight:300; }
.service-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); }
.service-item{ background:var(--paper); display:block; text-decoration:none; color:inherit; }
.service-item .placeholder-block{ aspect-ratio:4/3; background:var(--stone); overflow:hidden; }
.service-item .placeholder-block img{ transition:transform .5s ease; }
.service-item:hover .placeholder-block img{ transform:scale(1.045); }
.service-copy{ padding:16px 8px 10px; display:flex; flex-direction:column; }
.service-copy .tracked{ color:var(--taupe); margin-top:8px; }
.service-copy h3{ order:-1; font-size:23px; margin-top:0; font-weight:400; transition:color .25s ease; }
.service-item:hover .service-copy h3{ color:var(--taupe); }
.service-copy p{ margin-top:10px; color:var(--ink-soft); font-size:14px; font-weight:300; }

/* ---------------- TEAM ---------------- */
.team{ padding:130px 0; }
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.team-card .placeholder-block{ aspect-ratio:3/4; background:var(--stone); }
.team-copy{ padding-top:20px; text-align:left; }
.team-copy .tracked{ color:var(--taupe); }
.team-copy h3{ font-size:21px; margin-top:8px; font-weight:400; }
.team-copy p{ margin-top:8px; color:var(--ink-soft); font-size:13.5px; font-weight:300; line-height:1.6; }
.team-copy .btn-small{ display:block; }

/* ---------------- SPACE / GALLERY ---------------- */
.space{
  position:relative;
  background:#100e0b url('images/salon-3.jpg') center 30% / cover no-repeat;
  color:var(--ivory); padding:140px 0;
}
.space::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(16,14,11,0.93) 0%, rgba(16,14,11,0.86) 45%, rgba(16,14,11,0.96) 100%);
}
.space .wrap{ position:relative; z-index:1; }
.space .section-head{
  text-align:center; max-width:640px; margin:0 auto 90px;
  padding-bottom:46px; border-bottom:1px solid rgba(250,247,241,0.16);
}
.space .section-head .eyebrow{ color:var(--taupe); }
.space .section-head h2{ color:var(--ivory); font-size:clamp(44px,5.6vw,78px); margin-top:8px; line-height:1.02; }
.space .section-head p{ color:rgba(250,247,241,0.6); font-size:16.5px; max-width:420px; margin:14px auto 0; }
.space-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.space-row .placeholder-block{ background:#2b2822; aspect-ratio:3/4; height:auto; min-height:0; overflow:hidden; }
.space .placeholder-block .cap{ color:rgba(250,247,241,0.4); }
.space-caption{ margin-top:30px; text-align:center; font-size:12px; color:rgba(250,247,241,0.75); letter-spacing:0.14em; text-transform:uppercase; line-height:1.8; }

/* ---------------- REVIEWS ---------------- */
.reviews{ padding:130px 0; text-align:center; }
.g-line{ display:flex; justify-content:center; align-items:center; gap:16px; margin-bottom:56px; flex-wrap:wrap; text-decoration:none; color:inherit; }
.g-line .g-icon{ width:22px; height:22px; flex-shrink:0; }
.g-line .stars{ color:var(--taupe); font-size:15px; letter-spacing:3px; }
.g-line .score{ font-family:var(--serif); font-size:22px; }
.g-line .live{ display:inline-flex; align-items:center; gap:8px; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); }
.live-dot{ width:6px; height:6px; border-radius:50%; background:#6b8a5b; }
.review-track{ display:grid; grid-template-columns:repeat(3,1fr); gap:60px; max-width:1100px; margin:0 auto; }
.review-item .stars{ color:var(--taupe); font-size:14px; letter-spacing:2px; display:block; margin-bottom:22px; }
.review-item p{ font-family:var(--serif); font-style:italic; font-size:18px; line-height:1.5; font-weight:400; color:var(--ink); }
.review-item .who{ margin-top:24px; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); }

/* ---------------- CTA ---------------- */
.cta{ background:var(--paper); padding:120px 0; text-align:center; }
.cta h2{ font-size:clamp(30px,3.6vw,50px); font-weight:400; }
.cta p{ margin:22px auto 40px; max-width:460px; color:var(--ink-soft); font-weight:300; font-size:15.5px; }

/* ---------------- RACHEL / STAFF PORTFOLIO PAGE ---------------- */
.portfolio-intro{ padding:20px 0 90px; }
.portfolio-intro .wrap{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:90px; align-items:center; }
.portfolio-intro .placeholder-block{ aspect-ratio:4/5; }
.portfolio-intro h2{ font-size:clamp(28px,3vw,38px); font-weight:400; }
.portfolio-intro p{ margin-top:22px; color:var(--ink-soft); font-size:16px; max-width:460px; font-weight:300; }
.portfolio-intro .actions{ margin-top:34px; }

.portfolio-gallery{ background:var(--paper); padding:110px 0; }
.portfolio-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.portfolio-grid .placeholder-block{ aspect-ratio:4/5; background:var(--stone); }

/* ---------------- RACHEL: CREDENTIALS / WHAT MATTERS ---------------- */
.credentials-strip{ margin-top:20px; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft); }
.matters{ background:var(--paper); padding:100px 0; }
.matters-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line); margin-top:20px; }
.matters-item{ background:var(--paper); padding:36px; }
.matters-item .tracked{ color:var(--taupe); }
.matters-item h3{ font-size:19px; margin-top:10px; font-weight:400; }
.matters-item p{ margin-top:10px; color:var(--ink-soft); font-size:14px; font-weight:300; }
.credentials-list{ margin-top:30px; }
.credentials-row{ display:flex; justify-content:space-between; gap:24px; padding:16px 0; border-bottom:1px solid var(--line); font-size:14px; }
.credentials-row .label{ color:var(--ink); font-weight:500; }
.credentials-row .detail{ color:var(--ink-soft); text-align:right; font-weight:300; }
.comfort-note{ padding:100px 0; }
.comfort-note .wrap{ max-width:760px; }
.comfort-note p{ margin-top:20px; color:var(--ink-soft); font-size:16px; font-weight:300; line-height:1.7; }

/* ---------------- RACHEL: TREATMENT DIRECTORY ---------------- */
.treatment-directory{ background:var(--paper); padding:110px 0; }
.treatment-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line); margin-top:20px; }
.treatment-card{ background:var(--ivory); padding:36px 40px; display:block; transition:background .3s ease; }
.treatment-card:hover{ background:var(--paper); }
.treatment-card .tracked{ color:var(--taupe); }
.treatment-card h3{ font-size:21px; margin-top:10px; font-weight:400; }
.treatment-card p{ margin-top:10px; color:var(--ink-soft); font-size:13.5px; font-weight:300; line-height:1.55; }
.treatment-card .go{ margin-top:16px; display:inline-block; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink); }

/* ---------------- TREATMENT DETAIL PAGES ---------------- */
.treatment-info{ padding:90px 0 100px; }
.treatment-info h2{ font-size:clamp(26px,2.8vw,34px); font-weight:400; margin-bottom:30px; }
.qa-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:44px 60px; }
.qa-item .q{ display:block; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--taupe); font-weight:600; margin-bottom:10px; }
.qa-item p{ color:var(--ink-soft); font-size:14.5px; font-weight:300; line-height:1.65; }
.pricing-block{ background:var(--paper); padding:90px 0; }
.pricing-block h2{ font-size:clamp(26px,2.8vw,34px); font-weight:400; }
.price-table{ width:100%; border-collapse:collapse; margin-top:30px; max-width:720px; }
.price-table td{ padding:18px 0; border-bottom:1px solid var(--line); font-size:14.5px; color:var(--ink-soft); font-weight:300; vertical-align:top; }
.price-table td:first-child{ color:var(--ink); font-weight:500; padding-right:30px; }
.price-table td:last-child{ text-align:right; white-space:nowrap; }
.price-note{ margin-top:20px; color:var(--ink-soft); font-size:13px; font-weight:300; font-style:italic; }
.faq-block{ padding:90px 0 100px; }
.faq-block h2{ font-size:clamp(26px,2.8vw,34px); font-weight:400; margin-bottom:10px; }
.faq-list{ margin-top:30px; max-width:800px; }
.faq-item{ padding:26px 0; border-bottom:1px solid var(--line); }
.faq-item:first-child{ padding-top:0; }
.faq-item .q{ font-family:var(--serif); font-size:18px; font-weight:400; margin-bottom:10px; }
.faq-item .a{ color:var(--ink-soft); font-size:14.5px; font-weight:300; line-height:1.65; }
.treatment-cta{ background:var(--ink); color:var(--ivory); padding:100px 0; text-align:center; }
.treatment-cta h2{ color:var(--ivory); font-size:clamp(28px,3.2vw,42px); font-weight:400; }
.treatment-cta p{ margin:20px auto 34px; max-width:460px; color:rgba(250,247,241,0.65); font-size:15px; font-weight:300; }

/* ---------------- ACADEMY PAGE ---------------- */
.academy-about{ padding:20px 0 110px; }
.academy-about .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.academy-about h2{ font-size:clamp(28px,3vw,38px); font-weight:400; }
.academy-about p{ margin-top:22px; color:var(--ink-soft); font-size:16px; max-width:460px; font-weight:300; }

.courses{ background:var(--paper); padding:110px 0; }
.course-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); }
.course-item{ background:var(--paper); }
.course-photo{ aspect-ratio:4/3; background:var(--stone); }
.course-copy{ padding:32px 34px 40px; }
.course-copy .tracked{ color:var(--taupe); }
.course-copy h3{ font-size:22px; margin-top:14px; font-weight:400; }
.course-copy p{ margin-top:12px; color:var(--ink-soft); font-size:14px; font-weight:300; }
.course-details{ margin-top:24px; padding-top:20px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:9px; }
.course-details > div{ display:flex; justify-content:space-between; gap:16px; }
.course-details .dt{ font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); }
.course-details .dd{ font-size:13px; color:var(--ink); font-weight:500; text-align:right; }

.academy-gallery{ padding:110px 0; }
.academy-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.academy-grid .placeholder-block{ aspect-ratio:3/4; background:var(--stone); }

/* ---------------- BOOKING ENQUIRY FORM ---------------- */
.booking-form-section{ padding:20px 0 120px; }
.page-hero.form-hero{ padding:56px 0 34px; }
.booking-form-section.compact{ padding-top:0; }
.booking-form{ max-width:640px; margin:0 auto; }
.form-row{ margin-bottom:30px; }
.form-row-split{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.booking-form label{ display:block; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px; }
.booking-form input[type="text"],
.booking-form input[type="email"],
.booking-form input[type="tel"],
.booking-form select,
.booking-form textarea{
  width:100%; font-family:var(--sans); font-size:15px; color:var(--ink);
  background:transparent; border:none; border-bottom:1px solid var(--line);
  padding:10px 2px; outline:none; transition:border-color .25s ease;
}
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus{ border-bottom-color:var(--ink); }
.booking-form textarea{ resize:vertical; }
.booking-form select{ appearance:none; -webkit-appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%); background-position: calc(100% - 4px) 16px, calc(100% - 0px) 16px; background-size:6px 6px; background-repeat:no-repeat; }
.booking-form .btn-solid{ border:none; cursor:pointer; font-family:var(--sans); }
.form-note{ margin-top:16px; color:var(--ink-soft); font-size:13px; font-weight:300; max-width:440px; }

/* ---------------- FOOTER ---------------- */
footer{ padding:80px 0 32px; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--line); }
.footer-logo{ font-family:var(--serif); font-size:26px; letter-spacing:0.12em; }
.footer-logo img{ height:20px; width:auto; display:block; }
.footer-top p{ margin-top:16px; max-width:230px; color:var(--ink-soft); font-size:13.5px; font-weight:300; }
.footer-col h4{ font-size:11px; letter-spacing:0.12em; text-transform:uppercase; margin-bottom:18px; color:var(--taupe); }
.footer-col a, .footer-col p{ display:block; font-size:13.5px; color:var(--ink-soft); line-height:2; font-weight:300; }
.footer-col a:hover{ color:var(--ink); }
.footer-bottom{ display:flex; justify-content:space-between; padding-top:24px; font-size:11.5px; letter-spacing:0.04em; color:var(--ink-soft); flex-wrap:wrap; gap:10px; }

/* ---------------- RESPONSIVE ---------------- */
@media(max-width:960px){
  .wrap{ padding:0 26px; }
  .nav-sub .wrap{ padding:14px 26px; }
  .nav-sub-links{ display:none; }
  .page-tabs-links{ padding:16px 26px; gap:24px; overflow-x:auto; }
  .story-hero-grid{ grid-template-columns:1fr; gap:50px; text-align:center; }
  .story-hero-text .rule{ margin-left:auto; margin-right:auto; }
  .story-hero-text p{ margin-left:auto; margin-right:auto; }
  .film-trio{ max-width:520px; margin:0 auto; gap:12px; flex-wrap:wrap; }
  .film-card{ flex:1 1 calc(50% - 6px); }
  .film-card:first-child{ flex:1 1 100%; }
  .film-card:first-child img{ aspect-ratio:4/3; }
  .service-row{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:repeat(2,1fr); }
  .space-row{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .space-row .placeholder-block:nth-child(1), .space-row .placeholder-block:nth-child(6), .space-row .placeholder-block:nth-child(9){ grid-column:1 / -1; aspect-ratio:4/3; }
  .space-row .placeholder-block:nth-child(1) img{ object-position:50% 68%; }
  .space-row .placeholder-block:nth-child(6) img{ object-position:50% 62%; }
  .space-row .placeholder-block:nth-child(9) img{ object-position:50% 32%; }
  .review-track{ grid-template-columns:1fr; gap:44px; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .topbar .wrap div:last-child{ display:none; }
  .portfolio-intro .wrap{ grid-template-columns:1fr; gap:50px; }
  .portfolio-grid{ grid-template-columns:repeat(2,1fr); }
  .academy-about .wrap{ grid-template-columns:1fr; gap:50px; }
  .course-grid{ grid-template-columns:1fr; }
  .academy-grid{ grid-template-columns:repeat(2,1fr); }
  .matters-grid{ grid-template-columns:1fr; }
  .treatment-grid{ grid-template-columns:1fr; }
  .qa-grid{ grid-template-columns:1fr; gap:34px; }
  .credentials-row{ flex-direction:column; gap:4px; }
  .form-row-split{ grid-template-columns:1fr; gap:0; }
  .form-row-split > div{ margin-bottom:30px; }
  .form-row-split > div:last-child{ margin-bottom:0; }
}
@media(max-width:600px){
  .hero-media{ padding:0 20px; }
  .hero-frame{ aspect-ratio:4/5; max-height:60vh; }
  .services, .team, .space, .reviews, .cta{ padding:80px 0; }
  .footer-top{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:1fr; }
  .portfolio-grid{ grid-template-columns:1fr; }
  .academy-grid{ grid-template-columns:1fr; }
  .back-to-top{ right:16px; bottom:16px; width:38px; padding:11px 0 10px; }
  .back-to-top .arrow{ font-size:14px; }
  .back-to-top .label{ font-size:8px; }
  .photo-stack{ aspect-ratio:4/4.6; }
  .logo img{ height:32px; }
}

/* ---------------- BACK TO TOP ---------------- */
.back-to-top{
  position:fixed; right:32px; bottom:32px; z-index:80;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  width:46px; padding:16px 0 14px;
  background:var(--ivory);
  border:1px solid var(--ink);
  color:var(--ink);
  cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s ease, transform .35s ease, visibility .35s, background .3s ease, color .3s ease;
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ background:var(--ink); color:var(--ivory); }
.back-to-top .arrow{ font-size:15px; line-height:1; font-weight:300; }
.back-to-top .label{
  font-size:9px; letter-spacing:0.16em; text-transform:uppercase; font-weight:500;
  writing-mode:vertical-rl; transform:rotate(180deg);
}

/* ---------------- MOBILE FLOATING BOOK NOW (phones only) ---------------- */
/* Hidden entirely on tablet/desktop; on phones it fades in once you've
   scrolled past the hero photo, so it never sits on top of it. Sits at the
   opposite corner from the Back to Top button so the two never collide. */
.mobile-book-cta{
  display:none;
  position:fixed; left:16px; bottom:16px; z-index:80;
  align-items:center; justify-content:center;
  padding:13px 20px;
  background:var(--ink); color:var(--ivory);
  font-family:var(--sans); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; font-weight:500;
  border:1px solid var(--ink);
  white-space:nowrap;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s ease, transform .35s ease, visibility .35s;
}
.mobile-book-cta.show{ opacity:1; visibility:visible; transform:translateY(0); }
@media(max-width:600px){
  .nav-main .btn-solid{ display:none; }
  .mobile-book-cta{ display:inline-flex; }
}
@media(max-width:600px){
  .nav-main .btn-line{ display:none; }
}

/* ---------------- TREATMENTS PAGE (dark) ---------------- */
.page-hero.dark-hero{ background:var(--ink); }
.page-hero.dark-hero .back-link{ color:rgba(250,247,241,0.55); }
.page-hero.dark-hero .back-link:hover{ color:var(--ivory); }
.page-hero.dark-hero h1{ color:var(--ivory); }
.page-hero.dark-hero p{ color:rgba(250,247,241,0.65); }

.page-tabs.dark-tabs{ background:#100e0b; border-bottom:1px solid rgba(250,247,241,0.14); }
.page-tabs.dark-tabs .page-tabs-links{ justify-content:center; }
@media(max-width:960px){
  .page-tabs.dark-tabs .page-tabs-links{ justify-content:flex-start; }
}
.page-tabs.dark-tabs a{ color:rgba(250,247,241,0.55); }
.page-tabs.dark-tabs a.active, .page-tabs.dark-tabs a:hover{ color:var(--ivory); }
.page-tabs.dark-tabs a.active::after{ background:var(--taupe); }

.treatments-page{ background:var(--ink); }
.treatment-section{ padding:52px 0; border-bottom:1px solid rgba(250,247,241,0.1); }
.treatment-section:last-of-type{ border-bottom:none; }
.treatment-section .section-head{ text-align:center; max-width:640px; margin:0 auto 60px; }
.treatment-section .section-head .eyebrow{ color:var(--taupe); }
.treatment-section .section-head h2{ color:var(--ivory); font-size:clamp(32px,4vw,48px); margin-top:8px; font-weight:400; }
.treatment-section .section-head p{ color:rgba(250,247,241,0.6); margin-top:14px; font-size:15.5px; font-weight:300; }

/* Progressive-disclosure accordion — each category collapsed by default (Packages open) */
.accordion-header{
  display:block; width:100%;
  background:none; border:none; margin:0; padding:0;
  cursor:pointer; text-align:inherit; font:inherit; color:inherit;
  -webkit-tap-highlight-color:transparent;
}
.accordion-header .section-head{ margin-bottom:0; }
.accordion-header:hover .section-head h2{ color:var(--taupe); transition:color .25s ease; }

.accordion-indicator{
  display:flex; align-items:center; justify-content:center; gap:9px;
  width:fit-content; margin:28px auto 0;
  padding:10px 22px;
  border:1px solid rgba(250,247,241,0.28);
  border-radius:999px;
  color:rgba(250,247,241,0.7);
  font-family:var(--sans); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; font-weight:500;
  transition:border-color .25s ease, color .25s ease;
}
.accordion-header:hover .accordion-indicator{ border-color:var(--taupe); color:var(--ivory); }
.accordion-header[aria-expanded="true"] .accordion-indicator{ border-color:rgba(250,247,241,0.5); color:var(--ivory); }

.accordion-plus{ position:relative; width:10px; height:10px; flex-shrink:0; }
.accordion-plus::before, .accordion-plus::after{
  content:""; position:absolute; background:currentColor;
  top:50%; left:50%; transform:translate(-50%,-50%);
  transition:transform .3s ease, opacity .3s ease;
}
.accordion-plus::before{ width:10px; height:1.4px; }
.accordion-plus::after{ width:1.4px; height:10px; }
.accordion-header[aria-expanded="true"] .accordion-plus::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }

.accordion-panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .5s cubic-bezier(0.65,0,0.35,1);
}
.accordion-panel.open{ grid-template-rows:1fr; }
.accordion-panel-inner{ overflow:hidden; padding-top:44px; }

.section-book-cta{ text-align:center; margin-top:48px; }

.treatment-subgroup{ max-width:820px; margin:0 auto 56px; }
.treatment-subgroup:last-child{ margin-bottom:0; }
.treatment-subgroup h3{ color:var(--ivory); font-size:17px; font-weight:500; margin-bottom:4px; letter-spacing:0.01em; }
.treatment-subgroup .sub-note{ color:rgba(250,247,241,0.48); font-size:13px; margin-bottom:18px; font-weight:300; font-style:italic; }

.dark-price-table{ width:100%; border-collapse:collapse; max-width:820px; margin:0 auto; }
.dark-price-table td{ padding:18px 0; border-bottom:1px solid rgba(250,247,241,0.12); vertical-align:top; }
.dark-price-table tr:last-child td{ border-bottom:none; }
.dark-price-table .t-name{ color:var(--ivory); font-weight:500; font-size:15px; padding-right:20px; }
.dark-price-table .t-name .t-desc{ display:block; color:rgba(250,247,241,0.48); font-weight:300; font-size:12.5px; margin-top:5px; line-height:1.5; }
.dark-price-table .t-duration{ color:rgba(250,247,241,0.42); font-size:12.5px; white-space:nowrap; padding-right:20px; }
.dark-price-table .t-price{ color:var(--taupe); font-weight:500; text-align:right; white-space:nowrap; font-size:14.5px; }

.aesthetics-cta{ text-align:center; margin-top:70px; padding-top:56px; border-top:1px solid rgba(250,247,241,0.12); max-width:820px; margin-left:auto; margin-right:auto; }
.aesthetics-cta p{ color:rgba(250,247,241,0.6); max-width:480px; margin:0 auto 26px; font-weight:300; }

@media(max-width:640px){
  .dark-price-table td{ display:block; padding:4px 0; border:none; }
  .dark-price-table tr{ display:block; padding:16px 0; border-bottom:1px solid rgba(250,247,241,0.12); }
  .dark-price-table tr:last-child{ border-bottom:none; }
  .dark-price-table .t-duration, .dark-price-table .t-price{ display:inline-block; margin-top:6px; }
  .dark-price-table .t-duration::after{ content:"  ·  "; }
}

/* ---------------- TREATMENT PHOTO GALLERIES (uniform 4:5) ---------------- */
.work-gallery{ margin:44px 0 6px; }
.work-gallery-title{ display:block; color:var(--taupe); margin-bottom:18px; }
.work-gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.work-gallery-grid img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; display:block; }
@media(max-width:720px){ .work-gallery-grid{ grid-template-columns:repeat(2,1fr); gap:10px; } }

/* Founder feature card — full-width row so Grace's longer bio reads comfortably */
.team-card--founder{ grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,380px) 1fr; gap:64px; align-items:center; margin-bottom:20px; }
.team-card--founder .team-copy{ padding-top:0; max-width:620px; }
.team-card--founder .team-copy h3{ font-size:30px; }
.team-card--founder .team-copy p{ font-size:15px; line-height:1.75; margin-top:14px; }
.team-card--founder .team-copy .btn-small{ display:inline-block; margin-top:24px; }
@media (max-width:900px){
  .team-card--founder{ grid-template-columns:1fr; gap:0; max-width:520px; margin:0 auto 20px; }
  .team-card--founder .team-copy{ padding-top:20px; }
  .team-card--founder .team-copy h3{ font-size:24px; }
}

/* ---------- Google reviews: fixed quotes + scrolling banner ---------- */
.g-line .g-count{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); }
.g-line:hover .g-count{ color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.review-track.single{ grid-template-columns:minmax(0,640px); justify-content:center; }
.review-track.single .review-item p{ font-size:20px; }
.review-marquee{ margin-top:80px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%); }
.review-marquee[hidden]{ display:none; }
.review-marquee-track{ display:flex; gap:24px; width:max-content; animation:reviewScroll var(--dur,80s) linear infinite; }
.review-marquee:hover .review-marquee-track, .review-marquee:focus-within .review-marquee-track{ animation-play-state:paused; }
@keyframes reviewScroll{ to{ transform:translateX(calc(-50% - 12px)); } }
.review-card{ flex:0 0 340px; background:var(--paper); padding:30px 30px 26px; text-align:left; display:flex; flex-direction:column; }
.review-card .stars{ color:var(--taupe); font-size:13px; letter-spacing:2px; margin-bottom:16px; display:block; }
.review-card blockquote{ font-size:13.5px; line-height:1.75; font-weight:300; color:var(--ink-soft); flex:1; }
.review-card figcaption{ margin-top:18px; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink); font-weight:500; }
.review-marquee.static{ -webkit-mask-image:none; mask-image:none; }
.review-marquee.static .review-marquee-track{ animation:none; width:auto; flex-wrap:wrap; justify-content:center; }
.review-more{ display:inline-block; margin-top:52px; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:4px; }
.review-more:hover{ color:var(--taupe); border-color:var(--taupe); }
.review-actions{ display:flex; justify-content:center; flex-wrap:wrap; gap:18px 44px; margin-top:52px; }
.review-actions .review-more{ margin-top:0; }
@media (prefers-reduced-motion:reduce){
  .review-marquee{ overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
  .review-marquee-track{ animation:none; }
  .review-card[aria-hidden="true"]{ display:none; }
}
@media (max-width:720px){ .review-card{ flex-basis:280px; padding:26px 24px 22px; } .review-marquee{ margin-top:56px; } }

/* ---------- Privacy / legal page ---------- */
.legal{ padding:20px 0 120px; background:var(--ivory); }
.legal-body{ max-width:720px; margin:0 auto; text-align:left; }
.legal-body .legal-updated{ font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--taupe); margin-bottom:36px; }
.legal-body h2{ font-size:24px; margin:44px 0 14px; }
.legal-body p, .legal-body li{ font-size:15px; line-height:1.8; font-weight:300; color:var(--ink-soft); }
.legal-body p{ margin-bottom:14px; }
.legal-body ul{ margin:0 0 14px 20px; }
.legal-body li{ margin-bottom:8px; }
.legal-body strong{ font-weight:500; color:var(--ink); }
.legal-body a{ color:var(--ink); border-bottom:1px solid var(--taupe); }

/* Academy — slimmed-down layout */
.course-grid.two{ grid-template-columns:repeat(2,1fr); max-width:1000px; margin:0 auto; }
.course-more{ display:flex; align-items:center; }
.course-more .course-copy{ padding:48px 44px; }
.academy-grid.three{ grid-template-columns:repeat(3,1fr); max-width:1000px; margin:0 auto; }
@media (max-width:900px){ .course-grid.two{ grid-template-columns:1fr; } .academy-grid.three{ grid-template-columns:repeat(3,1fr); gap:12px; } }
@media (max-width:560px){ .academy-grid.three{ grid-template-columns:1fr 1fr 1fr; gap:8px; } }

/* Studio-715 credit */
.footer-credit{ margin-top:22px; padding-top:18px; border-top:1px solid rgba(28,26,23,0.08); text-align:center; font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; }
.footer-credit a{ color:var(--ink-soft); opacity:0.55; transition:opacity .25s ease; }
.footer-credit a:hover, .footer-credit a:focus-visible{ opacity:1; }
.footer-credit span{ color:var(--ink); font-weight:500; letter-spacing:0.2em; border-bottom:1px solid transparent; transition:border-color .25s ease; }
.footer-credit a:hover span{ border-bottom-color:var(--ink); }
@media (max-width:960px){ footer{ padding-bottom:150px; } }
/* Academy hero — keep the small gold text readable over the photo */
.academy-hero .hero-tag{ color:#6B5A41; font-weight:600; }
.academy-hero h1 em{ color:#7A6648; }

/* Academy Instagram link */
.academy-ig{ text-align:center; margin-top:48px; }
.academy-ig a{ display:inline-block; font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:4px; }
.academy-ig a:hover{ color:var(--taupe); border-color:var(--taupe); }

/* Academy student review */
.academy-review{ padding:40px 0 72px; background:var(--paper); }
.academy-review-card{ max-width:440px; margin:0 auto; }
.academy-review-card img{ display:block; width:100%; height:auto; box-shadow:0 18px 50px rgba(60,45,30,.12); }
@media (max-width:640px){ .academy-review{ padding:24px 0 56px; } .academy-review-card{ max-width:340px; } }

/* 3-up work gallery */
.work-gallery-grid.three{ grid-template-columns:repeat(3,1fr); }
@media(max-width:720px){ .work-gallery-grid.three{ grid-template-columns:repeat(3,1fr); gap:8px; } }

/* gallery consent note */
.gallery-note{ text-align:center; max-width:640px; margin:28px auto 0; font-size:13px; color:var(--ink-soft); line-height:1.7; }

/* 2-up work gallery, grad photos, page figures */
.work-gallery-grid.two{ grid-template-columns:repeat(2,1fr); max-width:66%; margin-left:auto; margin-right:auto; }
@media(max-width:720px){ .work-gallery-grid.two{ grid-template-columns:repeat(2,1fr); max-width:100%; } }
.academy-grads{ padding:80px 0 90px; background:var(--ivory); }
.grad-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:760px; margin:0 auto; }
.grad-grid figure{ margin:0; }
.grad-grid img{ display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
@media (max-width:640px){ .academy-grads{ padding:56px 0 60px; } .grad-grid{ gap:10px; } }
.page-figure{ max-width:460px; margin:56px auto 0; }
.page-figure img{ display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }
.page-figure figcaption{ margin-top:12px; text-align:center; font-size:13px; color:var(--ink-soft); }

.academy-grid.four{ grid-template-columns:repeat(4,1fr); max-width:1000px; margin:0 auto; gap:20px; }
@media (max-width:900px){ .academy-grid.four{ grid-template-columns:repeat(2,1fr); gap:12px; } }

/* WhatsApp + review links */
.cta-contact{ margin-top:22px; font-size:14px; }
.wa-link{ display:inline-flex; align-items:center; gap:10px; color:inherit; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:3px; letter-spacing:0.02em; }
.wa-link .wa-icon{ flex:none; color:#25D366; }
.wa-link:hover{ opacity:.75; }
.reviews-link{ color:inherit; border-bottom:1px solid currentColor; padding-bottom:3px; }
.wa-note{ margin-bottom:14px; }
.price-table .t-note{ font-size:12.5px; color:var(--ink-soft); }
.credentials-strip{ max-width:880px; margin-left:auto; margin-right:auto; line-height:2; }

/* ---------------- RACHEL PAGE: TIGHTER LAYOUT ---------------- */
body.rachel-page .page-hero.compact{ padding:40px 0 44px; }
body.rachel-page .page-hero.compact .back-link{ margin-bottom:14px; }
body.rachel-page .page-hero.compact .hero-tag{ margin-bottom:0; }
body.rachel-page .page-hero.compact h1{ margin-top:12px; font-size:clamp(34px,4vw,54px); line-height:1.18; }
body.rachel-page .page-hero.compact p{ margin-top:16px; max-width:560px; }
body.rachel-page .credentials-strip{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:22px; max-width:940px; line-height:1.3; letter-spacing:0.08em; }
body.rachel-page .credentials-strip span{ border:1px solid var(--line); background:var(--ivory); padding:7px 13px; border-radius:999px; font-size:10.5px; }

body.rachel-page .page-tabs-links{ align-items:center; }
.page-tabs .tabs-wa{ margin-left:auto; display:inline-flex; align-items:center; gap:9px; color:var(--ink); text-transform:none; letter-spacing:0.04em; font-size:13px; padding:4px 0; }
.page-tabs .tabs-wa svg{ color:#25D366; flex:none; }
.page-tabs .tabs-wa:hover{ opacity:.75; }

body.rachel-page .portfolio-intro{ padding:44px 0 56px; }
body.rachel-page .portfolio-intro .wrap{ grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:start; }
body.rachel-page .portfolio-intro .placeholder-block{ aspect-ratio:3/4; }
body.rachel-page .portfolio-intro p{ margin-top:14px; max-width:none; font-size:15.5px; line-height:1.65; }
body.rachel-page .portfolio-intro .actions{ margin-top:24px; }

body.rachel-page .matters{ padding:56px 0 18px; }
body.rachel-page .matters .section-head{ margin-bottom:24px; }
body.rachel-page .matters .section-head h2{ font-size:clamp(26px,2.6vw,34px); margin-top:10px; }
body.rachel-page .matters-grid{ grid-template-columns:repeat(4,1fr); margin-top:0; }
body.rachel-page .matters-item{ padding:22px 22px 24px; }
body.rachel-page .matters-item h3{ font-size:17px; margin-top:8px; }
body.rachel-page .matters-item p{ font-size:13px; margin-top:8px; line-height:1.55; }
body.rachel-page .credentials-list{ display:grid; grid-template-columns:1fr 1fr; gap:0 48px; margin-top:18px; }
body.rachel-page .credentials-row{ padding:11px 0; font-size:13px; }

body.rachel-page .treatment-directory{ padding:34px 0 60px; }
body.rachel-page .treatment-directory .section-head{ margin-bottom:24px; }
body.rachel-page .treatment-directory .section-head h2{ font-size:clamp(26px,2.6vw,34px); margin-top:10px; }
body.rachel-page .treatment-grid{ margin-top:0; }
body.rachel-page .treatment-card{ padding:22px 28px; }
body.rachel-page .treatment-card .tracked{ display:none; }
body.rachel-page .treatment-card h3{ margin-top:0; font-size:19px; }
body.rachel-page .treatment-card p{ margin-top:6px; }
body.rachel-page .treatment-card .go{ margin-top:10px; }

body.rachel-page .comfort-note{ padding:60px 0; }
body.rachel-page .comfort-note .wrap{ max-width:1020px; }
.comfort-head{ text-align:center; max-width:660px; margin:0 auto 28px; }
.comfort-head h2{ margin-top:12px; font-size:clamp(26px,2.8vw,36px); font-weight:300; }
body.rachel-page .comfort-note .comfort-lede{ font-family:var(--serif); font-style:italic; font-size:clamp(20px,2vw,25px); color:var(--taupe); margin-top:14px; line-height:1.3; }
.comfort-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.comfort-card{ background:var(--paper); border:1px solid var(--line); padding:28px 32px 30px; }
.comfort-card svg{ display:block; color:var(--taupe); margin-bottom:12px; }
.comfort-card .tracked{ color:var(--ink); }
body.rachel-page .comfort-card p{ margin-top:10px; font-size:14.5px; line-height:1.65; }

body.rachel-page .portfolio-gallery{ padding:60px 0; }
body.rachel-page .portfolio-gallery .section-head{ margin-bottom:24px; }
body.rachel-page .portfolio-gallery .section-head h2{ font-size:clamp(26px,2.6vw,34px); margin-top:10px; }
body.rachel-page .portfolio-grid{ gap:14px; max-width:980px; margin:0 auto; }

body.rachel-page .faq-block{ padding:60px 0 64px; }
body.rachel-page .faq-block .section-head{ margin-bottom:24px; }
body.rachel-page .faq-block .section-head h2{ font-size:clamp(26px,2.6vw,34px); margin-top:10px; }
body.rachel-page .faq-acc-list{ max-width:820px; margin:0 auto; }
.faq-acc{ border-bottom:1px solid var(--line); }
.faq-acc:first-child{ border-top:1px solid var(--line); }
.faq-acc summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:17px 4px; font-family:var(--serif); font-size:18px; line-height:1.35; }
.faq-acc summary::-webkit-details-marker{ display:none; }
.faq-acc summary::after{ content:"+"; font-family:var(--sans); font-weight:300; font-size:24px; line-height:1; color:var(--taupe); flex:none; }
.faq-acc[open] summary::after{ content:"\2212"; }
.faq-acc summary:hover{ color:var(--taupe); }
.faq-acc summary:focus-visible{ outline:2px solid var(--taupe); outline-offset:2px; }
.faq-acc .a{ margin:0; padding:0 4px 20px; max-width:700px; color:var(--ink-soft); font-size:14.5px; font-weight:300; line-height:1.65; }

body.rachel-page .cta{ padding:64px 0; }
body.rachel-page .cta p{ margin:14px auto 24px; }
body.rachel-page .cta .cta-contact{ margin:16px auto 0; }

@media(max-width:960px){
  body.rachel-page .portfolio-intro .wrap{ grid-template-columns:1fr; gap:28px; }
  body.rachel-page .page-tabs-links{ flex-wrap:wrap; overflow:visible; justify-content:center; gap:8px 22px; padding:14px 26px; }
  body.rachel-page .page-tabs .tabs-wa{ order:-1; flex-basis:100%; justify-content:center; margin:0 0 4px; }
  body.rachel-page .matters-grid{ grid-template-columns:repeat(2,1fr); }
  body.rachel-page .credentials-list{ grid-template-columns:1fr; }
  body.rachel-page .credentials-row{ flex-direction:row; justify-content:space-between; gap:20px; }
  body.rachel-page .credentials-row .detail{ text-align:right; }
  .comfort-grid{ grid-template-columns:1fr; }
}
@media(max-width:600px){
  body.rachel-page .page-hero.compact{ padding:30px 0 34px; }
  body.rachel-page .matters-grid{ grid-template-columns:1fr; }
  body.rachel-page .credentials-row{ flex-direction:column; gap:3px; }
  body.rachel-page .credentials-row .detail{ text-align:left; }
  body.rachel-page .comfort-note, body.rachel-page .portfolio-gallery{ padding:44px 0; }
  body.rachel-page .matters{ padding:44px 0 12px; }
  body.rachel-page .treatment-directory{ padding:28px 0 44px; }
  body.rachel-page .faq-block{ padding:44px 0 48px; }
  body.rachel-page .cta{ padding:52px 0; }
  body.rachel-page .portfolio-grid{ grid-template-columns:repeat(2,1fr); gap:8px; }
  body.rachel-page .portfolio-grid .placeholder-block:last-child{ grid-column:1 / -1; aspect-ratio:4/3; }
  body.rachel-page .credentials-strip{ gap:6px; margin-top:18px; }
  body.rachel-page .credentials-strip span{ font-size:9.5px; letter-spacing:0.05em; padding:6px 10px; }
  body.rachel-page .portfolio-intro .placeholder-block{ aspect-ratio:4/4.5; }
  body.rachel-page .portfolio-intro .placeholder-block img{ object-position:50% 22%; }
  body.rachel-page .matters-item{ padding:16px 4px 18px; }
  body.rachel-page .credentials-row{ padding:9px 0; }
  .faq-acc summary{ font-size:17px; }
  .comfort-card{ padding:24px 22px 26px; }
}

.form-error{ margin-top:16px; color:#9b3a2e; font-size:14px; max-width:440px; }

/* ---------------- TOP BAR PHONE + BOOKING NOTICE + CANCELLATION POLICY ---------------- */
.topbar .topbar-tel{ color:var(--ink); font-weight:500; letter-spacing:0.08em; }
.booking-notice, .policy-box{ max-width:640px; margin:0 auto; }
.booking-notice{ display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--paper); border:1px solid var(--line); padding:22px 26px; margin:36px auto 40px; }
.booking-notice-text .tracked{ color:var(--taupe); }
.booking-notice-text p{ margin-top:8px; color:var(--ink-soft); font-size:14px; font-weight:300; line-height:1.6; }
.booking-notice-actions{ flex:none; display:flex; flex-direction:column; align-items:center; gap:12px; }
.booking-notice-actions .btn-solid{ white-space:nowrap; }
.booking-notice-actions .notice-tel{ font-size:12.5px; color:var(--ink-soft); border-bottom:1px solid currentColor; padding-bottom:2px; white-space:nowrap; }
.booking-notice-actions .notice-btn{ padding:13px 24px; white-space:nowrap; }
.policy-box{ margin-top:56px; padding-top:30px; border-top:1px solid var(--line); }
.policy-box h2{ font-size:clamp(20px,2vw,24px); font-weight:400; }
.policy-box p{ margin-top:12px; color:var(--ink-soft); font-size:14px; font-weight:300; line-height:1.65; }
@media(max-width:720px){
  .booking-notice{ flex-direction:column; align-items:stretch; text-align:left; gap:18px; padding:20px 20px 22px; }
  .booking-notice-actions{ flex-direction:row; justify-content:space-between; align-items:center; }
}
@media(max-width:480px){
  .topbar{ letter-spacing:0.06em; font-size:10px; }
  .booking-notice-actions{ flex-direction:column; align-items:stretch; text-align:center; }
}

.footer-legal{ display:flex; gap:22px; flex-wrap:wrap; }
.policy-box{ scroll-margin-top:150px; }

/* ---------------- ACADEMY: COMPACT "WHAT WE OFFER" ---------------- */
.courses{ padding:56px 0 60px; }
.courses .section-head{ margin-bottom:26px; }
.courses .section-head h2{ font-size:clamp(26px,2.6vw,34px); margin-top:10px; }
.courses .course-photo{ aspect-ratio:16/10; }
.courses .course-copy{ padding:22px 28px 26px; }
.courses .course-copy h3{ margin-top:10px; font-size:20px; }
.courses .course-copy p{ margin-top:8px; }
.courses .course-details{ margin-top:16px; padding-top:14px; gap:7px; }
.courses .course-more .course-copy{ padding:28px 32px; }
@media(max-width:600px){ .courses{ padding:40px 0 44px; } }

/* Five-photo gallery: three on the first row, two centred beneath */
.work-gallery-grid.five{ grid-template-columns:repeat(6,1fr); }
.work-gallery-grid.five img{ grid-column:span 2; }
.work-gallery-grid.five img:nth-child(4){ grid-column:2 / span 2; }
.work-gallery-grid.five img:nth-child(5){ grid-column:4 / span 2; }

/* Academy — courses intro (replaces the single course card) */
.courses-intro{ max-width:680px; margin:0 auto; text-align:center; }
.courses-intro h2{ font-size:clamp(28px,3.2vw,42px); font-weight:400; margin-top:14px; }
.courses-intro p{ margin-top:22px; color:var(--ink-soft); font-size:16px; font-weight:300; line-height:1.8; }
.courses-intro .courses-kit{ font-size:15px; }
.courses-intro .courses-kit strong{ font-weight:500; color:var(--ink); }
.cta h2 .inline-logo{ height:0.62em; vertical-align:-0.02em; margin:0 0.08em; }
.cta h2:has(.inline-logo) + .btn-solid{ margin-top:30px; }
