/* Cocotto: bright colours, rounded paper-like surfaces and quiet geometric accents. */
:root{--ink:#294e5c;--blue:#08a9ce;--deep:#007d99;--light:#eaf8fc;--yellow:#ffe17b;--pink:#f8cbdc;--line:#d4e8ec}
body{background:#fffefb}
.header{background:rgba(255,255,255,.97);border-bottom:0;box-shadow:0 4px 24px #284f5907}
.nav-contact>a,.cta-button,.submit-button{box-shadow:0 5px 0 #007c9820}
.dropdown-menu{border-radius:18px;box-shadow:0 10px 28px #254c5910}
.hero{position:relative;isolation:isolate;padding-top:48px;background:radial-gradient(circle at 17px 17px,#57b5cd20 1.2px,transparent 1.5px) 0 0/27px 27px,linear-gradient(115deg,#f1fbff 0%,#f1fbff 48%,#fff9e8 100%);padding-bottom:40px;border-radius:0 0 70px 70px}
.hero:before{content:'';position:absolute;z-index:-1;width:230px;height:230px;border:36px solid #ffe39085;border-radius:50%;left:-110px;top:155px;pointer-events:none}
.hero-layout{position:relative;padding-right:48px;gap:15px;grid-template-columns:43% 57%}
.hero-copy h1{color:#23566a;letter-spacing:.055em}
.hero-copy em{background:linear-gradient(transparent 73%,#ffe17b 73%,#ffe17b 94%,transparent 94%)}
.eyebrow{width:fit-content;border:1px solid #b9dfe9;background:#fff;border-radius:30px;padding:7px 17px;letter-spacing:.07em;box-shadow:0 3px 0 #b9dfe930}
.eyebrow:before{width:8px;height:8px;border-radius:50%;background:#f2c548}
.hero-visual{margin:8px 0 40px;min-height:515px}
.hero-visual:before{content:'';position:absolute;inset:16px -10px -15px 17px;background:#bbe8f2;border-radius:130px 35px 100px 35px;transform:rotate(2deg);z-index:-1}
.hero-photo{border:8px solid #fff;border-radius:130px 35px 100px 35px;box-shadow:0 10px 25px #214b5910}
.hero-visual:after{content:'';position:absolute;width:80px;height:24px;background:repeating-linear-gradient(135deg,#f7c2d9 0 5px,#fcdce9 5px 10px);right:46px;top:-2px;transform:rotate(9deg);border-radius:3px;opacity:.9}
.photo-caption{bottom:28px;left:30px;right:42px}
.round-note{right:20px;bottom:55px;box-shadow:0 6px 0 #e6be5350;border:6px solid white;outline:1px dashed #b28b2f;outline-offset:-13px}
.admission-notice{position:relative;border:1px solid #d9e8e7;background:#fff;border-radius:22px;padding:22px 28px;margin-top:25px;box-shadow:0 6px 0 #acd5df20;gap:20px}
.notice-label{border-radius:12px 5px 12px 5px;padding:8px 12px;transform:rotate(-2deg)}
.entity-summary{padding-top:27px}.entity-summary-lead{color:#446571}.entity-fact dd{font-size:13px}
.section-kicker{display:table;background:#eaf7fb;border-radius:30px;padding:3px 13px;font-size:12px;letter-spacing:.1em}
.section-title{letter-spacing:.07em}
.section-title .title-icon{background:#dff4fa;border-radius:14px;padding:10px;box-sizing:content-box;vertical-align:-13px;transform:rotate(-7deg);margin-right:15px}
.policy{background:#fffefb}
.policy-goals{gap:18px}.goal-item{border-bottom:1px dashed #bddce5;padding-bottom:20px}
.photo-strip img{border:5px solid white;box-shadow:0 5px 18px #2c535518;border-radius:45% 45% 22px 22px}
.photo-strip figure:first-child{transform:rotate(-5deg)}.photo-strip figure:last-child{transform:rotate(5deg)}
.features{background:#edf8fc;border-radius:65px;margin:0 24px}
.features-grid{gap:24px}.feature-card{border:0;border-radius:28px 28px 28px 8px;background:#fff;padding:28px;box-shadow:0 5px 0 #9ecbd91c}
.feature-card:nth-child(3n+2){border-radius:28px 8px 28px 28px;background:#fffaf0}
.feature-card:nth-child(3n){background:#fff5f9}
.feature-icon{display:inline-flex;align-items:center;justify-content:center;font-size:25px;width:48px;height:48px;border-radius:50%;background:#e9f8fc;color:var(--deep);margin-bottom:18px}
.feature-card:nth-child(3n+2) .feature-icon{background:#ffeab0;color:#816222}.feature-card:nth-child(3n) .feature-icon{background:#f9dce8;color:#9e5271}
.facility{background:radial-gradient(circle at 98% 15%,#fff2bf 0 95px,transparent 96px),radial-gradient(circle at 0% 85%,#e7f6fb 0 100px,transparent 101px)}
.facility-image{border-radius:42px 42px 42px 12px;border:7px solid white;box-shadow:0 7px 22px #22495312}
.facility-item:nth-child(even) .facility-image{border-radius:42px 12px 42px 42px}
.facility-content{padding:22px 10px 0}.facility-content h3{display:table;background:linear-gradient(transparent 70%,#ffeaa7 70%)}
.overview{border-radius:65px;margin:0 24px;background:#087f99;background-image:radial-gradient(circle at 18px 18px,#ffffff17 1px,transparent 1.5px);background-size:28px 28px}
.overview .section-kicker{color:white;background:#ffffff1a}.overview .section-title .title-icon{background:#ffffff1a;color:#fff}.overview .feature-step-number{color:#ffe17b}
.fees{background:radial-gradient(ellipse at 0 70%,#fff5d6 0 130px,transparent 131px)}
.fees-details{padding:24px;border-radius:24px;background:#fff9e6;border:1px solid #f5e6b5}.fees-notes{padding-top:20px}
.schedule{margin:0 24px;border-radius:65px;background:repeating-linear-gradient(90deg,#f0f9fc 0 34px,#eaf6fa 34px 35px)}
.schedule-content{padding:25px 32px;background:#fff;border-radius:0 0 28px 28px;box-shadow:0 7px 0 #acd5df20}.schedule-tabs{margin-bottom:0;border-bottom:0}.tab-button{border-radius:24px 24px 0 0;background:#dceff5}.tab-button.active{background:#087f99}.timeline-item{border-bottom-style:dashed}
.admission{background:#fffefb}.document-check svg{filter:saturate(.7)}
.items-table{border-radius:18px;overflow:hidden;background:#fff}.items-table th{background:#e2f3f8}.daily-items-notes,.temp-care-notes{border:0;border-radius:20px;background:#fff3cf}
.temporary-care{background:#fff7e6;border-radius:65px;margin:0 24px}.temp-care-grid{gap:40px}.temp-care-item{padding:30px;background:#fff;border-radius:28px}.temp-care-header .material-icons{color:#b28a2c}.temp-care-notes{background:#fff0c7}
.blog-latest-thumb,.blog-thumb{border-radius:25px!important;border:5px solid white;box-shadow:0 5px 20px #294e5c12}.blog-latest-cat,.blog-cat{border-radius:20px}.blog-latest-title{font-size:19px}
.faq{background:#f0f8fc;margin:0 24px;border-radius:65px}.faq-grid{border:0}.faq-item{background:#fff;border:1px solid #dfedf2;border-radius:19px;margin-bottom:12px}.faq-question{padding:23px}.faq-answer{padding:0 60px 25px}.faq-question:before{background:#fff0b8;display:flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:50%;font-size:20px}
.contact{background:radial-gradient(circle at 17px 17px,#57b5cd20 1px,transparent 1.5px) 0 0/27px 27px}.contact-form{border:1px solid #dbe9ed;background:#fff;border-radius:32px;padding:36px;box-shadow:9px 10px 0 #e1f2f7}.form-group input,.form-group select,.form-group textarea{border-radius:12px;background:#f8fcfd}.contact-info{padding-top:15px}
.footer{background:#edf8fc;border-radius:55px 55px 0 0;border-top:0}.back-to-top{background:#fff8dc;border-color:#e6d48d}
.inner-page main{background:radial-gradient(circle at 0 0,#edf8fc 0 220px,transparent 221px)}.blog-toc,.blog-cta{border-radius:24px}.blog-post-thumbnail img{border-radius:30px}.blog-filter{background:white}.blog-article-header{padding-top:12px}
@media(max-width:1200px){.hero-layout{padding-right:35px;gap:10px}.feature-card{padding:24px}.features,.overview,.schedule,.temporary-care,.faq{margin-inline:16px}.fees-details{padding:20px}.hero-copy h1{font-size:34px}}
@media(max-width:960px){.hero-layout{grid-template-columns:46% 54%;padding-right:28px;gap:0}.hero-copy h1{font-size:28px}.eyebrow{padding:6px 10px;font-size:11px}.hero-photo{border-width:6px}.hero-visual{min-height:500px}.admission-notice{grid-template-columns:150px 1fr}.contact-info{padding-top:0}.temp-care-grid{gap:20px}.temp-care-item{padding:24px}}
@media(max-width:760px){
 .hero{padding-top:26px;padding-bottom:30px;border-radius:0 0 35px 35px}.hero-layout{padding:0;gap:0;align-items:center}.hero-copy{width:100%;max-width:100%;padding:8px 24px 22px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.hero-copy h1{font-size:clamp(26px,7.4vw,43px);letter-spacing:.035em;white-space:normal;text-align:center;width:100%}.hero-copy .eyebrow{margin-inline:auto;align-self:center}.hero-copy .hero-lead,.hero-copy .hero-description,.hero-copy .hero-smallprint{text-align:center;width:100%}.hero-copy>.cta-button{margin-inline:auto;align-self:center}.hero:before{width:140px;height:140px;border-width:24px;left:50%;top:120px;margin-left:-70px;opacity:.55}.eyebrow{font-size:11px;margin-bottom:20px;padding:5px 12px}.hero-visual{width:calc(100% - 40px);margin:8px 20px 24px;min-height:315px}.hero-photo{border-radius:65px 24px 65px 24px;border-width:5px}.hero-visual:before{border-radius:65px 24px 65px 24px;inset:8px -4px -9px 10px}.hero-visual:after{width:65px;height:19px;right:35px;top:-3px}.photo-caption{font-size:9px;left:19px;right:26px;bottom:22px}.photo-caption span{display:none}.round-note{width:127px;height:127px;bottom:42px;right:13px;outline-offset:-10px}.round-note strong{font-size:25px}.round-note span{font-size:9px}.admission-notice{grid-template-columns:1fr auto;padding:17px;margin-top:10px;gap:12px;border-radius:20px}.notice-label{font-size:10px;padding:5px 8px}.admission-notice>a{font-size:11px}.admission-notice>a span{margin-left:5px}.hero-title{font-size:13px}.entity-fact dd{font-size:12px}
 .features,.overview,.schedule,.temporary-care,.faq{margin-inline:10px;border-radius:35px}.home-page main>section:not(.hero){padding-block:58px}.section-title{font-size:25px;letter-spacing:.02em}.section-title .title-icon{padding:7px;font-size:24px;width:24px;height:24px;border-radius:12px;vertical-align:-9px;margin-right:10px}.section-kicker{font-size:10px;padding:3px 10px}.feature-card{padding:22px;grid-template-columns:35px 1fr;gap:0 14px;border-radius:23px 23px 23px 7px}.feature-icon{font-size:20px;width:35px;height:35px;margin:0}.feature-card h3{font-size:17px}.features-grid{gap:16px}.facility-image{border-width:5px;border-radius:30px 30px 30px 10px}.facility-item:nth-child(even) .facility-image{border-radius:30px 10px 30px 30px}.facility-content{padding:18px 4px 0}.fees-details{padding:22px}.fees-notes{padding-top:0}.schedule-content{padding:12px 18px 20px;border-radius:0 0 22px 22px}.timeline-content{gap:14px}.timeline-content .time{font-size:22px;width:58px}.activity{font-size:13px}.tab-button{font-size:12px;gap:4px;border-radius:16px 16px 0 0}.tab-button svg{width:16px}#schedule .section-title{font-size:21px}.temp-care-item{padding:22px}.temp-care-grid{gap:18px}.price-amount{font-size:23px}.faq-question{padding:18px 14px;gap:10px}.faq-question:before{width:28px;height:28px;font-size:18px}.faq-question h3{font-size:14px}.faq-answer{padding:0 18px 20px;font-size:14px}.faq-item{border-radius:16px}.contact-form{padding:24px 19px;border-radius:24px;box-shadow:5px 6px 0 #e1f2f7}.contact .section-title{font-size:22px}.footer{border-radius:35px 35px 0 0}.dropdown-menu{border-radius:0;box-shadow:none}.nav-menu{border-radius:0 0 28px 28px}.nav-toggle{border-radius:15px;background:#eaf7fb}.blog-latest-title{font-size:18px}
}

/* Separate foreground, photo and backing layers without moving the copy. */
.hero-photo{
    translate:0 var(--depth-photo,0px);
    transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
    transition:translate .18s ease-out,transform .45s var(--soft-ease),box-shadow .45s ease;
    box-shadow:0 14px 28px -16px #214b5940;
}
.hero-visual:before{translate:0 var(--depth-back,0px);transition:translate .2s ease-out}
.hero:before{translate:0 var(--depth-back,0px);transition:translate .2s ease-out}
.round-note{translate:0 var(--depth-badge,0px);transition:translate .2s ease-out;box-shadow:0 8px 0 #e6be5335,0 12px 22px -13px #77632965}
.facility-image{
    translate:0 var(--depth-photo,0px);
    transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));
    transition:translate .18s ease-out,transform .45s var(--soft-ease),box-shadow .45s ease;
    box-shadow:0 12px 24px -15px #22495345;
}
@media(hover:hover) and (pointer:fine){
    .hero-visual:hover .hero-photo{box-shadow:0 20px 35px -17px #214b5950}
    .facility-image:hover{box-shadow:0 19px 30px -15px #22495355}
}
@media(prefers-reduced-motion:reduce){
    .hero-photo,.hero-visual:before,.hero:before,.round-note,.facility-image{translate:none!important;transition:none!important}
    .hero-photo,.facility-image{transform:none!important}
}
@media print{.hero-photo,.hero-visual:before,.hero:before,.round-note,.facility-image{translate:none!important}.hero-photo,.facility-image{transform:none!important}}

/* Contact confirmation modal */
body.contact-modal-open{overflow:hidden}
.contact-modal[hidden]{display:none!important}
.contact-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}
.contact-modal-backdrop{position:absolute;inset:0;background:rgba(31,70,81,.42);backdrop-filter:blur(2px)}
.contact-modal-dialog{position:relative;z-index:1;width:min(520px,100%);max-height:min(88vh,720px);overflow:auto;background:#fffefb;border:1px solid #d4e8ec;border-radius:28px;box-shadow:0 18px 48px #214b5940;padding:28px 26px 24px;outline:none}
.contact-modal-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:50%;background:#eaf8fc;color:#007d99;font-size:24px;line-height:1;cursor:pointer}
.contact-modal-kicker{display:inline-block;margin:0 0 10px;padding:4px 12px;border-radius:999px;background:#eaf8fc;color:#007d99;font-size:12px;font-weight:700;letter-spacing:.08em}
.contact-modal-dialog h3{margin:0 0 12px;font-size:22px;line-height:1.5;color:#23566a;letter-spacing:.04em}
.contact-modal-lead{margin:0 0 18px;font-size:14px;line-height:1.9;color:#446571}
.contact-modal-summary{margin:0 0 22px;padding:16px 18px;border:1px solid #d4e8ec;border-radius:18px;background:#fff;display:grid;grid-template-columns:34% 1fr;gap:10px 14px}
.contact-modal-summary dt{margin:0;color:#007d99;font-size:12px;font-weight:700}
.contact-modal-summary dd{margin:0;font-size:14px;line-height:1.7;color:#294e5c;word-break:break-word;white-space:pre-wrap}
.contact-modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.contact-modal-primary,.contact-modal-secondary{min-height:46px;padding:10px 20px;border-radius:999px;font-weight:700;font-size:14px;cursor:pointer}
.contact-modal-primary{border:1px solid #08a9ce;background:#08a9ce;color:#fff}
.contact-modal-secondary{border:1px solid #d4e8ec;background:#fff;color:#294e5c}
.contact-modal-primary:disabled{opacity:.65;cursor:wait}
.contact-modal-panel[hidden]{display:none!important}
.contact-modal-panel{text-align:left}
.contact-modal-panel[data-panel="loading"],.contact-modal-panel[data-panel="done"]{text-align:center;padding:18px 8px 8px}
.contact-modal-spinner{width:52px;height:52px;margin:8px auto 18px;border:4px solid #d4e8ec;border-top-color:#08a9ce;border-radius:50%;animation:contact-spin 0.9s linear infinite}
.contact-modal-icon{width:58px;height:58px;margin:8px auto 16px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:700}
.contact-modal-icon.is-success{background:#eaf8fc;color:#007d99}
.contact-modal-icon.is-error{background:#fff0f3;color:#9e5271}
@keyframes contact-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){
  .contact-modal{padding:12px}
  .contact-modal-dialog{padding:24px 18px 20px;border-radius:22px}
  .contact-modal-summary{grid-template-columns:1fr;gap:4px}
  .contact-modal-actions{flex-direction:column-reverse}
  .contact-modal-primary,.contact-modal-secondary{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .contact-modal-spinner{animation:none;border-top-color:#08a9ce}
}
