/* Lilora site styles. Mobile-first; colours meet WCAG AA where they carry text. */

:root {
	--night: #2b2a6b;
	--violet: #5b4bc4;
	--navy: #2b3a67;
	--ink: #24304f;
	--muted: #55607e;
	--rose: #d4789a;
	--rose-deep: #a33d66;
	--blush: #fde6ee;
	--gold: #e2ae3e;
	--gold-deep: #8a5f12;
	--butter: #fff3c4;
	--leaf: #5aa58a;
	--leaf-deep: #2f7560;
	--cream: #fffaf0;
	--sand: #f0e2bf;
	--white: #fff;
	--radius: 18px;
	--shadow: 0 1px 2px rgba(43, 42, 107, .06), 0 6px 20px rgba(43, 42, 107, .08);
	--sky: radial-gradient(120% 90% at 50% 30%, #6d5bd0 0%, #3b3486 48%, #2b2a6b 100%);
	--display: Fredoka, 'Trebuchet MS', system-ui, sans-serif;
	--wrap: 1160px;
	--gutter: 16px;
}

/* ---------- Base */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: hidden; }
img, svg, video, iframe { max-width: 100%; height: auto; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--violet); outline-offset: 3px; border-radius: 6px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 8px; top: -60px; z-index: 1000; background: var(--white); color: var(--navy); padding: .7rem 1rem; border-radius: 10px; font-family: var(--display); font-weight: 600; }
.skip-link:focus { top: 8px; }
.wp-site-blocks { padding: 0; }
.site-main { padding-bottom: 3rem; }
.site-main > .wp-block-post-content, .page-wide .wp-block-post-content { margin-top: 0; }
.page-standard { padding-top: 2rem; }
.page-standard .page-title { margin-bottom: 1rem; }
.kicker { font-family: var(--display); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem; color: var(--gold-deep); margin: 0 0 .35rem; }
.kicker a { color: inherit; text-decoration: none; }
.kicker--light { color: #fbe3a0; }
.lede { font-size: 1.2rem; color: var(--muted); }
.small { font-size: .9rem; color: var(--muted); }
.wrap, .section { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.is-layout-constrained > .alignwide { max-width: var(--wrap); }

/* ---------- Buttons */
.lbtn, .wp-block-button__link, .edd-submit, #edd-purchase-button, .pmpro_btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	min-height: 48px; padding: .75rem 1.4rem; border-radius: 999px; border: 2px solid transparent;
	font-family: var(--display); font-weight: 600; font-size: 1.05rem; line-height: 1.15; text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, transform .1s ease;
}
.lbtn:active { transform: translateY(1px); }
.lbtn--primary, .edd-submit.button.blue, .edd-submit, #edd-purchase-button { background: var(--rose-deep); color: var(--white) !important; }
.lbtn--primary:hover, .edd-submit:hover, #edd-purchase-button:hover { background: var(--navy); }
.lbtn--secondary { background: var(--white); color: var(--navy); border-color: var(--navy); }
.lbtn--secondary:hover { background: var(--navy); color: var(--white); }
.lbtn--light { background: #fbe3a0; color: var(--night); }
.lbtn--light:hover { background: var(--white); }
.lbtn--ghost { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .7); }
.lbtn--ghost:hover { background: rgba(255, 255, 255, .12); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--navy); border-color: var(--navy); }

/* ---------- Header */
.site-header { background: var(--night); color: var(--white); position: relative; z-index: 50; }
.site-header__inner { max-width: var(--wrap); margin: 0 auto; padding: .55rem var(--gutter); display: flex; align-items: center; gap: 1rem; min-height: 64px; }
.lilora-logo { display: inline-flex; align-items: center; gap: .45rem; text-decoration: none; color: var(--white); margin-right: auto; }
.lilora-wordmark { font-family: var(--display); font-weight: 600; font-size: 1.75rem; letter-spacing: .01em; line-height: 1; }
.lilora-wordmark .lil { color: #f7b0cb; }
.lilora-logo.on-light { color: var(--navy); }
.lilora-logo.on-light .lil { color: var(--rose-deep); }
.site-nav__list { display: none; }
.site-nav__mobile { position: relative; }
.site-nav__mobile summary { list-style: none; display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; padding: 0 .9rem; border-radius: 999px; border: 2px solid rgba(255, 255, 255, .5); cursor: pointer; font-family: var(--display); font-weight: 600; }
.site-nav__mobile summary::-webkit-details-marker { display: none; }
.burger, .burger::before, .burger::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; position: relative; }
.burger::before, .burger::after { content: ""; position: absolute; left: 0; }
.burger::before { top: -6px; } .burger::after { top: 6px; }
.site-nav__mobile[open] .burger { background: transparent; }
.site-nav__mobile[open] .burger::before { top: 0; transform: rotate(45deg); }
.site-nav__mobile[open] .burger::after { top: 0; transform: rotate(-45deg); }
.site-nav__mobile ul { position: absolute; right: 0; top: calc(100% + 8px); width: min(280px, calc(100vw - 32px)); margin: 0; padding: .5rem; list-style: none; background: var(--white); border-radius: 16px; box-shadow: var(--shadow); }
.site-nav__mobile li a { display: block; padding: .85rem 1rem; border-radius: 10px; color: var(--navy); text-decoration: none; font-family: var(--display); font-weight: 600; font-size: 1.15rem; }
.site-nav__mobile li a:hover, .site-nav__mobile li a[aria-current] { background: var(--blush); }
.site-nav a { color: var(--white); }
.header-cart { color: var(--white); font-family: var(--display); font-weight: 600; text-decoration: none; padding: .5rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .14); white-space: nowrap; }
@media (min-width: 860px) {
	.site-nav__mobile { display: none; }
	.site-nav__list { display: flex; gap: .2rem; list-style: none; margin: 0; padding: 0; }
	.site-nav__list a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .9rem; border-radius: 999px; text-decoration: none; font-family: var(--display); font-weight: 600; font-size: 1.05rem; }
	.site-nav__list a:hover { background: rgba(255, 255, 255, .12); }
	.site-nav__list a[aria-current] { background: rgba(255, 255, 255, .18); box-shadow: inset 0 -3px 0 #f7b0cb; }
}

/* ---------- Footer */
.site-footer { background: var(--night); color: #e9e7ff; margin-top: 0; }
.site-footer a { color: #fbe3a0; }
.site-footer__inner { max-width: var(--wrap); margin: 0 auto; padding: 2.5rem var(--gutter) 1.5rem; display: grid; gap: 2rem; }
.site-footer__brand p { margin: .6rem 0 0; }
.site-footer__legal { max-width: var(--wrap); margin: 0 auto; padding: 1.25rem var(--gutter) 2rem; border-top: 1px solid rgba(255, 255, 255, .15); font-size: .92rem; }
.legal-links { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; list-style: none; padding: 0; margin: 0 0 .9rem; }
.legal-links a { display: inline-block; padding: .35rem 0; }
.disclaimer { margin: .2rem 0; }
.copyright { margin: .2rem 0 0; color: #c9c6f0; }
.site-footer .signup { background: rgba(255, 255, 255, .07); border-radius: var(--radius); padding: 1.25rem; }
.site-footer .signup__heading { color: var(--white); margin-top: 0; font-size: 1.35rem; }
.site-footer .signup legend, .site-footer .signup__label, .site-footer .signup__legal, .site-footer .signup label, .site-footer .signup__intro, .site-footer .signup__under13 { color: #e9e7ff; }
.site-footer .signup__status { color: var(--white); }
@media (min-width: 860px) { .site-footer__inner { grid-template-columns: 1fr 1.4fr; align-items: start; } }

/* ---------- Night-sky hero (home) */
.home-hero { background: var(--sky); color: var(--white); position: relative; overflow: hidden; }
.home-hero__inner { position: relative; z-index: 1; max-width: var(--wrap); margin: 0 auto; padding: 2.25rem var(--gutter) 2.75rem; display: grid; gap: 1.75rem; }
.home-hero h1 { color: var(--white); font-size: clamp(2.1rem, 7vw, 3.5rem); margin: 0 0 .75rem; }
.home-hero h1 span { color: #f7b0cb; display: block; }
.home-hero__lede { font-size: 1.1rem; color: #ecebff; margin: 0 0 1.4rem; max-width: 36rem; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.home-hero__caption { margin: .6rem 0 0; color: #ecebff; font-size: .95rem; }
.home-hero__caption a { color: #fbe3a0; }
.stars { position: absolute; inset: 0; background-image:
	radial-gradient(1.5px 1.5px at 12% 18%, #fff6d6 50%, transparent 51%), radial-gradient(1px 1px at 28% 72%, #fff6d6 50%, transparent 51%),
	radial-gradient(2px 2px at 44% 12%, #fff6d6 50%, transparent 51%), radial-gradient(1px 1px at 62% 86%, #fff6d6 50%, transparent 51%),
	radial-gradient(1.5px 1.5px at 78% 22%, #fff6d6 50%, transparent 51%), radial-gradient(1px 1px at 90% 64%, #fff6d6 50%, transparent 51%),
	radial-gradient(1.5px 1.5px at 6% 88%, #fff6d6 50%, transparent 51%), radial-gradient(1px 1px at 52% 46%, #fff6d6 50%, transparent 51%);
	opacity: .8; pointer-events: none; }
@media (min-width: 900px) { .home-hero__inner { grid-template-columns: 1fr 1.05fr; align-items: center; padding-block: 3.5rem 4rem; } }

/* ---------- Page hero (simple pages built with blocks) */
.page-hero { background: var(--sky); color: var(--white); padding: 2.25rem var(--gutter) 2.5rem; position: relative; }
.page-hero > * { max-width: var(--wrap); margin-inline: auto; }
.page-hero h1 { color: var(--white); margin: 0 0 .6rem; }
.page-hero p { color: #ecebff; font-size: 1.1rem; max-width: 40rem; margin-left: 0; }
.page-hero .kicker { color: #fbe3a0; }
.page-hero .wp-block-buttons { margin-top: 1.1rem; }
.page-hero .wp-block-button__link { background: #fbe3a0; color: var(--night); }
.page-section { max-width: var(--wrap); margin: 0 auto; padding: 2.25rem var(--gutter) 0; }
.page-section--narrow { max-width: 760px; }
.page-section--tint { max-width: none; background: var(--white); border-block: 1px solid var(--sand); padding-bottom: 2.25rem; margin-top: 2.25rem; }
.page-section--tint > * { max-width: calc(var(--wrap) - 2 * var(--gutter)); margin-inline: auto; }

/* ---------- Video */
.video-facade { position: relative; }
.video-facade__link { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; text-decoration: none;
	background: radial-gradient(circle at 50% 42%, #fff3c9 0, #f7d97f 14%, #6d5bd0 52%, #2b2a6b 92%); box-shadow: 0 10px 30px rgba(20, 16, 70, .35); }
.video-facade__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video-facade__label { position: absolute; left: 0; right: 0; bottom: 0; padding: 1rem 1.1rem; text-align: left; }
.video-facade__title { display: inline-block; font-family: var(--display); font-weight: 600; font-size: 1.05rem; color: var(--white); background: rgba(27, 24, 80, .72); padding: .4rem .75rem; border-radius: 10px; }
.video-facade__play { position: relative; width: 76px; height: 76px; border-radius: 50%; background: var(--rose-deep); box-shadow: 0 6px 18px rgba(0, 0, 0, .3); transition: transform .15s ease; }
.video-facade__play::after { content: ""; position: absolute; left: 31px; top: 23px; border-style: solid; border-width: 15px 0 15px 24px; border-color: transparent transparent transparent var(--white); }
.video-facade__link:hover .video-facade__play { transform: scale(1.06); }
.video-facade__frame { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--radius); background: #000; }
.video-facade__note { font-size: .8rem; margin: .45rem 0 0; color: inherit; opacity: .85; }

.coming-soon-card { background: var(--sky); color: var(--white); border-radius: var(--radius); padding: 1.6rem 1.4rem; text-align: center; box-shadow: 0 10px 30px rgba(20, 16, 70, .25); }
.coming-soon-card__stars { color: #fbe3a0; letter-spacing: .5em; }
.coming-soon-card__title { font-family: var(--display); font-weight: 600; font-size: 1.6rem; margin: .3rem 0 .4rem; }
.coming-soon-card p { color: #ecebff; margin: 0 auto 1rem; max-width: 30rem; }

/* ---------- Doors, how it works, stats, CTA */
.doors { max-width: var(--wrap); margin: 0 auto; padding: 2.25rem var(--gutter) 0; }
.doors__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.door__link { display: grid; gap: .3rem; height: 100%; box-sizing: border-box; padding: 1.3rem 1.3rem 1.2rem; background: var(--white); border: 1px solid var(--sand); border-radius: var(--radius); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); transition: transform .15s ease, box-shadow .15s ease; }
.door__link:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(43, 42, 107, .14); }
.door__icon { font-size: 2rem; line-height: 1; }
.door__title { font-family: var(--display); font-weight: 600; font-size: 1.45rem; color: var(--navy); }
.door__cta { font-family: var(--display); font-weight: 600; color: var(--rose-deep); margin-top: .3rem; }
@media (min-width: 760px) { .doors__list { grid-template-columns: repeat(3, 1fr); } }

.how { max-width: var(--wrap); margin: 0 auto; padding: 2.5rem var(--gutter) 0; }
.how__steps { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: 1rem; }
.how__step { position: relative; padding: 1.2rem 1.2rem 1.1rem 4.2rem; background: var(--white); border-radius: var(--radius); border: 1px solid var(--sand); }
.how__step h3 { margin: 0 0 .25rem; }
.how__step p { margin: 0; }
.how__num { position: absolute; left: 1.1rem; top: 1.1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--butter); color: var(--gold-deep); font-family: var(--display); font-weight: 600; font-size: 1.2rem; border: 2px solid var(--gold); }
@media (min-width: 760px) { .how__steps { grid-template-columns: repeat(3, 1fr); } }

.stats { list-style: none; padding: 0; margin: 1.25rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.stats li { background: rgba(255, 255, 255, .12); color: var(--white); padding: .5rem .9rem; border-radius: 999px; }
.stats strong { font-family: var(--display); font-size: 1.15rem; color: #fbe3a0; }

.cta-band { max-width: calc(var(--wrap) - 2 * var(--gutter)); margin: 2.5rem auto 0; padding: 2rem 1.5rem; text-align: center; background: var(--sky); color: var(--white); border-radius: 24px; }
@media (max-width: 1200px) { .cta-band { margin-inline: var(--gutter); } }
.cta-band h2 { color: var(--white); margin: 0 0 .5rem; }
.cta-band p { color: #ecebff; margin: 0 auto 1.1rem; max-width: 34rem; }

/* ---------- Mission tiles */
.tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
@media (min-width: 640px) { .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 1000px) { .tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tile__link { display: flex; flex-direction: column; height: 100%; background: var(--white); border-radius: 16px; overflow: hidden; border: 1px solid var(--sand); text-decoration: none; color: var(--ink); box-shadow: var(--shadow); transition: transform .15s ease; }
.tile__link:hover { transform: translateY(-2px); }
.tile__media { position: relative; aspect-ratio: 16 / 10; display: block; background: var(--level, var(--rose)); }
.tile__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tile__art { position: absolute; inset: 0; display: grid; place-items: center; background: radial-gradient(circle at 50% 45%, rgba(255, 255, 255, .55) 0, rgba(255, 255, 255, 0) 60%), var(--level, var(--rose)); }
.tile__emoji { font-size: 2.6rem; filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .18)); }
.tile__status { position: absolute; left: .5rem; top: .5rem; font-family: var(--display); font-weight: 600; font-size: .78rem; background: rgba(27, 24, 80, .82); color: var(--white); padding: .2rem .55rem; border-radius: 999px; }
.tile__status--video { background: var(--rose-deep); }
.tile__body { display: grid; gap: .15rem; padding: .7rem .8rem .85rem; }
.tile__num { font-family: var(--display); font-weight: 600; font-size: .82rem; color: var(--gold-deep); letter-spacing: .04em; text-transform: uppercase; }
.tile__title { font-family: var(--display); font-weight: 600; font-size: 1rem; line-height: 1.2; color: var(--navy); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tile__badge { font-size: .85rem; color: var(--muted); }

.free-strip { max-width: var(--wrap); margin: 0 auto; padding: 2.5rem var(--gutter) 0; }
.free-strip__head { margin-bottom: 1rem; }
.free-strip__head h2 { margin: 0 0 .3rem; }
.free-strip__head p { margin: 0 0 1rem; }
.tiles--strip { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(180px, 46%); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .75rem; }
.tiles--strip .tile { scroll-snap-align: start; }
@media (min-width: 900px) { .tiles--strip { grid-auto-flow: row; grid-template-columns: repeat(5, 1fr); grid-auto-columns: auto; overflow: visible; } }

/* ---------- Mission finder */
.mission-finder { max-width: var(--wrap); margin: 0 auto; padding: 1.5rem var(--gutter) 0; scroll-margin-top: 1rem; }
.filters { display: grid; gap: .8rem; background: var(--white); border: 1px solid var(--sand); border-radius: var(--radius); padding: 1rem; box-shadow: var(--shadow); }
.filters__field label { display: block; font-family: var(--display); font-weight: 600; color: var(--navy); margin-bottom: .25rem; }
.filters input[type="search"], .filters select, .signup__email, .wpforms-form input, .wpforms-form textarea, .wpforms-form select, #edd_checkout_form_wrap input.edd-input, #edd_checkout_form_wrap select.edd-select {
	width: 100%; min-height: 48px; box-sizing: border-box; padding: .65rem .85rem; font: inherit; font-size: 1rem; color: var(--ink);
	background: var(--cream); border: 2px solid #c9bfa2; border-radius: 12px; }
.filters__check { display: flex; align-items: center; gap: .55rem; }
.filters__check input { width: 22px; height: 22px; accent-color: var(--rose-deep); }
.filters__check label { margin: 0; font-family: inherit; font-weight: 400; color: var(--ink); }
.filters__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.filters__reset { padding: .6rem 0; }
@media (min-width: 760px) { .filters { grid-template-columns: 2fr 1fr 1.4fr 1fr; align-items: end; } .filters__check, .filters__actions { grid-column: span 2; } }
.finder-count { font-family: var(--display); font-weight: 600; color: var(--muted); margin: 1.1rem 0 .7rem; }
.pager { text-align: center; margin-top: 1.5rem; }
.pager__pages { color: var(--muted); font-size: .95rem; }

/* ---------- Mission page */
.mission-hero { background: var(--sky); color: var(--white); padding: 1.6rem var(--gutter) 5.5rem; position: relative; }
.mission-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 60% at 85% 20%, color-mix(in srgb, var(--level) 45%, transparent), transparent 70%); pointer-events: none; }
.mission-hero__inner { position: relative; max-width: 860px; margin: 0 auto; }
.mission-hero__kicker { margin: 0; font-family: var(--display); font-weight: 600; font-size: .9rem; letter-spacing: .06em; }
.mission-hero__kicker a { color: #fbe3a0; text-decoration: none; }
.mission-hero__kicker a:hover { text-decoration: underline; }
.mission-hero__number { margin: .6rem 0 .1rem; font-family: var(--display); font-weight: 600; font-size: 1.05rem; color: #f7b0cb; text-transform: uppercase; letter-spacing: .1em; }
.mission-hero__title { color: var(--white); margin: 0 0 .8rem; font-size: clamp(1.8rem, 6vw, 2.9rem); }
.badge-pill { display: inline-flex; align-items: center; gap: .45rem; margin: 0; padding: .4rem .9rem .4rem .5rem; border-radius: 999px; background: #fbe3a0; color: var(--night); font-family: var(--display); font-weight: 600; }
.badge-pill__emoji { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--white); font-size: 1.15rem; }
.mission-video { max-width: 860px; margin: -4.5rem auto 0; padding: 0 var(--gutter); position: relative; }
.mission-body { max-width: 860px; margin: 0 auto; padding: 1.5rem var(--gutter) 0; display: grid; gap: 1.25rem; }
.mission-lede { font-size: 1.3rem; line-height: 1.45; font-family: var(--display); font-weight: 500; color: var(--navy); margin: 0; }
.mission-story { margin: -.4rem 0 0; font-style: italic; color: var(--muted); }
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { background: var(--white); border: 1px solid var(--sand); border-radius: 999px; padding: .35rem .8rem; font-size: .95rem; }
.chip__label { font-family: var(--display); font-weight: 600; color: var(--gold-deep); margin-right: .15rem; }
.chip--skill { background: var(--blush); border-color: #f2c3d5; }
.chip--skill .chip__label { color: var(--rose-deep); }
.card { background: var(--white); border: 1px solid var(--sand); border-radius: var(--radius); padding: 1.2rem 1.25rem; box-shadow: var(--shadow); }
.card h2 { font-size: 1.35rem; margin: 0 0 .5rem; }
.card p:last-child, .card ul:last-child { margin-bottom: 0; }
.card--soft { background: #fffdf6; box-shadow: none; }
.mission-grid2 { display: grid; gap: 1.25rem; }
.mission-side { display: grid; gap: 1.25rem; align-content: start; }
@media (min-width: 760px) { .mission-grid2 { grid-template-columns: 1.4fr 1fr; } }
.finish-line { background: #eef8f3; border-left: 4px solid var(--leaf); padding: .6rem .8rem; border-radius: 0 10px 10px 0; }
.bonus { background: var(--butter); border-left: 4px solid var(--gold); padding: .6rem .8rem; border-radius: 0 10px 10px 0; }
.ticks, .choice-list, .stuck ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.ticks li, .choice-list li, .stuck li { position: relative; padding-left: 1.7rem; }
.ticks li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--leaf-deep); font-weight: 700; }
.choice-list li::before { content: "✦"; position: absolute; left: 0; top: 0; color: var(--gold-deep); }
.stuck { border-color: #d8d2f5; background: #f7f5ff; }
.stuck li::before { content: "?"; position: absolute; left: 0; top: .05rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--violet); color: var(--white); font: 600 .8rem/1.2rem var(--display); text-align: center; }
.get-mission { background: var(--blush); border: 2px solid #f2c3d5; border-radius: var(--radius); padding: 1.3rem 1.25rem; }
.get-mission--free { background: #eef8f3; border-color: #b9dfcf; }
.get-mission h2 { margin: 0 0 .5rem; }
.get-mission__kicker { margin: 0; font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; color: var(--rose-deep); }
.get-mission__buttons { display: flex; flex-wrap: wrap; gap: .6rem; margin: .9rem 0; }
.get-mission__small { font-size: .92rem; color: var(--muted); margin: 0; }
.mission-nav { display: grid; gap: .6rem; grid-template-columns: 1fr 1fr; align-items: stretch; }
.mission-nav a { display: block; padding: .8rem 1rem; border-radius: 14px; background: var(--white); border: 1px solid var(--sand); text-decoration: none; color: var(--navy); font-family: var(--display); font-weight: 500; line-height: 1.25; }
.mission-nav a:hover { border-color: var(--rose); }
.mission-nav__dir { display: block; font-weight: 600; color: var(--rose-deep); font-size: .9rem; }
.mission-nav__next { text-align: right; }
.mission-nav__all { grid-column: 1 / -1; grid-row: 2; text-align: center; }
@media (min-width: 760px) { .mission-nav { grid-template-columns: 1fr auto 1fr; } .mission-nav__all { grid-column: auto; grid-row: auto; align-self: center; } }
.parents-strip { background: var(--white); border: 1px dashed var(--gold); border-radius: var(--radius); padding: 1.1rem 1.25rem; }
.parents-strip h2 { font-size: 1.2rem; margin: 0 0 .4rem; }
.tags { list-style: none; padding: 0; margin: .4rem 0 .6rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.tags li { background: var(--butter); color: var(--gold-deep); font-family: var(--display); font-weight: 600; font-size: .85rem; padding: .25rem .65rem; border-radius: 999px; }
.device-note { font-size: .88rem; color: var(--muted); text-align: center; margin: .5rem 0 0; }

/* ---------- Signup forms */
.signup { scroll-margin-top: 1rem; }
.signup__heading { margin: 0 0 .35rem; }
.signup__intro { margin: 0 0 .8rem; }
.signup__form { display: grid; gap: .8rem; }
.signup__types { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.signup__types legend { font-family: var(--display); font-weight: 600; margin-bottom: .4rem; padding: 0; color: var(--navy); }
.signup__type { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 .9rem; border-radius: 999px; border: 2px solid #c9bfa2; background: var(--white); cursor: pointer; color: var(--ink); }
.signup__type input { width: 18px; height: 18px; accent-color: var(--rose-deep); margin: 0; }
.signup__type:has(input:checked) { border-color: var(--rose-deep); background: var(--blush); }
.site-footer .signup__type { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .45); color: var(--white); }
.site-footer .signup__type:has(input:checked) { background: rgba(247, 176, 203, .25); border-color: #f7b0cb; }
.signup__row { display: grid; gap: .5rem; }
.signup__label { font-family: var(--display); font-weight: 600; color: var(--navy); }
@media (min-width: 560px) { .signup__row { grid-template-columns: 1fr auto; } .signup__label { grid-column: 1 / -1; } }
.signup__age label { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-weight: 600; }
.signup__age input { width: 22px; height: 22px; accent-color: var(--rose-deep); }
.signup__under13 { margin: 0; font-size: .92rem; }
.signup__legal { font-size: .85rem; color: var(--muted); margin: 0; }
.signup__status { margin: 0; font-weight: 600; min-height: 1px; }
.signup__status.is-ok, .signup__status.is-test { color: var(--leaf-deep); }
.signup__status.is-age, .signup__status.is-email, .signup__status.is-error, .signup__status.is-off { color: var(--rose-deep); }
.site-footer .signup__status.is-ok, .site-footer .signup__status.is-test { color: #b6f0d6; }
.site-footer .signup__status.is-age, .site-footer .signup__status.is-email, .site-footer .signup__status.is-error { color: #ffd0e1; }
.hp { position: absolute !important; left: -9999px !important; }
.signup--page, .signup--hero { background: var(--white); border: 1px solid var(--sand); border-radius: var(--radius); padding: 1.3rem; box-shadow: var(--shadow); }
.signup--waitlist { background: var(--white); border: 2px solid var(--violet); border-radius: var(--radius); padding: 1.3rem; }

/* ---------- Parents page bits */
.levels { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .6rem; }
.levels__item { display: grid; grid-template-columns: auto 1fr auto; gap: .15rem .8rem; align-items: center; background: var(--white); border-radius: 14px; border: 1px solid var(--sand); border-left: 8px solid var(--level); padding: .75rem 1rem; }
.levels__num { font-family: var(--display); font-weight: 600; color: var(--gold-deep); font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; }
.levels__name { font-family: var(--display); font-weight: 600; color: var(--navy); font-size: 1.1rem; }
.levels__diff { font-size: .82rem; background: var(--cream); border: 1px solid var(--sand); padding: .1rem .5rem; border-radius: 999px; }
.levels__desc { grid-column: 1 / -1; color: var(--muted); font-size: .95rem; }
.parent-sample { margin: 1.25rem 0; }
.parent-sample img { border-radius: 14px; box-shadow: var(--shadow); border: 1px solid var(--sand); max-width: 520px; width: 100%; }
.parent-sample figcaption { color: var(--muted); font-size: .92rem; margin-top: .4rem; }
.check-grid { display: grid; gap: .8rem; padding: 0; list-style: none; }
.check-grid li { background: var(--white); border: 1px solid var(--sand); border-radius: 14px; padding: .9rem 1rem; }
.check-grid strong { display: block; font-family: var(--display); color: var(--navy); font-size: 1.1rem; }
@media (min-width: 700px) { .check-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .check-grid { grid-template-columns: repeat(4, 1fr); } }

/* ---------- Store */
.store { max-width: var(--wrap); margin: 0 auto; padding: 1.75rem var(--gutter) 0; display: grid; gap: 1.5rem; }
.store-hero { display: grid; gap: 1rem; background: var(--sky); color: var(--white); border-radius: 24px; padding: 1.6rem 1.4rem; }
.store-hero h2 { color: var(--white); margin: 0 0 .4rem; }
.store-hero p { color: #ecebff; margin: 0 0 .6rem; }
.store-hero .kicker { color: #fbe3a0; }
.store-hero__actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.store-hero .lbtn--primary { background: #fbe3a0; color: var(--night) !important; }
.store-hero .lbtn--secondary { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .7); }
@media (min-width: 860px) { .store-hero { grid-template-columns: 1.6fr 1fr; align-items: center; } }
.price { font-family: var(--display); font-weight: 600; font-size: 1.3rem; color: var(--navy); }
.store-hero .price { color: #fbe3a0; }
.price--big { font-size: 2.2rem; }
.price-was { color: #ecebff; }
.price-note { display: block; color: var(--muted); font-size: .92rem; }
.store-note { background: var(--butter); border-radius: 14px; padding: .9rem 1.1rem; margin: 0; }
.store-free, .store-bundle, .store-faq { background: var(--white); border: 1px solid var(--sand); border-radius: var(--radius); padding: 1.3rem; }
.store-free h2, .store-bundle h2, .store-faq h2 { margin-top: 0; }
.store-level { background: var(--white); border: 1px solid var(--sand); border-left: 8px solid var(--level); border-radius: 16px; margin-top: .7rem; }
.store-level summary { cursor: pointer; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; padding: 1rem 1.1rem; min-height: 48px; align-items: center; }
.store-level__name { font-family: var(--display); font-weight: 600; font-size: 1.2rem; color: var(--navy); }
.store-level__status { font-size: .9rem; color: var(--muted); }
.store-level__body { padding: 0 1.1rem 1.1rem; }
.store-level__full { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .8rem 1rem; border-radius: 12px; background: var(--cream); margin-bottom: 1rem; }
.store-level__full form, .pcard__buy form { margin: 0; }
.pcards { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
@media (min-width: 700px) { .pcards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .pcards { grid-template-columns: repeat(3, 1fr); } }
.pcard { display: flex; flex-direction: column; gap: .3rem; background: var(--cream); border: 1px solid var(--sand); border-radius: 14px; padding: 1rem; }
.pcard__title { font-family: var(--display); font-weight: 600; font-size: 1.15rem; color: var(--navy); text-decoration: none; }
.pcard__title:hover { text-decoration: underline; }
.pcard__range { margin: 0; color: var(--gold-deep); font-size: .9rem; font-weight: 600; }
.pcard__intro { margin: 0; font-size: .95rem; flex: 1; }
.pcard__buy { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: .5rem; }
.edd_purchase_submit_wrapper { margin: 0; }
.edd_go_to_checkout { margin-left: .4rem; }
.edd-cart-ajax-alert { font-size: .9rem; }

/* ---------- Product page */
.product-hero { background: var(--sky); color: var(--white); padding: 1.8rem var(--gutter) 2rem; }
.product-hero__inner { max-width: 860px; margin: 0 auto; }
.product-hero h1 { color: var(--white); margin: 0 0 .5rem; }
.product-hero .kicker a { color: #fbe3a0; }
.product-hero__intro { color: #ecebff; font-size: 1.1rem; }
.product-hero__buy { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin-top: 1rem; }
.product-hero .price { color: #fbe3a0; }
.product-hero .price-note { color: #ecebff; }
.product-hero .lbtn--primary { background: #fbe3a0; color: var(--night) !important; }
.product-hero .lbtn--secondary { background: transparent; color: var(--white); border-color: rgba(255, 255, 255, .7); }
.product-body { max-width: 860px; margin: 0 auto; padding: 1.5rem var(--gutter) 0; display: grid; gap: 1.25rem; }
.mlist { margin: 0; padding-left: 2.6rem; display: grid; gap: .3rem; }
.mlist a { color: var(--navy); }
.samples__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1rem; }
.samples figure { margin: 0; }
.samples img { border-radius: 10px; border: 1px solid var(--sand); box-shadow: var(--shadow); }
.samples figcaption { font-size: .85rem; color: var(--muted); margin-top: .35rem; }
.files { list-style: none; padding: 0; margin: 0 0 .6rem; display: grid; gap: .35rem; }
.files__name { font-weight: 600; }
.files__size { color: var(--muted); font-size: .9rem; }
.licence-line { font-size: .92rem; background: var(--cream); border: 1px solid var(--sand); border-radius: 12px; padding: .7rem 1rem; margin: 0; }
.release { padding-left: 1.4rem; display: grid; gap: .3rem; }

/* ---------- Blog */
.post-cards { gap: 1.25rem; }
.post-card { background: var(--white); border: 1px solid var(--sand); border-radius: var(--radius); padding: 1rem 1.1rem; height: 100%; box-sizing: border-box; }
.post-card .wp-block-post-title a { color: var(--navy); text-decoration: none; }
.post-single { padding-top: 2rem; }
.post-meta { color: var(--muted); }
.blog-index { padding-top: 2rem; }

/* ---------- FAQ (details blocks) */
.wp-block-details { background: var(--white); border: 1px solid var(--sand); border-radius: 14px; padding: .2rem 1.1rem; margin-block: .6rem; }
.wp-block-details summary { cursor: pointer; padding: .8rem 0; min-height: 44px; font-family: var(--display); font-weight: 600; font-size: 1.1rem; color: var(--navy); }
.wp-block-details[open] { padding-bottom: .9rem; }

/* ---------- Draft notice on legal pages */
.draft-notice { background: #fff1c7; border: 2px dashed var(--gold); border-radius: 12px; padding: .8rem 1rem; font-weight: 600; color: #5d4006; }

/* ---------- Checkout and account (Easy Digital Downloads) */
#edd_checkout_wrap, .edd-blocks-form, .edd_purchase_receipt, #edd_user_history, .edd-account, .page-standard .wp-block-post-content { font-size: 1rem; }
#edd_checkout_wrap fieldset, #edd_checkout_form_wrap fieldset { border: 1px solid var(--sand); border-radius: 14px; background: var(--white); padding: 1rem; margin: 0 0 1rem; }
#edd_checkout_form_wrap legend { font-family: var(--display); font-weight: 600; font-size: 1.2rem; color: var(--navy); padding: 0 .3rem; }
#edd_checkout_form_wrap label { font-weight: 600; }
#edd_checkout_cart { width: 100%; border-collapse: collapse; background: var(--white); border-radius: 14px; overflow: hidden; }
#edd_checkout_cart th, #edd_checkout_cart td { padding: .7rem .8rem; border-bottom: 1px solid var(--sand); text-align: left; }
.edd-lilora-optin label { display: inline-flex; gap: .55rem; align-items: flex-start; font-weight: 400 !important; }
.edd-lilora-optin input { width: 20px; height: 20px; margin-top: .2rem; accent-color: var(--rose-deep); }
.edd_errors, .edd-alert-error { background: #fde7ec; border-left: 4px solid var(--rose-deep); padding: .6rem .9rem; border-radius: 8px; }
.edd-alert-success { background: #eef8f3; border-left: 4px solid var(--leaf); padding: .6rem .9rem; border-radius: 8px; }
table.edd-table, #edd_user_history, .edd_purchase_receipt { width: 100%; border-collapse: collapse; background: var(--white); }
table.edd-table td, table.edd-table th, #edd_user_history td, #edd_user_history th { padding: .6rem; border-bottom: 1px solid var(--sand); text-align: left; }
@media (max-width: 600px) {
	#edd_checkout_cart, #edd_user_history { display: block; overflow-x: auto; }
}

/* ---------- WPForms (contact) */
.wpforms-container .wpforms-field-label { font-family: var(--display); font-weight: 600; color: var(--navy); }
.wpforms-container button[type="submit"] { background: var(--rose-deep) !important; color: var(--white) !important; border-radius: 999px !important; min-height: 48px; padding: .75rem 1.6rem !important; font-family: var(--display) !important; font-weight: 600 !important; border: 0 !important; }

/* ---------- Motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Template-part spacing: header, main and footer sit flush. */
.wp-site-blocks > * { margin-block: 0 !important; }
.page-wide > .wp-block-post-content > :first-child, .mission-main > *:first-child, .product-main > *:first-child { margin-block-start: 0; }
.page-wide > .wp-block-post-content > .page-hero + * { margin-block-start: 0; }

/* ---------- EDD purchase buttons (EDD's "plain" style removes padding; restore the Lilora pill). */
.edd_purchase_submit_wrapper .edd-submit.lbtn, .edd_purchase_submit_wrapper .edd_go_to_checkout.lbtn,
#edd_checkout_form_wrap #edd-purchase-button, #edd_checkout_wrap .edd-submit {
	padding: .75rem 1.4rem !important; border-radius: 999px !important; border: 2px solid transparent !important;
	min-height: 48px; font-family: var(--display) !important; font-weight: 600 !important; font-size: 1.05rem !important; line-height: 1.15 !important; }
.edd_purchase_submit_wrapper .edd_go_to_checkout.lbtn { background: var(--navy) !important; }
.edd_purchase_submit_wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.edd-cart-added-alert { color: var(--leaf-deep); font-weight: 600; font-size: .92rem; }

/* ---------- Cookie banner (Complianz) in Lilora colours. Wording is edited in Complianz → Consent → Cookie banner. */
#cmplz-cookiebanner-container .cmplz-cookiebanner { font-family: Lora, Georgia, serif !important; color: var(--ink) !important; border-radius: 18px !important; border: 2px solid var(--sand) !important; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-title, #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn { font-family: var(--display) !important; font-weight: 600 !important; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn { border-radius: 999px !important; min-height: 46px; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept { background: var(--rose-deep) !important; border-color: var(--rose-deep) !important; color: #fff !important; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny, #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences, #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences { background: #fff !important; border: 2px solid var(--navy) !important; color: var(--navy) !important; }
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-links a, #cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-link { color: var(--rose-deep) !important; }
#cmplz-manage-consent .cmplz-manage-consent { background: var(--night) !important; color: #fff !important; font-family: var(--display) !important; }

/* ---------- Checkout tap targets (44px minimum). */
#edd-payment-mode-wrap label, .edd-gateway-option { display: inline-flex !important; align-items: center; gap: .5rem; min-height: 44px; padding-right: 1rem; }
#edd-payment-mode-wrap input[type="radio"], #edd_checkout_form_wrap input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--rose-deep); }
.edd_cart_remove_item_btn, a.edd_cart_remove_item_btn { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }

/* ---------- Store closed (checkout opens when PayPal live is connected). */
.lbtn--soon { background: #ece7f8; color: var(--navy); border-color: #d8d2f5; cursor: default; }
.store-hero .lbtn--soon { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .5); }
.store-closed-note { background: #f7f5ff; border: 2px solid #d8d2f5; border-radius: 14px; padding: .9rem 1.1rem; margin: 0; }
.product-hero .price-note a { color: #fbe3a0; }
.seller { margin: .2rem 0; color: #c9c6f0; }
