/* ACE Health & Wellness, membership acquisition experience
   Palette: warm ivory, sage tint, deep eucalyptus accent (brand's own eucalyptus motif), soft ink.
   Type: EB Garamond (editorial serif, echoes the ace wordmark) + Mulish (humanist sans).
   Radius rule: buttons pill, cards 16px, feature imagery ARCH (the ACE signature shape). No italics. */

:root{
  --ivory:#F7F5EF;
  --sage:#E3E8DF;
  --euc:#47604F;
  --euc-deep:#31443A;
  --ink:#252B26;
  --ink-soft:#5A645B;
  --line:rgba(37,43,38,.16);
  --shadow:0 18px 46px rgba(37,43,38,.12);
  --font-display:"EB Garamond", Georgia, serif;
  --font-body:"Mulish", "Helvetica Neue", Arial, sans-serif;
  --wrap:1180px;
  --arch:170px 170px 18px 18px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-body);font-weight:400;color:var(--ink);background:var(--ivory);line-height:1.7;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:inherit}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.12;margin:0 0 .45em;letter-spacing:.005em}
h1{font-size:clamp(2.6rem,5.2vw,4.2rem)}
h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}
h3{font-size:clamp(1.25rem,1.9vw,1.55rem)}
p{margin:0 0 1em;color:var(--ink-soft);max-width:62ch}
.lede{font-size:1.12rem}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-body);font-weight:700;font-size:.98rem;letter-spacing:.02em;
  padding:.95em 2.1em;border-radius:999px;text-decoration:none;cursor:pointer;border:1.5px solid transparent;white-space:nowrap;
  transition:background .2s,color .2s,border-color .2s,transform .15s;
}
.btn:active{transform:scale(.98)}
.btn-euc{background:var(--euc);color:#fff}
.btn-euc:hover{background:var(--euc-deep)}
.btn-line{border-color:var(--line);color:var(--ink);background:transparent}
.btn-line:hover{border-color:var(--euc);color:var(--euc-deep)}

/* Header */
.site-head{
  position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);
  background:color-mix(in srgb, var(--ivory) 92%, transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.head-inner{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.brand{display:inline-flex;align-items:center;text-decoration:none}
.brand img{height:44px;width:auto}
.head-nav{display:flex;align-items:center;gap:24px}
.head-nav a{font-size:.93rem;font-weight:600;text-decoration:none;color:var(--ink-soft);white-space:nowrap}
.head-nav a:hover{color:var(--euc-deep)}
.head-nav a.head-cta,.head-nav a.head-cta:hover{color:#fff}

/* Hero: full-bleed living-photo video, copy overlaid on an ivory veil (light scrim keeps the ACE calm) */
.hero{position:relative;display:flex;align-items:center;min-height:calc(100dvh - 74px);max-height:840px;overflow:hidden;background:var(--ivory)}
.hero-media{position:absolute;inset:0}
.hero-media video,.hero-media img{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  min-width:100%;min-height:100%;width:auto;height:auto;object-fit:cover;object-position:62% 50%;
}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(247,245,239,0) 86%, var(--ivory) 100%),
    linear-gradient(90deg, rgba(247,245,239,.96) 0%, rgba(247,245,239,.82) 34%, rgba(247,245,239,.25) 62%, rgba(247,245,239,0) 80%);
}
.hero-copy{position:relative;z-index:1;width:100%;padding-top:24px;padding-bottom:24px}
.hero-copy h1{max-width:13ch}
.hero-copy .lede{max-width:42ch;margin-bottom:1.8em}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:1.6em}
.hero-note{font-size:.88rem;color:var(--ink-soft)}

/* Sections */
.section{padding:clamp(52px,6.5vw,88px) 0}
.section-sage{background:var(--sage)}
.section-euc{background:var(--euc-deep);color:var(--ivory)}
.section-euc h2{color:#fff}
.section-euc p{color:rgba(247,245,239,.78)}
.section-head{max-width:660px;margin-bottom:clamp(30px,4vw,50px)}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--euc);display:block;margin-bottom:1.1em}

/* Membership intro: image + copy offset */
.intro-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,76px);align-items:center}
.intro-visual{border-radius:var(--arch);overflow:hidden;box-shadow:var(--shadow)}
.intro-visual img{width:100%;height:100%;object-fit:cover;aspect-ratio:5/5.8}

/* Problem: one-off vs ongoing compare */
.compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,36px);max-width:940px}
.compare-col{border-radius:16px;padding:clamp(26px,3.4vw,44px);border:1.5px solid var(--line);background:var(--ivory)}
.compare-col.is-ace{background:#fff;border-color:var(--euc)}
.compare-col h3{margin-bottom:.8em}
.compare-col ol{list-style:none;margin:0;padding:0;counter-reset:steps}
.compare-col li{
  counter-increment:steps;font-size:.97rem;color:var(--ink-soft);padding:10px 0 10px 34px;position:relative;border-top:1px solid var(--line);
}
.compare-col li::before{
  content:counter(steps);position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;
  background:var(--sage);color:var(--ink);font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.compare-col.is-ace li::before{background:var(--euc);color:#fff}
.compare-tag{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:.5em}
.compare-col.is-ace .compare-tag{color:var(--euc)}

/* Signature: care journey stepper */
.journey-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;position:relative;margin-bottom:clamp(26px,3vw,40px)}
.journey-track::before{content:"";position:absolute;top:23px;left:10%;right:10%;height:2px;background:var(--line)}
.journey-node{background:none;border:none;cursor:pointer;font-family:var(--font-body);text-align:center;padding:0 8px;position:relative}
.journey-dot{
  width:46px;height:46px;border-radius:50%;background:var(--ivory);border:2px solid var(--line);margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:var(--ink-soft);
  transition:all .25s;position:relative;z-index:1;
}
.journey-node span{font-size:.86rem;font-weight:700;color:var(--ink-soft);display:block;line-height:1.3}
.journey-node.is-on .journey-dot{background:var(--euc);border-color:var(--euc);color:#fff}
.journey-node.is-on span{color:var(--ink)}
.journey-node:hover .journey-dot{border-color:var(--euc)}
.journey-panel{
  background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:clamp(26px,3.4vw,44px);
  max-width:760px;margin:0 auto;text-align:center;min-height:150px;
}
.journey-panel h3{margin-bottom:.35em}
.journey-panel p{margin:0 auto;max-width:56ch}

/* Membership tiers */
.tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,28px);align-items:stretch}
.tier{
  background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:clamp(24px,2.8vw,38px);
  display:flex;flex-direction:column;position:relative;
}
.tier.is-featured{border-color:var(--euc);border-width:2px;box-shadow:var(--shadow)}
.tier-badge{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--euc);color:#fff;
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.4em 1.2em;border-radius:999px;white-space:nowrap;
}
.tier-name{font-family:var(--font-display);font-size:clamp(1.35rem,2vw,1.7rem);margin:0 0 .1em}
.tier-for{font-size:.9rem;color:var(--ink-soft);margin-bottom:1em;min-height:2.6em}
.tier-price{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.5rem);line-height:1.1;color:var(--ink)}
.tier-price small{font-family:var(--font-body);font-size:.92rem;color:var(--ink-soft);font-weight:600}
.tier ul{list-style:none;margin:14px 0 22px;padding:0;flex:1}
.tier li{padding:9px 0 9px 26px;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink);position:relative}
.tier li::before{content:"\2713";position:absolute;left:0;font-weight:800;color:var(--euc)}
.tier .btn{width:100%}

/* Membership module */
.member-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,4.5vw,72px);align-items:center}
.member-card{
  background:#fff;border:2px solid var(--euc);border-radius:24px 24px 24px 24px;box-shadow:var(--shadow);
  padding:clamp(30px,4vw,52px);position:relative;overflow:hidden;
}
.member-card::before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:var(--euc)}
.member-name{font-family:var(--font-display);font-size:clamp(1.6rem,2.6vw,2.1rem);margin:0 0 .1em}
.member-tag{font-size:.95rem;color:var(--ink-soft);margin-bottom:1.2em}
.member-price{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.1rem);line-height:1.1;color:var(--ink)}
.member-price small{font-family:var(--font-body);font-size:1rem;color:var(--ink-soft);font-weight:600}
.member-note{font-size:.85rem;color:var(--ink-soft);margin:6px 0 1.4em}
.member-list{list-style:none;margin:0 0 1.8em;padding:0}
.member-list li{padding:11px 0 11px 30px;border-top:1px solid var(--line);font-size:.98rem;color:var(--ink);position:relative}
.member-list li::before{content:"\2713";position:absolute;left:2px;font-weight:800;color:var(--euc)}
.member-cta-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.member-fine{font-size:.83rem;color:var(--ink-soft);margin-top:16px}

/* Women's health editorial */
.wh-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(30px,5vw,76px);align-items:center}
.wh-visual{border-radius:var(--arch);overflow:hidden;box-shadow:var(--shadow)}
.wh-visual img{width:100%;height:100%;object-fit:cover;aspect-ratio:5/5.6}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin:1.3em 0 1.8em}
.pill{font-size:.9rem;font-weight:600;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.42em 1.1em}
.section-sage .pill{background:var(--ivory)}

/* Everyday health */
.everyday{background:#fff;border:1.5px solid var(--line);border-radius:24px;padding:clamp(30px,4.5vw,60px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(26px,4vw,60px);align-items:center}
.everyday h2{font-size:clamp(1.7rem,3vw,2.4rem)}
.everyday-price{font-family:var(--font-display);font-size:2rem;color:var(--ink);margin:0 0 .2em}
.everyday-price small{font-family:var(--font-body);font-size:.95rem;color:var(--ink-soft);font-weight:600}

/* Wellness services: pricing-menu rows (name + price on one line, description under) */
.well-list{display:grid;gap:clamp(14px,2vw,22px)}
.well-item{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px clamp(20px,3vw,48px);align-items:baseline;
  background:var(--ivory);border:1px solid var(--line);border-radius:16px;padding:clamp(20px,2.6vw,30px) clamp(20px,3vw,40px);
}
.well-item h3{margin:0;grid-column:1;grid-row:1}
.well-price{grid-column:2;grid-row:1;justify-self:end;font-weight:700;font-size:.92rem;white-space:nowrap;color:var(--euc-deep)}
.well-item p{margin:0;font-size:.95rem;grid-column:1;grid-row:2;max-width:68ch}

/* Why ACE */
.why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,5vw,64px);align-items:center;margin-top:8px}
.why-list{list-style:none;margin:0;padding:0}
.why-list li{padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:16px}
.why-list li:last-child{border-bottom:1px solid var(--line)}
.why-list h3{margin:0;font-size:1.15rem}
.why-list p{margin:0;font-size:.95rem}

/* Providers */
.team-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(26px,4vw,56px);align-items:start}
.provider{display:grid;gap:18px}
.provider-photo{border-radius:var(--arch);overflow:hidden;box-shadow:var(--shadow)}
.provider-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.provider h3{margin-bottom:.1em}
.provider .cred{font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--euc);margin-bottom:.7em}
.provider p{font-size:.96rem;margin:0}

/* FAQ */
.faq-list{max-width:760px;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:20px 0;font-weight:700;font-size:1.02rem;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-weight:500;font-size:1.4rem;color:var(--ink-soft);transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{margin:0 0 20px;font-size:.96rem}

/* Final CTA */
.final-cta{text-align:center}
.final-cta h2{max-width:18ch;margin-left:auto;margin-right:auto;font-size:clamp(2.2rem,4.4vw,3.6rem)}
.final-cta p{margin-left:auto;margin-right:auto;margin-bottom:1.3em}
.final-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.final-cta .btn-euc{background:var(--sage);color:var(--ink)}
.final-cta .btn-euc:hover{background:#fff;color:var(--ink)}
.final-cta .btn-line{border-color:rgba(247,245,239,.5);color:#fff}
.final-cta .btn-line:hover{border-color:#fff}

/* Contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.contact-cell h3{font-family:var(--font-body);font-weight:700;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.5em}
.contact-cell p,.contact-cell a{font-size:1.02rem;color:var(--ink);text-decoration:none}
.contact-cell a:hover{color:var(--euc-deep)}
.contact-em{font-size:.85rem;color:var(--ink-soft);margin-top:26px;border-top:1px solid var(--line);padding-top:18px}

/* Footer */
.site-foot{border-top:1px solid var(--line);padding:42px 0 110px}
.foot-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,60px);margin-bottom:28px}
.foot-grid img{height:64px;width:auto;margin-bottom:12px}
.foot-grid p,.foot-grid a{font-size:.92rem;color:var(--ink-soft)}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-grid ul a{text-decoration:none}
.foot-grid ul a:hover{color:var(--ink)}
.foot-legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:20px}
.foot-legal a{color:inherit}

/* Sticky mobile bar */
.join-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;
  background:color-mix(in srgb, #fff 94%, transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:10px;
}
.join-bar .btn{flex:1;padding:.9em 1em}

/* Motion polish: hero load-in cascade, parallax drift on arch imagery, staggered detail reveals.
   All gated behind prefers-reduced-motion. */
@media (prefers-reduced-motion: no-preference){
  .hero-copy > *{opacity:0;transform:translateY(16px);animation:ace-rise .9s cubic-bezier(.16,1,.3,1) forwards}
  .hero-copy > *:nth-child(2){animation-delay:.1s}
  .hero-copy > *:nth-child(3){animation-delay:.2s}
  .hero-copy > *:nth-child(4){animation-delay:.3s}
  @keyframes ace-rise{to{opacity:1;transform:none}}

  @supports (animation-timeline: view()){
    .intro-visual,.wh-visual{overflow:hidden}
    .intro-visual img,.wh-visual img{scale:1.12;animation:ace-drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    @keyframes ace-drift{from{translate:0 3.5%}to{translate:0 -3.5%}}
  }

  .pill,.tier li{opacity:0;transform:translateY(10px);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}
  .is-in .pill,.is-in .tier li{opacity:1;transform:none}
  .pill:nth-child(1),.tier li:nth-child(1){transition-delay:.05s}
  .pill:nth-child(2),.tier li:nth-child(2){transition-delay:.12s}
  .pill:nth-child(3),.tier li:nth-child(3){transition-delay:.19s}
  .pill:nth-child(4),.tier li:nth-child(4){transition-delay:.26s}
  .pill:nth-child(5),.tier li:nth-child(5){transition-delay:.33s}
  .pill:nth-child(6),.tier li:nth-child(6){transition-delay:.4s}
}

/* Reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Responsive */
@media (max-width:960px){
  .intro-grid,.member-grid,.wh-grid,.everyday,.why-grid,.team-grid,.tier-grid{grid-template-columns:1fr}
  .tier{margin-top:8px}
  .hero{min-height:82dvh}
  .hero-media::after{background:linear-gradient(180deg, rgba(247,245,239,.94) 0%, rgba(247,245,239,.78) 55%, rgba(247,245,239,.35) 100%)}
  .compare{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:22px}
  .foot-grid{grid-template-columns:1fr}
  .well-item{grid-template-columns:1fr}
  .well-price{grid-column:1;grid-row:3;justify-self:start;margin-top:4px}
  .journey-track{grid-template-columns:1fr;gap:6px}
  .journey-track::before{display:none}
  .journey-node{display:flex;align-items:center;gap:12px;text-align:left;padding:6px 0}
  .journey-dot{margin:0;flex-shrink:0}
  .head-nav a:not(.head-cta){display:none}
  .join-bar{display:flex}
  .site-foot{padding-bottom:130px}
  .why-list li{grid-template-columns:1fr;gap:4px}
}


/* Embrun move announcement */
.announce {
  display: flex; align-items: center; justify-content: center; gap: 14px;
  background: var(--euc, #47604F); color: #fff;
  padding: 10px 44px 10px 18px; text-align: center; position: relative;
  font-size: 0.92rem;
}
.announce p { margin: 0; color: #fff; }
.announce button {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: #fff; font-size: 1.3rem; cursor: pointer;
  width: 32px; height: 32px; border-radius: 50%;
}
.announce button:hover { background: rgba(255, 255, 255, 0.16); }

/* Wellness HST note */
.well-note { margin-top: 14px; font-size: 0.85rem; color: rgba(37, 43, 38, 0.65); }

/* Contact message form */
.contact-form {
  margin-top: 42px; background: #fff; border: 1px solid rgba(37, 43, 38, 0.12);
  border-radius: 16px; padding: 30px clamp(20px, 3vw, 36px) 34px;
}
.contact-form h3 { margin-bottom: 4px; }
.cf-sub { color: rgba(37, 43, 38, 0.7); margin-bottom: 22px; font-size: 0.95rem; }
.cf-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
@media (max-width: 720px) { .cf-grid { grid-template-columns: 1fr; } }
.contact-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 0.88rem; }
.contact-form input, .contact-form select, .contact-form textarea {
  font-family: inherit; font-size: 1rem; padding: 11px 12px;
  border: 1px solid rgba(37, 43, 38, 0.22); border-radius: 8px; background: #FDFCF9;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
  outline: 2px solid var(--euc, #47604F); border-color: transparent;
}
.cf-msg { margin-bottom: 20px; }
.cf-note { margin-top: 12px; font-size: 0.82rem; color: rgba(37, 43, 38, 0.55); }


/* Her-structure additions (Aug 26 v2) */
.hero-kicker {
  font-size: 0.86rem; letter-spacing: 0.22em; text-transform: uppercase;
  font-weight: 700; color: var(--euc, #47604F); margin: 14px 0 6px;
}
.ic { width: 18px; height: 18px; vertical-align: -3px; margin-right: 6px; color: var(--euc, #47604F); }
.center { text-align: center; margin-top: 30px; }

.pillar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
@media (max-width: 860px) { .pillar-grid { grid-template-columns: 1fr; } }
.pillar { background: var(--sage, #E3E8DF); border-radius: 16px; padding: 28px 26px; }
.pillar h3 { font-size: 1.05rem; letter-spacing: 0.04em; margin-bottom: 14px; color: var(--euc-deep, #31443A); }
.pillar ul { list-style: none; margin: 0; padding: 0; }
.pillar li { padding: 6px 0; color: rgba(37, 43, 38, 0.8); font-size: 0.95rem; display: flex; gap: 9px; align-items: baseline; }
.pillar li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--euc, #47604F); flex: none; transform: translateY(-2px); }

.price-row {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0;
  border: 1px solid rgba(37, 43, 38, 0.14); border-radius: 14px;
  background: #fff; margin: 36px auto 0; max-width: 620px;
}
.price-cell {
  display: flex; align-items: center; gap: 14px; padding: 22px 34px; flex: 1 1 240px; justify-content: center;
}
.price-cell + .price-cell { border-left: 1px solid rgba(37, 43, 38, 0.12); }
@media (max-width: 560px) { .price-cell + .price-cell { border-left: none; border-top: 1px solid rgba(37, 43, 38, 0.12); } }
.price-cell .ic { width: 26px; height: 26px; }
.price-label { display: block; font-size: 0.82rem; color: rgba(37, 43, 38, 0.65); }
.price-num { display: block; font-family: var(--serif, "EB Garamond", serif); font-size: 1.7rem; color: var(--ink, #252B26); }
.price-num small { font-size: 0.95rem; }

.everyday-card {
  background: #EBF0F2; border-radius: 20px; padding: clamp(30px, 5vw, 56px);
  text-align: center; max-width: 880px; margin: 0 auto;
}
.everyday-card .lede { max-width: 34em; margin-left: auto; margin-right: auto; }
.everyday-card .everyday-price { margin: 18px 0 8px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 18px 0 28px; }
.echip {
  background: #fff; border: 1px solid rgba(37, 43, 38, 0.14); border-radius: 999px;
  padding: 8px 16px; font-size: 0.88rem; font-weight: 600; color: rgba(37, 43, 38, 0.8);
}

.well-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-bottom: 10px; }
@media (max-width: 820px) { .well-cards { grid-template-columns: 1fr; } }
.well-card { background: #fff; border-radius: 16px; padding: 28px 26px; text-align: center; }
.well-card h3 { margin-bottom: 10px; }
.well-card p { color: rgba(37, 43, 38, 0.75); font-size: 0.95rem; margin-bottom: 18px; }
.btn-sm { padding: 10px 20px; font-size: 0.88rem; }

.cta-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(28px, 5vw, 70px); align-items: center; }
@media (max-width: 820px) { .cta-grid { grid-template-columns: 1fr; } }
.qr-block { text-align: center; }
.qr-block p { margin-bottom: 14px; color: rgba(247, 245, 239, 0.92); }
.qr-block img { border-radius: 12px; margin: 0 auto; background: #F7F5EF; padding: 8px; }
.btn-ghosty { border: 2px solid rgba(247, 245, 239, 0.6); color: #F7F5EF; border-radius: 999px; padding: 14px 28px; display: inline-block; text-decoration: none; font-weight: 600; }
.btn-ghosty:hover { border-color: #F7F5EF; }


/* Aug 26 polish round */
.pillar h3 { color: var(--ink); transition: color 0.9s ease; }
.pillar.is-in h3 { color: var(--euc-deep, #31443A); }
.pillar:hover h3 { color: var(--euc, #47604F); }

/* Real buttons on the eucalyptus band */
.btn-ivory { background: #F7F5EF; color: var(--ink); }
.btn-ivory:hover { background: var(--sage, #E3E8DF); color: var(--ink); transform: translateY(-2px); }
.btn-ghosty { transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.btn-ghosty:hover { background: #F7F5EF; color: var(--ink); border-color: #F7F5EF; }
.btn-line { transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.btn-line:hover { background: var(--euc, #47604F); color: #F7F5EF; border-color: var(--euc, #47604F); }

/* HST note: visible, anchored to the price list */
.well-note { margin-top: 16px; font-size: 0.9rem; font-weight: 600; color: var(--ink); }
.well-note a { color: var(--euc-deep, #31443A); }

/* Membership fine print: compact three lines */
.member-fine { margin-top: 10px; line-height: 1.55; font-size: 0.85rem; }


/* Aug 26 polish round 2 */
.brk-sm { display: inline; }
@media (min-width: 1000px) {
  .brk-sm { display: none; }
  #wellness h2 { white-space: nowrap; }
}
#wellness .section-head { max-width: none; }
#wellness .section-head .lede { max-width: 48ch; }

/* Why ACE accordion */
.why-acc details {
  border-top: 1px solid var(--line);
}
.why-acc details:last-child { border-bottom: 1px solid var(--line); }
.why-acc summary {
  cursor: pointer; list-style: none; padding: 18px 34px 18px 2px;
  font-weight: 700; font-size: 1.08rem; color: var(--ink); position: relative;
  transition: color 0.15s ease;
}
.why-acc summary::-webkit-details-marker { display: none; }
.why-acc summary::after {
  content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  font-size: 1.3rem; font-weight: 400; color: var(--euc, #47604F);
}
.why-acc details[open] summary::after { content: "\2212"; }
.why-acc summary:hover { color: var(--euc-deep, #31443A); }
.why-acc details p { margin: 0; padding: 0 2px 18px; color: var(--ink-soft); font-size: 0.96rem; max-width: 52ch; }

/* Contact: breathing room between form and the contact cells */
.contact-form + .contact-grid, form + .contact-grid { margin-top: 46px; }

/* Footer: white backing to break from the beige page */
.site-foot { background: #fff; }

/* 911 line: one smooth line */
.contact-em { text-align: center; max-width: none; }

/* Journey dots: re-assert flex centering (generic .journey-node span rule was overriding it) */
.journey-node .journey-dot { display: flex; align-items: center; justify-content: center; line-height: 1; }

/* Aug 29 revision round (Hannah + Cheryl feedback) */
#why .section-head h2 { font-size: clamp(2.3rem, 4.2vw, 3.4rem); }
.everyday-fine { font-size: 0.85rem; color: rgba(37, 43, 38, 0.65); margin: 4px 0 18px; }
.tier-note { font-size: 0.85rem; color: rgba(37, 43, 38, 0.68); margin: -6px 0 10px; font-weight: 600; }
.foot-social { display: flex; gap: 14px; margin-top: 6px; }
.foot-social a { color: var(--ink-soft, #5a6158); display: inline-flex; }
.foot-social a:hover { color: var(--ink, #252B26); }
.foot-social svg { width: 22px; height: 22px; }

/* Prices and services page */
.pp-head { padding-bottom: clamp(10px, 2vw, 24px); }
.pp-title { font-family: var(--font-display); font-size: clamp(2.6rem, 5vw, 4rem); line-height: 1.05; margin: 0 0 .35em; }
.pp-hst { font-size: 0.92rem; color: rgba(37, 43, 38, 0.68); font-weight: 600; margin-top: 14px; }
.pp-block { padding-top: clamp(40px, 6vw, 70px); padding-bottom: clamp(40px, 6vw, 70px); }
.pp-list { display: grid; gap: 14px; }
.pp-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px 28px; align-items: start; background: #fff; border: 1px solid var(--line, #E2E0D8); border-radius: 16px; padding: clamp(18px, 3vw, 28px) clamp(18px, 3.4vw, 34px); }
.section-sage .pp-row { border-color: rgba(37, 43, 38, 0.08); }
.pp-row h3 { font-family: var(--font-display); font-size: 1.35rem; margin: 0 0 .3em; }
.pp-row p { margin: 0; color: var(--ink-soft, #5a6158); font-size: 0.97rem; line-height: 1.6; }
.pp-price { font-family: var(--font-display); font-size: 1.6rem; color: var(--euc, #47604F); white-space: nowrap; text-align: right; }
.pp-price small { font-family: var(--font-body); font-size: 0.82rem; color: var(--ink-soft, #5a6158); font-weight: 600; }
@media (max-width: 640px) {
  .pp-row { grid-template-columns: 1fr; }
  .pp-price { text-align: left; }
}

/* Prices page cards */
.pcard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.pcard-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pcard-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pcard { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(37, 43, 38, 0.09); border-radius: 22px; padding: clamp(20px, 2.6vw, 30px); transition: transform .25s ease, box-shadow .25s ease; }
.pcard:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(37, 43, 38, 0.10); }
.pcard.is-hero { background: var(--euc, #47604F); border-color: var(--euc, #47604F); }
.pcard.is-hero h3, .pcard.is-hero p, .pcard.is-hero .pcard-price, .pcard.is-hero .pcard-price small, .pcard.is-hero .pcard-time { color: #F7F5EF; }
.pcard.is-hero .pcard-tag { color: #D8C79A; }
.pcard.is-hero .btn-euc { background: #F7F5EF; color: var(--ink, #252B26); }
.pcard.is-hero .btn-euc:hover { background: var(--sage, #E3E8DF); }
.pcard-tag { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; color: var(--euc, #47604F); margin: 0 0 10px; }
.pcard h3 { font-family: var(--font-display); font-size: 1.45rem; margin: 0 0 .4em; }
.pcard p { color: var(--ink-soft, #5a6158); font-size: 0.95rem; line-height: 1.6; margin: 0; }
.pcard-time { display: inline-block; margin-top: 12px; font-size: 0.78rem; font-weight: 700; color: var(--euc, #47604F); background: var(--sage, #E3E8DF); border-radius: 999px; padding: 4px 12px; align-self: flex-start; }
.pcard-foot { margin-top: auto; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pcard-price { font-family: var(--font-display); font-size: 1.7rem; color: var(--euc, #47604F); white-space: nowrap; }
.pcard-price small { font-family: var(--font-body); font-size: 0.8rem; color: var(--ink-soft, #5a6158); font-weight: 600; }
.pcard-num { position: absolute; top: -14px; left: 22px; width: 30px; height: 30px; border-radius: 50%; background: var(--euc, #47604F); color: #F7F5EF; font-weight: 800; font-size: 0.85rem; display: flex; align-items: center; justify-content: center; }
.pcard-mini h3 { font-size: 1.25rem; }
.pcard-link { font-size: 0.85rem; font-weight: 800; color: var(--euc, #47604F); text-decoration: none; border-bottom: 2px solid var(--sage, #E3E8DF); padding-bottom: 1px; }
.pcard-link:hover { border-color: var(--euc, #47604F); }
.pcard-wide { flex-direction: row; align-items: center; gap: clamp(20px, 4vw, 48px); max-width: 900px; }
.pp-ohip { max-width: 900px; text-align: left; }
.pcard-foot-col { flex-direction: column; align-items: center; margin-top: 0; padding-top: 0; flex-shrink: 0; }
.pp-cta { text-align: center; max-width: 640px; margin: 0 auto; }
.pp-cta .final-ctas { justify-content: center; }
@media (max-width: 960px) { .pcard-grid, .pcard-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .pcard-grid, .pcard-grid-2, .pcard-grid-4 { grid-template-columns: 1fr; } .pcard-wide { flex-direction: column; align-items: flex-start; } .pcard-foot-col { flex-direction: row; align-items: center; } }
.pcard.is-hero .pcard-time { background: rgba(247, 245, 239, 0.18); color: #F7F5EF; }

/* ---- Legal pages (privacy, terms) ---- */
.legal-body { max-width: 800px; }
.legal-body h2 { font-family: var(--font-display); font-size: clamp(1.5rem, 2.6vw, 1.95rem); line-height: 1.2; margin: clamp(34px, 4.5vw, 52px) 0 .5em; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body p { margin: 0 0 1.05em; line-height: 1.72; }
.legal-body ul { margin: 0 0 1.05em; padding-left: 0; list-style: none; display: grid; gap: 14px; }
.legal-body ul li { position: relative; padding-left: 22px; line-height: 1.7; }
.legal-body ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--euc, #47604F); }
.legal-body strong { font-weight: 800; }
.legal-callout { background: #fff; border: 1px solid var(--line, #E2E0D8); border-left: 4px solid var(--euc, #47604F); border-radius: 14px; padding: clamp(18px, 3vw, 26px) clamp(20px, 3.4vw, 30px); margin: 0 0 1.05em; }
.legal-callout p:last-child { margin-bottom: 0; }
.legal-foot-note { font-size: .88rem; color: var(--ink-soft); border-top: 1px solid var(--line, #E2E0D8); margin-top: clamp(36px, 5vw, 56px); padding-top: 22px; }
