/* GENERATED - do not edit.
   A specificity-boosted copy of styles.css for the Elementor build.
   Every selector is prefixed with `body.elementor-page` so the design's own rules
   outrank Elementor's container defaults. Regenerate from styles.css after any
   design change. */
/* =========================================================================
   CircleTime Early Learning Centre — Muhaisnah
   Mobile-first.  Editorial, image-led, premium-calm.

   Every section has its own composition: centred hero with a wide image
   band, photo-led program cards, alternating editorial rows, a bento grid,
   one deep-toned band, a large-plus-supporting collage, a horizontal
   rhythm strip, and an irregular gallery.  No section repeats another.

   Primary CTA: muted blue ground, warm muted gold lettering.
   The logo is rendered exactly as supplied — no filter, mask, transform,
   recolouring or crop; aspect ratio locked at its native 254 x 65.
   ========================================================================= *//* ---------- 1. TOKENS ---------- */:root{/* Brand, sampled from the logo (logo use only) *//* The two blues sampled from the logo, used for the CTA two-tone. *//* logo inner ring + "Time" wordmark *//* logo outer ring                   *//* Surfaces *//* warm off-white *//* pale blue *//* cool mist *//* soft cream *//* very light aqua *//* Hero-only accents — CircleTime tones, used by the hero composition *//* Card washes *//* Hairlines *//* Ink *//* deep navy-steel *//* links       5.3:1           *//* highlight   3.9:1 large     *//* CTA — logo blue ground; navy label (gold is unreadable on this blue),
     gold arrow inside a navy token where it reads at 8.4:1. *//* AA-passing alternative — 5.1:1 *//* client-specified label colour     *//* Deep band + footer *//* Icon chips *//* Type *//* Shape & motion *//* Layout */--brand-blue:#26ABE2; --brand-gold:#FFD305; --brand-aqua:#8FD2E4;
  
  --ct-blue:#26ABE2;       
  --ct-blue-lt:#4BC1F0;    

  
  --white:#FFFFFF;
  --canvas:#FCFCFA;        
  --panel:#FFFFFF;
  --band-blue:#F1F8FD;     
  --band-mist:#F5F8FA;     
  --band-cream:#FBF7F0;    
  --band-teal:#F0F7F7;     
  
  --hero-peach:#FBE4DA;
  --hero-mint:#D8EDE2;
  --hero-wave:#EAF4FA;
  --sage:#8FD2E4;
  --peach:#FBE4DA;

  
  --w-blue:#EFF7FD; --w-mint:#EFF8F4; --w-peach:#FDF3EE;
  --w-lav:#F4F1FA;  --w-cream:#FDF6E7; --w-teal:#EDF6F6;

  
  --b-hair:#E7ECF1; --b-blue:#D9EBF7; --b-cream:#F0E3C6; --b-teal:#D7EAEA;

  
  --ink:#16324B;        
  --ink-2:#26405A;
  --slate:#5C6B7E;
  --slate-soft:#5E6B82;
  --blue-ink:#0B6F9A;   
  --teal-ink:#2F7A80;
  --amber-ink:#B07100;  

  
  --cta-bg:var(--ct-blue); --cta-bg-h:var(--ct-blue-lt);
  --cta-ink:#12304A;                 
  --cta-label:#E8C46A;               
  --cta-txt:#E8C46A; --cta-txt-h:#F4D89A;

  
  --deep:#1E4165; --deep-2:#27507A; --deep-line:#355E87;
  --deep-txt:#C6D6E5;

  --accent-gold:#F7CB45;

  
  --c-gold:#FBEFCF;  --c-gold-ink:#87620A;
  --c-aqua:#DCF0FA;  --c-aqua-ink:#0B6F9A;
  --c-coral:#FBE1DA; --c-coral-ink:#A2513A;
  --c-mint:#DAF2E7;  --c-mint-ink:#2A7250;
  --c-lav:#E9E3F5;   --c-lav-ink:#5B4B9B;
  --c-teal:#D8EFEF;  --c-teal-ink:#2F7A80;

  
  --f-head:"Baloo 2","Trebuchet MS",system-ui,sans-serif;
  --f-body:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;

  
  --r-sm:12px; --r-md:18px; --r-lg:26px; --r-xl:34px; --r-2xl:46px; --r-pill:999px;
  --sh-1:0 2px 14px rgba(22,50,75,.04);
  --sh-2:0 12px 30px rgba(22,50,75,.07);
  --sh-3:0 24px 56px rgba(22,50,75,.10);
  --sh-img:0 20px 48px rgba(22,50,75,.12);
  --ease:cubic-bezier(.22,.7,.3,1);

  
  --shell:1240px; --shell-wide:1400px;
  --gutter:20px; --sec-y:34px; --hdr-h:70px;}@media (min-width:768px){:root{--gutter:30px; --sec-y:46px;}}@media (min-width:1024px){:root{--gutter:36px; --sec-y:56px; --hdr-h:78px;}}/* ---------- 2. RESET ---------- */body.elementor-page *, body.elementor-page *::before, body.elementor-page *::after{box-sizing:border-box;}html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--hdr-h) + 20px);}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}body.elementor-page{margin:0; background:var(--canvas); color:var(--ink);
  font-family:var(--f-body); font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;}@media (min-width:768px){body.elementor-page{font-size:17px;}}body.elementor-page img{max-width:100%; height:auto; display:block;}body.elementor-page ul{margin:0; padding:0; list-style:none;}body.elementor-page p{margin:0;}body.elementor-page a{color:inherit; text-decoration:none;}body.elementor-page figure{margin:0;}body.elementor-page h1, body.elementor-page h2, body.elementor-page h3{font-family:var(--f-head); margin:0; line-height:1.1; letter-spacing:-.02em; font-weight:700;}body.elementor-page :focus-visible{outline:3px solid var(--blue-ink); outline-offset:3px; border-radius:6px;}body.elementor-page .sprite{position:absolute; width:0; height:0; overflow:hidden;}body.elementor-page .skip-link{position:absolute; left:-9999px; top:0; z-index:200; background:var(--ink); color:#fff; padding:14px 22px; border-radius:0 0 var(--r-sm) 0; font-weight:600;}body.elementor-page .skip-link:focus{left:0;}body.elementor-page .ic{width:22px; height:22px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}/* ---------- 3. LAYOUT ---------- */body.elementor-page .shell{width:100%; max-width:var(--shell); margin-inline:auto; padding-inline:var(--gutter);}body.elementor-page .shell--wide{max-width:var(--shell-wide);}body.elementor-page .sec{padding-block:var(--sec-y) calc(var(--sec-y) * .82); position:relative; overflow:clip;}body.elementor-page .band--blue{background:var(--band-blue);}body.elementor-page .band--mist{background:var(--band-mist);}body.elementor-page .band--cream{background:var(--band-cream);}body.elementor-page .band--teal{background:var(--band-teal);}body.elementor-page .band--white{background:var(--white);}/* ---------- 4. TYPE ---------- */body.elementor-page .h1{font-size:clamp(2.4rem,1.55rem + 3.7vw,4.4rem); line-height:1.02; letter-spacing:-.03em; color:var(--ink); text-wrap:balance;}body.elementor-page .h2{font-size:clamp(1.85rem,1.3rem + 2.4vw,3.1rem); line-height:1.08; letter-spacing:-.025em; color:var(--ink); text-wrap:balance;}body.elementor-page .h3{font-size:clamp(1.15rem,1.05rem + .5vw,1.4rem); line-height:1.25;}body.elementor-page .hl{color:var(--amber-ink);}/* Section label pill — Makro's small badge above each heading */body.elementor-page .pill{display:inline-flex; align-items:center; gap:9px;
  background:var(--white); border:1px solid var(--b-hair); border-radius:var(--r-pill);
  padding:8px 16px 8px 11px; box-shadow:var(--sh-1);
  font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-ink);}body.elementor-page .pill .ic{width:15px; height:15px;}body.elementor-page .pill__dot{width:7px; height:7px; border-radius:50%; background:var(--accent-gold); flex:none;}body.elementor-page .lede{color:var(--slate); max-width:58ch; margin-top:13px; font-size:1.0625rem;}body.elementor-page .sechead{max-width:700px; margin-bottom:22px;}body.elementor-page .sechead--c{margin-inline:auto; text-align:center;}body.elementor-page .sechead__p{color:var(--slate); margin-top:12px;}body.elementor-page .sechead .pill{margin-bottom:13px;}body.elementor-page .sec__note{color:var(--slate); max-width:62ch; margin-top:18px;}/* ---------- 5. BUTTONS ---------- */body.elementor-page .btn{position:relative; isolation:isolate; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  font-family:var(--f-body); font-size:.9375rem; font-weight:700; line-height:1;
  padding:8px 26px 8px 8px; border-radius:var(--r-pill); border:2px solid transparent;
  cursor:pointer; min-height:56px;
  transition:color .28s var(--ease), transform .28s var(--ease),
             box-shadow .28s var(--ease), border-color .28s var(--ease);}/* The second tone wipes up from beneath the label rather than cross-fading —
   that is what makes the transition read as tactile instead of a flat swap. */body.elementor-page .btn--primary::before{content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit;
  background:var(--cta-bg-h);
  transform:scaleY(0); transform-origin:bottom center;
  transition:transform .38s var(--ease);}body.elementor-page .btn--primary:hover::before, body.elementor-page .btn--primary:focus-visible::before{transform:scaleY(1);}@media (prefers-reduced-motion:reduce){body.elementor-page .btn--primary::before{transition:none;}}/* Circular token on the left, Makro-style */body.elementor-page .btn__token{/* gold arrow, 8.4:1 on navy */width:40px; height:40px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:var(--cta-ink); color:var(--cta-txt);   
  transition:transform .32s var(--ease), background-color .28s var(--ease);}body.elementor-page .btn__token .ic{width:19px; height:19px; stroke-width:2.2;}/* Label is the gold the client reaffirmed after being shown the 1.57:1
   figure. Swap --cta-label to var(--cta-ink) for the AA-passing variant. */body.elementor-page .btn--primary{background:var(--cta-bg); color:var(--cta-label); box-shadow:0 10px 22px rgba(38,171,226,.28);}body.elementor-page .btn--primary:hover, body.elementor-page .btn--primary:focus-visible{color:var(--cta-txt-h); transform:translateY(-2px); box-shadow:0 16px 30px rgba(38,171,226,.34);}body.elementor-page .btn--primary:hover .btn__token, body.elementor-page .btn--primary:focus-visible .btn__token{transform:translateX(4px);}/* Touch devices get the pressed state instead of hover. */body.elementor-page .btn--primary:active{transform:translateY(0) scale(.985);}body.elementor-page .btn--primary:active::before{transform:scaleY(1);}@media (hover:none){body.elementor-page .btn--primary::before{display:none;}}body.elementor-page .btn--ghost{background:var(--white); border-color:var(--b-hair); color:var(--ink); padding:8px 26px;
  transition:border-color .28s var(--ease), background-color .28s var(--ease), transform .28s var(--ease);}body.elementor-page .btn--ghost:hover{border-color:var(--ct-blue); background:var(--band-blue); transform:translateY(-2px);}body.elementor-page .btn--ghost:active{transform:translateY(0) scale(.985);}body.elementor-page .btn--onDeep{background:var(--white); color:#12304A; padding:8px 26px;}body.elementor-page .btn--onDeep:hover{background:var(--band-blue); transform:translateY(-2px);}body.elementor-page .btn--onDeep:active{transform:translateY(0) scale(.985);}body.elementor-page .btn--sm{min-height:46px; padding:6px 20px 6px 6px; font-size:.875rem; gap:9px;}body.elementor-page .btn--sm .btn__token{width:34px; height:34px;}body.elementor-page .btn--sm .btn__token .ic{width:16px; height:16px;}body.elementor-page .btn--block{width:100%;}body.elementor-page .btnrow{display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;}/* ---------- 6. PHOTOGRAPHY ---------- */body.elementor-page .pic{position:relative; overflow:hidden; display:block; width:100%; border-radius:var(--r-lg); background:var(--w-blue);}body.elementor-page .pic img{width:100%; height:100%; object-fit:cover; display:block;}body.elementor-page .pic--4x5{aspect-ratio:4/5;}body.elementor-page .pic--4x3{aspect-ratio:4/3;}body.elementor-page .pic--3x4{aspect-ratio:3/4;}body.elementor-page .pic--1x1{aspect-ratio:1/1;}body.elementor-page .pic--16x9{aspect-ratio:16/9;}body.elementor-page .pic--wide{aspect-ratio:16/10;}body.elementor-page .pic--soft{border-radius:var(--r-2xl);}body.elementor-page .pic--lift{box-shadow:var(--sh-img);}/* Chip that sits on a photo */body.elementor-page .pic__tag{position:absolute; left:14px; bottom:14px; z-index:2;
  background:rgba(255,255,255,.95); color:var(--ink);
  border-radius:var(--r-pill); padding:8px 16px; font-size:.8125rem; font-weight:700;
  box-shadow:var(--sh-1); display:inline-flex; align-items:center; gap:8px;}body.elementor-page .pic__tag .ic{width:16px; height:16px; color:var(--blue-ink);}/* Stock-photography disclosure */body.elementor-page .imgnote{margin-top:14px; font-size:.75rem; color:var(--slate-soft);
  display:flex; align-items:center; gap:7px;}body.elementor-page .imgnote .ic{width:14px; height:14px;}/* ---------- 7. PLACEHOLDER MARKERS (text / map only) ---------- */body.elementor-page .ph{position:relative; width:100%; border-radius:var(--r-lg);
  background:repeating-linear-gradient(45deg,rgba(38,171,226,.04) 0 12px,transparent 12px 24px),var(--w-blue);
  border:2px dashed var(--b-blue); display:grid; place-items:center;}body.elementor-page .ph__in{text-align:center; padding:24px; color:var(--blue-ink);}body.elementor-page .ph__icon{width:36px; height:36px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; opacity:.6; margin-inline:auto;}body.elementor-page .ph__tag{font-size:.6875rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-top:12px;}body.elementor-page .ph__txt{font-family:var(--f-head); font-weight:700; font-size:1.0625rem; margin-top:6px; color:var(--ink);}body.elementor-page .ph__meta{font-size:.75rem; color:var(--slate-soft); margin-top:6px;}body.elementor-page .ph--map{aspect-ratio:4/3;}body.elementor-page .ph-inline{display:inline-block; background:var(--w-cream); border:1px dashed var(--b-cream); color:#77590A;
  border-radius:8px; padding:1px 9px; font-size:.8125rem; font-weight:600;}body.elementor-page .ph-block{display:block; background:var(--w-cream); border:1px dashed var(--b-cream); color:#77590A;
  border-radius:var(--r-sm); padding:14px 16px; font-size:.9375rem; font-weight:500;}body.elementor-page .flag{display:flex; gap:14px; align-items:flex-start; background:var(--w-cream); border:2px dashed var(--b-cream);
  border-radius:var(--r-md); padding:18px 20px; margin-top:26px; color:#6B5207;}body.elementor-page .flag--wide{margin:0 0 22px;}body.elementor-page .flag .ic{color:#A88200; margin-top:3px;}body.elementor-page .flag__h{font-family:var(--f-head); font-weight:700; font-size:1.0625rem; color:var(--ink);}body.elementor-page .flag__p{font-size:.9375rem; line-height:1.65; margin-top:4px;}body.elementor-page .flag strong{color:var(--ink);}/* ---------- 8. DECOR ---------- */body.elementor-page .deco{position:absolute; pointer-events:none; z-index:0;}body.elementor-page .deco--blob{border-radius:50%; filter:blur(70px); opacity:.6;}body.elementor-page .deco--ring{border-radius:50%; border:2px solid currentColor; opacity:.12;}body.elementor-page .deco--dots{width:120px; height:120px; opacity:.45;
  background-image:radial-gradient(var(--brand-aqua) 2px,transparent 2px); background-size:17px 17px;}body.elementor-page .deco--b1{width:380px; height:380px; background:var(--w-blue); top:-120px; right:-90px;}body.elementor-page .deco--b2{width:300px; height:300px; background:var(--w-cream); bottom:-100px; left:-90px;}body.elementor-page .deco--r1{color:var(--brand-aqua); width:280px; height:280px; top:-80px; left:-110px;}body.elementor-page .deco--d1{top:12%; right:5%;}body.elementor-page .deco--d2{bottom:10%; left:4%;}@media (max-width:767px){body.elementor-page .deco--dots, body.elementor-page .deco--ring, body.elementor-page .deco--b2{display:none;}}/* ---------- 9. TOP BAR + HEADER ---------- *//* Sits inside the hero on its gradient — no separate band, no extra height. */body.elementor-page .topbar{background:transparent; color:var(--ink-2); font-size:.78125rem; border-bottom:1px solid rgba(22,50,75,.07);}body.elementor-page .topbar__in{display:flex; flex-wrap:wrap; justify-content:center; gap:6px 24px; padding-block:7px; text-align:center;}body.elementor-page .topbar__item{display:inline-flex; align-items:center; gap:8px;}body.elementor-page .topbar .ic{width:16px; height:16px; color:var(--blue-ink);}@media (max-width:600px){body.elementor-page .topbar__in>:nth-child(3){display:none;}}/* --- Hero navigation ---
   Lives inside the hero.  A same-height slot holds its place so that
   pinning it on scroll cannot shift the layout. */body.elementor-page .navslot{height:auto;}body.elementor-page .hdr{position:relative; z-index:90; padding-block:12px;}body.elementor-page .hdr .shell{padding-inline:14px;}@media (min-width:768px){body.elementor-page .hdr .shell{padding-inline:var(--gutter);}}body.elementor-page .hdr.is-pinned{position:fixed; top:0; left:0; right:0; padding-block:10px;
  animation:navDrop .32s var(--ease);}@keyframes navDrop{from{transform:translateY(-100%); opacity:.4}to{transform:none; opacity:1}}@media (prefers-reduced-motion:reduce){body.elementor-page .hdr.is-pinned{animation:none;}}body.elementor-page .nav{display:flex; align-items:center; gap:16px;
  background:rgba(255,255,255,.8); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.7); border-radius:var(--r-pill);
  padding:8px 10px 8px 18px; box-shadow:0 2px 16px rgba(22,50,75,.05);
  transition:background-color .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);}body.elementor-page .hdr.is-pinned .nav{background:rgba(255,255,255,.96); border-color:var(--b-hair); box-shadow:0 10px 28px rgba(22,50,75,.10);}/* LOGO — exactly as supplied */body.elementor-page .brand{display:flex; align-items:center; flex:none; min-height:44px;}body.elementor-page .brand__logo{height:36px; width:auto;}@media (min-width:1024px){body.elementor-page .brand__logo{height:42px;}}body.elementor-page .hdr.is-pinned .brand__logo{height:34px;}@media (min-width:1024px){body.elementor-page .hdr.is-pinned .brand__logo{height:38px;}}body.elementor-page .nav__list{display:none;}@media (min-width:980px){body.elementor-page .nav__list{display:flex; align-items:center; gap:2px; margin-inline:auto;}body.elementor-page .nav__list a{position:relative; display:block; padding:10px 14px; border-radius:var(--r-pill);
    font-size:.9375rem; font-weight:600; color:var(--ink-2);
    transition:color .22s var(--ease), background-color .22s var(--ease);}body.elementor-page .nav__list a::after{content:""; position:absolute; left:14px; right:14px; bottom:5px; height:2px; border-radius:2px;
    background:var(--ct-blue); transform:scaleX(0); transform-origin:left center;
    transition:transform .26s var(--ease);}body.elementor-page .nav__list a:hover{color:var(--blue-ink);}body.elementor-page .nav__list a:hover::after{transform:scaleX(1);}body.elementor-page .nav__list a.is-active{color:var(--blue-ink); background:var(--band-blue);}body.elementor-page .nav__list a.is-active::after{transform:scaleX(1);}}body.elementor-page .nav__end{display:flex; align-items:center; gap:10px; margin-left:auto;}@media (min-width:980px){body.elementor-page .nav__end{margin-left:0;}}body.elementor-page .nav__end .btn--sm{display:none;}@media (min-width:600px){body.elementor-page .nav__end .btn--sm{display:inline-flex;}}body.elementor-page .navtoggle{width:46px; height:46px; border-radius:var(--r-sm); flex:none; display:grid; place-items:center;
  background:var(--ct-blue); color:var(--cta-ink); border:0; cursor:pointer; transition:background-color .22s var(--ease);}body.elementor-page .navtoggle:hover{background:var(--ct-blue-lt);}@media (min-width:980px){body.elementor-page .navtoggle{display:none;}}/* ---------- 10. DRAWER ---------- */body.elementor-page .drawer{position:fixed; inset:0; z-index:120; background:var(--canvas); display:flex; flex-direction:column;
  padding:18px var(--gutter) calc(18px + env(safe-area-inset-bottom)); overflow-y:auto; animation:din .22s var(--ease);}body.elementor-page .drawer[hidden]{display:none;}@keyframes din{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){body.elementor-page .drawer{animation:none;}}body.elementor-page .drawer__head{display:flex; align-items:center; justify-content:space-between;}body.elementor-page .navtoggle--close{background:var(--band-blue); color:var(--ink);}body.elementor-page .drawer__nav{display:flex; flex-direction:column; gap:2px; margin-top:26px;}body.elementor-page .drawer__nav a{font-family:var(--f-head); font-weight:700; font-size:1.375rem; padding:13px 4px;
  border-bottom:1px solid var(--b-hair); min-height:48px; display:flex; align-items:center;}body.elementor-page .drawer__cta{display:flex; flex-direction:column; gap:12px; margin-top:auto; padding-top:28px;}/* ---------- 11. HERO ----------
   Rounded colour panel with oversized centred type and a split lead row,
   then a scalloped "cloud" photo frame that overlaps the panel's lower
   edge, flanked by two small illustrated characters. */body.elementor-page .hero{/* height / width */position:relative; background:var(--canvas); padding-bottom:18px;
  --cloud-w:calc(100vw - 2 * var(--gutter));
  --cloud-ar:.76;                                   
  --overlap:calc(var(--cloud-w) * var(--cloud-ar) * .42);}@media (min-width:681px){body.elementor-page .hero{padding-bottom:34px;}}@media (min-width:681px){body.elementor-page .hero{--cloud-ar:.56; --overlap:calc(var(--cloud-w) * var(--cloud-ar) * .5);}}@media (min-width:860px){body.elementor-page .hero{--cloud-w:min(1000px, calc(100vw - 2 * var(--gutter) - 120px));}}body.elementor-page .hero__stage{position:relative; overflow:hidden;
  margin:10px var(--gutter) 0;
  border-radius:var(--r-xl) var(--r-xl) 56px 56px;
  background:
    radial-gradient(52% 60% at 92% 6%, rgba(255,211,5,.17), transparent 62%),
    radial-gradient(48% 58% at 4% 34%, rgba(143,210,228,.34), transparent 64%),
    linear-gradient(180deg,#E4F3FC 0%,var(--band-blue) 100%);
  padding-bottom:calc(var(--overlap) + 26px);}@media (min-width:860px){body.elementor-page .hero__stage{border-radius:var(--r-2xl) var(--r-2xl) 80px 80px; padding-bottom:calc(var(--overlap) + 38px);}}@media (min-width:1500px){body.elementor-page .hero__stage{margin-inline:auto; max-width:1440px;}}body.elementor-page .hero__top{position:relative; z-index:4; max-width:1180px; margin-inline:auto; text-align:center; padding-top:22px;}@media (min-width:1024px){body.elementor-page .hero__top{padding-top:30px;}}body.elementor-page .hero .h1{font-size:clamp(2.45rem,1.15rem + 5.1vw,5.6rem); line-height:.98; letter-spacing:-.035em;
  max-width:19ch; margin:14px auto 0;}/* Split row under the headline: short lead on the left, body copy + CTAs on the right */body.elementor-page .hero__split{display:grid; gap:14px; margin-top:18px;}@media (min-width:900px){body.elementor-page .hero__split{grid-template-columns:.85fr 1.15fr; gap:56px; margin-top:32px; text-align:left; align-items:center;}}body.elementor-page .hero__sub{font-family:var(--f-head); font-weight:700; color:var(--blue-ink); line-height:1.12; letter-spacing:-.015em;
  font-size:clamp(1.2rem,.95rem + 1.25vw,2.05rem); max-width:18ch; margin-inline:auto;}@media (min-width:900px){body.elementor-page .hero__sub{margin-inline:0;}}body.elementor-page .hero__p{color:var(--slate); max-width:60ch; margin:12px auto 0;}@media (min-width:900px){body.elementor-page .hero__p{margin:0 0 10px; font-size:1rem;}}body.elementor-page .hero .btnrow{justify-content:center; margin-top:18px;}@media (min-width:900px){body.elementor-page .hero .btnrow{justify-content:flex-start; margin-top:14px;}}body.elementor-page .proof{display:flex; align-items:center; justify-content:center; gap:12px; margin-top:14px; flex-wrap:wrap;}@media (min-width:900px){body.elementor-page .proof{justify-content:flex-start; margin-top:18px;}}body.elementor-page .proof__chips{display:flex;}body.elementor-page .proof__chip{width:40px; height:40px; border-radius:50%; margin-left:-10px; border:2.5px solid var(--white);
  display:grid; place-items:center; box-shadow:var(--sh-1);}body.elementor-page .proof__chip:first-child{margin-left:0;}body.elementor-page .proof__chip .ic{width:17px; height:17px;}body.elementor-page .proof__txt{font-size:.875rem; color:var(--slate); font-weight:600;}/* Cloud photo frame */body.elementor-page .hero__cast{position:relative; z-index:3; width:var(--cloud-w); margin:calc(var(--overlap) * -1) auto 0;}body.elementor-page .hero__cloud{display:grid; grid-template-columns:1fr 1fr; gap:6px;
  aspect-ratio:1 / var(--cloud-ar);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 760' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Ccircle cx='80' cy='260' r='100'/%3E%3Ccircle cx='220' cy='215' r='115'/%3E%3Ccircle cx='390' cy='170' r='150'/%3E%3Ccircle cx='610' cy='160' r='155'/%3E%3Ccircle cx='790' cy='215' r='115'/%3E%3Ccircle cx='920' cy='260' r='100'/%3E%3Cpath d='M0 230H1000V690a70 70 0 0 1-70 70H70A70 70 0 0 1 0 690Z'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 760' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Ccircle cx='80' cy='260' r='100'/%3E%3Ccircle cx='220' cy='215' r='115'/%3E%3Ccircle cx='390' cy='170' r='150'/%3E%3Ccircle cx='610' cy='160' r='155'/%3E%3Ccircle cx='790' cy='215' r='115'/%3E%3Ccircle cx='920' cy='260' r='100'/%3E%3Cpath d='M0 230H1000V690a70 70 0 0 1-70 70H70A70 70 0 0 1 0 690Z'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat;}@media (min-width:681px){body.elementor-page .hero__cloud{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 560' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Ccircle cx='80' cy='260' r='100'/%3E%3Ccircle cx='220' cy='215' r='115'/%3E%3Ccircle cx='390' cy='170' r='150'/%3E%3Ccircle cx='610' cy='160' r='155'/%3E%3Ccircle cx='790' cy='215' r='115'/%3E%3Ccircle cx='920' cy='260' r='100'/%3E%3Cpath d='M0 230H1000V490a70 70 0 0 1-70 70H70A70 70 0 0 1 0 490Z'/%3E%3C/g%3E%3C/svg%3E");
            mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 560' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Ccircle cx='80' cy='260' r='100'/%3E%3Ccircle cx='220' cy='215' r='115'/%3E%3Ccircle cx='390' cy='170' r='150'/%3E%3Ccircle cx='610' cy='160' r='155'/%3E%3Ccircle cx='790' cy='215' r='115'/%3E%3Ccircle cx='920' cy='260' r='100'/%3E%3Cpath d='M0 230H1000V490a70 70 0 0 1-70 70H70A70 70 0 0 1 0 490Z'/%3E%3C/g%3E%3C/svg%3E");}}body.elementor-page .hero__ph{margin:0; overflow:hidden; background:var(--w-blue);}body.elementor-page .hero__ph img{width:100%; height:100%; object-fit:cover; object-position:center 22%;}/* Illustrated characters either side of the cloud */body.elementor-page .hero__mascot{position:absolute; z-index:4; pointer-events:none; display:none;
  animation:heroBob 5.5s ease-in-out infinite alternate;}@keyframes heroBob{from{transform:translateY(0) rotate(-3deg);}to{transform:translateY(-10px) rotate(3deg);}}@media (min-width:1024px){body.elementor-page .hero__mascot{display:block;}}body.elementor-page .hero__mascot--l{width:clamp(92px,8vw,126px); left:calc(clamp(52px,6vw,96px) * -1); bottom:18%;}body.elementor-page .hero__mascot--r{width:clamp(112px,10vw,158px); right:calc(clamp(60px,6.5vw,110px) * -1); bottom:6%; animation-delay:-2.4s;}body.elementor-page .m-sun{fill:var(--accent-gold);}body.elementor-page .m-rays{fill:none; stroke:var(--accent-gold); stroke-width:5; stroke-linecap:round;}body.elementor-page .m-cloud{fill:var(--brand-aqua);}body.elementor-page .m-ink{fill:var(--ink);}body.elementor-page .m-smile{fill:none; stroke:var(--ink); stroke-width:3.5; stroke-linecap:round;}body.elementor-page .m-blush{fill:#F2A38E; opacity:.7;}/* Programme rail sitting on the cloud's lower edge */body.elementor-page .hero__float{position:absolute; z-index:5; left:50%; transform:translateX(-50%); bottom:-24px;
  display:flex; gap:8px; background:rgba(255,255,255,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--b-hair); border-radius:var(--r-pill); padding:8px; box-shadow:var(--sh-2);
  max-width:calc(100% - 24px); overflow-x:auto; scrollbar-width:none;}body.elementor-page .hero__float::-webkit-scrollbar{display:none;}/* On narrow screens the rail wraps under the image instead of scrolling. */@media (max-width:680px){body.elementor-page .hero__float{position:static; transform:none; margin:12px auto 0;
    flex-wrap:wrap; justify-content:center; overflow:visible; max-width:100%;}}body.elementor-page .hero__float span{display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  background:var(--band-blue); border-radius:var(--r-pill); padding:9px 15px; font-size:.8125rem; font-weight:700; color:var(--ink-2);}body.elementor-page .hero__float .ic{width:15px; height:15px; color:var(--c-mint-ink);}/* ---------- 12. TRUST STRIP ---------- */body.elementor-page .strip4{display:grid; gap:1px; background:var(--b-hair); border:1px solid var(--b-hair);
  border-radius:var(--r-lg); overflow:hidden;}@media (min-width:560px){body.elementor-page .strip4{grid-template-columns:repeat(2,1fr);}}@media (min-width:1000px){body.elementor-page .strip4{grid-template-columns:repeat(4,1fr);}}body.elementor-page .strip4__i{background:var(--white); padding:26px 22px; display:flex; flex-direction:column; gap:12px;}body.elementor-page .strip4__i h3{font-size:1rem; font-weight:700; color:var(--ink);}body.elementor-page .strip4__i p{font-size:.875rem; color:var(--slate); line-height:1.5;}body.elementor-page .chipic{width:46px; height:46px; border-radius:var(--r-sm); flex:none; display:grid; place-items:center;}body.elementor-page .tint-gold{background:var(--c-gold);color:var(--c-gold-ink)}body.elementor-page .tint-aqua{background:var(--c-aqua);color:var(--c-aqua-ink)}body.elementor-page .tint-coral{background:var(--c-coral);color:var(--c-coral-ink)}body.elementor-page .tint-mint{background:var(--c-mint);color:var(--c-mint-ink)}body.elementor-page .tint-lav{background:var(--c-lav);color:var(--c-lav-ink)}body.elementor-page .tint-teal{background:var(--c-teal);color:var(--c-teal-ink)}/* ---------- 13. PROGRAMS — three equal cards ----------
   Heading on the left with a small illustrated cloud on the right, then
   three pastel cards with a dashed coloured border, an inset photo, an
   icon + title + label row, the description, and a centred CTA. */body.elementor-page .progs__top{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:26px;}body.elementor-page .progs__head{margin:0; max-width:700px;}body.elementor-page .progs__mascot{display:none; flex:none; width:clamp(118px,12vw,170px); margin-right:2%;
  animation:ctFloat 5s ease-in-out infinite;}@media (min-width:760px){body.elementor-page .progs__mascot{display:block;}}body.elementor-page .m-cloud-soft{fill:#FFF6D9; stroke:#F7CB45; stroke-width:4; stroke-linejoin:round;}body.elementor-page .m-string{fill:none; stroke:#9FB4C6; stroke-width:2;}body.elementor-page .m-h1{fill:#F2A38E;}body.elementor-page .m-h2{fill:#F7CB45;}body.elementor-page .m-h3{fill:#8FD2E4;}body.elementor-page .progs__grid{display:grid; gap:18px;}@media (min-width:760px){body.elementor-page .progs__grid{grid-template-columns:repeat(2,1fr); gap:20px;}body.elementor-page .prog--c{grid-column:1 / -1;}}@media (min-width:1024px){body.elementor-page .progs__grid{grid-template-columns:repeat(3,1fr); gap:24px;}body.elementor-page .prog--c{grid-column:auto;}}body.elementor-page .prog{--pc:#F2A38E; --pbg:var(--w-peach); --pline:#E06A52;
  position:relative; display:flex; flex-direction:column; padding:12px;
  background:var(--pbg); border:2px dashed var(--pc); border-radius:var(--r-lg);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);}body.elementor-page .prog--b{--pc:#4BC1F0; --pbg:var(--w-blue);  --pline:var(--blue-ink);}body.elementor-page .prog--c{--pc:#F7CB45; --pbg:var(--w-cream); --pline:#B07100;}body.elementor-page .prog:hover{transform:translateY(-6px); box-shadow:var(--sh-2); border-style:solid;}body.elementor-page .prog__media{margin:0; overflow:hidden; border-radius:var(--r-md); aspect-ratio:16/10; background:var(--white);}body.elementor-page .prog__media img{width:100%; height:100%; object-fit:cover;}@media (min-width:760px) and (max-width:1023px){body.elementor-page .prog--c .prog__media{aspect-ratio:21/9;}}body.elementor-page .prog__body{padding:20px 10px 12px;}body.elementor-page .prog__row{display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px;}body.elementor-page .prog__ic{width:36px; height:36px; border-radius:11px; flex:none; display:grid; place-items:center;
  background:var(--white); color:var(--pline); box-shadow:var(--sh-1);}body.elementor-page .prog__ic .ic{width:19px; height:19px;}body.elementor-page .prog__h{font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem); color:var(--ink); line-height:1.15; margin-right:auto;}body.elementor-page .prog__badge{flex:none; background:var(--white); color:var(--ink-2); border:1px solid rgba(22,50,75,.08);
  border-radius:var(--r-pill); padding:6px 12px;
  font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;}body.elementor-page .prog__p{margin-top:12px; color:var(--slate); font-size:.95rem; line-height:1.65;}body.elementor-page .progs__cta{display:flex; justify-content:center; margin-top:30px;}/* ---------- 14. EDITORIAL ROWS (ages) ---------- */body.elementor-page .ed{display:grid; gap:22px; align-items:center;}@media (min-width:900px){body.elementor-page .ed{grid-template-columns:1fr 1fr; gap:64px;}body.elementor-page .ed--flip .ed__media{order:2;}}body.elementor-page .ed + .ed{margin-top:34px;}@media (min-width:900px){body.elementor-page .ed + .ed{margin-top:52px;}}body.elementor-page .ed__media{position:relative;}body.elementor-page .ed__age{position:absolute; z-index:3; right:-12px; top:-16px;
  background:var(--white); border:1px solid var(--b-hair); border-radius:var(--r-md);
  box-shadow:var(--sh-2); padding:14px 18px; text-align:center;
  font-family:var(--f-head); font-weight:700; font-size:1.25rem; color:var(--ink); line-height:1.05;}body.elementor-page .ed__age small{display:block; font-family:var(--f-body); font-size:.65rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--slate-soft); margin-top:3px;}body.elementor-page .ed__lbl{font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-ink);}body.elementor-page .ed__h{font-size:clamp(1.4rem,1.15rem + 1vw,1.95rem); margin-top:10px; color:var(--ink);}/* ---------- 15. BENTO (why circletime) ---------- */body.elementor-page .bento{display:grid; gap:13px;}@media (min-width:640px){body.elementor-page .bento{grid-template-columns:repeat(2,1fr);}}@media (min-width:1000px){body.elementor-page .bento{grid-template-columns:repeat(4,1fr); gap:15px;}}body.elementor-page .bx{background:var(--white); border:1px solid var(--b-hair); border-radius:var(--r-lg); padding:26px;
  display:flex; flex-direction:column; gap:12px; transition:transform .24s var(--ease), box-shadow .24s var(--ease);}body.elementor-page .bx:hover{transform:translateY(-5px); box-shadow:var(--sh-2);}body.elementor-page .bx h3{font-size:1.1rem; color:var(--ink);}body.elementor-page .bx p{font-size:.9rem; color:var(--slate); line-height:1.55;}body.elementor-page .bx--tint1{background:var(--w-blue); border-color:var(--b-blue);}body.elementor-page .bx--tint2{background:var(--w-mint); border-color:var(--b-teal);}body.elementor-page .bx--tint3{background:var(--w-cream); border-color:var(--b-cream);}/* photo tile inside the bento */body.elementor-page .bx--photo{padding:0; overflow:hidden; border:0;}body.elementor-page .bx--photo .pic{border-radius:var(--r-lg); height:100%; aspect-ratio:auto; min-height:230px;}@media (min-width:1000px){body.elementor-page .bx--wide{grid-column:span 2;}body.elementor-page .bx--tall{grid-row:span 2;}}@media (min-width:640px) and (max-width:999px){body.elementor-page .bx--wide{grid-column:span 2;}}/* ---------- 16. DEEP BAND (philosophy) ---------- */body.elementor-page .deep{background:var(--deep); color:#fff; position:relative; overflow:clip;}body.elementor-page .deep .h2{color:#fff;}body.elementor-page .deep .pill{background:rgba(255,255,255,.1); border-color:var(--deep-line); color:var(--brand-aqua); box-shadow:none;}body.elementor-page .deep .sechead__p{color:var(--deep-txt);}body.elementor-page .deep__grid{display:grid; gap:30px; align-items:center;}@media (min-width:1000px){body.elementor-page .deep__grid{grid-template-columns:1.02fr .98fr; gap:46px;}}body.elementor-page .deep__media .pic{border-radius:var(--r-2xl); box-shadow:0 30px 60px rgba(0,0,0,.3);}body.elementor-page .pillars{display:grid; gap:10px; margin-top:18px;}@media (min-width:560px){body.elementor-page .pillars{grid-template-columns:repeat(2,1fr);}}body.elementor-page .pil{background:var(--deep-2); border:1px solid var(--deep-line); border-radius:var(--r-md); padding:18px;
  display:flex; gap:13px; align-items:flex-start; transition:border-color .2s var(--ease), transform .2s var(--ease);}body.elementor-page .pil:hover{border-color:var(--brand-aqua); transform:translateY(-3px);}body.elementor-page .pil__ic{width:38px; height:38px; border-radius:11px; flex:none; display:grid; place-items:center;
  background:rgba(143,210,228,.16); color:var(--brand-aqua);}body.elementor-page .pil__ic .ic{width:19px; height:19px;}body.elementor-page .pil h3{font-size:.95rem; color:#fff;}body.elementor-page .pil p{font-size:.8125rem; color:var(--deep-txt); line-height:1.5; margin-top:3px;}body.elementor-page .deep .imgnote{color:#A8BCD0;}/* 5.4:1 on the deep band *//* ---------- 17. SPACES — one large + two supporting ---------- */body.elementor-page .spaces{display:grid; gap:22px;}@media (min-width:1000px){body.elementor-page .spaces{grid-template-columns:1.1fr .9fr; gap:36px; align-items:stretch;}}body.elementor-page .spaces__main .pic{aspect-ratio:4/3; border-radius:var(--r-2xl);}/* On desktop the photo matches the column beside it instead of running past
   it — that mismatch was leaving ~340px of dead space under the checklist. */@media (min-width:1000px){body.elementor-page .spaces__main{display:flex;}body.elementor-page .spaces__main .pic{aspect-ratio:auto; height:100%; min-height:460px;}}body.elementor-page .spaces__side{display:grid; gap:18px;}body.elementor-page .spaces__pair{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}body.elementor-page .checks{display:grid; gap:11px;}@media (min-width:560px){body.elementor-page .checks{grid-template-columns:repeat(2,1fr); gap:11px 22px;}}body.elementor-page .checks li{display:flex; align-items:flex-start; gap:10px; font-size:.9rem; font-weight:500; line-height:1.5; color:var(--ink-2);}body.elementor-page .checks .ic{width:20px; height:20px; padding:3.5px; border-radius:6px; background:var(--c-mint); color:var(--c-mint-ink); stroke-width:3; margin-top:2px;}/* ---------- 18. RHYTHM STRIP (events) ---------- *//* Wraps at every width — no horizontal scrollbar at any breakpoint. */body.elementor-page .rhythm{display:grid; gap:12px; grid-template-columns:repeat(2,1fr);}@media (min-width:1000px){body.elementor-page .rhythm{grid-template-columns:repeat(4,1fr); gap:15px;}}body.elementor-page .rh{position:relative;}body.elementor-page .rh .pic{border-radius:var(--r-lg); aspect-ratio:4/3;}@media (min-width:1000px){body.elementor-page .rh:nth-child(even){transform:translateY(24px);}}body.elementor-page .chips{display:flex; flex-wrap:wrap; gap:9px; margin-top:22px;}body.elementor-page .chip{display:inline-flex; align-items:center; gap:9px; background:var(--white); border:1px solid var(--b-hair);
  border-radius:var(--r-pill); padding:11px 18px; font-size:.875rem; font-weight:600; color:var(--ink-2);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);}body.elementor-page .chip:hover{transform:translateY(-3px); box-shadow:var(--sh-2);}body.elementor-page .chip .ic{width:18px; height:18px;}body.elementor-page .chip:nth-child(6n+1) .ic{color:var(--c-aqua-ink)}body.elementor-page .chip:nth-child(6n+2) .ic{color:var(--c-coral-ink)}body.elementor-page .chip:nth-child(6n+3) .ic{color:var(--c-mint-ink)}body.elementor-page .chip:nth-child(6n+4) .ic{color:var(--c-lav-ink)}body.elementor-page .chip:nth-child(6n+5) .ic{color:var(--c-gold-ink)}body.elementor-page .chip:nth-child(6n+6) .ic{color:var(--c-teal-ink)}/* ---------- 19. GALLERY — asymmetric shaped mosaic ----------
   Each tile has its own silhouette (arch, pill, circle, blob, leaf, cloud)
   and is placed explicitly so the mosaic stays gap-free at every width. */body.elementor-page .gal{--gr:138px;
  display:grid; gap:12px; grid-template-columns:repeat(2,1fr); grid-auto-rows:var(--gr);}@media (min-width:560px){body.elementor-page .gal{--gr:172px;}}@media (min-width:900px){body.elementor-page .gal{--gr:clamp(150px,13.6vw,200px); gap:16px; grid-template-columns:repeat(6,1fr);}}body.elementor-page .gc{position:relative; margin:0; min-width:0; overflow:hidden; isolation:isolate;}body.elementor-page .gc .pic{width:100%; height:100%; aspect-ratio:auto; border-radius:0; background:var(--w-teal);}body.elementor-page .gc img{transition:transform .6s var(--ease);}body.elementor-page .gc:hover img{transform:scale(1.06);}/* silhouettes */body.elementor-page .gc--wide{border-radius:120px var(--r-2xl) var(--r-2xl) var(--r-2xl);}body.elementor-page .gc--arch{border-radius:50% 50% var(--r-xl) var(--r-xl) / 26% 26% var(--r-xl) var(--r-xl);}body.elementor-page .gc--pill, body.elementor-page .gc--tall{border-radius:999px;}body.elementor-page .gc--circle{border-radius:50%; width:100%; max-width:var(--gr); height:auto; aspect-ratio:1; align-self:center; justify-self:center;}body.elementor-page .gc--blob{border-radius:62% 38% 54% 46% / 48% 58% 42% 52%;}body.elementor-page .gc--leaf{border-radius:var(--r-2xl) 150px var(--r-2xl) 150px;}body.elementor-page .gc--cloud{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 650' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Ccircle cx='90' cy='165' r='110'/%3E%3Ccircle cx='270' cy='140' r='120'/%3E%3Ccircle cx='480' cy='130' r='125'/%3E%3Ccircle cx='690' cy='140' r='120'/%3E%3Ccircle cx='905' cy='165' r='110'/%3E%3Cpath d='M0 150H1000V590a60 60 0 0 1-60 60H60A60 60 0 0 1 0 590Z'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 650' preserveAspectRatio='none'%3E%3Cg fill='%23000'%3E%3Ccircle cx='90' cy='165' r='110'/%3E%3Ccircle cx='270' cy='140' r='120'/%3E%3Ccircle cx='480' cy='130' r='125'/%3E%3Ccircle cx='690' cy='140' r='120'/%3E%3Ccircle cx='905' cy='165' r='110'/%3E%3Cpath d='M0 150H1000V590a60 60 0 0 1-60 60H60A60 60 0 0 1 0 590Z'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat;}/* phone / small tablet: 2 columns */body.elementor-page .gc--wide{grid-column:1 / 3; grid-row:1 / 3;}body.elementor-page .gc--arch{grid-column:1 / 2; grid-row:3 / 5;}body.elementor-page .gc--pill{grid-column:2 / 3; grid-row:3 / 4;}body.elementor-page .gc--circle{grid-column:2 / 3; grid-row:4 / 5;}body.elementor-page .gc--tall{grid-column:1 / 2; grid-row:5 / 7;}body.elementor-page .gc--blob{grid-column:2 / 3; grid-row:5 / 6;}body.elementor-page .gc--leaf{grid-column:2 / 3; grid-row:6 / 7;}body.elementor-page .gc--cloud{grid-column:1 / 3; grid-row:7 / 9;}/* desktop: 6 columns x 4 rows */@media (min-width:900px){body.elementor-page .gc--wide{grid-column:1 / 4; grid-row:1 / 3;}body.elementor-page .gc--arch{grid-column:4 / 5; grid-row:1 / 3;}body.elementor-page .gc--pill{grid-column:5 / 7; grid-row:1 / 2;}body.elementor-page .gc--circle{grid-column:5 / 6; grid-row:2 / 3;}body.elementor-page .gc--blob{grid-column:6 / 7; grid-row:2 / 3;}body.elementor-page .gc--tall{grid-column:1 / 2; grid-row:3 / 5;}body.elementor-page .gc--cloud{grid-column:2 / 5; grid-row:3 / 5;}body.elementor-page .gc--leaf{grid-column:5 / 7; grid-row:3 / 5;}}/* caption chip — always visible */body.elementor-page .gc__l{position:absolute; z-index:2; left:50%; bottom:14px; transform:translateX(-50%);
  background:rgba(255,255,255,.95); color:var(--ink); border-radius:var(--r-pill);
  padding:6px 13px; font-size:.75rem; font-weight:700; white-space:nowrap; box-shadow:var(--sh-1);
  transition:transform .25s var(--ease);}body.elementor-page .gc:hover .gc__l{transform:translateX(-50%) translateY(-3px);}body.elementor-page .gc--circle .gc__l, body.elementor-page .gc--blob .gc__l{bottom:15%;}body.elementor-page .gc--tall .gc__l, body.elementor-page .gc--arch .gc__l{bottom:9%;}@media (max-width:559px){body.elementor-page .gc__l{font-size:.6875rem; padding:5px 10px;}}/* ---------- 20. REVIEWS ---------- */body.elementor-page .revs{display:grid; gap:13px;}@media (min-width:760px){body.elementor-page .revs{grid-template-columns:repeat(2,1fr);}}@media (min-width:1040px){body.elementor-page .revs{grid-template-columns:repeat(3,1fr);}}body.elementor-page .rev{background:var(--white); border:1px solid var(--b-hair); border-radius:var(--r-lg); padding:24px;
  display:flex; flex-direction:column; gap:15px;}body.elementor-page .rev__stars{display:flex; gap:3px;}body.elementor-page .rev__stars .ic{width:17px; height:17px; fill:var(--accent-gold); stroke:var(--accent-gold);}body.elementor-page .rev__q{flex:1;}body.elementor-page .rev__by{display:flex; align-items:center; gap:12px; padding-top:15px; border-top:1px solid var(--b-hair);}body.elementor-page .rev__av{width:42px; height:42px; border-radius:var(--r-sm); flex:none; display:grid; place-items:center; background:var(--c-aqua); color:var(--c-aqua-ink);}body.elementor-page .rev__id{display:flex; flex-direction:column; gap:2px; align-items:flex-start;}body.elementor-page .rev__name{font-weight:700; font-size:.9375rem;}body.elementor-page .rev__role{font-size:.8125rem; color:var(--slate-soft);}/* ---------- 21. FAQ ---------- */body.elementor-page .faq{max-width:820px; display:grid; gap:10px;}body.elementor-page .qa{background:var(--white); border:1px solid var(--b-hair); border-radius:var(--r-md); overflow:hidden;
  transition:background-color .2s var(--ease), border-color .2s var(--ease);}body.elementor-page .qa[open]{background:var(--band-blue); border-color:var(--b-blue);}body.elementor-page .qa summary{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:19px 22px;
  cursor:pointer; list-style:none; font-family:var(--f-head); font-weight:700; font-size:1.05rem; line-height:1.3; color:var(--ink); min-height:60px;}body.elementor-page .qa summary::-webkit-details-marker{display:none;}body.elementor-page .qa__mark{width:32px; height:32px; border-radius:10px; flex:none; display:grid; place-items:center;
  background:var(--c-aqua); color:var(--c-aqua-ink); transition:transform .25s var(--ease), background-color .2s var(--ease), color .2s var(--ease);}body.elementor-page .qa[open] .qa__mark{transform:rotate(45deg); background:var(--cta-bg); color:var(--cta-txt);}body.elementor-page .qa__mark .ic{width:17px; height:17px; stroke-width:2.4;}body.elementor-page .qa__body{padding:0 22px 20px; color:var(--slate); font-size:.9375rem;}/* ---------- 22. CONTACT ---------- */body.elementor-page .contact{display:grid; gap:15px;}@media (min-width:1000px){body.elementor-page .contact{grid-template-columns:1fr 1fr; gap:28px; align-items:stretch;}}body.elementor-page .contact__card{background:var(--white); border:1px solid var(--b-hair); border-radius:var(--r-xl); padding:28px;}@media (min-width:768px){body.elementor-page .contact__card{padding:36px;}}body.elementor-page .contact__h{font-size:1.25rem; color:var(--ink); padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--b-hair);}body.elementor-page .contact__list{display:grid; gap:15px;}body.elementor-page .contact__list li{display:flex; align-items:flex-start; gap:13px;}body.elementor-page .contact__txt{display:flex; flex-direction:column; gap:3px; align-items:flex-start;}body.elementor-page .contact__txt strong{font-size:.9375rem; color:var(--ink);}body.elementor-page .contact__list .chipic{width:42px; height:42px;}body.elementor-page .contact .ph--map{height:100%; min-height:300px; aspect-ratio:auto;}/* ---------- 23. FINAL CTA ---------- */body.elementor-page .finale{position:relative; overflow:clip; padding-block:var(--sec-y) calc(var(--sec-y) * .82); background:var(--band-blue);}body.elementor-page .finale__card{position:relative; border-radius:var(--r-2xl); overflow:hidden; background:var(--ink);}body.elementor-page .finale__card .pic{border-radius:0; aspect-ratio:4/3;}@media (min-width:900px){body.elementor-page .finale__card .pic{aspect-ratio:21/9;}}body.elementor-page .finale__scrim{position:absolute; inset:0; z-index:1;
  background:linear-gradient(105deg,rgba(11,30,48,.93) 0%,rgba(11,30,48,.82) 46%,rgba(11,30,48,.35) 100%);}body.elementor-page .finale__in{position:absolute; inset:0; z-index:2; display:flex; align-items:center; padding:28px;}@media (min-width:768px){body.elementor-page .finale__in{padding:48px 56px;}}body.elementor-page .finale__copy{max-width:620px;}body.elementor-page .finale__copy .h2{color:#fff;}body.elementor-page .finale__copy p{color:#D3DFEA; margin-top:13px; font-size:.9375rem;}body.elementor-page .finale .pill{background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.2); color:var(--brand-aqua); box-shadow:none; margin-bottom:18px;}@media (max-width:899px){body.elementor-page .finale__card .pic{aspect-ratio:1/1;}body.elementor-page .finale__in{align-items:flex-end;}}/* ---------- 24. FOOTER ---------- */body.elementor-page .foot{background:var(--deep); color:var(--deep-txt); padding-block:56px 0;}body.elementor-page .foot__grid{display:grid; gap:26px;}@media (min-width:700px){body.elementor-page .foot__grid{grid-template-columns:repeat(2,1fr); gap:34px 30px;}}@media (min-width:1000px){body.elementor-page .foot__grid{grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:40px;}}body.elementor-page .foot__logopill{display:inline-flex; background:var(--white); padding:12px 18px; border-radius:var(--r-md);}body.elementor-page .foot__logopill .brand__logo{height:42px; width:auto;}body.elementor-page .foot__p{font-size:.9375rem; margin-top:18px; max-width:40ch;}body.elementor-page .foot__h{font-family:var(--f-head); font-size:1.05rem; font-weight:700; color:#fff; margin-bottom:14px;}body.elementor-page .foot__col ul{display:grid; gap:2px;}body.elementor-page .foot__col a{font-size:.9375rem; display:inline-flex; align-items:center; min-height:44px; transition:color .2s var(--ease);}body.elementor-page .foot__col a:hover{color:var(--cta-txt);}body.elementor-page .foot__contact li{display:flex; align-items:flex-start; gap:11px; font-size:.9375rem; min-height:44px;}body.elementor-page .foot__contact .ic{width:18px; height:18px; color:var(--brand-aqua); margin-top:3px;}body.elementor-page .foot .ph-inline{background:rgba(255,255,255,.1); border-color:rgba(232,196,106,.5); color:#F2DCA6;}body.elementor-page .foot__bar{margin-top:42px; padding-block:22px; border-top:1px solid var(--deep-line);
  display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between; font-size:.8125rem;}body.elementor-page .foot__note{color:#BFD0E0; max-width:58ch;}/* ---------- 25. STICKY MOBILE BAR ---------- */body.elementor-page .mobar{position:fixed; left:0; right:0; bottom:0; z-index:100; display:grid; grid-template-columns:1fr 1fr; gap:10px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(252,252,250,.96);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-top:1px solid var(--b-hair);}body.elementor-page .mobar .btn{min-height:48px; padding:6px 16px 6px 6px; font-size:.8125rem; gap:8px;}body.elementor-page .mobar .btn--ghost{padding:6px 16px;}body.elementor-page .mobar .btn__token{width:34px; height:34px;}body.elementor-page .mobar .btn__token .ic{width:15px; height:15px;}@media (min-width:768px){body.elementor-page .mobar{display:none;}}@media (max-width:767px){body.elementor-page{padding-bottom:78px;}}/* ---------- 26. REVEAL ---------- */body.elementor-page .reveal{opacity:0; transform:translateY(14px); transition:opacity .55s var(--ease), transform .55s var(--ease);}body.elementor-page .reveal.is-in{opacity:1; transform:none;}@media (prefers-reduced-motion:reduce){body.elementor-page .reveal{opacity:1; transform:none; transition:none;}body.elementor-page *, body.elementor-page *::before, body.elementor-page *::after{animation-duration:.01ms !important; transition-duration:.01ms !important;}}/* ---------- 27. PRINT ---------- */@media print{body.elementor-page .hdr, body.elementor-page .topbar, body.elementor-page .mobar, body.elementor-page .drawer, body.elementor-page .deco{display:none !important;}body.elementor-page{background:#fff;}body.elementor-page .sec{padding-block:24px;}}/* =========================================================================
   30. HAND-DRAWN DOODLE LAYER
   Line-drawn primitives — stars, a leaf, a cloud, dotted paths.  Kept at
   low opacity and small scale so they read as editorial decoration rather
   than clip-art.  Hidden below 768px where they would crowd the type.
   ========================================================================= */body.elementor-page .doodle{position:absolute; z-index:1; pointer-events:none;
  fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round;
  opacity:.5;}body.elementor-page .doodle--star1{width:26px; height:26px; color:var(--accent-gold); top:11%; left:7%;  opacity:.75;}body.elementor-page .doodle--star2{width:18px; height:18px; color:var(--sage);        top:26%; right:9%; opacity:.9;}body.elementor-page .doodle--leaf{width:30px; height:30px; color:var(--sage);        top:18%; right:16%; opacity:.55;}body.elementor-page .doodle--cloud{width:44px; height:26px; color:var(--ct-blue);     top:9%;  right:24%; opacity:.4;}body.elementor-page .doodle--dot{width:10px; height:10px; border-radius:50%; background:currentColor; stroke:none;}@media (max-width:767px){body.elementor-page .doodle{display:none;}}/* -------------------------------------------------------------------------
   Decorative doodle system.  Original line drawings — sparkles, a planet,
   a rocket, leaves, clouds, squiggles and dot specks — placed 2-3 per
   section, outside cards, at low opacity.  Hidden below 768px.
   ------------------------------------------------------------------------- */body.elementor-page .dood{position:absolute; z-index:0; pointer-events:none;
  fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round;}body.elementor-page .dood--fill{fill:currentColor; stroke:none;}/* sizes */body.elementor-page .dd-sm{width:20px; height:20px;}body.elementor-page .dd-md{width:30px; height:30px;}body.elementor-page .dd-lg{width:44px; height:44px;}body.elementor-page .dd-xl{width:58px; height:58px;}/* CircleTime colours only */body.elementor-page .dc-aqua{color:var(--brand-aqua);}body.elementor-page .dc-blue{color:var(--ct-blue);}body.elementor-page .dc-gold{color:var(--accent-gold);}body.elementor-page .dc-mint{color:#8FCBA8;}body.elementor-page .dc-light{color:rgba(255,255,255,.55);}/* opacity steps */body.elementor-page .do-1{opacity:.28;}body.elementor-page .do-2{opacity:.42;}body.elementor-page .do-3{opacity:.58;}body.elementor-page .do-4{opacity:.75;}/* Placements sit inside the section’s top/bottom padding bands, where
   there is no text — not beside the centred content column. */body.elementor-page .dp-tl{top:16px;    left:3%;}body.elementor-page .dp-tr{top:16px;    right:3%;}body.elementor-page .dp-bl{bottom:16px; left:4%;}body.elementor-page .dp-br{bottom:16px; right:3%;}body.elementor-page .dp-ml{top:22px;    left:12%;}body.elementor-page .dp-mr{bottom:22px; right:12%;}body.elementor-page .dp-t2{top:14px;    right:16%;}body.elementor-page .dp-b2{bottom:14px; left:15%;}/* Only shown where the layout actually has margin for them. */@media (max-width:1079px){body.elementor-page .dood{display:none;}}/* Section-level doodles reuse the same primitives at section scale */body.elementor-page .sec > .doodle{opacity:.42;}/* =========================================================================
   31. SPACING TRIMS  (whitespace only — no visual-system change)
   ========================================================================= */body.elementor-page .faq{gap:9px;}body.elementor-page .qa summary{padding:17px 21px; min-height:58px;}body.elementor-page .qa__body{padding:0 21px 18px;}body.elementor-page .sec__cta{margin-top:26px;}body.elementor-page .spaces__side{gap:16px;}body.elementor-page .deep__grid{gap:26px;}body.elementor-page .contact__h{padding-bottom:16px; margin-bottom:16px;}body.elementor-page .contact__list{gap:14px;}body.elementor-page .foot{padding-block:32px 0;}body.elementor-page .foot__bar{margin-top:28px;}/* -------------------------------------------------------------------------
   32. SECTION JOINS
   Where two sections share the same ground there is no colour boundary to
   read, so the doubled padding turns into dead space. Trim the join.
   ------------------------------------------------------------------------- */body.elementor-page .sec + .sec:not([class*="band--"]){padding-top:calc(var(--sec-y) * .62);}body.elementor-page [class*="band--"] + .sec:not([class*="band--"]){padding-top:calc(var(--sec-y) * .82);}body.elementor-page .sec:not([class*="band--"]) + [class*="band--"]{padding-top:calc(var(--sec-y) * .9);}/* =========================================================================
   33. RESTORED PDF CONTENT
   ========================================================================= *//* "Why Parents Love CircleTime" — the PDF's six bullets, verbatim.
   Replaces the old four-item strip, whose descriptions were not in the PDF. */body.elementor-page .love{display:grid; gap:1px; background:var(--b-hair);
  border:1px solid var(--b-hair); border-radius:var(--r-lg); overflow:hidden;}@media (min-width:560px){body.elementor-page .love{grid-template-columns:repeat(2,1fr);}}@media (min-width:980px){body.elementor-page .love{grid-template-columns:repeat(3,1fr);}}body.elementor-page .love__i{background:var(--white); padding:22px 20px;
  display:flex; align-items:center; gap:14px;}body.elementor-page .love__i h3{font-size:1rem; font-weight:700; color:var(--ink); line-height:1.3;}/* The kicker that introduces each PDF list */body.elementor-page .kicker--tight{margin-top:18px;}/* Age badge now carries both of the PDF table's column headers */body.elementor-page .ed__age em{display:block; font-family:var(--f-body); font-style:normal;
  font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slate-soft); margin-bottom:3px;}/* The PDF's closing line above the final CTA buttons */body.elementor-page .finale__line{font-family:var(--f-head); font-weight:700; color:#fff;
  font-size:1.0625rem; margin-top:14px;}/* =========================================================================
   34. EVENTS — "Every Day Brings New Adventures" motion
   Behaviour only; layout, content and styling are unchanged at rest.
   - Cards rise 20px and fade in one after another when scrolled into view.
   - Desktop pointer: the hovered card widens smoothly (twice its siblings)
     while the siblings' captions fade away; everything settles back to
     four equal cards when the pointer leaves.
   ========================================================================= */@keyframes rhIn{from{opacity:0; transform:translateY(20px);}to{opacity:1; transform:none;}}body.elementor-page .rhythm .rh:nth-child(2){--i:1;}body.elementor-page .rhythm .rh:nth-child(3){--i:2;}body.elementor-page .rhythm .rh:nth-child(4){--i:3;}body.elementor-page .rhythm .rh.reveal{transition:none;}body.elementor-page .rhythm .rh.reveal.is-in{animation:rhIn .8s cubic-bezier(.22,1,.36,1) both; animation-delay:calc(var(--i, 0) * 120ms);}body.elementor-page .rh .pic img{transition:transform .7s cubic-bezier(.33,1,.68,1);}body.elementor-page .rh:hover .pic img{transform:scale(1.04);}body.elementor-page .rh .pic__tag{transition:opacity .35s var(--ease), transform .45s cubic-bezier(.33,1,.68,1);}@media (min-width:1000px) and (hover:hover){/* Same four equal cards as the grid; flex lets one grow on hover. */body.elementor-page .rhythm{display:flex; gap:15px; container-type:inline-size;}body.elementor-page .rhythm .rh{flex:1 1 0; min-width:0;
    transition:flex-grow .7s cubic-bezier(.33,1,.68,1) !important; transition-delay:0s !important;}/* Height locked to the resting 4:3 size so only width changes. */body.elementor-page .rhythm .rh .pic{aspect-ratio:auto; height:calc((100cqw - 45px) / 4 * .75);}body.elementor-page .rhythm .rh:hover{flex-grow:2;}body.elementor-page .rhythm:hover .rh:not(:hover) .pic__tag{opacity:0; transform:translateY(8px);}}@media (prefers-reduced-motion:reduce){body.elementor-page .rhythm .rh.reveal.is-in{animation:none; opacity:1; transform:none;}}/* =========================================================================
   35. PLAYFUL DOODLES — bigger, colourful, always moving
   Every section carries a handful of hand-drawn stickers in its empty
   margins. They sit behind the content (content is lifted to z-index 1),
   so where one meets a card it simply tucks underneath.
   ========================================================================= */body.elementor-page .sec > .shell, body.elementor-page .finale > .shell{position:relative; z-index:1;}body.elementor-page .dood{--s:44px; width:var(--s); height:var(--s);
  opacity:.92; fill:currentColor; fill-opacity:.22; stroke-width:1.5;
  transform-origin:50% 50%; will-change:transform;}body.elementor-page .dood--line{fill:none;}body.elementor-page .dood--fill{fill:currentColor; fill-opacity:1; stroke:none;}body.elementor-page .da-beat, body.elementor-page .da-float{fill-opacity:.42;}body.elementor-page .dd-sm{--s:30px;}body.elementor-page .dd-md{--s:44px;}body.elementor-page .dd-lg{--s:62px;}body.elementor-page .dd-xl{--s:84px;}body.elementor-page .dd-xxl{--s:124px;}/* CircleTime colours plus a brighter playful set */body.elementor-page .dc-gold{color:#F9B91E;}body.elementor-page .dc-aqua{color:#2FB5DD;}body.elementor-page .dc-blue{color:var(--ct-blue);}body.elementor-page .dc-coral{color:#FF7A6B;}body.elementor-page .dc-pink{color:#F27BAA;}body.elementor-page .dc-lav{color:#9B7BE3;}body.elementor-page .dc-orange{color:#FF9F43;}body.elementor-page .dc-green{color:#4FBF7F;}body.elementor-page .dc-mint{color:#4FBF7F;}body.elementor-page .dc-light{color:rgba(255,255,255,.7);}/* Extra placements in the empty margins */body.elementor-page .dp-lm{top:44%; left:-8px;}body.elementor-page .dp-rm{top:46%; right:-8px;}body.elementor-page .dp-lq{top:72%; left:-6px;}body.elementor-page .dp-rq{top:26%; right:-6px;}body.elementor-page .dp-hl{top:34px; left:12%;}body.elementor-page .dp-hr{top:34px; right:12%;}body.elementor-page .dp-hr2{top:40px; right:24%;}body.elementor-page .dp-far{top:34%; right:8%;}body.elementor-page .dp-far2{top:12%; right:23%;}body.elementor-page .dp-far3{bottom:16%; right:5%;}body.elementor-page .dp-far4{bottom:12%; right:30%;}body.elementor-page .dp-far5{top:58%; right:21%;}/* Motion — every sticker shakes and/or rotates */@keyframes ctSpin{to{transform:rotate(360deg);}}@keyframes ctSpinRev{to{transform:rotate(-360deg);}}@keyframes ctShake{0%,100%{transform:rotate(-10deg) translate(0,0);}20%{transform:rotate(8deg) translate(3px,-4px);}40%{transform:rotate(-6deg) translate(-3px,2px);}60%{transform:rotate(10deg) translate(2px,-3px);}80%{transform:rotate(-4deg) translate(-2px,1px);}}@keyframes ctTwinkle{0%,100%{transform:rotate(0) scale(1);}50%{transform:rotate(72deg) scale(1.25);}}@keyframes ctWobble{0%,100%{transform:rotate(-12deg) scale(1);}50%{transform:rotate(12deg) scale(1.08);}}@keyframes ctFloat{0%,100%{transform:translateY(0) rotate(-8deg);}50%{transform:translateY(-14px) rotate(8deg);}}@keyframes ctDrift{0%,100%{transform:translateX(-10px) rotate(-5deg);}50%{transform:translateX(12px) rotate(5deg);}}@keyframes ctSway{0%,100%{transform:rotate(-16deg);}50%{transform:rotate(16deg);}}@keyframes ctWiggle{0%,100%{transform:rotate(-6deg) scaleX(1);}25%{transform:rotate(4deg) scaleX(.85);}50%{transform:rotate(-3deg) scaleX(1.08);}75%{transform:rotate(6deg) scaleX(.92);}}@keyframes ctBeat{0%,100%{transform:scale(1) rotate(-8deg);}15%{transform:scale(1.2) rotate(6deg);}30%{transform:scale(.95) rotate(-4deg);}45%{transform:scale(1.12) rotate(8deg);}}@keyframes ctPulse{0%,100%{transform:scale(1) rotate(0);}50%{transform:scale(1.18) rotate(25deg);}}body.elementor-page .da-spin{animation:ctSpin 18s linear infinite;}body.elementor-page .da-spinrev{animation:ctSpinRev 14s linear infinite;}body.elementor-page .da-shake{animation:ctShake 2.6s ease-in-out infinite;}body.elementor-page .da-twinkle{animation:ctTwinkle 3.2s ease-in-out infinite;}body.elementor-page .da-wobble{animation:ctWobble 4.4s ease-in-out infinite;}body.elementor-page .da-float{animation:ctFloat 4.8s ease-in-out infinite;}body.elementor-page .da-drift{animation:ctDrift 6s ease-in-out infinite;}body.elementor-page .da-sway{animation:ctSway 4s ease-in-out infinite;}body.elementor-page .da-wiggle{animation:ctWiggle 3s ease-in-out infinite;}body.elementor-page .da-beat{animation:ctBeat 2.4s ease-in-out infinite;}body.elementor-page .da-pulse{animation:ctPulse 4.2s ease-in-out infinite;}body.elementor-page .dood:nth-of-type(3n+1){animation-delay:-.8s;}body.elementor-page .dood:nth-of-type(3n+2){animation-delay:-1.9s;}body.elementor-page .dood:nth-of-type(3n){animation-delay:-3.1s;}body.elementor-page .da-spin:nth-of-type(odd){animation-duration:12s;}/* Visible from tablet up, scaled down a little on tablets */@media (min-width:768px){body.elementor-page .dood{display:block;}}@media (min-width:768px) and (max-width:1079px){body.elementor-page .dood{width:calc(var(--s) * .7); height:calc(var(--s) * .7);}}/* Hero line doodles — larger and animated too */body.elementor-page .doodle{opacity:.9 !important; fill:currentColor; fill-opacity:.2; stroke-width:1.5;}body.elementor-page .doodle--star1{width:46px; height:46px; color:#F9B91E; animation:ctTwinkle 3s ease-in-out infinite;}body.elementor-page .doodle--star2{width:34px; height:34px; color:#F27BAA; animation:ctTwinkle 2.6s ease-in-out -1s infinite;}body.elementor-page .doodle--leaf{width:50px; height:50px; color:#4FBF7F; animation:ctSway 4s ease-in-out infinite;}body.elementor-page .doodle--cloud{width:78px; height:46px; color:#2FB5DD; animation:ctDrift 6s ease-in-out infinite;}/* Hero characters — bigger, with a livelier shake */@keyframes heroShake{0%,100%{transform:translate(0,0) rotate(-8deg);}25%{transform:translate(4px,-9px) rotate(7deg);}50%{transform:translate(0,-14px) rotate(-5deg);}75%{transform:translate(-4px,-6px) rotate(9deg);}}body.elementor-page .hero__mascot{animation:heroShake 4s ease-in-out infinite;}body.elementor-page .hero__mascot--l{width:clamp(120px,11vw,172px); left:calc(clamp(70px,8vw,128px) * -1); bottom:14%;}body.elementor-page .hero__mascot--r{width:clamp(150px,14vw,218px); right:calc(clamp(78px,9vw,140px) * -1); bottom:2%; animation-delay:-1.8s;}body.elementor-page .m-rays{transform-box:fill-box; transform-origin:50% 50%; animation:ctSpin 10s linear infinite;}@media (prefers-reduced-motion:reduce){body.elementor-page .dood, body.elementor-page .doodle, body.elementor-page .hero__mascot, body.elementor-page .m-rays{animation:none !important;}}/* Hero: keep stickers clear of the navigation bar */body.elementor-page .hero__stage .dp-tl{top:170px; left:2.5%;}body.elementor-page .hero__stage .dp-tr{top:160px; right:2.5%;}body.elementor-page .hero__stage .dp-t2{top:auto; bottom:30%; right:10%;}body.elementor-page .doodle--star1{top:26% !important; left:9% !important;}body.elementor-page .doodle--cloud{top:17% !important; right:19% !important;}/* Large empty pockets: under the bento grid, under the age-row copy */body.elementor-page .dp-wb1{bottom:8%;  right:22%;}body.elementor-page .dp-wb2{bottom:12%; right:8%;}body.elementor-page .dp-wb3{bottom:24%; right:15%;}body.elementor-page .dp-ab{bottom:160px; left:24%;}body.elementor-page .dp-ab2{bottom:205px; left:42%;}/* =========================================================================
   36. PROGRAMS — card hover motion (Kiddoz "Programs & Classes" feel)
   Photo zooms in and tilts slightly; an accent line draws itself under
   the programme title. Nothing changes at rest.
   ========================================================================= */body.elementor-page .prog img{transition:transform .7s cubic-bezier(.22,1,.36,1);}body.elementor-page .prog:hover img, body.elementor-page .prog:focus-within img{transform:scale(1.1) rotate(3deg);}body.elementor-page .prog__h{position:relative; display:inline-block; padding-bottom:6px; margin-bottom:-6px;}body.elementor-page .prog__h::after{content:""; position:absolute; left:0; right:0; bottom:0; height:3px; border-radius:3px;
  background:var(--accent-gold); transform:scaleX(0); transform-origin:left center;
  transition:transform .55s cubic-bezier(.22,1,.36,1);}body.elementor-page .prog:hover .prog__h::after, body.elementor-page .prog:focus-within .prog__h::after{transform:scaleX(1);}body.elementor-page .prog--c .prog__h::after{background:var(--ct-blue);}/* =========================================================================
   37. GALLERY — Joily "Our Gallery" motion
   Tiles rise 20px and fade in one after another; on hover the photo zooms
   inside its shape; clicking opens a full-screen sliding viewer.
   ========================================================================= */body.elementor-page .gal .gc:nth-child(2){--i:1}body.elementor-page .gal .gc:nth-child(3){--i:2}body.elementor-page .gal .gc:nth-child(4){--i:3}body.elementor-page .gal .gc:nth-child(5){--i:4}body.elementor-page .gal .gc:nth-child(6){--i:5}body.elementor-page .gal .gc:nth-child(7){--i:6}body.elementor-page .gal .gc:nth-child(8){--i:7}body.elementor-page .gal .gc.reveal{transition:none;}body.elementor-page .gal .gc.reveal.is-in{animation:rhIn .8s cubic-bezier(.22,1,.36,1) both; animation-delay:calc(var(--i, 0) * 90ms);}body.elementor-page .gc{cursor:zoom-in;}body.elementor-page .gc img{transition:transform .6s cubic-bezier(.22,1,.36,1);}body.elementor-page .gc:hover img, body.elementor-page .gc:focus-visible img{transform:scale(1.1);}body.elementor-page .gc:focus-visible{outline:3px solid var(--blue-ink); outline-offset:4px;}/* Viewer */body.elementor-page .lb{position:fixed; inset:0; z-index:300; display:grid; grid-template-rows:1fr auto;
  background:rgba(11,30,48,.95); padding:28px 0 14px;
  opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s;}body.elementor-page .lb.is-open{opacity:1; visibility:visible;}body.elementor-page .lb__stage{position:relative; overflow:hidden; min-height:0;}body.elementor-page .lb__track{display:flex; height:100%; transition:transform .6s cubic-bezier(.22,1,.36,1); touch-action:pan-y;}body.elementor-page .lb__slide{flex:0 0 100%; min-width:0; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:0 clamp(60px,10vw,150px);}body.elementor-page .lb__slide img{max-width:100%; max-height:calc(100vh - 210px); width:auto; height:auto; object-fit:contain;
  border-radius:var(--r-lg); opacity:.35; transform:scale(.94);
  transition:opacity .6s var(--ease), transform .6s cubic-bezier(.22,1,.36,1);}body.elementor-page .lb__slide.is-active img{opacity:1; transform:none;}body.elementor-page .lb__cap{color:#fff; font-weight:700; font-size:.9375rem; margin-top:14px;}body.elementor-page .lb__btn{position:absolute; z-index:2; width:50px; height:50px; border-radius:50%; border:0; cursor:pointer;
  display:grid; place-items:center; background:rgba(255,255,255,.72); color:var(--ink);
  transition:background-color .2s var(--ease), transform .25s var(--ease);}body.elementor-page .lb__btn:hover{background:#fff; transform:scale(1.07);}body.elementor-page .lb__btn .ic{width:22px; height:22px; stroke-width:2.2;}body.elementor-page .lb__prev{left:clamp(10px,2.5vw,36px); top:50%; margin-top:-25px;}body.elementor-page .lb__next{right:clamp(10px,2.5vw,36px); top:50%; margin-top:-25px;}body.elementor-page .lb__prev .ic{transform:scaleX(-1);}body.elementor-page .lb__close{top:0; right:clamp(10px,2.5vw,36px); width:44px; height:44px;}body.elementor-page .lb__thumbs{display:flex; gap:12px; justify-content:center; padding:16px 16px 4px; overflow-x:auto; scrollbar-width:none;}body.elementor-page .lb__thumbs::-webkit-scrollbar{display:none;}body.elementor-page .lb__thumb{flex:none; width:78px; height:78px; padding:0; border:0; border-radius:14px; overflow:hidden; cursor:pointer;
  opacity:.45; outline:2px solid transparent; outline-offset:3px;
  transition:opacity .25s var(--ease), outline-color .25s var(--ease), transform .25s var(--ease); background:none;}body.elementor-page .lb__thumb img{width:100%; height:100%; object-fit:cover;}body.elementor-page .lb__thumb:hover{opacity:.8; transform:translateY(-2px);}body.elementor-page .lb__thumb.is-active{opacity:1; outline-color:var(--accent-gold);}@media (max-width:640px){body.elementor-page .lb__slide{padding:0 14px;}body.elementor-page .lb__btn{width:42px; height:42px;}body.elementor-page .lb__prev, body.elementor-page .lb__next{margin-top:-21px;}body.elementor-page .lb__thumb{width:54px; height:54px; border-radius:10px;}}@media (prefers-reduced-motion:reduce){body.elementor-page .gal .gc.reveal.is-in{animation:none; opacity:1; transform:none;}body.elementor-page .lb__track, body.elementor-page .lb__slide img{transition:none;}}body.elementor-page .lb[hidden]{display:none;}body.elementor-page .lb__slide img{-webkit-user-drag:none; user-select:none;}/* =========================================================================
   38. HERO — two columns
   All copy on the left with room to breathe; a large photograph in an
   organic frame on the right, with the two child portraits as round
   accents and the illustrated sun and cloud beside it.
   ========================================================================= */body.elementor-page .hero{padding-bottom:22px;}@media (min-width:681px){body.elementor-page .hero{padding-bottom:30px;}}body.elementor-page .hero__stage{padding-bottom:clamp(40px,5vw,70px);}body.elementor-page .hero__grid{display:grid; gap:40px; align-items:center; padding-top:18px;}@media (min-width:980px){body.elementor-page .hero__grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); gap:clamp(40px,5vw,84px); padding-top:30px;}}body.elementor-page .hero__text{position:relative; z-index:4; max-width:640px;}body.elementor-page .hero .h1{max-width:none; margin:20px 0 0; text-align:left; font-size:clamp(2.4rem,1.3rem + 3.5vw,4.35rem); line-height:1.03;}body.elementor-page .hero__sub{margin:20px 0 0; max-width:none; font-size:clamp(1.15rem,.98rem + .7vw,1.5rem);}body.elementor-page .hero__p{margin:14px 0 0; max-width:58ch; font-size:1.0625rem; line-height:1.75;}body.elementor-page .hero .btnrow{justify-content:flex-start; margin-top:28px;}body.elementor-page .hero .proof{justify-content:flex-start; margin-top:26px;}body.elementor-page .hero__visual{position:relative; z-index:3; width:100%; max-width:620px; margin-inline:auto; aspect-ratio:1 / 1.02;}body.elementor-page .hero__visual::before{content:""; position:absolute; inset:5% -4% -3% 6%; z-index:-1;
  border-radius:58% 42% 47% 53% / 46% 54% 46% 54%; background:rgba(247,203,69,.28);}body.elementor-page .hero__main{position:absolute; inset:0; margin:0; background:var(--w-blue);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 612' preserveAspectRatio='none'%3E%3Cpath d='M318 14C414 10 500 58 552 136C602 212 606 312 572 398C538 486 470 552 382 584C296 616 196 608 124 560C50 512 8 428 6 340C4 252 36 162 98 98C158 36 232 18 318 14Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 612' preserveAspectRatio='none'%3E%3Cpath d='M318 14C414 10 500 58 552 136C602 212 606 312 572 398C538 486 470 552 382 584C296 616 196 608 124 560C50 512 8 428 6 340C4 252 36 162 98 98C158 36 232 18 318 14Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;}body.elementor-page .hero__main img{width:100%; height:100%; object-fit:cover; object-position:44% 40%;}@keyframes bubbleBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}body.elementor-page .hero__bubble{position:absolute; z-index:4; margin:0; width:clamp(92px,11vw,150px); aspect-ratio:1;
  border-radius:50%; overflow:hidden; border:6px solid var(--white); box-shadow:var(--sh-2);
  animation:bubbleBob 5.5s ease-in-out infinite;}body.elementor-page .hero__bubble img{width:100%; height:100%; object-fit:cover; object-position:center 22%;}body.elementor-page .hero__bubble--a{top:3%; left:-3%;}body.elementor-page .hero__bubble--b{bottom:13%; right:-4%; animation-delay:-2.6s;}body.elementor-page .hero__visual .hero__mascot--l{left:auto; right:8%; top:-7%; bottom:auto; width:clamp(92px,9vw,132px);}body.elementor-page .hero__visual .hero__mascot--r{right:auto; left:-9%; bottom:3%; width:clamp(112px,11vw,162px);}@media (min-width:681px){body.elementor-page .hero__visual .hero__float{position:absolute; bottom:-14px; left:50%; transform:translateX(-50%); max-width:calc(100% - 20px);}}@media (max-width:979px){body.elementor-page .hero__visual{max-width:560px;}}@media (prefers-reduced-motion:reduce){body.elementor-page .hero__bubble, body.elementor-page .progs__mascot{animation:none;}}/* Program title underline follows each card's colour */body.elementor-page .prog .prog__h::after{background:var(--pline);}/* Hero stickers: keep the left column clear now the copy sits there */body.elementor-page .hero__stage .dp-tl{top:128px; left:31%; bottom:auto;}body.elementor-page .hero__stage .dp-lm{top:150px; left:47%;}body.elementor-page .hero__stage .dp-lq{top:auto; bottom:96px; left:47%;}body.elementor-page .doodle--star1{top:52% !important; left:48% !important;}@media (max-width:979px){body.elementor-page .hero__stage .dp-tl, body.elementor-page .hero__stage .dp-lm, body.elementor-page .hero__stage .dp-lq, body.elementor-page .doodle--star1{display:none !important;}}/* Hero decoration sizing — medium: sun, cloud and moon (planet) ~20% smaller */body.elementor-page .hero__visual .hero__mascot--l{width:clamp(76px,7.4vw,108px);}body.elementor-page .hero__visual .hero__mascot--r{width:clamp(92px,9vw,132px);}body.elementor-page .hero__stage .dood.dp-tl{width:66px; height:66px;}body.elementor-page .doodle--cloud{width:64px; height:38px;}/* =========================================================================
   39. HERO IMAGE ENTRANCE (Suntrail-style)
   On load the photo rises 30px and fades in with a soft ease-out; the two
   round portraits follow a beat later. Uses the independent `translate`
   property so it layers cleanly over the portraits' gentle float.
   ========================================================================= */@keyframes heroImgIn{from{opacity:0; translate:0 30px;}to{opacity:1; translate:0 0;}}body.elementor-page .hero__main{animation:heroImgIn 1.2s cubic-bezier(.22,1,.36,1) .15s both;}body.elementor-page .hero__visual::before{animation:heroImgIn 1.2s cubic-bezier(.22,1,.36,1) .05s both;}body.elementor-page .hero__bubble--a{animation:heroImgIn 1.1s cubic-bezier(.22,1,.36,1) .4s both, bubbleBob 5.5s ease-in-out 1.5s infinite;}body.elementor-page .hero__bubble--b{animation:heroImgIn 1.1s cubic-bezier(.22,1,.36,1) .55s both, bubbleBob 5.5s ease-in-out -1.1s infinite;}@media (prefers-reduced-motion:reduce){body.elementor-page .hero__main, body.elementor-page .hero__visual::before, body.elementor-page .hero__bubble--a, body.elementor-page .hero__bubble--b{animation:none;}}/* ---------- NO-JS SAFETY (added for the WordPress theme) ----------
   The reveal-on-scroll animation hides its elements until main.js adds
   .is-in. If the script never runs (JS disabled, blocked, or a crawler that
   does not execute it) whole sections would stay invisible. The document
   element only carries .ct-js once the inline head snippet runs, so without
   JS the content renders at its final visible state. */html:not(.ct-js) .reveal{opacity:1; transform:none; transition:none;}
