/* beta-fx-landing.css — FancyFlow's public pages (landing, privacy, terms).
   Built on beta.css's tokens and beta-fx.css's brand (rose primary, dark mode
   through the same variables). Linked from the "fx-pub-seo" head block, after
   beta-fx.css. Class names: fx-land-*, fx-mock-*, fx-price-*, fx-legal-* and
   a few semantic ones (fx-trust, fx-step, fx-dive, fx-checks, fx-cta-panel). */

/* in-page anchors land below the sticky header (3.75rem) */
.fx-anchor{scroll-margin-top:4.5rem}

/* ---------- hero ---------- */
.fx-land-hero{position:relative;overflow:hidden;padding-block:2.75rem 2.5rem;border-bottom:1px solid var(--border);
  background:radial-gradient(56rem 26rem at 88% -12%,color-mix(in oklab,var(--primary) 15%,transparent),transparent 70%),
             radial-gradient(40rem 22rem at -12% 112%,color-mix(in oklab,var(--primary) 9%,transparent),transparent 70%)}
@media (min-width:64rem){.fx-land-hero{padding-block:4.5rem 4rem}}
.fx-land-hero-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:64rem){.fx-land-hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:3.5rem}}
.fx-eyebrow{display:inline-flex;align-items:center;gap:.45rem;border:1px solid color-mix(in oklab,var(--primary) 30%,var(--border));background:color-mix(in oklab,var(--primary) 8%,var(--background));color:var(--primary);border-radius:999px;padding:.3rem .8rem;font-size:.8rem;font-weight:600;line-height:1.3}
.fx-land-title{margin-top:1.1rem;font-size:2.25rem;line-height:1.08;font-weight:800;letter-spacing:-.035em;text-wrap:balance}
@media (min-width:48rem){.fx-land-title{font-size:3.2rem}}
.fx-land-title em{font-style:normal;color:var(--primary)}
.fx-land-lead{margin-top:1rem;max-width:36rem;font-size:1.06rem;line-height:1.65;color:var(--muted-foreground)}
.fx-land-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.fx-land-micro{margin-top:.9rem;font-size:.82rem;line-height:1.5;color:var(--muted-foreground)}

/* trust strip */
.fx-trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:2rem}
@media (min-width:40rem){.fx-trust{grid-template-columns:repeat(4,minmax(0,1fr))}}
.fx-trust li{display:flex;flex-direction:column;gap:.3rem;border:1px solid var(--border);border-radius:.8rem;background:color-mix(in oklab,var(--card) 88%,transparent);padding:.75rem .85rem}
.fx-trust svg{color:var(--primary)}
.fx-trust b{font-size:.92rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.fx-trust span{font-size:.75rem;line-height:1.35;color:var(--muted-foreground)}

/* the counter mock beside the hero (decorative, aria-hidden) */
.fx-mock{border:1px solid var(--border);border-radius:1.1rem;background:var(--card);overflow:hidden;
  box-shadow:0 1px 2px rgb(0 0 0 / .05),0 28px 56px -28px color-mix(in oklab,var(--primary) 50%,transparent)}
.fx-mock-bar{display:flex;align-items:center;gap:.4rem;padding:.6rem .85rem;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--muted) 60%,var(--card));font-size:.75rem;color:var(--muted-foreground)}
.fx-mock-bar span:last-child{margin-left:auto;font-variant-numeric:tabular-nums}
.fx-mock-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--border)}
.fx-mock-body{display:flex;flex-direction:column;gap:.7rem;padding:1rem}
.fx-mock-scan{display:flex;align-items:center;gap:.55rem;border:1px solid var(--border);border-radius:.6rem;padding:.55rem .7rem;font-size:.85rem;color:var(--muted-foreground)}
.fx-mock-scan svg{color:var(--primary)}
.fx-mock-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem .75rem;padding-block:.5rem;border-bottom:1px dashed var(--border);font-size:.88rem}
.fx-mock-line small{font-size:.72rem;color:var(--muted-foreground)}
.fx-mock-line b{grid-row:span 2;align-self:center;font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
.fx-mock-total{display:flex;justify-content:space-between;align-items:baseline;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}
.fx-mock-pay{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
.fx-mock-pay span{border:1px solid var(--border);border-radius:.5rem;padding:.4rem 0;text-align:center;font-size:.75rem;font-weight:600}
.fx-mock-pay .fx-mock-on{border-color:var(--primary);background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--primary)}
.fx-mock-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;border-radius:.6rem;background:var(--primary);color:var(--primary-foreground);padding:.6rem;font-size:.88rem;font-weight:600}

/* ---------- feature cards (beta-fx.css .fx-feature) ---------- */
.fx-feature-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.fx-plan-tag{border-radius:999px;padding:.15rem .55rem;font-size:.68rem;font-weight:600;line-height:1.4;white-space:nowrap;background:var(--muted);color:var(--muted-foreground)}
.fx-plan-tag-free{background:color-mix(in oklab,#16a34a 14%,transparent);color:#15803d}
.dark .fx-plan-tag-free{color:#4ade80}

/* "why FancyFlow" cards: a rose rule instead of an icon */
.fx-why{border-top:3px solid var(--primary)}
.fx-why h3{margin-top:0}

/* ---------- how it works ---------- */
.fx-steps{display:grid;gap:1rem}
@media (min-width:48rem){.fx-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fx-step{border:1px solid var(--border);border-radius:.9rem;background:var(--card);padding:1.25rem}
.fx-step-n{display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:.9rem;font-weight:700}
.fx-step h3{margin-top:.75rem;font-weight:600}
.fx-step p{margin-top:.35rem;font-size:.92rem;line-height:1.55;color:var(--muted-foreground)}

/* ---------- module deep-dives ---------- */
.fx-dive{border:1px solid var(--border);border-radius:1rem;background:var(--card);padding:1.4rem}
.fx-dive-eyebrow{display:flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}
.fx-dive-eyebrow::before{content:"";width:.5rem;height:.5rem;border-radius:.15rem;background:var(--primary);transform:rotate(45deg)}
.fx-dive h3{margin-top:.6rem;font-size:1.12rem;font-weight:700;letter-spacing:-.01em}
/* a CSS tick (no per-item SVG — keeps the page small) */
.fx-checks{display:flex;flex-direction:column;gap:.55rem;margin-top:.85rem}
.fx-checks li{display:flex;align-items:flex-start;gap:.6rem;font-size:.92rem;line-height:1.5;color:var(--muted-foreground)}
.fx-checks li::before{content:"";flex-shrink:0;width:.38rem;height:.7rem;margin:.28rem .1rem 0 .3rem;border:solid var(--primary);border-width:0 2px 2px 0;transform:rotate(45deg)}
.fx-checks-sm{gap:.4rem;margin-top:0}
.fx-checks-sm li{font-size:.9rem;color:var(--foreground)}

/* ---------- pricing (beta-fx.css .fx-price) ---------- */
.fx-price-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:1.6rem}
.fx-price-name{font-size:1.05rem;font-weight:700}
.fx-price-pill{border-radius:999px;padding:.15rem .6rem;font-size:.7rem;font-weight:700;background:var(--primary);color:var(--primary-foreground);white-space:nowrap}
.fx-price-tagline{font-size:.88rem;line-height:1.45;color:var(--muted-foreground)}
@media (min-width:64rem){.fx-price-tagline{min-height:2.6em}}
.fx-price-amt{display:flex;align-items:baseline;gap:.3rem}
.fx-price-amt span{font-size:.88rem;color:var(--muted-foreground)}
.fx-price-cta{margin-top:auto;padding-top:.5rem}
.fx-price-custom{display:grid;gap:1.1rem;margin-top:1rem;border:1.5px dashed color-mix(in oklab,var(--primary) 45%,var(--border));border-radius:1rem;padding:1.4rem;background:color-mix(in oklab,var(--primary) 4%,var(--background))}
@media (min-width:48rem){.fx-price-custom{grid-template-columns:minmax(0,1fr) auto;align-items:center}}
.fx-price-custom h3{font-size:1.05rem;font-weight:700}
.fx-price-custom p{margin-top:.3rem;font-size:.9rem;line-height:1.55;color:var(--muted-foreground)}
.fx-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.fx-chips li{border:1px solid var(--border);border-radius:999px;background:var(--card);padding:.2rem .6rem;font-size:.75rem}
.fx-price-note{max-width:44rem;margin:1.25rem auto 0;text-align:center;font-size:.85rem;line-height:1.55;color:var(--muted-foreground)}

/* ---------- FAQ (beta-fx.css .fx-faq) ---------- */
.fx-faq{max-width:48rem;margin-inline:auto}
.fx-faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.fx-faq summary::after{content:"";flex-shrink:0;width:.5rem;height:.5rem;margin-right:.3rem;border:solid var(--muted-foreground);border-width:0 2px 2px 0;transform:translateY(-.15rem) rotate(45deg);transition:transform .2s}
.fx-faq details[open] summary::after{transform:translateY(.1rem) rotate(-135deg)}
.fx-faq summary:focus-visible{outline:2px solid var(--ring);outline-offset:4px;border-radius:.25rem}
@media (prefers-reduced-motion:reduce){.fx-faq summary::after{transition:none}}

/* ---------- final call to action ---------- */
.fx-cta-panel{border-radius:1.25rem;padding:2.5rem 1.25rem;text-align:center;color:#fff;background:linear-gradient(135deg,#be185d,#831843);box-shadow:0 30px 60px -30px rgb(131 24 67 / .6)}
@media (min-width:48rem){.fx-cta-panel{padding:3rem 2rem}}
.fx-cta-panel h2{font-size:1.75rem;line-height:1.2;font-weight:800;letter-spacing:-.02em}
.fx-cta-panel p{max-width:34rem;margin:.6rem auto 0;line-height:1.6;color:#fce7f3}
.fx-cta-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem}
.fx-cta-panel .fx-cta-main{background:#fff;color:#9d174d}
.fx-cta-panel .fx-cta-main:hover{background:#fdf2f8}
.fx-cta-panel .fx-cta-alt{border:1px solid rgb(255 255 255 / .55);background:transparent;color:#fff}
.fx-cta-panel .fx-cta-alt:hover{background:rgb(255 255 255 / .12);color:#fff}
.fx-cta-panel .fx-cta-main:focus-visible,.fx-cta-panel .fx-cta-alt:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* ---------- legal pages (beta-fx.css .fx-prose) ---------- */
.fx-legal{padding-block:2rem 1rem}
@media (min-width:48rem){.fx-legal{padding-block:3rem 1.5rem}}
.fx-prose .fx-legal-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:1.25rem;font-size:.88rem;color:var(--muted-foreground);text-decoration:none}
.fx-prose .fx-legal-back:hover{color:var(--foreground)}
.fx-legal-meta{font-size:.85rem;color:var(--muted-foreground)}
.fx-prose .fx-legal-foot{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border)}
.fx-legal-toc{margin-block:1.5rem;border:1px solid var(--border);border-radius:.8rem;background:var(--card);padding:1rem 1.25rem}
.fx-legal-toc h2{margin:0 0 .5rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}
.fx-legal-toc ol{display:grid;gap:.3rem;list-style:decimal;padding-left:1.25rem;font-size:.9rem}
@media (min-width:40rem){.fx-legal-toc ol{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem}}
.fx-prose .fx-legal-toc a{color:var(--foreground);text-decoration:none}
.fx-prose .fx-legal-toc a:hover{color:var(--primary);text-decoration:underline}
.fx-prose h2{scroll-margin-top:4.5rem}
.fx-prose h3{margin-top:1rem;font-weight:600}
.fx-prose p{margin-top:.6rem}
.fx-prose ul{margin-top:.5rem}
.fx-prose li{margin-block:.3rem}
.fx-prose strong{font-weight:600;color:var(--foreground)}
.fx-prose a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.fx-prose .fx-legal-note{margin-top:1rem;border:1px solid color-mix(in oklab,var(--primary) 25%,var(--border));border-radius:.8rem;background:color-mix(in oklab,var(--primary) 5%,var(--background));padding:.85rem 1rem;font-size:.9rem}
.fx-legal-table{margin-top:.75rem;overflow-x:auto;border:1px solid var(--border);border-radius:.75rem}
.fx-legal-table table{width:100%;font-size:.88rem}
.fx-legal-table th{padding:.55rem .75rem;text-align:left;font-weight:600;border-bottom:1px solid var(--border);color:var(--foreground);white-space:nowrap}
.fx-legal-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);color:var(--muted-foreground);vertical-align:top}
.fx-legal-table tr:last-child td{border-bottom:0}
.fx-legal-table .fx-num{color:var(--foreground);white-space:nowrap}
