/* Re-flection Wellness – site styles. Brand tokens: brand/BRAND-TOKENS.md */
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/libre-baskerville-latin.woff2) format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/libre-baskerville-italic-latin.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/source-sans-3-latin.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/source-sans-3-italic-latin.woff2) format("woff2")}

:root{
  --rw-plum:#664559; --rw-rose:#9C495D; --rw-soft-pink:#EBDBD8;
  --rw-teal:#64CCC9; --rw-sage:#ADCAB8;
  --rw-white:#FFFFFF; --rw-ink:#231F20;
  --rw-tint:#FBF6F5;            /* unofficial light tint of soft pink, backgrounds only */
  --rw-plum-dark:#4F3545;       /* hover shade derived from plum */
  --rw-font-heading:"Libre Baskerville", Georgia, "Times New Roman", serif;
  --rw-font-body:"Source Sans 3","Source Sans Pro", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --max:72rem; --gap:clamp(1rem,4vw,2rem); --radius:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:var(--rw-font-body);font-size:1.125rem;line-height:1.65;color:var(--rw-plum);background:var(--rw-white)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--rw-font-heading);font-weight:400;line-height:1.25;color:var(--rw-plum);margin:0 0 .6em}
h1{font-size:clamp(2rem,5vw,3rem)}
h2{font-size:clamp(1.5rem,3.5vw,2.1rem)}
h3{font-size:1.25rem}
p,ul,ol,dl{margin:0 0 1em}
a{color:var(--rw-rose);text-underline-offset:.18em}
a:hover{color:var(--rw-plum)}
:focus-visible{outline:3px solid var(--rw-plum);outline-offset:3px;border-radius:4px}
.wrap{width:min(100% - 2*var(--gap),var(--max));margin-inline:auto}
.narrow{max-width:44rem}
.skip{position:absolute;left:-999px;top:0;background:var(--rw-plum);color:#fff;padding:.6rem 1rem;z-index:10}
.skip:focus{left:1rem;top:1rem;color:#fff}
.eyebrow{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--rw-rose);margin-bottom:.5rem}
.lead{font-size:1.25rem}
em.accent,.accent{font-family:var(--rw-font-heading);font-style:italic;color:var(--rw-rose)}

/* Header */
.site-header{background:var(--rw-white);border-bottom:1px solid var(--rw-soft-pink);position:sticky;top:0;z-index:5}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.logo{display:block;padding:9px 0}               /* clear space ≥ 1/5 logo height */
.logo img{height:40px;width:auto}
.nav-toggle{display:none;font:inherit;font-weight:600;color:var(--rw-plum);background:none;border:2px solid var(--rw-plum);border-radius:999px;padding:.35rem 1rem;cursor:pointer}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;align-items:center}
.site-nav a{color:var(--rw-plum);text-decoration:none;font-weight:600;padding:.4rem 0;display:inline-block;border-bottom:2px solid transparent}
.site-nav a:hover,.site-nav a[aria-current="page"]{border-bottom-color:var(--rw-rose)}
.js .nav-toggle{display:inline-block}
.js .site-nav{display:none;width:100%;padding-bottom:1rem}
.js .site-nav.open{display:block}
.js .site-nav ul{flex-direction:column;align-items:flex-start}
@media (min-width:62rem){
  .logo img{height:46px}
  .js .nav-toggle{display:none}
  .js .site-nav{display:block;width:auto;padding:0}
  .js .site-nav ul{flex-direction:row;align-items:center}
}

/* Buttons */
.btn{display:inline-block;font-weight:600;text-decoration:none;border-radius:999px;padding:.75rem 1.5rem;line-height:1.2;border:2px solid var(--rw-rose);background:var(--rw-rose);color:#fff;transition:background .15s,border-color .15s}
.btn:hover{background:var(--rw-plum-dark);border-color:var(--rw-plum-dark);color:#fff}
.btn-outline{background:transparent;color:var(--rw-plum);border-color:var(--rw-plum)}
.btn-outline:hover{background:var(--rw-plum);color:#fff;border-color:var(--rw-plum)}
.btn-light{background:var(--rw-soft-pink);border-color:var(--rw-soft-pink);color:var(--rw-plum)}
.btn-light:hover{background:#fff;border-color:#fff;color:var(--rw-plum)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.btn small{display:block;font-weight:400;font-size:.8rem;opacity:.95}

/* Sections */
section{padding:clamp(2.5rem,7vw,5rem) 0}
.bg-tint{background:var(--rw-tint)}
.bg-pink{background:var(--rw-soft-pink)}
.bg-plum{background:var(--rw-plum);color:var(--rw-soft-pink)}
.bg-plum h1,.bg-plum h2,.bg-plum h3{color:var(--rw-soft-pink)}
.bg-plum a:not(.btn){color:#fff}
.bg-plum .eyebrow{color:var(--rw-soft-pink)}
.page-hero{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2rem,5vw,3rem);background:var(--rw-tint);border-bottom:1px solid var(--rw-soft-pink)}
.page-hero p{max-width:44rem}

/* Home hero */
.hero{display:grid;gap:0;background:var(--rw-plum);color:var(--rw-soft-pink);padding:0}
.hero-text{padding:clamp(2.5rem,7vw,5rem) var(--gap)}
.hero h1,.hero .eyebrow{color:var(--rw-soft-pink)}
.hero p{font-size:1.2rem;max-width:34rem}
.hero picture img{width:100%;height:100%;object-fit:cover;min-height:260px}
@media (min-width:56rem){
  .hero{grid-template-columns:1fr 1fr;min-height:32rem}
  .hero-text{display:flex;flex-direction:column;justify-content:center;padding-left:max(var(--gap),calc((100vw - var(--max))/2))}
}

/* Grids & cards */
.grid{display:grid;gap:1.25rem}
@media (min-width:40rem){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (min-width:62rem){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}
@media (min-width:40rem) and (max-width:61.99rem){.grid-4{grid-template-columns:repeat(2,1fr)}}
.card{background:#fff;border:1px solid var(--rw-soft-pink);border-radius:var(--radius);padding:1.5rem}
.card h3{margin-bottom:.4em}
.card p:last-child{margin-bottom:0}
.card-accent{border-top:4px solid var(--rw-sage)}
.card-accent.teal{border-top-color:var(--rw-teal)}
.card-accent.rose{border-top-color:var(--rw-rose)}
.split{display:grid;gap:clamp(1.5rem,4vw,3rem);align-items:center}
@media (min-width:56rem){.split{grid-template-columns:1fr 1fr}.split.reverse>:first-child{order:2}}
.split img{border-radius:var(--radius)}
.pillars{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1rem 0}
.pillars li{font-family:var(--rw-font-heading);background:var(--rw-soft-pink);color:var(--rw-plum);border-radius:999px;padding:.35rem 1rem}
.bg-plum .pillars li{background:rgba(235,219,216,.15);color:var(--rw-soft-pink);border:1px solid rgba(235,219,216,.5)}

/* Membership cards */
.price-card{display:flex;flex-direction:column;text-align:left}
.price{font-family:var(--rw-font-heading);font-size:2rem;color:var(--rw-plum);margin:.25rem 0 .75rem;line-height:1.1}
.price span{font-family:var(--rw-font-body);font-size:1rem}
.price-card .btn{margin-top:auto;align-self:flex-start}
.featured{border:2px solid var(--rw-rose)}
.badge{display:inline-block;background:var(--rw-sage);color:var(--rw-ink);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.15rem .7rem;margin-bottom:.5rem;align-self:flex-start}
table.prices{width:100%;border-collapse:collapse;margin:1rem 0}
table.prices th,table.prices td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--rw-soft-pink)}
table.prices td:last-child{text-align:right;white-space:nowrap;font-weight:600}

/* Journal */
.post-list{list-style:none;padding:0;margin:0;display:grid;gap:1.25rem}
.post-meta{font-size:.95rem;color:var(--rw-plum);opacity:1;margin-bottom:.5rem}
.prose{max-width:44rem}
.prose h2{margin-top:1.6em}
.prose blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:4px solid var(--rw-sage);background:var(--rw-tint);font-family:var(--rw-font-heading);font-style:italic}
.prose dl dt{font-family:var(--rw-font-heading);font-size:1.15rem;margin-top:1rem}
.prose dl dd{margin:0}

/* Legal */
.legal h2{margin-top:2em;padding-top:.5em;border-top:1px solid var(--rw-soft-pink)}
.legal h3{margin-top:1.4em}
.toc{background:var(--rw-tint);border-radius:var(--radius);padding:1rem 1.25rem}
.toc ul{margin:0;padding-left:1.2rem}
.notice{background:var(--rw-tint);border-left:4px solid var(--rw-teal);padding:1rem 1.25rem;border-radius:0 var(--radius) var(--radius) 0}

/* Contact */
.contact-list{list-style:none;padding:0}
.contact-list li{margin-bottom:1rem}
.contact-list strong{display:block;font-family:var(--rw-font-heading);font-weight:400;font-size:1.15rem}
.socials{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem}

/* Footer */
.site-footer{background:var(--rw-plum);color:var(--rw-soft-pink);padding:3rem 0 2rem;font-size:1rem}
.site-footer a{color:#fff}
.site-footer h2{color:var(--rw-soft-pink);font-size:1.1rem;margin-bottom:.6rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.35rem}
.footer-grid{display:grid;gap:2rem}
@media (min-width:40rem){.footer-grid{grid-template-columns:1fr 1fr}}
@media (min-width:62rem){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.footer-logo{padding:12px 0;display:inline-block}
.footer-logo img{height:56px;width:auto}
.legal-line{border-top:1px solid rgba(235,219,216,.35);margin-top:2rem;padding-top:1.25rem;font-size:.95rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn-outline-light{background:transparent;color:var(--rw-soft-pink);border-color:var(--rw-soft-pink)}
.btn-outline-light:hover{background:var(--rw-soft-pink);color:var(--rw-plum);border-color:var(--rw-soft-pink)}
.site-nav a.nav-book{background:var(--rw-rose);color:#fff;border-radius:999px;padding:.4rem 1rem;border-bottom:0}
.site-nav a.nav-book:hover{background:var(--rw-plum-dark);color:#fff}

/* ---- Mobile refinements (Oct 2026) ---- */
html{scroll-padding-top:5rem}                     /* in-page anchors (e.g. /legal/#privacy) clear the sticky header */
body{overflow-wrap:break-word}                    /* long emails/URLs never force sideways scroll */
gymcatch-embedded{display:block;width:100%;max-width:100%;min-height:12rem}
gymcatch-embedded iframe{max-width:100%}
.nav-toggle{min-height:44px;min-width:44px}
.btn{min-height:44px}
.socials a{display:inline-block;padding:.5rem 0}
@media (max-width:61.99rem){
  .js .site-nav a{padding:.6rem 0}                 /* ~44px tap rows in the open menu */
  .js .site-nav a.nav-book{padding:.6rem 1.25rem;margin-top:.25rem}
  .js .site-nav.open{max-height:calc(100vh - 4.5rem);max-height:calc(100dvh - 4.5rem);overflow-y:auto}
}
@media (max-width:61.99rem),(pointer:coarse){
  .site-footer li{margin-bottom:0}
  .site-footer ul a,.site-footer p a{display:inline-block;padding:.55rem 0}
  .footer-grid{gap:1.5rem}
}
@media (max-width:30rem){
  .btn-row .btn{flex:1 1 auto;text-align:center}  /* CTAs share the row evenly and wrap cleanly on phones */
  .lead{font-size:1.15rem}
  .card{padding:1.25rem}
}
