/*
 * fim-core.css — FIM Marketplace SHARED design system
 * ─────────────────────────────────────────────────────────────────────────
 * Loaded on EVERY FIM template (home, payors, providers, vendors, customers).
 * Contains brand tokens, typography, nav, footer, buttons, hero scaffolding,
 * reveal animations, and the section patterns reused across pages.
 * Page-specific CSS files (fim-home.css etc.) layer on top of this.
 *
 * Scoped under .fim-page so it never affects WP admin or other themes' pages.
 *
 * BRAND TOKENS (FIM Brandbook):
 *   --g900 #212E1B  --g700 #3C622F  --g500 #5A7E3D  --g300 #ACC28F
 *   Montserrat (headings) / Poppins (body)
 * ─────────────────────────────────────────────────────────────────────────
 */
.fim-page{
  --g900:#212E1B;--g700:#3C622F;--g500:#5A7E3D;--g300:#ACC28F;--g200:#C8DEB0;
  --g100:#EAF2E0;--g50:#F4FAF0;--ink:#1A1A1A;--ink-mid:#444;--ink-light:#6b6b6b;
  --white:#FFFFFF;--off-white:#F8FAF6;--border:rgba(33,46,27,.12);--border-med:rgba(33,46,27,.22);
  --fh:'Montserrat',sans-serif;--fb:'Poppins',sans-serif;
}
.fim-page *,.fim-page *::before,.fim-page *::after{box-sizing:border-box;margin:0;padding:0}
.fim-page{background:var(--white);color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
.fim-page img{max-width:100%;display:block}

/* ── NAV ─────────────────────────────────────────────────────────────────── */
.fim-page .fim-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;height:66px;gap:16px;transition:background .3s,box-shadow .3s}
.fim-page .fim-nav.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--border)}
.fim-page .nav-logo-w,.fim-page .nav-logo-d{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
.fim-page .nav-logo-w img,.fim-page .nav-logo-d img{height:32px;width:auto}
.fim-page .nav-logo-d{display:none}
.fim-page .fim-nav.scrolled .nav-logo-w{display:none}
.fim-page .fim-nav.scrolled .nav-logo-d{display:flex}
.fim-page .nav-right{display:flex;align-items:center;gap:14px}
.fim-page .nav-ny{display:inline-flex;align-items:center;gap:6px;font-family:var(--fh);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g300);white-space:nowrap}
.fim-page .nav-ny::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--g300);animation:fim-pulse 2s ease-in-out infinite}
.fim-page .fim-nav.scrolled .nav-ny{color:var(--g700)}
.fim-page .fim-nav.scrolled .nav-ny::before{background:var(--g500)}
.fim-page .nav-cta{font-family:var(--fh);font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--white);background:transparent;border:1.5px solid rgba(255,255,255,.7);padding:8px 18px;border-radius:100px;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.fim-page .nav-cta:hover{background:rgba(255,255,255,.12)}
.fim-page .fim-nav.scrolled .nav-cta{color:var(--g900);border-color:var(--border-med)}
.fim-page .fim-nav.scrolled .nav-cta:hover{background:var(--g900);color:var(--white);border-color:var(--g900)}

/* ── REVEAL ──────────────────────────────────────────────────────────────── */
.fim-page .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.fim-page .reveal.in{opacity:1;transform:translateY(0)}
.fim-page .d1{transition-delay:.1s}.fim-page .d2{transition-delay:.2s}.fim-page .d3{transition-delay:.3s}.fim-page .d4{transition-delay:.4s}.fim-page .d5{transition-delay:.5s}
@media(prefers-reduced-motion:reduce){.fim-page .reveal{opacity:1;transform:none;transition:none}}

/* ── LAYOUT ──────────────────────────────────────────────────────────────── */
.fim-page section{padding:92px 5vw}
.fim-page .inner{max-width:1140px;margin:0 auto}
.fim-page .inner-md{max-width:900px;margin:0 auto}
.fim-page .inner-sm{max-width:680px;margin:0 auto}
.fim-page .rule{border:none;border-top:1px solid var(--border);margin:0}

/* ── TYPOGRAPHY ──────────────────────────────────────────────────────────── */
.fim-page .eyebrow{display:inline-block;font-family:var(--fh);font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--g500);margin-bottom:15px}
.fim-page .eyebrow-light{color:var(--g300)}
.fim-page h1{font-family:var(--fh);font-size:clamp(2.3rem,4.5vw,3.9rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--white);margin-bottom:20px}
.fim-page h2{font-family:var(--fh);font-size:clamp(1.6rem,2.9vw,2.5rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--g900)}
.fim-page h2.on-dark{color:var(--white)}
.fim-page h3{font-family:var(--fh);font-size:1rem;font-weight:700;color:var(--g900);margin-bottom:9px;letter-spacing:-.01em}
.fim-page p{font-weight:300}

/* ── BUTTONS ─────────────────────────────────────────────────────────────── */
.fim-page .btn{font-family:var(--fh);font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:14px 30px;border-radius:100px;cursor:pointer;text-decoration:none;display:inline-block;transition:background .2s,color .2s,border-color .2s,transform .15s,box-shadow .2s;border:2px solid transparent}
.fim-page .btn-green{background:var(--g500);color:var(--white);border-color:var(--g500);box-shadow:0 4px 16px rgba(90,126,61,.3)}
.fim-page .btn-green:hover{background:var(--g700);border-color:var(--g700);transform:translateY(-2px)}
.fim-page .btn-dark{background:var(--g900);color:var(--white);border-color:var(--g900)}
.fim-page .btn-dark:hover{background:var(--g700);border-color:var(--g700);transform:translateY(-2px)}
.fim-page .btn-white{background:var(--white);color:var(--g900);border-color:var(--white)}
.fim-page .btn-white:hover{background:var(--g100);border-color:var(--g100);transform:translateY(-2px)}
.fim-page .btn-outline{background:transparent;color:var(--g900);border-color:var(--border-med)}
.fim-page .btn-outline:hover{background:var(--g900);color:var(--white);border-color:var(--g900);transform:translateY(-2px)}
.fim-page .btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.45)}
.fim-page .btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.1);transform:translateY(-2px)}
.fim-page .btn-block{display:block;text-align:center;width:100%;margin-bottom:10px}
.fim-page .btn-block:last-child{margin-bottom:0}

/* ── HERO (shared scaffold) ──────────────────────────────────────────────── */
.fim-page .hero{min-height:92vh;display:flex;align-items:center;padding:120px 5vw 80px;background-color:var(--g900);background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;overflow:hidden}
.fim-page .hero::after{content:'';position:absolute;inset:0;background:linear-gradient(150deg,rgba(33,46,27,.78) 0%,rgba(33,46,27,.42) 58%,rgba(60,98,47,.28) 100%);pointer-events:none}
.fim-page .hero-inner{max-width:1140px;margin:0 auto;width:100%;position:relative;z-index:1}
.fim-page .hero-pretag{display:inline-flex;align-items:center;gap:9px;font-family:var(--fh);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--g300);margin-bottom:18px}
.fim-page .hero-pretag::before{content:'';width:26px;height:1.5px;background:var(--g300)}
.fim-page .hero-sub{font-size:1.05rem;font-weight:300;color:rgba(255,255,255,.85);line-height:1.75;margin-bottom:32px}
.fim-page .ny-banner{display:inline-flex;align-items:center;gap:9px;font-family:var(--fh);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g900);background:var(--g300);padding:8px 18px;border-radius:100px;margin-bottom:24px}
.fim-page .ny-banner svg{width:14px;height:14px}

/* ── PILLS / BADGES ──────────────────────────────────────────────────────── */
.fim-page .pill{font-size:.68rem;font-weight:500;padding:3px 10px;border-radius:100px;background:rgba(172,194,143,.2);color:var(--g300)}
.fim-page .badge{font-family:var(--fh);font-size:.62rem;font-weight:600;letter-spacing:.08em;padding:5px 12px;border-radius:100px;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.75);background:rgba(255,255,255,.06)}

/* ── FOOTER ──────────────────────────────────────────────────────────────── */
.fim-page footer{background:#111a0f;padding:54px 5vw 44px}
.fim-page .footer-inner{max-width:1140px;margin:0 auto}
.fim-page .footer-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1)}
.fim-page .footer-logo{height:30px;width:auto;margin-bottom:12px}
.fim-page .footer-tag{font-size:.8rem;color:rgba(255,255,255,.45);font-weight:300;max-width:320px;line-height:1.6}
.fim-page .footer-nav{display:flex;gap:48px;flex-wrap:wrap}
.fim-page .footer-col h4{font-family:var(--fh);font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g300);margin-bottom:14px}
.fim-page .footer-col a{display:block;font-size:.82rem;color:rgba(255,255,255,.55);text-decoration:none;padding:4px 0;font-weight:300;transition:color .2s}
.fim-page .footer-col a:hover{color:var(--white)}
.fim-page .footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:24px}
.fim-page .footer-bottom p{font-size:.74rem;color:rgba(255,255,255,.35);font-weight:300;line-height:1.7}
.fim-page .footer-ny{font-family:var(--fh);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--g300)}

/* ── ANIMATIONS ──────────────────────────────────────────────────────────── */
@keyframes fim-pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ── RESPONSIVE BASE ─────────────────────────────────────────────────────── */
@media(max-width:768px){
  .fim-page section{padding:64px 5vw}
  .fim-page .hero{min-height:auto;padding:110px 5vw 64px}
  .fim-page h1{font-size:2.1rem}
  .fim-page .nav-ny{display:none}
  .fim-page .footer-top{flex-direction:column;gap:28px}
  .fim-page .footer-nav{gap:32px}
  .fim-page .footer-bottom{flex-direction:column;align-items:flex-start}
}
@media(max-width:480px){
  .fim-page .nav-cta{padding:7px 14px;font-size:.62rem}
  .fim-page .btn{width:100%;text-align:center}
  .fim-page .footer-nav{gap:24px}
}

/* ── ENTRY MODAL ("Where do you fit?") ───────────────────────────────────── */
.fim-page #fim-entry-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(17,26,15,.72);backdrop-filter:blur(6px)}
.fim-page #fim-entry-modal.open{display:flex;animation:fim-fade .25s ease}
@keyframes fim-fade{from{opacity:0}to{opacity:1}}
.fim-page .entry-dialog{background:var(--white);border-radius:18px;max-width:680px;width:100%;padding:40px 38px;position:relative;max-height:90vh;overflow-y:auto;animation:fim-rise .3s ease}
@keyframes fim-rise{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}
.fim-page .entry-close{position:absolute;top:18px;right:18px;width:34px;height:34px;border:none;background:var(--g50);border-radius:50%;cursor:pointer;font-size:1.1rem;color:var(--ink-mid);display:flex;align-items:center;justify-content:center;transition:background .2s}
.fim-page .entry-close:hover{background:var(--g100)}
.fim-page .entry-dialog .eyebrow{margin-bottom:8px}
.fim-page .entry-dialog h2{font-size:1.5rem;margin-bottom:6px}
.fim-page .entry-dialog>p{font-size:.9rem;color:var(--ink-mid);font-weight:300;margin-bottom:24px}
.fim-page .entry-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fim-page .entry-opt{display:flex;align-items:center;gap:13px;border:1px solid var(--border-med);border-radius:12px;padding:16px 16px;text-decoration:none;transition:border-color .2s,background .2s,transform .15s}
.fim-page .entry-opt:hover{border-color:var(--g500);background:var(--g50);transform:translateY(-2px)}
.fim-page .entry-opt-icon{flex-shrink:0;width:40px;height:40px;border-radius:9px;background:var(--g500);display:flex;align-items:center;justify-content:center}
.fim-page .entry-opt-icon svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.8}
.fim-page .entry-opt strong{display:block;font-family:var(--fh);font-size:.86rem;font-weight:700;color:var(--g900)}
.fim-page .entry-opt span{font-size:.74rem;color:var(--ink-light);font-weight:300}
.fim-page .entry-skip{display:block;text-align:center;margin-top:20px;font-size:.8rem;color:var(--ink-light);background:none;border:none;cursor:pointer;text-decoration:underline;width:100%}
@media(max-width:560px){.fim-page .entry-options{grid-template-columns:1fr}.fim-page .entry-dialog{padding:32px 24px}}

/* Superscript registered mark (e.g. in hero H1) */
.fim-page .reg{font-size:.42em;vertical-align:super;line-height:0;font-weight:inherit;margin-left:.02em}
