/* A softer reading voice, with small moments of play. */
@font-face{font-family:Nunito;src:url('fonts/nunito-latin.woff2') format('woff2');font-weight:200 1000;font-style:normal;font-display:swap}
:root{--font-body:Nunito,ui-rounded,system-ui,sans-serif}
body,.prose{font-family:var(--font-body);font-size:18px;line-height:1.75;font-weight:450}
h1,h2,h3,h4{font-weight:550;letter-spacing:-.012em;line-height:1.16}
.hero h1{font-weight:580;font-size:clamp(3.2rem,5.2vw,5.1rem);line-height:1.1}
.eyebrow,.hero .eyebrow,.location-copy .eyebrow,.page-intro .eyebrow{font-family:var(--font-display);font-weight:450;font-size:17px;letter-spacing:.015em;text-transform:none;line-height:1.45;margin-bottom:18px}
.hero .eyebrow{color:#d9c4f0;font-size:16px;max-width:none}
.welcome-layout>.eyebrow{font-size:21px;max-width:240px}
.hero-intro{font-size:21px;line-height:1.7;color:#f3eaf9}
.intro{font-size:22px;line-height:1.7}
.hero-facts{font-size:14px;margin-top:34px;line-height:1.7}
.hero-facts strong{font-weight:750}
.button,button[type=submit],input[type=submit]{font-family:var(--font-display);font-size:18px;font-weight:500;border-radius:18px 15px 19px 14px;padding:13px 25px;box-shadow:0 4px 0 #29136020}
.hero-link,.text-link,.inline-links a{font-size:17px;font-weight:750}
.button-yellow{box-shadow:0 5px 0 #c3933480}
.hero-actions{gap:27px}
.utility-bar{font-size:13px}
.nav-list{font-size:14px;gap:18px;font-weight:800}
.parent-login{font-size:13px;border-radius:14px;font-weight:800}
.brand>span{font-size:23px;font-weight:550}
.frame-note{font-size:21px;font-weight:450}
.values-grid p,.section-heading>p,.location-copy p,.parent-note p,.parent-note li,.visit-cta p:last-child{font-size:17px;line-height:1.7}
.values-grid h2{font-weight:550;font-size:32px}
.values-grid article{padding-inline:22px}
.branch-tag{font-size:12px;letter-spacing:.035em;border-radius:9px}
.experience-list{font-size:16px;line-height:1.6}
.play-caption strong{font-weight:580}
.album-year span,.gallery-teasers span{font-size:16px}
.quote-grid p{font-size:18px;line-height:1.8}
.quote-grid figcaption{font-size:15px}
.resource-links a{font-size:17px;border-radius:18px}
.breadcrumbs{font-size:14px}
.small,small,.resource-source,.jan-policy-meta,.jan-meta{font-size:14px}
.document-details,.prose table,label,.search-form label,.jan-policy-link{font-size:16px}
.aside-login small{font-size:13px}
.site-footer{font-size:16px;line-height:1.75}
.footer-brand p,.tapestry-help,.footer-bottom{font-size:13px}
.footer-grid{gap:30px}
.team-section{margin:45px 0 85px}
.team-section:last-child{margin-bottom:15px}
.team-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:35px}
.team-heading .eyebrow{margin-bottom:9px}
.team-heading h2{font-size:42px;margin:0}
.team-heading>.flower{width:66px;margin-right:22px;flex-shrink:0}
.staff-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px}
.staff-grid .staff-card{padding:0;border:0;text-align:center;min-width:0}
.staff-portrait{position:relative;background:#ece1f3;border:8px solid white;border-radius:48% 46% 20px 22px;outline:1px dashed #c7b2d8;outline-offset:5px;max-width:270px;margin:0 auto 24px;overflow:hidden;box-shadow:0 7px 0 #e4d8c4}
.staff-card:nth-child(3n+2) .staff-portrait{background:#f6e7b6;border-radius:46% 50% 22px 20px}
.staff-card:nth-child(3n+3) .staff-portrait{background:#dce9dc;border-radius:50% 44% 20px 22px}
.staff-portrait .staff-photo{border-radius:0;object-fit:contain;object-position:center bottom;width:auto;height:238px;max-width:100%;margin:12px auto 0}
.staff-grid h3{font-size:27px;font-weight:550;line-height:1.2;margin:0 0 8px}
.staff-grid p{font-size:17px;line-height:1.5;margin:0 auto 12px;max-width:280px}
.staff-role{color:var(--muted)}
.staff-caption{padding:0 12px}
/* Entrance motion finishes in under five seconds; all content starts visible. */
.hero-star{animation:none}
@keyframes jan-hop{0%,100%{translate:0 0;scale:1}28%{translate:0 -15px;scale:1.05 .96}52%{translate:0 2px;scale:.98 1.03}72%{translate:0 -6px;scale:1.02}88%{translate:0 0;scale:1}}
@keyframes jan-wiggle{0%,100%{rotate:0deg}25%{rotate:-12deg}58%{rotate:9deg}80%{rotate:-4deg}}
@media(min-width:1041px) and (prefers-reduced-motion:no-preference){
 .playful-in{animation:jan-hop 1100ms both cubic-bezier(.22,.7,.32,1);animation-delay:var(--play-delay,0ms)}
 .hero-star.playful-in,.hero-doodle.playful-in{animation:jan-hop 1400ms 2 both;animation-delay:var(--play-delay,0ms)}
 .button,button[type=submit],input[type=submit],.staff-portrait{transition:translate 420ms cubic-bezier(.2,1.8,.4,1),scale 420ms cubic-bezier(.2,1.8,.4,1),background-color 180ms,box-shadow 180ms}
 .button:hover,button[type=submit]:hover{transform:none;translate:0 -4px;scale:1.025}
 .button:active,button[type=submit]:active{translate:0 2px;scale:.98}
 .staff-card:hover .staff-portrait{translate:0 -5px;scale:1.025}
 .location-feature:hover .flower,.play-composition:hover .toy-block,.gallery-note:hover .flower{animation:jan-wiggle 950ms ease-in-out}
 .is-background .playful-in,.playful-in.is-offscreen{animation-play-state:paused}
}
@media(min-width:1041px) and (max-width:1200px){
 .nav-list{font-size:12px;gap:12px}.parent-login{font-size:12px;padding-inline:10px}.brand>span{font-size:20px}.brand small{font-size:15px}.primary-nav{gap:13px}
 .hero-actions{gap:16px}.hero-link{font-size:16px}.hero .eyebrow{font-size:15px}
}
@media(max-width:1040px){
 .nav-list{font-size:17px}.parent-login{font-size:16px}.hero h1{font-size:clamp(2.6rem,5.3vw,3.5rem)}
 .hero-intro{font-size:19px}.hero-facts{font-size:13px}.hero .eyebrow{font-size:15px}
 .staff-grid{gap:36px 24px}.staff-portrait{max-width:230px}.staff-caption{padding:0}.staff-grid h3{font-size:25px}
}
@media(max-width:767px){
 body,.prose{font-size:17px}.hero h1{font-size:clamp(2.5rem,10.2vw,4.1rem);font-weight:560}
 .hero-intro{font-size:19px}.hero .eyebrow{font-size:14px;letter-spacing:0}.eyebrow,.page-intro .eyebrow{font-size:16px}.welcome-layout>.eyebrow{font-size:18px;max-width:none}
 .intro{font-size:20px}.hero-actions .button{font-size:17px;padding:12px 20px}.hero-link{font-size:16px}.hero-actions{gap:12px 20px}
 .hero-facts{font-size:12px;flex-wrap:wrap;gap:8px 0}.hero-facts span{padding-inline:12px}.hero-facts span:last-child{width:auto}
 .frame-note{font-size:18px}.utility-inner{font-size:12px}.brand>span{font-size:21px}.brand small{font-size:16px}
 .values-grid{grid-template-columns:minmax(0,1fr)}.values-grid article{padding:0;grid-template-columns:65px minmax(0,1fr)}.values-grid h2{font-size:28px}.values-grid p,.location-copy p{font-size:17px}.experience-list{font-size:15px}.album-year span{font-size:13px}.quote-grid p{font-size:17px}
 .resource-links a{font-size:16px}.breadcrumbs{font-size:13px}.document-details,.prose table{font-size:14px}.footer-grid{font-size:15px;gap:30px 20px}.footer-brand p{font-size:13px}
 .team-section{margin-block:35px 60px}.team-heading h2{font-size:34px}.team-heading>.flower{width:48px;margin-right:4px}
 .staff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}.staff-portrait{border-width:5px;margin-bottom:20px;outline-offset:3px}
 .staff-portrait .staff-photo{width:100%;height:auto;aspect-ratio:183/238;margin-top:8px}
 .staff-grid h3{font-size:22px}.staff-grid p{font-size:15px;line-height:1.5}
}
@media(max-width:359px){
 .values-grid article{grid-template-columns:50px minmax(0,1fr);column-gap:16px}.value-icon{width:50px;height:50px;font-size:36px}.value-icon.communication{font-size:50px}
 .hero h1{font-size:clamp(2.1rem,10vw,2.5rem)}.hero-facts{font-size:12px}.hero-facts span:last-child{width:100%;padding-left:0}.brand>span{font-size:18px}.brand small{font-size:14px}.utility-inner{font-size:11px}.experience-list{grid-template-columns:1fr}.staff-grid{grid-template-columns:1fr}.staff-portrait{max-width:220px}.staff-grid h3{font-size:25px}
}
@media(prefers-reduced-motion:reduce){.playful-in{animation:none!important}.button,.staff-portrait{transition:none!important}.staff-card:hover .staff-portrait{translate:none;scale:none}}

/* Complete, non-repeating illustrations sit in deliberate spaces around content. */
main#main{background-image:none}
.welcome .welcome-layout>.eyebrow:after{content:'';display:block;width:100%;max-width:255px;aspect-ratio:320/210;margin-top:42px;background:url('images/doodle-rainbow.svg') center/contain no-repeat}
.values-section{background-image:radial-gradient(ellipse at 50% 100%,#f0e3f244,transparent 70%)}
.values-section>.container>.eyebrow:after{content:'';display:inline-block;width:38px;height:38px;vertical-align:middle;margin-left:14px;background:url('images/doodle-flower.svg') center/contain no-repeat}
.intro-flower{width:100px;right:5%;bottom:22px;opacity:.3}
.visit-cta>.flower{display:none}
/* The outer margins can hold larger accents on wide screens; they never tile. */
@media(min-width:1540px){
 .values-section{background-image:url('images/doodle-flower.svg'),radial-gradient(ellipse at 50% 100%,#f0e3f244,transparent 70%);background-size:150px 150px,auto;background-position:right max(24px,calc((100% - 1660px)/2)) bottom 65px,center;background-repeat:no-repeat}
 .values-section>.container>.eyebrow:after{display:none}
 .gallery-preview{background:url('images/doodle-stars.svg') left max(24px,calc((100% - 1650px)/2)) top 280px/140px 102px no-repeat}
 body:not(.home) main#main{background-image:url('images/doodle-rainbow.svg'),url('images/doodle-flower.svg');background-size:130px 86px,110px 110px;background-position:left max(20px,calc((100% - 1650px)/2)) top 65%,right max(20px,calc((100% - 1620px)/2)) top 40%;background-repeat:no-repeat}
}
.section{padding-block:68px}
.hero{padding-block:58px 70px}
.welcome-layout{grid-template-columns:minmax(160px,.65fr) minmax(0,2fr);gap:50px}
.values-section{padding-block:12px 58px}
.page-intro{padding-bottom:42px}
.breadcrumbs{margin-bottom:26px}
.page-layout,.location-detail,.resource-detail{padding-block:44px}
.team-section{margin-block:30px 60px}
.team-heading{margin-bottom:28px}
.visit-cta{padding-block:45px}
.location-detail{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:42px;align-items:start}
.location-main{min-width:0}
.location-main .branch-quick-facts{gap:14px;margin-bottom:26px;padding-bottom:24px}
.branch-quick-facts span{font-size:13px}
.location-main .branch-quick-facts strong{font-size:25px}
.branch-form-jump{display:none}
.location-main .prose h2:first-child{margin-top:0}
.location-main .prose h2{margin-top:28px}
.location-main .prose p{margin-bottom:1em}
.location-main .branch-contact{padding:23px 26px;margin:25px 0;background:#fffaf1ed;border:1px dashed #b9a0cc;border-radius:24px 18px 26px 18px}
.location-main .branch-contact h2{font-size:30px;margin-bottom:14px}
.location-main .branch-contact address{margin-bottom:12px}
.branch-contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 25px}
.branch-contact-links>a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere;max-width:100%}
.location-main .branch-contact .small{margin:14px 0 0}
.location-main .resource-links{gap:12px;margin-bottom:0}
.location-main .resource-links a{padding:14px 18px;font-size:16px}
.branch-enquiry{background:#fffdf7f5;border:2px solid #d8c3e8;border-radius:32px 26px 34px 25px;padding:30px;box-shadow:0 7px 0 #e6d9c7;position:relative;scroll-margin-top:22px;min-width:0}
.branch-enquiry:before{content:'';position:absolute;left:32px;right:32px;top:0;height:5px;border-radius:0 0 12px 12px;background:linear-gradient(90deg,#e9adcc 0 25%,#f3d879 25% 50%,#a3cfb0 50% 75%,#bca1dd 75%)}
.branch-enquiry-heading .eyebrow{font-size:16px;margin-bottom:12px}
.branch-enquiry-heading h2{font-size:38px;margin-bottom:16px}
.branch-enquiry-heading>p:last-child{font-size:17px;line-height:1.6;margin-bottom:20px}
.branch-enquiry .jan-enquiry-form>p:first-of-type{font-size:14px;line-height:1.55;margin-bottom:20px;color:var(--muted)}
.branch-enquiry .jan-form-field{margin-bottom:17px}
.branch-enquiry label{font-size:16px;margin-bottom:6px}
.branch-enquiry textarea{min-height:125px;height:125px}
.branch-enquiry .jan-privacy-note{font-size:14px;line-height:1.55;margin:4px 0 20px}
.branch-enquiry button[type=submit]{width:100%}
.branch-enquiry .jan-form-success,.branch-enquiry .jan-form-errors{margin:0 0 20px;padding:20px}
.branch-enquiry .jan-form-success h2,.branch-enquiry .jan-form-errors h2{font-size:29px}
@media(min-width:1600px){.hero{padding-block:70px 85px}}
@media(min-width:768px) and (max-width:1040px){
 .location-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px}
 .branch-enquiry{padding:24px}.branch-enquiry-heading h2{font-size:32px}
 .location-main .branch-contact{padding:20px}.location-main .resource-links{grid-template-columns:1fr}
 .location-main .branch-quick-facts{grid-template-columns:1fr}.location-main .branch-quick-facts strong{font-size:22px}
}
@media(max-width:767px){
 .welcome .welcome-layout>.eyebrow{min-height:66px;padding-right:106px;max-width:none;background:url('images/doodle-rainbow.svg') right center/90px auto no-repeat}
 .welcome .welcome-layout>.eyebrow:after{display:none}
 .welcome .welcome-layout>.eyebrow br{display:block}
 .intro-flower{width:56px;right:20px;top:20px;bottom:auto;opacity:.22}
 .section{padding-block:44px}.hero{padding-block:42px 55px}.hero-grid{gap:46px}
 .welcome-layout{grid-template-columns:1fr;gap:12px}.values-section{padding-block:10px 44px}
 .page-intro{padding-block:22px 30px}.page-intro h1{margin-bottom:16px}.breadcrumbs{margin-bottom:20px}
 .page-layout,.location-detail,.resource-detail{padding-block:32px}
 .location-detail{grid-template-columns:1fr;gap:30px}
 .branch-form-jump{display:inline-flex;margin:0 0 25px;font-size:16px}
 .location-main .branch-quick-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
 .location-main .branch-quick-facts>div{display:block;min-width:0}.location-main .branch-quick-facts span{min-height:3.4em}.location-main .branch-quick-facts strong{margin-top:5px;white-space:nowrap}
 .location-main .branch-quick-facts strong{font-size:20px}.branch-quick-facts span{font-size:12px}
 .location-main .branch-contact{padding:20px}.branch-enquiry{padding:25px 21px;border-radius:26px 20px 27px 22px}
 .branch-enquiry-heading h2{font-size:34px}.branch-enquiry:before{left:24px;right:24px}
 .team-section{margin-block:26px 46px}.visit-cta{padding-block:35px}
}
@media(max-width:359px){
 .location-main .branch-quick-facts strong{font-size:17px}.branch-quick-facts span{font-size:11px}
 .hero-flower{width:70px;right:-8px;bottom:-16px}
 .location-main .resource-links{grid-template-columns:1fr}.branch-enquiry{padding:24px 17px}.branch-enquiry-heading h2{font-size:31px}
}

/* A useful family library, with space for source attribution and everyday ideas. */
.resources-hub{padding-block:42px 54px}
.resources-welcome{display:grid;grid-template-columns:1.25fr .85fr;align-items:center;gap:60px;margin-bottom:44px}
.resources-welcome h2{font-size:clamp(34px,3.5vw,46px);margin-bottom:20px}
.resources-welcome p:not(.eyebrow){max-width:620px;font-size:19px}
.resources-welcome>img{width:100%;max-width:390px;justify-self:center;mix-blend-mode:multiply}
.resource-library{scroll-margin-top:24px}
.resource-library>p{max-width:800px;margin-bottom:30px;font-size:20px}
.family-resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.family-resource-card{display:flex;flex-direction:column;min-width:0;padding:29px 32px;background:#efe5f4ba;border:1px solid #d9c9e5;border-radius:24px 18px 24px 18px}
.family-resource-card:nth-child(4n+2){background:#e4efdfb8;border-color:#c6dcc5}
.family-resource-card:nth-child(4n+3){background:#fff0c6b8;border-color:#e9dcae}
.family-resource-card:nth-child(4n+4){background:#f8e4e7a8;border-color:#e6cad4}
.family-resource-card>.eyebrow{margin:0 0 14px;font-size:16px}
.family-resource-card h2{font-size:33px;margin:0 0 16px}
.family-resource-card h2 a{text-decoration:none}
.family-resource-card h2 a:hover{text-decoration:underline;text-underline-offset:5px}
.family-resource-card>p{font-size:18px;line-height:1.65;margin-bottom:16px}
.family-resource-card>.resource-card-source{font-size:14px;color:var(--muted);line-height:1.55}
.family-resource-card>.text-link{margin-top:auto;align-self:flex-start}
.resources-essentials{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:45px;padding:40px 0;margin-top:42px;border-top:1px dashed #c9b5d6}
.resources-essentials h2{font-size:35px;margin-bottom:16px}
.resources-essentials p{margin-bottom:0;font-size:17px}
.resources-essentials .eyebrow{margin-bottom:12px}
.resources-essentials .resource-links{margin-bottom:0}
.resources-help{display:flex;align-items:center;justify-content:space-between;gap:30px;border-radius:20px;padding:24px 28px;background:#e3eddf}
.resources-help p{margin:0;max-width:800px;font-size:17px}.resources-help .text-link{flex-shrink:0}
.resource-source>span{display:block;margin-top:5px}
@media(max-width:767px){
 .resources-hub{padding-block:30px 36px}.resources-welcome{grid-template-columns:1fr;gap:16px;margin-bottom:30px}
 .resources-welcome h2{font-size:34px}.resources-welcome p:not(.eyebrow){font-size:18px}.resources-welcome>img{max-width:280px}
 .resource-library>p{font-size:18px}.family-resource-grid{grid-template-columns:1fr;gap:18px}
 .family-resource-card{padding:25px 23px}.family-resource-card h2{font-size:29px}.family-resource-card>p{font-size:17px}.family-resource-card>.resource-card-source{font-size:14px}
 .resources-essentials{grid-template-columns:1fr;gap:22px;margin-top:30px;padding-block:30px}.resources-essentials h2{font-size:31px}
 .resources-essentials .resource-links a{font-size:15px;padding:15px}.resources-help{display:block;padding:22px}.resources-help p{margin-bottom:16px}
}

/* Editable availability: quiet colour, complete wording, no moving ticker. */
.availability-banner{background:#ede5f5;border-bottom:1px solid #29136014;color:var(--purple)}
.availability-inner{display:flex;justify-content:center;gap:0}
.availability-message{display:flex;align-items:center;gap:13px;flex:1;min-width:0;padding:15px 22px;color:inherit;text-decoration:none;transition:background .18s ease}
.availability-message+.availability-message{border-left:1px solid #29136020}
.availability-message:hover{background:#ffffff65}
.availability-star{color:#745098;font-size:27px;flex-shrink:0}
.availability-copy{display:grid;gap:2px;min-width:0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.availability-copy strong{font:550 19px/1.3 var(--font-display)}
.availability-link{margin-left:auto;white-space:nowrap;font-size:14px;font-weight:800;text-decoration:underline;text-underline-offset:4px}
.availability-streatham .availability-star{color:#397858}
.announcement{overflow-wrap:anywhere}
@media(max-width:760px){.availability-inner{flex-direction:column}.availability-message{padding:12px 0;gap:10px}.availability-message+.availability-message{border-left:0;border-top:1px solid #29136020}.availability-copy{font-size:14px}.availability-copy strong{font-size:17px}.availability-star{font-size:22px}.availability-link{font-size:13px}}
@media(prefers-reduced-motion:reduce){.availability-message{transition:none}}
