/* The public front page (templates/landing.html). Scoped to .fp; always light, whatever the app theme. */
.fp { --ink: #0a0a0f; --text2: #4a4a5e; --muted: #8a8aa0; --soft: #F4F4F7; --line: #EEEFF4;
  --red: #e11d48; --violet: #7c3aed; --orange: #ea580c; --green: #059669; --amber: #b45309;
  font: 17px/1.55 Geist, system-ui, sans-serif; color: var(--ink); background: var(--soft); min-height: 100vh; overflow-x: clip; }
html:has(.fp), body:has(.fp) { background: #F4F4F7; }
.fp *, .fp *::before, .fp *::after { box-sizing: border-box; }
.fp a { text-decoration: none; color: inherit; }
.fp h1, .fp h2, .fp h3, .fp .fp-big { font-family: 'Bricolage Grotesque', sans-serif; letter-spacing: -.045em; margin: 0; font-weight: 800; }
.fp p { margin: 0; }
.fp .fp-g { color: #B4B4C4; }
.fp .fp-num { font-family: 'Geist Mono', monospace; letter-spacing: -.05em; }
.fp .fp-w { max-width: 1320px; margin: 0 auto; padding: 0 32px; }
.fp .fp-pill { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 18px 28px; border-radius: 999px; font-weight: 700; font-size: 17px; white-space: nowrap; border: 0; cursor: pointer; font-family: inherit; }
.fp .fp-pk { background: var(--ink); color: #fff; box-shadow: 0 18px 36px -14px var(--ink); }
.fp .fp-pw { background: #fff; color: var(--ink); box-shadow: 0 14px 30px -20px rgba(0, 0, 0, .4); }
.fp .fp-pill svg { flex: none; }

/* frozen module tiles (the app's dock: app/modules.py tone + _icons.html icon) */
.fp .fp-mt { flex: none; width: var(--s, 48px); height: var(--s, 48px); border-radius: calc(var(--s, 48px) * .3125); display: grid; place-items: center; color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3); }
.fp .fp-mt svg { width: calc(var(--s, 48px) * .46); height: calc(var(--s, 48px) * .46); }
.fp .fp-mt.tone-brain svg { width: calc(var(--s, 48px) * .86); height: calc(var(--s, 48px) * .86); overflow: visible; }
.fp .fp-mt.fp-ring { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 0 0 2px rgba(255, 255, 255, .9), 0 10px 24px -10px rgba(0, 0, 0, .5); }

/* header */
/* The bar's frosted glass sits on a layer behind it (::before), never on the bar itself: an element with a blur becomes
   the frame for every "fixed" thing inside it, so on a phone the language picker's sheet sat at the top of the bar, mostly
   above the screen, and its dimmed backdrop covered only the bar. iPhone Safari didn't drop the blur reliably while the
   picker was open, so nothing here depends on that any more. */
.fp .fp-top { position: sticky; top: 0; z-index: 30; }
.fp .fp-top::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(244, 244, 247, .85); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); pointer-events: none; }
.fp .fp-top:has(.lc-menu[open]) { z-index: 60; }
.fp .fp-top .fp-w { display: flex; align-items: center; gap: 16px; padding-top: 16px; padding-bottom: 16px; }
.fp .fp-top .brand { color: var(--ink); font-weight: 800; }
.fp .fp-top nav { display: flex; gap: 22px; margin-left: 20px; font-weight: 600; color: var(--text2); }
.fp .fp-top nav a:hover { color: var(--ink); }
.fp .fp-top .fp-sp { flex: 1; }
.fp .fp-top .lc-menu { display: flex; align-items: center; margin: 0; }
.fp .fp-top .fp-login { font-weight: 700; padding: 10px 16px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px rgba(10, 10, 15, .18); }
.fp .fp-top .fp-login:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.fp .fp-top .fp-pill { padding: 13px 22px; font-size: 15px; }

.fp .fp-t-violet { background: radial-gradient(120% 120% at 0% 0%, #b794ff, #8b5cf6 45%, #4c1d95); color: #fff; }
.fp .fp-t-ink { background: radial-gradient(120% 120% at 100% 0%, #2a2a3a, #0a0a0f 60%); color: #fff; }
.fp .fp-t-amber { background: radial-gradient(120% 120% at 100% 0%, #fde68a, #f59e0b 45%, #b45309); color: #fff; }

/* hero: words left, the example Profit Check right */
.fp .fp-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: center; padding-top: 44px; }
.fp .fp-hero > .fp-say { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.fp .fp-hero h1 { font: 700 clamp(20px, 2vw, 26px)/1.6 Geist, sans-serif; letter-spacing: -.01em; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fp .fp-big { font-size: clamp(46px, 5.6vw, 88px); line-height: .92; letter-spacing: -.05em; }
.fp .fp-big .fp-r { color: var(--red); } .fp .fp-big .fp-m { color: var(--green); }
.fp .fp-lead { color: var(--text2); font-size: clamp(18px, 1.5vw, 21px); max-width: 600px; }
.fp .fp-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* brand marks (templates/_brand_logos.html) */
.fp .fp-lchip { display: inline-flex; align-items: center; gap: 8px; background: #fff; border-radius: 999px; padding: 6px 14px 6px 8px; box-shadow: 0 10px 30px -20px rgba(0, 0, 0, .45); font: 700 16px Geist, sans-serif; letter-spacing: 0; white-space: nowrap; color: var(--ink); }
.fp .fp-lchip svg { flex: none; }
.fp .fp-lchip.fp-lbig { padding: 8px 20px 8px 12px; gap: 12px; font-size: clamp(18px, 2vw, 26px); }
.fp .fp-lchip small { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: #F1F2F6; color: #6a6a80; border-radius: 999px; padding: 3px 8px; }
.fp .fp-lchip.fp-lbig small { font-size: 12px; }

/* the example Profit Check: two radio buttons switch between what Meta says and the real profit, no script */
.fp .fp-calc { background: #fff; border-radius: 36px; padding: 28px; box-shadow: 0 60px 120px -50px rgba(30, 20, 80, .5), 0 0 0 1px rgba(14, 18, 32, .05); display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.fp .fp-chd { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fp .fp-chd h2 { font-size: 26px; letter-spacing: -.03em; }
.fp .fp-chd span { background: #F1F2F6; border-radius: 999px; padding: 5px 12px; font-size: 13px; font-weight: 800; white-space: nowrap; }
.fp .fp-inp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fp .fp-inp div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.fp .fp-inp small { font-size: 13px; font-weight: 700; color: #6a6a80; }
.fp .fp-inp b { background: #F4F4F7; border-radius: 14px; padding: 11px 14px; font-size: 18px; font-weight: 600; }
.fp .fp-vr { position: absolute; opacity: 0; pointer-events: none; }
.fp .fp-seg { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: #F1F2F6; align-self: flex-start; max-width: 100%; }
.fp .fp-seg label { cursor: pointer; border-radius: 999px; padding: 9px 16px; font-weight: 800; font-size: 14px; color: #55556A; }
.fp #fp-v-roas:checked ~ .fp-seg label[for="fp-v-roas"], .fp #fp-v-real:checked ~ .fp-seg label[for="fp-v-real"] { background: var(--ink); color: #fff; }
.fp .fp-vr:focus-visible ~ .fp-seg { outline: 3px solid #a78bfa; outline-offset: 2px; }
.fp #fp-v-roas:checked ~ .fp-res-real, .fp #fp-v-real:checked ~ .fp-res-roas { display: none; }
.fp .fp-res { border-radius: 24px; padding: 20px; display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.fp .fp-res small { display: block; font-size: 13px; font-weight: 700; }
.fp .fp-res b { display: block; font-size: 44px; line-height: 1; margin: 6px 0; }
.fp .fp-res .fp-mark { font-size: 44px; }
.fp .fp-res-roas { background: #ECFDF5; color: #065f46; } .fp .fp-res-roas b { color: var(--green); }
.fp .fp-res-real { background: #FFF1F2; color: #9f1239; } .fp .fp-res-real b { color: var(--red); }
.fp .fp-calc > .fp-pill { width: 100%; }
.fp .fp-fine { font-size: 13px; color: var(--muted); text-align: center; }

/* connects strip */
.fp .fp-strip { padding-top: 90px; display: flex; flex-direction: column; gap: 22px; align-items: center; text-align: center; }
.fp .fp-strip .fp-kw { margin: 0; }
.fp .fp-logos { display: flex; flex-wrap: wrap; gap: 12px 14px; justify-content: center; }
.fp .fp-trust { display: flex; flex-wrap: wrap; gap: 10px 26px; justify-content: center; color: var(--text2); font-weight: 700; font-size: 15px; }
.fp .fp-trust span { display: flex; gap: 8px; align-items: center; } .fp .fp-trust svg { color: var(--green); flex: none; }

/* sections */
.fp .fp-sec { padding-top: 140px; display: flex; flex-direction: column; gap: 36px; }
.fp .fp-h2 { font-size: clamp(42px, 5.4vw, 86px); line-height: .92; }
.fp .fp-kw { display: block; font: 800 13px Geist, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.fp .fp-shead { display: flex; flex-direction: column; gap: 18px; }
.fp .fp-shead p { color: var(--text2); font-size: 19px; max-width: 640px; }
.fp .fp-c { text-align: center; }

/* ROAS lies */
.fp .fp-vs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fp .fp-vsc { border-radius: 36px; padding: 32px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.fp .fp-vsc > b { font-size: 20px; margin-bottom: 4px; }
.fp .fp-meta { background: #EEF0FF; } .fp .fp-gv { background: #fff; box-shadow: 0 40px 90px -60px rgba(14, 18, 32, .6); }
.fp .fp-bar { display: grid; grid-template-columns: 120px minmax(0, 1fr) 100px; gap: 12px; align-items: center; font-weight: 700; font-size: 15px; }
.fp .fp-bar .fp-t { height: 16px; border-radius: 9px; background: rgba(0, 0, 0, .06); overflow: hidden; }
.fp .fp-bar .fp-t i { display: block; height: 100%; border-radius: 9px; background: #3446f2; }
.fp .fp-bar > b { text-align: right; color: #3446f2; white-space: nowrap; }
.fp .fp-gv .fp-bar .fp-t i { background: var(--green); } .fp .fp-gv .fp-bar > b { color: var(--green); }
.fp .fp-gv .fp-bar.fp-loss .fp-t i { background: var(--red); } .fp .fp-gv .fp-bar.fp-loss > b { color: var(--red); }
.fp .fp-say2 { font-weight: 700; margin-top: 6px; } .fp .fp-meta .fp-say2 { color: #4a55c8; } .fp .fp-gv .fp-say2 { color: #9f1239; }

/* patterns */
.fp .fp-pats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fp .fp-pat { background: #fff; border-radius: 32px; padding: 26px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 30px 70px -50px rgba(14, 18, 32, .55); min-width: 0; }
.fp .fp-pat h3 { font-size: clamp(22px, 1.9vw, 27px); line-height: 1.05; letter-spacing: -.03em; }
.fp .fp-where { display: flex; gap: 8px; flex-wrap: wrap; }
.fp .fp-where span { background: #F1F2F6; border-radius: 999px; padding: 4px 10px; font-size: 12.5px; font-weight: 800; color: #55556A; }
.fp .fp-cols { display: flex; align-items: flex-end; gap: 8px; height: 120px; padding-top: 8px; }
.fp .fp-cols div { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.fp .fp-cols i { display: block; width: 100%; border-radius: 10px 10px 4px 4px; background: #E3E3EC; }
.fp .fp-cols small { font-size: 11.5px; font-weight: 700; color: var(--muted); text-align: center; line-height: 1.15; overflow-wrap: anywhere; }
.fp .fp-pat1 .fp-c1 { background: #C4B5FD; } .fp .fp-pat1 .fp-c2 { background: var(--violet); }
.fp .fp-pat2 .fp-c2 { background: var(--green); }
.fp .fp-pat3 .fp-c1 { background: #A5F3FC; } .fp .fp-pat3 .fp-c2 { background: #22d3ee; }
.fp .fp-cap { font-size: 12.5px; color: var(--muted); font-weight: 700; text-align: center; }
.fp .fp-move { display: flex; gap: 10px; align-items: center; background: #F7F7FA; border-radius: 16px; padding: 10px 12px; font-weight: 700; font-size: 14.5px; line-height: 1.3; margin-top: auto; }
.fp .fp-move > span:nth-child(2) { flex: 1; min-width: 0; }
.fp .fp-move > b { color: #047857; font-size: 13px; white-space: nowrap; }
.fp .fp-cities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: -16px; }
.fp .fp-city { --c: var(--violet); background: #fff; border-radius: 26px; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.fp .fp-city.fp-cyan { --c: #0891b2; } .fp .fp-city.fp-green { --c: var(--green); } .fp .fp-city.fp-red { --c: var(--red); }
.fp .fp-city.fp-orange { --c: var(--orange); } .fp .fp-city.fp-plum { --c: #4c1d95; }
.fp .fp-ct { display: flex; align-items: center; gap: 8px; font-size: 15px; }
.fp .fp-ct span { background: #F1F2F6; border-radius: 999px; padding: 2px 8px; font-size: 11.5px; font-weight: 800; color: #55556A; }
.fp .fp-ct em { font-style: normal; margin-left: auto; font-size: 22px; font-weight: 700; color: var(--c); }
.fp .fp-city p { font-size: 15px; line-height: 1.3; color: #2a2a38; font-weight: 600; }
.fp .fp-duo { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 6px 10px; align-items: center; font-size: 11.5px; font-weight: 700; color: var(--muted); }
.fp .fp-duo i { display: block; height: 10px; border-radius: 999px; background: #E3E3EC; } .fp .fp-duo i.fp-on { background: var(--c); }
.fp .fp-mv2 { font-size: 13px; font-weight: 800; color: #047857; margin-top: auto; }
.fp .fp-nw { white-space: nowrap; }
.fp .fp-note { color: #6a6a80; font-size: 14px; }
.fp .fp-note.fp-c { font-weight: 700; color: var(--muted); font-size: 13px; margin-top: -16px; }

/* one brain, seven jobs */
.fp .fp-bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.fp .fp-bc { background: #fff; border-radius: 32px; padding: 28px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 30px 70px -50px rgba(14, 18, 32, .55); min-width: 0; }
.fp .fp-bc h3 { font-size: clamp(24px, 2.1vw, 30px); line-height: 1.02; letter-spacing: -.035em; }
.fp .fp-bc p { color: var(--text2); font-size: 16px; }
.fp .fp-bc .fp-mod { display: flex; gap: 10px; align-items: center; font-weight: 800; font-size: 14px; color: #55556A; }
.fp .fp-bc.fp-wide { grid-column: span 2; }
.fp .fp-bc.fp-t-violet { background: radial-gradient(120% 120% at 0% 0%, #b794ff, #8b5cf6 45%, #4c1d95); color: #fff; }
.fp .fp-bc.fp-t-amber { background: radial-gradient(120% 120% at 100% 0%, #fde68a, #f59e0b 45%, #b45309); color: #fff; }
.fp .fp-bc.fp-t-violet p, .fp .fp-bc.fp-t-violet .fp-mod, .fp .fp-bc.fp-t-amber p, .fp .fp-bc.fp-t-amber .fp-mod { color: rgba(255, 255, 255, .9); }
.fp .fp-mvl { display: flex; flex-direction: column; gap: 8px; }
.fp .fp-mv { display: flex; gap: 10px; align-items: center; background: rgba(255, 255, 255, .14); border-radius: 14px; padding: 9px 10px; font-weight: 700; font-size: 14.5px; }
.fp .fp-mv > span:nth-child(2) { flex: 1; min-width: 0; }
.fp .fp-mv small { font-size: 13px; white-space: nowrap; }
.fp .fp-mi { width: 30px; height: 30px; border-radius: 10px; background: rgba(255, 255, 255, .2); display: grid; place-items: center; flex: none; }

/* compare */
.fp .fp-cmp { background: #fff; border-radius: 36px; padding: 10px 0; box-shadow: 0 30px 70px -50px rgba(14, 18, 32, .55); overflow: hidden; }
.fp .fp-cmp table { width: 100%; border-collapse: collapse; }
.fp .fp-cmp th, .fp .fp-cmp td { padding: 16px 22px; text-align: center; font-size: 15.5px; border-bottom: 1px solid #F1F2F6; }
.fp .fp-cmp th { font-size: 14px; color: #6a6a80; font-weight: 800; }
.fp .fp-cmp td:first-child { text-align: left; font-weight: 700; }
.fp .fp-cmp tr:last-child td { border-bottom: 0; }
.fp .fp-cmp .fp-gv { background: #F5F3FF; box-shadow: none; } .fp .fp-cmp th.fp-gv { color: #4c1d95; font-size: 16px; }
.fp .fp-y { color: var(--green); font-weight: 900; font-size: 20px; } .fp .fp-n { color: #C4C4D2; font-size: 20px; }
.fp .fp-h { color: var(--amber); font-weight: 700; font-size: 13px; }

/* prices */
.fp .fp-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 16px; }
.fp .fp-plan { background: #fff; border-radius: 36px; padding: 32px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 30px 70px -50px rgba(14, 18, 32, .55); }
.fp .fp-plan.fp-hl { background: radial-gradient(120% 120% at 0% 0%, #b794ff, #8b5cf6 45%, #4c1d95); color: #fff; }
.fp .fp-plan h3 { font-size: 28px; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fp .fp-plan h3 small { font: 800 12px Geist, sans-serif; letter-spacing: .04em; text-transform: uppercase; background: rgba(255, 255, 255, .2); border-radius: 999px; padding: 5px 10px; }
.fp .fp-plan .fp-price { font-family: 'Bricolage Grotesque'; font-weight: 800; font-size: 56px; letter-spacing: -.04em; line-height: 1; }
.fp .fp-plan .fp-price small { font: 600 15px Geist, sans-serif; letter-spacing: 0; opacity: .7; margin-left: 4px; }
.fp .fp-plan p { color: #55556A; font-size: 15px; } .fp .fp-plan.fp-hl p { color: rgba(255, 255, 255, .85); }
.fp .fp-plan .fp-mods { display: flex; gap: 6px; flex-wrap: wrap; }
.fp .fp-plan .fp-pill { margin-top: auto; width: 100%; }
.fp .fp-plan.fp-hl .fp-pill { background: #fff; color: var(--ink); }
.fp .fp-note { color: #6a6a80; font-size: 14px; }
.fp .fp-note a { font-weight: 700; color: var(--ink); text-decoration: underline; }

/* faq */
.fp .fp-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.fp .fp-q { background: #fff; border-radius: 26px; padding: 24px 26px; display: flex; flex-direction: column; gap: 8px; }
.fp .fp-q b { font-size: 18px; } .fp .fp-q span { color: #55556A; font-size: 15.5px; }
.fp .fp-q.fp-qwide { grid-column: 1 / -1; } .fp .fp-q a { color: inherit; font-weight: 650; white-space: nowrap; }

/* the ending: the page's grey melts into violet; the booking card floats in it and the footer shares the colour */
.fp .fp-end { position: relative; overflow: hidden; margin-top: 40px; padding-top: 120px;
  background:
    radial-gradient(42% 30% at 12% 62%, rgba(196, 167, 255, .55), transparent 70%),
    radial-gradient(40% 28% at 92% 70%, rgba(139, 92, 246, .5), transparent 70%),
    linear-gradient(180deg, var(--soft) 0%, #EFEAFE 14%, #D9CBFF 30%, #A98BFA 50%, #7C3AED 66%, #4C1D95 82%, #2B0F5E 100%); }
.fp .fp-end::before { content: ""; position: absolute; left: 50%; top: 34%; width: 1400px; height: 1400px; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 255, 255, .35), transparent 70%); pointer-events: none; }
.fp .fp-demo { position: relative; display: flex; flex-direction: column; align-items: center; gap: 44px; padding-bottom: 40px; }
.fp .fp-dhead { display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; max-width: 880px; }
.fp .fp-kick { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--violet); border-radius: 999px; padding: 8px 16px; font-weight: 800; font-size: 14px; box-shadow: 0 12px 30px -18px rgba(76, 29, 149, .6); }
.fp .fp-demo h2 { font-size: clamp(40px, 5.2vw, 76px); line-height: .94; color: var(--ink); text-wrap: balance; }
.fp .fp-demo h2 span { color: var(--violet); }
.fp .fp-dhead p { color: var(--text2); font-size: clamp(17px, 1.5vw, 20px); max-width: 640px; }
.fp .fp-dcard { width: 100%; max-width: 1080px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-radius: 44px; padding: clamp(20px, 3.4vw, 40px); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 3vw, 44px);
  box-shadow: 0 80px 140px -60px rgba(43, 15, 94, .75), 0 0 0 1px rgba(255, 255, 255, .7) inset; }
.fp .fp-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.fp .fp-steps li { display: flex; align-items: center; gap: 16px; background: var(--soft); border-radius: 26px; padding: 16px 18px; }
.fp .fp-steps li span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fp .fp-steps b { font-size: 18px; } .fp .fp-steps small { color: #6a6a80; font-size: 14.5px; }
.fp .fp-steps li.fp-quiet { background: none; padding: 4px 18px; gap: 10px; color: var(--green); font-weight: 700; font-size: 15px; }
.fp .fp-book { display: flex; flex-direction: column; gap: 14px; margin: 0; min-width: 0; }
.fp .fp-book > b { font-size: 18px; }
.fp .fp-book fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; min-width: 0; }
.fp .fp-book legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.fp .fp-book .fp-days { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.fp .fp-book .fp-times { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fp .fp-book label.fp-ch { position: relative; cursor: pointer; }
.fp .fp-book label.fp-ch input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fp .fp-book label.fp-ch span { display: block; text-align: center; transition: background .15s, color .15s, box-shadow .15s; }
.fp .fp-book .fp-days span { border-radius: 18px; padding: 10px 0; background: var(--soft); }
.fp .fp-book .fp-days small { display: block; font-size: 12px; color: #6a6a80; } .fp .fp-book .fp-days b { font-size: 20px; }
.fp .fp-book .fp-times span { border-radius: 999px; padding: 10px 0; font-weight: 700; box-shadow: inset 0 0 0 1.5px #E4E4EC; }
.fp .fp-book label.fp-ch input:checked + span { background: var(--violet); color: #fff; box-shadow: 0 10px 22px -12px var(--violet); }
.fp .fp-book label.fp-ch input:checked + span small { color: rgba(255, 255, 255, .8); }
.fp .fp-book label.fp-ch input:focus-visible + span { outline: 3px solid #c4b5fd; outline-offset: 2px; }
.fp .fp-book .fp-in { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.fp .fp-book .fp-in input { width: 100%; min-width: 0; border: 0; border-radius: 16px; padding: 14px 16px; font: 600 16px Geist, sans-serif; background: var(--soft); color: var(--ink); }
.fp .fp-book .fp-in input:focus { outline: 2px solid #c4b5fd; }
.fp .fp-book .fp-pill { width: 100%; }
.fp .fp-book .fp-msg { border-radius: 16px; padding: 14px 16px; font-weight: 700; }
.fp .fp-book .fp-msg.fp-ok { background: #ECFDF5; color: #065f46; } .fp .fp-book .fp-msg.fp-bad { background: #FFF1F2; color: #9f1239; }
.fp .fp-book .fp-tz { font-size: 13px; color: #6a6a80; text-align: center; }
.fp .fp-also { color: rgba(255, 255, 255, .8); font-weight: 600; text-align: center; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
.fp .fp-also a { color: #fff; font-weight: 800; }
.fp .fp-also a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* footer: in the ending's deep violet, with the name as a large soft wordmark at the very bottom */
.fp .fp-foot { position: relative; padding-top: 70px; color: rgba(255, 255, 255, .7); font-size: 14px; }
.fp .fp-frow { display: flex; flex-wrap: wrap; gap: 18px 28px; justify-content: space-between; align-items: center; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .16); }
.fp .fp-foot .brand { color: #fff; }
.fp .fp-foot .brand-logo.for-dark { display: block !important; } .fp .fp-foot .brand-logo.for-light { display: none !important; }
.fp .fp-foot nav { display: flex; gap: 20px; flex-wrap: wrap; }
.fp .fp-foot nav a:hover { color: #fff; }
.fp .fp-word { font: 800 clamp(64px, 17vw, 250px)/.8 'Bricolage Grotesque', sans-serif; letter-spacing: -.06em; text-align: center; margin: 36px 0 -.12em; white-space: nowrap;
  background: linear-gradient(180deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 85%); -webkit-background-clip: text; background-clip: text; color: transparent; user-select: none; }


@media (max-width: 1100px) {
  .fp .fp-hero, .fp .fp-vs, .fp .fp-pats { grid-template-columns: minmax(0, 1fr); }
  .fp .fp-bento, .fp .fp-cities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fp .fp-dcard { grid-template-columns: minmax(0, 1fr); max-width: 680px; }
  .fp .fp-top nav { display: none; }
}
@media (max-width: 760px) {
  .fp .fp-w { padding: 0 16px; }
  .fp .fp-faq, .fp .fp-bento, .fp .fp-cities, .fp .fp-dcard, .fp .fp-book .fp-in { grid-template-columns: minmax(0, 1fr); }
  .fp .fp-end { padding-top: 90px; } .fp .fp-dcard { border-radius: 32px; } .fp .fp-steps li { padding: 12px 14px; border-radius: 20px; }
  .fp .fp-frow { flex-direction: column; align-items: flex-start; }
  .fp .fp-bc.fp-wide { grid-column: auto; }
  .fp .fp-sec { padding-top: 90px; } .fp .fp-hero { padding-top: 24px; gap: 36px; } .fp .fp-strip { padding-top: 64px; }
  .fp .fp-calc { padding: 20px; border-radius: 28px; } .fp .fp-inp b { font-size: 16px; } .fp .fp-res b, .fp .fp-res .fp-mark { font-size: 34px; }
  .fp .fp-vsc { padding: 22px; } .fp .fp-bar { grid-template-columns: 84px minmax(0, 1fr) 86px; font-size: 13px; gap: 8px; }
  .fp .fp-cmp th:nth-child(5), .fp .fp-cmp td:nth-child(5) { display: none; }
  .fp .fp-cmp table { table-layout: fixed; } .fp .fp-cmp th:first-child { width: 37%; }
  .fp .fp-cmp th, .fp .fp-cmp td { padding: 11px 3px; font-size: 12.5px; } .fp .fp-cmp th { font-size: 11px; hyphens: auto; } .fp .fp-cmp th.fp-gv { font-size: 12px; }
  .fp .fp-cmp td:first-child { padding-left: 14px; hyphens: auto; } .fp .fp-h { font-size: 10.5px; }
  .fp .fp-pill { width: 100%; white-space: normal; text-align: center; } .fp .fp-top .fp-pill { width: auto; padding: 11px 16px; font-size: 14px; white-space: nowrap; }
  .fp .fp-top .fp-login { padding: 10px 14px; font-size: 14px; }
  .fp .fp-top .fp-w { gap: 10px; } .fp .fp-top .lc-picker, .fp .fp-top [data-lc] { display: none; }
}
@media (max-width: 560px) {
  .fp .fp-lchip.fp-lbig { font-size: 18px; padding: 6px 14px 6px 8px; } .fp .fp-lchip.fp-lbig svg { width: 26px; height: 26px; }
}
@media (prefers-reduced-motion: reduce) { .fp *, .fp *::before { animation: none !important; } }
.fp .fp-top nav a, .fp .fp-login { white-space: nowrap; }
@media (max-width: 1366px) { .fp .fp-top nav { display: none; } }
@media (max-width: 700px) { .fp .fp-top .lc-pill .lc-cur { display: inline; } }
@media (max-width: 560px) {
  /* phones: logo + language/currency on the first line, Log in and Sign up side by side below */
  .fp .fp-top .fp-w { flex-wrap: wrap; gap: 10px 8px; padding-top: 12px; padding-bottom: 12px; }
  .fp .fp-top .brand { flex: none; padding: 0; }
  .fp .fp-top .fp-login, .fp .fp-top .fp-signup { flex: 1 1 40%; justify-content: center; text-align: center; padding: 10px 12px; font-size: 14px; }
}
