/*
Theme Name: Funland 2026 Blocks
Theme URI: https://funlandplayground.ca
Description: Funland Indoor Playground's 2026 design as a WordPress block theme. Every page is made of regular blocks and Funland patterns, so text, prices, photos and offers are edited in Appearance > Editor. Hours and Google hours live under Appearance > Funland Hours.
Version: 1.0.4
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: funland
*/

/* ---------- Base ---------- */
:root {
	--fl-ink: var(--wp--preset--color--ink);
	--fl-shadow: 4px 5px 0 0 var(--fl-ink);
	--fl-shadow-lg: 7px 9px 0 0 var(--fl-ink);
	--fl-radius: 1.5rem;
	--fl-radius-lg: 2rem;
	--fl-gutter: clamp(1rem, 4.6vw, 5.5rem);
}
html { scroll-padding-top: 7rem; scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: clip; }
h1, h2, h3 { text-wrap: balance; }
::selection { background: var(--wp--preset--color--sun); color: var(--fl-ink); }
:focus-visible { outline: 3px solid var(--wp--preset--color--sky-deep); outline-offset: 3px; border-radius: .5rem; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Full-width bands with a centred inner wrap. */
.fl-section { padding-block: clamp(3rem, 7vw, 6rem); margin: 0 !important; max-width: none !important; }
.fl-section.fl-tight { padding-block: clamp(2rem, 4vw, 3rem) 0; }
.fl-wrap { width: 100%; max-width: 92rem; margin-inline: auto !important; padding-inline: var(--fl-gutter); box-sizing: border-box; }
.fl-wrap > * + * { margin-block-start: 1.5rem; }
.fl-dots { background-image: radial-gradient(rgb(37 40 84 / .13) 1.4px, transparent 1.6px); background-size: 22px 22px; }
.fl-center { text-align: center; }
.fl-center .wp-block-buttons { justify-content: center; }

/* ---------- Type ---------- */
.fl-eyebrow { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: clamp(1.05rem, .3vw + .98rem, 1.2rem); line-height: 1.2; color: var(--wp--preset--color--pink); margin-bottom: .25rem !important; }
.has-pink-background-color .fl-eyebrow, .has-ink-background-color .fl-eyebrow, .has-sky-background-color .fl-eyebrow { color: inherit; opacity: .9; }
.has-sun-background-color .fl-eyebrow { color: var(--fl-ink); }
.fl-title { font-size: var(--wp--preset--font-size--x-large) !important; margin-top: .35rem !important; }
.fl-headline { font-size: var(--wp--preset--font-size--xx-large) !important; font-weight: 800 !important; }
.fl-page-title { font-size: clamp(2.4rem, 4vw + 1rem, 4.6rem) !important; font-weight: 800 !important; }
.fl-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--wp--preset--color--ink-soft); }
.has-text-color .fl-lede { color: inherit; opacity: .92; }
.fl-fine { font-size: .9rem; opacity: .8; }
.fl-hand { font-family: var(--wp--preset--font-family--hand); font-size: clamp(1.3rem, 2vw, 1.8rem); display: inline-block; background: var(--wp--preset--color--sun); padding: .1em .5em; border-radius: .4rem; transform: rotate(-2deg); }
.fl-heading { margin-bottom: 1rem; }
.fl-heading > * { margin: 0; }

/* ---------- Stickers (also available as block styles) ---------- */
.is-style-sticker, .fl-sticker { border: 3px solid var(--fl-ink); box-shadow: var(--fl-shadow); border-radius: var(--fl-radius); overflow: hidden; }
.is-style-sticker-lg, .fl-sticker-lg { border: 3px solid var(--fl-ink); box-shadow: var(--fl-shadow-lg); border-radius: var(--fl-radius-lg); overflow: hidden; }
.wp-block-image.is-style-sticker img, .wp-block-image.is-style-sticker-lg img { display: block; }
.fl-card { padding: clamp(1.4rem, 3vw, 2.2rem); }
.fl-card > * { margin-block: 0; }
.fl-card > * + * { margin-block-start: 1rem; }
.fl-card-title { font-size: 1.6rem !important; }
.fl-card-title a { text-decoration: none; }
.fl-card-img { margin: calc(-1 * clamp(1.4rem, 3vw, 2.2rem)) calc(-1 * clamp(1.4rem, 3vw, 2.2rem)) 1rem !important; border-bottom: 3px solid var(--fl-ink); }
.fl-card-img img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }
.fl-offer-card { transition: transform .3s, box-shadow .3s; }
.fl-offer-card:hover { transform: translate(-2px, -3px); box-shadow: var(--fl-shadow-lg); }
.fl-tag { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.3rem; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: transform .2s, box-shadow .2s; }
.wp-block-button__link:hover { transform: translate(-1px, -2px); box-shadow: 4px 6px 0 0 var(--fl-ink) !important; }
.wp-block-button.is-style-pink .wp-block-button__link { background: var(--wp--preset--color--pink); color: #fff; }
.wp-block-button.is-style-sun .wp-block-button__link { background: var(--wp--preset--color--sun); color: var(--fl-ink); }
.wp-block-button.is-style-sky .wp-block-button__link { background: var(--wp--preset--color--sky); color: var(--fl-ink); }
.wp-block-button.is-style-ink .wp-block-button__link { background: var(--fl-ink); color: var(--wp--preset--color--cream); }
.wp-block-button.is-style-cream .wp-block-button__link { background: #fff; color: var(--fl-ink); }
.wp-block-buttons { gap: .75rem; }

/* ---------- Header ---------- */
.fl-topbar { background: var(--wp--preset--color--pink); color: #fff; font-weight: 600; font-size: .9rem; }
.fl-topbar-inner { display: flex; align-items: center; gap: 1.5rem; min-height: 2.5rem; }
.fl-topbar-inner > * { margin: 0 !important; }
.fl-topbar a { color: #fff; text-decoration: none; }
.fl-topbar a:hover { text-decoration: underline; }
.fl-topbar-waiver { margin-left: auto !important; background: rgb(255 255 255 / .15); padding: .2rem .8rem; border-radius: 999px; }
.fl-topbar .fl-status a { color: #fff; }
.fl-topbar .fl-dot { background: var(--wp--preset--color--sun); }
.fl-header-wrap { position: sticky; top: .6rem; z-index: 50; margin-top: .9rem !important; }
header.wp-block-template-part { position: sticky; top: -2.5rem; z-index: 50; }
.fl-header-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #fff; border-radius: 999px !important; padding: .4rem .6rem .4rem 1.2rem; }
.fl-header-bar > * { margin: 0 !important; }
.fl-logo img { width: clamp(5.5rem, 9vw, 7rem); height: auto; display: block; }
.fl-nav { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: .98rem; }
.fl-nav a { text-decoration: none; }
.fl-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--pink); }
.fl-nav .wp-block-navigation__submenu-container { border: 3px solid var(--fl-ink) !important; border-radius: 1rem; box-shadow: var(--fl-shadow); padding: .4rem; }
.fl-nav .wp-block-navigation__responsive-container-open { background: var(--wp--preset--color--sun); border: 3px solid var(--fl-ink); border-radius: 999px; padding: .5rem .8rem; }
.fl-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--cream) !important; padding: 2rem; font-size: 1.5rem; }
@media (max-width: 781px) {
	.fl-topbar-phone, .fl-topbar .fl-social { display: none; }
	.fl-topbar-inner { justify-content: space-between; }
	.fl-topbar-waiver { margin-left: 0 !important; }
	.fl-header-cta { display: none; }
	.fl-header-bar { padding-left: .9rem; }
}

/* ---------- Status and hours ---------- */
.fl-status { margin: 0; }
.fl-status a { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; }
.fl-status a:hover .fl-status-text { text-decoration: underline; }
.fl-status-live { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: .95rem; }
.fl-status-live[hidden] { display: none; }
.fl-dot { width: .65rem; height: .65rem; border-radius: 50%; background: var(--wp--preset--color--sun); display: inline-block; flex: none; }
.is-open .fl-dot { background: #3ee08f; box-shadow: 0 0 0 4px rgb(62 224 143 / .25); }
.fl-hours-card { background: var(--wp--preset--color--sun-soft); border: 3px solid var(--fl-ink); box-shadow: var(--fl-shadow); border-radius: var(--fl-radius); padding: clamp(1.4rem, 3vw, 2rem); height: 100%; box-sizing: border-box; }
.fl-icon-chip { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 1rem; border: 3px solid var(--fl-ink); background: var(--wp--preset--color--sun); }
.fl-hours-title { font-size: 1.6rem; margin: 1rem 0 .3rem; }
.fl-hours-list { list-style: none; padding: 0; margin: 1rem 0 0; }
.fl-hours-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 2px dashed rgb(37 40 84 / .15); font-variant-numeric: tabular-nums; }
.fl-hours-list li span:first-child { font-family: var(--wp--preset--font-family--display); font-weight: 600; }
.fl-hours-list li:last-child { border-bottom: 0; }
.fl-hours-notice { margin-top: 1.2rem; border: 2.5px solid var(--fl-ink); border-radius: 1rem; background: #fff; padding: 1rem; box-shadow: 2px 3px 0 0 var(--fl-ink); }
.fl-hours-notice p { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.1rem; line-height: 1.3; }
.fl-hours-btn { margin-top: .8rem; display: inline-flex; align-items: center; gap: .5rem; background: var(--wp--preset--color--pink); color: #fff !important; border: 3px solid var(--fl-ink); border-radius: 999px; padding: .65rem 1.1rem; font-family: var(--wp--preset--font-family--display); font-weight: 600; text-decoration: none !important; box-shadow: 3px 4px 0 0 var(--fl-ink); line-height: 1.1; }
.fl-hours-btn:hover { transform: translate(-1px, -2px); }
.fl-hours-footer .fl-hours-list li { flex-direction: column; gap: 0; border: 0; padding: .3rem 0; }
.fl-hours-footer .fl-hours-list li span:first-child { font-size: 1.1rem; }
.fl-hours-footer .fl-hours-list li span + span { opacity: .8; }
.fl-hours-footer .fl-hours-notice { background: rgb(251 203 103 / .1); border-color: var(--wp--preset--color--sun); box-shadow: none; }
.fl-hours-footer .fl-hours-notice p { font-family: inherit; font-size: 1rem; color: var(--wp--preset--color--cream); }
.fl-hours-footer .fl-hours-btn { background: var(--wp--preset--color--sun); color: var(--fl-ink) !important; }
.fl-hours-footer .fl-status-live { color: var(--wp--preset--color--cream); margin-top: .6rem; }

/* ---------- Page heroes ---------- */
.fl-page-hero { padding-block: clamp(2.5rem, 6vw, 5rem); }
.fl-tone-pink { background: var(--wp--preset--color--pink-soft); }
.fl-tone-sun { background: var(--wp--preset--color--sun-soft); }
.fl-tone-sky { background: var(--wp--preset--color--sky-soft); }
.fl-hero-cols { align-items: center !important; gap: clamp(2rem, 5vw, 4rem) !important; }
.fl-hero-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; align-items: center; }
.fl-hero-photos > * { margin: 0 !important; }
.fl-tilt img, .fl-room img { border: 3px solid var(--fl-ink); border-radius: 1.1rem; box-shadow: var(--fl-shadow); background: #fff; padding: 4px; display: block; width: 100%; box-sizing: border-box; }
.fl-hero-photos .fl-tilt img { aspect-ratio: 3/4; object-fit: cover; }
.fl-hero-photos .fl-tilt:nth-child(1) { transform: rotate(-3deg); }
.fl-hero-photos .fl-tilt:nth-child(2) { transform: translateY(-1rem) rotate(2deg); }
.fl-hero-photos .fl-tilt:nth-child(3) { transform: rotate(-1deg); }

/* ---------- Home ---------- */
.fl-home-hero { background: radial-gradient(circle at 75% 40%, #fff 0, var(--wp--preset--color--cream) 60%); }
.fl-hero-title { font-size: clamp(2.6rem, 6.2vw, 5.6rem) !important; font-weight: 800 !important; line-height: .95 !important; }
.fl-hero-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; font-weight: 600; color: var(--wp--preset--color--ink-soft); }
.fl-hero-meta > * { margin: 0 !important; }
.fl-hero-meta a { text-decoration: none; }
.fl-hero-meta a:hover { color: var(--wp--preset--color--pink); }
.fl-hero-stage { position: relative; padding: 2.5rem 6% 2rem; }
.fl-hero-stage > * { margin: 0 !important; }
.fl-hero-main img { border: 3px solid var(--fl-ink); border-radius: var(--fl-radius-lg); box-shadow: var(--fl-shadow-lg); aspect-ratio: 5/4; object-fit: cover; width: 100%; display: block; }
.fl-hero-sticker { position: absolute !important; width: 34%; }
.fl-hero-sticker img { border: 3px solid var(--fl-ink); border-radius: 1.1rem; padding: 4px; background: #fff; box-shadow: var(--fl-shadow); aspect-ratio: 4/3; object-fit: cover; display: block; }
.fl-hero-sticker-a { top: 0; left: 0; transform: rotate(-4deg); }
.fl-hero-sticker-b { bottom: 0; right: 0; transform: rotate(4deg); }
.fl-badge { position: absolute !important; top: .5rem; left: 50%; width: clamp(5.5rem, 10vw, 7.5rem); aspect-ratio: 1; border-radius: 50%; border: 3px solid var(--fl-ink); background: var(--wp--preset--color--sun); box-shadow: var(--fl-shadow); display: grid; place-content: center; text-align: center; z-index: 2; }
.fl-badge p { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: .75rem; text-transform: uppercase; line-height: 1; }
.fl-badge .fl-badge-num { font-size: clamp(1.2rem, 2.4vw, 1.7rem); text-transform: none; margin-top: .2rem; }
.fl-marquee { overflow: hidden; border-block: 3px solid var(--fl-ink); padding-block: .9rem; transform: rotate(-1.2deg); margin: 1rem -1rem !important; }
.fl-marquee-text { margin: 0; white-space: nowrap; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: clamp(1.3rem, 2.4vw, 2rem); display: inline-block; animation: fl-marquee 40s linear infinite; }
@keyframes fl-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .fl-marquee-text { animation: none; } }
.fl-cards { gap: 1.5rem !important; }
.fl-cards .fl-card { height: 100%; box-sizing: border-box; display: flex; flex-direction: column; }
.fl-cards .fl-card .wp-block-buttons { margin-top: auto; padding-top: 1rem; }
.fl-grid-3, .fl-grid-4, .fl-grid-2 { gap: 1.5rem !important; }
.fl-stat { padding: 1.4rem; }
.fl-stat > * { margin: 0; }
.fl-stat-num { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(2.2rem, 4.5vw, 3.8rem); line-height: 1; margin-bottom: .6rem !important; }
.fl-party-wall { align-items: center !important; gap: clamp(2rem, 5vw, 4rem) !important; }
.fl-two { gap: 1.5rem !important; }
.fl-two > .wp-block-column > .fl-card { height: 100%; box-sizing: border-box; }
@media (min-width: 782px) { .fl-two-uneven > .wp-block-column:first-child { flex-basis: 40% !important; } }
.fl-two .fl-tilt img { max-width: 22rem; transform: rotate(3deg); margin-top: 1rem; }

/* Galleries */
.fl-tilted.wp-block-gallery { gap: 1rem !important; }
.fl-tilted.wp-block-gallery .wp-block-image img { border: 3px solid var(--fl-ink); border-radius: 1rem; padding: 4px; background: #fff; box-shadow: var(--fl-shadow); aspect-ratio: 4/5; object-fit: cover; box-sizing: border-box; }
.fl-tilted.wp-block-gallery .wp-block-image:nth-child(3n+1) { transform: rotate(-2deg); }
.fl-tilted.wp-block-gallery .wp-block-image:nth-child(3n+2) { transform: rotate(1.5deg) translateY(.5rem); }
.fl-tilted.wp-block-gallery .wp-block-image:nth-child(3n) { transform: rotate(-1deg); }
.fl-photo-grid.wp-block-gallery { gap: 1rem !important; }
.fl-photo-grid.wp-block-gallery .wp-block-image img { border: 3px solid var(--fl-ink); border-radius: 1rem; box-shadow: var(--fl-shadow); aspect-ratio: 4/3; object-fit: cover; }
@media (max-width: 600px) { .fl-photo-grid.wp-block-gallery .wp-block-image { width: calc(50% - .5rem) !important; } }
.fl-pill { display: inline-block; width: fit-content; background: var(--wp--preset--color--sun); color: var(--fl-ink); border: 2.5px solid var(--fl-ink); border-radius: 999px; padding: .35rem 1rem; font-family: var(--wp--preset--font-family--display); font-weight: 600; box-shadow: 2px 3px 0 0 var(--fl-ink); }
.fl-pill.fl-center { display: block; margin-inline: auto; }
.fl-pill-lg { font-size: 1.2rem; padding: .5rem 1.3rem; }
.fl-row-between { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.fl-row-between > * { margin: 0 !important; }

/* ---------- Party packages ---------- */
.fl-pkgs { align-items: stretch; }
.fl-pkg { display: flex; flex-direction: column; background: #fff; }
.fl-pkg > * { margin: 0 !important; }
.fl-pkg-head { position: relative; padding: 1.2rem 1.4rem 1.4rem; border-bottom: 3px solid var(--fl-ink); }
.fl-pkg-head > * { margin: 0; }
.fl-pkg-name { font-size: 2rem !important; text-transform: uppercase; font-weight: 800 !important; letter-spacing: .02em; }
.fl-pkg-price { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 3.2rem; line-height: 1; margin-top: .3rem !important; }
.fl-pkg-flag { position: absolute; right: 1rem; top: 1rem; transform: rotate(6deg); font-size: .75rem; text-transform: uppercase; padding: .2rem .7rem; }
.fl-pkg-rows { list-style: none; padding: .5rem 1.4rem !important; flex: 1; }
.fl-pkg-rows li { padding: .6rem 0; border-bottom: 2px dashed rgb(37 40 84 / .12); font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.08rem; line-height: 1.3; }
.fl-pkg-rows li:last-child { border-bottom: 0; }
.fl-pkg-rows strong { display: block; font-family: var(--wp--preset--font-family--body); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #70728f; margin-bottom: .1rem; }
.fl-pkg-rows em { display: block; font-style: normal; font-family: var(--wp--preset--font-family--body); font-size: .88rem; color: var(--wp--preset--color--ink-soft); font-weight: 600; }
.fl-pkg-foot { border-top: 3px solid var(--fl-ink); padding: 1rem 1.4rem 1.2rem; font-size: .92rem; }
.fl-pkg-foot > * { margin: 0 !important; }
.fl-pkg-extra { display: flex; justify-content: space-between; }
.fl-pkg-foot .wp-block-buttons { margin-top: .9rem !important; }
.fl-pkg-foot .wp-block-button { width: 100%; }
.fl-pkg-foot .wp-block-button__link { width: 100%; box-shadow: none; }

/* Time slots: small and quiet, so the notes below stand out. */
.fl-slots { gap: .75rem !important; }
.fl-slot { background: rgb(255 255 255 / .8); border: 2px solid rgb(37 40 84 / .2); border-radius: 1rem; padding: .8rem 1rem; }
.fl-slot > * { margin: 0 !important; }
.fl-slot-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #70728f; }
.fl-slot-time { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.1rem; margin-top: .2rem !important; font-variant-numeric: tabular-nums; }
.fl-slot-deal { font-size: .78rem; font-weight: 700; color: var(--wp--preset--color--pink); margin-top: .3rem !important; }
.fl-callout { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.3rem 1.5rem; }
.fl-callout > * { margin: 0 !important; }
.fl-callout-text { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.3; flex: 1 1 22rem; }
.fl-notes li { font-weight: 600; font-size: 1.05rem; }
@media (min-width: 782px) { .fl-notes { columns: 2; column-gap: 2.5rem; } .fl-notes li { break-inside: avoid; } }

/* Star and check lists */
.fl-stars, .fl-checks { list-style: none; padding: 0 !important; }
.fl-stars li, .fl-checks li { position: relative; padding-left: 2.1rem; margin-bottom: .75rem; line-height: 1.45; }
.fl-stars li::before { content: "★"; position: absolute; left: 0; top: -.1rem; color: var(--wp--preset--color--sun); -webkit-text-stroke: 1.5px var(--fl-ink); font-size: 1.35rem; line-height: 1; }
.fl-checks li { font-weight: 600; }
.fl-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; width: 1.4rem; height: 1.4rem; border-radius: 50%; border: 2.5px solid var(--fl-ink); background: var(--wp--preset--color--sun); display: grid; place-items: center; font-size: .8rem; font-weight: 800; }
@media (min-width: 600px) { .fl-checks { columns: 2; column-gap: 1.5rem; } .fl-checks li { break-inside: avoid; } }
.fl-rules { max-width: 60rem; font-size: 1.08rem; }
.fl-chips { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .6rem; }
.fl-chips li { border: 2.5px solid var(--fl-ink); border-radius: 999px; padding: .4rem 1rem; font-family: var(--wp--preset--font-family--display); font-weight: 600; background: #fff; box-shadow: 2px 3px 0 0 var(--fl-ink); }
.fl-chips li:nth-child(3n+1) { background: var(--wp--preset--color--pink-soft); }
.fl-chips li:nth-child(3n+2) { background: var(--wp--preset--color--sun-soft); }
.fl-chips li:nth-child(3n) { background: var(--wp--preset--color--sky-soft); }

/* Offers */
.fl-offer { padding: clamp(1.5rem, 4vw, 2.6rem); }
.fl-offer > * { margin-block: 0; }
.fl-offer > * + * { margin-block-start: 1rem; }
.fl-offer-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem; }
.fl-offer-row > * { margin: 0 !important; }
.fl-offer-row > .wp-block-group { flex: 1 1 20rem; }
.fl-offer-row > .wp-block-group > * { margin-block: .3rem 0; }
.fl-offer-big { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(3.4rem, 9vw, 6rem); line-height: .85; color: var(--wp--preset--color--pink); text-shadow: 3px 4px 0 var(--fl-ink); }
.has-pink-background-color .fl-offer-big { color: var(--wp--preset--color--sun); }
.fl-offer-badge { display: inline-block; transform: rotate(-3deg); background: var(--wp--preset--color--sun); color: var(--fl-ink); border: 3px solid var(--fl-ink); border-radius: 1rem; padding: .3rem 1rem; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(2.2rem, 5vw, 3.4rem); line-height: 1.05; box-shadow: var(--fl-shadow); }
.fl-price { font-family: var(--wp--preset--font-family--display); font-size: 2.3rem; line-height: 1; }
.fl-offer-cols { align-items: center !important; gap: 2rem !important; }
.fl-offer .fl-tilted.wp-block-gallery .wp-block-image img { aspect-ratio: 3/4; }

/* Alert, tables */
.fl-alert { display: flex; gap: 1rem; align-items: center; padding: 1.1rem 1.4rem; }
.fl-alert > * { margin: 0 !important; }
.fl-alert-icon { flex: none; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 3px solid var(--fl-ink); background: #fff; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.3rem; }
.fl-alert-text { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.1rem, 2vw, 1.4rem); line-height: 1.3; }
.fl-price-table { background: #fff; }
.fl-price-table table { border-collapse: collapse; width: 100%; margin: 0; }
.fl-price-table th, .fl-price-table td { border: 0; border-top: 2px dashed rgb(37 40 84 / .15); padding: .9rem clamp(.6rem, 2vw, 1.6rem); }
.fl-price-table thead th { border: 0; border-bottom: 3px solid var(--fl-ink); background: var(--fl-ink); color: var(--wp--preset--color--cream); font-family: var(--wp--preset--font-family--display); font-size: clamp(.9rem, 1.6vw, 1.15rem); text-align: center; }
.fl-price-table thead th:first-child { text-align: left; }
.fl-price-table thead th:nth-child(2) { background: var(--wp--preset--color--sky); color: var(--fl-ink); }
.fl-price-table thead th:nth-child(3) { background: var(--wp--preset--color--pink); color: #fff; }
.fl-price-table thead th:nth-child(4) { background: var(--wp--preset--color--sun); color: var(--fl-ink); }
.fl-price-table tbody td { text-align: center; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: clamp(1.05rem, 2vw, 1.5rem); font-variant-numeric: tabular-nums; border-left: 3px solid var(--fl-ink); }
.fl-price-table tbody td:first-child { text-align: left; font-size: clamp(.95rem, 1.6vw, 1.1rem); border-left: 0; }
.fl-price-table tbody tr:nth-child(even) { background: var(--wp--preset--color--cream); }
.fl-price-table thead th + th { border-left: 3px solid var(--fl-ink); }
.wp-block-table.fl-price-table { overflow-x: auto; }

/* Rooms */
.fl-rooms { gap: clamp(.6rem, 2vw, 1.5rem) !important; flex-wrap: nowrap !important; }
.fl-rooms > .wp-block-column { flex-basis: 0 !important; flex-grow: 1 !important; }
.fl-room img { aspect-ratio: 3/4; object-fit: cover; }
.fl-caption { text-align: center; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: clamp(.9rem, 1.6vw, 1.3rem); margin-top: .5rem !important; }

/* Legal, forms, misc */
.fl-prose { max-width: 60rem; margin-inline: auto !important; }
.fl-legal li { margin-bottom: .9rem; }
.fl-form { max-width: 52rem; }
.fl-empty { border: 2px dashed rgb(37 40 84 / .25); border-radius: 1rem; padding: 1.2rem; background: var(--wp--preset--color--cream); font-weight: 600; max-width: 30rem; margin-inline: auto !important; }
.fl-split { align-items: center !important; }
.fl-big-link a { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.3rem; text-decoration: none; }
.fl-visit { gap: 1.25rem !important; }
.fl-visit > .wp-block-column > * { height: 100%; box-sizing: border-box; }
.fl-map { min-height: 20rem; height: 100%; position: relative; background: #fff; border: 3px solid var(--fl-ink); box-shadow: var(--fl-shadow); border-radius: var(--fl-radius); overflow: hidden; }
.fl-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fl-cta { padding: clamp(2rem, 5vw, 3.5rem); text-align: center; }
.fl-cta .wp-block-buttons { justify-content: center; }
.fl-cta > * { margin-inline: auto; max-width: 46rem; }

/* ---------- Footer ---------- */
.fl-footer { margin-top: clamp(3rem, 6vw, 5rem) !important; padding-block: 3.5rem 7rem; border-radius: 3rem 3rem 0 0; }
.fl-footer a { color: inherit; text-decoration: none; }
.fl-footer a:hover { text-decoration: underline; }
.fl-footer .fl-eyebrow { color: var(--wp--preset--color--sun); }
.fl-footer-statement { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; padding-bottom: 2.5rem; border-bottom: 2px dashed rgb(255 255 255 / .15); }
.fl-footer-statement > * { margin: 0 !important; }
.fl-footer-statement > .fl-eyebrow { flex-basis: 100%; }
.fl-footer-title { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(2.8rem, 8vw, 7rem); line-height: .9; }
.fl-footer-cols { padding-block: 2.5rem; gap: 2.5rem !important; }
.fl-footer-h { font-size: 1.2rem !important; color: var(--wp--preset--color--sky); margin-top: 0 !important; }
.fl-footer-cols > .wp-block-column:nth-child(3) .fl-footer-h { color: var(--wp--preset--color--pink-bright); }
.fl-footer-cols > .wp-block-column:nth-child(4) .fl-footer-h { color: var(--wp--preset--color--sun); }
.fl-footer-logo img { width: 11rem; background: var(--wp--preset--color--cream); border-radius: 1.5rem; padding: .75rem; }
.fl-footer-links { list-style: none; padding: 0 !important; columns: 2; }
.fl-footer-links li { margin-bottom: .45rem; }
@media (min-width: 782px) { .fl-footer-links { columns: 1; } }
.fl-footer-small { font-size: .88rem; opacity: .65; }
.fl-social .wp-social-link { background: transparent !important; border: 2px solid rgb(255 255 255 / .35); }
.fl-footer .fl-social .wp-social-link { width: 3rem; height: 3rem; justify-content: center; }

/* ---------- Mobile tidy-ups ---------- */
@media (max-width: 781px) {
	.fl-hero-photos { margin-top: 1rem; }
	.fl-hero-stage { padding-inline: 4%; }
	.fl-badge { left: auto; right: 4%; }
	.fl-callout .wp-block-buttons { width: 100%; }
	.fl-price-table th, .fl-price-table td { padding: .75rem .55rem; }
}

/* ---------- Grid and spacing fixes ---------- */
.fl-pkg, .fl-pkg-head.has-background, .fl-pkg-foot.has-background { padding: 0; }
.fl-pkg-head.has-background { padding: 1.2rem 1.4rem 1.4rem; }
.fl-pkg-foot.has-background { padding: 1rem 1.4rem 1.2rem; }
.fl-marquee.has-background { padding-inline: 0; }
.fl-grid-2, .fl-grid-3, .fl-grid-4, .fl-slots { grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)) !important; }
@media (min-width: 1024px) {
	.fl-grid-3 { grid-template-columns: repeat(3, 1fr) !important; }
	.fl-grid-4, .fl-slots { grid-template-columns: repeat(4, 1fr) !important; }
}
@media (min-width: 640px) and (max-width: 1023px) {
	.fl-grid-4, .fl-slots, .fl-grid-3 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 639px) {
	.fl-slots { grid-template-columns: repeat(2, 1fr) !important; }
}
.fl-main { overflow-x: clip; }
.fl-marquee { margin: 1rem 0 !important; }
.fl-footer .fl-social .wp-social-link { display: inline-flex; align-items: center; }
@media (min-width: 782px) { .fl-two-uneven > .wp-block-column:first-child { flex: 0 0 38% !important; } }
.fl-split-card.has-background { padding: 0; }
.fl-split { gap: 0 !important; margin: 0 !important; align-items: stretch !important; }
.fl-split > .wp-block-column:last-child { padding: clamp(1.5rem, 4vw, 3rem); align-self: center; }
.fl-split-img { margin: 0 !important; height: 100%; }
.fl-split-img img { width: 100%; height: 100%; min-height: 16rem; object-fit: cover; display: block; }
@media (min-width: 782px) { .fl-split-img { border-right: 3px solid var(--fl-ink); } }
@media (max-width: 781px) { .fl-split-img { border-bottom: 3px solid var(--fl-ink); } }
@media (max-width: 781px) {
	.fl-topbar { font-size: .82rem; }
	.fl-topbar-inner { flex-wrap: nowrap; }
	.fl-topbar-waiver { display: none; }
}

/* Keep the menu on one line on laptops. */
.fl-nav .wp-block-navigation__container { gap: clamp(.6rem, 1.2vw, 1.4rem); flex-wrap: nowrap; }
.fl-nav .wp-block-navigation-item__content { white-space: nowrap; }
@media (max-width: 1280px) { .fl-nav { font-size: .88rem; } .fl-logo img { width: 5.5rem; } }
/* Mid-size laptops: tighter spacing so the full menu fits. Home (the logo) and Waiver (in the top strip) step out. */
@media (min-width: 961px) and (max-width: 1240px) {
	.fl-header-bar { gap: .6rem; padding-left: .9rem; }
	.fl-nav { font-size: .82rem; }
	.fl-nav .wp-block-navigation__container { gap: .7rem; }
	.fl-logo img { width: 4.6rem; }
	.fl-header-cta .wp-block-button__link { padding: .55rem 1rem; font-size: .85rem; }
	.fl-nav .wp-block-navigation-item:has(> a[href="/"]),
	.fl-nav .wp-block-navigation-item:has(> a[href="/waiver-rules/"]) { display: none; }
}
@media (max-width: 960px) {
	.fl-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
	.fl-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.fl-header-bar { justify-content: flex-start; }
	.fl-header-bar .fl-nav { margin-left: auto !important; }
}

/* Gravity Forms: match the Funland look. */
.fl-form .gform_wrapper input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),
.fl-form .gform_wrapper textarea,
.fl-form .gform_wrapper select { border: 2.5px solid var(--fl-ink) !important; border-radius: .9rem !important; padding: .7rem .9rem !important; background: #fff !important; font: inherit !important; color: var(--fl-ink) !important; box-shadow: none !important; }
.fl-form .gform_wrapper input:focus, .fl-form .gform_wrapper textarea:focus, .fl-form .gform_wrapper select:focus { outline: 3px solid var(--wp--preset--color--sky) !important; outline-offset: 1px; }
.fl-form .gform_wrapper .gfield_label, .fl-form .gform_wrapper legend { font-family: var(--wp--preset--font-family--display) !important; font-weight: 600 !important; color: var(--fl-ink) !important; }
.fl-form .gform_wrapper .gform_button, .fl-form .gform_wrapper input[type=submit], .fl-form .gform_wrapper .gform_next_button, .fl-form .gform_wrapper .gform_previous_button { background: var(--wp--preset--color--pink) !important; color: #fff !important; border: 3px solid var(--fl-ink) !important; border-radius: 999px !important; padding: .85rem 1.6rem !important; font-family: var(--wp--preset--font-family--display) !important; font-weight: 600 !important; font-size: 1.02rem !important; box-shadow: 3px 4px 0 0 var(--fl-ink) !important; cursor: pointer; }
.fl-form .gform_wrapper .gform_previous_button { background: #fff !important; color: var(--fl-ink) !important; }
@media (min-width: 782px) { .fl-form-cols > .wp-block-column:first-child { flex: 0 0 62% !important; } }
