/* START: practical information first, generous type, quiet surfaces. */
:root { --cream:#f7f7f3; --purple:#354f67; --purple-dark:#233d53; --ink:#253b4d; --muted:#586571; --pink:#b74f35; --yellow:#f2c660; --line:#dce2e5; --green:#557462; }
body { font-size:1.125rem; line-height:1.6; }
main { overflow-x:clip; }
h1,h2,h3 { letter-spacing:-.035em; font-weight:800; }
.container { max-width:1240px; width:calc(100% - 80px); }
.prototype-note { background:#eef1f2; color:#536271; font-size:.875rem; padding:7px max(40px,calc((100vw - 1240px)/2)); letter-spacing:0; }
.prototype-note span:first-child { color:#354f67; }
.header,.header.has-scrolled { background:#fffffff5; }
.reading-progress { background:linear-gradient(90deg,#b74f35,#8ba5b8,#354f67); }
.header-inner { height:90px; gap:24px; }
.brand b { font-size:2.375rem; letter-spacing:-.04em; color:var(--ink); }
.brand small { font-size:.875rem; color:var(--muted); }
.desktop-nav { font-size:1rem; gap:26px; }
.desktop-nav .nav-marker { background:#eaf0f3; }
.desktop-nav a:after { background:var(--pink); }
.button { border-radius:14px; font-size:1rem; min-height:56px; gap:18px; padding:15px 23px; }
.button-small { font-size:.9375rem; min-height:48px; padding:13px 19px; gap:12px; }
.button.motion-button::before { background:#213d55; }
.button:hover { box-shadow:0 8px 22px #233d531a; }
.button-arrow { background:#ffffff20; color:white; }
.text-link { font-size:1rem; }
.eyebrow { font-size:.875rem; letter-spacing:.1em; font-weight:800; color:#5b7082; }
.hero { background:var(--cream); padding:42px 0 48px; border-bottom:1px solid var(--line); }
.hero-grid { grid-template-columns:1fr 1.12fr; align-items:center; gap:64px; }
.hero-copy { padding:0; }
.hero-copy .eyebrow { margin-bottom:22px; }
.hero h1 { font-size:clamp(2.5rem,4.5vw,4rem); line-height:1.06; }
.hero .pink-text { color:var(--purple); }
.opening-hours { margin:30px 0 26px; padding-left:18px; border-left:3px solid #c7795e; }
.opening-hours > span { font-size:1rem; display:block; color:var(--muted); }
.opening-hours strong { font-size:1.75rem; line-height:1.4; letter-spacing:-.02em; }
.opening-hours p { font-size:1rem; color:var(--muted); margin:3px 0 0; }
.hero-actions { gap:12px 24px; }
.hero-actions .button { font-size:1rem; padding:15px 20px; gap:14px; }
.price-card { padding:27px 30px 22px; background:#fff; border:1px solid #dce2e5; border-radius:22px; box-shadow:0 10px 30px #31435105; scroll-margin-top:112px; }
.price-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.price-heading h2 { font-size:1.75rem; letter-spacing:-.025em; }
.price-heading > span { font-size:1.25rem; color:#607184; font-weight:700; }
.price-list { margin:17px 0 0; }
.price-row { display:grid; grid-template-columns:1.5fr 1fr; align-items:center; gap:18px; padding:13px 0; border-top:1px solid #e5e9eb; }
.price-row dt { font-size:1rem; line-height:1.4; }
.price-row dt strong { font-weight:800; display:block; }
.price-row dt > span { display:block; font-size:.875rem; color:var(--muted); margin-top:3px; }
.price-row dd { margin:0; text-align:right; line-height:1.25; }
.price-row dd b { display:block; font-size:1.5rem; white-space:nowrap; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.price-row dd > span { display:block; font-size:.875rem; color:var(--muted); margin-top:4px; }
.price-main { padding-top:17px; padding-bottom:17px; }
.price-main dd b { color:var(--purple); font-size:2rem; }
.price-note { margin-top:14px; font-size:.875rem; color:var(--muted); line-height:1.5; }
.section { padding:64px 0; }
.section-heading h2 { font-size:clamp(1.875rem,3vw,2.625rem); margin-top:14px; }
.section-heading p { font-size:1.125rem; color:var(--muted); line-height:1.6; margin-top:18px; }
.programs-intro { display:grid; grid-template-columns:1.25fr 1fr; gap:50px; align-items:end; }
.programs-intro > p { color:var(--muted); margin-bottom:3px; font-size:1.125rem; line-height:1.65; }
.group-grid { margin-top:30px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.group-card { background:#fff; border:1px solid #dce2e5; border-radius:18px; padding:22px; min-height:330px; }
.group-card::after { background:radial-gradient(circle at var(--light-x,50%) var(--light-y,30%),#e8eef37a,transparent 64%); }
.program-top { display:flex; justify-content:space-between; align-items:center; width:100%; margin-bottom:19px; }
.program-number { font-size:.9375rem; color:#6c7a85; font-variant-numeric:tabular-nums; font-weight:700; }
.group-card .group-icon { width:42px; height:42px; margin:0; background:transparent; border-radius:0; color:var(--purple); }
.group-icon svg { width:38px; height:38px; }
.group-card h3 { font-size:1.5rem; line-height:1.15; margin:0 0 12px; min-height:2.3em; }
.group-card p { font-size:1rem; color:var(--muted); margin-bottom:20px; line-height:1.6; }
.program-price { margin-top:auto; font-size:.875rem; color:var(--muted); }
.program-price b { font-size:1.1875rem; color:var(--ink); }
.group-link { width:100%; justify-content:space-between; display:flex; margin-top:17px; border-top:1px solid var(--line); padding-top:12px; font-size:1rem; color:var(--purple); }
.group-link > span { font-size:1.25rem; }
.section-note { font-size:.875rem; line-height:1.6; color:var(--muted); }
.price-example-note { margin:19px 0 0; text-align:left; }
.wellness-section { background:#f0f4f4; border-top:1px solid #e0e7e7; border-bottom:1px solid #e0e7e7; }
.wellness-inner { display:grid; grid-template-columns:.9fr 1.3fr; gap:22px 55px; }
.wellness-inner .section-heading p { max-width:420px; }
.wellness-options { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.wellness-card { background:#fff; border:1px solid #d8e2e3; padding:25px; border-radius:18px; display:flex; flex-direction:column; }
.wellness-number { font-size:.875rem; color:#5f7f84; margin-bottom:24px; }
.wellness-card h3 { font-size:1.5rem; margin-bottom:13px; }
.wellness-card > p { font-size:1rem; line-height:1.6; color:var(--muted); }
.wellness-bottom { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:26px; margin-top:auto; }
.wellness-bottom b { font-size:1.5rem; line-height:1.2; }
.wellness-bottom small { display:block; font-size:.875rem; color:var(--muted); margin-top:3px; }
.circle-button { background:#eaf0f3; color:var(--purple); }
.circle-button:hover { background:#dce7ed; }
.wellness-note { grid-column:2; font-size:.875rem; line-height:1.6; color:var(--muted); }
.about-section { padding:78px 0; }
.about-grid { grid-template-columns:1fr 1fr; gap:72px; }
.about-copy h2 { font-size:clamp(1.875rem,3vw,2.625rem); margin:16px 0 22px; }
.about-copy > p { font-size:1.125rem; line-height:1.65; color:var(--muted); }
.photo-button { border-radius:65px 18px 18px 18px; transform:rotate(-2deg); }
.photo-button > img { height:445px; }
.about-spark { color:#bb694a; font-size:65px; }
.about-label { font-size:1.25rem; background:#fff5da; color:var(--ink); border-radius:12px; bottom:50px; padding:16px 22px; }
.image-note { font-size:.8125rem; color:var(--muted); }
.approach-list { margin-top:28px; gap:20px; }
.approach-list b { font-size:1.125rem; }
.approach-list p { font-size:1rem; color:var(--muted); line-height:1.6; }
.approach-list > li > span { background:#edf2f3; color:var(--purple); font-size:.875rem; }
.discovery-band { background:#eef2f3; padding:24px 0; }
.discovery-items { margin:0; font-size:1.75rem; color:var(--purple); }
.discovery-items i { color:#c6825d; font-size:1.75rem; }
.day-tabs { margin-top:32px; }
.day-tab { font-size:1rem; }
.day-tabs::after { background:#99acba; }
.day-tab[aria-selected=true] > span { box-shadow:0 0 0 6px #eaf0f3; }
.day-panel { background:#f5f5ef; border-radius:20px; }
.day-image-wrap.hero-scene { background:#e6edf0; }
.day-copy h3 { font-size:1.875rem; }
.day-copy > p { font-size:1.125rem; }
.day-copy .tag-list { padding-right:0; padding-bottom:30px; }
.day-copy .tag { background:#e7ece9; color:#40584c; font-size:.875rem; }
.day-counter { font-size:.875rem; }
.example-label { font-size:.875rem; }
.faq-section { padding:60px 0; }
.faq-intro h2 { font-size:2.625rem; }
.faq-intro p { font-size:1.125rem; }
.faq-question { font-size:1.125rem; line-height:1.5; padding:20px 0; }
.faq-answer { font-size:1rem; line-height:1.7; }
.faq-question > span { background:#eef2f3; color:var(--purple); }
.faq-scribble { stroke:#bd8060; }
.contact-section { padding:60px 0; background:#f1f4f5; border-top:1px solid var(--line); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; }
.contact-section .button { margin-top:25px; }
.contact-panel { background:#fff; border:1px solid var(--line); border-radius:20px; padding:28px; }
.contact-facts { display:flex; flex-direction:column; gap:10px; font-size:1rem; }
.contact-facts > b { font-size:1.1875rem; }
.contact-facts > a { text-decoration:underline; text-underline-offset:4px; }
.messenger-list { margin-top:24px; display:grid; gap:12px; }
.messenger-link { display:flex; align-items:center; justify-content:space-between; gap:20px; border:1px solid var(--line); border-radius:12px; padding:15px 17px; font-size:1rem; }
a.messenger-link:hover { background:#eef4f6; border-color:#8ba5b8; }
.messenger-link > span { font-size:.875rem; color:var(--muted); text-align:right; }
.messenger-pending { background:#f8fafb; }
.contact-note { font-size:.875rem; color:var(--muted); margin-top:20px; line-height:1.6; }
.footer { background:white; padding:35px 0 24px; }
.footer-top { padding-bottom:24px; }
.footer-top nav { font-size:1rem; gap:25px; }
.footer-bottom { border-color:var(--line); font-size:.875rem; }
.footer-bottom p { font-size:.875rem; max-width:none; }
.back-top { font-size:1rem; }
dialog { padding:40px; border-radius:20px; }
.dialog-close { background:#edf2f4; }
.form-heading h2,.group-dialog h2 { font-size:2.25rem; }
.form-heading p,.group-dialog p { font-size:1.0625rem; }
.form-heading .eyebrow,.group-dialog .eyebrow { font-size:.875rem; }
.context-note { font-size:.9375rem; background:#f2f4ed; color:#465646; }
#enroll-form label { font-size:1rem; }
#enroll-form input,#enroll-form select { font-size:1rem; }
.checkbox-label,.field-error,.form-result { font-size:.9375rem; }
.group-dialog .section-note { font-size:.9375rem; }
.tag { font-size:.9375rem; background:#eef2f3; color:var(--purple); }
.dialog-program-price { margin:20px 0 10px; }
.dialog-program-price b { font-size:1.75rem; color:var(--ink); }
.gallery-controls { font-size:.875rem; }
.gallery-dialog { background:#f7f7f3; }
@media(max-width:1100px) {
  .hero-grid { gap:35px; grid-template-columns:1fr 1.12fr; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:12px; }
  .desktop-nav { gap:18px; font-size:.9375rem; }
  .header-cta { font-size:.875rem; }
  .group-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .group-card { min-height:280px; }
  .group-card h3 { min-height:0; }
  .wellness-inner { grid-template-columns:1fr; gap:28px; }
  .wellness-inner .section-heading p { max-width:620px; }
  .wellness-note { grid-column:1; }
  .about-grid,.contact-grid { gap:40px; }
}
@media(max-width:800px) {
  .container { width:calc(100% - 40px); }
  .prototype-note { padding:7px 20px; font-size:.8125rem; }
  .header-inner { height:78px; }
  .hero { padding:28px 0 35px; }
  .hero-grid { grid-template-columns:1fr; display:grid; gap:28px; }
  .hero h1 { font-size:3rem; line-height:1.1; }
  .hero-copy .eyebrow { font-size:.875rem; letter-spacing:.08em; margin-bottom:16px; }
  .opening-hours { margin:22px 0; }
  .hero-actions { flex-direction:row; align-items:center; gap:12px 25px; }
  .hero-actions .button { font-size:1rem; }
  .programs-intro { grid-template-columns:1fr; gap:20px; }
  .section { padding:44px 0; }
  .programs-intro .section-heading h2 br { display:none; }
  .about-grid { display:flex; flex-direction:column; gap:35px; }
  .about-visual { width:100%; }
  .about-copy { width:100%; }
  .photo-button > img { height:380px; }
  .discovery-items { display:grid; grid-template-columns:1fr 1fr; gap:16px 25px; font-size:1.375rem; }
  .discovery-items > span { justify-content:space-between; }
  .day-panel { grid-template-columns:1fr; }
  .day-image-wrap { height:300px; }
  .day-image-wrap img { min-height:300px; max-height:300px; }
  .day-copy { padding:28px; min-height:280px; }
  .day-tabs { margin:30px 0 24px; }
  .day-tab { font-size:.875rem; padding:0 3px 8px; }
  .day-tab > span { width:40px; height:40px; font-size:.875rem; }
  .day-tabs::before { top:20px; }
  .day-tabs::after { top:19px; }
  .faq-grid,.contact-grid { display:grid; grid-template-columns:1fr; gap:26px; }
  .faq-list { margin-top:0; }
  .faq-intro h2 br,.contact-section h2 br { display:none; }
  .faq-intro h2 { font-size:2rem; }
  .faq-scribble { display:none; }
  .contact-section { padding:44px 0; }
  .footer-top { gap:25px; flex-direction:column; align-items:flex-start; }
  .footer-top nav { display:flex; flex-wrap:wrap; margin:0; gap:14px 25px; }
  .footer-top .back-top { margin:0; }
  .footer-bottom p { flex-basis:100%; font-size:.875rem; }
  .menu-toggle { background:#edf2f3; }
  .mobile-nav { background:#fff; font-size:1.125rem; }
}
@media(max-width:480px) {
  .brand b { font-size:2rem; }
  .hero h1 { font-size:2.625rem; }
  .price-card { padding:22px 20px 20px; border-radius:17px; }
  .price-heading h2 { font-size:1.5rem; }
  .price-row { grid-template-columns:1fr auto; gap:10px; padding:15px 0; }
  .price-row dt { font-size:1rem; }
  .price-row dt > span { font-size:.875rem; }
  .price-row dd b { font-size:1.3125rem; }
  .price-row dd > span { font-size:.875rem; }
  .price-main dd b { font-size:1.625rem; }
  .group-grid { grid-template-columns:1fr; gap:14px; }
  .group-card { padding:24px; min-height:0; }
  .program-top { margin-bottom:12px; }
  .group-card h3 { font-size:1.5rem; }
  .group-card p { font-size:1.0625rem; }
  .program-price { font-size:1rem; }
  .wellness-options { grid-template-columns:1fr; }
  .wellness-card { padding:24px; }
  .wellness-number { margin-bottom:15px; }
  .wellness-bottom { padding-top:20px; }
  .photo-button > img { height:320px; }
  .about-label { font-size:1.125rem; }
  .day-tab { font-size:.875rem; line-height:1.25; overflow-wrap:anywhere; }
  .day-copy { padding:26px 22px; }
  .day-copy h3 { font-size:1.75rem; }
  .day-copy .eyebrow { font-size:.875rem; }
  .day-copy .tag { font-size:.875rem; }
  .contact-panel { padding:22px; }
  .messenger-link { align-items:flex-start; flex-direction:column; gap:4px; }
  .messenger-link > span { text-align:left; }
  dialog { padding:32px 22px; }
  .form-heading h2,.group-dialog h2 { font-size:1.75rem; }
}
@media(prefers-reduced-motion:reduce) { .group-card:hover { transform:none; } }
