/* ==========================================================================
   Page Builder sections
   ========================================================================== */

/* Hero image overlay ("Darken Image" option) */
.fm-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(0, 0, 0, var(--fm-overlay, 0.45));
  border-radius: 30px;
  pointer-events: none;
}

.global-banner3 .fm-overlay {
  border-radius: 25px;
}

.hero-section .fm-overlay {
  border-radius: 40px;
  bottom: 7px;
}

.hero-section .info-overlay {
  z-index: 3;
}

/* Hero Banner: text widths output the theme's original banner classes (truck/depot/charge/market/cargo-banner),
   so typography and breakpoints come from customizer.css / responsive.css. Only additions live here. */
.fm-hero h6 {
  color: var(--green);
}

/* From the MAP page's inline styles */
.fm-hero--wide.market-banner .banner-overlay .section-heading64 h1 {
  padding-right: 0;
  max-width: 900px;
}

/* Hero Banner: grow with the text instead of clipping it on short windows.
   Image and text share one grid cell. When the text fits, the margins reproduce the theme's layout
   exactly (98vh banner, calc(100vh - 130px) image, text pinned to the banner bottom). The text may still
   rise 2rem above the image, as the tallest existing heroes do, before the banner starts to grow. */
.fm-hero-fit.global-banner {
  height: auto;
  min-height: 98vh;
}

.fm-hero-fit .video-container {
  display: grid;
  margin-bottom: min(0px, 18px - 2vh);
}

.fm-hero-fit .bgImage,
.fm-hero-fit .banner-overlay {
  grid-area: 1 / 1;
}

.fm-hero-fit .bgImage {
  height: auto;
  min-height: calc(100vh - 130px);
}

.fm-hero-fit .bgImage img {
  position: absolute;
  inset: 0;
  height: 100%;
}

.fm-hero-fit .banner-overlay {
  position: relative;
  bottom: auto;
  align-self: end;
  margin-top: -2rem;
  margin-bottom: calc(2vh - 18px);
}

/* CTA Banner: heading inset and eyebrow weight (replaces per-page CTA classes) */
.global-cta.fm-cta--inset-5 .entry-text h1 { padding: 0 5%; }
.global-cta.fm-cta--inset-8 .entry-text h1 { padding: 0 8%; }
.global-cta.fm-cta--inset-10 .entry-text h1 { padding: 0 10%; }
.global-cta.fm-cta--inset-16 .entry-text h1 { padding: 0 16%; }

@media only screen and (max-width: 767px) {
  .global-cta.fm-cta--inset-16 .entry-text h1 { padding: 0 1rem; }
}

.global-cta.fm-cta--eyebrow-medium .top-heading24 {
  font-weight: 500;
  font-family: grotest-500;
}

/* Logo List: per-card width and logo size (replaces :nth-child / :last-child rules) */
.abt-investor .media-body .entry-body2.fm-card--full {
  flex: 1 1 calc(100% - 10px);
}

@media only screen and (max-width: 767px) {
  .abt-investor .media-body .entry-body2.fm-card--full { flex: 1 1 calc(100% - 20px); }
}

.abt-investor .media-body .entry-body2.fm-logo--default .entry-img img {
  max-width: 203px;
}

.abt-investor .media-body .entry-body2.fm-logo--small .entry-img img {
  max-width: 100px;
}

.abt-investor .media-body .entry-body2.fm-logo--large .entry-img img {
  max-width: 300px;
}

/* Team Grid: heading on its own row above a full row of members */
@media only screen and (min-width: 768px) {
  .abt-board .fm-board-heading { margin-bottom: 30px; }
}

/* Info Panel / Info Cards (from the Market Acceleration Program page) */
.map-section { padding: 80px 0 0; }
.map-section:last-child { padding-bottom: 100px; }
.map-panel { border-radius: 25px; padding: clamp(28px, 5vw, 72px); background: var(--gray600); }
.map-panel--dark { background: var(--darkGreen1000); color: var(--white-color); }
.map-panel--green { background: var(--green800); }
.map-copy--narrow { max-width: 900px; }
.map-eyebrow { margin: 0 0 14px; color: var(--green); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 1.3; text-transform: uppercase; letter-spacing: .03em; }
.map-panel--green .map-eyebrow { color: var(--darkGreen1000); }
.map-copy > h3, .map-heading > h3 { margin: 0 0 28px; color: var(--darkGreen1000); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: clamp(36px, 4vw, 56px); font-weight: 600; line-height: 1.05; }
.map-panel--dark h3 { color: var(--white-color); }
.map-body p, .map-card p, .map-contact-card p { font-family: "grotest-400"; font-size: 20px; line-height: 30px; }
.map-body p { margin-bottom: 18px; }
.map-body strong { color: var(--darkGreen1000); font-family: "grotest-600"; }
.map-panel--dark .map-body p { color: var(--white-color); }
.map-panel--dark .map-body strong { color: var(--green900); }
.map-overview-image { margin: 30px 0 0; }
.map-overview-image img { width: 100%; border-radius: 22px; }
.map-deadline { margin: 0 0 28px; color: var(--green900); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 17px; font-weight: 600; }
.map-rfp-link { display: inline-block; margin-top: 16px; }
.map-heading { max-width: 850px; margin-bottom: 34px; }
.map-card-row > div { display: flex; margin-bottom: 24px; }
.map-card { width: 100%; padding: 32px; border-radius: 24px; background: var(--gray600); }
.map-card h3 { margin: 0 0 18px; color: var(--darkGreen1000); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 30px; font-weight: 600; }
.map-checklist, .map-participate .map-body ul { margin: 26px 0 0; padding: 0; list-style: none; }
.map-checklist li, .map-participate .map-body li { position: relative; margin: 12px 0; padding-left: 30px; font-size: 18px; line-height: 1.45; }
.map-checklist li:before, .map-participate .map-body li:before { content: "\2713"; position: absolute; left: 0; color: var(--darkGreen1000); font-family: "grotest-600"; }
.map-contact-card { margin-top: 40px; text-align: center; }
.map-contact-card .btn-green { display: inline-block; }
.map-email { display: block; width: max-content; margin: 20px auto 0; color: var(--darkGreen1000); font-family: "grotest-500"; font-weight: 500; text-decoration: underline; }
@media (min-width: 992px) {
    .map-overview-image { margin: 0 0 0 28px; }
    .map-card-row { align-items: stretch; }
}
@media (max-width: 767px) {
    .map-section { padding-top: 48px; }
    .map-section:last-child { padding-bottom: 64px; }
    .map-panel { border-radius: 20px; }
    .map-copy > h3, .map-heading > h3 { font-size: 34px; }
    .map-body p, .map-card p, .map-checklist li { font-size: 16px; }
    .map-contact-card { margin-top: 30px; }
}

/* ==========================================================================
   Ticket 102130 (Nov 2026)
   ========================================================================== */

/* Sticky Intro + Cards: the eyebrow was inline, so its bottom margin never applied and it sat on the heading.
   On mobile it was also larger than the heading. */
.hm-mobility .media-left .section-heading48 .top-heading {
  display: block;
  margin-bottom: 18px;
  color: var(--green);
}

@media only screen and (max-width: 767px) {
  .hm-mobility .media-left .section-heading48 .top-heading {
    font-size: 20px;
    line-height: 26px;
    margin-bottom: 10px;
  }
}

/* Content + Image (dark): logo images sit on a padded white card */
.hm-invest .mediabody figure {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 56px 44px;
  background: var(--white-color, #fff);
  border-radius: 25px;
}

.hm-invest .mediabody figure img {
  width: 100%;
  max-width: 429px;
  height: auto;
  border-radius: 0;
}

@media only screen and (max-width: 767px) {
  .hm-invest .mediabody figure { padding: 36px 28px; }
}

/* Hero Banner: optional subheading and shaded text panel */
.fm-hero .fm-hero-subheading {
  margin: 0 0 16px;
  color: var(--white-color, #fff);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 30px;
  line-height: 38px;
  font-weight: 600;
}

.fm-hero--panel .section-heading64 {
  padding: 32px 36px;
  background: rgba(0, 42, 25, 0.72);
  border-radius: 25px;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

.fm-hero--panel .section-heading64 p:last-child { margin-bottom: 0; }

@media only screen and (max-width: 767px) {
  .fm-hero .fm-hero-subheading { font-size: 18px; line-height: 24px; margin-bottom: 10px; }
  .fm-hero--panel .section-heading64 { padding: 20px 22px; border-radius: 20px; }
}

/* Icon Cards: Font Awesome icons, 3-up option, footnote */
.offer-subs .entry-box .fm-fa-icon {
  margin-bottom: 25px;
  color: var(--green);
  font-size: 34px;
  line-height: 1;
}

.fm-footnote {
  margin: 4px 0 0;
  color: #5f6160;
  font-size: 14px;
  line-height: 21px;
}

@media only screen and (max-width: 1200px) {
  .offer-subs .col-md-4 { width: 50%; max-width: 50%; flex: 50%; }
}

@media only screen and (max-width: 767px) {
  .offer-subs .col-md-4 { width: 100%; max-width: 100%; flex: 100%; }
}

/* Text Block */
.fm-text-block { padding: 60px 0 0; }
.fm-text-block .section-heading40 h3 { margin-bottom: 16px; }
.fm-text-block__body { max-width: 960px; }
.fm-text-block__body p { margin-bottom: 16px; }
.fm-text-block__body p:last-child { margin-bottom: 0; }
.fm-text-block__body a { color: var(--darkGreen1000); text-decoration: underline; }
.fm-text-block--large .fm-text-block__body p { font-size: 24px; line-height: 36px; }
.fm-text-block--small { padding: 40px 0 0; }
.fm-text-block--small:last-child { padding-bottom: 60px; }
.fm-text-block--small .fm-text-block__body { max-width: none; }
.fm-text-block--small .fm-text-block__body p { color: #5f6160; font-size: 14px; line-height: 21px; margin-bottom: 6px; }

@media only screen and (max-width: 767px) {
  .fm-text-block { padding-top: 40px; }
  .fm-text-block--large .fm-text-block__body p { font-size: 20px; line-height: 30px; }
}

/* Testimonials */
.fm-testimonials { padding: 60px 0 0; }
.fm-testimonials .row > div { display: flex; }

.fm-testimonial {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  padding: 32px;
}

.fm-testimonial__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 24px;
  margin-bottom: 18px;
  border-radius: 6px;
  background: var(--green);
  color: var(--white-color, #fff);
  font-size: 13px;
}

.fm-testimonial h4 {
  margin: 0 0 16px;
  color: var(--black700);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 26px;
  line-height: 32px;
  font-weight: 600;
}

.fm-testimonial blockquote { flex: 1 1 auto; margin: 0 0 20px; padding: 0; border: 0; background: none; color: inherit; font-size: inherit; font-style: normal; overflow: visible; }
.fm-testimonial blockquote p { margin: 0; font-size: 18px; line-height: 28px; }

.fm-testimonial figcaption {
  color: var(--black700);
  font-family: "grotest-500";
  font-size: 16px;
  line-height: 22px;
  font-style: italic;
}

/* Comparison Table */
.fm-compare { padding: 60px 0 0; }
.fm-compare__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.fm-compare__table {
  width: 100%;
  min-width: 620px;
  border-collapse: separate;
  border-spacing: 0;
}

.fm-compare__table thead th {
  padding: 24px 28px;
  background: var(--darkGreen1000);
  color: var(--white-color, #fff);
  text-align: center;
  vertical-align: middle;
}

.fm-compare__table thead th:first-child { border-top-left-radius: 20px; }
.fm-compare__table thead th:last-child { border-top-right-radius: 20px; }
.fm-compare__table:not(.fm-compare__table--labels) thead th { text-align: left; }

.fm-compare__table thead .fm-compare__label {
  text-align: left;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.fm-compare__col-title {
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 28px;
  line-height: 34px;
  font-weight: 600;
}

.fm-compare__col-sub {
  display: block;
  margin-top: 4px;
  color: var(--green900);
  font-size: 15px;
  line-height: 20px;
}

.fm-compare__table tbody th,
.fm-compare__table tbody td {
  padding: 20px 28px;
  border-bottom: 1px solid #e6e8e6;
  vertical-align: middle;
}

.fm-compare__table tbody tr:nth-child(odd) th,
.fm-compare__table tbody tr:nth-child(odd) td { background: var(--gray600); }

.fm-compare__table tbody tr:last-child th:first-child,
.fm-compare__table tbody tr:last-child td:first-child { border-bottom-left-radius: 20px; }
.fm-compare__table tbody tr:last-child td:last-child { border-bottom-right-radius: 20px; }

.fm-compare__table tbody .fm-compare__label {
  color: var(--black700);
  font-family: "grotest-600";
  font-size: 20px;
  line-height: 26px;
  font-weight: 600;
  text-align: left;
}

.fm-compare__table--labels tbody td { text-align: center; }
.fm-compare__table--labels tbody td .fm-compare__text { color: var(--green); font-family: "grotest-600"; font-weight: 600; }

.fm-compare__check { color: var(--green); font-size: 28px; line-height: 1; }

.fm-compare__table:not(.fm-compare__table--labels) tbody td {
  font-size: 18px;
  line-height: 26px;
}

.fm-compare__table:not(.fm-compare__table--labels) tbody td.has-text {
  display: table-cell;
}

.fm-compare__table:not(.fm-compare__table--labels) tbody td .fm-compare__check {
  float: left;
  margin: 0 16px 0 0;
}

.fm-compare__table:not(.fm-compare__table--labels) tbody td .fm-compare__text { display: block; overflow: hidden; }

@media only screen and (max-width: 767px) {
  .fm-compare__table { min-width: 0; table-layout: fixed; }
  .fm-compare__table thead th, .fm-compare__table tbody th, .fm-compare__table tbody td { padding: 14px 10px; }
  .fm-compare__table thead th:first-child, .fm-compare__table tbody th:first-child, .fm-compare__table tbody td:first-child { padding-left: 14px; }
  .fm-compare__col-title { font-size: 18px; line-height: 23px; }
  .fm-compare__col-sub { font-size: 13px; line-height: 17px; }
  .fm-compare__table thead .fm-compare__label { font-size: 15px; }
  .fm-compare__table tbody .fm-compare__label { font-size: 15px; line-height: 20px; }
  .fm-compare__table--labels tbody td .fm-compare__text { font-size: 15px; line-height: 20px; }
  .fm-compare__check { font-size: 22px; }
  .fm-compare__table:not(.fm-compare__table--labels) tbody td { font-size: 15px; line-height: 21px; }
  .fm-compare__table:not(.fm-compare__table--labels) tbody td .fm-compare__check { float: none; display: block; margin: 0 0 6px; }
}

/* Option Cards */
.fm-options { padding: 60px 0 0; }

.fm-options__grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: 0 20px;
}

.fm-option { padding: 34px 32px; }

.fm-option__head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }

.fm-option__num {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 2px solid var(--black700);
  border-radius: 50%;
  font-family: "grotest-600";
  font-size: 18px;
  line-height: 1;
}

.fm-option h4 {
  margin: 0;
  color: var(--black700);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 32px;
  line-height: 38px;
  font-weight: 600;
}

.fm-option__highlight {
  margin: 0 0 20px;
  padding: 12px 20px;
  border-radius: 20px;
  background: var(--green800);
  font-size: 17px;
  line-height: 24px;
}

.fm-option__body p { font-size: 18px; line-height: 27px; margin-bottom: 14px; }
.fm-option__body h5, .fm-option__body h6 {
  margin: 20px 0 8px;
  color: var(--green);
  font-family: "grotest-600";
  font-size: 19px;
  line-height: 24px;
  font-weight: 600;
}

.fm-option__body ul { margin: 0 0 14px; padding: 0; list-style: none; }
.fm-option__body li { position: relative; margin: 6px 0; padding-left: 24px; font-size: 18px; line-height: 26px; }
.fm-option__body li:before { content: "+"; position: absolute; left: 2px; color: var(--green); font-family: "grotest-600"; }
.fm-option__body > :last-child { margin-bottom: 0; }

.fm-options__divider { position: relative; display: flex; align-items: center; justify-content: center; }
.fm-options__divider:before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 2px dashed #b9dda0; }
.fm-options__divider span { position: relative; padding: 8px 0; background: var(--white-color, #fff); color: var(--green); font-family: "grotest-600"; font-size: 16px; }

@media only screen and (max-width: 991px) {
  .fm-options__grid { grid-template-columns: 1fr; gap: 0; }
  .fm-options__divider { height: 56px; }
  .fm-options__divider:before { top: 50%; bottom: auto; left: 0; right: 0; border-left: 0; border-top: 2px dashed #b9dda0; }
  .fm-options__divider span { padding: 0 12px; }
  .fm-option { padding: 26px 22px; }
  .fm-option h4 { font-size: 26px; line-height: 32px; }
}
