/* ==========================================================================
   Elevate Wellbeing — site styles
   Palette and type are taken from the business card. Change values here
   and they update everywhere.
   ========================================================================== */

:root{
  /* Brand colours, sampled from the business card artwork */
  --cream:      #FAF3ED;
  --cream-warm: #F4ECE3;
  --green:      #5E6047;
  --green-deep: #4C4E38;
  --gold:       #C29C72;
  --muted:      #6A6A54;
  --hair:       rgba(94,96,71,.22);

  /* Type */
  --display: "Cormorant Garamond", Cormorant, Garamond, "Times New Roman", serif;
  --body:    "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Rhythm */
  --container: 1120px;
  --section-y: clamp(56px, 9vw, 112px);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--cream);
  color:var(--green);
  font-family:var(--body);
  font-weight:400;
  font-size:clamp(.96rem,.4vw + .88rem,1.05rem);
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:var(--green-deep); text-decoration-color:var(--gold); text-underline-offset:.25em; }
a:focus-visible,button:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--green-deep); color:var(--cream); padding:12px 18px;
}
.skip-link:focus{ left:8px; top:8px; }

/* --------------------------------------------------------------- header */

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(250,243,237,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hair);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; min-height:74px;
}

.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand img{ width:44px; height:44px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{
  font-family:var(--display); font-size:1.06rem; font-weight:500;
  letter-spacing:.19em; text-transform:uppercase; color:var(--green-deep);
}
.brand-sub{
  font-size:.56rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold);
}

.nav-toggle{
  display:none; border:1px solid var(--hair); background:none; cursor:pointer;
  padding:9px 14px; font:inherit; font-size:.7rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--green-deep);
}

.nav ul{ display:flex; gap:clamp(16px,2.4vw,34px); list-style:none; margin:0; padding:0; }
.nav a{
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  text-decoration:none; color:var(--green); padding-block:6px;
  border-bottom:1px solid transparent; transition:border-color .3s, color .3s;
}
.nav a:hover{ color:var(--green-deep); border-bottom-color:var(--gold); }
.nav a[aria-current="page"]{ color:var(--green-deep); border-bottom-color:var(--gold); }

@media (max-width:860px){
  .nav-toggle{ display:block; }
  .nav{
    position:absolute; inset:74px 0 auto 0;
    background:var(--cream); border-bottom:1px solid var(--hair);
    display:none;
  }
  .nav[data-open="true"]{ display:block; }
  .nav ul{ flex-direction:column; gap:0; padding:8px clamp(20px,5vw,40px) 20px; }
  .nav a{ display:block; padding:14px 0; border-bottom:1px solid var(--hair); }
  .nav li:last-child a{ border-bottom:none; }
}

/* ----------------------------------------------------------------- type */

h1,h2,h3{ font-family:var(--display); font-weight:400; color:var(--green-deep); margin:0; }

.eyebrow{
  font-family:var(--body); font-size:.72rem; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase; color:var(--gold);
  margin:0 0 14px;
}

.h-display{ font-size:clamp(2.1rem,6vw,3.6rem); line-height:1.08; letter-spacing:.01em; }
.h-page{ font-size:clamp(1.9rem,5vw,3rem); line-height:1.12; }
.h-section{ font-size:clamp(1.5rem,3.4vw,2.15rem); line-height:1.2; }
.h-card{ font-size:clamp(1.25rem,2.4vw,1.5rem); line-height:1.25; }

.lede{ font-size:clamp(1.02rem,1.1vw + .8rem,1.22rem); color:var(--green); max-width:60ch; }
.prose p{ max-width:66ch; }
.prose p + p{ margin-top:1.1em; }

.meta{
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
  margin:0 0 18px;
}

/* --------------------------------------------------------------- divider */

.divider{
  display:flex; align-items:center; gap:16px;
  max-width:300px; margin:clamp(22px,4vw,34px) 0;
  color:var(--green);
}
.divider--center{ margin-inline:auto; }
.divider .rule{ flex:1; height:1px; background:var(--gold); opacity:.55; }
.divider svg{ width:34px; flex:none; opacity:.8; }

/* ----------------------------------------------------------------- hero */

.hero{ position:relative; isolation:isolate; }
.hero-media{ position:absolute; inset:0; z-index:-1; overflow:hidden; }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(250,243,237,.86), rgba(250,243,237,.70));
}
.hero-inner{
  padding-block:clamp(80px,15vw,168px);
  text-align:center; display:flex; flex-direction:column; align-items:center;
}
.hero .lede{ margin-top:20px; }
.hero .btn-row{ margin-top:34px; }

/* -------------------------------------------------------------- sections */

.section{ padding-block:var(--section-y); }
.section--warm{ background:var(--cream-warm); }
.section--tight{ padding-block:clamp(40px,6vw,72px); }

.section-head{ max-width:62ch; }
.section-head--center{ margin-inline:auto; text-align:center; }
.section-head--center .divider{ margin-inline:auto; }
.section-head--center .lede{ margin-inline:auto; }

/* ---------------------------------------------------------------- splits */

.split{
  display:grid; gap:clamp(28px,5vw,64px); align-items:center;
  grid-template-columns:1fr;
}
.split + .split{ margin-top:clamp(52px,8vw,96px); }
@media (min-width:840px){
  .split{ grid-template-columns:1fr 1fr; }
  .split--flip .split-media{ order:2; }
}
.split-media img{ width:100%; }
.split-media figcaption{
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin-top:10px;
}

/* ----------------------------------------------------------------- cards */

.cards{
  display:grid; gap:clamp(22px,3vw,34px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));
}
.card{
  background:var(--cream); border:1px solid var(--hair);
  display:flex; flex-direction:column;
}
.section--warm .card{ background:var(--cream); }
.card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.card-body{ padding:clamp(20px,2.4vw,30px); display:flex; flex-direction:column; flex:1; }
.card .meta{ margin-bottom:10px; }
.card h3{ margin-bottom:12px; }
.card p{ margin:0; }
.card .btn-row{ margin-top:auto; padding-top:22px; }

.card-link{ text-decoration:none; color:inherit; transition:border-color .3s, transform .3s; }
.card-link:hover{ border-color:var(--gold); }
@media (prefers-reduced-motion:no-preference){
  .card-link:hover{ transform:translateY(-3px); }
}

/* ------------------------------------------------------------------ list */

.tick{ list-style:none; margin:22px 0 0; padding:0; }
.tick li{ position:relative; padding-left:26px; margin-bottom:9px; }
.tick li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:9px; height:1px; background:var(--gold);
}

.facts{ list-style:none; margin:0; padding:0; }
.facts li{ padding:14px 0; border-bottom:1px solid var(--hair); }
.facts li:first-child{ border-top:1px solid var(--hair); }
.facts strong{
  display:block; font-weight:400; font-size:.68rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin-bottom:3px;
}

/* ------------------------------------------------------------ session book */

.session-book{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:16px 24px; margin-top:28px; padding-top:24px; border-top:1px solid var(--hair);
}
.session-price{
  font-family:var(--body); font-weight:400; font-size:clamp(1.3rem,1.8vw,1.6rem); color:var(--green-deep);
  margin:0;
}
.session-price-unit{
  font-family:var(--body); font-size:.62rem; font-weight:400; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); margin-left:10px;
}

/* --------------------------------------------------------------- buttons */

.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
.section-head--center .btn-row,.hero .btn-row,.cta .btn-row{ justify-content:center; }

.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; text-decoration:none;
  font-size:.76rem; letter-spacing:.16em; text-transform:uppercase;
  border:1px solid var(--green-deep); color:var(--green-deep);
  background:transparent; transition:background .3s, color .3s, border-color .3s;
}
.btn svg{ width:15px; height:15px; flex:none; }
.btn:hover{ background:var(--green-deep); color:var(--cream); }
.btn--solid{ background:var(--green-deep); color:var(--cream); }
.btn--solid:hover{ background:transparent; color:var(--green-deep); }
.btn--gold{ border-color:var(--gold); color:var(--gold); }
.btn--gold:hover{ background:var(--gold); color:var(--cream); border-color:var(--gold); }

/* -------------------------------------------------------------- cta band */

.cta{ background:var(--green-deep); color:var(--cream); text-align:center; }
.cta h2,.cta .lede{ color:var(--cream); }
.cta .eyebrow{ color:var(--gold); }
.cta .lede{ margin-inline:auto; }
.cta .btn{ border-color:rgba(250,243,237,.6); color:var(--cream); }
.cta .btn:hover{ background:var(--cream); color:var(--green-deep); border-color:var(--cream); }
.cta .divider{ color:var(--cream); }
.cta .divider .rule{ background:var(--gold); }

/* ---------------------------------------------------------------- footer */

.site-footer{
  background:var(--green-deep); color:rgba(250,243,237,.82);
  padding-block:clamp(44px,6vw,68px); font-size:.9rem;
}
.footer-grid{
  display:grid; gap:36px;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
}
.site-footer h2{
  color:var(--cream); font-family:var(--body); font-size:.68rem; font-weight:400;
  letter-spacing:.26em; text-transform:uppercase; margin-bottom:16px;
}
.site-footer a{ color:rgba(250,243,237,.82); text-decoration:none; }
.site-footer a:hover{ color:var(--cream); text-decoration:underline; text-decoration-color:var(--gold); }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:9px; }
.footer-brand img{ width:64px; margin-bottom:16px; }
.footer-brand p{ margin:0; max-width:34ch; }
.footer-bottom{
  margin-top:clamp(32px,5vw,52px); padding-top:22px;
  border-top:1px solid rgba(250,243,237,.18);
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between;
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(250,243,237,.6);
}
