/* Little Smiles Round 10 (preview, body.ls-r10 only). One card frame, wider card rows, cookie notice, top banner, motion.
   Motion is transform and opacity only; prefers-reduced-motion turns all of it off (bottom of file). */
body.ls-r10{--r10-w:min(1360px,calc(100vw - 80px));--r10-rad:24px;--r10-shadow:0 10px 30px rgba(47,45,39,.08);--r10-ease:cubic-bezier(.16,1,.3,1);--r10-spring:cubic-bezier(.34,1.56,.64,1)}
@media (max-width:1023px){body.ls-r10{--r10-w:calc(100vw - 48px)}}
@media (max-width:767px){body.ls-r10{--r10-w:calc(100vw - 32px);--r10-rad:20px}}

/* 1a. Card rows: one width for every row of cards and the welcome video (1360 max, 40px gutters; 24px tablet; 16px mobile). */
body.ls-r10 .elementor .elementor-element:is([data-id="51729caf"],[data-id="3008ec2c"],[data-id="360c5bc"],[data-id="5b6b4851"],[data-id="a0fe834"],[data-id="f5a4708"],[data-id="ce1a3eb"],[data-id="1b47036"],[data-id="c4dd7fe"],[data-id="1569405"],[data-id="37236fe"],[data-id="6d709819"],[data-id="ee6b97b"]){
  --width:var(--r10-w);width:var(--r10-w) !important;max-width:none !important;
  margin-left:calc((100% - var(--r10-w)) / 2) !important;margin-right:calc((100% - var(--r10-w)) / 2) !important;
  padding-left:0 !important;padding-right:0 !important;align-self:center}
/* The commitment cards sit directly in a full width band: pad the band instead. */
body.ls-r10 .elementor .elementor-element[data-id="35eb735"]{padding-left:calc((100% - var(--r10-w)) / 2) !important;padding-right:calc((100% - var(--r10-w)) / 2) !important}
/* Boxed rows: let the inner box use the full row. */
body.ls-r10 .elementor .elementor-element:is([data-id="35eb735"],[data-id="6d709819"]) > .e-con-inner{max-width:none !important;width:100% !important;padding-left:0 !important;padding-right:0 !important}
/* Rows whose cards carry 10px side margins: widen by 20px so the card edges land on the gutters. */
body.ls-r10 .elementor .elementor-element:is([data-id="a0fe834"],[data-id="f5a4708"],[data-id="ce1a3eb"],[data-id="1b47036"],[data-id="c4dd7fe"],[data-id="1569405"],[data-id="37236fe"]){
  --width:calc(var(--r10-w) + 20px);width:calc(var(--r10-w) + 20px) !important;margin-left:calc((100% - var(--r10-w)) / 2 - 10px) !important;margin-right:calc((100% - var(--r10-w)) / 2 - 10px) !important}
@media (max-width:767px){
  body.ls-r10 .elementor .elementor-element:is([data-id="a0fe834"],[data-id="f5a4708"],[data-id="ce1a3eb"],[data-id="1b47036"],[data-id="c4dd7fe"],[data-id="1569405"],[data-id="37236fe"]){
    --width:var(--r10-w);width:var(--r10-w) !important;margin-left:calc((100% - var(--r10-w)) / 2) !important;margin-right:calc((100% - var(--r10-w)) / 2) !important}
}
/* Single CTA cards keep their centred width on desktop; below 1024 they follow the gutters too. */
@media (max-width:1023px){
  body.ls-r10 .elementor .elementor-element:is([data-id="3fb8e98"],[data-id="532b20e"],[data-id="a6de203"],[data-id="f97a377"],[data-id="ccd863d"],[data-id="baa6afe"],[data-id="efc3644"],[data-id="f009be3"],[data-id="7d8c8d5"],[data-id="ffa07c8"],[data-id="a4d91a0"],[data-id="85bd544"]){
    width:var(--r10-w) !important;max-width:none !important;margin-left:calc((100% - var(--r10-w)) / 2) !important;margin-right:calc((100% - var(--r10-w)) / 2) !important}
}
/* The welcome video fills its row. */
body.ls-r10 .elementor .elementor-element[data-id="791056d9"]{width:100% !important;max-width:none !important;margin-left:0 !important;margin-right:0 !important}

/* 1b. The frame. */
body.ls-r10 :is(
  [data-id="791056d9"],
  [data-id="3008ec2c"] > .e-con,
  [data-id="360c5bc"] > .e-con,[data-id="5b6b4851"] > .e-con,
  [data-id="a0fe834"] > .e-con,[data-id="f5a4708"] > .e-con,[data-id="ce1a3eb"] > .e-con,
  [data-id="35eb735"] > .e-con-inner > .e-con,[data-id="6d709819"] > .e-con-inner > .e-con,
  [data-id="1b47036"] > .e-con,[data-id="c4dd7fe"] > .e-con,[data-id="1569405"] > .e-con,[data-id="37236fe"] > .e-con,
  :is([data-id="3fb8e98"],[data-id="532b20e"],[data-id="a6de203"],[data-id="f97a377"],[data-id="ccd863d"],[data-id="baa6afe"],[data-id="efc3644"],[data-id="f009be3"],[data-id="7d8c8d5"],[data-id="ffa07c8"],[data-id="a4d91a0"],[data-id="85bd544"]) > .elementor-widget-container,
  [data-id="ee6b97b"] .elementor-post,
  .lsgp
){border-radius:var(--r10-rad) !important;box-shadow:var(--r10-shadow) !important;overflow:hidden;isolation:isolate;
  transition:transform .5s var(--r10-ease),box-shadow .5s var(--r10-ease)}
/* Image cropping inside frames. */
body.ls-r10 :is([data-id="360c5bc"],[data-id="5b6b4851"]) > .e-con .elementor-widget-image img{display:block;width:100% !important;aspect-ratio:413/250;height:auto !important;object-fit:cover;border-radius:0 !important}
body.ls-r10 [data-id="ee6b97b"] .elementor-post__thumbnail img{object-fit:cover}
body.ls-r10 [data-id="791056d9"] :is(video,iframe){object-fit:cover}

/* Program cards had no surface: give them one, image full bleed on top, text inset. */
body.ls-r10 [data-id="360c5bc"] > .e-con{background:#57544A !important}
body.ls-r10 [data-id="5b6b4851"] > .e-con{background:#FFFFFF !important}
body.ls-r10 :is([data-id="360c5bc"],[data-id="5b6b4851"]) > .e-con{padding:0 0 20px !important;gap:16px !important}
body.ls-r10 :is([data-id="360c5bc"],[data-id="5b6b4851"]) > .e-con > .elementor-element:not(.elementor-widget-image){padding-left:20px !important;padding-right:20px !important;box-sizing:border-box}
body.ls-r10 :is([data-id="360c5bc"],[data-id="5b6b4851"]) > .e-con > .elementor-widget-image{margin:0 !important;width:100% !important}

/* Gift picker panel. */
body.ls-r10 .lsgp{background:#F1EEE7;padding:40px 24px !important;box-sizing:border-box;width:min(760px,var(--r10-w));max-width:none !important;margin-left:calc((100% - min(760px,var(--r10-w))) / 2) !important;margin-right:calc((100% - min(760px,var(--r10-w))) / 2) !important}
@media (max-width:767px){body.ls-r10 .lsgp{padding:32px 16px !important}}


/* 4. Card interaction, one spec for every card (article cards included): lift 4px with a deeper shadow and a 2px warm yellow edge on hover
   (.5s, cubic-bezier(.16,1,.3,1)); press settles to translateY(-2px) scale(.98) in .12s on mouse and touch; no sheen, no glow. */
body.ls-r10 .r10-card{position:relative}
@media (hover:hover){
  html body.ls-r10 .r10-card.r10-card.r10-card.r10-card:hover{transform:translateY(-4px) !important;box-shadow:0 22px 44px -18px rgba(47,45,39,.28),0 0 0 2px rgba(247,210,82,.6) !important;transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s cubic-bezier(.16,1,.3,1) !important}
}
html body.ls-r10 .r10-card.r10-card.r10-card.r10-card:focus-within{box-shadow:0 22px 44px -18px rgba(47,45,39,.28),0 0 0 2px rgba(247,210,82,.6) !important}
html body.ls-r10 .r10-card.r10-card.r10-card.r10-card.r10-press{transform:translateY(-2px) scale(.98) !important;transition:transform .12s cubic-bezier(.16,1,.3,1),box-shadow .12s cubic-bezier(.16,1,.3,1) !important}

/* Buttons: gentle squish, spring back. */
body.ls-r10 :is(.elementor-button,.ls-donatebar__btn,.ls-donatebar__ghost,.lsgp-btn,.ls-btn,#ls-cookie-banner button,.forminator-button,.elementor-field-type-submit button){transition:transform .4s var(--r10-spring),background-color .2s,color .2s,border-color .2s !important}
body.ls-r10 :is(.elementor-button,.ls-donatebar__btn,.ls-donatebar__ghost,.lsgp-btn,.ls-btn,#ls-cookie-banner button,.forminator-button,.elementor-field-type-submit button):is(:active,.r10-press){transform:scale(.96) !important;transition-duration:.08s !important}

/* Scroll reveal (one time). The script only marks elements that start below the fold, so nothing visible ever disappears. */
body.ls-r10 .r10-rv{opacity:0;transform:translateY(18px)}
body.ls-r10 .r10-rv.r10-in{opacity:1;transform:none;transition:opacity .4s ease-out var(--r10-d,0ms),transform .4s var(--r10-ease) var(--r10-d,0ms)}

/* Program icons: playful bounce. */
body.ls-r10 .ls-pi svg{transform-origin:50% 100%}
body.ls-r10 .ls-pi.r10-bounce svg{animation:r10Bounce .6s var(--r10-spring) var(--r10-d,0ms) both}
@keyframes r10Bounce{0%{transform:none}30%{transform:translateY(-7px) scale(1.08,.94)}55%{transform:translateY(0) scale(.96,1.05)}75%{transform:translateY(-2px)}100%{transform:none}}

/* Yellow heart: soft heartbeat every 4s (on the widget box, so the existing image float animation is untouched). */
body.ls-r10 [data-id="cbb7c29"] > .elementor-widget-container{transform-origin:50% 55%;animation:r10Beat 4s ease-in-out 1.6s infinite}
@keyframes r10Beat{0%,70%,100%{transform:none}76%{transform:scale(1.07)}82%{transform:scale(1)}88%{transform:scale(1.045)}94%{transform:scale(1)}}

/* Gift picker pill bounce (keeps the selected 2px lift). */
@keyframes r10Pill{0%{transform:translateY(-2px) scale(1)}35%{transform:translateY(-4px) scale(1.12)}65%{transform:translateY(-1px) scale(.96)}100%{transform:translateY(-2px) scale(1)}}
body.ls-r10 .lsgp-pill span.r10-pop{animation:r10Pill .42s var(--r10-spring)}

/* 2. Cookie notice: near black. */
body.ls-r10 #ls-cookie-banner{background:#111111 !important;border-color:#111111 !important;color:#FAF7F1 !important;box-shadow:0 12px 36px rgba(0,0,0,.35) !important}
body.ls-r10 #ls-cookie-banner p,body.ls-r10 #ls-cookie-banner .ls-cc__toggle,body.ls-r10 #ls-cookie-banner .ls-cc__toggle strong{color:#FAF7F1 !important}
body.ls-r10 #ls-cookie-banner a{color:#F7D252 !important;text-decoration-color:#F7D252 !important}
body.ls-r10 #ls-cookie-banner .ls-cc__actions button,body.ls-r10 #ls-cookie-banner #ls-save-prefs{min-height:48px !important;padding:14px 16px !important;border-radius:4px !important;font-family:Manrope,sans-serif !important;font-size:14px !important;font-weight:600 !important;text-transform:none !important;letter-spacing:0 !important}
body.ls-r10 #ls-cookie-banner #ls-accept-all,body.ls-r10 #ls-cookie-banner #ls-save-prefs{background:#F7D252 !important;border:1px solid #F7D252 !important;color:#2F2D27 !important}
body.ls-r10 #ls-cookie-banner #ls-accept-all:hover,body.ls-r10 #ls-cookie-banner #ls-save-prefs:hover{background:#ECC643 !important;border-color:#ECC643 !important}
body.ls-r10 #ls-cookie-banner #ls-decline{background:#F1EEE7 !important;border:1px solid #F1EEE7 !important;color:#2F2D27 !important}
body.ls-r10 #ls-cookie-banner #ls-decline:hover{background:#E3DED3 !important;border-color:#E3DED3 !important}
body.ls-r10 #ls-cookie-banner .ls-cc__manage{background:none !important;border:0 !important;color:#FAF7F1 !important;text-decoration:underline !important;text-decoration-color:#F7D252 !important;padding:0 !important;min-height:44px !important;font-size:13px !important;text-transform:none !important}
body.ls-r10 #ls-cookie-banner .ls-cc__panel{border-top-color:#333333 !important}
body.ls-r10 #ls-cookie-banner .ls-cc__toggle input{accent-color:#F7D252}
body.ls-r10 #ls-cookie-banner :is(button,a,input):focus-visible{outline:2px solid #F7D252 !important;outline-offset:2px}

/* 3. Top banner: centred group, roomy, close button centred with a 44px target. */
body.ls-r10 .ls-topbar__inner{justify-content:center !important;text-align:center !important;gap:10px !important;padding:12px 56px !important;min-height:50px} /* 50px keeps the bar height it had with the handprint icon (removed 2026-11-01) */
body.ls-r10 .ls-topbar__msg,body.ls-r10 .ls-topbar .ls-topbar__msg{font-size:15px !important;line-height:1.45 !important;text-align:center;text-wrap:balance}
body.ls-r10 .ls-topbar__mark img{height:26px !important}
body.ls-r10 .ls-topbar button.ls-topbar__close{top:50% !important;right:6px !important;transform:translateY(-50%) !important;width:44px !important;height:44px !important}
@media (max-width:599px){
  body.ls-r10 .ls-topbar__inner{padding:12px 56px !important;gap:8px !important}
  body.ls-r10 .ls-topbar__msg,body.ls-r10 .ls-topbar .ls-topbar__msg{font-size:14px !important}
  body.ls-r10 .ls-topbar__mark img{height:22px !important}
}

/* Reduced motion: frames and colours stay, nothing moves. */
@media (prefers-reduced-motion:reduce){
  body.ls-r10 .r10-card,html body.ls-r10 .r10-card.r10-card.r10-card.r10-card:hover,html body.ls-r10 .r10-card.r10-card.r10-card.r10-card.r10-press{transform:none !important;transition:box-shadow .2s ease-out !important}
  body.ls-r10 :is(.elementor-button,.ls-donatebar__btn,.ls-donatebar__ghost,.lsgp-btn,.ls-btn,#ls-cookie-banner button,.forminator-button,.elementor-field-type-submit button):is(:active,.r10-press){transform:none !important}
  body.ls-r10 .r10-rv{opacity:1 !important;transform:none !important}
  body.ls-r10 .ls-pi.r10-bounce svg,body.ls-r10 [data-id="cbb7c29"] > .elementor-widget-container,body.ls-r10 .lsgp-pill span.r10-pop{animation:none !important}
}

/* 6. Custom cursor (preview): bunny head everywhere, including over text (no I-beam on non-editable text); carrot on links and buttons.
   Only real typing fields keep the text cursor; select keeps its native cursor. Mouse and trackpad only (fine pointer with hover), never on touch;
   system cursors under forced colours or a high contrast preference. SVG for 1x, 2x PNG for retina, 1x PNG and the system cursor as fallbacks. */
@media (hover:hover) and (pointer:fine) and (forced-colors:none) and (not (prefers-contrast:more)){
  body.ls-r10,body.ls-r10 *{cursor:url(cursors/bunny-32.png) 16 23,auto;cursor:-webkit-image-set(url(cursors/bunny-32.png) 1x,url(cursors/bunny-64.png) 2x) 16 23,auto;cursor:image-set(url(cursors/bunny.svg) 1x,url(cursors/bunny-64.png) 2x) 16 23,auto}
  body.ls-r10 :is(a[href],a[href] *,button,button *,[role="button"],[role="button"] *,summary,summary *,label[for],input[type="submit"],input[type="button"],input[type="reset"],input[type="checkbox"],input[type="radio"],input[type="range"],input[type="file"],input[type="color"],.elementor-button,.elementor-button *,.lsa-chip){cursor:url(cursors/carrot-28.png) 2 2,pointer;cursor:-webkit-image-set(url(cursors/carrot-28.png) 1x,url(cursors/carrot-56.png) 2x) 2 2,pointer;cursor:image-set(url(cursors/carrot.svg) 1x,url(cursors/carrot-56.png) 2x) 2 2,pointer}
  body.ls-r10 :is(input:not([type]),input[type="text"],input[type="email"],input[type="tel"],input[type="search"],input[type="number"],input[type="password"],input[type="url"],textarea,[contenteditable]:not([contenteditable="false"]),[contenteditable]:not([contenteditable="false"]) *){cursor:text}
  body.ls-r10 select{cursor:auto}
  /* Elements whose own stylesheets set cursor:pointer with higher specificity: menu dropdown arrows (ElementsKit), cookie banner buttons (id rule), Forminator checkboxes, radios and buttons (per page Elementor CSS). */
  body.ls-r10 .elementskit-dropdown-has > a .elementskit-submenu-indicator,body.ls-r10 #ls-cookie-banner button,body.ls-r10 .forminator-ui .forminator-checkbox,body.ls-r10 .forminator-ui .forminator-checkbox *,body.ls-r10 .forminator-ui .forminator-radio,body.ls-r10 .forminator-ui .forminator-radio *,body.ls-r10 .forminator-ui button,body.ls-r10 .forminator-ui .forminator-button,body.ls-r10 .forminator-ui button.forminator-button.forminator-button-submit{cursor:url(cursors/carrot-28.png) 2 2,pointer;cursor:-webkit-image-set(url(cursors/carrot-28.png) 1x,url(cursors/carrot-56.png) 2x) 2 2,pointer;cursor:image-set(url(cursors/carrot.svg) 1x,url(cursors/carrot-56.png) 2x) 2 2,pointer}
}
