:root {
  --ink: #23504d;
  --muted: #5f6b69;
  --blue: #2a7470;
  --blue-dark: #1f5e5a;
  --yellow: #e0b25a;
  --gold: #b8873a;
  --coral: #e09aa0;
  --green: #8fc2b1;
  --cream: #fbf4ea;
  --soft: #f7ece4;
  --white: #ffffff;
  --line: #eadfd2;
  --shadow: 0 18px 45px rgba(35, 80, 77, .10);
  --radius: 26px;
  --container: 1160px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(ellipse 38% 30% at 0% 0%, rgba(143,194,177,.42), transparent 70%),
    radial-gradient(ellipse 30% 26% at 12% 4%, rgba(224,154,160,.30), transparent 70%),
    radial-gradient(ellipse 34% 28% at 100% 0%, rgba(224,178,90,.30), transparent 70%),
    radial-gradient(ellipse 26% 22% at 90% 8%, rgba(143,194,177,.28), transparent 70%),
    radial-gradient(ellipse 36% 28% at 0% 100%, rgba(42,116,112,.22), transparent 70%),
    radial-gradient(ellipse 28% 24% at 10% 96%, rgba(224,178,90,.28), transparent 70%),
    radial-gradient(ellipse 36% 28% at 100% 100%, rgba(224,154,160,.34), transparent 70%),
    radial-gradient(ellipse 26% 22% at 88% 94%, rgba(143,194,177,.32), transparent 70%),
    var(--cream);
  background-attachment: fixed;
  font-family: "DM Sans", Arial, sans-serif;
  line-height: 1.65;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Quicksand", sans-serif; line-height: 1.15; }
h1 { font-size: clamp(3rem, 6vw, 5.4rem); letter-spacing: -2px; }
h2 { font-size: clamp(2.2rem, 4vw, 3.5rem); letter-spacing: -1px; }
h3 { font-size: 1.45rem; }
a { color: inherit; text-decoration: none; }
.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.section { padding: 105px 0; }
.soft-bg { background: rgba(247,236,228,.7); }

.site-header {
  position: sticky; top: 0; z-index: 20;
  background: rgba(251,244,234,.9);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(234,223,210,.8);
}
.nav { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: flex; align-items: center; gap: 11px; }
.brand-mark {
  display: grid; place-items: center; width: 40px; height: 40px;
  border-radius: 13px; background: var(--yellow); color: #7a5a22; font-size: 20px;
}
.brand strong { display: block; font-family: "Quicksand"; font-size: 1rem; }
.brand small { display: block; color: var(--muted); font-size: .72rem; }
.nav-links { display: flex; align-items: center; gap: 28px; font-size: .92rem; font-weight: 600; }
.nav-links a:not(.nav-cta):hover { color: var(--blue-dark); }
.nav-cta { background: var(--ink); color: white; padding: 11px 18px; border-radius: 999px; }
.menu-toggle { display:none; border:0; background:none; padding:8px; cursor:pointer; }
.menu-toggle span { display:block; width:25px; height:2px; margin:5px; background:var(--ink); }

.hero { position: relative; overflow:hidden; min-height: 730px; display:grid; align-items:center; }
.hero-grid { display:grid; grid-template-columns: 1.02fr .98fr; gap: 50px; align-items:center; }
.eyebrow { display:flex; align-items:center; gap:10px; color:var(--blue-dark); text-transform:uppercase; letter-spacing:1.6px; font-size:.73rem; font-weight:800; margin-bottom:18px; }
.eyebrow > span { width:28px; height:3px; background:var(--yellow); border-radius:9px; }
.hero h1 { max-width: 690px; margin-bottom: 24px; }
.hero h1 em { color: var(--blue-dark); font-style:normal; position:relative; }
.hero h1 em::after { content:""; position:absolute; left:2px; right:2px; bottom:-6px; height:7px; background:rgba(224,178,90,.55); border-radius:50%; transform:rotate(-2deg); z-index:-1; }
.hero-text { max-width: 610px; font-size:1.14rem; color:var(--muted); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin:30px 0 22px; }
.button { display:inline-flex; align-items:center; gap:12px; padding:14px 21px; border-radius:999px; font-weight:700; transition:.2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--blue); color:white; box-shadow:0 10px 25px rgba(42,116,112,.25); }
.button-secondary { border:1px solid var(--line); background:white; }
.hero-note { color:var(--muted); font-size:.85rem; display:flex; gap:9px; align-items:center; }
.dot { width:9px; height:9px; border-radius:50%; background:var(--green); }

.hero-art { min-height:500px; position:relative; display:grid; place-items:center; }
.sun { position:absolute; width:300px; height:300px; border-radius:50%; background:#f8e3b8; top:15px; right:40px; }
.art-card { position:relative; width:min(440px, 85%); height:390px; border-radius:48% 52% 46% 54%; background:#dcece6; overflow:hidden; box-shadow:var(--shadow); }
.rainbow { position:absolute; width:260px; height:130px; border:17px solid var(--coral); border-bottom:0; border-radius:260px 260px 0 0; left:85px; top:80px; }
.rainbow::after { content:""; position:absolute; inset:17px; border:15px solid var(--yellow); border-bottom:0; border-radius:220px 220px 0 0; }
.cloud { position:absolute; background:white; width:90px; height:32px; border-radius:30px; opacity:.9; }
.cloud::before,.cloud::after { content:""; position:absolute; background:white; border-radius:50%; }
.cloud::before { width:40px; height:40px; left:15px; top:-17px; }
.cloud::after { width:48px; height:48px; left:43px; top:-22px; }
.cloud-a { left:40px; top:55px; }
.cloud-b { right:20px; top:150px; transform:scale(.7); }
.chair { position:absolute; width:150px; height:105px; border-radius:65px 65px 20px 20px; background:var(--coral); left:145px; bottom:68px; }
.chair::after { content:""; position:absolute; width:130px; height:22px; border-radius:50%; background:#c97f86; left:10px; bottom:-12px; }
.plant { position:absolute; right:55px; bottom:55px; width:90px; height:120px; }
.plant::after { content:""; position:absolute; bottom:0; left:16px; width:58px; height:45px; border-radius:10px 10px 24px 24px; background:#d9a957; }
.plant i { position:absolute; bottom:34px; width:35px; height:62px; background:var(--green); border-radius:50% 50% 10% 50%; transform-origin:bottom; }
.plant i:nth-child(1){left:25px;transform:rotate(-28deg)} .plant i:nth-child(2){left:42px;transform:rotate(18deg)} .plant i:nth-child(3){left:8px;transform:rotate(-55deg)}
.teddy { position:absolute; left:72px; bottom:63px; width:72px; height:72px; display:grid; place-items:center; background:#d2a27c; border-radius:50%; color:#b37a55; font-size:0; }
.teddy::before,.teddy::after { content:""; position:absolute; width:25px;height:25px;background:#d2a27c;border-radius:50%;top:-7px; }.teddy::before{left:3px}.teddy::after{right:3px}
.floating-card { position:absolute; background:white; box-shadow:var(--shadow); padding:14px 18px; border-radius:18px; font-weight:700; font-size:.82rem; }
.floating-card span { color:var(--coral); margin-right:8px; }
.floating-one { left:0; bottom:90px; transform:rotate(-3deg); }
.floating-two { right:0; top:95px; transform:rotate(3deg); }
.hero-shape { position:absolute; border-radius:50%; opacity:.45; z-index:-1; }
.hero-shape-one { width:220px;height:220px;background:#e2f0ea; left:-120px; top:160px; }
.hero-shape-two { width:170px;height:170px;background:#f8dfe1; right:-70px; bottom:40px; }

.two-col { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:start; }
.intro-copy { color:var(--muted); font-size:1.05rem; }
.intro-copy p + p { margin-top:18px; }
.intro-center { text-align:center; max-width:760px; }
.intro { padding-top:10px; padding-bottom:75px; }
.intro h2 { margin-bottom:0; }
.vision { padding-top:0; padding-bottom:52px; }
.services { padding-top:52px; }
.vision-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.vision-grid .service-card .vision-lead { min-height:0; margin-top:10px; }
.vision-grid .check-list { margin-bottom:0; }
.vision-grid .check-list div { align-items:flex-start; }
.vision-grid .check-list span { flex-shrink:0; }

.section-heading { max-width:730px; margin-bottom:50px; }
.section-heading.centered { margin-inline:auto; text-align:center; }
.section-heading.centered .eyebrow { justify-content:center; }
.section-heading p { color:var(--muted); }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-card { background:white; padding:34px; border-radius:var(--radius); box-shadow:0 7px 30px rgba(35,80,77,.05); border-top:5px solid transparent; }
.service-card.blue { border-color:var(--blue); }.service-card.yellow { border-color:var(--yellow); }.service-card.coral { border-color:var(--coral); }
.icon { font-size:2.1rem; margin-bottom:22px; }
.card-label { color:var(--muted); text-transform:uppercase; letter-spacing:1.2px; font-size:.68rem; font-weight:800; }
.service-card h3 { margin:7px 0 12px; }
.service-card p { color:var(--muted); font-size:.92rem; min-height:115px; }
.service-card a { color:var(--blue-dark); font-weight:800; font-size:.82rem; }

.children-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:100px; align-items:center; }
.children-visual { min-height:450px; position:relative; display:grid; place-items:center; }
.blob { position:absolute; border-radius:48% 52% 63% 37% / 47% 43% 57% 53%; }
.blob-back { width:390px;height:390px;background:#e2f0ea; transform:rotate(12deg); }
.blob-front { width:330px;height:330px;background:#f6e2e2; box-shadow:var(--shadow); }
.toy { position:absolute; display:grid; place-items:center; width:76px;height:76px;border-radius:22px; font-size:1.7rem; box-shadow:0 10px 25px rgba(35,80,77,.12); }
.toy-one { background:var(--yellow); top:35px; left:50px; transform:rotate(-10deg); }.toy-two{background:#fff;right:42px;top:75px;border-radius:50%;}.toy-three{background:var(--coral);left:55px;bottom:65px;transform:rotate(9deg)}.toy-four{background:var(--green);right:58px;bottom:45px;border-radius:50%}
.speech-bubble { position:absolute; bottom:15px; left:0; background:white; padding:17px 24px; border-radius:20px; box-shadow:var(--shadow); font-family:Quicksand; font-weight:700; transform:rotate(-3deg); }
.children-copy p { color:var(--muted); }
.check-list { display:grid; gap:13px; margin:27px 0; }
.check-list div { display:flex; gap:12px; align-items:center; font-weight:600; font-size:.92rem; }
.check-list span { display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#e2f0ea;color:#2a7470;font-size:.75rem; }
.small-note { font-size:.78rem; padding:15px 18px; background:#f8ecd3; border-radius:15px; }

.age-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.age-card { padding:32px; background:white; border:1px solid var(--line); border-radius:var(--radius); }
.age-card.featured { background:linear-gradient(145deg,var(--blue),var(--blue-dark)); color:white; transform:translateY(-12px); box-shadow:var(--shadow); }
.age-card p { color:var(--muted); font-size:.9rem; }.age-card.featured p{color:rgba(255,255,255,.85)}
.age-number { font-family:Quicksand; font-size:2.2rem; font-weight:700; color:var(--blue-dark); }.featured .age-number{color:var(--yellow)}

.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.step { padding:26px; border:1px solid var(--line); border-radius:22px; background:white; }
.step-number { font-family:Quicksand; font-weight:700; color:var(--coral); font-size:1.2rem; margin-bottom:35px; }
.step h3 { font-size:1.15rem; }.step p{font-size:.85rem;color:var(--muted)}

.practitioner-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; align-items:center; }
.photo-placeholder { aspect-ratio:1/1; max-width:430px; border-radius:50% 50% 45% 55%; background:#dcece6; display:grid; place-items:center; overflow:hidden; }
.photo-inner { width:80%; height:80%; border:2px dashed rgba(31,94,90,.4); border-radius:50%; display:grid; place-items:center; align-content:center; text-align:center; color:var(--blue-dark); }
.photo-inner span { font-family:Quicksand;font-weight:700;font-size:1.4rem; }.photo-inner small{max-width:150px}
.placeholder-text { padding:14px 18px; background:white; border-radius:13px; font-size:.9rem; }
.badge-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:25px; }.badge-row span{padding:7px 12px;border-radius:999px;background:#fff;font-size:.75rem;font-weight:700}

.contact { padding-top:60px; }
.contact-box { background:var(--ink); color:white; border-radius:35px; padding:65px; display:grid; grid-template-columns:1.05fr .95fr; gap:55px; overflow:hidden; position:relative; }
.contact-box::after { content:""; position:absolute;width:270px;height:270px;border-radius:50%;background:rgba(224,154,160,.22);right:-80px;bottom:-100px; }
.eyebrow.light { color:#bfe0d6; }.eyebrow.light > span{background:var(--yellow)}
.contact-copy p { color:rgba(255,255,255,.75); max-width:530px; }
.location-pill { display:inline-block; margin-top:15px; padding:10px 15px; border:1px solid rgba(255,255,255,.15); border-radius:999px; font-size:.82rem; }
.contact-actions { display:grid; gap:12px; position:relative; z-index:2; }
.contact-action { display:flex; align-items:center; gap:17px; background:rgba(255,255,255,.08); padding:17px 20px; border-radius:18px; border:1px solid rgba(255,255,255,.1); transition:.2s; }
.contact-action:hover { background:rgba(255,255,255,.14); transform:translateX(3px); }
.contact-icon { width:44px;height:44px;border-radius:14px;background:white;color:var(--ink);display:grid;place-items:center;font-size:1.15rem; }
.contact-action small{display:block;color:rgba(255,255,255,.55);font-size:.7rem;text-transform:uppercase;letter-spacing:1px}.contact-action strong{font-size:.9rem}

.footer { padding:35px 0 45px; border-top:1px solid var(--line); }
.footer-inner { display:flex; justify-content:space-between; gap:30px; }
.footer p { color:var(--muted); font-size:.72rem; margin:4px 0; }
.footer-note { text-align:right; max-width:500px; }
.disclaimer { font-size:.68rem!important; }

@media (max-width: 900px) {
  .hero-grid,.two-col,.children-grid,.practitioner-grid,.contact-box { grid-template-columns:1fr; }
  .hero { padding:80px 0 60px; }
  .hero-art { min-height:420px; order:-1; }
  .hero-copy { text-align:center; }.hero-copy .eyebrow,.hero-note{justify-content:center}
  .hero-actions { justify-content:center; }
  .service-grid,.age-grid,.vision-grid { grid-template-columns:1fr; }
  .age-card.featured { transform:none; }
  .steps { grid-template-columns:1fr 1fr; }
  .practitioner-grid { gap:40px; }.photo-placeholder{margin:auto}
  .contact-box { padding:45px 30px; }
}
@media (max-width: 700px) {
  .container { width:min(var(--container), calc(100% - 28px)); }
  .section { padding:75px 0; }
  .intro { padding-bottom:52px; }
  .vision { padding-bottom:37px; }
  .services { padding-top:37px; }
  .menu-toggle { display:block; }
  .nav-links { position:absolute;left:14px;right:14px;top:70px;background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:12px;display:none;flex-direction:column;align-items:stretch;gap:3px; }
  .nav-links.open { display:flex; }.nav-links a{padding:12px 14px;border-radius:12px}.nav-links a:hover{background:var(--soft)}
  .nav-cta{text-align:center}
  .hero-art { min-height:330px; }.art-card{height:270px;width:300px}.rainbow{width:180px;height:90px;left:60px;top:50px;border-width:12px}.rainbow::after{inset:12px;border-width:11px}.chair{width:110px;height:75px;left:95px;bottom:48px}.teddy{left:45px;bottom:45px;width:54px;height:54px}.plant{right:25px;bottom:35px;transform:scale(.75)}.floating-card{font-size:.68rem;padding:10px 12px}.floating-one{left:0;bottom:25px}.floating-two{right:0;top:40px}
  .steps { grid-template-columns:1fr; }
  .footer-inner { flex-direction:column; }.footer-note{text-align:left}
  .contact-box { border-radius:25px; padding:35px 22px; }
}
