/* ============================================================
   framedminds — homepage
   fm-home.css · v1.2.0

   Calling design system.
   Ink #231F20 · Green #88BD40 · Deep #5E8A26 · Warm #F7F7F4 · Line #E4E3DF

   Colors are compiled to literals by design (no CSS variables) so
   minify / combine / RUCSS layers cannot break a defining rule.

   TWO HALVES
   ----------
   Part A is the shared Calling shell (.fm-page). It is byte-identical
   in intent to the block every other public page carries inline. Once
   you are happy with it here, this half can be lifted into custom.css
   and enqueued site-wide, and the inline copies deleted from Careers,
   Philosophy, Manifesto, FAQ, Affiliate, App, Contact, Circles and
   Business. That is nine duplicates collapsed to one.

   Part B is homepage-only (.fm-home).

   ANIMATION IS FAIL-VISIBLE — this changed in v1.0.0
   --------------------------------------------------
   The old rule was `.reveal{opacity:0}` with JS adding `.in` to bring
   content back. Two ways that ships a blank page: a JavaScript error
   (the <noscript> fallback does not cover that, only JS being
   disabled), or LiteSpeed's Remove Unused CSS stripping `.in` because
   that selector never appears in the source HTML.

   Now nothing hides until JS adds `.fm-anim` to the wrapper at
   runtime. If the script fails, or if an optimizer strips the
   `.fm-anim` rules, every element simply renders. The same inversion
   is applied to the framed-word draw and the Bridges squares, both of
   which previously had an invisible or half-built resting state.
   ============================================================ */


/* ============================================================
   PART A — shared Calling shell
   ============================================================ */

.fm-page{
  font-family:'Newsreader',Georgia,serif;
  font-size:1.125rem;line-height:1.65;
  color:#231F20;background:#FFFFFF;
  -webkit-font-smoothing:antialiased;
}
.fm-page *,.fm-page *::before,.fm-page *::after{box-sizing:border-box;margin:0;padding:0}
.fm-page ::selection{background:#88BD40;color:#231F20}
.fm-page a{color:inherit}
.fm-page img{max-width:100%;height:auto}
.fm-page section,.fm-page header{scroll-margin-top:6rem}
.fm-page .wrap{max-width:1120px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}

.fm-page .eyebrow{
  font-family:'Archivo',system-ui,sans-serif;font-weight:700;font-size:.72rem;
  letter-spacing:.22em;text-transform:uppercase;color:#5E8A26;
}
.fm-page .display{
  font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;
  letter-spacing:-.025em;line-height:1.05;color:#231F20;
}

/* ---------- scroll reveal (fail-visible) ---------- */
.fm-page.fm-anim .reveal{
  opacity:0;transform:translateY(18px);
  transition:opacity .7s ease,transform .7s ease;
}
.fm-page.fm-anim .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .fm-page.fm-anim .reveal{opacity:1;transform:none;transition:none}
}

/* ---------- hero ---------- */
.fm-page .fm-hero{padding:clamp(4.5rem,10vw,7.5rem) 0 clamp(3.5rem,7vw,5.5rem)}
.fm-page .fm-hero h1{font-size:clamp(2.5rem,6.6vw,4.9rem);max-width:20ch;margin:1.4rem 0 1.8rem}
.fm-page .fm-hero .lede{font-size:clamp(1.15rem,2vw,1.32rem);max-width:36rem}
.fm-page .fm-hero .lede + .lede,.fm-page .fm-hero .lede + p{margin-top:1rem}

/* ---------- framed word (fail-visible: resting state is DRAWN) ---------- */
.fm-page .framed-word{position:relative;display:inline-block;padding:.04em .16em}
.fm-page .framed-word svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.fm-page .framed-word .frame-line{
  fill:none;stroke:#88BD40;stroke-width:5;
  stroke-dasharray:1;stroke-dashoffset:0;
}
.fm-page .framed-word .frame-fill{fill:#88BD40;opacity:1}
.fm-page.fm-anim .framed-word .frame-line{
  stroke-dashoffset:1;transition:stroke-dashoffset 1.1s ease .5s;
}
.fm-page.fm-anim .framed-word .frame-fill{opacity:0;transition:opacity .4s ease 1.4s}
.fm-page.fm-anim.loaded .framed-word .frame-line{stroke-dashoffset:0}
.fm-page.fm-anim.loaded .framed-word .frame-fill{opacity:1}
@media (prefers-reduced-motion:reduce){
  .fm-page.fm-anim .framed-word .frame-line{stroke-dashoffset:0;transition:none}
  .fm-page.fm-anim .framed-word .frame-fill{opacity:1;transition:none}
}

/* ---------- buttons ---------- */
.fm-page .btn{
  display:inline-block;font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.85rem;
  letter-spacing:.05em;text-transform:lowercase;text-decoration:none!important;
  padding:.9rem 1.6rem;border:2px solid #231F20;
  transition:transform .15s ease,background .2s,color .2s,border-color .2s;
}
.fm-page .btn-solid{background:#231F20;color:#fff!important}
.fm-page .btn-solid:hover{background:#5E8A26;border-color:#5E8A26;color:#fff!important;transform:translateY(-2px)}
.fm-page .btn-ghost{background:transparent;color:#231F20!important}
.fm-page .btn-ghost:hover{border-color:#5E8A26;color:#5E8A26!important;transform:translateY(-2px)}
.fm-page .btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}

/* ---------- sections ---------- */
.fm-page .sec{padding:clamp(4rem,8vw,6.5rem) 0}
.fm-page .sec-warm{background:#F7F7F4;border-top:1px solid #E4E3DF;border-bottom:1px solid #E4E3DF}
.fm-page .sec-head{max-width:46rem;margin-bottom:clamp(2.2rem,5vw,3.5rem)}
.fm-page .sec-head h2{font-size:clamp(1.9rem,4.4vw,3rem);margin:1.2rem 0 1.1rem}
.fm-page .two-col{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.fm-page .two-col h2{font-size:clamp(1.9rem,4vw,2.9rem);margin-top:1.2rem}
.fm-page .prose p{margin-bottom:1.35rem}
.fm-page .prose p:last-child{margin-bottom:0}
.fm-page .prose strong{font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:1rem;text-transform:lowercase}
.fm-page .prose ul{list-style:none;margin:0 0 1.35rem}
.fm-page .prose ul li{position:relative;padding-left:1.4rem;margin-bottom:.8rem}
.fm-page .prose ul li::before{content:"";position:absolute;left:0;top:.52em;width:9px;height:9px;background:#88BD40}

/* ---------- cards ---------- */
.fm-page .card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.fm-page .card-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.fm-page .fm-card{
  position:relative;border:1px solid #E4E3DF;background:#FFFFFF;padding:2rem;
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.fm-page .fm-card:hover{border-color:#88BD40;transform:translateY(-4px);box-shadow:0 14px 34px rgba(35,31,32,.08)}
.fm-page .fm-card h3{
  font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;
  letter-spacing:-.01em;font-size:1.25rem;margin-bottom:.6rem;
}
.fm-page .fm-card p{font-size:1.02rem;margin-bottom:0}
.fm-page .fm-card .mark{position:absolute;top:1.3rem;right:1.3rem;width:22px;height:22px}
.fm-page .fm-card .num{
  font-family:'Archivo',system-ui,sans-serif;font-weight:900;font-size:2.2rem;line-height:1;
  color:#88BD40;display:block;margin-bottom:.9rem;
}
.fm-page .fm-card .who{
  font-family:'Archivo',system-ui,sans-serif;font-weight:700;font-size:.68rem;
  letter-spacing:.18em;text-transform:uppercase;color:#7C7975;margin-bottom:.9rem;
}

/* ---------- quiet quote ---------- */
.fm-page .quiet{
  font-style:italic;color:#7C7975;border-left:3px solid #88BD40;
  padding-left:1rem;max-width:32rem;
}

/* ---------- ink sections ---------- */
.fm-page .sec-ink{background:#231F20;color:#fff;padding:clamp(4.5rem,9vw,7rem) 0}
.fm-page .sec-ink .display,.fm-page .sec-ink h2{color:#fff}
.fm-page .sec-ink h2{font-size:clamp(2rem,4.5vw,3.2rem);margin:1.2rem 0 1.4rem}
.fm-page .sec-ink p{color:#DDDCD8;max-width:40rem}
.fm-page .sec-ink p + p{margin-top:1rem}
.fm-page .sec-ink .eyebrow{color:#88BD40}
.fm-page .sec-ink .quiet{color:#9B9894}
.fm-page .sec-ink .btn-ghost{color:#fff!important;border-color:#fff}
.fm-page .sec-ink .btn-ghost:hover{border-color:#88BD40;color:#88BD40!important}
.fm-page .sec-ink .btn-solid{background:#88BD40;border-color:#88BD40;color:#231F20!important}
.fm-page .sec-ink .btn-solid:hover{background:#9BD053;border-color:#9BD053;transform:translateY(-2px)}
.fm-page .sec-ink.centered{text-align:center}
.fm-page .sec-ink.centered p{margin-left:auto;margin-right:auto}
.fm-page .sec-ink.centered .btn-row{justify-content:center}
.fm-page .sec-ink.centered .quiet{margin:2rem auto 0;border-left:none;padding-left:0}

/* ---------- photo card ---------- */
.fm-page .photo-card{border:1px solid #E4E3DF;overflow:hidden;box-shadow:0 14px 34px rgba(35,31,32,.08)}
.fm-page .photo-card img{display:block;width:100%;height:auto}
.fm-page .signoff{
  margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid #E4E3DF;
  font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.2rem;
}
.fm-page .signoff span{
  display:block;font-family:'Archivo',system-ui,sans-serif;font-weight:700;font-size:.7rem;
  letter-spacing:.18em;text-transform:uppercase;color:#5E8A26;margin-top:.3rem;
}

/* ---------- narrow narrative ---------- */
.fm-page .narrow{max-width:44rem;margin:0 auto}
.fm-page .narrow h2{font-size:clamp(1.9rem,4vw,2.8rem);margin:1.2rem 0 1.4rem}

/* ---------- numbered steps ---------- */
.fm-page .steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2rem;counter-reset:fmstep}
.fm-page .step{background:#FFFFFF;border:1px solid #E4E3DF;padding:1.6rem 1.4rem;transition:border-color .25s ease,transform .25s ease}
.fm-page .step:hover{border-color:#88BD40;transform:translateY(-4px)}
.fm-page .step::before{
  counter-increment:fmstep;content:"0" counter(fmstep);
  font-family:'Archivo',system-ui,sans-serif;font-weight:900;font-size:2rem;line-height:1;
  color:#88BD40;display:block;margin-bottom:.9rem;
}
.fm-page .step h3{font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.1rem;margin-bottom:.5rem}
.fm-page .step p{font-size:.98rem;margin:0}

.fm-page :where(a,button):focus-visible{outline:3px solid #88BD40;outline-offset:2px}

@media(max-width:1024px){
  .fm-page .steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  .fm-page .two-col{grid-template-columns:1fr}
  .fm-page .card-grid{grid-template-columns:1fr}
  .fm-page .card-grid-2{grid-template-columns:1fr}
  .fm-page .steps{grid-template-columns:1fr}
}


/* ============================================================
   PART B — homepage only
   ============================================================ */

/* ---------- hero ---------- */
.fm-home .hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,4vw,3rem);align-items:center}
.fm-home .fm-hero h1{margin:1.2rem 0 1.4rem}
.fm-home .hero-anchor{
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:1.02rem;text-transform:lowercase;
  color:#5E8A26;margin:.2rem 0 1.4rem;
}
.fm-home .fm-bl{list-style:none;margin:0 0 .6rem}
.fm-home .fm-bl li{position:relative;padding-left:1.5rem;margin-bottom:.85rem;font-size:1.05rem}
.fm-home .fm-bl li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;background:#88BD40}
.fm-home .fm-bl strong{font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.95rem;text-transform:lowercase}
.fm-home .hero-meta{margin-top:1.2rem;font-size:.92rem;color:#7C7975;max-width:34rem;font-style:italic}
.fm-home .hero-visual{display:flex;flex-direction:column}
.fm-home .hero-devices{position:relative;display:flex;justify-content:center;align-items:center;width:100%}
.fm-home .hero-devices .laptop{width:120%;max-width:750px;position:relative;z-index:1}
.fm-home .hero-devices .phone{width:28%;max-width:170px;position:absolute;right:-2%;bottom:-4%;z-index:2}
.fm-home .hero-apps{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:34px}
.fm-home .hero-apps a{display:inline-block;line-height:0;transition:transform .18s ease,opacity .18s ease;text-decoration:none!important}
.fm-home .hero-apps a:hover{transform:translateY(-2px);opacity:.9}
.fm-home .hero-apps img{height:40px;width:auto;display:block}
.fm-home .hero-apps .badge-gp{height:59px;margin:-9.5px}

/* ---------- differentiator block ----------
   Two fixes in v1.1.0.

   1. SPACING. This is the only section that sits on the same white
      ground as the hero, with no warm band or border between them, so
      the two paddings were simply stacking: up to 5.5rem of hero
      bottom plus 6.5rem of section top, about 190px of nothing. Every
      other section is preceded by a colour change, which is why the
      problem only shows here. Collapsed to one breath below.

   2. ALIGNMENT. Left-aligned at 46rem inside an 1120px wrap left a
      dead column on the right. Centred now, matching the membership,
      founder and "a space for everyone" sections. The panel itself
      keeps left-aligned text — centred prose across three lines is
      hard to read, and the ragged left edge would fight the rest of
      the page. */
.fm-home .fm-hero + .sec{padding-top:clamp(1rem,2vw,1.75rem)}

.fm-home .differ-head{max-width:52rem;margin:0 auto;text-align:center}
.fm-home .differ-h{
  font-size:clamp(1.5rem,3.2vw,2.15rem);
  max-width:26ch;margin:1.1rem auto 1.6rem;
  text-wrap:balance;
}
.fm-home .differ{
  border:1px solid #E4E3DF;background:#F7F7F4;
  padding:clamp(1.5rem,3.5vw,2.25rem);
  max-width:44rem;margin:0 auto;text-align:left;
}
.fm-home .differ p{margin-bottom:1rem}
.fm-home .differ p:last-child{margin-bottom:0}
.fm-home .differ-link{margin-top:1.4rem;font-size:1rem;text-align:center}
.fm-home .differ-link a{color:#5E8A26;text-decoration:underline;text-underline-offset:.2em;font-weight:600}
.fm-home .differ-link a:hover{color:#231F20}

/* ---------- echo demo ---------- */
.fm-home .echo-card{border:1px solid #231F20;background:#FFFFFF;font-size:14px;overflow:hidden}
.fm-home .echo-hdr{background:#231F20;color:#fff;padding:14px 18px}
.fm-home .echo-hdr strong{display:block;font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.95rem;text-transform:lowercase;letter-spacing:.01em}
.fm-home .echo-hdr span{font-size:12px;opacity:.65}
.fm-home .echo-banner{padding:10px 14px;background:rgba(136,189,64,.10);border-bottom:1px solid #E4E3DF;font-size:12px;color:#7C7975;display:flex;align-items:flex-start;gap:8px}
.fm-home .echo-banner b{background:#88BD40;color:#231F20;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;font-family:'Archivo',system-ui,sans-serif}
.fm-home .echo-chat{padding:16px;display:flex;flex-direction:column;gap:12px;max-height:320px;overflow:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fm-home .echo-chat::-webkit-scrollbar{width:0;height:0}
.fm-home .echo-msg{max-width:88%}
.fm-home .echo-msg.usr{margin-left:auto}
.fm-home .echo-lbl{font-family:'Archivo',system-ui,sans-serif;font-weight:700;font-size:10px;color:#7C7975;margin-bottom:3px;text-transform:uppercase;letter-spacing:.14em}
.fm-home .echo-msg.usr .echo-lbl{text-align:right}
.fm-home .echo-bub{padding:10px 14px;line-height:1.5;font-size:13.5px}
.fm-home .echo-msg.bot .echo-bub{background:#F7F7F4;border:1px solid #E4E3DF;color:#231F20}
.fm-home .echo-msg.usr .echo-bub{background:#88BD40;color:#231F20}
.fm-home .echo-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #E4E3DF}
.fm-home .echo-input div:first-child{flex:1;padding:10px 14px;border:1px solid #E4E3DF;background:#FAFAF8;color:#7C7975;font-size:13px}
.fm-home .echo-input div:last-child{width:38px;height:38px;background:#231F20;display:grid;place-items:center;font-size:15px;color:#88BD40;flex-shrink:0}

/* ---------- cartography ---------- */
.fm-home .cartography-visual{border:1px solid #E4E3DF;overflow:hidden;background:#14100C;display:flex;align-items:stretch;box-shadow:0 14px 34px rgba(35,31,32,.10)}
.fm-home .cartography-visual svg{display:block;width:100%;height:auto}

/* ---------- bridges (fail-visible: resting state is JOINED) ---------- */
.fm-home .bridges-visual{
  border:1px solid #E4E3DF;background:#F7F7F4;padding:2.5rem 2rem;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:320px;text-align:center;position:relative;
}
.fm-home .bridges-squares{display:flex;align-items:center;margin-bottom:1.4rem;position:relative}
.fm-home .bridges-square{
  width:130px;height:130px;display:flex;align-items:center;
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.8rem;text-transform:lowercase;
  line-height:1.35;padding:12px;color:#231F20;
}
.fm-home .bridges-square.left{
  border:3px solid #88BD40;background:rgba(136,189,64,.10);
  justify-content:flex-start;text-align:left;margin-right:-26px;z-index:1;
}
.fm-home .bridges-square.right{
  border:3px solid #231F20;background:rgba(35,31,32,.04);
  justify-content:flex-end;text-align:right;margin-left:-26px;z-index:0;
}
.fm-home .bridges-overlap{
  position:absolute;left:50%;top:50%;
  width:28px;height:28px;background:#88BD40;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:#231F20;font-weight:800;z-index:2;
  opacity:1;transform:translate(-50%,-50%) scale(1);
}
.fm-page.fm-anim .bridges-square.left{transform:translateX(-18px);transition:transform 1s ease .25s}
.fm-page.fm-anim .bridges-square.right{transform:translateX(18px);transition:transform 1s ease .25s}
.fm-page.fm-anim .reveal.in .bridges-square.left,
.fm-page.fm-anim .reveal.in .bridges-square.right{transform:none}
.fm-page.fm-anim .bridges-overlap{
  opacity:0;transform:translate(-50%,-50%) scale(.4);
  transition:opacity .5s ease 1.15s,transform .5s ease 1.15s;
}
.fm-page.fm-anim .reveal.in .bridges-overlap{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media (prefers-reduced-motion:reduce){
  .fm-page.fm-anim .bridges-square.left,
  .fm-page.fm-anim .bridges-square.right{transform:none;transition:none}
  .fm-page.fm-anim .bridges-overlap{opacity:1;transform:translate(-50%,-50%) scale(1);transition:none}
}
.fm-home .bridges-label{font-size:.98rem;color:#7C7975;max-width:28ch;font-style:italic}

/* ---------- forum links ---------- */
.fm-home .txt-link{color:#5E8A26;text-decoration:none;border-bottom:2px solid #88BD40;font-weight:600}
.fm-home .txt-link:hover{color:#231F20;text-decoration:none}
.fm-home a.comm-pill{display:block;text-decoration:none!important;color:inherit}
.fm-home .forum-spaces{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.1rem}
.fm-home .forum-space{
  display:inline-flex;align-items:center;padding:6px 12px;border:1px solid #E4E3DF;background:#FFFFFF;
  font-family:'Archivo',system-ui,sans-serif;font-size:.68rem;font-weight:800;
  text-transform:lowercase;letter-spacing:.03em;color:#231F20;text-decoration:none!important;
  transition:border-color .2s ease,color .2s ease,transform .15s ease;
}
.fm-home .forum-space:hover{border-color:#88BD40;color:#5E8A26;transform:translateY(-2px)}
.fm-home a.everyone-room{text-decoration:none!important;transition:background .2s ease,transform .15s ease}
.fm-home a.everyone-room:hover{background:rgba(136,189,64,.14);transform:translateY(-2px)}

/* ---------- community ---------- */
.fm-home .comm-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3rem);align-items:start}
.fm-home .comm-pillars{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.6rem}
.fm-home .comm-pill{border:1px solid #E4E3DF;background:#FFFFFF;padding:1.2rem;transition:border-color .25s ease,transform .25s ease}
.fm-home .comm-pill:hover{border-color:#88BD40;transform:translateY(-3px)}
.fm-home .comm-pill h4{font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1rem;margin-bottom:.35rem}
.fm-home .comm-pill p{margin:0;color:#7C7975;font-size:.9rem;line-height:1.5}
.fm-home .comm-feed{display:flex;flex-direction:column;gap:12px}
.fm-home .comm-card{border:1px solid #E4E3DF;background:#FFFFFF}
.fm-home .comm-post{padding:16px}
.fm-home .comm-post-hdr{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fm-home .comm-avatar{width:32px;height:32px;display:grid;place-items:center;font-family:'Archivo',system-ui,sans-serif;font-size:13px;font-weight:800;color:#231F20;flex-shrink:0}
.fm-home .comm-avatar--a{background:#88BD40}
.fm-home .comm-avatar--j{background:#F5A623}
.fm-home .comm-avatar--t{background:#C9A857}
.fm-home .comm-post-meta .name{font-family:'Archivo',system-ui,sans-serif;font-size:12.5px;font-weight:700}
.fm-home .comm-post-meta .circle{font-size:11px;color:#7C7975}
.fm-home .comm-body{font-size:13.5px;color:#4b4644;line-height:1.55}
.fm-home .comm-reactions{display:flex;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #E4E3DF}
.fm-home .comm-reactions span{font-size:12px;color:#7C7975;display:flex;align-items:center;gap:4px}
.fm-home .comm-event{border:1px solid #E4E3DF;background:#FFFFFF;padding:14px 16px;display:flex;align-items:center;gap:14px;transition:border-color .25s ease,transform .25s ease}
.fm-home .comm-event:hover{border-color:#88BD40;transform:translateY(-3px)}
.fm-home .event-date{width:48px;height:52px;background:#88BD40;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}
.fm-home .event-date .ed-m{font-family:'Archivo',system-ui,sans-serif;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#231F20;opacity:.75}
.fm-home .event-date .ed-d{font-family:'Archivo',system-ui,sans-serif;font-size:20px;font-weight:900;color:#231F20;line-height:1}
.fm-home .event-info .ei-t{font-family:'Archivo',system-ui,sans-serif;font-size:13px;font-weight:700;margin-bottom:2px}
.fm-home .event-info .ei-m{font-size:11.5px;color:#7C7975}
.fm-home .comm-event--fun{border-color:rgba(245,166,35,.45)}
.fm-home .comm-event--fun .event-date{background:#F5A623}
.fm-home .live-dot{width:7px;height:7px;background:#88BD40;display:inline-block;margin-right:5px;animation:fm-pulse 2s ease-in-out infinite}
@keyframes fm-pulse{0%,100%{box-shadow:0 0 0 0 rgba(136,189,64,.45)}50%{box-shadow:0 0 0 5px rgba(136,189,64,0)}}
@media (prefers-reduced-motion:reduce){.fm-home .live-dot{animation:none}}
.fm-home .event-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-family:'Archivo',system-ui,sans-serif;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-left:6px}
.fm-home .event-badge--upcoming{background:rgba(136,189,64,.14);color:#5E8A26}
.fm-home .event-badge--fun{background:rgba(245,166,35,.14);color:#8B5E1A}

/* ---------- frames teaser ---------- */
.fm-home .frames-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.8rem,3vw,2.5rem);align-items:start;margin-top:1.4rem}
.fm-home .frames-intro{color:#4b4644;margin-bottom:1.4rem}
.fm-home .frame-teaser-list{list-style:none;margin:0 0 1.4rem;display:flex;flex-direction:column;gap:.7rem}
.fm-home .frame-teaser-list li{display:flex;align-items:center;gap:12px;font-size:1.02rem;font-weight:500}
.fm-home .frame-teaser-sq{width:11px;height:11px;flex-shrink:0}
.fm-home .frame-teaser-sq--ink{background:#231F20}
.fm-home .frame-teaser-sq--deep{background:#5E8A26}
.fm-home .frame-teaser-sq--green{background:#88BD40}
.fm-home .frame-teaser-sq--gold{background:#C9A857}
.fm-home .frame-teaser-sq--grey{background:#B8B5B1}
.fm-home .frame-teaser-list a{
  color:#231F20;text-decoration:none;border-bottom:1px solid #E4E3DF;
  transition:border-color .2s ease,color .2s ease;
}
.fm-home .frame-teaser-list a:hover{color:#5E8A26;border-color:#88BD40}
.fm-home .frame-teaser-more{color:#7C7975;font-style:italic}
.fm-home .frame-stages{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}
.fm-home .stage-card{border:1px solid #E4E3DF;background:#FFFFFF;padding:1.3rem 1.2rem;transition:border-color .25s ease,transform .25s ease}
.fm-home .stage-card:hover{border-color:#88BD40;transform:translateY(-3px)}
.fm-home .stage-num{font-family:'Archivo',system-ui,sans-serif;font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#5E8A26;display:block;margin-bottom:.45rem}
.fm-home .stage-card h4{font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.05rem;margin-bottom:.3rem}
.fm-home .stage-card p{margin:0;color:#7C7975;font-size:.9rem;line-height:1.5}
.fm-home .frames-cta{justify-content:center}
.fm-home .frame-sidecard{border:1px solid #E4E3DF;background:#FFFFFF;box-shadow:0 14px 34px rgba(35,31,32,.06);padding:1.6rem;position:sticky;top:90px}
.fm-home .frame-sidecard h3{font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.25rem;margin:.9rem 0 .6rem}
.fm-home .frame-sidecard p{color:#4b4644;font-size:.98rem;margin-bottom:1rem}
.fm-home .frame-sidecard .btn-row{margin-top:.6rem}
.fm-home .frame-mini{border:1px dashed #88BD40;background:rgba(136,189,64,.08);padding:.9rem 1rem;color:#4b4644;font-size:.92rem;line-height:1.55;margin-top:1rem}
.fm-home .frame-mini strong{color:#231F20}

/* ---------- who cards ---------- */
.fm-home .who-tag{font-family:'Archivo',system-ui,sans-serif;font-size:.62rem;color:#7C7975;text-transform:uppercase;letter-spacing:.14em;display:block;margin-bottom:.7rem}

/* ---------- everyone ---------- */
.fm-home .everyone-inner{max-width:680px;margin:0 auto;text-align:center}
.fm-home .everyone-inner h2{margin:1.2rem 0 1.4rem}
.fm-home .everyone-inner p{margin:0 0 .9rem;color:#4b4644}
.fm-home .everyone-line{width:48px;height:4px;background:#88BD40;margin:0 auto 1.2rem}
.fm-home .everyone-rooms{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:.4rem 0 1.2rem}
.fm-home .everyone-room{
  display:inline-flex;align-items:center;padding:8px 16px;border:2px solid #88BD40;background:#FFFFFF;
  color:#231F20;font-family:'Archivo',system-ui,sans-serif;font-size:.78rem;font-weight:800;text-transform:lowercase;
}
.fm-home .everyone-strong{color:#231F20!important;font-weight:600}

/* ---------- quotes ---------- */
.fm-home .q-card blockquote{margin:0 0 14px;font-size:1.02rem;line-height:1.65;font-style:italic;color:#231F20}
.fm-home .q-card cite{font-family:'Archivo',system-ui,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7C7975;font-style:normal}

/* ---------- pricing ---------- */
.fm-home .sec-head--center{text-align:center;max-width:100%}
.fm-home .sec-head--center p{margin:0 auto;max-width:46rem}
.fm-home .fm-pricing__wrap{max-width:1040px;margin:0 auto;background:#FFFFFF;border:1px solid #E4E3DF;padding:18px}
.fm-home .fm-pricing__header{margin-bottom:14px}
.fm-home .fm-pricing__header h3{font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.25rem;margin:0 0 4px}
.fm-home .fm-pricing__header p{margin:0;color:#7C7975;font-size:.95rem}
.fm-home .fm-pricing__rule{
  margin-top:.7rem!important;padding-top:.7rem;
  border-top:1px solid #E4E3DF;color:#4b4644!important;
}
.fm-home .fm-pricing__rule strong{
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;
  text-transform:lowercase;color:#231F20;
}
.fm-home .fm-pricing__tableWrap{overflow-x:auto;border:1px solid #E4E3DF}
.fm-home .fm-pricing__table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:720px}
.fm-home .fm-pricing__table thead th{background:#231F20;color:#fff;padding:14px 12px;text-align:left;font-weight:650}
.fm-home .fm-pricing__table thead th.plan{text-align:center;width:26%}
.fm-home .plan-name{display:block;font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.05rem}
.fm-home .plan-price{display:block;font-size:.85rem;opacity:.9;margin-top:2px}
.fm-home .plan-annual{display:block;font-size:.74rem;color:#88BD40;margin-top:3px;font-weight:500}
.fm-home .fm-pricing__table tbody th,.fm-home .fm-pricing__table tbody td{border-bottom:1px solid #E4E3DF;padding:12px;vertical-align:middle}
.fm-home .fm-pricing__table tbody th{text-align:left;font-weight:550;color:#231F20;width:48%}
.fm-home .fm-pricing__table tbody td{text-align:center;color:#7C7975}
.fm-home .fm-pricing__table tbody td:nth-child(3){background:rgba(136,189,64,.10)}
.fm-home .feature-note{display:block;margin-top:6px;font-size:.85rem;color:#7C7975}
.fm-home .check{font-size:1.1rem;font-weight:800;color:#5E8A26}
.fm-home .dash{font-size:1.1rem;color:#B8B5B1}
.fm-home .partial{font-family:'Archivo',system-ui,sans-serif;font-size:.78rem;font-weight:800;text-transform:lowercase;color:#5E8A26}
.fm-home .cta-row th,.fm-home .cta-row td{border-bottom:none;padding-top:16px}
.fm-home .fm-btn{
  display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:320px;
  padding:13px 16px;text-decoration:none!important;
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.82rem;letter-spacing:.04em;text-transform:lowercase;
  border:2px solid #231F20;background:#231F20;color:#fff!important;
  white-space:normal;text-align:center;line-height:1.25;min-height:48px;overflow-wrap:anywhere;
  transition:all .2s ease;
}
.fm-home .fm-btn:hover{background:#5E8A26;border-color:#5E8A26;color:#fff!important;transform:translateY(-2px)}
.fm-home .fm-annual-link{
  display:block;margin-top:8px;font-family:'Archivo',system-ui,sans-serif;font-size:.76rem;font-weight:800;
  color:#5E8A26;text-decoration:none;border-bottom:none;
}
.fm-home .fm-annual-link:hover{color:#231F20}
.fm-home .events-access-callout{margin-top:12px;border:1px dashed #88BD40;background:rgba(136,189,64,.08);padding:12px}
.fm-home .callout-text{margin:0;color:#4b4644;font-size:.95rem;line-height:1.55}

/* ---------- newsletter ---------- */
.fm-home .news-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,3rem);align-items:start;margin-top:.6rem}
.fm-home .news-signup{border:1px solid #E4E3DF;background:#FFFFFF;box-shadow:0 14px 34px rgba(35,31,32,.06);padding:1.6rem;position:sticky;top:90px}
.fm-home .news-signup h3{font-family:'Archivo',system-ui,sans-serif;font-weight:900;text-transform:lowercase;font-size:1.25rem;margin:.9rem 0 .6rem}
.fm-home .news-signup p{color:#4b4644;font-size:.98rem;margin-bottom:1.1rem}
.fm-home .news-signup-mini{border:1px dashed #88BD40;background:rgba(136,189,64,.08);padding:.9rem 1rem;margin-top:1.1rem;color:#4b4644;font-size:.88rem;line-height:1.5;text-align:center}
.fm-home .news-signup-mini a{color:#5E8A26;font-weight:700;text-decoration:none}
.fm-home .news-signup-mini a:hover{text-decoration:underline}

/* ---------- inline spacing helpers (replace former style attributes) ---------- */
.fm-home .mb-tight{margin-bottom:1.2rem}
.fm-home .mt-tight{margin-top:1.4rem}
.fm-home .btn-row--center{justify-content:center}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .fm-home .hero-grid,
  .fm-home .comm-grid,
  .fm-home .frames-grid,
  .fm-home .news-layout{grid-template-columns:1fr}
  .fm-home .hero-visual{margin-top:2rem}
  .fm-home .frame-sidecard,.fm-home .news-signup{position:relative;top:auto}
  .fm-home .comm-pillars{grid-template-columns:1fr}
  .fm-home .bridges-square{width:105px;height:105px;font-size:.72rem}
}
@media(max-width:760px){
  .fm-home .fm-pricing__table{min-width:0;width:100%}
  .fm-home .fm-pricing__table thead{display:none}
  .fm-home .fm-pricing__table,
  .fm-home .fm-pricing__table tbody,
  .fm-home .fm-pricing__table tr,
  .fm-home .fm-pricing__table th,
  .fm-home .fm-pricing__table td{display:block;width:100%}
  .fm-home .fm-pricing__table tr{border-bottom:1px solid #E4E3DF;padding:12px;background:#fff}
  .fm-home .fm-pricing__table tbody th{border:none;padding:6px 0 10px}
  .fm-home .fm-pricing__table tbody td{border:none;padding:6px 0;text-align:left}
  .fm-home .fm-pricing__table tbody td::before{content:attr(data-label) ": ";font-family:'Archivo',system-ui,sans-serif;font-weight:800;color:#231F20}
  .fm-home .fm-pricing__table tbody td:nth-child(3){background:transparent}
  .fm-home .fm-btn{max-width:none}
  .fm-home .btn-row{flex-direction:column;align-items:stretch}
  .fm-home .btn{text-align:center}
  .fm-home .frame-stages{grid-template-columns:1fr}
}
