/* =========================================================================
   LifeLab Kids — home page sections, footer, coming soon
   ========================================================================= */
@font-face { font-family: "Fraunces"; src: url("../fonts/fraunces.woff2") format("woff2"); font-weight: 600 800; font-display: swap; }

:root {
  --llk-green-card: #DAFACB;
  --llk-lilac-card: #EBE1FB;
  --llk-peach-card: #FEEECD;
  --llk-navy: #26213F;
  --llk-line: rgba(0, 0, 0, .1);
}

/* ---------- light header (sits on the cream hero) ---------- */
body.llk-site .llk-header { background: rgba(252, 249, 236, .82); border-bottom: 1px solid rgba(38, 33, 63, .07); }
body.llk-site .llk-trigger { color: var(--llk-navy) !important; }
body.llk-site .llk-burger { background: var(--llk-navy) !important; }

/* ---------- layout basics ---------- */
.llk-full .site-main, .llk-full .page-content, .llk-full main#content { max-width: none !important; width: 100%; padding: 0 !important; margin: 0 !important; }
.llk-full .page-header, .llk-full .entry-title { display: none; }
.llk-full .page-content > p:empty { display: none; }
.llk-wrap { position: relative; z-index: 2; width: 100%; max-width: var(--llk-max); margin: 0 auto; }
.llk-sec { position: relative; overflow: hidden; padding: 140px 0; }
.llk-sec__head { margin-bottom: 64px; }
.llk-sec__head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.llk-sec__head--center { text-align: center; display: flex; flex-direction: column; align-items: center; }
body.llk-site .llk-title { margin: 0; font: 600 64px/1.12 var(--llk-font-head); letter-spacing: -.02em; color: var(--llk-ink); max-width: 640px; }
.llk-sec__head--center .llk-title { max-width: 760px; }
body.llk-site .llk-sec h3 { margin: 0; font: 500 26px/1.25 var(--llk-font-head); letter-spacing: -.01em; color: var(--llk-ink); }
.llk-sec p { margin: 0; }
.llk-lead { font: 400 16px/1.65 var(--llk-font-body); color: var(--llk-body); max-width: 520px; margin-top: 22px !important; }
.llk-title .llk-ellipse { left: -9%; top: 6%; width: 118%; height: 100%; }
.llk-title .llk-ellipse path { stroke-width: 2.6; }
/* hand-drawn circle: drawn like a pen marking the word, then lifted, then drawn again */
[data-words] .llk-ellipse path { stroke-dasharray: 1 1; animation: llk-circle 4.2s cubic-bezier(.45,.05,.35,1) infinite; }
@keyframes llk-circle { 0% { stroke-dashoffset: 1; } 38% { stroke-dashoffset: 0; } 72% { stroke-dashoffset: 0; } 96%, 100% { stroke-dashoffset: -1; } }

.llk-kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px !important; font: 500 16px/1.2 var(--llk-font-body); letter-spacing: .02em; text-transform: uppercase; color: var(--llk-ink); }
.llk-kicker .llk-ico { width: 18px; height: 18px; }
.llk-kicker.is-light { color: #fff; }

.llk-ico { display: block; flex: none; }
.llk-spin { animation: llk-spin 14s linear infinite; }
@keyframes llk-spin { to { transform: rotate(360deg); } }

/* buttons */
body.llk-site .llk-btn--purple { --btn-bg: var(--llk-purple); --btn-fg: #fff; }
body.llk-site .llk-btn--purple .llk-btn__out { background: #fff; color: var(--llk-ink); }
body.llk-site .llk-btn--white { --btn-bg: #fff; --btn-fg: var(--llk-ink); }
.llk-btn .llk-ico { width: 20px; height: 20px; }
.llk-btn:hover { transform: translateY(-2px); }
.llk-round { display: grid; place-items: center; width: 52px; height: 52px; padding: 0 !important; border-radius: 50% !important; border: 1px solid var(--llk-line) !important; background: #fff !important; color: var(--llk-ink) !important; cursor: pointer; transition: background .3s ease, color .3s ease, transform .3s var(--llk-ease); }
.llk-round:hover { background: var(--llk-purple) !important; color: #fff !important; transform: scale(1.06); }
.llk-round[data-slide="-1"] .llk-ico { transform: rotate(180deg); }
.llk-round .llk-ico { width: 20px; height: 20px; }
.llk-round:disabled { opacity: .35; pointer-events: none; }
.llk-slider-nav { display: flex; gap: 12px; margin-top: 36px; }

/* cards */
.llk-box { position: relative; overflow: hidden; border-radius: 20px; isolation: isolate; }
.llk-box--green { background: var(--llk-green-card); }
.llk-box--lilac { background: var(--llk-lilac-card); }
.llk-box--peach { background: var(--llk-peach-card); }
.llk-curve { position: absolute; z-index: -1; pointer-events: none; right: 0; bottom: 0; width: 100%; height: 100%;
  background: url("../img/home/curve-card.webp") right bottom / 100% auto no-repeat; opacity: .9; transition: transform 1.2s var(--llk-ease); }
.llk-curve--tall { background-image: url("../img/home/curve-tall.webp"); background-size: 70% auto; }
.llk-curve--wide { background-image: url("../img/home/curve-wide.svg"); background-size: 100% auto; background-position: left bottom; }
.llk-curve--blob { background-image: url("../img/home/curve-blob.webp"); background-size: 110% auto; background-position: 40% 0; }
.llk-box:hover .llk-curve { transform: scale(1.06) translate(-8px, -6px); }
.llk-badge { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; background: #fff; }
.llk-badge .llk-ico { width: 36px; height: 36px; }
.llk-badge--green { background: var(--llk-green); } .llk-badge--lilac { background: var(--llk-purple); } .llk-badge--peach { background: var(--llk-yellow); }

.llk-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
body.llk-site .llk-tag { display: inline-flex; padding: 6px 16px; border-radius: 100px; background: #fff; color: var(--llk-purple); text-decoration: none;
  font: 700 14px/1.4 var(--llk-font-body); transition: background .25s ease, color .25s ease, transform .3s var(--llk-ease); }
body.llk-site .llk-tag:hover { background: var(--llk-purple); color: #fff; transform: translateY(-2px); }

/* decorative swirl line */
.llk-swirl { position: absolute; z-index: 1; pointer-events: none; width: 1100px; height: auto; }
.llk-swirl path { stroke: #FEEFCB; stroke-width: 22; stroke-linecap: round; stroke-dasharray: 1 1; stroke-dashoffset: -1; animation: llk-swirl 9s cubic-bezier(.5,0,.5,1) infinite; }
/* travels from the top-right end along the line, then fades away the same way and starts again */
@keyframes llk-swirl { 0% { stroke-dashoffset: -1; } 45% { stroke-dashoffset: 0; } 60% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 1; } }

/* ---------- reveals (hidden until scrolled into view) ---------- */
.llk-js [data-reveal] { opacity: 0; }
.llk-js [data-words] .llk-w { opacity: 0; }
.llk-anim-done:not(.llk-home-ready) [data-reveal], .llk-anim-done:not(.llk-home-ready) [data-words] .llk-w { opacity: 1 !important; }

/* =========================================================================
   HERO (Meadow)
   ========================================================================= */
.llk-meadow { position: relative; overflow: hidden; min-height: 900px; background: #F6F7F2; display: flex; align-items: center; }
.mh-copy { min-width: 0; }
.mh-wrap { width: 100%; max-width: var(--llk-max); margin: 0 auto; padding: 170px 0 110px; display: grid; grid-template-columns: minmax(0, 1fr) 560px; gap: 40px; align-items: center; }
.mh-eyebrow { margin: 0 0 22px; font: 800 14px/1.2 var(--llk-font-body); letter-spacing: .14em; text-transform: uppercase; color: #5A5670; }
body.llk-site .mh-title { margin: 0; font-family: "Fraunces", Georgia, serif; font-weight: 750; font-size: 86px; line-height: 1.02; letter-spacing: -.01em; color: var(--llk-navy); max-width: 640px; }
.mh-w { display: inline-block; }
.mh-uline { position: relative; display: inline-block; white-space: nowrap; }
.mh-wave { position: absolute; left: -2px; bottom: -14px; width: calc(100% + 4px); height: 22px; overflow: visible; }
.mh-wave path { fill: none; stroke: #F29BB6; stroke-width: 6; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 400; stroke-dashoffset: 400; }
.mh-lede { margin: 34px 0 0; max-width: 640px; font: 400 21px/1.62 var(--llk-font-body); color: #5A5670; }
.mh-ctas { margin-top: 38px; display: flex; gap: 14px; }
body.llk-site .mh-btn { display: inline-flex; align-items: center; height: 58px; padding: 0 32px; border-radius: 100px; background: var(--llk-navy); color: #fff; text-decoration: none;
  font: 800 18px/1 var(--llk-font-body); transition: transform .3s var(--llk-ease), box-shadow .3s ease, background .3s ease; }
body.llk-site .mh-btn:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(38, 33, 63, .22); background: #3A3260; color: #fff; }
.mh-btn:focus-visible { outline: 3px solid #F29BB6; outline-offset: 4px; }
.mh-art { position: relative; width: 560px; height: 540px; }
.mh-blob { position: absolute; overflow: visible; animation: mh-bob 6s ease-in-out infinite; transform-origin: 50% 60%; }
.mh-green { animation-delay: -1.2s; } .mh-blue { animation-duration: 7s; } .mh-pink-s { animation-delay: -3s; animation-duration: 5s; }
.mh-pink { animation-delay: -2s; animation-duration: 6.5s; } .mh-yellow { animation-delay: -4s; }
@keyframes mh-bob { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(-1.5deg); } }
.mh-white { fill: #fff; stroke: var(--llk-navy); stroke-width: 3.2; }
.mh-pupil circle:first-child { fill: var(--llk-navy); }
.mh-glint { fill: #fff; }
.mh-mouth, .mh-meh, .mh-happy path { fill: none; stroke: var(--llk-navy); stroke-width: 7; stroke-linecap: round; }
.mh-pink .mh-mouth, .mh-pink .mh-meh { stroke-width: 6; }
.mh-mouth, .mh-grin, .mh-happy, .mh-meh, .mh-eyes { transition: opacity .25s ease; }
.mh-happy, .mh-grin, .mh-meh { opacity: 0; }
.mh-lid { fill: #F5B6C8; opacity: 0; transition: opacity .2s ease; }
.mh-pink.is-rolling .mh-lid { opacity: 1; }
.mh-pink.is-rolling .mh-mouth { opacity: 0; } .mh-pink.is-rolling .mh-meh { opacity: 1; }
.mh-blue.is-smiling .mh-eyes, .mh-blue.is-smiling .mh-mouth { opacity: 0; }
.mh-blue.is-smiling .mh-happy, .mh-blue.is-smiling .mh-grin { opacity: 1; }
.mh-cheek { transition: fill .3s ease; }
.mh-blue.is-smiling .mh-cheek { fill: #F5B6C8; }
.mh-eyes { transform-box: fill-box; transform-origin: center; }
.mh-blob.is-blink .mh-eyes { transform: scaleY(.08); transition: transform .07s ease; }
.mh-chip { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 100px; background: #fff;
  box-shadow: 0 10px 26px rgba(38, 33, 63, .10); font: 800 16px/1 var(--llk-font-body); color: var(--llk-navy); white-space: nowrap; animation: mh-bob 8s ease-in-out infinite; }
.mh-chip--top { left: 140px; top: 0; animation-delay: -2s; }
.mh-chip--bottom { left: 0; top: 476px; }
.mh-chip i { width: 12px; height: 12px; border-radius: 50%; background: #A8D8BC; }
.llk-js .mh-copy > *, .llk-js .mh-title .mh-w { opacity: 0; }
.llk-js .mh-art { opacity: 0; }
.llk-anim-done:not(.llk-home-ready) .mh-copy > *, .llk-anim-done:not(.llk-home-ready) .mh-title .mh-w, .llk-anim-done:not(.llk-home-ready) .mh-art { opacity: 1 !important; }

/* =========================================================================
   SERVICES
   ========================================================================= */
.llk-services { background: var(--llk-cream); }
.llk-services__head { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 70px; }
.llk-services__title { justify-content: center; }
.llk-services__title { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 0 14px; }
body.llk-site .llk-services__title .llk-title { max-width: 420px; font-size: 48px; }
.llk-icon-stack { display: inline-flex; margin-bottom: 4px; }
.llk-icon-stack .llk-ico { width: 46px; height: 46px; border: 2px solid var(--llk-cream); border-radius: 50%; }
.llk-icon-stack .llk-ico + .llk-ico { margin-left: -10px; }
.llk-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: center; }
.llk-services__card { min-height: 494px; padding: 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 60px; }
.llk-services__card:last-child { min-height: 470px; }
.llk-services__card .llk-badge { width: 70px; height: 70px; }
.llk-services__body p { margin-top: 16px; font: 400 16px/1.6 var(--llk-font-body); max-width: 260px; }
.llk-services__body h3 { font-size: 24px !important; }
.llk-services__photo { margin: 0; height: 390px; border-radius: 20px; overflow: hidden; }
.llk-services__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--llk-ease); }
.llk-services__photo:hover img { transform: scale(1.05); }

/* =========================================================================
   WHY CHOOSE US
   ========================================================================= */
.llk-why { background: #fff; padding-bottom: 80px; }
.llk-why__swirl { right: -220px; top: 60px; width: 1000px; }
.llk-why__grid { display: grid; grid-template-columns: 580px 1fr; gap: 100px; align-items: center; }
.llk-why__photo { margin: 0; height: 780px; border-radius: 20px; overflow: hidden; }
.llk-why__photo img { width: 100%; height: 118%; object-fit: cover; }
body.llk-site .llk-why__copy .llk-title { max-width: 500px; }
.llk-why__copy .llk-lead { max-width: 580px; }
.llk-why__divider { position: relative; height: 26px; margin: 56px 0 30px; display: grid; place-items: center; }
.llk-why__divider::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: linear-gradient(90deg, var(--llk-line) 0 44%, transparent 44% 56%, var(--llk-line) 56%); }
.llk-why__divider .llk-ico { width: 26px; height: 26px; }
.llk-why__points { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 52px; }
.llk-why__points > div { padding-right: 40px; }
.llk-why__points > div + div { padding: 0 0 0 64px; border-left: 1px solid var(--llk-line); }
.llk-why__points h3 { font-size: 30px !important; margin-bottom: 14px !important; }
.llk-why__points p { font-size: 16px; line-height: 1.6; max-width: 210px; }

/* =========================================================================
   GUIDED BY CARE (slider)
   ========================================================================= */
.llk-guided { background: #fff; padding-top: 80px; }
.llk-guided__grid { display: grid; grid-template-columns: 470px 1fr; gap: 0; align-items: center; }
.llk-guided__intro { padding-right: 60px; border-right: 1px solid var(--llk-line); min-height: 450px; display: flex; flex-direction: column; justify-content: center; }
.llk-slider { position: relative; overflow: hidden; padding-left: 60px; cursor: grab; touch-action: pan-y; }
.llk-slider.is-drag { cursor: grabbing; }
.llk-slider__track { display: flex; gap: 40px; will-change: transform; user-select: none; }
body.llk-site .llk-guided .llk-title { font-size: 52px; max-width: 400px; }
.llk-guided__card { flex: 0 0 525px; min-height: 450px; padding: 40px; display: flex; flex-direction: column; }
.llk-guided__card .llk-badge { width: 70px; height: 70px; margin-bottom: 60px; }
.llk-guided__card h3 { font-size: 36px !important; margin-bottom: 24px !important; }
.llk-guided__card p { font: 400 16px/1.6 var(--llk-font-body); max-width: 360px; }
.llk-slider img { pointer-events: none; }

/* =========================================================================
   DISCOVER
   ========================================================================= */
.llk-discover { position: relative; height: 900px; overflow: hidden; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 110px; color: #fff; }
.llk-discover__media { position: absolute; inset: 0; z-index: 0; }
.llk-discover__media img, .llk-discover__media video { width: 100%; height: 100%; object-fit: cover; transform-origin: center; }
.llk-discover::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.45)); }
.llk-discover__copy { position: relative; z-index: 2; text-align: center; display: flex; flex-direction: column; align-items: center; }
body.llk-site .llk-discover .llk-title { color: #fff; max-width: 560px; }

/* =========================================================================
   PROGRAMS (stacking cards)
   ========================================================================= */
.llk-programs { background: var(--llk-cream); overflow: visible; }
.llk-stack { display: grid; gap: 40px; }
.llk-program { position: sticky; top: calc(110px + var(--llk-admin) + var(--i) * 26px); min-height: 550px; padding: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; transform-origin: 50% 0; }
.llk-program__copy { padding: 30px; display: flex; flex-direction: column; align-items: flex-start; }
.llk-num { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; background: #fff; font: 500 24px/1 var(--llk-font-head); color: var(--llk-ink); margin-bottom: 70px; }
.llk-program h3 { font-size: 32px !important; margin-bottom: 26px !important; }
.llk-program p { font-size: 16px; line-height: 1.6; max-width: 480px; }
.llk-age { display: inline-flex; margin-top: 36px; padding: 10px 20px; border-radius: 100px; font: 600 16px/1 var(--llk-font-body); text-transform: uppercase; }
.llk-age--green { background: var(--llk-green); color: var(--llk-ink); } .llk-age--lilac { background: var(--llk-purple); color: #fff; } .llk-age--peach { background: var(--llk-yellow); color: var(--llk-ink); }
body.llk-site .llk-more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; padding-bottom: 4px; border-bottom: 1px solid var(--llk-ink); color: var(--llk-ink); text-decoration: none; font: 600 16px/1.4 var(--llk-font-body); }
.llk-more .llk-ico { width: 18px; height: 18px; transition: transform .3s var(--llk-ease); }
.llk-more:hover .llk-ico { transform: translateX(5px); }
.llk-program__photo { margin: 0; border-radius: 14px; overflow: hidden; }
.llk-program__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--llk-ease); }
.llk-program:hover .llk-program__photo img { transform: scale(1.04); }

/* =========================================================================
   FEATURES
   ========================================================================= */
.llk-features { background: #fff; }
.llk-features__swirl { right: -260px; top: 120px; width: 900px; }
.llk-features__grid { display: grid; grid-template-columns: 1fr 620px; gap: 80px; }
body.llk-site .llk-features__intro .llk-title { max-width: 480px; }
.llk-features__intro .llk-lead { margin-bottom: 40px !important; }
.llk-features__photo { margin: 140px 0 0; width: 490px; height: 300px; border-radius: 20px; overflow: hidden; }
.llk-features__photo img { width: 100%; height: 100%; object-fit: cover; }
.llk-features__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-content: start; }
.llk-feature { min-height: 340px; padding: 30px; border-radius: 20px; background: var(--llk-cream); display: flex; flex-direction: column; transition: transform .5s var(--llk-ease), box-shadow .5s ease; }
.llk-feature:nth-child(even) { transform: translateY(100px); }
.llk-feature:hover { box-shadow: 0 20px 40px rgba(82, 0, 128, .07); }
.llk-feature .llk-ico { width: 50px; height: 50px; margin-bottom: auto; }
.llk-feature h3 { margin: 70px 0 20px !important; font-size: 24px !important; }
.llk-feature p { font-size: 16px; line-height: 1.6; }
.llk-features .llk-wrap { padding-bottom: 100px; }

/* =========================================================================
   TESTIMONIALS
   ========================================================================= */
.llk-testimonials { background: var(--llk-cream); padding-bottom: 60px; }
.llk-testimonials .llk-slider-nav { margin: 0; }
body.llk-site .llk-testimonials .llk-title { max-width: 440px; }
.llk-slider--bleed { padding-left: 0; margin-right: calc((100vw - min(100vw, var(--llk-max))) / -2); }
.llk-testimonials .llk-slider__track { gap: 20px; }
.llk-quote { flex: 0 0 776px; height: 450px; margin: 0; display: grid; grid-template-columns: 340px 1fr; border-radius: 20px; overflow: hidden; background: #fff; }
.llk-quote__photo img { width: 100%; height: 100%; object-fit: cover; }
.llk-quote__body { padding: 50px 50px 40px; display: flex; flex-direction: column; }
.llk-stars { display: flex; gap: 10px; }
.llk-stars .llk-ico { width: 23px; height: 23px; }
.llk-quote blockquote { margin: 40px 0 0; padding: 0; border: 0; font: 400 16px/1.6 var(--llk-font-body); color: var(--llk-body); quotes: none; }
.llk-quote figcaption { margin-top: auto; display: grid; gap: 10px; }
.llk-quote strong { font: 500 24px/1.2 var(--llk-font-head); color: var(--llk-ink); }
.llk-quote figcaption span { font-size: 16px; font-style: normal; }

/* =========================================================================
   PRICING
   ========================================================================= */
.llk-pricing { background: var(--llk-cream); padding-top: 60px; }
.llk-switch { position: relative; display: inline-flex; padding: 5px; border-radius: 100px; background: #fff; }
.llk-switch button { position: relative; z-index: 1; padding: 10px 20px !important; border: 0 !important; border-radius: 100px !important; background: none !important; color: var(--llk-ink) !important; font: 600 16px/1.2 var(--llk-font-body) !important; cursor: pointer; transition: color .35s ease; }
.llk-switch button[aria-selected="true"] { color: #fff !important; }
.llk-switch__pill { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 5px; width: 0; border-radius: 100px; background: var(--llk-purple); transition: transform .5s var(--llk-ease), width .5s var(--llk-ease); }
.llk-pricing__grid { display: grid; grid-template-columns: 420px 1fr; gap: 20px; }
.llk-plan { padding: 10px; display: grid; }
.llk-plan--wide { grid-template-columns: 1fr 420px; gap: 20px; }
.llk-plan__body { padding: 30px; }
.llk-plan h3 { font-size: 26px !important; }
.llk-plan__body > p:not(.llk-price):not(.llk-plan__label) { margin-top: 18px; font-size: 16px; line-height: 1.6; max-width: 280px; }
.llk-price { margin: 60px 0 36px !important; font: 600 46px/1.1 var(--llk-font-head); color: var(--llk-ink); }
.llk-price span { display: inline-block; }
.llk-price span[hidden] { display: none; }
.llk-plan hr { margin: 32px 0; border: 0; border-top: 1px solid var(--llk-line); }
.llk-plan__label { font: 600 16px/1.2 var(--llk-font-body); color: var(--llk-ink); margin-bottom: 22px !important; }
.llk-plan ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 16px; }
.llk-plan li { display: flex; align-items: center; gap: 12px; font-size: 16px; }
.llk-plan li .llk-ico { width: 20px; height: 20px; }
.llk-plan__photo { margin: 0; border-radius: 14px; overflow: hidden; }
.llk-plan__photo img { width: 100%; height: 100%; object-fit: cover; }

/* =========================================================================
   BLOG
   ========================================================================= */
.llk-blog { background: #fff; }
.llk-blog__swirl { left: 50%; top: 40px; width: 1100px; transform: translateX(-30%); }
.llk-blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
body.llk-site .llk-post { display: block; border: 1px solid var(--llk-line); border-radius: 20px; overflow: hidden; background: #fff; text-decoration: none; color: inherit; transition: transform .5s var(--llk-ease), box-shadow .5s ease; }
.llk-post:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(0, 0, 0, .07); }
.llk-post__img { display: block; height: 400px; overflow: hidden; }
.llk-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--llk-ease); }
.llk-post:hover .llk-post__img img { transform: scale(1.06); }
.llk-post__meta { display: block; padding: 40px 40px 14px; font: 400 16px/1.4 var(--llk-font-body); color: var(--llk-body); }
.llk-post__meta i { font-style: normal; padding: 0 2px; }
.llk-post__title { display: block; padding: 0 40px 40px; font: 500 24px/1.35 var(--llk-font-head); color: var(--llk-ink); }

/* =========================================================================
   CTA
   ========================================================================= */
.llk-cta { background: #fff; padding: 0 0 120px; z-index: 3; overflow: visible; }
.llk-cta__box { position: relative; overflow: hidden; min-height: 520px; padding: 120px 40px; border-radius: 28px; background: var(--llk-peach-card); border: 10px solid #fff; box-shadow: 0 30px 70px rgba(82, 0, 128, .10), 0 0 0 1px rgba(0,0,0,.04); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.llk-cta__shape { position: absolute; inset: 0; background: url("../img/home/cta-shape.webp") center / cover no-repeat; pointer-events: none; }
body.llk-site .llk-cta .llk-title { position: relative; max-width: 560px; text-align: center; }
.llk-cta__box > p { position: relative; margin: 22px 0 36px; max-width: 420px; font-size: 16px; line-height: 1.6; }
.llk-cta__box > div { position: relative; }
.llk-cta__kid { position: absolute; width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
.llk-cta__kid--1 { left: 114px; top: 98px; } .llk-cta__kid--2 { right: 112px; top: 96px; width: 62px; height: 62px; }
.llk-cta__kid--3 { left: 164px; top: 250px; } .llk-cta__kid--4 { right: 162px; top: 250px; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.llk-footer { position: relative; overflow: hidden; background: #000; color: #fff; padding: 110px 0 0; }
.llk-footer__top { display: grid; grid-template-columns: 340px 1fr auto; gap: 60px; padding-bottom: 120px; }
.llk-footer__logo img { width: 200px; height: auto; }
.llk-footer__brand p { margin: 32px 0 0; max-width: 300px; font: 500 16px/1.6 var(--llk-font-body); color: #fff; }
.llk-subscribe { margin-top: 56px; display: grid; justify-items: start; gap: 20px; }
.llk-subscribe input { width: 250px; height: 48px; padding: 0 16px !important; border: 1px solid rgba(255,255,255,.6) !important; border-radius: 100px !important; background: transparent !important; color: #fff !important; font: 400 16px var(--llk-font-body); }
.llk-subscribe input::placeholder { color: rgba(255,255,255,.75); }
.llk-subscribe input:focus { outline: 2px solid var(--llk-yellow); border-color: transparent !important; }
.llk-subscribe .llk-btn { border: 0 !important; cursor: pointer; }
body.llk-site .llk-subscribe .llk-btn__out { background: var(--llk-purple); color: #fff; }
.llk-subscribe__ok { display: none; margin: 0 !important; color: var(--llk-yellow); }
.llk-subscribe.is-sent .llk-subscribe__ok { display: block; }
.llk-social { display: flex; gap: 14px; margin: 0; padding: 0; list-style: none; }
body.llk-site .llk-social a { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.8); color: #fff; transition: background .3s ease, transform .3s var(--llk-ease); }
.llk-social a:hover { background: var(--llk-purple); transform: translateY(-3px); }
.llk-social .llk-ico { width: 20px; height: 20px; }
.llk-footer__cols { display: grid; grid-template-columns: repeat(3, auto); gap: 56px; }
.llk-footer__label { margin: 0 0 22px; font: 700 13px/1.2 var(--llk-font-body); letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.llk-footer__cols ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 18px; }
body.llk-site .llk-footer__cols a { position: relative; color: #fff; text-decoration: none; font: 500 16px/1.4 var(--llk-font-body); }
.llk-footer__cols a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: #fff; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--llk-ease); }
.llk-footer__cols a:hover::after { transform: scaleX(1); transform-origin: left; }
.llk-footer__bottom { border-top: 1px solid rgba(255,255,255,.2); padding: 32px 0 40px; text-align: center; }
.llk-footer__bottom p { margin: 0; font: 400 16px/1.5 var(--llk-font-body); color: #fff; }


/* =========================================================================
   COMING SOON
   ========================================================================= */
.llk-soon { min-height: 100vh; padding: 180px 20px 140px; background: var(--llk-cream); display: grid; place-items: center; text-align: center; }
.llk-soon__inner { display: flex; flex-direction: column; align-items: center; }
.llk-soon .mh-blob { position: relative; width: 150px; margin-bottom: 30px; }
body.llk-site .llk-soon__title { font-size: 72px; max-width: 900px; }
.llk-soon .llk-lead { text-align: center; max-width: 520px; }
.llk-soon__ctas { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 40px; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1379px) {
  .llk-wrap { padding-left: 40px; padding-right: 40px; }
  .mh-wrap { padding: 150px 40px 90px; grid-template-columns: 1fr 460px; }
  body.llk-site .mh-title { font-size: 68px; }
  .mh-art { transform: scale(.82); transform-origin: left center; width: 460px; }
  body.llk-site .llk-title { font-size: 52px; }
  .llk-why__grid { grid-template-columns: 1fr 1fr; gap: 60px; }
  .llk-guided__grid { grid-template-columns: 380px 1fr; }
  .llk-guided__card { flex-basis: 440px; }
  .llk-features__grid { grid-template-columns: 1fr 1.2fr; gap: 50px; }
  .llk-features__photo { width: 100%; }
  .llk-quote { flex-basis: 680px; grid-template-columns: 280px 1fr; }
  .llk-pricing__grid { grid-template-columns: 1fr 1.6fr; }
  .llk-plan--wide { grid-template-columns: 1fr 1fr; }
  .llk-footer__top { grid-template-columns: 1fr auto; }
  .llk-footer__cols { grid-column: 1 / -1; }
  .llk-cta__kid--1 { left: 60px; } .llk-cta__kid--2 { right: 60px; } .llk-cta__kid--3 { left: 100px; } .llk-cta__kid--4 { right: 100px; }
}
@media (max-width: 1023px) {
  .llk-sec { padding: 100px 0; }
  .llk-services__head, .llk-why__grid, .llk-guided__grid, .llk-features__grid, .llk-pricing__grid { grid-template-columns: 1fr; }
  .llk-services__head { gap: 0; }
  .llk-services__grid { grid-template-columns: 1fr 1fr; }
  .llk-services__photo { grid-column: 1 / -1; order: -1; height: 420px; }
  .llk-why__photo { height: 560px; }
  .llk-guided__intro { padding: 0 0 50px; border: 0; min-height: 0; }
  .llk-slider { padding-left: 0; overflow: visible; }
  .llk-guided { overflow: hidden; }
  .llk-program { grid-template-columns: 1fr; }
  .llk-program__photo { height: 340px; }
  .llk-features__photo { margin-top: 50px; }
  .llk-blog__grid { grid-template-columns: 1fr 1fr; }
  .llk-blog__grid > :last-child { display: none; }
  .llk-discover { height: 620px; }
  .mh-wrap { grid-template-columns: minmax(0, 1fr); }
  .mh-art { transform-origin: center top; margin: 0 auto; }
}
@media (max-width: 809px) {
  .llk-wrap { padding-left: 20px; padding-right: 20px; }
  .llk-sec { padding: 80px 0; }
  body.llk-site .llk-title, body.llk-site .llk-guided .llk-title { font-size: 38px; }
  body.llk-site .llk-services__title .llk-title { font-size: 34px; }
  .llk-sec__head { margin-bottom: 40px; }
  .llk-sec__head--split { flex-direction: column; align-items: flex-start; }
  .llk-services__grid, .llk-why__points, .llk-features__cards, .llk-blog__grid { grid-template-columns: 1fr; }
  .llk-blog__grid > :last-child { display: block; }
  .llk-services__card, .llk-services__card:last-child { min-height: 0; padding: 30px; gap: 40px; }
  .llk-services__photo { height: 320px; }
  .llk-why__photo { height: 420px; }
  .llk-why__points > div + div { padding: 30px 0 0; border-left: 0; border-top: 1px solid var(--llk-line); margin-top: 30px; }
  .llk-guided__card { flex-basis: 300px; min-height: 400px; padding: 30px; }
  .llk-guided__card h3 { font-size: 28px !important; }
  .llk-discover { height: 520px; padding-bottom: 70px; }
  .llk-program { position: relative; top: auto; }
  .llk-program__copy { padding: 20px; }
  .llk-num { margin-bottom: 36px; width: 56px; height: 56px; }
  .llk-program h3 { font-size: 26px !important; }
  .llk-feature { min-height: 0; }
  .llk-feature:nth-child(even) { transform: none; }
  .llk-feature h3 { margin-top: 40px !important; }
  .llk-features .llk-wrap { padding-bottom: 0; }
  .llk-quote { flex-basis: 300px; height: auto; grid-template-columns: 1fr; }
  .llk-quote__photo { height: 280px; }
  .llk-quote__body { padding: 30px; gap: 30px; }
  .llk-quote blockquote { margin-top: 0; }
  .llk-plan--wide { grid-template-columns: 1fr; }
  .llk-plan__photo { height: 300px; }
  .llk-price { font-size: 36px; margin-top: 36px !important; }
  .llk-post__img { height: 260px; }
  .llk-post__meta { padding: 26px 26px 10px; } .llk-post__title { padding: 0 26px 26px; font-size: 20px; }
  .llk-cta__box { padding: 140px 20px 120px; }
  .llk-cta__kid { width: 48px !important; height: 48px !important; }
  .llk-cta__kid--1 { left: 20px; top: 30px; } .llk-cta__kid--2 { right: 20px; top: 40px; } .llk-cta__kid--3 { left: 30px; top: auto; bottom: 30px; } .llk-cta__kid--4 { right: 30px; top: auto; bottom: 40px; }
  .llk-footer { padding-top: 80px; }
  .llk-cta { padding-bottom: 80px; }
  .llk-footer__top { grid-template-columns: 1fr; gap: 50px; padding-bottom: 80px; }
  .llk-footer__cols { grid-template-columns: 1fr 1fr; gap: 40px 30px; }
  .llk-footer__cols > :last-child { grid-column: 1 / -1; }
  .llk-swirl { opacity: .6; }
  .llk-meadow { min-height: 0; }
  .mh-wrap { padding: 120px 20px 40px; gap: 10px; }
  body.llk-site .mh-title { font-size: 46px; }
  .mh-lede { font-size: 18px; }
  .mh-art { transform: scale(.6); transform-origin: 0 0; margin: 40px 0 -216px calc(50% - 168px); }
  body.llk-site .llk-discover .llk-title { font-size: 34px; max-width: 320px; }
  body.llk-site .llk-soon__title { font-size: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .llk-js [data-reveal], .llk-js [data-words] .llk-w, .llk-js .mh-copy > *, .llk-js .mh-title .mh-w, .llk-js .mh-art { opacity: 1 !important; }
  .mh-blob, .mh-chip, .llk-spin, .llk-footer__star { animation: none !important; }
  .mh-wave path { stroke-dashoffset: 0; }
  .llk-swirl path, .llk-ellipse path { stroke-dashoffset: 0 !important; animation: none !important; }
  .llk-program { position: relative; top: auto; }
}

/* services: cards start stacked in the middle, then spread out */
.llk-services__grid > * { position: relative; }
.llk-services__photo { z-index: 2; }
.llk-cta > .llk-wrap { animation: llk-float 6s ease-in-out infinite; }
@keyframes llk-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { .llk-cta > .llk-wrap { animation: none; } }

/* footer: the yellow character peeks up from the bottom-right corner */
.llk-footer .llk-footer__buddy { position: absolute; z-index: 1; right: 70px; bottom: -70px; width: 190px; animation: llk-peek 7s ease-in-out infinite; }
@keyframes llk-peek { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-14px) rotate(3deg); } }
.llk-footer__bottom { position: relative; z-index: 2; }
@media (max-width: 1023px) { .llk-footer .llk-footer__buddy { width: 130px; right: 24px; bottom: -50px; } .llk-footer__bottom p { padding-right: 140px; text-align: left; } }
@media (max-width: 809px) { .llk-footer .llk-footer__buddy { width: 100px; bottom: -40px; } .llk-footer__bottom p { padding-right: 100px; } }
@media (prefers-reduced-motion: reduce) { .llk-footer .llk-footer__buddy { animation: none; } }

/* services: three characters bounce in stacked, roll into a row and turn into badges */
.llk-hops { position: absolute; z-index: 3; top: 46px; right: max(40px, calc((100vw - var(--llk-max)) / 2)); display: flex; gap: 2px; pointer-events: none; }
.llk-hop-slot { position: relative; width: 64px; height: 78px; }
.llk-hop { position: absolute; left: -7px; bottom: 0; width: 78px; height: 78px; overflow: visible; opacity: 0; }
.llk-hop .eye-white { fill: #FFF6E6; }
.llk-hop .pupil, .llk-hop .brow { fill: #241F1C; }
.llk-hop .shadow { fill: rgba(38, 33, 63, .12); }
@media (max-width: 809px) { .llk-hops { top: 20px; right: 16px; transform: scale(.62); transform-origin: right top; } }

/* little dome faces (faces.js) */
.llk-face { display: block; overflow: visible; }
.llk-face .ew { fill: #FFF6E6; }
.llk-face .pu, .llk-face .br, .llk-face .mo-fill { fill: #241F1C; }
.llk-face .ln { fill: none; stroke: #241F1C; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.llk-face .tongue { fill: #F08FAE; }
.llk-face .glass { fill: none; stroke: #241F1C; stroke-width: 3.5; }
.llk-face .blush { fill: #F5A65B; opacity: .35; }
.llk-face--divider { width: 70px; height: 42px; position: relative; z-index: 1; }
.llk-why__divider { height: 44px; }
.llk-feature .llk-face--card { width: 88px; height: 53px; margin-bottom: auto; }
@media (max-width: 809px) { .llk-feature .llk-face--card { width: 72px; height: 44px; } }

/* footer: three characters that keep stacking and unstacking (stackers.js) */
.llk-footer .llk-stackers { position: absolute; z-index: 1; right: max(40px, calc((100vw - var(--llk-max)) / 2)); bottom: 108px; display: flex; gap: 2px; pointer-events: none; }
.llk-stack-slot { position: relative; width: 64px; height: 78px; }
.llk-stack-ch { position: absolute; left: -7px; bottom: 0; width: 78px; height: 78px; overflow: visible; opacity: 0; }
.llk-stack-ch .eye-white { fill: #FFF6E6; } .llk-stack-ch .pupil, .llk-stack-ch .brow { fill: #241F1C; } .llk-footer .llk-stack-ch .shadow { fill: rgba(255, 255, 255, .12); }
@media (max-width: 809px) { .llk-footer .llk-stackers { bottom: 150px; right: 16px; transform: scale(.6); transform-origin: right bottom; } }

/* =========================================================================
   HOME HERO v2: centred copy + three hopping, waving characters (hero.js)
   ========================================================================= */

/* demo layout: centred title, subtitle, button, then the characters */
.llk-meadow--centre .mh-wrap{grid-template-columns:minmax(0,1fr)!important;justify-items:center;text-align:center;gap:0;padding:140px 40px 30px!important}
.llk-meadow--centre .mh-copy{display:flex;flex-direction:column;align-items:center}
body.llk-site .llk-meadow--centre .mh-title{max-width:1180px;font-size:68px}
.llk-meadow--centre .mh-eyebrow{margin-bottom:16px}.llk-meadow--centre .mh-lede{margin-top:24px;font-size:19px}.llk-meadow--centre .mh-ctas{margin-top:26px}
.llk-meadow--centre .mh-lede{max-width:720px}
.llk-meadow--centre .mh-ctas{justify-content:center}
.llk-meadow--centre .mh-art{width:100%!important;max-width:1200px;height:250px!important;transform:none!important;margin:10px auto 0!important;overflow:visible}
.duo{position:absolute;left:0;right:0;bottom:10px;height:220px}
.duo-ch{position:absolute;bottom:0;left:0;width:300px;will-change:transform}
.duo-ch svg{display:block;width:100%;height:auto;overflow:visible}
.duo-shadow{fill:rgba(38,33,63,.12)}
.duo-shine{fill:none;stroke:rgba(255,255,255,.35);stroke-width:4;stroke-linecap:round}
.duo-brows path{fill:none;stroke:#241F1C;stroke-width:3.6;stroke-linecap:round}
.duo-eye .w{fill:#FFF6E6}.duo-eye .p circle{fill:#241F1C}.duo-eye .p .g,.duo-eye .p .g2{fill:#fff}
.blush{fill:#F29BB6;opacity:.6}
.duo-mouth{fill:none;stroke:#241F1C;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.duo-oh{fill:#241F1C;opacity:0}
.duo-grin{fill:#241F1C}.duo-tongue{fill:#F08FAE}
.duo-hand{opacity:0}

/* white background, purple eyebrow, softer title */
.llk-meadow--centre{background:#fff!important}
.llk-meadow--centre .mh-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border-radius:100px;background:#F3ECFB;color:#520080;letter-spacing:.12em}
.llk-meadow--centre .mh-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:#09D89A}
body.llk-site .llk-meadow--centre .mh-title{font-weight:680;letter-spacing:-.025em;line-height:1.06;color:#241F3F}
.llk-meadow--centre .mh-wave{overflow:hidden;bottom:-16px;height:24px}
.llk-meadow--centre .mh-wave path{stroke-dasharray:none!important;stroke-dashoffset:0!important}
@media (max-width:1023px){body.llk-site .llk-meadow--centre .mh-title{font-size:60px}.llk-meadow--centre .mh-art{height:240px!important}}
@media (max-width:809px){.llk-meadow--centre .mh-wrap{padding:120px 20px 20px!important}body.llk-site .llk-meadow--centre .mh-title{font-size:42px}.llk-meadow--centre .mh-art{height:170px!important}.duo{bottom:20px}}

@media (max-width:809px){.llk-meadow--centre .mh-eyebrow{font-size:11px;letter-spacing:.07em;padding:8px 14px;gap:8px;white-space:nowrap}}
/* tiny title characters (eyes follow the cursor via faces.js) */
.mh-w--first, .mh-w--last { position: relative; }
.mh-tiny { position: absolute; width: .7em; height: .42em; overflow: visible; pointer-events: none; }
.mh-tiny--top { left: -.06em; bottom: calc(100% - .2em); }
.mh-tiny--side { left: calc(100% + .1em); bottom: .12em; }
@media (max-width: 809px) { .mh-tiny--side { left: auto; right: .1em; bottom: calc(100% - .26em); } }

/* hero fits the first screen: less space under the header, smaller on short laptop screens */
.llk-meadow.llk-meadow--centre { min-height: 0 !important; align-items: flex-start; }
.llk-meadow--centre .mh-wrap { padding-top: 112px !important; }
@media (min-width: 810px) and (max-height: 860px) {
  body.llk-site .llk-meadow--centre .mh-title { font-size: 58px; }
  .llk-meadow--centre .mh-lede { margin-top: 18px; font-size: 18px; }
  .llk-meadow--centre .mh-ctas { margin-top: 20px; }
  .llk-meadow--centre .mh-art { height: 215px !important; }
}
@media (min-width: 810px) and (max-height: 740px) {
  body.llk-site .llk-meadow--centre .mh-title { font-size: 50px; }
  .llk-meadow--centre .mh-wrap { padding-top: 100px !important; }
  .llk-meadow--centre .mh-art { height: 180px !important; }
}

/* =========================================================================
   Home hero doodles: birds, cloud, tulips, rainbow over the headline (inc/hero-art.php)
   ========================================================================= */
.llk-doodles { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.llk-meadow--centre .mh-wrap { position: relative; z-index: 1; }
.llk-dd { position: absolute; display: block; }
.llk-dd svg { display: block; width: 100%; height: auto; overflow: visible; }
.llk-dd--cloud { left: max(30px, calc(50% - 680px)); top: 300px; width: 150px; animation: llk-dd-drift 14s ease-in-out infinite alternate; }
.llk-dd--bird1 { left: max(150px, calc(50% - 540px)); top: 405px; width: 120px; animation: llk-dd-fly 6s ease-in-out infinite; }
.llk-dd--bird2 { right: max(40px, calc(50% - 650px)); top: 300px; width: 112px; animation: llk-dd-fly 7s ease-in-out -2s infinite; }
.llk-dd-bird .wing { transform-box: fill-box; transform-origin: 50% 100%; animation: llk-dd-flap .9s ease-in-out infinite alternate; }
.llk-dd--bird2 .wing { animation-duration: 1.2s; }
.llk-dd-tulips { display: inline-flex; align-items: flex-end; gap: 0; margin: -10px -6px -6px 2px; }
.llk-dd-tulip { width: 30px; height: 30px; transform-origin: 50% 100%; animation: llk-dd-sway 3s ease-in-out infinite alternate; }
.llk-dd-tulip + .llk-dd-tulip { width: 23px; height: 23px; margin-left: -8px; animation-delay: -1.4s; }
@keyframes llk-dd-drift { from { transform: translateX(0); } to { transform: translateX(40px); } }
@keyframes llk-dd-fly { 0%, 100% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(14px, -16px) rotate(3deg); } }
@keyframes llk-dd-flap { from { transform: scaleY(1); } to { transform: scaleY(.55); } }
@keyframes llk-dd-sway { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
@media (max-width: 1023px) {
  .llk-dd--cloud { top: 360px; width: 110px; }
  .llk-dd--bird1 { left: 30px; top: 470px; width: 92px; }
  .llk-dd--bird2 { top: 360px; width: 86px; }
}
@media (max-width: 809px) {
  .llk-dd--cloud { left: auto; right: 18px; top: 520px; width: 70px; }
  .llk-dd--bird1 { left: 14px; top: 525px; width: 62px; }
  .llk-dd--bird2, .llk-dd-rainbow { display: none; }
  .llk-dd-tulip { width: 20px; height: 20px; } .llk-dd-tulip + .llk-dd-tulip { width: 16px; height: 16px; }
}
/* rainbow over the word "around" in the headline */
.mh-w--rainbow { position: relative; display: inline-block; }
.llk-dd-rainbow { position: absolute; z-index: -1; left: 50%; bottom: 80%; width: 1.3em; height: auto; transform: translateX(-50%); transform-origin: 50% 100%; overflow: visible; animation: llk-dd-rise 1s .6s cubic-bezier(.34,1.56,.64,1) both, llk-dd-glow 5s 1.6s ease-in-out infinite; }

.mh-w--rainbow.is-wrapped .llk-dd-rainbow { display: none; }
@keyframes llk-dd-rise { from { transform: translateX(-50%) scale(0); opacity: 0; } to { transform: translateX(-50%) scale(1); opacity: 1; } }
@keyframes llk-dd-glow { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.04); } }
@media (prefers-reduced-motion: reduce) {
  .llk-dd, .llk-dd *, .llk-dd-tulip, .llk-dd-rainbow { animation: none !important; }
}

/* =========================================================================
   Home hero (v2): headline + big friendly circle in the clouds
   ====================================================================== */
.llk-meadow.lh2 { display: block; min-height: 0; background: var(--llk-cream, #FCF9EC) !important; overflow: hidden; position: relative; }
.lh2-wrap { position: relative; z-index: 2; width: 100%; max-width: var(--llk-max, 1300px); margin: 0 auto; padding: 130px 40px 0;
  display: grid; grid-template-columns: 540px minmax(0, 1fr); gap: 64px; align-items: end; min-height: 830px; }

/* ---------- right: the headline (same content as today) ---------- */
.lh2 .mh-copy { align-self: center; padding-bottom: 150px; text-align: left; }
.lh2 .mh-eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 9px 18px; border-radius: 100px; background: #F3ECFB; color: #520080; letter-spacing: .12em; margin: 0 0 22px; }
.lh2 .mh-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: #09D89A; }
body.llk-site .lh2 .mh-title { max-width: none; font-size: 58px; font-weight: 680; letter-spacing: -.025em; line-height: 1.14; color: #241F3F; }
.lh2 .mh-wave { overflow: hidden; bottom: -16px; height: 24px; }
.lh2 .mh-lede { margin-top: 26px; max-width: 560px; font-size: 19px; }

/* ---------- left: the big circle ---------- */
.lh2-moonbox { position: relative; align-self: end; justify-self: end; width: 500px; height: 500px; margin-bottom: 4px; }
.lh2-moon { position: absolute; inset: 0; border-radius: 50%; background: #1E2F47; box-shadow: 0 0 0 16px #fff, 0 30px 80px -30px rgba(30, 47, 71, .45);
  display: flex; flex-direction: column; align-items: center; padding-top: 44px; text-align: center; color: #fff; transform-origin: 50% 100%; }
.lh2-eyes { width: 47%; height: auto; overflow: visible; display: block; }
.lh2-eye .w { fill: #fff; }
.lh2-eye .p circle { fill: #1E2F47; }
.lh2-eye .p .g { fill: #fff; }
.lh2-eye { transform-box: fill-box; transform-origin: center; }
.lh2-cheek { fill: #B6563D; }
.lh2-moon__eyebrow { margin: 16px 0 0 !important; font: 800 13px/1.2 var(--llk-font-head) !important; letter-spacing: .3em !important; text-transform: uppercase; color: #fff !important; }
body.llk-site .lh2-moon__title { margin: 16px 0 0 !important; max-width: 390px; font: 800 44px/1.1 var(--llk-font-head) !important; letter-spacing: -.01em; color: #fff !important; }
/* "Schedule a Visit": the same button as Donate (text rolls, the purple arrow slides out and a yellow one slides in) */
body.llk-site .lh2-moon__cta { margin-top: 24px; gap: 26px; padding: 11px 12px 11px 28px; font-size: 18px; font-weight: 700; box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5); }
body.llk-site .lh2-moon__cta:hover { transform: translateY(-2px); }
.lh2-moon__cta .llk-btn__text { height: 27px; line-height: 27px; }
.lh2-moon__cta .llk-btn__icon { width: 42px; height: 42px; }
.lh2-moon__cta .llk-btn__icon svg { width: 20px; height: 20px; }
.lh2-moon__cta:focus-visible { outline: 3px solid #F2B33D; outline-offset: 4px; }
.lh2-spark { position: absolute; width: 46px; height: 46px; animation: lh2-twinkle 3.2s ease-in-out infinite; }
.lh2-spark--w { left: 9%; top: 27%; fill: #fff; }
.lh2-spark--y { right: 13%; top: 25%; width: 34px; height: 34px; fill: #F2B33D; animation-delay: -1.6s; }
@keyframes lh2-twinkle { 0%, 100% { transform: scale(1) rotate(0); opacity: 1; } 50% { transform: scale(.72) rotate(12deg); opacity: .75; } }

/* ---------- clouds + the three little friends ---------- */
.lh2-clouds { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 150px; display: block; pointer-events: none; }
.lh2-clouds--back { z-index: 1; height: 175px; }
.lh2-clouds--back path { fill: #fff; opacity: .55; }
.lh2-clouds--front { z-index: 4; }
.lh2-clouds--front path { fill: #fff; }
.lh2-stage { position: absolute; left: 0; right: 0; bottom: 0; height: 100%; z-index: 3; pointer-events: none; }
.lh2-stage .duo-ch { position: absolute; left: 0; bottom: 64px; width: 110px; will-change: transform; }
.lh2-stage .duo-ch svg { display: block; width: 100%; height: auto; overflow: visible; }
.lh2-stage .duo-shadow { opacity: 0; }

/* entrance: hidden until the script brings them in (shown as-is without the script) */
.llk-js .lh2-moon { opacity: 0; }
.llk-anim-done:not(.llk-home-ready) .lh2-moon { opacity: 1 !important; }

/* ---------- smaller screens ---------- */
@media (max-width: 1200px) {
  .lh2-wrap { grid-template-columns: 450px minmax(0, 1fr); gap: 44px; min-height: 780px; }
  .lh2-moonbox { width: 430px; height: 430px; }
  .lh2-moon { padding-top: 38px; }
  body.llk-site .lh2-moon__title { font-size: 36px !important; max-width: 320px; margin-top: 12px !important; }
  body.llk-site .lh2-moon__cta { margin-top: 18px; }
  body.llk-site .lh2 .mh-title { font-size: 44px; }
}
@media (max-width: 900px) {
  .lh2-wrap { grid-template-columns: minmax(0, 1fr); gap: 46px; padding: 120px 24px 0; min-height: 0; justify-items: center; }
  .lh2 .mh-copy { order: -1; padding-bottom: 0; text-align: center; display: flex; flex-direction: column; align-items: center; }
  .lh2 .mh-lede { margin-left: auto; margin-right: auto; }
  .lh2-moonbox { justify-self: center; width: 400px; height: 400px; margin-bottom: 10px; }
  .lh2-moon { padding-top: 44px; }
  body.llk-site .lh2-moon__title { font-size: 34px !important; max-width: 300px; }
}
@media (max-width: 560px) {
  .lh2-wrap { padding: 110px 20px 0; gap: 40px; }
  body.llk-site .lh2 .mh-title { font-size: 40px; }
  .lh2 .mh-eyebrow { font-size: 11px; letter-spacing: .08em; padding: 8px 14px; }
  .lh2 .mh-lede { font-size: 17px; }
  .lh2-moonbox { width: 290px; height: 290px; margin-bottom: 30px; }
  .lh2-moon { padding-top: 24px; box-shadow: 0 0 0 10px #fff, 0 20px 60px -30px rgba(30, 47, 71, .45); }
  .lh2-moon__eyebrow { margin-top: 10px !important; font-size: 9px !important; letter-spacing: .22em !important; }
  body.llk-site .lh2-moon__title { margin-top: 8px !important; font-size: 25px !important; max-width: 220px; }
  body.llk-site .lh2-moon__cta { margin-top: 14px; padding: 7px 8px 7px 18px; font-size: 15px; gap: 14px; }
  .lh2-moon__cta .llk-btn__icon { width: 32px; height: 32px; } .lh2-moon__cta .llk-btn__text { height: 24px; line-height: 24px; }
  .lh2-spark { width: 28px; height: 28px; } .lh2-spark--y { width: 22px; height: 22px; }
  .lh2-clouds { height: 96px; } .lh2-clouds--back { height: 112px; }
  .lh2-stage .duo-ch { bottom: 44px; }
}
@media (prefers-reduced-motion: reduce) { .lh2-spark { animation: none; } }

/* ---------- headline on three lines; the rainbow sits over "around" ---------- */
.lh2 .mh-title .lh2-br { display: block; content: ""; }
.lh2 .mh-w--rainbow.is-wrapped .llk-dd-rainbow { display: block; }
.lh2 .llk-dd-rainbow { bottom: 75%; width: 1.06em; }
@media (max-width: 700px) { .lh2 .mh-title .lh2-br { display: none; } .lh2 .mh-w--rainbow .llk-dd-rainbow { display: none !important; } }

/* ---------- the circle's smile (version B) ---------- */
.lh2-mouth { fill: none; stroke: #fff; stroke-width: 6; stroke-linecap: round; opacity: 0; }

/* ---------- version B: headline on the left, circle on the right ---------- */
.lh2--b .lh2-wrap { grid-template-columns: minmax(0, 1fr) 540px; }
.lh2--b .lh2-moonbox { order: 2; justify-self: start; }
.lh2--b .mh-copy { order: 1; }
.lh2--b .duo-ch { pointer-events: auto; cursor: pointer; }
@media (max-width: 1200px) { .lh2--b .lh2-wrap { grid-template-columns: minmax(0, 1fr) 450px; } }
@media (max-width: 900px) { .lh2--b .lh2-wrap { grid-template-columns: minmax(0, 1fr); } .lh2--b .lh2-moonbox { justify-self: center; } }

/* ---------- flipped: big circle on the left, headline on the right ---------- */
.lh2--b.lh2--flip .lh2-wrap { grid-template-columns: 540px minmax(0, 1fr); }
.lh2--b.lh2--flip .lh2-moonbox { order: 1; justify-self: end; }
.lh2--b.lh2--flip .mh-copy { order: 2; }
@media (max-width: 1200px) { .lh2--b.lh2--flip .lh2-wrap { grid-template-columns: 450px minmax(0, 1fr); } }
@media (max-width: 900px) {
  .lh2--b.lh2--flip .lh2-wrap { grid-template-columns: minmax(0, 1fr); }
  .lh2--b.lh2--flip .mh-copy { order: 1; } .lh2--b.lh2--flip .lh2-moonbox { order: 2; justify-self: center; }
}

/* =========================================================================
   Footer (v2): link columns + "Say hello" (address, phone, email, social); stacking friends stay bottom-right
   ====================================================================== */
.llk-footer--v2 { padding-top: 96px; }
.llk-footer--v2 .llk-footer__top { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1.25fr); gap: 64px; align-items: start; padding-bottom: 190px; }
.llk-footer--v2 .llk-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.llk-footer--v2 .llk-footer__label { position: relative; padding-bottom: 14px; margin-bottom: 24px; }
.llk-footer--v2 .llk-footer__label::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 3px; border-radius: 3px; background: var(--llk-green); }
.llk-footer--v2 .llk-footer__col:nth-child(2) .llk-footer__label::after { background: var(--llk-yellow); }
.llk-footer--v2 .llk-footer__col:nth-child(3) .llk-footer__label::after { background: #B57BE0; }
.llk-footer--v2 .llk-footer__hello .llk-footer__label::after { background: #F29BB6; }
.llk-footer--v2 .llk-footer__cols ul { gap: 16px; }
.llk-footer__hello { padding: 30px 30px 32px; border-radius: 22px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.llk-footer__contact { margin: 0 0 26px; padding: 0; list-style: none; display: grid; gap: 16px; }
body.llk-site .llk-footer__contact a { display: flex; align-items: flex-start; gap: 12px; color: #fff; text-decoration: none; font: 500 16px/1.45 var(--llk-font-body); transition: color .3s ease; }
body.llk-site .llk-footer__contact a:hover { color: var(--llk-yellow); }
.llk-footer__contact .llk-ico { flex: none; width: 20px; height: 20px; margin-top: 1px; color: rgba(255, 255, 255, .7); }
.llk-footer--v2 .llk-social { flex-wrap: wrap; gap: 10px; }
body.llk-site .llk-footer--v2 .llk-social a { width: 42px; height: 42px; }
.llk-footer--v2 .llk-social .llk-ico { width: 18px; height: 18px; }
.llk-footer--v2 .llk-footer__bottom { padding-top: 28px; padding-bottom: 34px; }
.llk-footer--v2 .llk-footer__bottom p { font-size: 15px; color: rgba(255, 255, 255, .75); }
@media (max-width: 1100px) {
  .llk-footer--v2 .llk-footer__top { grid-template-columns: 1fr; gap: 48px; }
  .llk-footer__hello { max-width: 560px; }
}
@media (max-width: 809px) {
  .llk-footer--v2 { padding-top: 70px; }
  .llk-footer--v2 .llk-footer__top { padding-bottom: 170px; }
  .llk-footer--v2 .llk-footer__cols { grid-template-columns: 1fr 1fr; gap: 40px 24px; }
  .llk-footer--v2 .llk-footer__cols > :last-child { grid-column: 1 / -1; }
  .llk-footer__hello { padding: 24px 22px; }
}

/* ---------- Services ("Where would you like to start?"): three boxes the same size; links as a tick list ---------- */
.llk-services__grid { align-items: stretch; }
.llk-services__card, .llk-services__card:last-child { min-height: 0; height: 100%; padding: 34px 34px 36px; justify-content: flex-start; gap: 30px; }
.llk-services__card .llk-badge { width: 60px; height: 60px; }
.llk-services__photo { height: 100%; min-height: 420px; }
.llk-svc-links { margin: 22px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; }
.llk-services__card:last-child .llk-svc-links { grid-template-columns: 1fr; }
body.llk-site .llk-svc-links a { display: inline-flex; align-items: center; gap: 10px; color: var(--llk-ink); text-decoration: none; font: 600 16px/1.3 var(--llk-font-body); }
.llk-svc-links .llk-ico { flex: none; width: 22px; height: 22px; transition: transform .35s var(--llk-ease); }
.llk-svc-links a span { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size .4s var(--llk-ease); padding-bottom: 1px; }
.llk-svc-links a:hover span, .llk-svc-links a:focus-visible span { background-size: 100% 1.5px; }
.llk-svc-links a:hover .llk-ico { transform: scale(1.12); }
@media (max-width: 1023px) { .llk-services__photo { min-height: 0; height: 420px; } }
@media (max-width: 809px) { .llk-services__photo { height: 320px; } }

/* ---------- Why choose us: the picture is exactly as tall as the text beside it ---------- */
.llk-front .llk-why:not(.llk-intake) .llk-why__grid { align-items: stretch; }
.llk-front .llk-why:not(.llk-intake) .llk-why__photo { height: auto; min-height: 560px; position: relative; }
.llk-front .llk-why:not(.llk-intake) .llk-why__photo img { position: absolute; left: 0; right: 0; top: -6%; height: 112%; object-position: 50% 30%; }
@media (max-width: 1023px) { .llk-front .llk-why:not(.llk-intake) .llk-why__photo { min-height: 640px; } }
@media (max-width: 809px) { .llk-front .llk-why:not(.llk-intake) .llk-why__photo { min-height: 520px; } }

/* ---------- Donate button buddy: a small gumdrop hides behind the button, peeks out of the left
   corner, later the right corner; on hover it comes all the way out and nods hello. ---------- */
.llk-peek { position: relative; display: inline-flex; isolation: isolate; }
.llk-peek > .llk-btn { position: relative; z-index: 1; }
.llk-peek__buddy { position: absolute; z-index: 0; left: 40%; bottom: 2px; width: 50px; height: 30px; pointer-events: none;
  animation: llk-peek-back .5s ease-in both, llk-peek 11s ease-in-out 3s infinite; }
.llk-peek__buddy .llk-face { display: block; width: 100%; height: 100%; transform-origin: 50% 100%; }
@keyframes llk-peek {
  0%, 14%   { left: 40%; }
  20%, 34%  { left: -38px; }                 /* peeks out of the left corner */
  40%, 60%  { left: 40%; }
  66%, 80%  { left: calc(100% - 12px); }     /* … then out of the right corner */
  86%, 100% { left: 40%; }
}
.llk-peek__buddy .llk-face { animation: llk-peek-tilt 11s ease-in-out 3s infinite; }
@keyframes llk-peek-tilt {   /* a little curious head tilt while it looks out */
  0%, 22%, 32%, 68%, 78%, 100% { transform: rotate(0); }
  26% { transform: rotate(-9deg); } 29% { transform: rotate(-5deg); }
  72% { transform: rotate(9deg); }  75% { transform: rotate(5deg); }
}
.llk-peek:hover .llk-peek__buddy, .llk-peek:focus-within .llk-peek__buddy { animation: llk-peek-out .45s cubic-bezier(.3, 1.5, .5, 1) forwards; }
.llk-peek:hover .llk-peek__buddy .llk-face, .llk-peek:focus-within .llk-peek__buddy .llk-face { animation: llk-peek-nod 1.1s ease-in-out .35s 2; }
@keyframes llk-peek-out { from { left: 40%; } to { left: -60px; } }
@keyframes llk-peek-back { from { left: -60px; } to { left: 40%; } }   /* mouse leaves: it scoots back behind the button */
@keyframes llk-peek-nod {   /* nods its head: yes, yes! */
  0%, 100% { transform: rotate(0) translateY(0); }
  20% { transform: rotate(7deg) translateY(1px); }
  40% { transform: rotate(-2deg) translateY(-1px); }
  60% { transform: rotate(7deg) translateY(1px); }
  80% { transform: rotate(-1deg); }
}
@media (prefers-reduced-motion: reduce) {
  .llk-peek__buddy, .llk-peek__buddy .llk-face { animation: none !important; }
  .llk-peek:hover .llk-peek__buddy { left: -60px; }
}
@media (max-width: 1100px) { .llk-peek { display: none; } }

/* ---------- Header: Enquire (purple, chat bubble) next to Donate ---------- */
.llk-header__ctas { display: flex; align-items: center; gap: 12px; }
body.llk-site .llk-btn--enquire { --btn-bg: var(--llk-purple); --btn-fg: #fff; }
body.llk-site .llk-btn--enquire .llk-btn__out { background: var(--llk-yellow); color: #000; }
body.llk-site .llk-btn--enquire .llk-btn__in { background: #fff; color: var(--llk-purple); }
/* Enquire's yellow gumdrop only peeks out of the LEFT corner; on hover it comes out on the left and nods (default behaviour) */
.llk-peek--enquire .llk-peek__buddy { animation: llk-peek-back .5s ease-in both, llk-peek-left 11s ease-in-out 1.5s infinite; }
@keyframes llk-peek-left { 0%, 14% { left: 40%; } 20%, 34% { left: -38px; } 40%, 100% { left: 40%; } }
/* Donate next to Enquire: its gumdrop no longer peeks out on the left (it would bump into Enquire), only on the right */
.llk-peek--right .llk-peek__buddy { animation: llk-peek-back-r .5s ease-in both, llk-peek-right 11s ease-in-out 3s infinite; }
@keyframes llk-peek-right { 0%, 60% { left: 40%; } 66%, 80% { left: calc(100% - 12px); } 86%, 100% { left: 40%; } }
.llk-peek--right:hover .llk-peek__buddy, .llk-peek--right:focus-within .llk-peek__buddy { animation: llk-peek-out-r .45s cubic-bezier(.3, 1.5, .5, 1) forwards; }
@keyframes llk-peek-out-r { from { left: 40%; } to { left: calc(100% - 12px); } }
@keyframes llk-peek-back-r { from { left: calc(100% - 12px); } to { left: 40%; } }
@media (prefers-reduced-motion: reduce) { .llk-peek--right:hover .llk-peek__buddy { left: calc(100% - 12px); } }
/* phones + tablets: menu is behind the burger; Enquire stays visible next to it */
@media (max-width: 1100px) {
  .llk-header__ctas { margin-left: auto; margin-right: -12px; }
  .llk-header .llk-peek--enquire { display: inline-flex; }
  .llk-header .llk-peek--enquire .llk-peek__buddy { display: none; }
  .llk-mobile__ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
  .llk-mobile__ctas .llk-mobile__cta { margin-top: 0; }
}
@media (max-width: 809px) {
  body.llk-site .llk-header__enquire { gap: 0; padding: 9px 16px; font-size: 15px; }
  .llk-header__enquire .llk-btn__icon { display: none; }
}

/* ---------- "Schedule a visit" buttons: a tiny gumdrop sits on top; hover → it smiles and wiggles ---------- */
body.llk-site a.llk-btn[href*="schedule-a-visit"] { position: relative; overflow: visible; }
body.llk-site a.llk-btn[href*="schedule-a-visit"]::before { content: ""; position: absolute; left: 18px; bottom: calc(100% - 2px); width: 46px; height: 26px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='4 54 114 64'%3E%3Cpath fill='%2309D89A' d='M8 108C8 80 30 58 62 58C94 58 114 80 114 104C114 113 101 115 61 115C21 115 8 114 8 108Z'/%3E%3Ccircle cx='46' cy='88' r='8.5' fill='%23fff'/%3E%3Ccircle cx='74' cy='88' r='8.5' fill='%23fff'/%3E%3Ccircle cx='47' cy='89' r='5' fill='%231d1530'/%3E%3Ccircle cx='75' cy='89' r='5' fill='%231d1530'/%3E%3Cpath d='M54 103Q60 107 66 103' fill='none' stroke='%231d1530' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") center bottom / contain no-repeat; transform-origin: 50% 100%; transition: transform .3s var(--llk-ease); }
body.llk-site a.llk-btn[href*="schedule-a-visit"]:hover::before, body.llk-site a.llk-btn[href*="schedule-a-visit"]:focus-visible::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='4 54 114 64'%3E%3Cpath fill='%2309D89A' d='M8 108C8 80 30 58 62 58C94 58 114 80 114 104C114 113 101 115 61 115C21 115 8 114 8 108Z'/%3E%3Cpath d='M38 91Q46 80 54 91M66 91Q74 80 82 91' fill='none' stroke='%231d1530' stroke-width='4.5' stroke-linecap='round'/%3E%3Cellipse cx='33' cy='100' rx='6' ry='3.5' fill='%23ff8fb0'/%3E%3Cellipse cx='87' cy='100' rx='6' ry='3.5' fill='%23ff8fb0'/%3E%3Cpath d='M47 98Q60 100 73 98Q71 112 60 112Q49 112 47 98Z' fill='%231d1530'/%3E%3Cpath d='M53 107Q60 103 67 107Q64 111 60 111Q56 111 53 107Z' fill='%23ff6b8b'/%3E%3C/svg%3E"); animation: llk-tiny-wiggle .7s ease-in-out; }
@keyframes llk-tiny-wiggle { 0%, 100% { transform: rotate(0) scale(1.08); } 20% { transform: rotate(-12deg) scale(1.12); } 40% { transform: rotate(10deg) scale(1.12); } 60% { transform: rotate(-7deg) scale(1.1); } 80% { transform: rotate(4deg) scale(1.08); } }
body.llk-site a.llk-btn[href*="schedule-a-visit"]:hover::before { transform: scale(1.08); }
body.llk-site .llk-cta__action a.llk-btn::before { content: none; }   /* the CTA section has its two pals instead */

/* ---------- CTA section: two gumdrop pals above the button; they look at each other and shuffle about,
   and wave when the button is hovered ---------- */
.llk-cta__action { display: flex; flex-direction: column; align-items: center; }
.llk-cta__pals { display: flex; gap: 26px; justify-content: center; margin: 4px 0 2px; height: 34px; pointer-events: none; }
.llk-cta__pal { display: block; width: 56px; height: 34px; }
.llk-cta__pal .llk-face { display: block; width: 100%; height: 100%; overflow: visible; }
.llk-cta__pal--a { animation: llk-pal-a 5.5s ease-in-out infinite; }
.llk-cta__pal--b { animation: llk-pal-b 6.5s ease-in-out infinite; }
@keyframes llk-pal-a { 0%, 100% { transform: translateX(0); } 30% { transform: translateX(-12px); } 55% { transform: translateX(-4px) translateY(-3px); } 75% { transform: translateX(6px); } }
@keyframes llk-pal-b { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(10px); } 50% { transform: translateX(3px) translateY(-3px); } 80% { transform: translateX(-7px); } }
@media (prefers-reduced-motion: reduce) {
  .llk-cta__pal--a, .llk-cta__pal--b, body.llk-site a.llk-btn[href*="schedule-a-visit"]:hover::before { animation: none; }
}

/* ---------- LLK-MOBILE-HEADER-CTAS: phones + tablets keep Enquire AND Donate in the header, next to a lighter menu button ---------- */
@media (max-width: 1100px) {
  body.llk-site .llk-header .llk-peek--right { display: inline-flex; }
  body.llk-site .llk-header .llk-peek--right .llk-peek__buddy { display: none; }
  body.llk-site .llk-header .llk-header__cta { display: inline-flex; }
  body.llk-site .llk-burger { flex: none; width: 44px; background: var(--llk-lilac-card) !important; }
  body.llk-site .llk-burger > span:first-child,
  body.llk-site .llk-burger > span:first-child::before,
  body.llk-site .llk-burger > span:first-child::after { background: var(--llk-purple); }
  body.llk-site .llk-burger[aria-expanded="true"] > span:first-child { background: transparent; }
}
@media (max-width: 809px) {
  body.llk-site .llk-header .llk-header__cta { gap: 0; padding: 9px 16px; font-size: 15px; }
  .llk-header .llk-header__cta .llk-btn__icon { display: none; }
}
@media (max-width: 480px) {
  .llk-header__inner { padding: 10px 14px; gap: 8px; }
  .llk-logo img { height: 26px !important; width: auto !important; }
  .llk-header__ctas { gap: 6px; margin-right: 0; }
  body.llk-site .llk-header__enquire, body.llk-site .llk-header .llk-header__cta { padding: 8px 12px; font-size: 14px; }
  body.llk-site .llk-burger { width: 40px; height: 40px; }
}
@media (max-width: 360px) {
  .llk-header__inner { padding: 10px 12px; gap: 6px; }
  .llk-logo img { height: 20px !important; }
  .llk-header__ctas { gap: 5px; }
  body.llk-site .llk-header__enquire, body.llk-site .llk-header .llk-header__cta { padding: 7px 10px; font-size: 13px; }
}

/* ---------- LLK-HEADING-WRAP: a highlighted phrase in a heading may wrap onto the next line when it is wider than its column (phones, tablets), instead of running off the screen. Headings that fit are unchanged. ---------- */
.llk-hl, .mh-uline { white-space: normal; max-width: 100%; }
/* form sections: the text column and the form box may shrink to the screen width (form fields have a built-in minimum width that pushed the column off small screens) */
.llk-formsec__grid > * { min-width: 0; }
.llk-f-grid > *, .llk-cf7 .wpcf7-form > * { min-width: 0; }
.llk-cf7 input:not([type="checkbox"]):not([type="radio"]), .llk-cf7 select, .llk-cf7 textarea { max-width: 100%; }
/* text pages (Privacy Policy …): the text column fits the screen; only an unbreakable item such as a long web address may wrap */
.llk-prose { min-width: 0; overflow-wrap: break-word; }
/* Home "Four therapists. One plan.": on phones the column fits the screen (the card slider beside it had stretched it), so the heading is not cut off */
.llk-guided__grid > * { min-width: 0; }
/* very small phones (360px and below): page titles a little smaller so long single words ("Compassionate", "Transformational") fit on the line */
@media (max-width: 360px) { body.llk-site .llk-phero__title { font-size: 34px !important; } }
