/* Restore the illustrated, tactile character without moving the information. */
:root { --cream:#fbf8f2; --purple:#456779; --purple-dark:#345565; --ink:#29394a; --muted:#606674; --pink:#ab626b; --yellow:#ead3a3; --line:#e1e2df; --green:#668071; --pastel-blue:#dce9ed; --pastel-rose:#f3e3e3; --pastel-green:#e6eee4; }
body { background:#fffdfa; }
h1,h2,h3 { font-weight:900; }
.header,.header.has-scrolled { background:#fffdf9f2; }
.prototype-note { background:#eef1ec; color:#606674; }
.prototype-note > span.topbar-phone { display:inline-flex; align-items:center; }
.topbar-phone,.topbar-phone a { color:#405865; font-weight:800; }
.topbar-socials { display:flex; align-items:center; gap:18px; }
.topbar-socials a,.topbar-socials span { color:#405865; font-weight:800; }
.prototype-note .topbar-socials > :first-child { display:block; }
.topbar-socials a { text-decoration:underline; text-decoration-color:#9cb1b8; text-underline-offset:3px; }
.brand-dot { color:#ab626b; }
.brand-logo { width:195px !important; height:auto !important; object-fit:contain; display:block; }
.button { border-radius:100px; box-shadow:0 8px 22px #4567790b; }
.button-small { border-radius:100px; }
.button.motion-button::before { background:#345565; }
.button-arrow { background:#fdfbf8; color:var(--purple); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline-color:#587a8b; }
.gallery-dialog > img { background:#e3ecef; }
.menu-toggle { border-radius:50%; background:#e7edf0; }
.reading-progress { background:linear-gradient(90deg,#abc5c7,#c1b9d6,#d9b5b8); }
.eyebrow { color:#587989; }
.marker { position:relative; z-index:0; white-space:nowrap; }
.marker::after { z-index:-1; border-color:#d8b69c; bottom:-.05em; opacity:.7; }
.detail-asterisk { font-size:72px; font-weight:400; line-height:1; color:#c1ab85; pointer-events:none; }
.hero { background:var(--cream); padding:46px 0 58px; border:0; position:relative; isolation:isolate; }
.hero::after { content:''; position:absolute; width:110%; height:42px; left:-5%; bottom:-22px; background:var(--cream); border-radius:0 0 50% 50%; z-index:-1; }
.hero-grid { gap:64px; position:relative; }
.hero-copy { position:relative; }
.hero-copy .eyebrow { font-size:.8125rem; letter-spacing:.13em; }
.hero h1 { font-size:clamp(2.75rem,4.55vw,4.15rem); line-height:1.08; }
.hero .pink-text { color:#9c5d68; }
.hero-accent { position:absolute; right:1%; top:8px; font-size:47px; color:#9bb8b4; rotate:8deg; }
.hero-life { display:grid; grid-template-columns:1fr 180px; gap:4px; align-items:center; min-height:172px; margin:13px 0 15px; }
.opening-hours { margin:20px 0; padding-left:16px; border-left:3px solid #adc3ba; }
.opening-hours strong { font-size:1.65rem; white-space:nowrap; }
.opening-hours p { max-width:230px; line-height:1.5; }
.hero-portrait { position:relative; height:176px; width:180px; align-self:end; isolation:isolate; }
.portrait-blob { position:absolute; inset:21px 8px 0; background:#d6e4e8; border-radius:51% 45% 37% 46%; rotate:9deg; z-index:-1; }
.portrait-blob::after { content:''; position:absolute; inset:-6px; border:1px solid #a9bec6; border-radius:49% 45% 39% 42%; rotate:-14deg; }
.hero-portrait img { position:absolute; width:276px; max-width:none; height:184px; object-fit:contain; left:-44px; bottom:0; }
.portrait-note { position:absolute; bottom:7px; right:-22px; font-size:.875rem; line-height:1.1; font-weight:900; background:#fffdfa; color:var(--ink); padding:10px 12px; border-radius:11px 13px 15px 8px; rotate:8deg; box-shadow:0 8px 20px #344d5c10; }
.portrait-spark { position:absolute; color:#b67b83; font-size:34px; left:-4px; top:22px; rotate:-12deg; }
.hero-actions { gap:16px 24px; }
.price-composition { position:relative; isolation:isolate; margin:0 8px; }
.price-composition::before { content:''; position:absolute; inset:-16px -18px -18px; background:radial-gradient(circle at 16% 10%,#edf8f9d9 0,transparent 38%),radial-gradient(circle at 86% 90%,#9fc8d59c 0,transparent 48%),linear-gradient(135deg,#d8edf1 0%,#c5e2e8 48%,#b7d7e1 100%); border-radius:38px 54px 44px 34px; rotate:-1.2deg; box-shadow:12px 18px 34px #42657912; z-index:-2; }
.price-composition::after { content:''; position:absolute; width:132px; height:34px; right:-7px; bottom:-28px; background:#4c718522; border-radius:50%; filter:blur(14px); rotate:-4deg; z-index:-3; pointer-events:none; }
.price-orbit { position:absolute; inset:-24px -26px -26px; border:1.2px solid #91b2be; border-radius:45px 61px 51px 41px; rotate:1.2deg; z-index:-1; }
.price-card { position:relative; background:transparent; padding:34px 34px 32px; border-radius:0; border:0; box-shadow:none; }
.price-heading { justify-content:space-between; }
.price-heading > span { position:static; }
.price-heading > span { background:#f1e4d6; display:grid; place-items:center; width:36px; height:36px; border-radius:13px 13px 15px 10px; color:#876f54; rotate:8deg; font-size:1.05rem; }
.price-main { background:transparent; border-radius:0; border:0; margin:0 0 5px; padding:18px 0 22px; }
.price-main + .price-row { border-top:1px solid #547b8b40; }
.price-main dd b { color:#2f6278; }
.price-row { border-color:#547b8b30; }
.price-row dt > span,.price-row dd > span,.price-note { color:#4d6573; }
.price-note { margin:20px 0 0; max-width:none; text-align:left; }
.price-spark { position:absolute; right:-29px; top:-35px; color:#b7c6af; z-index:2; font-size:62px; rotate:10deg; }
.price-scribble { position:absolute; width:83px; height:80px; left:-57px; bottom:24px; stroke:#9aad98; stroke-width:2.2; z-index:2; pointer-events:none; }
.groups-section { padding-top:75px; }
.programs-intro { position:relative; }
.section-doodle { position:absolute; right:1px; top:-29px; font-size:50px; line-height:1; color:#b18f9f; rotate:12deg; pointer-events:none; }
.group-grid { gap:20px; }
.group-card { border:0; border-radius:24px 24px 38px 24px; padding:26px; min-height:340px; text-align:left; }
.group-card.green { background:#e9f0e5; }
.group-card.lavender { background:#e9e7f1; }
.group-card.peach { background:#f4e8dc; }
.group-card.pink { background:#f4e5e6; }
.group-card:nth-child(even) { border-radius:24px 38px 24px 24px; }
.group-card .group-icon { width:56px; height:56px; border-radius:20px 17px 23px 16px; background:#ffffff80; rotate:5deg; color:#607582; }
.group-card .group-icon { display:grid; place-items:center; }
.group-card .group-icon svg { width:38px; height:38px; margin:auto; }
.group-card.lavender .group-icon { color:#797191; rotate:-6deg; }
.group-card.peach .group-icon { color:#9f7657; }
.group-card.pink .group-icon { color:#a96977; rotate:-5deg; }
.group-link { border-color:#29394a16; }
.program-number { font-size:.875rem; letter-spacing:.08em; color:#61717a; }
.group-card p { color:#58616d; }
.wellness-section { background:#f2f6f2; border:0; position:relative; }
.wellness-inner { grid-template-columns:.74fr 1.4fr; gap:22px 45px; align-items:start; }
.wellness-inner > .section-heading { padding-top:25px; }
.wellness-inner .section-heading h2 { font-size:clamp(1.8rem,2.5vw,2.4rem); }
.wellness-card { border:0; padding:0; border-radius:24px 24px 36px 24px; background:#fffefa; box-shadow:0 7px 22px #344d5c06; overflow:hidden; }
.wellness-card:nth-child(2) { border-radius:24px 38px 24px 24px; }
.wellness-photo { position:relative; aspect-ratio:1.45; overflow:hidden; isolation:isolate; }
.wellness-photo > img { width:100%; height:100%; display:block; object-fit:cover; transition:scale .9s var(--ease-out); }
.wellness-card:hover .wellness-photo > img { scale:1.04; }
.wellness-photo-label { position:absolute; bottom:12px; left:12px; font-size:.75rem; background:#fffefaed; color:#46535d; padding:4px 9px; border-radius:30px; }
.wellness-number { position:absolute; right:14px; top:14px; margin:0; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#fffdfaee; color:#4f6a76; font-weight:800; }
.wellness-body { padding:23px; display:flex; flex-direction:column; flex:1; }
.wellness-body h3 { font-size:1.45rem; min-height:2.3em; margin-bottom:10px; }
.wellness-body > p { font-size:1rem; color:var(--muted); line-height:1.6; }
.wellness-bottom { padding-top:24px; }
.circle-button { background:#e3edf0; border-radius:50%; }
.wellness-1 .circle-button { background:#f1e2da; color:#886857; }
.wellness-note { margin-top:3px; }
.about-visual::before { content:''; position:absolute; inset:15px 15px 24px -14px; border:1px solid #b9c8ba; border-radius:90px 35px 60px 30px; rotate:2deg; pointer-events:none; }
.photo-button { border-radius:80px 28px 55px 28px; }
.about-spark { color:#b2c5b0; }
.about-label { background:#f2e5d1; color:var(--ink); border-radius:13px 19px 12px 19px; rotate:5deg; bottom:48px; }
.discovery-band { background:#e8eef0; rotate:-1deg; padding:25px 0; margin:12px -5px; }
.discovery-items { font-size:1.75rem; color:#526e7d; }
.discovery-items i { color:#a0b7ad; }
.day-panel { background:#f2e9de; border-radius:28px 65px 28px 28px; }
.day-tab > span { background:#f0ede9; }
.day-tab[aria-selected=true] > span { box-shadow:0 0 0 6px #e3ecef; }
.day-copy .tag { background:#fff9; color:#496553; }
.workshop-section .day-tabs { margin-top:35px; margin-bottom:30px; }
.workshop-section .day-tab { color:#5f6c77; gap:13px; min-width:0; font-size:1rem; line-height:1.35; }
.workshop-section .day-tab > .workshop-tab-label { width:auto; height:auto; min-height:2.7em; max-width:170px; border:0; border-radius:0; box-shadow:none; background:transparent; color:inherit; font-size:1rem; display:block; }
.workshop-section .day-tab[aria-selected=true] { color:#345565; }
.workshop-section .day-tab[aria-selected=true] > .workshop-tab-label { background:transparent; box-shadow:none; color:#345565; }
.workshop-section .day-image-wrap { background:#e9e6df; }
.workshop-section .day-image-wrap img { max-height:none; }
.workshop-section .day-copy { min-height:380px; display:flex; flex-direction:column; justify-content:center; }
.workshop-section .day-copy .eyebrow { font-size:.8125rem; letter-spacing:.08em; line-height:1.5; }
.workshop-section .day-copy h3 { margin:14px 0 16px; }
.workshop-section .day-copy > p { margin-bottom:22px; }
.workshop-section .day-copy .tag-list { padding-bottom:24px; }
.workshop-section .day-counter { color:#657681; }
.workshop-section .example-label { background:#fffefaed; color:#46535d; font-size:.8125rem; border-radius:30px; }
.workshop-tabs-scroll { min-width:0; }
@media(max-width:800px) {
  .workshop-section .day-copy { min-height:320px; }
  .workshop-section .day-image-wrap { height:340px; }
  .workshop-section .day-image-wrap img { height:340px; min-height:340px; max-height:340px; }
}

@media(max-width:700px) {
  .brand-logo { width:165px !important; }
  .prototype-note { justify-content:space-between; gap:12px; }
  .prototype-note > span.topbar-phone { display:inline-flex; }
  .topbar-socials { gap:12px; }
}
@media(max-width:620px) {
  .workshop-tabs-scroll { overflow-x:auto; scrollbar-width:thin; scrollbar-color:#adc3cb transparent; margin:0 -6px 20px; padding:0 6px; overscroll-behavior-x:contain; }
  .workshop-section .day-tabs { min-width:710px; margin:28px 0 10px; }
  .workshop-section .day-tab { flex:1 0 142px; padding-left:8px; padding-right:8px; }
  .workshop-section .day-tab > .workshop-tab-label { font-size:.9375rem; max-width:125px; }
  .workshop-section .day-image-wrap { height:250px; }
  .workshop-section .day-image-wrap img { height:250px; min-height:250px; max-height:250px; }
  .workshop-section .day-copy { min-height:330px; padding:28px 24px; }
  .workshop-section .day-copy h3 { font-size:1.875rem; }
}
.faq-question > span { background:#e9edf0; }
.faq-scribble { stroke:#aabca0; }
.contact-section { background:#fffdfa; padding:48px 0 58px; border:0; }
.contact-shell { position:relative; isolation:isolate; padding:55px 52px; border-radius:38px 85px 38px 65px; background:#d6e5e9; }
.contact-shell::before { content:''; position:absolute; inset:10px; border:1px solid #ffffff9c; border-radius:30px 75px 30px 55px; pointer-events:none; z-index:-1; }
.contact-grid { gap:60px; position:relative; align-items:center; }
.contact-shell .section-heading h2 { font-size:clamp(2rem,3.3vw,3rem); line-height:1.13; }
.contact-shell .eyebrow { font-size:.8rem; letter-spacing:.11em; }
.contact-shell .marker::after { border-color:#af8790; }
.contact-shell .section-heading > p { color:#4d6572; }
.contact-section .button { background:#385d71; box-shadow:0 8px 25px #34556519; }
.contact-panel { padding:28px; border:0; border-radius:26px 36px 24px 32px; background:#fffdfa; box-shadow:0 14px 28px #4567790a; }
.contact-orbit { position:absolute; width:350px; height:210px; border:1px solid #b1c7cf; border-radius:50%; bottom:-28px; left:-25px; rotate:-20deg; z-index:-1; pointer-events:none; }
.contact-spark { top:18px; right:calc(50% + 10px); position:absolute; font-size:54px; color:#aec1af; rotate:9deg; }
.contact-diamond { position:absolute; left:38px; bottom:20px; font-size:38px; color:#9b7e93; rotate:-9deg; }
.messenger-link { border-radius:15px; border-color:#e0e7e8; }
.messenger-pending { background:#f3f6f6; }
.footer { background:#f6f3ed; padding-top:40px; }
.footer-domain { color:#456779; font-weight:800; text-decoration:underline; text-decoration-color:#aab9bd; text-underline-offset:4px; }
.footer-top { border-bottom:1px solid #dfdfd9; }
.legal-footer { padding:28px 0; display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:30px; font-size:.875rem; }
.legal-footer h3 { font-size:1rem; margin-bottom:12px; letter-spacing:0; font-weight:800; }
.legal-footer p,.legal-footer li { margin:0 0 8px; line-height:1.55; }
.legal-footer ul { list-style:none; padding:0; margin:0; }
.legal-footer a { text-decoration:underline; text-decoration-color:#96a7ac; text-underline-offset:4px; }
.legal-footer a:hover { color:#345565; }
.legal-pending { color:#626a73; }
.legal-footer-note { font-size:.8125rem; color:#626a73; margin:0 0 22px; max-width:950px; }
.form-legal-links { display:flex; flex-wrap:wrap; gap:8px 16px; margin:14px 0; font-size:.875rem; }
.form-legal-links a { color:#456779; text-decoration:underline; text-underline-offset:3px; }
.contact-dialog { width:min(580px,calc(100vw - 30px)); }
.contact-dialog-panel { margin-top:28px; padding:24px; border-radius:22px 30px 20px 25px; background:#eef3f3; }
.contact-dialog-panel .messenger-list { margin-top:18px; }
.contact-dialog-panel .messenger-link { background:#fffdfa; }
.dialog-privacy-link { display:inline-block; margin-top:20px; color:#456779; font-size:.875rem; text-decoration:underline; text-underline-offset:3px; }

/* Keep pictograms and single-character controls geometrically centered. */
.button-arrow,
.circle-button,
.group-link > span,
.photo-expand,
.dialog-close,
.price-heading > span,
.wellness-number,
.value-icon,
.approach-list li > span,
.faq-question > span,
.day-tab > span:first-child {
  padding:0;
  line-height:1;
  align-items:center;
  justify-items:center;
  text-align:center;
}
.circle-button,
.dialog-close { display:grid; place-items:center; }
.group-link > span,
.button-arrow,
.photo-expand,
.price-heading > span,
.wellness-number,
.value-icon,
.approach-list li > span,
.faq-question > span,
.day-tab > span:first-child { display:grid; place-items:center; }
.motion-ready .hero-portrait img { translate:calc(var(--pointer-x,0px) * .25) calc(var(--pointer-y,0px) * .2); }
.motion-ready .portrait-note { translate:calc(var(--pointer-x,0px) * -.3) calc(var(--pointer-y,0px) * -.2); }
.motion-ready .hero.is-onstage .portrait-blob { animation:gentle-morph 12s ease-in-out infinite alternate; }
.motion-ready .hero.is-onstage .price-spark { animation:sun-turn 58s linear infinite; }
.motion-ready .hero.is-onstage .price-orbit { animation:orbit-breathe 10s ease-in-out infinite; }
@media(min-width:801px) and (max-width:1100px) {
  .hero-grid { gap:42px; grid-template-columns:1fr 1.13fr; }
  .hero-life { grid-template-columns:1fr 128px; }
  .hero-portrait { width:128px; height:160px; }
  .hero-portrait img { width:236px; height:157px; left:-54px; }
  .portrait-note { right:-8px; font-size:.8125rem; }
  .opening-hours { padding-left:12px; }
  .opening-hours strong { font-size:1.45rem; }
  .hero-accent { right:-5px; font-size:36px; }
  .price-card { padding:30px 24px; }
  .price-scribble { left:-43px; width:60px; }
}
@media(max-width:1100px) {
  .wellness-inner { grid-template-columns:1fr; gap:26px; }
  .wellness-inner > .section-heading { padding-top:0; }
  .wellness-body h3 { min-height:0; }
  .wellness-note { grid-column:1; }
  .contact-shell { padding:44px 36px; }
  .contact-grid { gap:35px; }
  .legal-footer { grid-template-columns:1fr 1fr; }
  .legal-footer > :last-child { grid-column:1/-1; }
}
@media(max-width:800px) {
  .hero { padding:30px 0 48px; }
  .hero-grid { gap:40px; }
  .hero h1 { font-size:3.125rem; }
  .hero-life { grid-template-columns:minmax(0,250px) 180px; justify-content:space-between; max-width:540px; margin:3px 0 20px; }
  .hero-accent { right:6%; top:12px; }
  .price-composition { margin:0 7px; }
  .price-composition::before { inset:-10px -8px -12px; border-radius:34px 46px 39px 31px; rotate:-.8deg; }
  .price-composition::after { width:92px; height:25px; right:1px; bottom:-19px; filter:blur(11px); }
  .price-orbit { inset:-15px -13px -17px; border-radius:39px 51px 44px 36px; rotate:.9deg; }
  .price-spark { font-size:43px; right:-18px; top:-21px; }
  .price-scribble { display:none; }
  .groups-section { padding-top:57px; }
  .group-card { min-height:300px; }
  .section-doodle { right:0; top:0; font-size:40px; }
  .programs-intro { padding-right:25px; }
  .discovery-items { font-size:1.375rem; }
  .contact-shell { padding:38px 28px; border-radius:28px 60px 28px 45px; }
  .contact-spark { right:27px; top:18px; font-size:39px; }
  .contact-shell .section-heading { padding-right:15px; }
  .contact-shell .section-heading h2 br { display:block; }
  .contact-diamond { left:auto; right:18px; bottom:10px; }
  .contact-orbit { width:250px; height:170px; }
}
@media(max-width:480px) {
  .prototype-note { justify-content:space-between; gap:10px; }
  .prototype-note > span.topbar-phone { display:inline-flex; }
  .topbar-socials { gap:9px; }
  .topbar-phone,.topbar-socials { font-size:.625rem; }
  .hero h1 { font-size:2.625rem; }
  .hero-copy .eyebrow { font-size:.8125rem; }
  .hero-life { grid-template-columns:minmax(0,1fr) 125px; gap:2px; min-height:160px; }
  .hero-portrait { width:125px; height:155px; }
  .hero-portrait img { width:235px; height:157px; left:-55px; }
  .portrait-note { right:-4px; bottom:6px; font-size:.8125rem; padding:7px 9px; }
  .opening-hours { padding-left:12px; }
  .opening-hours strong { font-size:1.5rem; }
  .opening-hours p { font-size:.9375rem; }
  .hero-accent { font-size:36px; right:0; }
  .price-card { padding:27px 15px 29px; }
  .price-heading { gap:16px; }
  .price-note { max-width:none; }
  .price-main { margin-left:0; margin-right:0; padding:17px 0 21px; }
  .price-heading h2 { font-size:1.45rem; }
  .price-heading > span { width:29px; height:29px; flex-shrink:0; }
  .group-card { min-height:0; padding:25px; }
  .wellness-body { padding:24px; }
  .wellness-photo { aspect-ratio:1.55; }
  .about-label { right:-2px; }
  .contact-shell { padding:35px 24px; }
  .contact-shell .eyebrow { max-width:240px; }
  .contact-shell .section-heading h2 { font-size:2rem; }
  .contact-section .button { gap:10px; font-size:.9375rem; padding:15px 18px; }
  .contact-panel { padding:23px 20px; }
  .contact-shell .section-heading { padding-right:0; }
  .contact-spark { top:12px; right:14px; font-size:29px; }
  .contact-diamond { display:none; }
  .legal-footer { grid-template-columns:1fr; gap:20px; }
  .legal-footer > :last-child { grid-column:auto; }
}
@media(max-width:360px) {
  .hero-life { grid-template-columns:minmax(0,1fr) 100px; }
  .hero-portrait { width:100px; }
  .hero-portrait img { left:-68px; }
  .portrait-note { right:-2px; font-size:.75rem; }
  .opening-hours strong { font-size:1.375rem; }
  .contact-shell { padding:34px 20px; }
  .contact-section .button { width:100%; font-size:.875rem; padding:14px; }
  .contact-shell .section-heading h2 { font-size:1.8rem; }
}
@media(prefers-reduced-motion:reduce) { .wellness-photo > img { transition:none; } }
