/* Flash Social — visual match of the original Base44 site.
   Values mirror the original Tailwind classes (noted where helpful). */

:root {
	--fs-ink: #0a0a0a;
	--fs-volt: #f0ff00;
	--fs-paper: #f5f5f0;
	--fs-snow: #f5f5f5;
	--fs-max: 80rem;
	--fs-gutter: 1.25rem;
	--fs-font: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/* ---------- Base (Tailwind preflight equivalents) ---------- */
html { scroll-behavior: smooth; }
body { background: var(--fs-paper); color: var(--fs-ink); font-family: var(--fs-font); line-height: 1.5; -webkit-font-smoothing: antialiased; }
.wp-site-blocks { overflow-x: hidden; }
.wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3, .wp-site-blocks p,
.wp-site-blocks figure, .wp-site-blocks ul, .editor-styles-wrapper h1, .editor-styles-wrapper h2,
.editor-styles-wrapper h3, .editor-styles-wrapper p, .editor-styles-wrapper figure { margin: 0; }
.wp-site-blocks img { display: block; max-width: 100%; }
.wp-site-blocks a { color: inherit; text-decoration: none; }
mark.has-inline-color { color: inherit; }
button, input, textarea, select { font: inherit; color: inherit; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* Shared type */
.fs-eyebrow { font-size: .75rem; line-height: 1rem; letter-spacing: .3em; text-transform: uppercase; color: var(--fs-ink); margin-bottom: 1rem !important; }
.fs-h2, .fs-book__title, .fs-done__title {
	font-weight: 900; text-transform: uppercase; letter-spacing: -0.05em; line-height: .9; color: var(--fs-ink);
	font-size: 3rem;
}
@media (min-width: 768px) { .fs-h2, .fs-done__title { font-size: 4.5rem; line-height: 1; } }
.fs-h3 { font-weight: 900; text-transform: uppercase; letter-spacing: -0.025em; font-size: 1.875rem; line-height: 2.25rem; color: var(--fs-ink); }
.fs-h2 mark, .fs-h3 mark { padding: 0 .5rem; }

.fs-section { max-width: var(--fs-max); margin-left: auto !important; margin-right: auto !important; padding: 6rem var(--fs-gutter); box-sizing: border-box; }
.fs-section > .fs-h2 { margin-bottom: 3.5rem !important; }

/* ---------- Header / nav ---------- */
.fs-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: rgba(10, 10, 10, .8); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.admin-bar .fs-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .fs-header { top: 46px; } }
.editor-styles-wrapper .fs-header, .editor-styles-wrapper .fs-nav { position: relative; }
.fs-nav { max-width: var(--fs-max); margin: 0 auto; padding: 0 var(--fs-gutter); height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; box-sizing: border-box; }
.editor-styles-wrapper .fs-nav { background: var(--fs-ink); max-width: none; }
.fs-logo { min-width: 0; font-weight: 900; letter-spacing: -0.05em; font-size: 1rem; line-height: 1.25; color: var(--fs-snow); }
@media (min-width: 640px) { .fs-logo { font-size: 1.25rem; line-height: 1.75rem; } }
.fs-logo--lg { font-size: 1.25rem; }
@media (min-width: 640px) { .fs-logo--lg { font-size: 1.5rem; line-height: 2rem; } }
.fs-nav__links { display: none; }
@media (min-width: 768px) { .fs-nav__links { display: flex; align-items: center; gap: 2rem; } }
.fs-nav__links p { margin: 0 !important; font-size: .875rem; line-height: 1.25rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(245, 245, 245, .7); }
.fs-nav__links a { transition: color .15s; }
.fs-nav__links a:hover { color: var(--fs-volt); }
.fs-nav__cta { flex-shrink: 0; margin: 0 !important; }
.fs-nav__cta a { display: inline-block; padding: .5rem .75rem; background: var(--fs-volt); color: var(--fs-ink) !important; font-weight: 700; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .025em; transition: transform .15s; }
@media (min-width: 640px) { .fs-nav__cta a { padding: .5rem 1.25rem; font-size: .875rem; line-height: 1.25rem; } }
.fs-nav__cta a:hover { transform: translateY(-.125rem); }

/* ---------- Buttons (block styles: Yellow / Outline / Black) ---------- */
.wp-block-button .wp-block-button__link { border-radius: 0; font-size: 1rem; line-height: 1.5rem; text-transform: uppercase; letter-spacing: .025em; padding: 1rem 2rem; transition: transform .15s, border-color .15s; }
.wp-block-button.is-style-volt .wp-block-button__link { background: var(--fs-volt); color: var(--fs-ink); font-weight: 900; border: 0; }
.wp-block-button.is-style-volt .wp-block-button__link:hover, .wp-block-button.is-style-ink .wp-block-button__link:hover { transform: translateY(-.25rem); }
.wp-block-button.is-style-ink .wp-block-button__link { background: var(--fs-ink); color: var(--fs-volt); font-weight: 900; border: 0; }
.wp-block-button.is-style-outline-ink .wp-block-button__link { background: transparent; color: var(--fs-ink); font-weight: 700; border: 1px solid rgba(10, 10, 10, .3); }
.wp-block-button.is-style-outline-ink .wp-block-button__link:hover { border-color: var(--fs-ink); }

/* ---------- Hero ---------- */
.fs-hero { position: relative; min-height: 100vh; display: flex; align-items: center; padding: 6rem 0 4rem; overflow: hidden; box-sizing: border-box; }
.editor-styles-wrapper .fs-hero { min-height: 0; }
.fs-hero__grid { max-width: var(--fs-max); width: 100%; margin: 0 auto !important; padding: 0 var(--fs-gutter); box-sizing: border-box; display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) {
	.fs-hero__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.fs-hero__text { grid-column: span 7 / span 7; }
	.fs-hero__media { grid-column: span 5 / span 5; }
}
.fs-hero__text { position: relative; z-index: 10; margin: 0 !important; }
.fs-hero .fs-eyebrow { margin-bottom: 1.5rem !important; }
.fs-hero__title { font-weight: 900; text-transform: uppercase; line-height: .9; letter-spacing: -0.05em; color: var(--fs-ink); font-size: 15vw; }
@media (min-width: 1024px) { .fs-hero__title { font-size: 8.5rem; } }
.fs-hero__title mark { display: inline-block; padding: .25rem .5rem; line-height: 1; margin-top: .75rem; }
@media (min-width: 640px) { .fs-hero__title mark { margin-top: 1rem; } }
.fs-hero__lead { margin-top: 2rem !important; max-width: 28rem; font-size: 1.125rem; line-height: 1.625; color: rgba(10, 10, 10, .7); }
.fs-hero__actions { margin-top: 2.5rem !important; display: flex; flex-wrap: wrap; gap: 1rem; }
.fs-hero__media { position: relative; margin: 0 !important; }
.fs-hero__img { border: 4px solid var(--fs-ink); padding-bottom: .4rem; transform: rotate(3deg); transition: transform .5s; margin: 0 !important; }
.fs-hero__img:hover { transform: rotate(0); }
.fs-hero__img img { width: 100%; height: auto; }
.fs-hero__badge { position: absolute; bottom: -1.5rem; left: -1rem; background: var(--fs-ink); color: var(--fs-volt); padding: .75rem 1.25rem; font-weight: 900; text-transform: uppercase; font-size: .875rem; line-height: 1.25rem; transform: rotate(-2deg); margin: 0 !important; }

/* ---------- Marquee ---------- */
.fs-marquee { overflow: hidden; background: var(--fs-ink); border-top: 1px solid rgba(240, 255, 0, .3); border-bottom: 1px solid rgba(240, 255, 0, .3); padding: 1rem 0; }
.fs-marquee > p, .fs-marquee__item { font-size: 1.5rem; line-height: 2rem; font-weight: 900; text-transform: uppercase; letter-spacing: -0.025em; color: rgba(245, 245, 245, .8); white-space: nowrap; margin: 0 !important; }
.fs-marquee > p { padding: 0 var(--fs-gutter); overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 768px) { .fs-marquee > p, .fs-marquee__item { font-size: 2.25rem; line-height: 2.5rem; } }
.fs-marquee__track { display: flex; gap: 2.5rem; white-space: nowrap; width: max-content; animation: fs-marquee 26s linear infinite; }
.fs-marquee--reverse .fs-marquee__track { animation-direction: reverse; }
.fs-star { color: var(--fs-volt); }
@keyframes fs-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .fs-marquee__track { animation-duration: 120s; } }

/* ---------- Section header (What's included) ---------- */
.fs-sec-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 3.5rem !important; }
.fs-sec-head > * { margin: 0 !important; }
.fs-sec-head__note { max-width: 24rem; line-height: 1.625; color: rgba(10, 10, 10, .6); }

/* ---------- Experience cards ---------- */
.fs-cards { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .fs-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.fs-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.fs-cards > .fs-card:nth-child(even) { transform: translateY(2rem); }
}
.fs-card { background: #fff; border: 1px solid rgba(0, 0, 0, .1); transition: border-color .15s; margin: 0 !important; }
.fs-card:hover { border-color: var(--fs-ink); }
.fs-card .wp-block-image { margin: 0 0 .4rem !important; } /* original had a small gap under each photo */
.fs-card .wp-block-image img { width: 100%; }
.fs-card__body { padding: 2rem 1.5rem 1.5rem; margin: 0 !important; }
.fs-card__title { font-weight: 900; text-transform: uppercase; font-size: 1.5rem; line-height: 2rem; letter-spacing: -0.025em; color: var(--fs-ink); }
.fs-card__text { margin-top: .75rem !important; line-height: 1.625; color: rgba(10, 10, 10, .6); }

/* ---------- The Wall ---------- */
.fs-wall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
@media (min-width: 768px) { .fs-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; } }
.fs-wall > .wp-block-image { margin: 0 !important; background: #fff; padding: .5rem .5rem 1.5rem; border: 1px solid rgba(0, 0, 0, .1); box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05); --fs-tilt: -2deg; --fs-shift: 0px; transform: translateY(var(--fs-shift)) rotate(var(--fs-tilt)); transition: transform .5s; box-sizing: border-box; }
.fs-wall > .wp-block-image:nth-child(6n+2) { --fs-tilt: 2deg; }
.fs-wall > .wp-block-image:nth-child(6n+3) { --fs-tilt: -1deg; }
.fs-wall > .wp-block-image:nth-child(6n+4) { --fs-tilt: 1deg; }
.fs-wall > .wp-block-image:nth-child(6n+5) { --fs-tilt: -3deg; }
.fs-wall > .wp-block-image:nth-child(6n) { --fs-tilt: 2deg; }
@media (min-width: 768px) { .fs-wall > .wp-block-image:nth-child(3n+2) { --fs-shift: 2rem; } }
.fs-wall > .wp-block-image:hover { --fs-tilt: 0deg; }
.fs-wall .wp-block-image img { width: 100%; }
.fs-wall .wp-element-caption { margin: 0 !important; padding-top: .75rem; text-align: center; font-size: .75rem; line-height: 1rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(10, 10, 10, .7); }

/* ---------- Packages ---------- */
.fs-pkgs { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .fs-pkgs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fs-pkg { position: relative; padding: 2rem; display: flex; flex-direction: column; background: #fff; color: var(--fs-ink); border: 1px solid rgba(0, 0, 0, .1); }
.fs-pkg.is-popular { background: var(--fs-volt); border: 0; }
.fs-pkg__badge { position: absolute; top: -.75rem; left: 2rem; background: var(--fs-ink); color: var(--fs-volt); padding: .25rem .75rem; font-size: .75rem; line-height: 1rem; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }
.fs-pkg__name { font-weight: 900; text-transform: uppercase; font-size: 1.875rem; line-height: 2.25rem; letter-spacing: -0.025em; }
.fs-pkg__blurb { margin-top: .5rem !important; color: rgba(10, 10, 10, .6); }
.fs-pkg.is-popular .fs-pkg__blurb { color: rgba(10, 10, 10, .7); }
.fs-pkg__price { margin-top: 1.5rem; display: flex; align-items: flex-end; gap: .5rem; }
.fs-pkg__amt { font-weight: 900; font-size: 3rem; line-height: 1; letter-spacing: -0.05em; }
.fs-pkg__unit { margin-bottom: .5rem; font-size: .875rem; line-height: 1.25rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(10, 10, 10, .5); }
.fs-pkg.is-popular .fs-pkg__unit { color: rgba(10, 10, 10, .6); }
.fs-pkg__perks { list-style: none; margin: 2rem 0 0 !important; padding: 0; flex: 1 1 0%; }
.fs-pkg__perks li { display: flex; align-items: flex-start; gap: .75rem; margin: 0; }
.fs-pkg__perks li + li { margin-top: .75rem; }
.fs-check { width: 1.25rem; height: 1.25rem; flex-shrink: 0; color: var(--fs-ink); margin-top: .125rem; }
.fs-pkg__cta { margin-top: 2rem; text-align: center; padding: 1rem 0; font-weight: 900; text-transform: uppercase; letter-spacing: .025em; background: var(--fs-volt); color: var(--fs-ink) !important; transition: transform .15s; }
.fs-pkg.is-popular .fs-pkg__cta { background: var(--fs-ink); color: var(--fs-volt) !important; }
.fs-pkg__cta:hover { transform: translateY(-.25rem); }

.fs-addons-title { margin-top: 5rem !important; margin-bottom: 2rem !important; }
.fs-addons { display: grid; gap: 1rem; }
@media (min-width: 640px) { .fs-addons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .fs-addons { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fs-addon { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid rgba(0, 0, 0, .1); padding: 1.25rem 1.5rem; transition: border-color .15s; }
.fs-addon:hover { border-color: var(--fs-ink); }
.fs-addon__price { font-weight: 900; }

/* ---------- Booking ---------- */
.fs-book { background: #fff; border-top: 1px solid rgba(0, 0, 0, .1); border-bottom: 1px solid rgba(0, 0, 0, .1); padding: 6rem 0; }
.fs-book__grid { max-width: 64rem; margin: 0 auto !important; padding: 0 var(--fs-gutter); box-sizing: border-box; display: grid; gap: 3rem; }
@media (min-width: 1024px) {
	.fs-book__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.fs-book__intro { grid-column: span 4 / span 4; }
	.fs-book__grid > :last-child { grid-column: span 8 / span 8; }
}
.fs-book__grid > * { margin: 0 !important; }
@media (min-width: 768px) { .fs-book__title { font-size: 3.75rem; line-height: 1; } }
.fs-book__lead { margin-top: 1.5rem !important; color: rgba(10, 10, 10, .6); line-height: 1.625; }
.fs-total { margin-top: 2rem !important; border: 1px solid var(--fs-volt); background: var(--fs-ink); padding: 1.5rem; }
.fs-total__label { font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .3em; color: rgba(245, 245, 245, .6); }
.fs-total__amt { margin-top: .5rem !important; font-weight: 900; font-size: 3rem; line-height: 1; letter-spacing: -0.05em; color: var(--fs-volt); }

.fs-form > * + * { margin-top: 2rem; }
.fs-form > .fs-hp + *, .fs-form > input[type=hidden] + * { margin-top: 0; }
.fs-form__row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .fs-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fs-field { width: 100%; box-sizing: border-box; background: #fff; border: 1px solid rgba(0, 0, 0, .2); border-radius: 0; padding: .75rem 1rem; color: var(--fs-ink); font-size: 1rem; line-height: 1.5rem; outline: none; -webkit-appearance: none; appearance: none; min-height: 3.125rem; }
.fs-field::placeholder { color: rgba(10, 10, 10, .4); }
.fs-field:focus { border-color: var(--fs-ink); }
.fs-label { font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .3em; color: rgba(10, 10, 10, .6); margin-bottom: .75rem !important; }
.fs-chips { display: flex; flex-wrap: wrap; gap: .75rem; }
.fs-chip { padding: .75rem 1rem; border: 1px solid rgba(0, 0, 0, .2); background: transparent; color: var(--fs-ink); font-size: .875rem; line-height: 1.25rem; text-transform: uppercase; letter-spacing: .025em; font-weight: 700; cursor: pointer; border-radius: 0; transition: background-color .15s, border-color .15s; }
.fs-chip:hover { border-color: var(--fs-ink); }
.fs-chip.is-active { background: var(--fs-volt); border-color: var(--fs-volt); }
.fs-chip[hidden] { display: none; }
.fs-note { margin-top: .75rem !important; font-size: .75rem; line-height: 1rem; color: rgba(10, 10, 10, .5); }
.fs-error { color: #dc2626; }
.fs-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fs-submit { display: block; width: 100%; padding: 1.25rem 0; background: var(--fs-ink); color: var(--fs-volt); border: 0; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; font-size: 1.125rem; line-height: 1.75rem; cursor: pointer; transition: transform .15s; }
.fs-submit:hover { transform: translateY(-.25rem); }
.fs-submit:disabled { opacity: .6; }

.fs-done { max-width: 48rem; margin: 0 auto; padding: 8rem var(--fs-gutter); text-align: center; box-sizing: border-box; }
.fs-done__text { margin-top: 1.5rem !important; font-size: 1.125rem; line-height: 1.75rem; color: rgba(10, 10, 10, .7); }

/* ---------- Footer ---------- */
.fs-footer { background: var(--fs-ink); border-top: 1px solid rgba(255, 255, 255, .1); }
.fs-footer__grid { max-width: var(--fs-max); margin: 0 auto !important; padding: 4rem var(--fs-gutter); box-sizing: border-box; display: grid; gap: 2.5rem; }
@media (min-width: 768px) { .fs-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fs-footer__grid > * { margin: 0 !important; }
.fs-footer__tag { margin-top: .75rem !important; color: rgba(245, 245, 245, .6); line-height: 1.625; }
.fs-footer__contact p + p, .fs-footer__nav p + p { margin-top: .5rem !important; }
.fs-footer__contact a { color: var(--fs-snow); transition: color .15s; }
.fs-footer__nav a { color: rgba(245, 245, 245, .7); transition: color .15s; }
.fs-footer a:hover { color: var(--fs-volt); }
.fs-muted { color: rgba(245, 245, 245, .6); }
.fs-footer__legal { border-top: 1px solid rgba(255, 255, 255, .1); padding: 1.5rem 0; text-align: center; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(245, 245, 245, .4); margin: 0 !important; }

/* ---------- Other pages (privacy policy, etc.) ---------- */
.fs-page { max-width: 48rem; margin: 0 auto !important; padding: 8rem var(--fs-gutter) 6rem; box-sizing: border-box; }
.fs-page__title { margin-bottom: 2rem !important; }
.fs-page__content > * + * { margin-top: 1.25rem !important; }
.fs-page__content a, .fs-page__lead a { text-decoration: underline; }
.fs-page__lead { margin-top: 1.5rem !important; font-size: 1.125rem; color: rgba(10, 10, 10, .7); }

/* ---------- Editor-only helpers ---------- */
.fs-editor-note { margin-top: .5rem !important; font-size: 12px; color: #757575; font-style: italic; }
