/* ============================================================================
   standalone.css — shared stylesheet for the STANDALONE PAGE TYPE (Phase C, ~150 pages).
   ONE cached stylesheet for the whole class — NOT per-page inline. This is the
   tokens + components layer the recode has been waiting for. Visual language is
   a sibling of the coded homepage + the Dana consultant template (same palette,
   type scale, button/card/section vocabulary).
   Load order rule: base tokens first, components next, @media LAST.
   ========================================================================== */

/* ---- tokens (shared with homepage/consultant) --------------------------- */
:root{
  --ink:#242424; --navy:#0e2340; --blue:#1a4fa3; --royal:#0033a0; --red:#d21f27; --red-dark:#b91b22;
  --util:#c2410c; --line:#e7e7e7; --muted:#5b6472; --bg-soft:#f6f7f9; --bg-navy:#0b1c3e;
  --max:1400px; --prose:820px;
  --font:'Poppins',Helvetica,Arial,sans-serif;
  --r:14px; --r-sm:8px;
  --shadow:0 26px 60px rgba(10,42,10,.08);
  --step:clamp(1rem,.9rem + .5vw,1.125rem);
}
.sa *{box-sizing:border-box}
.sa{font-family:var(--font);color:var(--ink);line-height:1.6}
.sa img{max-width:100%;height:auto}
.sa a{color:var(--royal)}
.sa .wrap{max-width:var(--max);margin:0 auto;padding:0 26px}
.sa .narrow{max-width:var(--prose);margin:0 auto;padding:0 26px}

/* ---- type scale --------------------------------------------------------- */
.sa h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.25rem);line-height:1.08;font-weight:700;color:var(--navy);letter-spacing:-.02em;margin:0 0 .5em}
.sa h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);line-height:1.2;font-weight:600;color:var(--navy);margin:0 0 .4em}
.sa h3{font-size:1.25rem;font-weight:600;color:var(--navy);margin:0 0 .3em}
.sa p{font-size:var(--step);margin:0 0 1em}
.sa .eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--royal);margin:0 0 .8em}

/* ---- buttons (Dana vocabulary) ------------------------------------------ */
.sa .btn{display:inline-flex;align-items:center;gap:.5em;background:var(--red);color:#fff;font-weight:600;font-size:1rem;padding:14px 26px;border-radius:var(--r-sm);line-height:1.2;text-decoration:none;border:1px solid var(--red);cursor:pointer;transition:filter .15s ease,transform .15s ease}
.sa .btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.sa .btn--navy{background:var(--royal);border-color:var(--royal)}
.sa .btn--ghost{background:transparent;color:var(--royal);border-color:var(--royal)}

/* ---- hero --------------------------------------------------------------- */
.sa-hero{background:linear-gradient(180deg,var(--bg-soft),#fff);padding:clamp(48px,6vw,88px) 0 clamp(36px,4vw,64px)}
.sa-hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.sa-hero__lead{font-size:clamp(1.05rem,1rem + .4vw,1.25rem);color:var(--muted)}
.sa-hero__art{aspect-ratio:4/3;border-radius:var(--r);background:
  radial-gradient(120% 120% at 100% 0,rgba(0,51,160,.14),transparent 60%),
  linear-gradient(150deg,var(--navy),var(--royal));position:relative;overflow:hidden;box-shadow:var(--shadow)}
.sa-hero__art b{position:absolute;left:8%;bottom:10%;color:#fff;font-size:clamp(2.4rem,6vw,4rem);font-weight:800;line-height:.95;letter-spacing:-.03em;opacity:.96}
.sa-hero__art span{position:absolute;right:-6%;top:-6%;width:52%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.08)}

/* ---- step journey: numbered nodes on a timeline rail, 2-col content ------ */
.sa-steps{padding:clamp(44px,5vw,76px) 0}
.sa-steps__intro{max-width:640px;margin:0 0 clamp(24px,3vw,44px)}
.sa-step{position:relative;display:grid;grid-template-columns:64px 1fr;gap:clamp(22px,3vw,44px);padding:0 0 clamp(30px,3.5vw,52px)}
/* the rail: a line down the badge column linking each node to the next */
.sa-step:not(:last-child)::before{content:"";position:absolute;left:31px;top:64px;bottom:-8px;width:2px;background:linear-gradient(180deg,var(--royal) 0,var(--line) 88%);opacity:.5}
.sa-step__num{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.6rem;color:#fff;background:linear-gradient(150deg,var(--navy),var(--royal));box-shadow:0 10px 26px rgba(0,51,160,.24);outline:6px solid #fff}
.sa-step__content{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(22px,3vw,44px);align-items:start}
.sa-step__main{padding-top:6px}
.sa-step__main h2{margin:0 0 .35em}
.sa-step__main p{max-width:58ch;margin:0;color:#3b4657}
/* resources card fills the former empty right column — a "further reading" panel */
.sa-step__res{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:20px 24px}
.sa-step__res-h{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--royal);margin:0 0 8px}
.sa-chips{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.sa-chips a{display:flex;align-items:center;justify-content:space-between;gap:.75em;padding:12px 0;font-size:.95rem;font-weight:500;line-height:1.35;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line);transition:color .15s ease,padding-left .15s ease}
.sa-chips li:last-child a{border-bottom:0;padding-bottom:0}
.sa-chips a:hover{color:var(--royal);padding-left:5px}
.sa-chips a::after{content:"→";color:var(--royal);font-weight:700;flex:none;transition:transform .15s ease}
.sa-chips a:hover::after{transform:translateX(3px)}
.sa-step{scroll-margin-top:90px}
.sa-anchor{position:absolute;top:-90px;width:0;height:0}   /* out of grid flow; offsets for the sticky header */
.sa-step__main:only-child{grid-column:1/-1}   /* no resources → prose spans full width */

/* ---- prose band --------------------------------------------------------- */
.sa-prose{background:var(--bg-soft);padding:clamp(40px,5vw,72px) 0}

/* ---- FAQ accordion (native <details>, no JS, CLS-safe) ------------------ */
.sa-faq{padding:clamp(40px,5vw,72px) 0}
.sa-faq__list{max-width:900px;margin:0 auto;display:grid;gap:12px}
.sa-faq details{background:#fafbfc;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.sa-faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;align-items:center;gap:16px}
.sa-faq summary::-webkit-details-marker{display:none}
.sa-faq summary::after{content:"+";color:var(--royal);font-size:1.5rem;font-weight:400;line-height:1}
.sa-faq details[open] summary::after{content:"–"}
.sa-faq__a{padding:0 22px 20px;color:var(--muted)}

/* ---- CTA band ----------------------------------------------------------- */
.sa-cta{background:linear-gradient(150deg,var(--navy),var(--royal));color:#fff;padding:clamp(44px,5vw,72px) 0}
.sa-cta h2{color:#fff}
.sa-cta p{color:rgba(255,255,255,.85)}
.sa-cta__row{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.sa-cta .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6)}

/* ---- sticky CTA bar: hidden until the hero scrolls out (Dana behaviour) -- */
.sa-sticky{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;padding:0 16px 16px;pointer-events:none;transform:translateY(140%);transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.sa-sticky[data-show="1"]{transform:translateY(0)}
.sa-sticky a{pointer-events:auto;box-shadow:0 14px 34px rgba(0,51,160,.34)}

/* ---- responsive — MUST stay at end (equal-specificity source order) ----- */
@media(max-width:900px){
  .sa-hero__grid{grid-template-columns:1fr;gap:28px}
  .sa-hero__art{display:none}         /* brand art is decorative; drop on mobile, no CLS */
  .sa-step{grid-template-columns:44px 1fr;gap:16px}
  .sa-step:not(:last-child)::before{left:21px;top:44px}
  .sa-step__num{width:44px;height:44px;font-size:1.2rem;outline-width:4px}
  .sa-step__content{grid-template-columns:1fr;gap:18px}
  .sa-step__main{padding-top:2px}
}

/* ---- Step 3: numbered tenets list (client-bill-of-rights) --------------- */
.sa-tenets{list-style:none;counter-reset:tenet;margin:26px 0 30px;padding:0;display:grid;gap:14px}
.sa-tenets li{counter-increment:tenet;position:relative;padding:16px 18px 16px 62px;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--step);line-height:1.55}
.sa-tenets li::before{content:counter(tenet);position:absolute;left:16px;top:14px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--royal);color:#fff;font-weight:700;border-radius:50%;font-size:.95rem}

/* ---- Step 3: form section (HubSpot embed pages) ------------------------- */
.sa-form{padding:8px 0 64px}
.sa-form .hsform{max-width:var(--prose);margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,4vw,36px);box-shadow:var(--shadow)}

/* ---- Step 3: FORM-PAGE hero pattern — the form owns the right column, above the fold.
   Applied via `.sa-hero--form` on conversion/form pages so all ~7 inherit it. The form
   card stays visible on mobile (it's the point of the page), unlike the decorative art. --- */
.sa-hero--form .sa-hero__grid{grid-template-columns:1fr 1.05fr;gap:clamp(28px,4vw,56px);align-items:start}
.sa-hero__form{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:clamp(20px,3vw,34px)}
.sa-hero__form .hsform{max-width:none;margin:0;background:none;border:0;box-shadow:none;padding:0}
@media(max-width:820px){ .sa-hero--form .sa-hero__grid{grid-template-columns:1fr} }

/* ---- Step 3: CONTENT-PAGE hero pattern ---------------------------------------
   DEFAULT = text-only. Add `.sa-hero--plain` on content pages with no genuine visual:
   eyebrow + H1 + intro run full-width (readable measure) and flow into the content —
   no placeholder card. OPT-IN aside only when a page has a real visual or stat:
   add `.sa-hero__aside` + a variant in the hero's right column (keeps the 2-col grid). */
.sa-hero--plain .sa-hero__grid{grid-template-columns:1fr}
.sa-hero--plain .sa-hero__grid > :first-child{max-width:var(--prose)}
.sa-hero__aside{aspect-ratio:4/3;border-radius:var(--r);display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,3.5vw,40px)}
.sa-hero__aside--stat{background:linear-gradient(160deg,var(--navy),#14346b);color:#fff}
.sa-hero__aside--stat .ic{width:52px;height:52px;margin:0 0 16px;opacity:.96}
.sa-hero__aside--stat h2{font-size:1.5rem;font-weight:700;line-height:1.2;color:#fff;margin:0}
.sa-hero__aside--stat p{font-size:1rem;line-height:1.5;color:#fff;opacity:.85;margin:12px 0 0}
@media(max-width:820px){ .sa-hero__aside{aspect-ratio:auto} }   /* meaningful stat: stacks (not hidden like decorative art) */

/* ---- Step 3: HubSpot form CONTROLS — ported VERBATIM from child theme style.css
   (.hsform .hs-form block, style.css:2901-2989 + 4762-4768). ROOT CAUSE: the standalone
   framework dequeues style.css, so these hand-authored control styles (navy-bold labels,
   bordered Poppins inputs, red submit) vanished on the coded form pages — the HubSpot embed
   injects only its OWN inline layout CSS (fieldset/column widths, intl-phone), never these
   visuals. Selectors kept UNPREFIXED to preserve the exact specificity the form was authored
   against; standalone.css loads ONLY on standalone pages, so `.hsform` matches the embed and
   nothing else. Values + !important flags reused as-is so the form looks exactly as it always
   has. (The `.single-franchise_directory` grey variant + `.page-id-*` overrides are page-type
   specific and intentionally NOT ported.) */
.hsform .hs-form label{
  display:inline-block;font-size:16px;font-weight:700 !important;margin-bottom:8px;padding:0;
  color:#001F63;font-style:normal;line-height:22px;
}
.hsform .hs-form label span{font-weight:600 !important;}
.hsform .hs-form input[type="text"],
.hsform .hs-form input[type="email"],
.hsform .hs-form input[type="number"],
.hsform .hs-form input[type="tel"],
.hsform .hs-form select,
.hsform .hs-form textarea{
  font-size:15px;margin-bottom:15px;margin-top:0;
  background:#FFFFFF !important;border:1px solid #E6E6E6 !important;box-sizing:border-box;
  padding:15px 0px 15px 15px !important;font-style:normal;font-weight:400;line-height:22px;
  color:#444444 !important;font-family:'Poppins',Helvetica,Arial,Lucida,sans-serif;
  width:100%;max-width:100%;
}
.hsform .hs-form textarea{height:96px;}
.hsform .hs-form select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;
  background-image:url(/wp-content/uploads/2022/04/sellectarrow.png);background-repeat:no-repeat;
  background-position-x:96%;background-position-y:24px;border:1px solid #dfdfdf;border-radius:2px;
  margin-right:2rem;padding:1rem !important;padding-right:2rem !important;
}
.hsform .hs-form input[type="submit"]{
  background:#FC2E37;border-radius:5px;padding:20px 35px;font-weight:600;font-size:18px;
  line-height:22px;color:#fff;text-align:center;letter-spacing:.5px;border:0;cursor:pointer;
  width:230px;display:block;margin:15px auto 8px;
}
.hsform .hs-form input.hs-button.primary.large{border-radius:3px !important;padding:20px 50px !important;}
.hsform .hs-form fieldset{width:100%;max-width:100%;}
.hsform .hs-form .hs-richtext{padding-top:5px;padding-bottom:5px;}
.hsform .hs-form .hs-richtext a{font-weight:600;color:#0033A0;}
.hsform .hs-form .hs-error-msg{color:red !important;font-size:12px !important;}
.hsform .hs-form .hs-error-msgs{padding-left:2px !important;}
.hsform .hs-form .hs-error-msgs li{list-style:none !important;}

/* ============================================================================
   Batch 1 (static-info recodes: faq/partnerships/veterans/about-us) — reusable
   component vocabulary the Divi pages built inline (no source CSS to port; values
   matched to the Divi look per the per-page audits). Will also serve later batches.
   ============================================================================ */

/* ---- media hero: a REAL photo or video facade in the hero's right column
   (partnerships photo, about-us video). Uses the base 2-col .sa-hero__grid, which
   already stacks at 900px — unlike .sa-hero__art this is content, so it stays. --- */
.sa-hero__media{align-self:center;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.sa-hero__media img{display:block;width:100%;height:auto}
.sa-hero__media .yt-facade{border-radius:var(--r)}

/* ---- prose lists (FRAMEWORK GAP: .sa had no ul/ol; Divi supplied disc/decimal).
   Matched to the Divi body list — disc/decimal, body type, comfortable leading. --- */
.sa-prose ul,.sa-prose ol{margin:0 0 1.1em;padding-left:1.4em}
.sa-prose ul{list-style:disc}
.sa-prose ol{list-style:decimal}
.sa-prose li{font-size:var(--step);line-height:1.6;margin:0 0 .5em}
.sa-prose li::marker{color:var(--royal)}
.sa-prose h2{margin-top:0}
.sa-prose > .narrow > :last-child{margin-bottom:0}

/* ---- card grid: partner logos (partnerships) + icon/step cards (about-us).
   One grid; three card flavors. 3-up desktop → 2-up tablet → 1-up mobile; the last
   partial row left-aligns naturally (matches Divi's make_equal auto-flow). ---------- */
.sa-cards{padding:clamp(40px,5vw,72px) 0}
.sa-cards__intro{max-width:var(--prose);margin:0 auto clamp(22px,3vw,38px);padding:0 26px;text-align:center}
.sa-cards__intro > :last-child{margin-bottom:0}
.sa-cards__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,28px);max-width:var(--max);margin:0 auto;padding:0 26px}
.sa-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,2.6vw,34px);box-shadow:var(--shadow)}
.sa-card h3{margin:0 0 10px}
.sa-card p{font-size:.95rem;line-height:1.6;color:var(--muted);margin:0}
.sa-card__ic{width:56px;height:56px;margin:0 0 16px;object-fit:contain}
.sa-card__rule{width:46px;height:3px;border:0;background:var(--red);border-radius:2px;margin:0 0 14px}
/* centered icon/step card (about-us core values + verified-brand steps) */
.sa-card--center{text-align:center;align-items:center}
/* partner-logo card (partnerships): periwinkle border, centered logo, bottom-pinned arrow */
.sa-card--logo{border-color:#d9e0f1}
.sa-card__logo{display:flex;align-items:center;justify-content:center;min-height:86px;margin:0 0 20px}
.sa-card__logo img{max-width:100%;max-height:72px;width:auto}
.sa-card__more{margin-top:auto;padding-top:16px;color:var(--red);font-weight:700;font-size:14px;text-decoration:none;display:inline-flex;align-items:center;gap:.4em;align-self:flex-start}
.sa-card__more::after{content:"→";transition:transform .15s ease}
.sa-card__more:hover::after{transform:translateX(3px)}
@media(min-width:601px) and (max-width:900px){.sa-cards__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sa-cards__grid{grid-template-columns:1fr}}

/* ---- media + text 2-col content band (about-us how-it-works / CTA image) ---------- */
.sa-media{padding:clamp(36px,4vw,64px) 0}
.sa-media__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(28px,4vw,56px);align-items:center;max-width:var(--max);margin:0 auto;padding:0 26px}
.sa-media__grid > div > :last-child{margin-bottom:0}
.sa-media__grid img{border-radius:var(--r);width:100%;height:auto;box-shadow:var(--shadow)}
@media(max-width:820px){.sa-media__grid{grid-template-columns:1fr;gap:24px}}

/* ---- emphatic callout + impact stats (about-us "BOTTOM LINE") -------------------- */
.sa-bottomline{font-size:clamp(2.2rem,1.4rem + 3vw,4rem);font-weight:800;letter-spacing:-.02em;color:var(--navy);text-align:center;line-height:1.02;margin:.5em 0 .3em}
.sa-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;margin:28px 0 6px;padding:0;text-align:center}
.sa-stat{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:22px 18px}
.sa-stat b{display:block;font-size:1.5rem;font-weight:800;color:var(--royal);line-height:1.1;margin:0 0 6px}
.sa-stat span{font-size:.9rem;color:var(--muted);line-height:1.4}
@media(max-width:700px){.sa-stats{grid-template-columns:1fr}}

/* ---- Batch 3: dynamic feed grid — Divi builder-module feeds (difl_postgrid / et_pb_blog)
   reproduced as coded WP_Query loops (success-stories, partner-events, franchise-opportunities).
   Divi *builder* modules don't render reliably via bare do_shortcode outside the builder, so
   the feed is queried in PHP and rendered with this card grid, matched to the Divi Blog look. -- */
.sa-feed{padding:clamp(36px,4vw,64px) 0}
.sa-feed__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,30px);max-width:var(--max);margin:0 auto;padding:0 26px}
.sa-feed__card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.sa-feed__thumb{aspect-ratio:16/10;object-fit:cover;width:100%;display:block;background:var(--bg-soft)}
.sa-feed__body{display:flex;flex-direction:column;flex:1;padding:22px 24px 24px}
.sa-feed__card h3{font-size:1.15rem;margin:0 0 10px;line-height:1.3}
.sa-feed__card h3 a{color:var(--navy)}
.sa-feed__card p{font-size:.93rem;line-height:1.6;color:var(--muted);margin:0 0 16px}
.sa-feed__more{margin-top:auto;color:var(--red);font-weight:700;font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4em}
.sa-feed__more::after{content:"\2192";transition:transform .15s ease}
.sa-feed__more:hover::after{transform:translateX(3px)}
.sa-feed__empty{text-align:center;color:var(--muted);padding:24px;max-width:var(--max);margin:0 auto}
@media(min-width:601px) and (max-width:900px){.sa-feed__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sa-feed__grid{grid-template-columns:1fr}}
/* tile variant — title-only feeds (franchise types directory) */
.sa-feed__grid--tiles{grid-template-columns:repeat(4,1fr)}
.sa-feed__tile{display:flex;align-items:center;justify-content:center;text-align:center;min-height:96px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);font-weight:600;color:var(--navy);text-decoration:none;transition:border-color .15s ease,transform .15s ease}
.sa-feed__tile:hover{border-color:var(--royal);transform:translateY(-2px);color:var(--royal)}
@media(min-width:601px) and (max-width:900px){.sa-feed__grid--tiles{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.sa-feed__grid--tiles{grid-template-columns:repeat(2,1fr)}}

/* ---- TOOLS: funding-options calculator (16304) — Gravity-Forms form styling, the focalc
   layout, and the fs / cblue / bold / mar-top utility classes the result blocks use. All of
   this lived in the dequeued child style.css (ported verbatim: style.css 1114-1160, 1197-1210,
   2668-2690, 2693-2700) so the hand-pasted form + results render exactly as they always have. -- */
.sa-calc{padding:clamp(32px,4vw,60px) 0}
.gform_body label.gfield_label{color:#001F63;font-style:normal;font-weight:600;line-height:22px}
.gform_body input::placeholder,.gform_body select::placeholder{font-style:normal;font-weight:400;font-size:18px;line-height:22px;color:#444}
.gform_body input[type="text"],.gform_body input[type="email"],.gform_body input[type="number"],.gform_body select{background:#FFFFFF;border:1px solid #E6E6E6;box-sizing:border-box;padding:15px 0 15px 15px!important;font-style:normal;font-weight:400;font-size:18px;line-height:22px;color:#444444;width:100%}
.gform_footer.top_label{display:flex;justify-content:center;align-items:center}
.gform_footer.top_label input[type="submit"]{background:#FC2E37;border-radius:5px;padding:20px 35px;font-weight:600;font-size:18px;line-height:22px;color:#fff;text-align:center;letter-spacing:.5px;border:0;cursor:pointer;width:230px}
.gform_body.fownquiz #field_4_5{display:flex;flex-wrap:wrap}
.gform_body.fownquiz #field_4_5 label.gfield_label{flex:.25}
.gform_body.fownquiz #field_4_5 .gfield_description{flex:1}
.gform_body.fownquiz #field_4_5 .ginput_container.ginput_container_text{width:100%}
.focalc-form .gform_fields{display:grid;grid-column-gap:4%;grid-row-gap:16px;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(auto-fill,auto);width:100%;list-style:none;margin:0;padding:0}
.focalc-form .gfield--width-half{grid-column:span 6}
.focalc-form .gfield_description{font-size:14px !important;padding-top:5px;line-height:24px}
.focalc-form .gform_footer{margin-top:40px}
.focalc-result{margin-top:8px}
@media(max-width:980px){
  .focalc-form .gform_body label.gfield_label{display:block}
  .focalc-form .gform_fields{grid-template-columns:1fr}
  .focalc-form .gfield--width-half{grid-column:span 1}
}
/* utility classes the calculator's result blocks rely on */
.mar-top-10{margin-top:10px !important}
.mar-top-20{margin-top:20px !important}
.bold{font-weight:bold}
.cgray{color:#666 !important}
.cblue{color:#0033a0 !important}
.cred{color:red !important}
.fs12,a.fs12{font-size:12px !important;line-height:20px}
.fs16,a.fs16{font-size:16px !important;line-height:28px}
.fs20,a.fs20{font-size:20px !important;line-height:30px}
.fs22,a.fs22{font-size:22px !important;line-height:32px}
.fs26,a.fs26{font-size:26px !important;line-height:36px}

/* ---- Batch 4: team bio (executive bios under our-team) — photo + name/role/bio ---- */
.sa-bio{padding:clamp(40px,5vw,72px) 0}
.sa-bio__grid{display:grid;grid-template-columns:300px 1fr;gap:clamp(28px,4vw,56px);align-items:start;max-width:var(--max);margin:0 auto;padding:0 26px}
.sa-bio__photo{width:100%;border-radius:var(--r);aspect-ratio:1;object-fit:cover;background:var(--bg-soft);box-shadow:var(--shadow)}
.sa-bio__photo--ph{aspect-ratio:1;border-radius:var(--r);background:linear-gradient(150deg,var(--navy),var(--royal))}
.sa-bio__role{color:var(--royal);font-weight:600;font-size:1.05rem;margin:0 0 1.2em}
.sa-bio__body p{margin:0 0 1em}
@media(max-width:820px){.sa-bio__grid{grid-template-columns:1fr}.sa-bio__photo,.sa-bio__photo--ph{max-width:260px}}

/* ---- Batch 4: dark photo hero (franfit — SBDC-advisor landing) — logo + white text on a
   navy photo background, unlike the light .sa-hero. Stacks on mobile. ---- */
.sa-hero--dark{background:linear-gradient(150deg,rgba(14,35,64,.92),rgba(0,51,160,.82)),#0e2340 center/cover no-repeat}
.sa-hero--dark .eyebrow{color:#9fc0ff}
.sa-hero--dark h1,.sa-hero--dark p{color:#fff}
.sa-hero--dark .sa-hero__lead{color:rgba(255,255,255,.9)}
.sa-hero--dark .sa-hero__logo img{max-width:280px;height:auto;margin-bottom:20px}
/* jump-nav button stack (franfit intro) */
.sa-jumpnav{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.sa-jumpnav .btn{width:100%;justify-content:center}
/* doc-link chips (franfit B.E.S.T. resources) */
.sa-doclinks{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.sa-doclinks a{display:inline-flex;align-items:center;gap:.5em;color:var(--royal);font-weight:600;text-decoration:none}
.sa-doclinks a::before{content:"\1F4C4";font-size:1.1em}

/* ---- Batch 4: tinted form band (franchise-consultants "Match with a Consultant") — the
   HubSpot v3 embed sets its own #edeff6 FormWrapper bg; the section matches for cohesion. ---- */
.sa-formband{background:#edeff6;padding:clamp(40px,5vw,72px) 0}
.sa-formband .narrow{max-width:var(--prose);margin:0 auto;padding:0 26px}
.sa-formband h2{text-align:center}

/* ---- Batch 3: podcast embed grid (Spotify iframes) ---- */
.sa-embeds{padding:clamp(36px,4vw,64px) 0}
.sa-embeds__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2vw,26px);max-width:var(--max);margin:0 auto;padding:0 26px}
.sa-embeds__grid iframe{width:100%;border:0;border-radius:12px}
@media(max-width:820px){.sa-embeds__grid{grid-template-columns:1fr}}

/* ---- Batch 3: shortcode-feed wrapper (theme/plugin shortcodes: supplier_grid, consultant_blog,
   frmo_webinars_list). Provides consistent section padding + a centered container for the
   plugin's own grid output; verify each renders styled post-dequeue (port CSS if it lived in
   the dequeued style.css). ---- */
.sa-shortcode{padding:clamp(36px,4vw,64px) 0}
.sa-shortcode > .wrap > * , .sa-shortcode__inner{max-width:var(--max);margin:0 auto}

/* feed card media wrapper + branded placeholder for posts with no featured image
   (keeps card structure + heights uniform instead of an empty gray box) */
.sa-feed__media{display:block;line-height:0}
.sa-feed__media--ph{aspect-ratio:16/10;background:linear-gradient(150deg,var(--navy),var(--royal));position:relative}
.sa-feed__media--ph::after{content:"FranNet";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-weight:800;letter-spacing:.05em;font-size:1.05rem}

/* suppliers: [supplier_grid] emits stacked .df_ab_blurb_* blocks (inline width:95%) whose grid
   CSS lived in the dequeued style.css. Re-grid them (3-up desktop) + neutralize the inline width,
   matched to the live Divi look (white card, #d9e0f1 border, centered logo, red "Read More"). */
.sa-shortcode--suppliers > .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,28px);align-items:stretch}
.sa-shortcode--suppliers .et_pb_module_inner,.sa-shortcode--suppliers .df_ab_blurb_container{height:100%}
.sa-shortcode--suppliers .df_ab_blurb_content_container{width:auto !important;margin:0 !important;height:100%;padding:clamp(22px,2.5vw,30px) !important;border:1px solid #d9e0f1;border-radius:var(--r);background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;text-align:center}
.sa-shortcode--suppliers .df_ab_blurb_image{display:flex;align-items:center;justify-content:center;min-height:80px;margin-bottom:16px}
.sa-shortcode--suppliers .df_ab_blurb_image_img{max-width:100%;max-height:72px;width:auto}
.sa-shortcode--suppliers .df_ab_blurb_description p{font-size:.95rem;color:var(--muted);line-height:1.6}
.sa-shortcode--suppliers .postlinksarrow{margin-top:auto;color:var(--red);font-weight:700;font-size:14px;text-decoration:none;display:inline-flex;align-items:center;gap:.4em}
.sa-shortcode--suppliers .postlinksarrow::after{content:"\2192"}
@media(min-width:601px) and (max-width:900px){.sa-shortcode--suppliers > .wrap{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sa-shortcode--suppliers > .wrap{grid-template-columns:1fr}}

/* ---- TOOLS: consultant FINDER (16334). fc_grid emits Divi blurb markup and the authored
   finder rules live in the dequeued child style.css, so both are ported here: the ID-scoped
   theme rules verbatim (style.css 2138, 2187-2350, 3342-3350, 3745-3748) plus the handful of
   Divi base rules the cards need. Watermark URLs are re-pointed from the style.css location
   to this file's location. Keep the selectors as-is: the finder JS and these rules both
   depend on the .et_pb_code_inner / .et_pb_column wrappers reproduced in page-16334.php. -- */
.sa-finder{padding:clamp(24px,3vw,44px) 0;position:relative}
.sa-finder__title{margin:0 0 18px}
#teamlists1,#teamlists2{position:relative}
#teamlists1::before{content:'';width:55%;height:100%;background-image:url(../../img/watermark1.png);background-repeat:no-repeat;background-position:left bottom;background-size:auto;position:absolute;left:0;bottom:0;z-index:0;pointer-events:none}
#filtersearch{position:relative;z-index:1}
#filtersearch #Filters{display:flex}
#filtersearch #Filters select,#filtersearch #Filters input{height:52px;background:#FFFFFF;border:1px solid #E6E6E6;font-style:normal;font-weight:400;font-size:18px;line-height:22px;color:#444444;width:100%;padding-left:15px}
#filtersearch #Filters fieldset{margin-right:20px;line-height:25px;margin-bottom:5px;border:0;padding:0;min-width:0}
#filtersearch #Filters fieldset:nth-child(1){width:30%}
#filtersearch #Filters fieldset:nth-child(2){width:40%}
#filtersearch #Filters fieldset:nth-child(3){width:30%}
#filtersearch #Filters label.bold{display:block;font-weight:700;color:#001F63;margin-bottom:6px}
#noItemsFoundMessage{width:100%;position:relative;clear:both;display:none}
#teamlistsrow{display:flex;position:relative;z-index:1}
#teamlistsrow .et_pb_column{width:100%}
#teamlistsrow .et_pb_column .et_pb_code_inner{display:flex;flex-wrap:wrap}
#teamlistsrow #teamlistblurb{margin:0 10px 30px !important;background:#FAFBFC;border:1px solid rgba(0,0,0,.05);box-sizing:border-box;box-shadow:-32px 191px 78px rgba(0,0,0,.01),-18px 108px 65px rgba(0,0,0,.02),-8px 48px 48px rgba(0,0,0,.03),-2px 12px 27px rgba(0,0,0,.04);border-radius:10px;padding:35px;width:31%;float:none}
#teamlistsrow #teamlistblurb .et_pb_main_blurb_image{text-align:center;margin-left:auto;margin-right:auto;width:230px;display:block}
#teamlistblurb .et_pb_main_blurb_image img{border-radius:100%;height:230px;object-fit:cover;object-position:top}
#teamlistblurb .et_pb_image_wrap{width:auto !important}
#teamlistblurb h4.et_pb_module_header{font-weight:600;color:#000;font-size:18px;line-height:22px;margin-top:20px}
#teamlistblurb .et_pb_blurb_container{text-align:center}
#teamlistblurb .et_pb_blurb_container p{font-weight:500 !important}
#teamlistblurb .et_pb_blurb_description{font-size:18px !important;line-height:30px !important}
#teamlistblurb .btnflexstyle{display:flex;justify-content:center;margin-top:30px}
#teamlistblurb .btnflexstyle a{display:block;border-radius:5px;padding:15px 26px;font-style:normal;font-weight:500;font-size:12px;line-height:22px;letter-spacing:.5px;text-transform:initial !important}
#teamlistblurb .btnflexstyle a:first-child{background:#F6602D;border:1px solid #F6602D;color:#fff;margin-right:20px}
#teamlistblurb .btnflexstyle a:last-child{background:#fff;border:1px solid #001F63;color:#0033A0}
.mix .et_pb_main_blurb_image img{opacity:1 !important}
.sa .et_pb_blurb_content{max-width:550px;margin:0 auto;position:relative}
.sa .et_pb_image_wrap{display:inline-block;position:relative;max-width:100%}
.sa .et_pb_main_blurb_image img{display:block;max-width:100%;height:auto}
.sa .load-more{display:block;margin:10px auto 0;background:#FC2E37;border:0;border-radius:5px;color:#fff;font-weight:600;font-size:16px;padding:16px 34px;cursor:pointer}
.sa-stories{padding:clamp(32px,4vw,60px) 0}
.sa-stories h2{margin:0 0 24px}
@media(max-width:1050px){#teamlistsrow{flex-wrap:wrap}#teamlistsrow #teamlistblurb{width:47%}}
@media(max-width:767px){#teamlistsrow{flex-direction:column;flex-wrap:nowrap}#teamlistsrow #teamlistblurb{width:auto}#filtersearch #Filters{flex-wrap:wrap}#filtersearch #Filters fieldset,#filtersearch #Filters fieldset:nth-child(1),#filtersearch #Filters fieldset:nth-child(2),#filtersearch #Filters fieldset:nth-child(3){width:100%;margin-right:0;margin-bottom:14px}#teamlists1::before{display:none}}

/* ---- BLOG (main `post` type): single.php / archive.php / search.php. Off-Divi coded templates
   gated by inc/blog-setup.php. Article body is full prose typography (not the .sa-prose band).
   Card grid is shared by archive listings, search results and the single's related-posts. -- */
.sa-article{padding:clamp(28px,4vw,52px) 0 0}
.sa-article__head{margin:0 0 clamp(18px,2vw,28px)}
.sa-article__head .eyebrow a{color:var(--royal);text-decoration:none}
.sa-article__meta{color:var(--muted);font-size:.95rem;display:flex;gap:.6em;flex-wrap:wrap;align-items:center;margin:0}
.sa-article__hero{margin:clamp(18px,2.5vw,32px) 0}
.sa-article__hero img{width:100%;height:auto;border-radius:var(--r);display:block}
.sa-article__body{padding:clamp(8px,2vw,20px) 0 clamp(28px,4vw,48px)}
/* article prose */
.sa-article__body p,.sa-article__body li{font-size:var(--step);line-height:1.75;color:#2c2c2c}
.sa-article__body p{margin:0 0 1.15em}
.sa-article__body h2{font-size:clamp(1.4rem,1.1rem + 1.1vw,1.9rem);color:var(--navy);font-weight:600;line-height:1.25;margin:1.6em 0 .5em}
.sa-article__body h3{font-size:1.3rem;color:var(--navy);font-weight:600;margin:1.4em 0 .45em}
.sa-article__body h4{font-size:1.1rem;color:var(--navy);font-weight:600;margin:1.3em 0 .4em}
.sa-article__body h5,.sa-article__body h6{font-size:1rem;color:var(--navy);font-weight:700;margin:1.2em 0 .4em}
.sa-article__body ul,.sa-article__body ol{margin:0 0 1.2em;padding-left:1.4em}
.sa-article__body ul{list-style:disc}
.sa-article__body ol{list-style:decimal}
.sa-article__body li{margin:0 0 .5em}
.sa-article__body li::marker{color:var(--royal)}
.sa-article__body a{color:var(--royal);text-decoration:underline;text-underline-offset:2px}
.sa-article__body a:hover{color:var(--navy)}
.sa-article__body img{max-width:100%;height:auto;border-radius:var(--r-sm);margin:1em 0}
.sa-article__body figure{margin:1.4em 0}
.sa-article__body figure img{margin:0}
.sa-article__body figcaption{font-size:.85rem;color:var(--muted);margin-top:.5em;text-align:center}
.sa-article__body blockquote{margin:1.4em 0;padding:.4em 0 .4em 1.2em;border-left:4px solid var(--royal);color:var(--navy);font-size:1.1rem;font-style:italic}
.sa-article__body blockquote p:last-child{margin-bottom:0}
.sa-article__body h2:first-child,.sa-article__body h3:first-child,.sa-article__body p:first-child{margin-top:0}
.sa-article__body > .narrow > :last-child{margin-bottom:0}
.sa-article__body table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.95rem}
.sa-article__body th,.sa-article__body td{border:1px solid var(--line);padding:10px 14px;text-align:left}
.sa-article__body th{background:var(--bg-soft);font-weight:600;color:var(--navy)}
.sa-article__body iframe,.sa-article__body .wp-block-embed__wrapper iframe{max-width:100%}
.sa-article__body .wp-block-embed{margin:1.4em 0}
.sa-article__body pre{background:var(--bg-soft);padding:16px;border-radius:var(--r-sm);overflow-x:auto;margin:1.4em 0}
.sa-article__tagwrap{padding:0 0 clamp(20px,3vw,36px)}
.sa-article__tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.sa-article__tags li{margin:0}
.sa-article__tags a{display:inline-block;font-size:.82rem;font-weight:500;color:var(--navy);background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:5px 14px;text-decoration:none}
.sa-article__tags a:hover{border-color:var(--royal);color:var(--royal)}
.sa-article__pages{margin-top:1.4em;font-weight:600}
.sa-article__pages a{color:var(--royal)}
/* related + archive/search shared card grid */
.sa-related{padding:clamp(32px,4vw,60px) 0;background:var(--bg-soft)}
.sa-related h2{margin:0 0 24px}
.sa-archive{padding:clamp(28px,4vw,52px) 0}
.sa-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.4vw,32px)}
.sa-post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.sa-post-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.sa-post-card__media{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--bg-soft)}
.sa-post-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.sa-post-card__body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 24px}
.sa-post-card__cat{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--royal);text-decoration:none}
.sa-post-card__title{font-size:1.12rem;line-height:1.3;font-weight:600;color:var(--navy);margin:0}
.sa-post-card__title a{color:inherit;text-decoration:none}
.sa-post-card__title a:hover{color:var(--royal)}
.sa-post-card__meta{font-size:.85rem;color:var(--muted);margin:0}
.sa-pagination{margin-top:clamp(28px,3vw,44px)}
.sa-pagination ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0;padding:0}
.sa-pagination a,.sa-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);font-weight:600;color:var(--navy);text-decoration:none}
.sa-pagination a:hover{border-color:var(--royal);color:var(--royal)}
.sa-pagination .current{background:var(--royal);border-color:var(--royal);color:#fff}
.sa-search-form{display:flex;gap:10px;margin-top:18px;max-width:560px}
.sa-search-form input[type="search"]{flex:1;height:52px;padding:0 16px;border:1px solid #E6E6E6;border-radius:var(--r-sm);font-size:1rem;font-family:var(--font)}
.sa-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sa-empty{font-size:1.1rem;color:var(--muted);padding:clamp(20px,3vw,40px) 0}
.sa-empty a{color:var(--royal)}
@media(max-width:900px){.sa-post-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sa-post-grid{grid-template-columns:1fr}.sa-search-form{flex-direction:column}}
