/* ==========================================================================
   Founders Migration: additional CSS
   Paste this whole file into: WordPress Admin > Appearance > Customize >
   Additional CSS (Elementor also accepts it in Site Settings > Custom CSS).

   Everything that Elementor's native controls cannot do lives here.
   Hooks are set per widget in: Advanced > CSS Classes (without the dot).
   ========================================================================== */

:root {
  --fm-primary: #D8353C;
  --fm-primary-dark: #b92a31;
  --fm-navy: #212840;
  --fm-navy-2: #1a1f36;
  --fm-ink: #1c2238;
  --fm-body: #5a607a;
  --fm-soft: #F5F6FA;
}

html { scroll-behavior: smooth; }

/* ---- Buttons (class: fm-btn) ------------------------------------------ */
.fm-btn { transition: background-color .2s ease, transform .2s ease; }
.fm-btn:hover { background-color: var(--fm-primary-dark); transform: translateY(-2px); }
.fm-btn svg { flex: none; }

/* ---- Cards (class: fm-card on Icon Box / Image Box / Container) ------- */
.fm-card { transition: transform .25s ease, box-shadow .25s ease; }
.fm-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(33, 40, 64, .16); }

/* ---- Eyebrow labels (class: fm-eyebrow on Heading) -------------------- */
.fm-eyebrow { text-transform: uppercase; letter-spacing: 1.5px; }

/* ---- Navigation (class: fm-nav on the Nav Menu widget) ---------------- */
.fm-nav a { transition: color .2s ease; }
.fm-nav a:hover { color: var(--fm-primary); }
.fm-nav .fm-active > a,
.fm-nav .current-menu-item > a,
.fm-nav .current-menu-ancestor > a { color: var(--fm-primary); }
.fm-nav .sub-menu,
.fm-nav .fm-sub {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 16px 40px rgba(33, 40, 64, .18);
  padding: 14px 8px;
  min-width: 250px;
}
.fm-nav .sub-menu a,
.fm-nav .fm-sub a { padding: 7px 18px; font-size: 15px; }
/* Group labels inside dropdowns: add a Custom Link with the class fm-sub-head */
.fm-nav .fm-sub-head > a {
  pointer-events: none;
  color: var(--fm-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding-top: 12px;
}

/* ---- Tables inside a Text Editor widget (class: fm-table) ------------- */
.fm-table { overflow-x: auto; border-radius: 14px; box-shadow: 0 10px 26px rgba(33, 40, 64, .08); background: #fff; }
.fm-table table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15px; color: var(--fm-ink); }
.fm-table th { background: var(--fm-navy); color: #fff; text-align: left; font-weight: 600; padding: 16px 18px; }
.fm-table td { border-top: 1px solid #eceef5; padding: 16px 18px; }

/* ---- Blockquote / mission line (class: fm-quote on Text Editor) ------- */
.fm-quote { border-left: 4px solid var(--fm-primary); padding-left: 16px; }
.fm-quote p { font-weight: 700; color: var(--fm-ink); margin: 0; }

/* ---- Avatars and gallery images (class: fm-round / fm-cover) ---------- */
.fm-round img { border-radius: 50%; }
.fm-cover img { width: 100%; height: 100%; object-fit: cover; }

/* ---- Counters (class: fm-counter on Counter widget) ------------------- */
.fm-counter .elementor-counter-number-wrapper { font-family: 'Jost', sans-serif; font-weight: 700; }

/* ---- Form (class: fm-form on Form widget) ----------------------------- */
.fm-form input[type="text"],
.fm-form input[type="email"],
.fm-form input[type="tel"],
.fm-form textarea { border: 1px solid #d9dcea; border-radius: 8px; }
.fm-form input:focus,
.fm-form textarea:focus { outline: 2px solid var(--fm-primary); outline-offset: 1px; }

/* ---- Preview-only helpers (safe to delete inside WordPress) ------------ */
summary { list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
details.fm-dd[open] > summary { color: var(--fm-primary); }
@media (min-width: 1024px) {
  details.fm-dd > .fm-sub { position: absolute; top: 100%; left: 0; z-index: 50; margin-top: 12px; }
}

/* ---- Mobile menu (Elementor Nav Menu > Responsive: Dropdown / hamburger) - */
@media (max-width: 1023px) {
  .fm-nav { max-height: calc(100vh - 140px); overflow-y: auto; padding-bottom: 12px; }
  .fm-nav > ul > li { border-bottom: 1px solid #eceef5; }
  .fm-nav > ul > li > a,
  .fm-nav summary { display: flex; justify-content: space-between; padding: 12px 4px; }
  .fm-nav .fm-sub { box-shadow: none; border-radius: 0; min-width: 0; padding: 0 0 8px 12px; background: transparent; }
  details.fm-dd[open] > summary svg { transform: rotate(180deg); }
}
