@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');

/* Brand colors: dark purple and teal for readable text; pink and gold accents. */
:root { --purple:#783587; --teal:#176d70; --pink:#e54192; --gold:#efbd58; --ink:#302638; --muted:#645b69; --paper:#fffdfa; --line:#e6dce8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.7 'DM Sans',Arial,sans-serif; }
a { color:inherit; text-underline-offset:5px; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--purple); outline-offset:5px; }
[hidden],#inquiry-form [hidden] { display:none!important; }
.wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
h1,h2,h3 { margin:0; font-family:'Fraunces',Georgia,serif; font-weight:500; line-height:1.14; letter-spacing:-.035em; }
h1 { font-size:clamp(44px,5vw,68px); }
h2 { font-size:clamp(34px,3.4vw,46px); color:#51315f; }
h3 { font-size:28px; color:#51315f; }
p { margin:0 0 20px; }
p:last-child { margin-bottom:0; }
.eyebrow { color:var(--purple); font-size:12px; font-weight:700; letter-spacing:.13em; margin-bottom:20px; }
.header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding-block:12px; border-bottom:1px solid var(--line); }
.brand { display:block; flex-shrink:0; }
.brand-logo { display:block; width:170px; height:auto; }
nav { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
nav a { font-size:14px; font-weight:600; text-decoration:none; padding-block:12px; }
nav a:hover { color:var(--purple); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:15px 23px; min-height:48px; border:1px solid transparent; border-radius:14px; background:var(--purple); color:white; font-size:15px; font-weight:700; text-decoration:none; cursor:pointer; transition:transform .2s,background .2s,box-shadow .2s; box-shadow:0 6px 18px #78358716; }
.button:hover { background:#60276e; color:white; transform:translateY(-2px); box-shadow:0 8px 22px #78358726; }
.button.small { padding:12px 20px; }
.button.secondary { background:transparent; color:var(--purple); border-color:#bda7c3; box-shadow:none; }
.button.secondary:hover { background:#f5edf7; }
.hero { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:56px; padding-block:56px 72px; }
.hero-copy,.hero-art { min-width:0; }
.hero-copy .eyebrow { display:inline-block; padding:7px 12px; background:#f8eaf2; border-radius:8px; letter-spacing:.07em; }
h1 em { color:var(--purple); font-style:normal; }
.intro { max-width:460px; color:var(--muted); font-size:18px; margin:26px 0; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.location { margin-top:20px; color:var(--teal); font-size:14px; }
.hero-art { position:relative; aspect-ratio:1 / 1.08; overflow:hidden; border:7px solid white; border-radius:120px 32px 32px 32px; background:#edf6f4; box-shadow:0 20px 50px #78358713; }
.hero-art img { position:absolute; width:100%; height:100%; inset:0; object-fit:cover; }
.art-label { position:absolute; bottom:24px; left:24px; padding:16px 22px; background:#fffdf5f5; border-left:4px solid var(--gold); border-radius:16px; font:500 23px/1.3 'Fraunces',Georgia,serif; }
.art-label strong { color:var(--teal); font-weight:500; }
.ribbon { background:#edf7f4; border-block:1px solid #d6e9e4; }
.ribbon-inner { display:flex; align-items:center; justify-content:center; gap:36px; padding-block:21px; color:var(--teal); font-size:15px; font-weight:600; }
.ribbon b { color:var(--purple); font-weight:400; }
.section { padding-block:88px; }
.approach,.everyday { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.approach > div:last-child { border-left:3px solid #eec1db; padding-left:32px; }
.approach p:not(.eyebrow),.provider p:not(.eyebrow),.everyday dd { color:var(--muted); }
.body-large { font-size:23px; line-height:1.5; }
.provider { display:grid; grid-template-columns:1.15fr .85fr; gap:64px; padding-bottom:88px; align-items:start; }
.provider h2 { font-size:38px; }
.provider .provider-role { color:var(--teal); font-weight:600; margin:12px 0 25px; }
.provider strong { color:#51315f; font-weight:600; }
.philosophy { padding:36px; background:#f6eef8; border:1px solid #e9dced; border-radius:28px; }
.philosophy h3 { margin-bottom:18px; }
.philosophy h3:not(:first-of-type) { margin-top:30px; }
.lotus-line { color:var(--purple)!important; font-weight:700; }
.text-link { display:inline-block; color:var(--purple); font-weight:600; padding-block:10px; }
.care-section { padding-block:72px; background:#f8f4ef; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:36px; }
.section-heading > p { max-width:260px; color:var(--muted); }
.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.card { border:1px solid var(--line); border-radius:24px; padding:30px; }
.card.blue { background:#faedf3; border-top:4px solid var(--pink); }
.card.yellow { background:#fff5df; border-top:4px solid var(--gold); }
.card.pink { background:#eaf5f1; border-top:4px solid #148680; }
.number { font-size:12px; font-weight:700; letter-spacing:.1em; }
.card h3 { font-size:31px; margin-top:24px; }
.age { font-size:14px; font-weight:600; margin:16px 0; }
.photos { padding-bottom:0; }
.gallery-group { padding:30px 0; border-top:1px solid var(--line); min-width:0; }
.gallery-heading { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:20px; }
.gallery-controls { display:flex; align-items:center; gap:10px; }
.gallery-count { color:var(--muted); font-size:14px; min-width:65px; text-align:center; }
.gallery-arrow { width:46px; height:46px; border:1px solid #c4aace; border-radius:50%; background:white; color:var(--purple); font:24px/1 Arial,sans-serif; cursor:pointer; }
.gallery-arrow:hover:not([aria-disabled="true"]) { background:var(--purple); color:white; }
.gallery-arrow[aria-disabled="true"] { opacity:.4; cursor:default; }
.gallery-track { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#b8a1bf transparent; padding:6px 0 18px; }
.gallery-track figure { flex:0 0 calc((100% - 24px)/2); margin:0; min-width:0; scroll-snap-align:start; }
.gallery-track a { display:block; overflow:hidden; border-radius:24px; background:#edf6f4; }
.gallery-track img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform .3s; }
.gallery-track a:hover img { transform:scale(1.025); }
.gallery-track figcaption { font-size:15px; color:#51315f; margin-top:12px; padding-inline:4px; }
.everyday dl { margin:0; }
.everyday dl > div { padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.everyday dt { color:var(--teal); font-size:18px; font-weight:600; }
.everyday dd { margin:6px 0 0; }
.contact { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:44px; padding:48px; background:var(--teal); border-radius:32px; color:white; align-items:start; }
.contact h2 { color:white; margin-bottom:24px; }
.contact .eyebrow { color:#ffe191; }
.contact-intro { min-width:0; padding-top:12px; }
.contact-intro a:focus-visible { outline-color:#ffe191; }
.email-link { overflow-wrap:anywhere; }
#inquiry-form { padding:32px; border-radius:24px; background:white; color:var(--ink); min-width:0; box-shadow:0 12px 30px #123a3420; }
#inquiry-form h3 { font-size:28px; margin-bottom:12px; }
#inquiry-form .form-note { color:var(--muted); font-size:14px; line-height:1.6; }
.form-section { border:0; border-top:1px solid var(--line); padding:20px 0 8px; margin:28px 0 12px; min-width:0; }
.form-section > legend { font-size:18px; color:var(--purple); font-weight:700; padding-right:12px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
.form-wide { grid-column:1 / -1; }
#inquiry-form label { display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:600; min-width:0; }
#inquiry-form input:not([type="hidden"]),#inquiry-form select,#inquiry-form textarea { width:100%; min-width:0; min-height:48px; border:1px solid #a89aaf; border-radius:10px; background:#fff; color:var(--ink); font-size:16px; line-height:1.5; padding:11px 12px; }
#inquiry-form textarea { resize:vertical; }
#inquiry-form :is(input,select,textarea):user-invalid { border-color:#a22b49; outline:2px solid #a22b4920; }
.child-fields { border:0; padding:0; margin:0; min-width:0; }
.child-fields + .child-fields { border-top:1px solid var(--line); margin-top:24px; padding-top:20px; }
.child-fields legend { color:var(--muted); padding:0 10px 12px 0; font-size:14px; }
.text-button { background:none; color:var(--purple); border:0; font-weight:600; padding:12px 0; min-height:44px; cursor:pointer; text-align:left; }
#add-child { margin-top:12px; }
#send-inquiry { width:100%; font-family:inherit; }
#send-inquiry:disabled { opacity:.7; cursor:wait; }
#form-status { color:#8c234e; font-size:15px; margin-top:16px; }
#form-status:empty { margin:0; }
footer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:28px; font-size:13px; color:var(--muted); }
footer p { margin:0; }
.footer-logo { display:block; width:150px; height:auto; }
.skip { position:absolute; left:20px; top:-100px; padding:12px; background:white; z-index:10; }
.skip:focus { top:10px; }
.mobile-contact { display:none; }
.thank-you { max-width:680px; padding-block:70px; text-align:center; }
.thank-you .brand-logo { margin:0 auto 30px; }
.thank-you h1 { margin-bottom:24px; }
@keyframes arrive { from { opacity:.55; transform:translateY(14px); } to { opacity:1; transform:none; } }
.arrived { animation:arrive .6s ease-out both; }
@media(max-width:1050px) {
 .wrap { width:calc(100% - 48px); }
 nav { gap:16px; }
 .hero { gap:30px; }
 .approach,.provider,.everyday { gap:36px; }
 .contact { grid-template-columns:1fr; padding:36px; }
 .contact-intro { max-width:650px; }
}
@media(max-width:760px) {
 .wrap { width:calc(100% - 36px); }
 .header { justify-content:center; gap:0; }
 .brand-logo { width:140px; }
 nav { justify-content:center; gap:4px 18px; padding-bottom:12px; }
 nav a { font-size:13px; }
 .hero { grid-template-columns:1fr; padding-block:36px 46px; gap:32px; }
 h1 { font-size:clamp(40px,9vw,62px); }
 .hero-art { aspect-ratio:1.2; border-radius:70px 24px 24px; }
 .hero-copy .eyebrow { font-size:11px; }
 .ribbon-inner { flex-wrap:wrap; gap:5px 14px; font-size:13px; }
 .ribbon b { display:none; }
 .ribbon-inner span { text-align:center; }
 .section { padding-block:56px; }
 .approach,.provider,.everyday { grid-template-columns:1fr; gap:28px; }
 .approach > div:last-child { padding-left:22px; }
 .provider { padding-bottom:56px; }
 .provider h2 { font-size:34px; }
 .philosophy { padding:26px; }
 .care-section { padding-block:52px; }
 .section-heading { display:block; }
 .section-heading > p { max-width:none; margin-top:18px; }
 .cards { grid-template-columns:1fr; gap:18px; }
 .card { padding:28px; }
 .photos { padding-bottom:0; }
 .gallery-heading h3 { font-size:25px; }
 .gallery-track { gap:16px; }
 .gallery-track figure { flex-basis:100%; }
 .contact { padding:28px 18px; border-radius:24px; gap:28px; }
 #inquiry-form { padding:24px 18px; }
 .mobile-contact { display:flex; margin:24px 18px 0; border:1px solid var(--line); border-radius:14px; background:#f6eef8; }
 .mobile-contact a { flex:1; text-align:center; padding:14px 8px; color:var(--purple); font-weight:700; font-size:14px; }
 footer { flex-direction:column; text-align:center; gap:12px; }
}
@media(max-width:540px) { .form-grid { grid-template-columns:1fr; } .hero-actions { flex-direction:column; align-items:stretch; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
