/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Description: Default GeneratePress child theme
Author: Tom Usborne
Author URI: https://tomusborne.com
Template: generatepress
Version: 0.3
/* MetaSlider hero height control */
.metaslider .flexslider {
  max-height: 520px;
  overflow: hidden;
}

.metaslider .slides img {
  width: 100%;
  height: auto;
}

/*PRIDE BOX REPLACE HERE * /* =========================== CONTACT US BAR =========================== */ .contact-bar {
  border-top: 4px solid #f58220;
  background-color: #111111;
  padding: 40px 20px 45px 20px;
}

/*REPLACE BOX HERE /* =========================== CONTACT US BAR =========================== */ .contact-bar {
  border-top: 4px solid #f58220;
  background-color: #111111;
  padding: 40px 20px 45px 20px;
}

/* =========================== CONTACT US BAR =========================== */ .contact-bar {
  border-top: 4px solid #f58220;
  background-color: #111111;
  padding: 40px 20px 45px 20px;
}

.contact-bar .contact-inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* Grid layout & column separators */ .contact-bar .gb-grid-wrapper {
  align-items: flex-start;
  column-gap: 40px;
}

.contact-bar .gb-grid-column:not(:first-child) {
  border-left: 1px solid #444444;
  padding-left: 40px;
}

/* Logo */ .contact-bar .contact-logo img {
  max-width: 200px;
  height: auto;
}

/* "Contact Us" heading */ .contact-bar .contact-heading {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 12px;
}

/* Card wrapper for phone/email blocks */ .contact-bar .contact-card {
  background-color: #1a1a1a;
  border: 1px solid #333333;
  padding: 10px 18px;
  margin-top: 6px;
}

/* Little subtitle above phone numbers */ .contact-bar .contact-subtitle {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 13px;
  color: #ffffff;
  margin: 0 0 8px;
}

/* Each row inside the card */ .contact-bar .contact-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Roboto", Arial, sans-serif;
  font-size: 14px;
  color: #ffffff;
  margin: 0 0 4px;
}

/* Left labels: US:, CA:, Email:, Web: */ .contact-bar .contact-label {
  color: #f58220;
  font-weight: 700;
  min-width: 52px;
  /* keeps labels aligned */;
}

/* Links inside the card */ .contact-bar .contact-card a {
  color: #f58220;
  text-decoration: none;
}

.contact-bar .contact-card a:hover {
  text-decoration: underline;
}

/* Responsive: stack columns, change separators */ @media (max-width: 960px) {
  .contact-bar .gb-grid-wrapper { row-gap: 30px;
}

.contact-bar .gb-grid-column:not(:first-child) {
  border-left: none;
  padding-left: 0;
  border-top: 1px solid #333333;
  padding-top: 24px;
}

} /* =========================== FOOTER TEXT + LINKS =========================== */ .footer-legal {
  text-align: left;
  padding: 10px 0 18px 0;
  color: #ffffff;
  font-family: "Roboto", Arial, sans-serif;
}

/* ============================ MOBILE FIXES (≤ 768px) ============================ */ @media (max-width: 768px) {
  /* 1. Parts image grid – stack cards, keep images clean */ .parts-grid.gb-grid-wrapper { grid-template-columns: 1fr !important;
  /* one column */ row-gap: 32px;
  /* space between cards */;
}

/* ========================= FULL-WIDTH CONTACT + SOCIAL STRIP (forces edge-to-edge even if inside a constrained container) ========================= */ .nfi-contact, .nfi-social-strip, .mc-contact, .mc-social-strip {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

/* Prevent horizontal scroll caused by 100vw sections */ html, body {
  overflow-x: hidden;
}

/* Social strip block */ .nfi-social-strip {
  background: #1c1c1c;
  padding: 14px 0;
}

/* Icons */ .nfi-social-strip a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(245,130,32,.12);
  margin: 0 6px;
}

.nfi-social-strip img {
  width: 18px !important;
  height: 18px !important;
  object-fit: contain;
  display:block;
}

/* ========================================= /* /* ====================================== CONTACT BAR FIX /* /* layout */ .contact-bar {
  background:#111;
  border-top:4px solid #f58220;
}

.contact-inner {
  max-width:1200px;
  margin:0 auto;
  padding:34px 20px;
}

.contact-grid {
  display:grid;
  grid-template-columns: 240px 1fr 1fr;
  column-gap: 48px;
  align-items: start;
}

/* logo */ .contact-logo img {
  max-width: 200px;
  height:auto;
  display:block;
}

/* group padding so the two sections feel “together” */ .contact-info {
  padding-top: 6px;
}

.contact-info--right {
  padding-top: 46px;
}

/* lines up with rows under heading on left */ /* type */ .contact-heading {
  margin:0 0 10px;
  color:#fff;
  font-size:34px;
  font-weight:700;
}

.contact-subtitle {
  margin:0 0 10px;
  color:#fff;
  font-size:13px;
}

.contact-row {
  margin:0 0 6px;
  display:flex;
  gap:10px;
  align-items:baseline;
  color:#fff;
  font-size:14px;
}

.contact-label {
  color:#f58220;
  font-weight:700;
  min-width:56px;
}

.contact-bar a {
  color:#f58220;
  text-decoration:none;
}

.contact-bar a:hover {
  text-decoration:underline;
}

/* responsive */ @media (max-width: 960px) {
  .contact-grid{ grid-template-columns: 1fr;
  row-gap: 18px;
}

.contact-info--right {
  padding-top: 0;
}

} /* ===== Shuttle Bus page (sb-*) ===== */ .sb-page {
  margin: 0;
  padding: 0;
  background: #fff;
}

/* Contact bar (no cards) */ .sb-contact-bar {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  background: #111;
  color: #fff;
  border-top: 4px solid #f58220;
  padding: 32px 0 34px;
  margin: 0 !important;
  /* prevents the “white band” */;
}

.sb-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.2fr;
  gap: 40px;
  align-items: start;
}

.sb-contact-logo img {
  max-width: 200px;
  height: auto;
  display: block;
}

.sb-contact-heading {
  margin: 0 0 10px;
  font-size: 22px;
  font-weight: 700;
}

.sb-contact-subtitle {
  margin: 0 0 10px;
  font-size: 13px;
  opacity: .95;
}

.sb-contact-row {
  margin: 0 0 6px;
  display: flex;
  gap: 10px;
  align-items: baseline;
}

.sb-label {
  color: #f58220;
  font-weight: 700;
  min-width: 62px;
}

.sb-contact-bar a {
  color:#f58220;
  text-decoration: none;
}

.sb-contact-bar a:hover {
  text-decoration: underline;
}

/* Responsive */ @media (max-width: 900px) {
  .sb-product-grid{ grid-template-columns: 1fr;
}

.sb-contact-grid {
  grid-template-columns: 1fr;
  gap: 22px;
}

.sb-cta-inner {
  flex-direction: column;
  align-items: flex-start;
}

} /* Safety */ html, body {
  overflow-x: hidden;
}

.sb-cta-text {
  font-weight: 700 !important;
}

.sb-contact-heading {
  color: #ffffff !important;
}

/* Align right contact column with Private/Public rows */ .sb-contact-col:nth-child(3) {
  padding-top: 42px;
  /* adjust ±4px if needed */;
}

.sb-contact-grid {
  align-items: start;
}

.sb-contact-col {
  display: flex;
  flex-direction: column;
}

.sb-label {
  min-width: 70px;
  /* keeps Email/Web perfectly aligned with Private/Public */;
}

/* ========================= CONTACT BAR (same as other pages) ========================= */ .about-page .contact-bar {
  border-top: 4px solid var(--about-orange);
  background-color: #111;
  padding: 40px 20px 45px;
}

.about-page .contact-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.about-page .contact-grid {
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  align-items:start;
}

.about-page .contact-logo img {
  max-width: 200px;
  height:auto;
}

.about-page .contact-heading {
  color:#fff;
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 10px;
}

.about-page .contact-subtitle {
  color:#fff;
  font-size: 13px;
  margin: 0 0 10px;
  font-weight: 600;
}

.about-page .contact-row {
  display:flex;
  align-items:center;
  gap: 10px;
  margin: 0 0 6px;
  color:#fff;
  font-size: 14px;
}

.about-page .contact-label {
  color: var(--about-orange);
  font-weight: 700;
  min-width: 56px;
}

.about-page .contact-row a {
  color: var(--about-orange);
  text-decoration:none;
}

.about-page .contact-row a:hover {
  text-decoration: underline;
}

/* Responsive */ @media (max-width: 1024px) {
  .about-page .about-two-col{ grid-template-columns: 1fr;
}

.about-page .about-featured {
  grid-template-columns: 1fr;
}

.about-page .about-grid {
  grid-template-columns: repeat(2, minmax(0,1fr));
}

.about-page .contact-grid {
  grid-template-columns: 1fr;
  gap: 22px;
}

} @media (max-width: 640px) {
  .about-page .about-grid{ grid-template-columns: 1fr;
}

} /* ========================================= NAV + DROPDOWN (GeneratePress) Goal: - Top nav: WHITE at top of page, BLACK when sticky/scrolling - Dropdown: BLACK always (so it’s readable on both states) - Text: dark on white nav; white on black nav; orange hover ========================================= */ :root {
  --nfi-orange: #f58220;
  --nfi-black: #111111;
  --nfi-white: #ffffff;
  --nfi-text: #222222;
}

} /* ========================= Contact Bar (if you need minor alignment consistency) Keep these only if your existing contact-bar CSS isn't already correct. ========================= */ .contact-bar {
  background: #111;
  padding: 22px 0;
}

.contact-inner {
  width: min(1100px, calc(100% - 48px));
  margin: 0 auto;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr 0.9fr;
  gap: 40px;
  align-items: start;
}

.contact-logo img {
  max-width: 210px;
  height: auto;
  display: block;
  opacity: .75;
}

.contact-heading {
  margin: 0 0 6px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}

.contact-subtitle {
  margin: 0 0 10px;
  color: #cfcfcf;
  font-size: 12px;
  font-weight: 600;
}

.contact-row {
  margin: 0 0 8px;
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 12px;
  align-items: baseline;
  color: #fff;
  font-size: 12px;
}

.contact-label {
  color: #c66a13;
  font-weight: 700;
}

.contact-row a {
  color: #c66a13;
  text-decoration: none;
}

@media (max-width: 900px) {
  .contact-grid{ grid-template-columns: 1fr;
  gap: 18px;
}

} /* Contact page – main service blocks */ .nfi-contact-block {
  max-width: 720px;
}

.nfi-contact-item {
  margin: 10px 0;
  font-size: 13px;
  color: #222;
}

.nfi-contact-item a {
  color: #222;
  text-decoration: none;
}

.nfi-contact-item a:hover {
  text-decoration: underline;
}

.nfi-divider {
  display: block;
  width: 48px;
  height: 2px;
  background: #c66a13;
  /* NFI orange */ margin: 12px 0;
}

/* Ensure right column text starts at same baseline */ .contact-grid > div:last-child {
  padding-top: 65px;
  /* aligns with US label line */;
}

/* ========================== CONTACT BAR (REUSE) ========================== */ .contact-bar {
  background:#1c1c1c;
  color:#ffffff;
}

.contact-inner {
  max-width:var(--max-width);
  margin:0 auto;
  padding:50px 20px;
}

.contact-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:40px;
  align-items:flex-start;
}

.contact-logo img {
  max-width:200px;
}

.contact-heading {
  color:#ffffff;
  font-size:22px;
  margin-bottom:8px;
}

.contact-subtitle {
  color:#cccccc;
  font-size:14px;
  margin-bottom:14px;
}

.contact-row {
  margin-bottom:8px;
  font-size:15px;
}

.contact-label {
  font-weight:600;
  margin-right:6px;
}

.contact-col a {
  color:#ffffff;
  text-decoration:none;
}

.contact-col a:hover {
  color:var(--nfi-orange);
  text-decoration:underline;
}

} /* ================================ Shuttle Bus Information Sheets Page ID: 906 ================================ */ body.page-id-906 .generate-page-header, body.page-id-906 .page-hero, body.page-id-906 .gb-container.is-page-header, body.page-id-906 .entry-header, body.page-id-906 header.nfi-hero, body.page-id-906 .nfi-hero {
  background: none !important;
  background-size: cover !important;
  background-position: center 8% !important;
  background-repeat: no-repeat !important;
  position: relative !important;
}

/* Language switcher */ .menu-item-language a {
  color: #ffffff;
}

/* HEADER LOCK – do not change nav colors unless redesigning header */ /* ---------- MAIN NAV (GeneratePress) – dark mode always ---------- */ /* Background locked */ body #site-navigation.main-navigation, body .main-navigation {
  background: var(--nfi-black);
}

/* Link color locked (this is what was regressing due to a theme rule) */ body #site-navigation.main-navigation .main-nav ul li > a, body .main-navigation .main-nav ul li > a {
  color: var(--nfi-white) !important;
}

/* Hover/current */ body #site-navigation.main-navigation .main-nav ul li:hover > a, body #site-navigation.main-navigation .main-nav ul li.current-menu-item > a, body #site-navigation.main-navigation .main-nav ul li.current_page_item > a, body #site-navigation.main-navigation .main-nav ul li.current-menu-ancestor > a {
  color: var(--nfi-orange) !important;
}

/* Dropdown arrow/toggle colors */ body #site-navigation.main-navigation .dropdown-menu-toggle {
  color: var(--nfi-white) !important;
}

/* Dropdown menus (always black) */ body #site-navigation.main-navigation .main-nav ul ul {
  background: #000 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.35) !important;
}

} /* Kill the Vision/Mission box border */ .pride-section .pride-border-box {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* Legal / Accessibility / Policy content spacing */ .nfi-legal-content, .nfi-accessibility-content, .nfi-policy-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4rem 2rem;
}

/* Tablet */ @media (max-width: 1024px) {
  .nfi-legal-content, .nfi-accessibility-content, .nfi-policy-content { padding: 3rem 1.5rem;
}

} /* Mobile */ @media (max-width: 768px) {
  .nfi-legal-content, .nfi-accessibility-content, .nfi-policy-content { padding: 2.5rem 1.25rem;
}

} /* PRIVACY POLICY – constrain and pad content */ .page-id-3 .entry-content {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 4rem 2rem;
}

/* FORCE CONTACT BAR FULL WIDTH */ .contact-fullwidth {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #0b0b0b;
}

/* Remove GeneratePress container constraints */ .contact-fullwidth .inside-article, .contact-fullwidth .contact-inner, .contact-fullwidth .about-container {
  max-width: none !important;
  width: 100% !important;
  padding-left: 4rem;
  padding-right: 4rem;
}

/* Grid layout */ .contact-fullwidth .contact-grid {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 4rem;
}

/* Safety for large screens */ @media (min-width: 1600px) {
  .contact-fullwidth .contact-grid { padding-left: 6rem;
  padding-right: 6rem;
}

} /* ================= CONTACT BAR ALIGNMENT FIX ================= */ /* Control horizontal inset to match content above */ .contact-fullwidth .contact-grid {
  max-width: 1400px;
  /* matches about-container visual width */ margin: 0 auto;
  padding: 3.5rem 4rem;
  /* vertical | horizontal */;
}

/* Logo spacing */ .contact-fullwidth .contact-logo {
  padding-right: 2rem;
}

/* Tighten text blocks */ .contact-fullwidth .contact-info {
  padding-left: 1rem;
}

.contact-fullwidth .contact-info--right {
  padding-left: 2rem;
}

.contact-fullwidth .contact-info--right {
  padding-left: 0;
}

/*PRIDE BOX REPLACE HERE * /* =========================== FOOTER TEXT + LINKS =========================== */ .footer-legal {
  text-align: left;
  padding: 10px 0 18px 0;
  color: #ffffff;
  font-family: "Roboto", Arial, sans-serif;
}

/* HERO ----------------------------------- */ .mc-hero {
  position: relative;
  width: 100%;
  min-height: 260px;
  background-image: none;
  background-size: cover;
  background-position: center;
  color: #ffffff;
}

/* ========================= REMOVE WHITE GAPS ========================= */ /* Stop random top/bottom margins from headings/sections causing “gaps” */ .mc-hero, .mc-strap, .mc-section, .mc-contact, .mc-cta-strip, .nfi-social-strip {
  margin: 0 !important;
}

/* ===== Shuttle Bus page (sb-*) ===== */ .sb-page {
  margin: 0;
  padding: 0;
  background: #fff;
}

} /* Remove artificial vertical spacing */ .contact-grid > div {
  margin-top: 0;
}

/* ===== Base (top of page) ===== */ body #site-navigation.main-navigation, body .main-navigation {
  background: #111 !important;
}

} .nfi-divider {
  display: block;
  width: 48px;
  height: 2px;
  background: #c66a13;
  /* NFI orange */ margin: 12px 0;
}

.nfi-mt-xl {
  margin-top: 48px;
}

/* Contact bar grid alignment fix */ .contact-grid {
  align-items: flex-start;
}

/* Remove artificial vertical spacing */ .contact-grid > div {
  margin-top: 0;
}

/* OEM logo row */ .nfi-oem-logos {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  padding: 32px 0 48px;
  flex-wrap: wrap;
}

/* =========================== NFI Hero – MetaSlider (fixed height + overlay caption) =========================== */ /* Force consistent hero height */ .metaslider .flexslider, .metaslider .flexslider .slides, .metaslider .flexslider .slides li {
  height: 520px !important;
  /* desktop hero height;
  tweak if needed */ max-height: 520px !important;
  overflow: hidden;
}

/* Image framing */ .metaslider .flexslider .slides li {
  position: relative;
}

.metaslider .flexslider .slides li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Overlay panel container */ .metaslider .caption-wrap {
  position: absolute;
  top: 50%;
  left: 10%;
  transform: translateY(-50%);
  max-width: 540px;
  padding: 28px 40px;
  background: linear-gradient( to right, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.0) 100% );
  color: #000;
  text-align: left;
  z-index: 2;
  font-family: "Roboto", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Heading – big and bold */ .metaslider .caption-wrap h1 {
  margin: 0 0 12px;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.05;
  font-weight: 900;
}

/* Body text – normal weight */ .metaslider .caption-wrap p {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 400;
}

/* Orange accent period */ .metaslider .caption-wrap .accent-dot {
  color: #C75B12;
  font-size: 1.1em;
  margin-left: -3px;
}

/* Dots navigation: light dots, orange active */ .metaslider .flex-control-nav li a {
  background: rgba(255,255,255,0.6) !important;
  box-shadow: none !important;
}

.metaslider .flex-control-nav li a.flex-active {
  background: #C75B12 !important;
}

/* =========================== Responsive tweaks =========================== */ @media (max-width: 1024px) {
  .metaslider .flexslider, .metaslider .flexslider .slides, .metaslider .flexslider .slides li { height: 430px !important;
  max-height: 430px !important;
}

.metaslider .caption-wrap {
  left: 8%;
  max-width: 480px;
  padding: 24px 32px;
}

.metaslider .caption-wrap p {
  font-size: 15px;
}

} @media (max-width: 768px) {
  .metaslider .flexslider, .metaslider .flexslider .slides, .metaslider .flexslider .slides li { height: 360px !important;
  max-height: 360px !important;
}

.metaslider .caption-wrap {
  left: 6%;
  right: 6%;
  max-width: none;
  padding: 20px 24px;
}

.metaslider .caption-wrap h1 {
  font-size: 26px;
}

.metaslider .caption-wrap p {
  font-size: 14px;
}

} @media (max-width: 480px) {
  .metaslider .flexslider, .metaslider .flexslider .slides, .metaslider .flexslider .slides li { height: 300px !important;
  max-height: 300px !important;
}

.metaslider .caption-wrap {
  top: 55%;
  transform: translateY(-55%);
  padding: 16px 18px;
}

.metaslider .caption-wrap h1 {
  font-size: 22px;
}

.metaslider .caption-wrap p {
  font-size: 13px;
}

} /* Segment cards hover lift */ .nfi-segment-card {
  transition: transform 0.18s ease-out, box-shadow 0.18s ease-out;
  cursor: default;
}

.nfi-segment-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

/* Learn more underline on hover */ .nfi-segment-link a {
  text-decoration: none;
  position: relative;
}

.nfi-segment-link a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  opacity: 0;
  transform: translateY(2px);
  transition: opacity 0.15s ease-out, transform 0.15s ease-out;
}

.nfi-segment-card:hover .nfi-segment-link a::after {
  opacity: 1;
  transform: translateY(0);
}

/* HOME 3-CARD ROW: FORCE PERFECT ALIGNMENT */ /* Make each grid column behave like a flex column */ .home-cards-grid .gb-grid-column {
  display: flex;
}

/* The card container fills the column and stacks image + text */ .home-cards-grid .gb-grid-column > .home-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* Images: full width, natural height */ .home-card img {
  width: 100%;
  height: auto;
  display: block;
}

/* Consistent gap between image and text */ .home-card > * + * {
  margin-top: 20px;
}

/* Tight, consistent text spacing inside cards */ .home-card h3 {
  margin: 0 0 10px;
}

.home-card p {
  margin: 0 0 10px;
}

.home-card p:last-child {
  margin-bottom: 0;
}

/* ORANGE STATS BAR – layout + alignment only */ .stats-grid {
  padding: 40px 0 60px;
}

/* center both number + label */ .stats-grid .gb-headline, .stats-grid .gb-text {
  text-align: center !important;
  margin: 0 auto !important;
}

/* =============================== WE PRIDE OURSELVES SECTION =============================== */ /* Outer section wrapper */ .pride-section {
  padding: 80px 120px 60px;
  position: relative;
}

/* Main heading container */ .pride-heading h2, .pride-heading .gb-headline-text {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 56px;
  font-weight: 700;
  line-height: 1.15;
  color: #ffffff;
  margin: 0 0 24px;
  max-width: 760px;
}

/* Orange part of the heading */ .pride-heading .pride-accent {
  color: #f58220;
}

/* Grid that holds Vision / Mission / Video */ .pride-grid .gb-grid-wrapper {
  align-items: flex-start;
  column-gap: 40px;
}

/* Sub-headings */ .pride-section h4, .pride-section .gb-headline h4 {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: #ffffff;
  margin: 0 0 8px;
}

/* Body copy */ .pride-section p {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  color: #ffffff;
  margin: 0 0 10px;
}

/* Video column – make sure it doesn't shrink awkwardly */ .pride-grid iframe, .pride-grid video {
  width: 100%;
  height: auto;
  display: block;
}

/* --------- Responsive tweaks --------- */ @media (max-width: 1024px) {
  .pride-section { padding: 60px 40px 50px;
}

.pride-heading h2, .pride-heading .gb-headline-text {
  font-size: 42px;
  max-width: 100%;
}

.pride-grid .gb-grid-wrapper {
  column-gap: 24px;
}

} @media (max-width: 768px) {
  .pride-section { padding: 40px 20px 50px;
}

.pride-heading h2, .pride-heading .gb-headline-text {
  font-size: 32px;
  margin-bottom: 20px;
}

.pride-grid .gb-grid-wrapper {
  grid-template-columns: 1fr !important;
  row-gap: 24px;
}

.pride-section h4 {
  font-size: 20px;
}

.pride-section p {
  font-size: 15px;
}

} /* ---------- Main heading ---------- */ .pride-section h2, .pride-section .gb-headline h2, .pride-section .gb-headline-text {
  font-family: "Roboto", Arial, sans-serif !important;
  font-size: 46px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.02em !important;
  color: #ffffff !important;
  /* margin-bottom is overridden above to control positioning */;
}

/* Orange words inside the heading */ .pride-section h2 .pride-accent, .pride-section .gb-headline-text .pride-accent {
  color: #f58220 !important;
}

/* Optional tiny orange slash */ .pride-section .tiny-border {
  color: #f58220 !important;
  margin-left: 4px;
}

/* ---------- Sub-headings ("Our Vision", "Our Mission") ---------- */ .pride-section h4, .pride-section .gb-headline h4 {
  font-family: "Roboto", Arial, sans-serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em !important;
  color: #ffffff !important;
  margin: 0 0 12px !important;
  /* kills global top margin, keeps small bottom gap */;
}

/* ---------- Paragraphs ---------- */ .pride-section p {
  font-family: "Roboto", Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: #ffffff !important;
  max-width: 520px;
  margin: 0 0 10px !important;
  /* prevents global top margin from pushing text */;
}

/* ---------- Responsive tweak ---------- */ @media (max-width: 768px) {
  .pride-section { padding: 50px 24px 70px 24px;
}

.pride-section .gb-grid > .gb-container:first-child {
  max-width: 100%;
}

} /* Vertical positioning for the Our Vision / Our Mission column */ .pride-section .pride-text-col {
  margin-top: -200px !important;
  /* adjust 0px up/down to taste */;
}

/* Optional: tighten spacing between the two white cards if needed */ .pride-section .pride-text-col .gb-grid {
  row-gap: 20px !important;
}

/* Border box for the Pride section grid */ .pride-section .pride-border-box {
  border: 1px solid rgba(255,255,255,0.6);
  /* subtle white border */ padding: 40px 50px !important;
  /* space inside border */ margin-top: 20px !important;
  margin-bottom: 40px !important;
  border-radius: 4px;
  /* optional, remove if unwanted */;
}

/* Make sure grid children do not touch the border */ .pride-section .pride-border-box > .gb-grid-column, .pride-section .pride-border-box > .gb-container {
  padding: 0 20px !important;
}

/* =========================== FOOTER TEXT + LINKS =========================== */ .footer-legal {
  text-align: left;
  padding: 10px 0 18px 0;
  color: #ffffff;
  font-family: "Roboto", Arial, sans-serif;
}

.footer-legal .footer-copy {
  margin: 0 0 8px 0;
  font-size: 14px;
  color: #ffffff;
}

.footer-legal .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.footer-legal .footer-links a {
  color: #f58220;
  font-size: 16px;
  text-decoration: none;
  transition: 0.2s ease;
}

.footer-legal .footer-links a:hover {
  text-decoration: underline;
}

/* Mobile tweaks */ @media (max-width: 768px) {
  .footer-legal { text-align: center;
}

.footer-legal .footer-links {
  justify-content: center;
  gap: 14px;
}

} /* =========================== BACK TO TOP BUTTON — BRAND ORANGE =========================== */ #scroll-to-top, .scroll-to-top, .generate-back-to-top {
  background-color: #f58220 !important;
  /* brand orange */ color: #ffffff !important;
  /* white arrow */ border-radius: 4px !important;
  /* matches your site style */ transition: 0.2s ease-in-out;
}

/* Hover state */ #scroll-to-top:hover, .scroll-to-top:hover, .generate-back-to-top:hover {
  background-color: #d96e16 !important;
  /* slightly darker orange */ color: #ffffff !important;
}

/* Ensures icon inside is white */ #scroll-to-top svg, .scroll-to-top svg, .generate-back-to-top svg {
  fill: #ffffff !important;
}

/* Footer social icons strip */ .wp-block-social-links.footer-social-icons {
  display: flex;
  justify-content: center;
  /* center the icons */ gap: 10px;
  /* spacing between icons */ padding: 8px 0 10px;
  /* top/bottom padding */ margin: 0;
  /* remove extra margins */ background-color: #1c1d1f;
  /* match your footer background color */;
}

/* Make the icons smaller */ .wp-block-social-links.footer-social-icons .wp-social-link svg {
  width: 20px;
  height: 20px;
}

/* ============================ HEADER + NAV – CLEAN VERSION ============================ */ /* Proper logo sizing — keeps proportions, prevents giant scaling */ .site-logo img, .site-logo a img {
  height: 50px !important;
  /* adjust this value until the size matches your brand */ width: auto !important;
  /* maintain proportions */ max-height: 50px !important;
  /* ensures it never gets oversized */;
}

/* 2. Header bar sitting on top of the page */ .site-header {
  position: absolute;
  /* overlays the hero at the very top */ top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: transparent;
  /* transparent when at top */ border: 0;
}

/* 4. Navigation text colours (normal state) */ .main-navigation .main-nav ul li > a {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: #ffffff !important;
  /* white text on hero / dark bar */;
}

/* 5. Hover + current menu item in orange */ .main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.sfHover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current_page_item > a {
  color: #ffffff !important;
  /* on-brand orange */;
}

/* 6. Slightly tighten the inner header padding so the bar isn’t too tall */ .site-header .inside-header {
  padding: 18px 40px 12px 40px;
}

/* 7. Mobile tweaks */ @media (max-width: 768px) {
  .site-header .inside-header { padding: 10px 20px;
}

.main-navigation .menu-toggle {
  color: #ffffff;
}

/* Mobile dropdown background so text stays readable */ .main-navigation.toggled .main-nav {
  background: rgba(0, 0, 0, 0.9);
}

.main-navigation .main-nav ul li > a {
  padding: 12px 20px;
}

} /* ============================ MOBILE FIXES (≤ 768px) ============================ */ @media (max-width: 768px) {
  /* 1. Parts image grid – stack cards, keep images clean */ .parts-grid.gb-grid-wrapper { grid-template-columns: 1fr !important;
  /* one column */ row-gap: 32px;
  /* space between cards */;
}

.parts-grid .gb-grid-column {
  padding: 0 16px;
  /* side breathing room */;
}

.parts-grid .gb-container, .parts-grid .gb-container .gb-inside-container {
  margin: 0;
  padding: 0;
}

.parts-grid .gb-container img {
  width: 100%;
  height: auto;
  display: block;
  /* no weird overflow */;
}

.parts-grid .gb-headline, .parts-grid .gb-text {
  padding-top: 16px;
  text-align: left;
}

/* 2. Contact-us bar – keep everything inside the band */ .contact-section {
  padding-inline: 16px;
}

.contact-grid.gb-grid-wrapper {
  grid-template-columns: 1fr !important;
  /* stack logo / phones / email */ row-gap: 20px;
}

.contact-grid .gb-grid-column {
  align-items: flex-start;
  justify-content: flex-start;
}

.contact-grid .gb-container, .contact-grid .gb-container .gb-inside-container {
  width: 100%;
}

.contact-grid table {
  width: 100%;
}

/* 3. Mobile header / logo cleanup */ .site-header, .mobile-header {
  background: transparent;
}

.site-logo img, .site-logo a img {
  max-height: 40px;
  width: auto;
  height: auto;
  background: transparent;
  /* if PNG is transparent, it will show correctly */;
}

} /* ============ MOBILE: PARTS GRID ============ */ @media (max-width: 768px) {
  /* Your grid wrapper for the three parts cards */ .parts-grid .gb-grid-wrapper { grid-template-columns: 1fr !important;
  /* force one per row */;
}

/* Each card container */ .parts-grid .gb-grid-column, .parts-grid .gb-container {
  margin-bottom: 24px;
}

/* Make sure the tile images scale correctly */ .parts-grid img {
  width: 100%;
  height: auto;
  display: block;
}

/* Tighten the text spacing under each card */ .parts-grid .gb-headline, .parts-grid p {
  margin-top: 8px;
  margin-bottom: 4px;
}

} /* ============ LOGO FIXES ============ */ /* General */ .site-logo, .site-logo a, .site-logo img {
  background: transparent !important;
  border: 0 !important;
}

/* Desktop sizing is already handled; just tighten on mobile */ @media (max-width: 768px) {
  .site-logo img, .site-logo a img { max-height: 40px !important;
  height: auto !important;
  width: auto !important;
}

} /* Pad only captions using the class `pad-left` */ .pad-left {
  padding-left: 100px !important;
  box-sizing: border-box;
}

/* Shared container */ .mc-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Simple responsive grid utility */ .mc-grid {
  display: grid;
  gap: 32px;
}

.mc-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mc-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
  .mc-grid-2, .mc-grid-3 { grid-template-columns: 1fr;
}

} /* Subheader */ .mc-subheader {
  padding: 80px 0 40px;
  text-align: left;
}

.mc-subheader-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.mc-subheader h1 {
  font-size: 44px;
  font-weight: 700;
  margin: 0 0 10px;
}

.mc-subheader-border span, .mc-tiny-border {
  display: inline-block;
  width: 60px;
  height: 3px;
  background: #f58220;
}

/* Blue strips (top + bottom CTA) */ .mc-intro-strip {
  background: #003594;
  color: #ffffff;
  padding: 20px 0;
}

.mc-intro-strip p, .mc-intro-strip h3 {
  margin: 0;
}

.mc-bottom-cta h3 {
  font-size: 24px;
}

/* Breadcrumb + quote */ .mc-breadcrumb-quote {
  padding: 32px 0 24px;
}

.mc-breadcrumb {
  font-size: 14px;
  margin-bottom: 16px;
}

.mc-breadcrumb a {
  color: #f58220;
}

.mc-breadcrumb .sep {
  margin: 0 8px;
  color: #777;
}

.mc-quote {
  font-size: 18px;
  font-style: italic;
  border-left: 4px solid #f58220;
  padding-left: 16px;
}

/* Publications */ .mc-section {
  padding: 48px 0;
}

.mc-publications h3 {
  margin-bottom: 8px;
}

.mc-img-responsive {
  width: 100%;
  height: auto;
}

/* Product Information cards */ .mc-product-info h4 {
  margin-bottom: 8px;
}

.mc-product-cards {
  margin-top: 24px;
}

.mc-card {
  text-align: center;
}

.mc-card img {
  margin-bottom: 12px;
}

.mc-card h3 {
  font-size: 20px;
  margin: 0;
}

.mc-card a {
  color: inherit;
  text-decoration: none;
}

.mc-card a:hover h3 {
  color: #f58220;
}

/* Warranty + support */ .mc-warranty-support h4 {
  margin-bottom: 6px;
}

.mc-cta-line a {
  color: #f58220;
  font-weight: 600;
}

/* Training section */ .mc-training {
  color: #ffffff;
  background-color: #333;
  /* fallback */ position: relative;
}

.mc-training .mc-overlay {
  background: rgba(0, 0, 0, 0.65);
  padding: 60px 0;
}

.mc-training h2 {
  margin-bottom: 8px;
}

.mc-training .mc-tiny-border {
  margin-left: 8px;
  vertical-align: middle;
}

.mc-training-image img {
  max-width: 100%;
  height: auto;
}

/* Bottom CTA button */ .mc-cta-align {
  align-items: center;
}

.mc-align-right {
  text-align: right;
}

.mc-cta-button {
  display: inline-block;
  padding: 10px 24px;
  border: 2px solid #ffffff;
  color: #ffffff;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.2s ease;
}

.mc-cta-button:hover {
  background: #ffffff;
  color: #003594;
}

/* Mobile tweaks */ @media (max-width: 768px) {
  .mc-subheader { padding-top: 60px;
}

.mc-subheader h1 {
  font-size: 32px;
}

.mc-align-right {
  text-align: left;
  margin-top: 12px;
}

} /* ========================================= MOTORCOACH PAGE LAYOUT & STYLING ========================================= */ /* Wrapper so we can target just this page if needed */ .mc-page {
  margin: 0;
  padding: 0;
  background: #ffffff;
}

/* MAIN CONTENT WIDTH */ .mc-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 20px 80px;
  color: #333333;
  font-family: "Roboto", Arial, sans-serif;
  line-height: 1.5;
}

/* HERO ----------------------------------- */ .mc-hero {
  position: relative;
  width: 100%;
  min-height: 260px;
  background-image: url("");
  background-size: cover;
  background-position: center;
  color: #ffffff;
}

.mc-hero::before {
  /* subtle dark overlay to make the text readable */ content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 25, 70, 0.45);
}

.mc-hero-inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 70px 20px 40px;
}

.mc-hero h1 {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #ffffff;
}

/* BLUE STRAP INTRO ----------------------- */ .mc-strap {
  background: #004f9f;
  color: #ffffff;
}

.mc-strap-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 20px;
}

.mc-strap p {
  margin: 0;
  font-size: 15px;
}

/* GENERIC SECTION STYLES ----------------- */ .mc-section {
  margin-top: 40px;
}

.mc-section-title {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 16px;
  color: #122848;
}

.mc-section-title .mc-section-subtitle {
  font-weight: 400;
  font-size: 16px;
  display: block;
  color: #777777;
  margin-top: 2px;
}

/* Two-column helper ---------------------- */ .mc-two-col {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 30px;
  align-items: flex-start;
}

/* Intro paragraph ------------------------ */ .mc-intro p {
  margin: 0 0 10px;
  font-size: 15px;
}

/* WEB TIV SECTION ------------------------ */ .mc-webtiv-image img {
  width: 100%;
  height: auto;
  display: block;
}

.mc-webtiv-text p {
  margin: 0 0 10px;
  font-size: 15px;
}

.mc-webtiv-link a {
  color: #f58220;
  font-weight: 600;
  text-decoration: none;
}

.mc-webtiv-link a:hover {
  text-decoration: underline;
}

/* PRODUCT INFORMATION BUTTONS ------------ */ .mc-products {
  margin-top: 50px;
}

.mc-product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.mc-product-item a {
  display: block;
  text-align: left;
  text-decoration: none;
  color: #333333;
}

.mc-product-item img {
  width: 100%;
  height: auto;
  display: block;
  border: 0;
}

.mc-product-item h3 {
  margin: 8px 0 0;
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.mc-product-item a:hover h3 {
  color: #f58220;
}

/* WORLD CLASS TRAINING ------------------- */ .mc-training {
  margin-top: 60px;
  background: #111111;
  color: #ffffff;
}

.mc-training-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 50px 20px 55px;
  gap: 40px;
}

.mc-training-text h2 {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 16px;
}

.mc-training-text p {
  margin: 0 0 12px;
  font-size: 15px;
  color: #f0f0f0;
}

.mc-training-link a {
  color: #f58220;
  font-weight: 600;
  text-decoration: none;
}

.mc-training-link a:hover {
  text-decoration: underline;
}

.mc-training-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* CTA STRIP (THE PARTS PROS) ------------- */ .mc-pros-cta {
  background: #004f9f;
  color: #ffffff;
}

.mc-pros-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.mc-pros-label {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.mc-btn {
  display: inline-block;
  padding: 10px 26px;
  border-radius: 2px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.mc-btn-light {
  background: #ffffff;
  color: #004f9f;
}

.mc-btn-light:hover {
  background: #e6e6e6;
  color: #004f9f;
}

/* LINKS – GENERAL OVERRIDE ----------------*/ .mc-main a {
  color: #f58220;
}

.mc-main a:hover {
  text-decoration: underline;
}

/* RESPONSIVE BREAKPOINTS ------------------ */ @media (max-width: 1024px) {
  .mc-two-col { grid-template-columns: 1fr;
}

.mc-training-inner {
  gap: 24px;
}

} @media (max-width: 768px) {
  .mc-hero-inner { padding: 60px 16px 30px;
}

.mc-hero h1 {
  font-size: 28px;
}

.mc-main {
  padding: 40px 16px 60px;
}

.mc-product-grid {
  grid-template-columns: 1fr;
}

.mc-pros-inner {
  flex-direction: column;
  align-items: flex-start;
}

} /* WORLD CLASS TRAINING SECTION */ .training-section {
  padding: 30px 0;
  color: #ffffff;
}

/* MCI Academy = orange */ .training-section .accent-orange {
  color: #f58220;
}

/* Learn more link = orange + bold */ .training-section .learn-more-orange {
  color: #f58220;
  font-weight: 600;
  text-decoration: none;
}

/* Ensure paragraph text stays white */ .training-section p {
  color: #ffffff;
  line-height: 1.6;
  margin-bottom: 15px;
}

/* WORLD CLASS TRAINING SECTION – PADDING ADDED */ .training-section {
  padding: 20px 50px;
  /* top/bottom = 20px, left/right = 50px */ color: #ffffff;
}

/* Title = white */ .training-section .training-title {
  font-size: 30px;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 10px;
  position: relative;
}

/* Orange underline bar */ .training-section .title-underline {
  display: block;
  width: 60px;
  height: 4px;
  background: #f58220;
  margin-top: 6px;
}

/* MCI Academy highlight */ .training-section .accent-orange {
  color: #f58220;
}

/* Link styling */ .training-section .learn-more-orange {
  color: #f58220;
  font-weight: 600;
  text-decoration: none;
}

/* Paragraph styling */ .training-section p {
  color: #ffffff;
  line-height: 1.6;
  margin-bottom: 15px;
}

/* ============================ Motorcoach Intro Paragraph Block ============================ */ .mc-intro-block {
  background: #ffffff;
  padding: 40px 60px;
  /* balanced interior spacing */ max-width: 1200px;
  margin: 0 auto 40px auto;
  /* centers content & adds spacing below */ border-left: 6px solid #f58220;
  /* orange accent bar */;
}

/* text inside the block */ .mc-intro-block p {
  font-family: "Roboto", Arial, sans-serif;
  color: #333333;
  font-size: 17px;
  line-height: 1.6;
  margin: 0;
}

/* PRODUCT INFO IMAGE HOVER / ZOOM -------------------------------------------------- */ /* Base figure wrapper */ .pic-hover {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
}

/* Make sure the images fill the figure and can be transformed */ .pic-hover img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.4s ease, filter 0.4s ease;
}

/* Optional dark overlay on hover */ .pic-hover .bg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* Zoom effect */ .pic-hover.hover-scale:hover img {
  transform: scale(1.05);
  /* adjust the scale if you want more/less zoom */;
}

/* Show overlay on hover */ .pic-hover.hover-scale:hover .bg-overlay {
  opacity: 1;
}

.mc-warranty-support {
  margin: 40px auto;
  max-width: 1100px;
}

.mc-subtitle {
  font-size: 22px;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 6px;
  position: relative;
}

.mc-subtitle::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  background: #f58220;
  margin-top: 6px;
}

.mc-orange-link {
  color: #f58220;
  font-weight: 600;
  text-decoration: none;
}

.mc-orange-link:hover {
  text-decoration: underline;
}

/* ============================================================ FULL-WIDTH WORLD CLASS TRAINING + CTA STRIP (used inside a constrained content area / Custom HTML block) ============================================================ */ /* Make the wrapper break out of the page's content width */ .mc-training-cta-wrapper {
  position: relative;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* Inner black training section */ .mc-training-cta-wrapper .mc-training {
  max-width: 1200px;
  margin: 0 auto;
  background: #000000 !important;
  padding: 50px 50px 30px 50px !important;
  color: #ffffff !important;
  font-family: "Roboto", Arial, sans-serif;
}

/* Heading */ .mc-training-cta-wrapper .mc-training-title {
  margin: 0 0 10px 0 !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
}

/* Orange underline under heading */ .mc-training-cta-wrapper .mc-training-accent {
  width: 70px !important;
  height: 3px !important;
  background: #f58220 !important;
  margin-bottom: 20px !important;
}

/* Paragraphs */ .mc-training-cta-wrapper .mc-training p {
  margin: 0 0 15px 0 !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
  color: #ffffff !important;
}

/* "MCI Academy" highlight in body text */ .mc-training-cta-wrapper .mc-academy-highlight {
  color: #f58220 !important;
  font-weight: 700 !important;
}

/* Learn more link */ .mc-training-cta-wrapper .mc-academy-link {
  display: inline-block !important;
  margin-top: 10px !important;
  margin-bottom: 30px !important;
  color: #f58220 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.mc-training-cta-wrapper .mc-academy-link:hover {
  text-decoration: underline !important;
}

/* Blue CTA strip directly under the black section */ .mc-training-cta-wrapper .mc-cta-strip {
  background: #0053a5 !important;
  /* brand blue */ border-bottom: 4px solid #f58220 !important;
  margin: 0 !important;
  padding: 18px 0 !important;
  width: 100% !important;
}

/* Inner CTA content constrained to same width as training text */ .mc-training-cta-wrapper .mc-cta-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 50px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  color: #ffffff !important;
  font-weight: 700 !important;
}

.mc-training-cta-wrapper .mc-cta-text {
  color: #ffffff !important;
  font-size: 16px !important;
}

/* Order Online button */ .mc-training-cta-wrapper .mc-cta-button {
  background: #ffffff !important;
  color: #f58220 !important;
  padding: 10px 26px !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
}

.mc-training-cta-wrapper .mc-cta-button:hover {
  background: #f58220 !important;
  color: #ffffff !important;
}

/* Mobile adjustments */ @media (max-width: 768px) {
  .mc-training-cta-wrapper .mc-training { padding: 30px 20px 24px 20px !important;
}

.mc-training-cta-wrapper .mc-cta-inner {
  padding: 0 20px !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
}

} /* CTA strip – keep it tight */ .mc-cta-strip {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Pull the Contact band up so it hugs the blue strip */ .mc-contact {
  margin-top: -80px !important;
  /* overlap the white gap */ padding-top: 0px !important;
  /* restore breathing room inside */;
}

/* Safety: don't let the first heading add extra space */ .mc-contact h2:first-of-type {
  margin-top: 0 !important;
}

/* Keep CTA + Contact strips from exceeding viewport width */ .mc-cta-strip, .mc-cta-inner, .mc-contact {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

html, body {
  overflow-x: hidden;
}

/* ---------------------------------------- HERO SECTION — CENTER TITLE + MORE IMAGE -----------------------------------------*/ .mc-hero {
  position: relative;
  width: 100%;
  height: 500px;
  /* adjust to show more image */ background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.mc-hero-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  text-align: center;
  padding: 40px 20px;
  /* breathing room */;
}

.mc-hero-inner h1 {
  color: #ffffff;
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 700;
  font-size: 52px;
  /* large, on-brand headline */ letter-spacing: 0.03em;
  margin: 0;
}

/* ---------------------------------------- BLUE STRAP INTRO — FULL WIDTH + CENTERED -----------------------------------------*/ .mc-strap {
  width: 100%;
  background: #0054A4;
  /* NFI Parts blue */ padding: 40px 0;
  /* vertical padding */;
}

.mc-strap-inner {
  max-width: 1200px;
  /* clean readable width */ margin: 0 auto;
  padding: 0 30px;
  /* horizontal padding */ text-align: center;
}

.mc-strap-text {
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 400;
  font-size: 22px;
  color: #ffffff;
  line-height: 1.45;
  margin: 0;
}

/* Brand tokens */ :root {
  --nfi-orange: #f58220;
  /* PMS 159 reference */ /* :contentReference[oaicite:0]{index=0;
}

*/ --nfi-gray: #7a7a7a; /* PMS Cool Gray 7 reference */ /* :contentReference[oaicite:1] {
  index=1;
}

*/ } /* Safety: prevent horizontal scroll from any full-width bars */ html, body {
  overflow-x: hidden;
}

/* ========================= TRANSIT PAGE (tr-*) ========================= */ .page-id-TRANSIT_ID_HERE .entry-content {
  margin-top: 0;
}

/* Hero */ .tr-hero {
  background-size: cover;
  background-position: center 35%;
  /* show more of the image */ background-repeat: no-repeat;
  min-height: 420px;
  display: flex;
  align-items: center;
  position: relative;
}

.tr-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.25);
  /* keep text readable */;
}

.tr-hero-inner {
  position: relative;
  width: 100%;
  text-align: center;
  padding: 120px 20px 90px;
  /* adds vertical padding so you see more image */;
}

/* Orange strap */ .tr-strap {
  background: #cf5d16;
  color:#fff;
}

.tr-strap-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 24px;
}

.tr-strap-inner h3 {
  margin:0;
  font-weight: 500;
  line-height: 1.35;
}

/* Layout container */ .tr-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.tr-section {
  padding: 38px 0;
}

.tr-h2 {
  font-size: 34px;
  margin: 0 0 22px;
}

.tr-h3 {
  font-size: 20px;
  margin: 0 0 12px;
}

.tr-h4 {
  font-size: 18px;
  margin: 0 0 10px;
}

.tr-accent {
  color:#f58220;
}

/* OE logos */ .tr-oe-grid {
  display:grid;
  grid-template-columns: repeat(6, minmax(0,1fr));
  gap: 16px;
  align-items:center;
  margin-top: 16px;
}

.tr-oe-grid img {
  width: 100%;
  height: 64px;
  object-fit: contain;
  opacity: .9;
}

/* Pride section (dark w/ overlay vibe) */ .tr-pride {
  background: #222;
  color: #fff;
  padding: 60px 0;
}

.tr-two-col {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.tr-col h3 {
  color:#fff;
}

/* Logos/images */ .tr-logo {
  height: 75px;
  width:auto;
  display:block;
  margin: 10px 0 12px;
}

.tr-img {
  width:100%;
  height:auto;
  display:block;
  border-radius: 2px;
}

/* Product card w/ zoom + overlay highlight */ .tr-product-card {
  display:block;
  text-decoration:none;
  color:#000;
  margin-top: 14px;
}

.tr-product-img {
  display:block;
  overflow:hidden;
  border-radius: 2px;
  position: relative;
}

.tr-product-img::after {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0);
  transition: background .25s ease;
}

.tr-product-img img {
  width:100%;
  height:auto;
  display:block;
  transform: scale(1);
  transition: transform .25s ease;
}

.tr-product-card:hover .tr-product-img img {
  transform: scale(1.04);
}

.tr-product-card:hover .tr-product-img::after {
  background: rgba(0,0,0,.18);
}

.tr-product-text {
  display:block;
  margin-top: 10px;
  color:#000;
}

/* WebTIV */ .tr-webtiv-grid {
  align-items:start;
}

.tr-webtiv a {
  color:#cf5d16;
}

/* Supply chain grid */ .tr-supply-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 22px;
}

.tr-supply-item h5 {
  margin:0 0 8px;
  font-size: 16px;
}

.tr-supply-item p {
  margin:0;
}

/* Customer Service */ .tr-cs {
  background:#222;
  color:#fff;
  padding: 24px 0 36px;
}

.tr-cs-title {
  margin-bottom: 14px;
}

.tr-cs-text a {
  color:#f58220;
}

/* Orange CTA strip (bottom) */ .tr-cta-strip {
  background:#cf5d16;
  color:#fff;
  padding: 18px 0;
}

.tr-cta-text {
  margin:0;
}

/* Responsive */ @media (max-width: 1024px) {
  .tr-oe-grid{ grid-template-columns: repeat(3, minmax(0,1fr));
}

.tr-supply-grid {
  grid-template-columns: repeat(2, minmax(0,1fr));
}

} @media (max-width: 680px) {
  .tr-two-col{ grid-template-columns: 1fr;
}

.tr-supply-grid {
  grid-template-columns: 1fr;
}

.tr-hero {
  min-height: 340px;
}

.tr-hero-inner {
  padding: 90px 18px 70px;
}

} /* ========================= TRANSIT – FULL WIDTH FIXES ========================= */ /* 0) White page background */ body, .site, .site-content, .inside-article, .entry-content, .content-area {
  background: #ffffff !important;
}

/* 1) Full-bleed hero banner */ .tr-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  border-radius: 0 !important;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  position: relative;
}

.tr-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.25);
}

.tr-hero-inner {
  position: relative;
  text-align: center;
  padding: 120px 20px 90px;
}

.tr-hero-inner h1 {
  color:#fff !important;
}

/* 2) Strap: make sure text is white */ .tr-strap, .tr-strap * {
  color:#fff !important;
}

/* 3) Full-bleed "We Pride Ourselves" + background image */ .tr-pride {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  border-radius: 0 !important;
  /* IMPORTANT: replace this URL with your WP media URL */ background-image: url("https://www.nfi.parts/wp-content/uploads/2025/12/bg-4.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  padding: 60px 0;
  color:#fff;
}

/* optional overlay so text stays readable */ .tr-pride::before {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.tr-pride .tr-container {
  position: relative;
}

/* force "We Pride Ourselves in" to white */ .tr-pride .tr-h2, .tr-pride .tr-h2 * {
  color:#fff !important;
}

/* keep "Keeping You Moving" orange */ .tr-pride .tr-accent {
  color:#f58220 !important;
}

/* Parallax / fixed background */ .tr-hero, .tr-pride {
  background-attachment: fixed;
}

/* iOS/mobile fix: fixed backgrounds are unreliable, so disable there */ @media (max-width: 1024px) {
  .tr-hero, .tr-pride { background-attachment: scroll;
}

} /* =============================== SITEWIDE PARALLAX BACKGROUNDS =============================== */ /* Any element that uses a background image */ section, .wp-block-cover, .gb-container, .parallax, [class*="hero"], [class*="banner"], [class*="pride"] {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* Prevent horizontal scroll issues */ html, body {
  overflow-x: hidden;
}

/* Mobile & iOS fallback (fixed is broken there) */ @media (max-width: 1024px) {
  section, .wp-block-cover, .gb-container, .parallax, [class*="hero"], [class*="banner"], [class*="pride"] { background-attachment: scroll;
}

} /* Safety: prevent any horizontal scroll caused by other full-width elements */ html, body {
  overflow-x: hidden;
}

/* Sticky nav only */ .main-navigation {
  position: sticky;
  top: 0;
  z-index: 9999;
}

/* ===== NAV: STICKY + ALWAYS ON TOP ===== */ :root {
  --nav-h: 72px;
  /* adjust if your header is taller/shorter */;
}

/* Make header sticky */ .site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 10000 !important;
  background: #1c1c1c !important;
}

/* Keep navigation readable */ .main-navigation .main-nav ul li > a {
  color: #fff !important;
}

.main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current_page_item > a {
  color: #f58220 !important;
}

/* Prevent logo distortion */ .site-logo img, .site-logo a img {
  height: 48px !important;
  /* tweak */ width: auto !important;
  max-height: 48px !important;
}

/* ========================= REMOVE WHITE GAPS ========================= */ /* Stop random top/bottom margins from headings/sections causing “gaps” */ .mc-hero, .mc-strap, .mc-section, .mc-contact, .mc-cta-strip, .nfi-contact, .nfi-social-strip {
  margin: 0 !important;
}

/* If your contact/social is inside Gutenberg containers, remove outer spacing */ .wp-site-blocks > * {
  margin-block-start: 0 !important;
}

/* If GenerateBlocks is in play */ .gb-container, .gb-grid-wrapper, .wp-block-group, .wp-block-columns {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ========================================= 0) STOP HORIZONTAL OVERFLOW (safe) ========================================= */ html, body {
  overflow-x: hidden;
}

/* ========================================= /* /* ===== Shuttle Bus page (sb-*) ===== */ .sb-page {
  margin: 0;
  padding: 0;
  background: #fff;
}

/* Kill Gutenberg/GB “block gap” behavior inside the HTML block */ .sb-page * {
  box-sizing: border-box;
}

.entry-content .wp-block-html {
  margin-block: 0 !important;
}

.entry-content {
  --wp--style--block-gap: 0px !important;
}

/* Full-bleed hero */ .sb-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  min-height: 420px;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  position: relative;
  display: flex;
  align-items: center;
}

.sb-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.25);
}

.sb-hero-inner {
  position: relative;
  width: 100%;
  text-align: center;
  padding: 120px 20px 90px;
}

/* Container */ .sb-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Strap */ .sb-strap {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  background: #374738;
  color: #fff;
  padding: 22px 0;
}

.sb-strap p {
  margin: 0;
  line-height: 1.35;
  font-weight: 500;
}

/* Main */ .sb-main {
  padding: 48px 0 40px;
}

.sb-section {
  padding: 26px 0;
}

.sb-h2 {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 700;
}

.sb-underline {
  display: inline-block;
  width: 60px;
  height: 3px;
  background: #f58220;
  margin: 0 0 18px;
}

.sb-intro-block {
  background: #fff;
  padding: 28px 28px;
  border-left: 6px solid #f58220;
}

.sb-intro-block p {
  margin: 0;
  line-height: 1.6;
}

.sb-list {
  margin: 0 0 12px 18px;
}

.sb-list li {
  margin: 0 0 6px;
}

/* Product cards */ .sb-product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin-top: 16px;
}

.sb-product-card {
  text-decoration: none;
  color: inherit;
  display: block;
}

.sb-product-img {
  display:block;
  overflow:hidden;
  border-radius: 2px;
  position: relative;
}

.sb-product-img::after {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,0);
  transition: background .25s ease;
}

.sb-product-img img {
  width:100%;
  height:auto;
  display:block;
  transform: scale(1);
  transition: transform .25s ease;
}

.sb-product-card:hover .sb-product-img img {
  transform: scale(1.04);
}

.sb-product-card:hover .sb-product-img::after {
  background: rgba(0,0,0,.18);
}

.sb-product-title {
  display:block;
  margin-top: 10px;
  font-weight: 600;
}

.sb-product-card:hover .sb-product-title {
  color: #f58220;
}

/* CTA strip (tight to contact bar) */ .sb-cta-strip {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  background: #374738;
  color: #fff;
  padding: 16px 0;
  margin: 0 !important;
}

.sb-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.sb-cta-button {
  display: inline-block;
  border: 2px solid #fff;
  color: #fff;
  text-decoration: none;
  padding: 10px 18px;
  font-weight: 700;
  letter-spacing: .05em;
}

.sb-cta-button:hover {
  background:#fff;
  color:#374738;
}

/* ========================= ABOUT PAGE (scoped) ========================= */ .about-page {
  --about-max: 1200px;
  --about-pad: 24px;
  --about-orange:#f58220;
  --about-text:#333;
  --about-muted:#6b6b6b;
  font-family: "Roboto", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--about-text);
}

.about-page * {
  box-sizing: border-box;
}

.about-page .about-container {
  max-width: var(--about-max);
  margin: 0 auto;
  padding: 0 var(--about-pad);
}

/* HERO */ .about-page .about-hero {
  width: 100%;
  min-height: 260px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.about-page .about-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.35);
}

.about-page .about-hero__inner {
  position: relative;
  min-height: 260px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding: 60px var(--about-pad);
}

.about-page .about-hero__inner h1 {
  margin:0;
  color:#fff;
  letter-spacing: .18em;
  font-weight: 700;
  font-size: clamp(28px, 3.6vw, 46px);
}

/* SECTION TITLES */ .about-page .about-h2 {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 14px;
  position: relative;
  padding-bottom: 10px;
  color:#111;
}

.about-page .about-h2::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:54px;
  height:3px;
  background: var(--about-orange);
}

/* INTRO */ .about-page .about-intro {
  padding: 34px 0 10px;
}

.about-page .about-quote {
  background:#f7f7f7;
  border-left: 4px solid var(--about-orange);
  padding: 18px;
  margin-bottom: 18px;
}

.about-page .about-quote p {
  margin:0;
  font-style: italic;
  color:#444;
}

.about-page .about-two-col {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
}

.about-page .about-two-col p {
  margin:0;
  color:#444;
}

/* DISTRIBUTION */ .about-page .about-distribution {
  padding: 18px 0 40px;
}

.about-page .about-muted {
  margin: 0 0 16px;
  color: var(--about-muted);
  max-width: 900px;
}

.about-page .about-map {
  width:100%;
  height:auto;
  display:block;
  margin-top: 12px;
}

/* LEADERSHIP */ .about-page .about-leadership {
  padding: 8px 0 26px;
}

.about-page .about-featured {
  display:grid;
  grid-template-columns: 320px 1fr;
  gap: 28px;
  align-items:start;
  margin-top: 18px;
  margin-bottom: 22px;
}

.about-page .about-featured-card {
  display:grid;
  grid-template-columns: 96px 1fr;
  gap: 14px;
  align-items:start;
}

.about-page .about-card {
  display:grid;
  grid-template-columns: 86px 1fr;
  gap: 12px;
  align-items:start;
}

/* Headshots: small, not square */ .about-page .about-headshot {
  width: 86px;
  height: auto;
  display:block;
  border-radius: 4px;
  object-fit: cover;
}

.about-page .about-headshot--featured {
  width: 96px;
}

.about-page .about-name {
  font-weight: 700;
  margin: 0 0 2px;
  color:#111;
}

.about-page .about-title {
  margin:0;
  color: var(--about-muted);
  font-size: 13px;
}

.about-page .about-featured-bio p {
  margin: 0 0 12px;
}

.about-page .about-featured-bio p:last-child {
  margin-bottom:0;
}

/* 4-up grid */ .about-page .about-grid {
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin-top: 10px;
}

.about-page .about-bio {
  margin: 10px 0 0;
  color:#444;
}

/* More toggle */ .about-page .about-more-btn {
  margin-top: 10px;
  appearance:none;
  border: 1px solid #d6d6d6;
  background:#fff;
  color:#111;
  font-weight: 700;
  font-size: 12px;
  padding: 8px 12px;
  cursor: pointer;
  border-radius: 2px;
}

.about-page .about-more-btn:hover {
  border-color:#bfbfbf;
}

.about-page .about-more {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #ededed;
  color:#444;
}

/* HISTORY */ .about-page .about-history {
  padding: 18px 0 30px;
}

.about-page .about-row {
  display:grid;
  grid-template-columns: 70px 18px 1fr;
  gap: 14px;
  align-items:start;
  padding: 10px 0;
}

.about-page .about-year {
  font-weight: 700;
  color:#111;
}

.about-page .about-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--about-orange);
  margin-top: 7px;
}

.about-page .about-event h3 {
  margin:0 0 4px;
  font-size: 15px;
  font-weight: 700;
  color:#111;
}

.about-page .about-event p {
  margin:0;
  color:#444;
}

/* ========================================= NAV + DROPDOWN (GeneratePress) Goal: - Top nav: WHITE at top of page, BLACK when sticky/scrolling - Dropdown: BLACK always (so it’s readable on both states) - Text: dark on white nav; white on black nav; orange hover ========================================= */ :root {
  --nfi-orange: #f58220;
  --nfi-black: #111111;
  --nfi-white: #ffffff;
  --nfi-text: #222222;
}

/* Smooth transitions */ .site-header, .main-navigation, .main-navigation .main-nav ul li > a, .main-navigation ul ul {
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

/* ===== Base (top of page) ===== */ body #site-navigation.main-navigation, body .main-navigation {
  background: var(--nfi-white) !important;
}

body #site-navigation.main-navigation .main-nav ul li > a, body .main-navigation .main-nav ul li > a {
  color: #fff !important;
}

/* Hover/current on top */ body #site-navigation.main-navigation .main-nav ul li:hover > a, body #site-navigation.main-navigation .main-nav ul li.current-menu-item > a, body #site-navigation.main-navigation .main-nav ul li.current_page_item > a, body #site-navigation.main-navigation .main-nav ul li.current-menu-ancestor > a {
  color: var(--nfi-orange) !important;
}

/* ===== Dropdown (always black bg + white text) ===== */ body #site-navigation.main-navigation .main-nav ul ul {
  background: #000 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.35) !important;
}

body #site-navigation.main-navigation .main-nav ul ul li > a {
  color: #fff !important;
  background: transparent !important;
}

body #site-navigation.main-navigation .main-nav ul ul li:hover > a, body #site-navigation.main-navigation .main-nav ul ul li.current-menu-item > a {
  color: var(--nfi-orange) !important;
}

/* Mobile expanded menu panel */ @media (max-width: 768px) {
  body #site-navigation.main-navigation.toggled .main-nav{ background:#000 !important;
}

body #site-navigation.main-navigation.toggled .main-nav ul li > a {
  color:#fff !important;
}

} /* ABOUT – contact bar alignment fix (right column) */ .about-page .contact-bar .contact-grid {
  display: grid;
  grid-template-columns: 260px 1fr 1fr;
  /* logo | phones | email/web */ column-gap: 80px;
  align-items: start;
}

/* Drop the right column down so Email/Web aligns with US/CA */ .about-page .contact-bar .contact-grid > :nth-child(3) {
  padding-top: 54px;
  /* tweak 48–62px until it lines up perfectly */;
}

/* Keep rows consistent */ .about-page .contact-bar .contact-row {
  margin: 0 0 10px 0;
  display: grid;
  grid-template-columns: 70px 1fr;
  column-gap: 14px;
  align-items: baseline;
}

/* Mobile: remove the offset */ @media (max-width: 960px) {
  .about-page .contact-bar .contact-grid{ grid-template-columns: 1fr;
  row-gap: 24px;
}

.about-page .contact-bar .contact-grid > :nth-child(3) {
  padding-top: 0;
}

} /* About - Press Releases band */ .about-press {
  background:#4a4a4a;
  /* dark band like original */ padding:70px 0;
}

.about-h2--press {
  color:#fff;
  margin:0 0 26px 0;
}

.about-press-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px 34px;
}

.about-press-item {
  display:flex;
  gap:12px;
  align-items:flex-start;
  text-decoration:none;
  color:#e6862a;
  /* NFI orange link color */ font-size:14px;
  /* matches the original density */ line-height:1.35;
}

.about-press-item:hover, .about-press-item:focus {
  color:#fff;
}

.about-num {
  flex:0 0 auto;
  display:inline-block;
  font-weight:700;
  font-size:34px;
  line-height:1;
  color:#e6862a;
  margin-top:-2px;
}

/* Responsive */ @media (max-width: 980px) {
  .about-press-grid{ grid-template-columns:repeat(2, minmax(0, 1fr));
}

} @media (max-width: 640px) {
  .about-press-grid{ grid-template-columns:1fr;
}

.about-num {
  font-size:30px;
}

} .about-h2--press {
  color: #ffffff;
}

.about-press .about-h2--press {
  color: #ffffff !important;
}

/* ========================= Contact Page (GeneratePress) Scope everything to .nfi-contact-page ========================= */ .nfi-contact-page {
  font-size: 12px;
  /* matches your “site is 12” note */ line-height: 1.6;
}

.nfi-container {
  width: min(1100px, calc(100% - 48px));
  margin: 0 auto;
}

/* HERO */ .nfi-hero {
  position: relative;
  min-height: 260px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
}

.nfi-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.nfi-hero__inner {
  position: relative;
  width: min(1100px, calc(100% - 48px));
  margin: 0 auto;
  text-align: center;
  padding: 42px 0 34px;
}

.nfi-breadcrumb {
  margin: 0;
  font-size: 12px;
  color: rgba(255,255,255,.8);
}

.nfi-breadcrumb a {
  color: #c66a13;
  /* brand orange */ text-decoration: none;
}

.nfi-breadcrumb a:hover {
  text-decoration: underline;
}

.nfi-breadcrumb__sep {
  margin: 0 8px;
  color: rgba(255,255,255,.5);
}

/* MAIN SECTION */ .nfi-section {
  background: #fff;
  padding: 42px 0 54px;
}

.nfi-h2 {
  margin: 0 0 18px;
  font-size: 22px;
  font-weight: 700;
  color: #222;
}

.nfi-mt-lg {
  margin-top: 34px;
}

.nfi-contact-lines {
  max-width: 680px;
}

.nfi-contact-line {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: baseline;
  padding: 10px 0;
  color: #222;
}

.nfi-contact-line--inline {
  padding-top: 0;
  margin-top: -6px;
  grid-template-columns: auto auto;
  justify-content: start;
  gap: 8px;
  color: #222;
}

.nfi-contact-line__label {
  font-size: 13px;
  color: #222;
}

.nfi-contact-line__value {
  font-size: 13px;
  color: #222;
}

.nfi-contact-lines a {
  color: #222;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.2);
}

.nfi-contact-lines a:hover {
  border-bottom-color: rgba(0,0,0,.6);
}

.nfi-divider {
  display: block;
  height: 2px;
  width: 52px;
  background: #c66a13;
  /* brand orange */ margin: 8px 0 10px;
}

/* OEM LOGOS */ .nfi-oem-logos {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 18px;
  align-items: center;
  opacity: .65;
  /* like the gray logo row */;
}

.nfi-oem-logos img {
  width: 100%;
  max-height: 46px;
  object-fit: contain;
  display: block;
}

/* ORANGE BAND */ .nfi-cta-band {
  background: #c66a13;
  padding: 18px 0;
}

.nfi-cta-band__text {
  color: #111;
  font-size: 14px;
  font-weight: 500;
}

/* RESPONSIVE */ @media (max-width: 900px) {
  .nfi-oem-logos{ grid-template-columns: repeat(3, minmax(0, 1fr));
}

} @media (max-width: 600px) {
  .nfi-hero{ min-height: 220px;
}

.nfi-contact-line {
  grid-template-columns: 1fr;
}

.nfi-contact-line__value {
  margin-top: -4px;
}

} /* OEM logo row */ .nfi-oem-logos {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  padding: 32px 0 48px;
  flex-wrap: wrap;
}

.nfi-oem-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 120px;
}

.nfi-oem-logo img {
  height: 60px;
  width: auto;
  max-width: 100%;
  opacity: 0.6;
}

/* OEM logo row – tighter spacing */ .nfi-oem-logos {
  display: flex;
  justify-content: center;
  /* ⬅️ key change */ align-items: center;
  gap: 20px;
  /* ⬅️ reduce spacing */ padding: 5px 0 32px;
  flex-wrap: wrap;
}

/* Individual logo wrapper */ .nfi-oem-logo {
  flex: 0 0 auto;
  /* ⬅️ prevent stretching */ display: flex;
  align-items: center;
  justify-content: center;
}

/* Logo image size */ .nfi-oem-logo img {
  height: 64px;
  /* adjust if needed */ width: auto;
  max-width: 120px;
  opacity: 0.6;
}

/* ===== ESG PAGE ===== */ .esg-page {
  font-size:12px;
  line-height:1.6;
}

/* Layout container */ .esg-container {
  max-width:1100px;
  margin:0 auto;
  padding:0 24px;
}

/* Hero */ .esg-hero {
  position:relative;
  min-height:260px;
  display:flex;
  align-items:center;
  background-size:cover;
  background-position:center;
}

.esg-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.55);
}

.esg-hero__inner {
  position:relative;
  width:100%;
  text-align:center;
  padding:48px 24px;
}

.esg-hero__inner h1 {
  margin:0;
  color:#fff;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:34px;
}

/* Breadcrumb */ .esg-crumb {
  margin:12px 0 0;
  padding:0;
  list-style:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:rgba(255,255,255,.85);
}

.esg-crumb a {
  color:#cf5d15;
  text-decoration:none;
}

.esg-crumb a:hover {
  text-decoration:underline;
}

.esg-crumb .sep {
  color:rgba(255,255,255,.6);
}

/* Content */ .esg-content {
  background:#fff;
  padding:56px 0 64px;
}

.esg-h2 {
  margin:0 0 18px;
  font-size:22px;
  font-weight:700;
  color:#222;
}

/* Two column */ .esg-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px;
  align-items:start;
}

.esg-col p {
  margin:0 0 18px;
  color:#444;
  font-size:12px;
}

/* Button */ .esg-btn {
  display:inline-block;
  border:2px solid #cf5d15;
  color:#cf5d15;
  text-decoration:none;
  padding:10px 16px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:12px;
}

.esg-btn:hover {
  background:#cf5d15;
  color:#fff;
}

/* Responsive */ @media (max-width:900px) {
  .esg-two-col{ grid-template-columns:1fr;
  gap:26px;
}

.esg-hero__inner h1 {
  font-size:28px;
}

} /* NOTE: contact-bar CSS should already exist from your other pages. If this page renders weirdly, it’s because the theme is overriding your contact-bar selectors (same situation you had earlier). */ /* ========================== PRIVACY POLICY – GLOBAL ========================== */ :root {
  --nfi-orange:#f58220;
  --nfi-dark:#1c1c1c;
  --nfi-gray:#f4f4f4;
  --nfi-text:#222;
  --nfi-muted:#666;
  --max-width:1200px;
}

/* Page wrapper */ .privacy-page {
  background:#ffffff;
  color:var(--nfi-text);
  font-family:Roboto, Arial, sans-serif;
  line-height:1.6;
}

/* ========================== HERO ========================== */ .privacy-hero {
  position:relative;
  min-height:340px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
}

.privacy-hero::after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.45);
}

.privacy-hero__inner {
  position:relative;
  z-index:2;
  max-width:var(--max-width);
  margin:0 auto;
  padding:80px 20px 60px;
  text-align:center;
}

.privacy-hero h1 {
  color:#ffffff;
  font-size:42px;
  letter-spacing:1px;
  margin:0 0 10px;
  font-weight:700;
}

.privacy-breadcrumbs {
  font-size:14px;
  color:#e6e6e6;
}

.privacy-breadcrumbs a {
  color:#ffffff;
  text-decoration:none;
}

.privacy-breadcrumbs a:hover {
  text-decoration:underline;
}

/* ========================== MAIN CONTENT ========================== */ .privacy-content {
  background:#ffffff;
}

.privacy-container {
  max-width:var(--max-width);
  margin:0 auto;
  padding:60px 20px;
}

.privacy-updated {
  font-size:14px;
  color:var(--nfi-muted);
  margin-bottom:20px;
}

/* Headings */ .privacy-h2 {
  font-size:26px;
  margin:50px 0 16px;
  padding-left:14px;
  border-left:4px solid var(--nfi-orange);
  color:var(--nfi-dark);
  font-weight:700;
}

.privacy-h3 {
  font-size:18px;
  margin:26px 0 10px;
  color:var(--nfi-dark);
  font-weight:600;
}

/* Body text */ .privacy-container p {
  font-size:16px;
  margin-bottom:16px;
}

/* Lists */ .privacy-list {
  padding-left:20px;
  margin:10px 0 20px;
}

.privacy-list li {
  margin-bottom:10px;
  font-size:16px;
}

/* Links */ .privacy-container a {
  color:var(--nfi-orange);
  text-decoration:none;
  font-weight:500;
}

.privacy-container a:hover {
  text-decoration:underline;
}

/* =============================== HAMBURGER ICON COLOR =============================== */ .menu-toggle, .menu-toggle:hover, .menu-toggle:focus {
  color: #000000;
}

.menu-toggle svg {
  fill: #000000;
}

/* ========================================================== NFI PAGES — MASTER CSS (START FRESH) Covers: 1) Motorcoach Catalogs 2) Motorcoach Information Sheets 3) Shuttle Bus Information Sheets 4) Transit Information Sheets IMPORTANT: Replace the page-id placeholders below with your real WP page IDs: - MOTOR_CATALOG_ID - MOTOR_IS_ID - SHUTTLE_IS_ID - TRANSIT_IS_ID Put this entire block at the bottom of Appearance → Customize → Additional CSS. ========================================================== */ /* ========================= 0) TOKENS + GLOBAL RESETS ========================= */ :root {
  --nfi-orange: #f05a28;
  --nfi-orange-transit: #cf5d16;
  /* legacy transit orange */ --nfi-blue: #003594;
  /* motorcoach info sheets intro */ --nfi-green: #374738;
  /* shuttle intro + aftermarket bar */ --nfi-navy: #0f2f4a;
  /* motorcoach section banners */ --nfi-dark: #1f1f1f;
  --nfi-dark2:#262626;
  --nfi-max: 1200px;
}

.nfi-wrap, .nfi-hero__inner, .nfi-breadcrumbs__inner, .nfi-introbar__inner, .nfi-aftermarket__inner, .nfi-contact__inner {
  max-width: var(--nfi-max);
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* Avoid theme spacing fights inside custom blocks */ .nfi-hero, .nfi-introbar, .nfi-breadcrumbs, .nfi-catalogs, .nfi-is, .nfi-is-bannerwrap, .nfi-aftermarket, .nfi-contact {
  width: 100%;
  box-sizing: border-box;
}

/* ========================= 1) HERO (BASE, NO IMAGES) ========================= */ .nfi-hero {
  position: relative;
  height: 170px;
  /* per your preferred shorter hero */ overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  /* CRITICAL: no background-image globally */ background: none;
  background-color: #000;
  /* fallback */;
}

.nfi-hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index: 1;
  pointer-events:none;
  background: rgba(0,0,0,.45);
  /* default overlay */;
}

.nfi-hero__inner {
  position: relative;
  z-index: 2;
  text-align: center;
}

.nfi-hero__underline {
  width: 72px;
  height: 3px;
  background: #fff;
  margin: 10px auto 0;
  opacity: .9;
}

/* ========================= 2) INTRO BAR (BASE) ========================= */ .nfi-introbar {
  color:#fff;
  padding: 22px 0;
}

.nfi-introbar__inner {
  max-width: 980px;
  font-size: 18px;
  /* enlarged */ font-weight: 700;
  /* bold */ line-height: 1.45;
  text-align: left;
}

/* ========================= 3) BREADCRUMBS (BASE) ========================= */ .nfi-breadcrumbs {
  background:#fff;
}

.nfi-breadcrumbs__inner {
  padding: 14px 20px;
  display:flex;
  gap:10px;
  align-items:center;
  font-size: 13px;
}

.nfi-breadcrumbs__link {
  color: var(--nfi-orange);
  font-weight: 700;
  text-decoration:none;
}

.nfi-breadcrumbs__link:hover {
  text-decoration: underline;
}

/* ========================= 4) MOTORCOACH CATALOGS ========================= */ .nfi-catalogs {
  background:#fff;
  padding: 28px 0 40px;
}

.nfi-catalogs__inner {
  max-width: var(--nfi-max);
  margin: 0 auto;
  padding: 0 20px;
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 26px;
}

.nfi-card {
  display:block;
  text-decoration:none;
  color: inherit;
}

.nfi-card img {
  width:100%;
  height:auto;
  display:block;
  border-radius: 4px;
  transition: transform 160ms ease, filter 160ms ease;
}

.nfi-card h3 {
  margin: 14px 0 0;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 600;
}

.nfi-card:hover img, .nfi-card:focus img {
  transform: scale(1.03);
  filter: brightness(1.03);
}

/* ========================= 5) INFO SHEETS — SECTION BANNERS (Motorcoach uses “Drivetrain / Interior / Exterior / Electrical” bars) ========================= */ .nfi-is {
  background:#fff;
  padding: 10px 0 30px;
}

.nfi-is__inner {
  max-width: var(--nfi-max);
  margin: 0 auto;
  padding: 0 20px;
}

.nfi-is-section {
  padding: 18px 0 8px;
}

.nfi-is-banner {
  display:flex;
  align-items:baseline;
  gap:10px;
  background: var(--nfi-navy);
  color:#fff;
  padding: 10px 14px;
  margin: 16px 0 10px;
  border-left: 6px solid var(--nfi-orange);
}

.nfi-is-banner__label {
  font-weight: 800;
  font-size: 26px;
  line-height: 1;
}

.nfi-is-banner__sub {
  font-size: 18px;
  opacity: .9;
}

/* ========================= 6) INFO SHEETS — GRID CARDS (shared) ========================= */ .nfi-is-grid {
  display:grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 18px;
  align-items:start;
}

.nfi-is-grid--tight {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.nfi-is-card {
  text-decoration:none;
  color:#111;
  text-align:center;
}

.nfi-is-card img {
  width:100%;
  height:auto;
  display:block;
  background:#fff;
  border: 1px solid #cfcfcf;
  box-shadow: 0 3px 8px rgba(0,0,0,.15);
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.nfi-is-card:hover img, .nfi-is-card:focus img {
  transform: scale(1.05);
  /* zoom on hover */ box-shadow: 0 10px 20px rgba(0,0,0,.22);
}

.nfi-is-card__title {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.2;
}

/* Transit/Shuttle use centered “strip image” section header */ .nfi-is-bannerwrap {
  background:#fff;
  padding: 26px 0 6px;
}

.nfi-is-bannerwrap__inner {
  max-width: var(--nfi-max);
  margin: 0 auto;
  padding: 0 20px;
  display:flex;
  justify-content:center;
}

.nfi-is-stripimg {
  width: min(980px, 100%);
  height: auto;
  display:block;
}

/* ========================= 7) AFTERMARKET BAR (shared) ========================= */ .nfi-aftermarket {
  color:#fff;
  padding: 18px 0;
}

.nfi-aftermarket__inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
}

.nfi-aftermarket__left {
  font-weight: 700;
  font-size: 16px;
}

.nfi-aftermarket__cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 18px;
  border: 2px solid #fff;
  color:#fff;
  text-decoration:none;
  font-weight: 800;
  letter-spacing: .06em;
  font-size: 13px;
  text-transform: uppercase;
}

.nfi-aftermarket__cta:hover {
  filter: brightness(1.05);
}

/* ========================= 8) CONTACT US (shared base) ========================= */ .nfi-contact {
  background: linear-gradient(90deg, var(--nfi-dark2) 0%, var(--nfi-dark) 60%, var(--nfi-dark2) 100%);
  color:#fff;
  padding: 44px 0;
  border-top: 4px solid var(--nfi-orange);
}

.nfi-contact__inner {
  display:grid;
  grid-template-columns: 1.2fr 2fr 1.8fr;
  gap: 28px;
  align-items:center;
}

.nfi-contact__logo {
  min-height: 80px;
  background-repeat:no-repeat;
  background-position:left center;
  background-size:contain;
  /* Optional: set your logo URL here if you have it background-image:url("https://your-site.com/path/logo.png");
  */;
}

.nfi-contact__title {
  margin: 0 0 10px;
  font-size: 26px;
  font-weight: 800;
  color: #fff !important;
}

.nfi-contact__subtitle {
  font-size: 13px;
  opacity: .9;
  margin-bottom: 12px;
  font-weight: 600;
}

.nfi-contact__row {
  display:flex;
  gap: 14px;
  align-items: baseline;
  margin-top: 8px;
  font-size: 14px;
}

.nfi-contact__label {
  min-width: 70px;
  color: var(--nfi-orange);
  font-weight: 800;
}

.nfi-contact__value {
  color:#fff;
}

.nfi-contact__link {
  color: var(--nfi-orange);
  text-decoration:none;
}

/* Right column padding control (you asked for this) */ .nfi-contact__right {
  padding-top: 26px;
  padding-left: 24px;
}

/* ========================= 9) LIGHTBOX (CSS-only :target) ========================= */ .nfi-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.nfi-modal__backdrop {
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.78);
}

.nfi-modal__panel {
  position: relative;
  max-width: min(1000px, 92vw);
  max-height: 92vh;
  margin: 4vh auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 0 14px;
}

.nfi-modal__panel img {
  max-width: 100%;
  max-height: 88vh;
  background:#fff;
  border: 1px solid rgba(255,255,255,.25);
  box-shadow: 0 14px 40px rgba(0,0,0,.5);
}

.nfi-modal__close {
  position:absolute;
  top:-6px;
  right:10px;
  width:40px;
  height:40px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color:#fff;
  text-decoration:none;
  font-size: 28px;
  line-height: 38px;
  text-align:center;
}

/* ========================= 10) RESPONSIVE ========================= */ @media (max-width: 1200px) {
  .nfi-catalogs__inner{ grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nfi-is-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nfi-is-grid--tight {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

} @media (max-width: 768px) {
  .nfi-hero{ height: 185px;
}

.nfi-catalogs__inner {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nfi-is-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nfi-is-grid--tight {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nfi-aftermarket__inner {
  flex-direction: column;
  align-items: flex-start;
}

.nfi-contact__inner {
  grid-template-columns: 1fr;
}

.nfi-contact__right {
  padding-top: 0;
  padding-left: 0;
}

} @media (max-width: 480px) {
  .nfi-catalogs__inner{ grid-template-columns: 1fr;
}

.nfi-is-grid {
  grid-template-columns: 1fr;
}

.nfi-is-grid--tight {
  grid-template-columns: 1fr;
}

} /* ========================================================== HARD FIX: Shuttle + Transit IS layouts rendering as full-width (forces the correct grid + thumbnail sizing based on your HTML) ========================================================== */ /* 1) Force the containers used in your HTML to be grids */ .nfi-is__inner--sb, .nfi-is__inner--transit {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 22px 26px !important;
  align-items: start !important;
}

/* 2) Prevent cards from stretching oddly */ .nfi-is__inner--sb .nfi-is-card, .nfi-is__inner--transit .nfi-is-card {
  display: block !important;
  text-decoration: none;
  color: #111;
  text-align: center;
}

/* 3) Force thumbnails to a consistent size (no giant images) */ .nfi-is__inner--sb .nfi-is-card img, .nfi-is__inner--transit .nfi-is-card img {
  width: 100% !important;
  height: 160px !important;
  object-fit: cover !important;
  object-position: top center !important;
  display: block !important;
  border: 1px solid #cfcfcf;
  box-shadow: 0 3px 8px rgba(0,0,0,.15);
}

/* Hover zoom (keeps your spec) */ .nfi-is__inner--sb .nfi-is-card:hover img, .nfi-is__inner--transit .nfi-is-card:hover img {
  transform: scale(1.05);
  transition: transform 160ms ease, box-shadow 160ms ease;
  box-shadow: 0 10px 20px rgba(0,0,0,.22);
}

/* 4) Keep the strip header image from blowing out */ .nfi-is-stripimg {
  width: min(980px, 100%) !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}

/* 5) Responsive */ @media (max-width: 1100px) {
  .nfi-is__inner--sb, .nfi-is__inner--transit{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

} @media (max-width: 768px) {
  .nfi-is__inner--sb, .nfi-is__inner--transit{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

} @media (max-width: 480px) {
  .nfi-is__inner--sb, .nfi-is__inner--transit{ grid-template-columns: 1fr !important;
}

} /* ================================ Shuttle Bus Information Sheets Page ID: 906 ================================ */ body.page-id-906 .generate-page-header, body.page-id-906 .page-hero, body.page-id-906 .gb-container.is-page-header, body.page-id-906 .entry-header, body.page-id-906 header.nfi-hero, body.page-id-906 .nfi-hero {
  background: none !important;
  background-image: none !important;
  background-size: cover !important;
  background-position: center 8% !important;
  background-repeat: no-repeat !important;
  position: relative !important;
}

/* Overlay — Shuttle uses neutral dark */ body.page-id-906 .generate-page-header::before, body.page-id-906 .page-hero::before, body.page-id-906 .gb-container.is-page-header::before, body.page-id-906 .entry-header::before, body.page-id-906 header.nfi-hero::before, body.page-id-906 .nfi-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0,0,0,.45) !important;
  pointer-events: none !important;
}

/* Overlay — Transit uses orange brand overlay */ body.page-id-927 .generate-page-header::before, body.page-id-927 .page-hero::before, body.page-id-927 .gb-container.is-page-header::before, body.page-id-927 .entry-header::before, body.page-id-927 header.nfi-hero::before, body.page-id-927 .nfi-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(207,93,22,.62) !important;
  pointer-events: none !important;
}

/* ================================ NFI Motorcoach — Parts Lists ================================ */ :root {
  --nfi-orange:#f05a28;
  --nfi-blue:#003594;
  --nfi-navy:#0f2f4a;
  --nfi-dark:#1f1f1f;
  --nfi-dark2:#262626;
  --nfi-max:1200px;
}

.nfi-hero, .nfi-introbar, .nfi-breadcrumbs, .nfi-pl, .nfi-aftermarket, .nfi-contact {
  box-sizing:border-box;
}

/* HERO */ .nfi-hero {
  position:relative;
  height:170px;
  overflow:hidden;
  background-size:cover;
  background-position:center 8%;
  background-repeat:no-repeat;
  display:flex;
  align-items:center;
  justify-content:center;
}

.nfi-hero__overlay {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
  z-index:1;
}

.nfi-hero__underline {
  width:72px;
  height:3px;
  background:#fff;
  margin:10px auto 0;
  opacity:.9;
}

/* INTRO BAR */ .nfi-introbar {
  padding:22px 0;
  color:#fff;
}

.nfi-introbar--blue {
  background:var(--nfi-blue);
}

.nfi-introbar__inner {
  max-width:980px;
  margin:0 auto;
  padding:0 20px;
  font-size:18px;
  font-weight:700;
  line-height:1.45;
}

/* BREADCRUMBS */ .nfi-breadcrumbs {
  background:#fff;
}

.nfi-breadcrumbs__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  gap:10px;
  align-items:center;
  font-size:13px;
}

.nfi-breadcrumbs__link {
  color:var(--nfi-orange);
  font-weight:700;
  text-decoration:none;
}

.nfi-breadcrumbs__link:hover {
  text-decoration:underline;
}

.nfi-breadcrumbs__sep, .nfi-breadcrumbs__current {
  color:#333;
}

/* PAGE WRAP */ .nfi-pl {
  background:#fff;
  padding:10px 0 34px;
}

.nfi-pl__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:0 20px;
}

/* YEAR BAR (like screenshot) */ .nfi-pl-year {
  padding:18px 0 8px;
}

.nfi-pl-year__bar {
  display:flex;
  align-items:baseline;
  gap:10px;
  background:var(--nfi-navy);
  color:#fff;
  padding:10px 14px;
  margin:10px 0 14px;
  border-left:6px solid var(--nfi-orange);
}

.nfi-pl-year__year {
  font-weight:900;
  font-size:28px;
  line-height:1;
}

.nfi-pl-year__label {
  font-size:18px;
  opacity:.9;
}

/* GRID */ .nfi-pl-grid {
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:18px;
  align-items:start;
  margin-bottom:8px;
}

.nfi-pl-card {
  text-decoration:none;
  color:#111;
  text-align:center;
  display:block;
}

.nfi-pl-card img {
  width:100%;
  height:150px;
  object-fit:cover;
  object-position:top center;
  display:block;
  border:1px solid #cfcfcf;
  box-shadow:0 3px 8px rgba(0,0,0,.15);
  transition:transform 160ms ease, box-shadow 160ms ease;
}

.nfi-pl-card:hover img, .nfi-pl-card:focus img {
  transform:scale(1.05);
  box-shadow:0 10px 20px rgba(0,0,0,.22);
}

.nfi-pl-card__title {
  margin-top:10px;
  font-size:13px;
  line-height:1.2;
}

/* AFTERMARKET BAR */ .nfi-aftermarket {
  color:#fff;
  padding:18px 0;
}

.nfi-aftermarket--blue {
  background:var(--nfi-blue);
}

.nfi-aftermarket__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.nfi-aftermarket__left {
  font-weight:700;
  font-size:16px;
}

.nfi-aftermarket__cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  border:2px solid #fff;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  letter-spacing:.06em;
  font-size:13px;
  text-transform:uppercase;
}

/* CONTACT US */ .nfi-contact {
  background:linear-gradient(90deg, var(--nfi-dark2) 0%, var(--nfi-dark) 60%, var(--nfi-dark2) 100%);
  color:#fff;
  padding:44px 0;
  border-top:4px solid var(--nfi-orange);
}

.nfi-contact__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:1.2fr 2fr 1.8fr;
  gap:28px;
  align-items:center;
}

.nfi-contact__logo {
  min-height:80px;
  background-repeat:no-repeat;
  background-position:left center;
  background-size:contain;
}

.nfi-contact__title {
  margin:0 0 10px;
  font-size:26px;
  font-weight:800;
  color:#fff !important;
}

.nfi-contact__subtitle {
  font-size:13px;
  opacity:.9;
  margin-bottom:12px;
  font-weight:600;
}

.nfi-contact__label {
  min-width:70px;
  color:var(--nfi-orange);
  font-weight:800;
}

.nfi-contact__link {
  color:var(--nfi-orange);
  text-decoration:none;
}

.nfi-contact__right {
  padding-top:26px;
  padding-left:24px;
}

/* LIGHTBOX (CSS-only :target) */ .nfi-modal {
  position:fixed;
  inset:0;
  display:none;
  z-index:9999;
}

.nfi-modal:target {
  display:block;
}

.nfi-modal__backdrop {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
}

.nfi-modal__panel {
  position:relative;
  max-width:min(1100px, 92vw);
  max-height:92vh;
  margin:4vh auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
}

.nfi-modal__panel img {
  max-width:100%;
  max-height:88vh;
  background:#fff;
  border:1px solid rgba(255,255,255,.25);
  box-shadow:0 14px 40px rgba(0,0,0,.5);
}

.nfi-modal__close {
  position:absolute;
  top:-6px;
  right:10px;
  width:40px;
  height:40px;
  border-radius:999px;
  background:rgba(0,0,0,.55);
  color:#fff;
  text-decoration:none;
  font-size:28px;
  line-height:38px;
  text-align:center;
}

/* RESPONSIVE */ @media (max-width:1200px) {
  .nfi-pl-grid{ grid-template-columns:repeat(4, minmax(0, 1fr));
}

} @media (max-width:768px) {
  .nfi-hero{ height:185px;
}

.nfi-pl-grid {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.nfi-contact__right {
  padding-top:0;
  padding-left:0;
}

} @media (max-width:480px) {
  .nfi-pl-grid{ grid-template-columns:1fr;
}

} /* ================================ NFI Catalog Page (Fresh Build) Motorcoach Parts (Landing / Resources) ================================ */ :root {
  --nfi-orange:#f05a28;
  --nfi-blue:#003594;
  --nfi-dark:#1f1f1f;
  --nfi-dark2:#262626;
  --nfi-max:1200px;
}

/* HERO */ .nfi-hero {
  position:relative;
  background-size:cover;
  background-position:center 10%;
  background-repeat:no-repeat;
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.nfi-hero__overlay {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.42);
}

.nfi-hero__inner {
  position:relative;
  z-index:2;
  width:100%;
  max-width:var(--nfi-max);
  padding:0 20px;
  text-align:center;
}

.nfi-hero__crumbs {
  margin-top:10px;
  font-size:12px;
  display:flex;
  justify-content:center;
  gap:8px;
  color:#fff;
  opacity:.9;
}

.nfi-crumb__link {
  color:var(--nfi-orange);
  text-decoration:none;
  font-weight:700;
}

.nfi-introbar__inner {
  max-width:980px;
  margin:0 auto;
  padding:18px 20px;
  font-size:18px;
  font-weight:800;
  line-height:1.45;
}

/* MAIN WRAP */ .nfi-mc {
  background:#fff;
  padding:34px 0 10px;
}

.nfi-mc__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:0 20px;
}

/* Section title */ .nfi-section-title {
  margin:0 0 18px;
  font-size:22px;
  font-weight:800;
  color:#111;
}

/* FEATURE GRID */ .nfi-feature-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
  margin-bottom:34px;
}

.nfi-feature {
  position:relative;
  display:block;
  text-decoration:none;
  border:1px solid #e6e6e6;
  background:#fff;
  overflow:hidden;
}

.nfi-feature__img {
  width:100%;
  height:auto;
  display:block;
  transition:transform 160ms ease, filter 160ms ease;
}

.nfi-feature:hover .nfi-feature__img {
  transform:scale(1.02);
  filter:contrast(1.02);
}

.nfi-feature--wide {
  grid-column:1 / -1;
}

.nfi-feature__tag {
  position:absolute;
  right:14px;
  bottom:14px;
  background:rgba(0,0,0,.55);
  color:#fff;
  padding:8px 10px;
  font-weight:800;
  font-size:12px;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* INFO BLOCKS */ .nfi-info-block {
  padding:18px 0 0;
  margin-top:18px;
  border-top:1px solid #e8e8e8;
}

.nfi-info-block__title {
  margin:0;
  font-size:18px;
  font-weight:800;
  color:#111;
}

.nfi-info-block__rule {
  width:34px;
  height:2px;
  background:var(--nfi-orange);
  margin:10px 0 12px;
}

.nfi-info-block__subhead {
  margin:0 0 10px;
  font-weight:800;
  color:#333;
}

.nfi-info-block p {
  margin:0 0 12px;
  max-width:980px;
  line-height:1.6;
  color:#333;
}

.nfi-link {
  color:var(--nfi-orange);
  font-weight:700;
  text-decoration:none;
}

.nfi-link:hover {
  text-decoration:underline;
}

/* AFTERMARKET BAR */ .nfi-aftermarket--blue {
  background:var(--nfi-blue);
  color:#fff;
}

.nfi-aftermarket__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:18px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.nfi-aftermarket__left {
  font-weight:800;
}

.nfi-aftermarket__cta {
  border:2px solid #fff;
  padding:10px 18px;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  letter-spacing:.06em;
  font-size:13px;
  text-transform:uppercase;
}

.nfi-aftermarket__cta:hover {
  filter:brightness(1.05);
}

/* CONTACT FOOTER */ .nfi-contact {
  background:linear-gradient(90deg, var(--nfi-dark2), var(--nfi-dark));
  color:#fff;
  padding:44px 0;
}

.nfi-contact__title {
  margin:0 0 10px;
  color:#fff;
  font-size:24px;
  font-weight:900;
}

/* padding controls for Email/Web column so you can tweak alignment */ .nfi-contact__row--pad {
  padding-left:18px;
}

/* Responsive */ @media (max-width: 900px) {
  .nfi-contact__inner{ grid-template-columns:1fr;
}

} @media (max-width: 768px) {
  .nfi-feature-grid{ grid-template-columns:1fr;
}

.nfi-feature--wide {
  grid-column:auto;
}

} /* ============================ Mobile logo swap (GeneratePress) ============================ */ @media (max-width: 768px) {
  /* Try the common GP logo image selectors */ .site-logo img, .site-branding .site-logo img, .site-branding .header-image { content: url("https://www.nfi.parts/wp-content/uploads/2025/12/cropped-cropped-logo-mci-footer.gif") !important;
  width: auto !important;
  height: 44px !important;
  /* adjust: 36–56px */ max-height: 44px !important;
}

/* If GP is using a width constraint somewhere */ .site-logo, .site-branding .site-logo {
  display: flex !important;
  align-items: center !important;
}

} /* ================================ NFI Blog Page (Fresh Build) Includes: HERO + Intro + Feed + Sidebar + Blue Bar + Contact Us ================================ */ :root {
  --nfi-orange:#f05a28;
  --nfi-blue:#003594;
  --nfi-dark:#1f1f1f;
  --nfi-dark2:#262626;
  --nfi-max:1200px;
}

/* HERO */ .nfi-hero--blog {
  position:relative;
  min-height:320px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.nfi-hero--blog .nfi-hero__bg {
  position:absolute;
  inset:0;
  background-image:url("https://www.nfi.parts/wp-content/uploads/2025/12/Blog.png");
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
  transform:scale(1.02);
}

.nfi-hero--blog .nfi-hero__overlay {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);
}

.nfi-hero--blog .nfi-hero__inner {
  position:relative;
  z-index:2;
  width:100%;
  max-width:var(--nfi-max);
  padding:0 20px;
  text-align:center;
}

.nfi-hero__underline {
  width:64px;
  height:3px;
  background:var(--nfi-orange);
  margin:10px auto 0;
}

.nfi-hero__crumbs {
  margin-top:10px;
  font-size:12px;
  display:flex;
  justify-content:center;
  gap:8px;
  color:#fff;
  opacity:.92;
}

.nfi-crumb__link {
  color:var(--nfi-orange);
  text-decoration:none;
  font-weight:800;
}

.nfi-crumb__link:hover {
  text-decoration:underline;
}

.nfi-crumb__sep {
  opacity:.8;
}

.nfi-crumb__current {
  color:#fff;
}

/* INTRO BAR */ .nfi-introbar--blue {
  background:var(--nfi-blue);
  color:#fff;
}

.nfi-introbar__inner {
  max-width:980px;
  margin:0 auto;
  padding:18px 20px;
  font-size:18px;
  font-weight:900;
  line-height:1.45;
}

/* LAYOUT */ .nfi-blog {
  background:#fff;
  padding:34px 0 60px;
}

.nfi-blog__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 320px;
  gap:28px;
  align-items:start;
}

/* POST CARDS */ .nfi-post {
  display:grid;
  grid-template-columns:240px minmax(0, 1fr);
  gap:18px;
  padding:16px;
  border:1px solid #e6e6e6;
  background:#fff;
  margin-bottom:18px;
}

.nfi-post__thumb {
  display:block;
  overflow:hidden;
  border:1px solid #e8e8e8;
  background:#f7f7f7;
}

.nfi-post__thumb img {
  width:100%;
  height:160px;
  object-fit:cover;
  display:block;
  transition:transform 160ms ease, filter 160ms ease;
}

.nfi-post__thumb:hover img {
  transform:scale(1.03);
  filter:contrast(1.03);
}

.nfi-post__title {
  margin:0 0 6px;
  font-size:20px;
  font-weight:900;
  line-height:1.25;
}

.nfi-post__title a {
  color:#111;
  text-decoration:none;
}

.nfi-post__title a:hover {
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}

.nfi-post__meta {
  font-size:12px;
  color:#666;
  margin-bottom:10px;
  display:flex;
  gap:8px;
  align-items:center;
}

.nfi-dot {
  opacity:.7;
}

.nfi-post__excerpt {
  margin:0 0 12px;
  color:#333;
  line-height:1.6;
}

.nfi-post__cta {
  display:inline-block;
  font-weight:900;
  color:var(--nfi-blue);
  text-decoration:none;
}

.nfi-post__cta:hover {
  text-decoration:underline;
}

/* SIDEBAR */ .nfi-sidecard {
  border:1px solid #e6e6e6;
  padding:16px;
  background:#fff;
  margin-bottom:18px;
}

.nfi-sidecard__title {
  margin:0;
  font-size:16px;
  font-weight:900;
  color:#111;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.nfi-sidecard__rule {
  width:34px;
  height:2px;
  background:var(--nfi-orange);
  margin:10px 0 12px;
}

.nfi-archive {
  list-style:none;
  padding:0;
  margin:0;
}

.nfi-archive li {
  border-top:1px solid #efefef;
}

.nfi-archive li:first-child {
  border-top:0;
}

.nfi-archive a {
  display:block;
  padding:10px 0;
  color:#111;
  text-decoration:none;
  font-weight:700;
}

.nfi-archive a:hover {
  color:var(--nfi-blue);
  text-decoration:underline;
}

/* AFTERMARKET BAR (Blue bar) */ .nfi-aftermarket--blue {
  background:var(--nfi-blue);
  color:#fff;
}

.nfi-aftermarket__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:22px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.nfi-aftermarket__left {
  font-weight:900;
  color:#fff;
}

.nfi-aftermarket__cta {
  border:2px solid #fff;
  padding:10px 18px;
  background:transparent;
  color:var(--nfi-orange);
  text-decoration:none;
  font-weight:900;
  letter-spacing:.06em;
  font-size:13px;
  text-transform:uppercase;
}

.nfi-aftermarket__cta:hover {
  filter:brightness(1.08);
}

/* CONTACT US FOOTER */ .nfi-contact {
  background:linear-gradient(90deg, var(--nfi-dark2), var(--nfi-dark));
  color:#fff;
  padding:46px 0;
  border-top:4px solid var(--nfi-orange);
}

.nfi-contact__inner {
  max-width:var(--nfi-max);
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:1.2fr 2fr 1.8fr;
  gap:28px;
  align-items:start;
}

.nfi-contact__brandmark {
  min-height:70px;
  background-repeat:no-repeat;
  background-position:left top;
  background-size:contain;
}

.nfi-contact__title {
  margin:0 0 10px;
  color:#fff;
  font-size:26px;
  font-weight:900;
}

.nfi-contact__subtitle {
  font-size:13px;
  opacity:.9;
  margin-bottom:12px;
  font-weight:700;
}

.nfi-contact__row {
  display:flex;
  gap:14px;
  align-items:baseline;
  margin-top:8px;
  font-size:14px;
}

.nfi-contact__label {
  min-width:70px;
  color:var(--nfi-orange);
  font-weight:900;
}

.nfi-contact__link {
  color:var(--nfi-orange);
  text-decoration:none;
  font-weight:800;
}

/* padding control for Email/Web column (so you can tune alignment) */ .nfi-contact__row--pad {
  padding-left:18px;
}

/* RESPONSIVE */ @media (max-width: 980px) {
  .nfi-blog__inner{ grid-template-columns:1fr;
}

.nfi-contact__inner {
  grid-template-columns:1fr;
}

.nfi-contact__row--pad {
  padding-left:0;
}

} @media (max-width: 720px) {
  .nfi-post{ grid-template-columns:1fr;
}

.nfi-post__thumb img {
  height:200px;
}

.nfi-hero--blog {
  min-height:240px;
}

.nfi-aftermarket__inner {
  flex-direction:column;
  align-items:flex-start;
}

} /* ================================ NFI Blog Header (Image-Based) ================================ */ .nfi-blog-hero {
  position: relative;
  width: 100%;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  /* Background image */ background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)), url("https://www.nfi.parts/wp-content/uploads/2025/12/about-main.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  padding: 80px 20px;
}

.nfi-blog-hero h1 {
  color: #ffffff;
  font-size: 38px;
  font-weight: 700;
  margin-bottom: 12px;
  letter-spacing: 0.5px;
}

.nfi-blog-hero p {
  color: #ffffff;
  max-width: 900px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.6;
}

/* ================================ Mobile Adjustments ================================ */ @media (max-width: 768px) {
  .nfi-blog-hero { min-height: 240px;
  padding: 60px 16px;
}

.nfi-blog-hero h1 {
  font-size: 28px;
}

} /* ================================ Blog Hero – Motorcoach Style ================================ */ .nfi-blog-hero {
  position: relative;
  text-align: center;
  padding: 90px 20px 70px;
}

/* Title */ .nfi-blog-hero h1 {
  color: #ffffff;
  font-size: 42px;
  font-weight: 700;
  letter-spacing: 2px;
  margin-bottom: 14px;
  text-transform: uppercase;
}

/* Orange accent line under title */ .nfi-blog-hero h1::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: #f36c21;
  /* NFI orange */ margin: 14px auto 0;
}

/* Subtext */ .nfi-blog-hero p {
  margin-top: 26px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  color: #ffffff;
  font-size: 18px;
  line-height: 1.6;
}

/* ================================ Mobile Adjustments ================================ */ @media (max-width: 768px) {
  .nfi-blog-hero { padding: 70px 16px 55px;
}

.nfi-blog-hero h1 {
  font-size: 30px;
  letter-spacing: 1.2px;
}

.nfi-blog-hero p {
  font-size: 16px;
}

} /* ========================= Shuttle Bus Intro Bar Fix ========================= */ .nfi-introbar--green {
  background-color: #2f3e2e;
  /* Shuttle Bus green */;
}

.nfi-introbar--green .nfi-introbar__inner {
  color: #ffffff;
}

/* Optional: tighten spacing to match card grid visually */ .nfi-introbar--green {
  padding-top: 24px;
  padding-bottom: 24px;
}

/* ========================================================= Site-wide Orange Slash Under Titles (no duplicates) ========================================================= */ /* 1) Remove any existing underline element your custom hero uses */ .nfi-hero__underline {
  display: none !important;
}

/* 2) Add a single underline via ::after ONLY on the hero title */ .nfi-hero__title {
  position: relative;
  display: inline-block;
  padding-bottom: 14px;
}

.nfi-hero__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 42px;
  height: 3px;
  background: #f26a21;
  transform: translateX(-50%);
}

/* 3) Add underline to non-hero page/post titles ONLY if one doesn't already exist (We avoid duplicates by NOT targeting all headings broadly) */ .page-title, .entry-title, .wp-block-post-title {
  position: relative;
  display: inline-block;
  padding-bottom: 14px;
}

/* If your theme already adds an underline via border-bottom, disable it */ .page-title, .entry-title, .wp-block-post-title {
  border-bottom: none !important;
  background-image: none !important;
}

/* Add our underline */ .page-title::after, .entry-title::after, .wp-block-post-title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 42px;
  height: 3px;
  background: #f26a21;
  transform: translateX(-50%);
}

/* 4) Prevent accidental double-underline if a title already contains a child underline element */ .page-title .nfi-hero__underline, .entry-title .nfi-hero__underline, .wp-block-post-title .nfi-hero__underline {
  display: none !important;
}

/* ========================================================= GLOBAL HEADING SYSTEM — match Shuttle Bus Parts hero ========================================================= */ /* Brand-approved headline stack */ :root {
  --nfi-headline-font: "Roboto","Univers","Arial","Helvetica",sans-serif;
  /* Match Shuttle Bus Parts hero sizing/feel */ --nfi-hero-size: clamp(22px, 2.6vw, 34px);
  --nfi-hero-weight: 800;
  --nfi-hero-track: .05em;
  /* Content hierarchy (make sense across the site) */ --nfi-h1-size: clamp(28px, 3vw, 40px);
  --nfi-h2-size: clamp(20px, 2.2vw, 28px);
}

/* --------------------------------------------------------- 1) HERO / BANNER TITLES (H1 + H2 used as “page headers”) Targets: - Your custom hero: .nfi-hero__title - WP/GeneratePress/GB headings commonly used in cover/hero blocks --------------------------------------------------------- */ .nfi-hero__title, .wp-block-cover .wp-block-cover__inner-container > h1, .wp-block-cover .wp-block-cover__inner-container > h2, .gb-container .gb-headline, .gb-container .gb-headline-text, .gb-headline, .gb-headline-text, .page-header h1, .page-header h2 {
  font-family: var(--nfi-headline-font) !important;
  text-transform: uppercase !important;
  font-weight: var(--nfi-hero-weight) !important;
  letter-spacing: var(--nfi-hero-track) !important;
  font-size: var(--nfi-hero-size) !important;
  line-height: 1.1 !important;
}

/* If any hero titles are getting forced to “normal” weight by theme */ .wp-block-cover .wp-block-cover__inner-container > h1, .wp-block-cover .wp-block-cover__inner-container > h2 {
  margin: 0 !important;
}

/* --------------------------------------------------------- 2) ORANGE SLASH UNDERLINE (single instance, no duplicates) - Hide any existing underline elements - Add underline via ::after only on the hero/banner title nodes --------------------------------------------------------- */ /* Hide any old underline element so we never double up */ .nfi-hero__underline {
  display: none !important;
}

/* Apply underline to the same hero/banner selectors as above */ .nfi-hero__title, .wp-block-cover .wp-block-cover__inner-container > h1, .wp-block-cover .wp-block-cover__inner-container > h2, .gb-container .gb-headline, .gb-container .gb-headline-text, .gb-headline, .gb-headline-text, .page-header h1, .page-header h2 {
  position: relative !important;
  display: inline-block !important;
  padding-bottom: 14px !important;
}

.nfi-hero__title::after, .wp-block-cover .wp-block-cover__inner-container > h1::after, .wp-block-cover .wp-block-cover__inner-container > h2::after, .gb-container .gb-headline::after, .gb-container .gb-headline-text::after, .gb-headline::after, .gb-headline-text::after, .page-header h1::after, .page-header h2::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  bottom: 0 !important;
  width: 42px !important;
  height: 3px !important;
  background: #f26a21 !important;
  transform: translateX(-50%) !important;
}

/* --------------------------------------------------------- 3) CONTENT H1/H2 (inside page/post content) Keeps hierarchy consistent while using the same font family. --------------------------------------------------------- */ .entry-content h1, .wp-block-post-content h1 {
  font-family: var(--nfi-headline-font) !important;
  font-size: var(--nfi-h1-size) !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1.15 !important;
}

.entry-content h2, .wp-block-post-content h2 {
  font-family: var(--nfi-headline-font) !important;
  font-size: var(--nfi-h2-size) !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1.2 !important;
}

/* Footer logo sizing */ .nfi-contact__logo {
  display:flex;
  align-items:center;
  min-width:220px;
}

.nfi-contact__logo-img {
  display:block;
  max-width:220px;
  width:100%;
  height:auto;
}

@media (max-width:900px) {
  .nfi-contact__logo{ min-width:0;
  justify-content:center;
  margin-bottom:12px;
}

.nfi-contact__logo-img {
  max-width:200px;
}

} /* Contact Us – pad Email/Web column */ .nfi-contact__right {
  padding-top: 65px;
  /* primary fix */;
}

/* Optional: tighten vertical rhythm */ .nfi-contact__right .nfi-contact__row {
  margin-bottom: 6px;
}

.nfi-slide-caption {
  max-width: 560px;
}

.nfi-slide-caption h2 {
  margin: 0 0 10px;
  font-size: 44px;
  line-height: 1.05;
  font-weight: 800;
}

.nfi-slide-caption p {
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 1.5;
}

.nfi-slide-btn {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 700;
}

.nfi-dot {
  color: #f26a21;
}

/* matches your orange accent */ /* Hover zoom + darken overlay (apply to your tile wrapper OR the link) */ .nfi-hover-tile, .nfi-hover-tile a {
  position: relative;
  display: block;
  overflow: hidden;
}

/* Image zoom */ .nfi-hover-tile img {
  display: block;
  width: 100%;
  height: auto;
  transform: scale(1);
  transition: transform .35s ease, filter .35s ease;
}

/* Darken overlay */ .nfi-hover-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0);
  transition: background .35s ease;
  pointer-events: none;
}

/* Hover state */ .nfi-hover-tile:hover img {
  transform: scale(1.06);
}

.nfi-hover-tile:hover::after {
  background: rgba(0,0,0,.35);
}

/* ========================================================= FIX: Sub-header (Intro Bar) background color by page type ========================================================= */ /* Base styling (safety net) */ .nfi-introbar__inner {
  color: #ffffff;
  padding: 1.5rem 2rem;
}

/* TRANSIT – ORANGE */ .nfi-introbar--orange {
  background-color: #d9651a;
  /* NFI transit orange */;
}

/* MOTORCOACH – BLUE */ .nfi-introbar--blue {
  background-color: #0f2a44;
  /* NFI motorcoach blue */;
}

/* SHUTTLE – GREEN */ .nfi-introbar--green {
  background-color: #1f3d2b;
  /* NFI shuttle green */;
}

/* Ensure text stays readable */ .nfi-introbar--orange .nfi-introbar__inner, .nfi-introbar--blue .nfi-introbar__inner, .nfi-introbar--green .nfi-introbar__inner {
  color: #ffffff;
}

.nfi-introbar {
  margin-top: -1px;
  /* removes hairline gap under hero */;
}

/* ========================================================= FIX: Information Sheets sub-header background (Motorcoach / Transit / Shuttle) ========================================================= */ /* Base: Information Sheets intro text */ .nfi-is-intro, .nfi-is__intro, .nfi-is + .nfi-introbar, .nfi-hero + .nfi-introbar, .nfi-hero + section .nfi-introbar__inner {
  background-color: transparent;
}

/* MOTORCOACH – BLUE */ .nfi-hero--motorcoach + .nfi-introbar, .nfi-hero--motorcoach + section {
  background-color: #0f2a44;
}

.nfi-hero--motorcoach + .nfi-introbar .nfi-introbar__inner, .nfi-hero--motorcoach + section p {
  color: #0f2a44;
}

/* TRANSIT – ORANGE */ .nfi-hero--transit + .nfi-introbar, .nfi-hero--transit + section {
  background-color: #d9651a;
}

.nfi-hero--transit + .nfi-introbar .nfi-introbar__inner, .nfi-hero--transit + section p {
  color: #d9651a;
}

/* SHUTTLE – GREEN */ .nfi-hero--shuttle + .nfi-introbar, .nfi-hero--shuttle + section {
  background-color: #1f3d2b;
}

.nfi-hero--shuttle + .nfi-introbar .nfi-introbar__inner, .nfi-hero--shuttle + section p {
  color: #1f3d2b;
}

/* Padding for readability */ .nfi-hero--motorcoach + section, .nfi-hero--transit + section, .nfi-hero--shuttle + section {
  padding: 1.5rem 2rem;
}

/* PARTS LISTS – French (Motorcoach) intro text background */ .nfi-pl .nfi-introbar--blue .nfi-introbar__inner {
  background-color: #0b1f3b;
  /* match motorcoach header blue */ color: #ffffff;
  padding: 1.5rem 2rem;
  display: inline-block;
}

/* ========================= SITEWIDE TYPOGRAPHY RESET (GeneratePress + Gutenberg + common blocks) ========================= */ /* 1) Set your base font stack */ :root {
  --nfi-font: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

/* 2) Apply everywhere (prevents “random” block fonts) */ html, body, .site, .site-content, .content-area, .inside-article, .entry-content, p, li, dt, dd, blockquote, cite, figcaption, label, input, textarea, select, button, table, th, td, .wp-block, [class*="wp-block-"], .gb-container, .gb-grid-wrapper, [class*="gb-"], .elementor, .elementor-widget, .elementor-widget-container {
  font-family: var(--nfi-font) !important;
}

/* 3) Headings (H1–H6 + common heading wrappers) */ h1, h2, h3, h4, h5, h6, .wp-block-heading, .gb-headline, .gb-headline-text, .entry-title, .site-title, .site-description {
  font-family: var(--nfi-font) !important;
}

/* 4) Navigation + dropdowns + mobile menu */ .main-navigation, .main-navigation .main-nav, .main-navigation .main-nav ul, .main-navigation .main-nav ul li, .main-navigation .main-nav ul li a, .main-navigation ul ul, .menu-toggle, .dropdown-menu-toggle {
  font-family: var(--nfi-font) !important;
}

/* 5) Buttons / links that often inherit odd fonts */ button, input[type="button"], input[type="submit"], .wp-block-button__link, a.button, .button {
  font-family: var(--nfi-font) !important;
}

/* 6) Forms + placeholders */ input, textarea, select {
  font-family: var(--nfi-font) !important;
}

input::placeholder, textarea::placeholder {
  font-family: var(--nfi-font) !important;
}

/* 7) Ensure icon fonts don’t get overridden */ i, .fa, [class*="icon"], svg {
  font-family: inherit;
}

/* Optional: if any Custom HTML blocks hard-code fonts inline, this helps override */ [style*="font-family"] {
  font-family: var(--nfi-font) !important;
}

/* === GLOBAL DARK NAV + HEADER === */ .site-header, .main-navigation, .inside-header {
  background-color: #0f0f0f;
}

/* Nav links */ .main-navigation .main-nav ul li a {
  color: #ffffff;
}

/* Hover + current menu item */ .main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current-menu-parent > a {
  color: #ff6a00;
  /* NFI orange */;
}

/* Dropdown background */ .main-navigation ul ul {
  background-color: #151515;
}

/* Dropdown links */ .main-navigation ul ul li a {
  color: #ffffff;
}

/* Dropdown hover */ .main-navigation ul ul li:hover > a {
  background-color: #1f1f1f;
  color: #ff6a00;
}

/* Icon buttons (social/search) */ .header-widget a, .header-widget .icon {
  color: #ffffff;
}

.header-widget a:hover {
  color: #ff6a00;
}

/* Mobile menu button */ .menu-toggle {
  color: #ffffff;
}

.menu-toggle:hover {
  color: #ff6a00;
}

/* Mobile menu background */ .main-navigation.toggled .main-nav {
  background-color: #0f0f0f;
}

/* === FORCE DARK NAV BACKGROUNDS (GP specific wrappers) === */ .site-header, .inside-header, .main-navigation, .main-navigation .inside-navigation, .main-navigation .main-nav, .main-navigation .main-nav > ul, .main-navigation ul {
  background: #0f0f0f !important;
}

/* Ensure the nav container itself doesn't inherit white */ .main-navigation .inside-navigation {
  background-color: #0f0f0f !important;
}

/* === NAV LINK COLORS === */ .main-navigation .main-nav ul li a, .main-navigation .menu-toggle, .main-navigation .menu-bar-items a {
  color: #ffffff !important;
}

/* Hover / active */ .main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current-menu-parent > a {
  color: #ff6a00 !important;
}

/* === DROPDOWNS === */ .main-navigation ul ul {
  background: #151515 !important;
}

.main-navigation ul ul li a {
  color: #ffffff !important;
}

.main-navigation ul ul li:hover > a {
  background: #1f1f1f !important;
  color: #ff6a00 !important;
}

/* === MOBILE MENU PANEL === */ .main-navigation.toggled .main-nav, .main-navigation.toggled .inside-navigation {
  background: #0f0f0f !important;
}

/* === FORCE FULL-WHITE NAV TEXT (NO OPACITY) === */ .main-navigation .main-nav ul li a, .main-navigation .menu-bar-items a, .main-navigation .menu-toggle {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Ensure non-active items are NOT dimmed */ .main-navigation .main-nav ul li:not(.current-menu-item):not(.current-menu-parent) > a {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Language switcher + dropdowns */ .menu-item-language > a, .main-navigation ul ul li a {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Remove gradients / shadows that gray out text */ .site-header, .main-navigation {
  box-shadow: none !important;
  background-image: none !important;
}

/* ============================ QA OVERRIDE: DARK TOP BAR + NAV (ALWAYS) Paste at VERY END of CSS file ============================ */ :root {
  --nfi-dark: #0f0f0f;
  --nfi-dark-2: #151515;
  --nfi-white: #ffffff;
  --nfi-orange: #f58220;
}

/* ============================ FIX: NAV TEXT + SOCIAL ICONS (WHITE) Append at VERY END ============================ */ /* NAV text (covers GP spans + link wrappers) */ .main-navigation, .main-navigation * {
  color: #ffffff !important;
}

/* Keep hover/active orange */ .main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current_page_item > a, .main-navigation .main-nav ul li.current-menu-parent > a {
  color: #f58220 !important;
}

/* Ensure dropdown arrows + GP icon fonts are white */ .main-navigation .dropdown-menu-toggle, .main-navigation .dropdown-menu-toggle:before, .main-navigation .icon-menu-bars, .main-navigation .icon-search, .main-navigation .gp-icon {
  color: #ffffff !important;
}

/* ========================================================= NFI HEADER LOCK Top Bar (widget) + Main Navigation (GeneratePress) Dark mode always Put this block at the VERY END of the CSS file ========================================================= */ /* ---------- Variables (keep ONE :root total sitewide) ---------- */ :root {
  --nfi-orange:#f58220;
  --nfi-black:#111;
  --nfi-white:#fff;
  --nfi-shadow: 0 8px 22px rgba(0,0,0,.22);
}

/* HEADER LOCK – do not change nav colors unless redesigning header */ /* PRIVACY POLICY – constrain and pad content */ .page-id-3 .entry-content {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 4rem 2rem;
}

.page-id-3 .privacy-hero {
  max-width: none;
  padding: 6rem 2rem;
}

/* Paragraph spacing */ .page-id-3 .entry-content p {
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

/* Lists */ .page-id-3 .entry-content ul {
  margin: 1.5rem 0 2rem 1.5rem;
}

.page-id-3 .entry-content li {
  margin-bottom: 0.75rem;
}

/* Headings */ .page-id-3 .entry-content b {
  display: inline-block;
  margin-top: 2rem;
}

/* Table containment */ .page-id-3 .entry-content table {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  display: block;
  margin: 2rem 0;
}

@media (max-width: 768px) {
  .page-id-3 .entry-content { padding: 2.5rem 1.25rem;
}

} /* ===================================================== CANONICAL CTA BUTTON – ORDER ONLINE White default → Orange hover ===================================================== */ /* Base button style (applies to BOTH sections) */ .sb-cta-button, .mc-cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 30px;
  min-height: 44px;
  font-family: inherit;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  background-color: #ffffff;
  color: #f36f21;
  border: 2px solid #f36f21;
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Hover + focus = ORANGE */ .sb-cta-button:hover, .sb-cta-button:focus, .mc-cta-button:hover, .mc-cta-button:focus {
  background-color: #f36f21;
  color: #ffffff;
  border-color: #f36f21;
}

/* Remove any inherited section overrides */ .sb-cta-button, .mc-cta-button {
  box-shadow: none;
}

/* Optional: subtle press feedback */ .sb-cta-button:active, .mc-cta-button:active {
  transform: translateY(1px);
}

/* ===================================================== GLOBAL CTA HOVER NORMALIZATION Applies to: - Motorcoach Catalogs - Motorcoach Parts Lists - Motorcoach Information Sheets - Aftermarket bar CTA ===================================================== */ /* Base style */ .nfi-aftermarket__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 30px;
  min-height: 44px;
  font-family: inherit;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  background-color: transparent;
  color: #f36f21;
  border: 2px solid #ffffff;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Hover / focus = WHITE */ .nfi-aftermarket__cta:hover, .nfi-aftermarket__cta:focus {
  background-color: #ffffff;
  color: #f36f21;
  border-color: #ffffff;
}

/* =============================== NFI HERO — IMAGE-FIRST SYSTEM ================================ */ /* Hero container */ .nfi-hero {
  position: relative;
  width: 100%;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: #f58220;
  /* brand fallback */;
}

/* Image wrapper */ .nfi-hero__media {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

/* Image itself — NO CROPPING */ .nfi-hero__media img {
  width: 100%;
  height: 100%;
  max-width: 1400px;
  /* keeps composition sane */ object-fit: contain;
  /* CRITICAL */ object-position: center;
}

/* Text layer */ .nfi-hero__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 40px 20px;
}

.nfi-hero__title {
  color: #ffffff;
  font-size: 52px;
  letter-spacing: 0.04em;
  margin: 0;
}

/* Mobile */ @media (max-width: 768px) {
  .nfi-hero { min-height: 380px;
}

.nfi-hero__title {
  font-size: 34px;
}

} /* =============================== INTRO BAR — BLUE VARIANT FIX =============================== */ .nfi-introbar--blue {
  background-color: #0b2a4a !important;
  /* motorcoach blue */ color: #ffffff;
}

/* Supply Chain Solutions – item titles */ .tr-supply-item h5 {
  color: #ff7a00;
  /* NFI orange */;
}

.tr-supply-item h5 {
  color: #ff7a00;
  font-weight: 600;
  margin-bottom: 8px;
}

/* French homepage MetaSlider (ID 1327) – add left/right padding */ #metaslider-id-1327 .msHtmlOverlay, #metaslider-id-1327 .layer, #metaslider-id-1327 .ms_layer, #metaslider-id-1327 .ms-layer, #metaslider-id-1327 .caption-wrap {
  left: 100px !important;
  right: 60px !important;
  width: auto !important;
  max-width: calc(100% - 120px) !important;
  box-sizing: border-box;
}

/* Mobile adjustment */ @media (max-width: 768px) {
  #metaslider-id-1327 .msHtmlOverlay, #metaslider-id-1327 .layer, #metaslider-id-1327 .ms_layer, #metaslider-id-1327 .ms-layer, #metaslider-id-1327 .caption-wrap { left: 24px !important;
  right: 24px !important;
  max-width: calc(100% - 48px) !important;
}

} /* =============================== INTRO BAR – THEME COLORS =============================== */ /* Base intro bar reset */ .nfi-introbar {
  background: transparent;
  color: #ffffff;
}

/* MOTORCOACH */ .hero--motorcoach + .nfi-introbar {
  background-color: #0F2A44;
}

/* TRANSIT */ .hero--transit + .nfi-introbar {
  background-color: #C65A1E;
}

/* SHUTTLE */ .hero--shuttle + .nfi-introbar {
  background-color: #1F3A2B;
}

/* HARD KILL any hero gradients */ .nfi-hero::before, .nfi-hero::after, .nfi-hero__media::before, .nfi-hero__media::after {
  content: none !important;
  background: none !important;
}

/* =============================== HERO BACKGROUND — CATEGORY SAFE (Information Sheets & Parts) ================================ */ /* Base: no image forced */ .nfi-hero {
  background-image: none;
}

/* MOTORCOACH */ .nfi-hero.hero--motorcoach {
  background-color: #0F2A44;
  /* Motorcoach blue */;
}

/* TRANSIT */ .nfi-hero.hero--transit {
  background-color: #C65A1E;
  /* Transit orange */;
}

/* SHUTTLE */ .nfi-hero.hero--shuttle {
  background-color: #1F3A2B;
  /* Shuttle green */;
}

/* Engineering thumbnail layout */ .about-split--compact .about-inline {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

.about-split--compact .about-thumb {
  flex: 0 0 140px;
}

.about-split--compact .about-thumb img {
  width: 140px;
  height: auto;
  display: block;
  border-radius: 4px;
}

.about-split--compact .about-inline-content {
  flex: 1;
}

/* Mobile stacking */ @media (max-width: 768px) {
  .about-split--compact .about-inline { flex-direction: column;
}

.about-split--compact .about-thumb img {
  width: 120px;
}

} /* Constrain header to site width without breaking flex */ .site-header .inside-header {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 60px;
}

.site-logo img, .custom-logo {
  width: auto;
  height: auto;
  max-height: 48px;
  max-width: 100%;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .site-header .inside-header { padding: 10px 20px;
}

.site-branding {
  justify-content: center;
  width: 100%;
}

} /* Full-width header background fix for GeneratePress */ .site-header {
  position: relative;
  z-index: 10;
}

.site-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 100%;
  background-color: #0f0f0f;
  z-index: -1;
}

.menu-toggle {
  color: #f36f21;
}

.menu-toggle .gp-icon svg {
  fill: #f36f21;
}

.routing-content {
  max-width: 900px;
  margin: 0 auto;
}

.routing-content h2 {
  margin-top: 2rem;
}

.routing-links {
  list-style: none;
  padding-left: 0;
}

.routing-links li {
  margin-bottom: 0.5rem;
}

.routing-links a, .routing-link {
  color: #f26a21;
  text-decoration: none;
  font-weight: 500;
}

.routing-links a:hover, .routing-link:hover {
  text-decoration: underline;
}

.disabled-link {
  color: #999;
  cursor: not-allowed;
  pointer-events: none;
  text-decoration: none;
}

/* =============================== TRAINING PAGE (ABOUT-STYLE) =============================== */ .training-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* HERO */ .training-hero {
  background-size: cover;
  background-position: center;
  min-height: 360px;
  display: flex;
  align-items: center;
  position: relative;
}

.training-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.55);
}

.training-hero__inner {
  position: relative;
  width: 100%;
  text-align: center;
}

.training-hero h1 {
  color: #fff;
  font-size: 36px;
  letter-spacing: 4px;
}

/* INTRO */ .training-intro {
  padding: 96px 0;
}

.training-quote p {
  font-size: 20px;
  line-height: 1.6;
  margin-bottom: 48px;
}

.training-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.training-two-col p {
  line-height: 1.7;
}

/* OPTIONS */ .training-options {
  padding: 96px 0;
  background: #f7f7f7;
}

.training-h2 {
  font-size: 28px;
  margin-bottom: 48px;
}

.training-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.training-card {
  background: #fff;
  padding: 32px;
}

.training-card h3 {
  margin-bottom: 16px;
}

/* DETAIL SECTIONS */ .training-detail {
  padding: 96px 0;
}

.training-detail--alt {
  background: #f7f7f7;
}

.training-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

.training-image img {
  width: 100%;
  display: block;
}

.training-btn {
  display: inline-block;
  margin-top: 24px;
  padding: 12px 28px;
  background: #000;
  color: #fff;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* RESPONSIVE */ @media (max-width: 900px) {
  .training-two-col, .training-grid, .training-split { grid-template-columns: 1fr;
}

} /* ================================= TRAINING INTRO – ABOUT STYLE ================================= */ .training-intro--about {
  padding: 64px 0 80px;
  background: #ffffff;
}

.training-intro-callout {
  max-width: 1100px;
  margin: 0 auto;
  padding-left: 24px;
  border-left: 4px solid #f47920;
  /* NFI orange */;
}

.training-intro-callout p {
  font-size: 16px;
  line-height: 1.75;
  font-style: italic;
  color: #222;
  margin: 0;
}

/* ================================= TRAINING – TWO COLUMN TEXT FIX Matches About page spacing ================================= */ .training-two-col {
  padding: 0 24px;
  /* inner breathing room */ max-width: 1100px;
  /* match About text width */ margin: 0 auto;
}

.training-two-col p {
  margin: 0;
  /* reset default spacing */ padding-right: 24px;
  /* space between columns */ line-height: 1.75;
}

/* Remove extra padding on last column */ .training-two-col p:last-child {
  padding-right: 0;
}

/* Mobile: stack cleanly */ @media (max-width: 900px) {
  .training-two-col { padding: 0 16px;
}

.training-two-col p {
  padding-right: 0;
  margin-bottom: 24px;
}

} /* ================================ FOOTER LANGUAGE SWITCH – FINAL Uses html[lang] (fr-CA) ================================ */ /* Default: English footer */ .footer-lang--fr {
  display: none;
}

/* French-Canadian pages */ html[lang="fr-CA"] .footer-lang--en {
  display: none;
}

html[lang="fr-CA"] .footer-lang--fr {
  display: block;
}

/* French footer spacing polish */ html[lang="fr-CA"] .footer-links a {
  margin-right: 14px;
  font-size: 13px;
}

html[lang^="fr"] .footer-lang--en {
  display: none;
}

html[lang^="fr"] .footer-lang--fr {
  display: block;
}

/* ========================================= FR PRIVACY POLICY – CONTENT PADDING ONLY (Header / Hero untouched) ========================================= */ /* Target content AFTER hero */ .privacy-page > *:not(.privacy-hero) {
  padding-left: 24px;
  padding-right: 24px;
}

@media (min-width: 768px) {
  .privacy-page > *:not(.privacy-hero) { padding-left: 48px;
  padding-right: 48px;
}

} @media (min-width: 1200px) {
  .privacy-page > *:not(.privacy-hero) { padding-left: 72px;
  padding-right: 72px;
}

} /* Optional vertical rhythm improvement */ .privacy-page p, .privacy-page li {
  line-height: 1.65;
  margin-bottom: 16px;
  max-width: 1100px;
}

/* Section headings polish */ .privacy-page b {
  display: block;
  margin-top: 40px;
  margin-bottom: 12px;
  font-size: 18px;
}

/* Subtle brand divider under headings */ .privacy-page b::after {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  background: #f36f21;
  /* NFI orange */ margin-top: 8px;
}

/* Table containment */ .privacy-page table {
  margin: 32px 0;
  max-width: 1100px;
}

/* ================= LEADERSHIP ================= */ .leadership-section {
  padding: 80px 20px;
}

.leadership-container {
  max-width: 1200px;
  margin: 0 auto;
}

.leadership-heading {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 60px;
}

/* ===== FEATURED (John) ===== */ .leadership-featured {
  display: flex;
  gap: 60px;
  align-items: flex-start;
  background: #f4f4f4;
  padding: 60px;
  margin-bottom: 90px;
}

.leadership-featured-image {
  width: 220px;
  min-width: 220px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.leadership-featured-image img {
  width: 190px;
  height: auto;
  max-height: 250px;
  object-fit: contain;
  object-position: top center;
  display: block;
}

/* ===== GRID ===== */ .leadership-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 60px 40px;
  padding: 10px;
  background: #e9e9e9;
  /* 10px gray wash border */;
}

.leadership-card {
  background: #ffffff;
  padding: 30px;
}

.leadership-image {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin-bottom: 20px;
}

.leadership-card img {
  width: 180px;
  height: auto;
  max-height: 230px;
  object-fit: contain;
  object-position: top center;
  display: block;
}

/* ===== TOGGLE ===== */ .leadership-toggle {
  background: none;
  border: none;
  color: #f37021;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
}

.leadership-hidden {
  margin-top: 12px;
}

/* ===== RESPONSIVE ===== */ @media (max-width: 900px) {
  .leadership-featured { flex-direction: column;
  padding: 40px;
}

.leadership-featured-image img {
  width: 170px;
  max-height: 220px;
}

.leadership-card img {
  width: 160px;
  max-height: 210px;
}

} /* ================= HERO ================= */ .publications-hero {
  position: relative;
  text-align: center;
}

.publications-breadcrumb {
  margin-top: 20px;
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.publications-breadcrumb a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}

.publications-breadcrumb span {
  margin: 0 10px;
  color: #fff;
}

/* ================= INTRO ================= */ .publications-intro {
  padding: 100px 0 80px;
  background: #f5f5f5;
}

.publications-intro-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 60px;
  align-items: center;
}

.publications-title {
  font-size: 64px;
  font-weight: 300;
  line-height: 1.1;
  margin-bottom: 30px;
}

.publications-subtitle {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  margin-bottom: 20px;
}

.publications-lead {
  font-size: 18px;
  line-height: 1.7;
  max-width: 520px;
}

/* ================= CONTENT SECTIONS ================= */ .publications-section {
  padding: 100px 0;
}

.publications-section--alt {
  background: #f5f5f5;
}

.publications-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.publications-image img {
  width: 100%;
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}

.section-heading {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 20px;
}

.publications-content p {
  margin-bottom: 20px;
  line-height: 1.7;
}

/* ================= BUTTON ================= */ .btn-black {
  display: inline-block;
  padding: 14px 28px;
  background: #000;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 1px;
  transition: 0.3s ease;
}

.btn-black:hover {
  background: #fff;
}

/* ================= RESPONSIVE ================= */ @media (max-width: 992px) {
  .publications-intro-grid, .publications-grid { grid-template-columns: 1fr;
}

.publications-title {
  font-size: 42px;
}

} /* === FIX HOMEPAGE CONTACT GRID ON MOBILE === */ @media (max-width: 768px) {
  .contact-bar .contact-grid { grid-template-columns: 1fr !important;
  row-gap: 18px;
}

.contact-bar .contact-info--right {
  padding-top: 0 !important;
}

.contact-bar .contact-row {
  flex-wrap: wrap;
}

.contact-bar .contact-logo img {
  max-width: 160px;
}

} /* === CENTER CONTACT BAR CONTENT ON MOBILE === */ @media (max-width: 768px) {
  .contact-bar .contact-grid { grid-template-columns: 1fr !important;
  text-align: center;
}

.contact-bar .contact-logo {
  display: flex;
  justify-content: center;
}

.contact-bar .contact-row {
  justify-content: center;
  text-align: center;
}

.contact-bar .contact-label {
  min-width: unset;
}

.contact-bar .contact-info, .contact-bar .contact-info--right {
  padding-top: 0 !important;
}

.contact-bar .contact-card {
  text-align: center;
}

} /* ============================= */ /* DISTRIBUTION SECTION */ /* ============================= */ .about-distribution {
  padding: 120px 20px;
  background: #f4f4f4;
}

.about-distribution__inner {
  display: flex;
  align-items: center;
  gap: 80px;
}

/* ----------------------------- */ /* LEFT CONTENT */ /* ----------------------------- */ .about-distribution__content {
  flex: 0 0 42%;
}

.about-distribution__title {
  font-family: 'Roboto', Arial, sans-serif;
  font-weight: 300;
  font-size: 3.4rem;
  line-height: 1.05;
  margin-bottom: 45px;
  color: #2e2e2e;
}

.about-distribution__subheading {
  font-family: 'Roboto', Arial, sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 1.5px;
  color: #666;
  margin-bottom: 22px;
}

.about-distribution__text {
  font-family: 'Roboto', Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: #555;
  margin-bottom: 40px;
  max-width: 520px;
}

.about-distribution__btn {
  display: inline-block;
  padding: 14px 42px;
  border: 2px solid #000;
  font-family: 'Roboto', Arial, sans-serif;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 1px;
  text-decoration: none;
  color: #000;
  transition: all 0.3s ease;
}

.about-distribution__btn:hover {
  background: #f26722;
  /* PMS 159 */ border-color: #f26722;
  color: #fff;
}

/* ----------------------------- */ /* MAP COLUMN */ /* ----------------------------- */ .about-distribution__map {
  flex: 0 0 58%;
  display: flex;
  justify-content: flex-end;
}

.about-distribution__map img {
  width: 115%;
  max-width: 850px;
  height: auto;
  display: block;
}

/* ----------------------------- */ /* RESPONSIVE */ /* ----------------------------- */ @media (max-width: 1100px) {
  .about-distribution__inner { flex-direction: column;
  text-align: center;
}

.about-distribution__content, .about-distribution__map {
  flex: 100%;
}

.about-distribution__map img {
  width: 100%;
  max-width: 700px;
}

.about-distribution__text {
  max-width: 100%;
}

} /* ============================= */ /* REMOVE GENERATEPRESS PADDING */ /* ============================= */ .separate-containers .inside-article {
  padding: 0 !important;
}

/* TITLE */ .mc-training-title {
  font-size: 32px;
  margin-bottom: 10px;
}

/* =============================== FULL WIDTH CTA STRIP =============================== */ .mc-cta-strip-full {
  width: 100%;
  display: block;
  background: #165a9f;
  /* adjust to match your blue */ border-bottom: 4px solid #f58220;
  padding: 20px 0;
}

/* Reset inheritance */ .mc-cta-strip-full, .mc-cta-strip-inner {
  display: block !important;
}

/* Center content */ .mc-cta-strip-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex !important;
  justify-content: space-between;
  align-items: center;
}

/* Left text */ .mc-cta-text {
  color: #ffffff;
  font-weight: 700;
  font-size: 18px;
}

/* Button */ .mc-cta-button {
  background: #ffffff;
  color: #f58220;
  padding: 12px 28px;
  border: 2px solid #f58220;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 1px;
  transition: all 0.2s ease;
}

/* Force white text in World Class Training section */ .mc-training-full, .mc-training-full h1, .mc-training-full h2, .mc-training-full h3, .mc-training-full p, .mc-training-full span, .mc-training-full li {
  color: #ffffff !important;
}

/* Keep links orange */ .mc-training-full a {
  color: #f58220 !important;
}

/* Ensure proper two-column layout */ .about-distribution__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Add real spacing between text and map */ .about-distribution__content {
  padding-right: 60px;
}

/* Optional: prevent image from crowding */ .about-distribution__map img {
  display: block;
  max-width: 100%;
}

/* ===== FORCE FULL WIDTH TRAINING SECTION ===== */ .mc-training-cta-wrapper {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
}

/* Black full-width background */ .mc-training {
  background: #000000;
  padding: 80px 0;
}

/* Keep content aligned to site width */ .mc-training-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

/* White text */ .mc-training, .mc-training h2, .mc-training p {
  color: #ffffff;
}

/* Accent line */ .mc-training-accent {
  width: 60px;
  height: 3px;
  background: #f58220;
  margin: 15px 0 30px;
}

/* Academy link */ .mc-academy-link {
  display: inline-block;
  margin-top: 25px;
  color: #f58220;
  font-weight: 600;
  text-decoration: none;
}

.mc-academy-link:hover {
  text-decoration: underline;
}

/* ============================= */ /* REMOVE GENERATEPRESS PADDING */ /* ============================= */ .separate-containers .inside-article {
  padding: 0 !important;
}

.entry-content > * {
  margin-top: 0;
  margin-bottom: 0;
}

/* FULL WIDTH BLACK BACKGROUND */ .mc-training-full {
  width: 100%;
  display: block;
  background: #000;
  padding: 80px 0;
}

/* RESET ANY FLEX/GRID INHERITANCE */ .mc-training-full, .mc-training-container {
  display: block !important;
}

/* CENTER CONTENT */ .mc-training-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  color: #fff;
}

/* TITLE */ .mc-training-title {
  font-size: 32px;
  margin-bottom: 10px;
  color: #fff;
}

/* ORANGE ACCENT */ .mc-training-accent {
  width: 60px;
  height: 4px;
  background: #f58220;
  margin-bottom: 30px;
}

/* LINKS */ .mc-training-full a {
  color: #f58220;
}

/* FULL WIDTH CTA STRIP */ .mc-cta-strip {
  width: 100%;
  display: block;
  background: #165a9f;
  padding: 22px 0;
}

/* Reset layout inheritance */ .mc-cta-strip, .mc-cta-container {
  display: block !important;
}

/* Center content */ .mc-cta-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex !important;
  justify-content: space-between;
  align-items: center;
}

/* Text */ .mc-cta-text {
  color: #ffffff;
  font-weight: 600;
}

/* Button */ .mc-cta-button {
  background: #ffffff;
  color: #f58220;
  border: 2px solid #f58220;
  padding: 12px 26px;
  font-weight: 600;
  text-decoration: none;
}

.mc-cta-button:hover {
  background: #f58220;
  color: #ffffff;
}

.mc-cta-container {
  padding: 0 70px 25px 40px;
}

/* ================= CONTACT US (FULL WIDTH – FIXED SPACING) ================= */ /* ================= CONTACT BAR ================= */ .contact-fullwidth {
  width: 100%;
  background: #000000;
  padding: 70px 0;
}

/* Constrained container with added right padding */ .contact-grid {
  max-width: 1150px;
  margin: 0 auto;
  padding: 0 90px 0 40px;
  /* top right bottom left */ display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Logo */ .contact-logo img {
  max-width: 200px;
  height: auto;
}

/* Middle column */ .contact-info {
  max-width: 420px;
  margin-left: 60px;
}

.contact-heading {
  font-size: 30px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 12px 0;
}

.contact-subtitle {
  color: #ffffff;
  font-size: 15px;
  margin: 0 0 25px 0;
}

.contact-row {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
  font-size: 15px;
  align-items: baseline;
}

.contact-label {
  color: #f37021;
  font-weight: 600;
  white-space: nowrap;
}

.contact-row span, .contact-row a {
  color: #ffffff;
  text-decoration: none;
}

.contact-row a:hover {
  text-decoration: underline;
}

/* Right column */ .contact-info--right {
  max-width: 260px;
  margin-left: 30px;
}

/* ================= RESPONSIVE ================= */ @media (max-width: 1024px) {
  .contact-grid { flex-direction: column;
  gap: 35px;
  padding: 0 30px;
  text-align: center;
}

.contact-info, .contact-info--right {
  margin: 0;
  max-width: 100%;
}

.contact-row {
  justify-content: center;
}

} /* ================= NFI CONTACT BAR ================= */ .nfi-contact {
  background: #111111;
  border-top: 4px solid #f58220;
  padding: 60px 0;
}

.nfi-contact__container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 60px;
  display: grid;
  grid-template-columns: 220px auto auto;
  /* no fixed wide right column */ column-gap: 40px;
  /* tighter gap */ align-items: start;
  justify-content: start;
  /* <-- key change */;
}

/* Logo */ .nfi-contact__col--logo img {
  max-width: 200px;
  height: auto;
  display: block;
}

/* Typography */ .nfi-contact__title {
  font-size: 28px;
  color: #ffffff;
  margin: 0 0 14px;
}

.nfi-contact__subtitle {
  font-size: 15px;
  color: #ffffff;
  margin: 0 0 28px;
}

/* Shared row structure */ .nfi-contact__row {
  display: grid;
  grid-template-columns: 100px 1fr;
  column-gap: 20px;
  margin-bottom: 16px;
  font-size: 15px;
}

.nfi-contact__label {
  color: #f58220;
  font-weight: 600;
}

.nfi-contact__value, .nfi-contact__link {
  color: #ffffff;
  text-decoration: none;
}

.nfi-contact__link:hover {
  text-decoration: underline;
}

/* RIGHT COLUMN ALIGNMENT FIX */ .nfi-contact__col--right {
  margin-top: 88px;
  /* aligns Email/Web with phone rows */;
}

/* ================= MOBILE ================= */ @media (max-width: 900px) {
  .nfi-contact__container { grid-template-columns: 1fr;
  row-gap: 40px;
  padding: 0 30px;
  text-align: center;
}

.nfi-contact__row {
  grid-template-columns: 1fr;
}

.nfi-contact__col--logo img {
  margin: 0 auto;
}

.nfi-contact__col--right {
  margin-top: 0;
}

} /* ========================= NFI PARTS INSIGHTS – PRO ========================= */ :root {
  --nfi-accent: #f36f21;
  --nfi-dark: #1a1f2f;
  --nfi-ink: #0b1020;
  --nfi-muted: rgba(11,16,32,.68);
  --nfi-line: rgba(11,16,32,.08);
  --nfi-radius: 16px;
}

/* Container */ .nfi-blog-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 30px 20px 60px;
}

/* Thumbnail (Hero) */ .nfi-blog-thumbnail {
  border-radius: var(--nfi-radius);
  overflow: hidden;
  box-shadow: 0 15px 40px rgba(0,0,0,.10);
  margin-bottom: 20px;
}

.nfi-blog-thumbnail img {
  width: 100%;
  display: block;
  height: auto;
}

/* Metadata Strip */ .nfi-blog-meta {
  font-size: 13px;
  color: var(--nfi-muted);
  border-top: 1px solid var(--nfi-line);
  border-bottom: 1px solid var(--nfi-line);
  padding: 12px 0;
  margin-bottom: 30px;
  letter-spacing: .02em;
}

/* Content Typography */ .nfi-blog-content p {
  font-size: 16px;
  line-height: 1.7;
  margin: 14px 0;
}

.nfi-blog-content h2 {
  font-size: 24px;
  margin-top: 45px;
  margin-bottom: 10px;
  line-height: 1.3;
}

.nfi-blog-content h3 {
  font-size: 18px;
  margin-top: 25px;
}

.nfi-blog-content ul {
  margin-left: 20px;
}

.nfi-blog-content li {
  margin: 6px 0;
}

/* Callout */ .nfi-callout {
  background: rgba(243,111,33,.05);
  border: 1px solid rgba(243,111,33,.18);
  padding: 22px;
  border-radius: 12px;
  margin: 25px 0 35px 0;
}

.nfi-callout strong {
  display:block;
  margin-bottom:10px;
}

/* Quote Block */ .nfi-blog-content blockquote {
  border-left: 4px solid var(--nfi-accent);
  padding: 16px 20px;
  background: rgba(243,111,33,.06);
  border-radius: 12px;
  margin: 30px 0;
  font-style: italic;
}

/* Bottom CTA */ .nfi-bottom-cta {
  margin-top: 60px;
  padding: 40px 30px;
  background: linear-gradient(135deg, var(--nfi-accent), var(--nfi-dark));
  color: white;
  border-radius: var(--nfi-radius);
  text-align: center;
}

.nfi-bottom-cta h3 {
  margin: 0 0 10px 0;
  font-size: 22px;
}

.nfi-bottom-cta p {
  margin: 0 0 18px 0;
  font-size: 15px;
  opacity: .9;
}

.nfi-cta-button {
  display: inline-block;
  padding: 12px 26px;
  background: white;
  color: var(--nfi-accent);
  font-weight: 600;
  border-radius: 6px;
  text-decoration: none;
  transition: .2s ease;
}

.nfi-cta-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0,0,0,.15);
}

/* Footer */ .nfi-blog-footer {
  margin-top: 40px;
  font-size: 13px;
  color: var(--nfi-muted);
  border-top: 1px solid var(--nfi-line);
  padding-top: 20px;
}

/* Mobile */ @media (max-width: 768px) {
  .nfi-blog-wrap{ padding: 20px 15px 50px;
}

.nfi-bottom-cta {
  padding: 30px 20px;
}

} /* ========================================= NAV — LOCKED DARK (NO SCROLL COLOR CHANGE) ========================================= */ .site-header, .main-navigation, #site-navigation.main-navigation {
  background: #111111 !important;
  box-shadow: none !important;
  transition: none !important;
}

/* Menu links */ .main-navigation .main-nav ul li > a {
  color: #ffffff !important;
}

/* Hover + active */ .main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current_page_item > a, .main-navigation .main-nav ul li.current-menu-ancestor > a {
  color: #f58220 !important;
}

/* Dropdown always black */ .main-navigation ul ul {
  background: #111111 !important;
  border: 0 !important;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25) !important;
}

.main-navigation ul ul li > a {
  color: #ffffff !important;
}

.main-navigation ul ul li:hover > a {
  color: #f58220 !important;
}

/* ========================================= NFI TOP BAR — MINIMAL CLEAN BUILD ========================================= */ /* Kill GeneratePress wrapper styling */ #top-bar, .top-bar, .widget-area.top-bar, #top-bar .inside-top-bar, .top-bar .inside-top-bar {
  background: #111111 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Bar */ .nfi-topbar {
  width: 100%;
  background: #111111;
}

/* Order */ .nfi-topbar__order {
  color: #f58220;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.nfi-topbar__order:hover {
  opacity: 0.8;
}

/* Icons */ .nfi-topbar__icon {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nfi-topbar__icon img {
  width: 16px;
  height: 16px;
  object-fit: contain;
  display: block;
  filter: brightness(0) invert(1);
}

/* Mobile */ @media (max-width: 768px) {
  .nfi-topbar__container { padding: 8px 16px;
  font-size: 12px;
  gap: 14px;
}

.nfi-topbar__icon img {
  width: 18px;
  height: 18px;
}

} /* ========================================= NORMAL STATE (not scrolled) Keep layout intact ========================================= */ .main-navigation {
  background: #000000 !important;
}

.main-navigation .inside-navigation {
  max-width: 1400px;
  /* match site width */ margin: 0 auto;
}

/* ========================================= STICKY STATE ONLY Break out full width ========================================= */ .navigation-stick .main-navigation, .main-navigation.is_stuck {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  background: #0F0F0F !important;
}

/* Ensure header wrapper doesn’t flash color */ .site-header, #masthead {
  background: #0F0F0F !important;
}

/* ========================================= LANGUAGE SWITCH — TOP BAR ========================================= */ /* Hide French when English */ html[lang^="en"] .order-fr {
  display: none;
}

/* Hide English when French */ html[lang^="fr"] .order-en {
  display: none;
}

/* Remove widget padding in top bar */ .top-bar .widget, .top-bar .widget-inner-padding, .top-bar .widget_block {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

/* Let GP container handle alignment */ .nfi-topbar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 18px;
  width: 100%;
}

/* Remove your custom container width logic */ .nfi-topbar__container {
  display: contents;
  /* removes extra wrapper box */;
}

/* Remove widget padding */ .top-bar .widget, .top-bar .widget-inner-padding, .top-bar .widget_block {
  padding: 0 !important;
  margin: 0 !important;
}

/* Let GP control alignment */ .nfi-topbar {
  display: flex;
  align-items: center;
  gap: 18px;
  width: auto;
  /* critical */;
}

/* Force top bar alignment to right */ .inside-top-bar {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}

/* Prevent widget from stretching full width */ .top-bar .widget {
  flex: 0 0 auto !important;
  width: auto !important;
}

/* Your bar layout */ .nfi-topbar {
  display: flex;
  align-items: center;
  gap: 18px;
}

.nfi-topbar {
  display: flex;
  align-items: center;
  gap: 18px;
  width: 100%;
}

.nfi-topbar__social {
  display: flex;
  align-items: center;
  gap: 18px;
}

/* Push Order Online to far right */ .nfi-topbar__order {
  margin-left: auto;
  color: #f58220;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.top-bar .inside-top-bar {
  max-width: 100% !important;
  padding-right: 0 !important;
}

.nfi-topbar {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
  padding-right: 24px;
  /* small breathing room from screen edge */;
}

/* =============================== TRANSIT STRAP — LOCKED TYPO =============================== */ .tr-strap {
  background: #f58220;
  /* Transit orange */ padding: 32px 20px;
  text-align: center;
}

.tr-strap-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.tr-strap-text {
  font-family: "Roboto", Arial, sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(18px, 2vw, 22px) !important;
  line-height: 1.4 !important;
  color: #ffffff !important;
  margin: 0 !important;
  letter-spacing: 0.01em;
}

/* =============================== MOTORCOACH STRAP — LOCKED TYPO =============================== */ .mc-strap {
  background: var(--nfi-navy);
  /* #0f2f4a */ padding: 36px 20px;
  text-align: center;
}

.mc-strap-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.mc-strap-text {
  font-family: "Roboto", Arial, sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(18px, 2vw, 22px) !important;
  line-height: 1.4 !important;
  color: #ffffff !important;
  margin: 0 !important;
  letter-spacing: 0.01em;
}

/* =============================== SHUTTLE STRAP — LOCKED TYPO =============================== */ .sb-strap {
  background: var(--nfi-green);
  /* #374738 */ padding: 36px 20px;
  text-align: center;
}

.sb-strap-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.sb-strap-text {
  font-family: "Roboto", Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(17px, 2vw, 20px) !important;
  line-height: 1.5 !important;
  color: #ffffff !important;
  margin: 0 !important;
}

/* CONTACT BAR */ .nfi-contact {
  background:#111111;
  padding:60px 24px;
  color:#ffffff;
}

.nfi-contact__container {
  max-width:1400px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:30px;
  align-items:flex-start;
}

.nfi-contact__col {
  flex:1;
}

.nfi-contact__col--logo img {
  max-width:200px;
}

.nfi-contact__title {
  font-family:Roboto, Arial, sans-serif;
  font-weight:700;
  font-size:28px;
  margin-bottom:12px;
}

.nfi-contact__subtitle {
  font-size:15px;
  opacity:.85;
  margin-bottom:24px;
}

/* ROW */ .nfi-contact__row {
  display:flex;
  align-items:center;
  gap:8px;
  /* controls spacing cleanly */ margin-bottom:14px;
}

/* LABEL */ .nfi-contact__label {
  font-weight:600;
  color:#E87722;
  white-space:nowrap;
  /* prevents wrapping */;
}

/* VALUE */ .nfi-contact__value {
  font-weight:400;
}

/* LINK */ .nfi-contact__link {
  color:#E87722;
  text-decoration:none;
}

.nfi-contact__link:hover {
  text-decoration:underline;
}

/* TABLET */ @media (max-width:1024px) {
  .nfi-contact__container { gap:40px;
}

.nfi-contact__col {
  flex:1 1 100%;
}

.nfi-contact__col--logo {
  text-align:center;
}

} /* MOBILE */ @media (max-width:768px) {
  .nfi-contact { padding:40px 20px;
}

.nfi-contact__container {
  flex-direction:column;
  gap:30px;
}

.nfi-contact__col--logo img {
  max-width:160px;
  margin:0 auto;
}

.nfi-contact__row {
  flex-direction:row;
  /* keep email + web inline */ gap:8px;
}

.nfi-contact__title {
  font-size:22px;
}

} /* Shipping Hero Image Adjustment */ .hero--shipping .nfi-hero__media img {
  object-position: center 40%;
}
.hero--shuttle {
  background: #183a2a;
}

.hero--shuttle .nfi-hero__media {
  background: #183a2a;
}

.esg-section {
  background: #f5f5f5;
  padding: 60px 20px;
}

.esg-container {
  max-width: 1200px;
  margin: 0 auto;
}

.esg-title {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 40px;
  color: #1a1a1a;
}

.esg-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.esg-card {
  background: #ffffff;
  padding: 30px;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 220px;
}

.esg-subtitle {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 12px;
  color: #1a1a1a;
}

.esg-text {
  font-size: 15px;
  line-height: 1.6;
  color: #444;
  margin-bottom: 20px;
}

.esg-btn {
  display: inline-block;
  padding: 10px 18px;
  border: 2px solid #E87722;
  color: #E87722;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.2s ease;
}

.esg-btn:hover {
  background: #E87722;
  color: #ffffff;
}

/* MOBILE */
@media (max-width: 768px) {
  .esg-grid {
    grid-template-columns: 1fr;
  }

  .esg-title {
    font-size: 26px;
  }
}
/* SECTION */
.nfi-press {
  padding: 60px 20px;
  background: #f5f5f5;
}

.nfi-container {
  max-width: 1200px;
  margin: 0 auto;
}

/* HEADING */
.nfi-press-heading {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 40px;
  color: #000;
}

.nfi-press-heading .tiny-border {
  display: block;
  width: 60px;
  height: 3px;
  background: #E87722;
  margin-top: 10px;
}

/* GRID */
.nfi-press-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px 60px; /* vertical / horizontal spacing */
}

/* ITEM */
.nfi-press-item {
  display: block;
}

/* TITLE */
.nfi-press-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
}

/* LINK */
.nfi-press-title a {
  color: #000;
  text-decoration: none;
  transition: color 0.2s ease;
}

/* HOVER */
.nfi-press-title a:hover {
  color: #E87722;
}

/* REMOVE DEFAULT LINK STYLES */
.nfi-press a:focus,
.nfi-press a:active {
  outline: none;
}

/* RESPONSIVE */
@media (max-width: 1024px) {
  .nfi-press-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}

@media (max-width: 640px) {
  .nfi-press-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .nfi-press-heading {
    font-size: 26px;
  }

  .nfi-press-title {
    font-size: 18px;
  }
}
/* =========================
   ABOUT-STYLE SIGN-OFF PAGE
========================= */

.about-page.about-signoff-page {
  background: #ffffff;
}

/* HERO */
.about-page.about-signoff-page .about-signoff-hero {
  min-height: 320px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.about-page.about-signoff-page .about-signoff-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
}

.about-page.about-signoff-page .about-signoff-hero .about-hero__inner {
  position: relative;
  min-height: 320px;
  padding: 70px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.about-page.about-signoff-page .about-signoff-hero .about-hero__inner h1 {
  margin: 0;
  color: #ffffff;
  letter-spacing: 0.12em;
  font-size: clamp(30px, 3.8vw, 46px);
  font-weight: 700;
}

/* INTRO */
.about-page.about-signoff-page .about-signoff-intro {
  padding: 40px 0 60px;
}

.about-page.about-signoff-page .about-signoff-quote {
  max-width: 920px;
  margin: 0 auto 26px;
  background: #f7f7f7;
  border-left: 4px solid #f58220;
  padding: 18px;
}

.about-page.about-signoff-page .about-signoff-quote p {
  margin: 0;
  font-style: normal;
  font-size: 17px;
  line-height: 1.6;
  color: #444;
}

/* FORM CARD */
.about-page.about-signoff-page .about-signoff-card {
  max-width: 820px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
  padding: 36px 32px 30px;
  border-radius: 2px;
}

/* LOGO */
.about-page.about-signoff-page .about-signoff-logo {
  text-align: center;
  margin-bottom: 18px;
}

.about-page.about-signoff-page .about-signoff-logo img,
.about-page.about-signoff-page .about-signoff-card .about-signoff-logo img,
.about-page.about-signoff-page .about-signoff-logo picture img {
  display: inline-block !important;
  width: 110px !important;
  max-width: 110px !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* HEADER */
.about-page.about-signoff-page .about-signoff-header {
  text-align: center;
  margin-bottom: 24px;
}

.about-page.about-signoff-page .about-signoff-header .about-h2 {
  display: inline-block;
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  color: #111;
  position: relative;
  padding-bottom: 10px;
}

.about-page.about-signoff-page .about-signoff-header .about-h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 54px;
  height: 3px;
  background: #f58220;
}

.about-page.about-signoff-page .about-signoff-subtext {
  max-width: 640px;
  margin: 0 auto;
  color: #666;
  font-size: 14px;
  line-height: 1.6;
}

/* FOOTER NOTE */
.about-page.about-signoff-page .about-signoff-footer-note {
  margin-top: 24px;
  text-align: center;
  color: #666;
  font-size: 13px;
  line-height: 1.5;
}

/* =========================
   GRAVITY FORMS
========================= */

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper {
  margin: 0;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper form {
  margin: 0;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper label.gfield_label {
  font-size: 14px;
  font-weight: 700;
  color: #111;
  margin-bottom: 6px;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gfield_required {
  color: #f58220;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="text"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="email"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="number"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="tel"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="date"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper textarea,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d8d8d8;
  border-radius: 2px;
  background: #fff;
  color: #222;
  font-size: 15px;
  line-height: 1.45;
  box-sizing: border-box;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="text"]:focus,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="email"]:focus,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="number"]:focus,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="tel"]:focus,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="date"]:focus,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper textarea:focus,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper select:focus {
  outline: none;
  border-color: #f58220;
  box-shadow: 0 0 0 2px rgba(245, 130, 32, 0.14);
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper textarea {
  min-height: 120px;
  resize: vertical;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gsection_title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #111;
  padding-bottom: 8px;
  border-bottom: 3px solid #f58220;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gchoice label {
  font-size: 14px;
  color: #333;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_footer,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer {
  margin-top: 24px;
  padding: 0;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_footer input[type="submit"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer input[type="button"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer input[type="submit"],
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer button {
  width: 100%;
  border: none;
  border-radius: 2px;
  background: #f58220;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  padding: 14px 18px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_footer input[type="submit"]:hover,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer input[type="button"]:hover,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer input[type="submit"]:hover,
.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer button:hover {
  background: #d96d17;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .validation_message {
  color: #c0392b;
  font-size: 13px;
}

.about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_confirmation_message {
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  color: #111;
  padding: 20px 0 10px;
}

/* MOBILE */
@media (max-width: 768px) {
  .about-page.about-signoff-page .about-signoff-hero,
  .about-page.about-signoff-page .about-signoff-hero .about-hero__inner {
    min-height: 250px;
  }

  .about-page.about-signoff-page .about-signoff-card {
    padding: 26px 20px 24px;
  }

  .about-page.about-signoff-page .about-signoff-logo img,
  .about-page.about-signoff-page .about-signoff-card .about-signoff-logo img,
  .about-page.about-signoff-page .about-signoff-logo picture img {
    width: 90px !important;
    max-width: 90px !important;
  }

  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="text"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="email"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="number"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="tel"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper input[type="date"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper textarea,
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper select {
    font-size: 16px;
  }

  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_footer input[type="submit"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer input[type="button"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer input[type="submit"],
  .about-page.about-signoff-page .about-signoff-form-wrap .gform_wrapper .gform_page_footer button {
    font-size: 18px;
    padding: 16px 18px;
  }
}

/* =========================
   SEASONAL PROMOTION PAGE
========================= */
.seasonal-promo-page {
  --nfi-orange: #f58220;
  --nfi-dark: #0b0b0b;
  --nfi-text: #222222;
  font-family: "Roboto", Arial, sans-serif;
  color: var(--nfi-text);
  background: #ffffff;
  text-align: center;
}

.seasonal-promo-page * {
  box-sizing: border-box;
}

/* Remove default WordPress/GeneratePress spacing */
.seasonal-promo-page,
.seasonal-promo-page section,
.entry-content .seasonal-promo-page,
.entry-content .seasonal-promo-page > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* =========================
   HERO HEADER - MATCH ABOUT US
========================= */
.seasonal-promo-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 260px;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.seasonal-promo-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.58);
  z-index: 1;
}

.seasonal-promo-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 60px 24px;
}

.seasonal-promo-hero h1 {
  margin: 0;
  color: #ffffff;
  font-family: "Roboto", Arial, sans-serif;
  font-size: clamp(34px, 3.6vw, 46px);
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
}

/* =========================
   PDF DISPLAY - CENTERED FULL PAGE
========================= */
.seasonal-promo-pdf-wrap {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  background: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.seasonal-promo-pdf-card {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  background: #ffffff;
  text-align: center;
}

.seasonal-promo-pdf-frame {
  width: 100%;
  height: 100vh;
  min-height: 1050px;
  border: 0;
  display: block;
  background: #ffffff;
  margin: 0 auto;
}

.seasonal-promo-pdf-fallback {
  margin: 0;
  padding: 12px 24px;
  font-size: 14px;
  background: #ffffff;
  text-align: center;
}

.seasonal-promo-pdf-fallback a {
  color: var(--nfi-orange);
  font-weight: 700;
  text-decoration: none;
}

.seasonal-promo-pdf-fallback a:hover {
  text-decoration: underline;
}

/* =========================
   CONTACT BAR
========================= */
.seasonal-promo-page .contact-fullwidth {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--nfi-dark);
  border-top: 4px solid var(--nfi-orange);
  text-align: center;
}

.seasonal-promo-page .contact-grid {
  max-width: 1400px;
  margin: 0 auto;
  padding: 3.5rem 4rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  text-align: left;
}

.seasonal-promo-page .contact-logo {
  display: flex;
  justify-content: center;
  align-items: center;
}

.seasonal-promo-page .contact-logo img {
  max-width: 200px;
  height: auto;
  display: block;
}

.seasonal-promo-page .contact-heading {
  color: #ffffff;
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 10px;
}

.seasonal-promo-page .contact-subtitle {
  color: #ffffff;
  font-size: 13px;
  margin: 0 0 10px;
  font-weight: 600;
}

.seasonal-promo-page .contact-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 6px;
  color: #ffffff;
  font-size: 14px;
}

.seasonal-promo-page .contact-label {
  color: var(--nfi-orange);
  font-weight: 700;
  min-width: 56px;
}

.seasonal-promo-page .contact-row a {
  color: var(--nfi-orange);
  text-decoration: none;
}

.seasonal-promo-page .contact-row a:hover {
  text-decoration: underline;
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 960px) {
  .seasonal-promo-hero,
  .seasonal-promo-hero__inner {
    min-height: 240px;
  }

  .seasonal-promo-page .contact-grid {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 2.5rem 2rem;
    text-align: center;
  }

  .seasonal-promo-page .contact-row {
    justify-content: center;
  }

  .seasonal-promo-pdf-frame {
    height: 85vh;
    min-height: 760px;
  }
}

@media (max-width: 640px) {
  .seasonal-promo-hero,
  .seasonal-promo-hero__inner {
    min-height: 220px;
  }

  .seasonal-promo-hero h1 {
    font-size: 28px;
  }

  .seasonal-promo-pdf-frame {
    height: 80vh;
    min-height: 640px;
  }

  .seasonal-promo-page .contact-grid {
    padding: 2rem 1.25rem;
  }

  .seasonal-promo-page .contact-row {
    flex-direction: column;
    gap: 2px;
  }
}


/* =========================
   PDF DISPLAY - FULL VIEWER, MEDIUM ZOOM
========================= */
.seasonal-promo-pdf-wrap {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
  background: #ffffff;
  text-align: center;
  overflow: hidden;
}

.seasonal-promo-pdf-card {
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: #ffffff;
  text-align: center;
}

.seasonal-promo-pdf-frame {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 950px !important;
  min-height: 950px !important;
  border: 0 !important;
  display: block !important;
  margin: 0 auto !important;
  background: #ffffff;
}

.seasonal-promo-pdf-fallback {
  margin: 0 !important;
  padding: 12px 24px !important;
  font-size: 14px;
  background: #ffffff;
  text-align: center;
}

.seasonal-promo-pdf-fallback a {
  color: #f58220;
  font-weight: 700;
  text-decoration: none;
}

.seasonal-promo-pdf-fallback a:hover {
  text-decoration: underline;
}


/* =========================================
   NFI FOOTER LANGUAGE DISPLAY — POLYLANG
   Supports fr, fr-CA and fr-FR
========================================= */

/* English is the default */
.nfi-footer-bar .lang-en {
  display: inline !important;
}

.nfi-footer-bar .lang-fr {
  display: none !important;
}

/* French and all French regional locales */
html:lang(fr) .nfi-footer-bar .lang-en {
  display: none !important;
}

html:lang(fr) .nfi-footer-bar .lang-fr {
  display: inline !important;
}

/* =========================================================
   NFI PARTS — TOTAL SUPPORT LANDING PAGE
   Scoped to .nfi-campaign-landing to avoid theme conflicts.
   ========================================================= */

.nfi-campaign-landing {
  --nfi-orange: #d76025;
  --nfi-orange-dark: #b94c18;
  --nfi-black: #111111;
  --nfi-gray-100: #f4f4f4;
  --nfi-gray-200: #e5e6e7;
  --nfi-gray-600: #6f7377;
  --nfi-white: #ffffff;
  --nfi-max-width: 1180px;
  --nfi-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);

  width: 100%;
  overflow: hidden;
  background: var(--nfi-white);
  color: var(--nfi-black);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.45;
}

.nfi-campaign-landing *,
.nfi-campaign-landing *::before,
.nfi-campaign-landing *::after {
  box-sizing: border-box;
}

.nfi-campaign-landing img {
  max-width: 100%;
}

.nfi-campaign-landing a {
  color: inherit;
}

.nfi-campaign-landing__container {
  width: min(var(--nfi-max-width), calc(100% - 48px));
  margin-inline: auto;
}

/* Hero intro */
.nfi-campaign-landing__intro {
  padding: clamp(52px, 7vw, 94px) 0 clamp(40px, 5vw, 68px);
}

.nfi-campaign-landing__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 980px;
  margin: 0 0 30px;
  font-size: clamp(3.25rem, 7.2vw, 6.55rem);
  font-weight: 900;
  letter-spacing: -0.055em;
  line-height: 0.88;
}

.nfi-campaign-landing__title span {
  display: block;
}

.nfi-campaign-landing__accent {
  color: var(--nfi-orange);
}

.nfi-campaign-landing__lead-copy {
  max-width: 850px;
  font-size: clamp(1.08rem, 1.8vw, 1.42rem);
  line-height: 1.12;
}

.nfi-campaign-landing__lead-copy p {
  margin: 0;
}

.nfi-campaign-landing__lead-copy p + p {
  margin-top: 24px;
}

/* Benefits */
.nfi-campaign-landing__benefits {
  background: var(--nfi-gray-200);
}

.nfi-campaign-landing__benefit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px 80px;
  padding-top: 34px;
  padding-bottom: 34px;
}

.nfi-campaign-landing__benefit h2 {
  margin: 0 0 2px;
  font-size: clamp(1rem, 1.55vw, 1.22rem);
  font-weight: 900;
  line-height: 1.05;
}

.nfi-campaign-landing__benefit p {
  margin: 0;
  font-size: clamp(0.98rem, 1.45vw, 1.14rem);
  line-height: 1.08;
}

/* Support area */
.nfi-campaign-landing__support {
  background: var(--nfi-white);
}

.nfi-campaign-landing__support-grid {
  display: grid;
  grid-template-columns: minmax(250px, 0.76fr) minmax(0, 1.7fr);
  align-items: end;
  min-height: 460px;
}

.nfi-campaign-landing__support-copy {
  position: relative;
  z-index: 2;
  align-self: center;
  padding: 48px 0 50px;
}

.nfi-campaign-landing__support-heading {
  margin: 0 0 26px;
  font-size: clamp(1.65rem, 3vw, 2.3rem);
  font-weight: 900;
  line-height: 1.03;
}

.nfi-campaign-landing__contact-copy {
  margin: 0 0 24px;
  font-size: 1.05rem;
  line-height: 1.18;
}

.nfi-campaign-landing__contact-copy a {
  font-weight: 700;
  text-decoration-color: rgba(215, 96, 37, 0.45);
  text-underline-offset: 3px;
}

.nfi-campaign-landing__primary-cta,
.nfi-campaign-landing__secondary-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px;
  border: 2px solid var(--nfi-orange);
  background: var(--nfi-orange);
  color: var(--nfi-white) !important;
  font-weight: 800;
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease,
    transform 180ms ease;
}

.nfi-campaign-landing__primary-cta:hover,
.nfi-campaign-landing__primary-cta:focus-visible,
.nfi-campaign-landing__secondary-cta:hover,
.nfi-campaign-landing__secondary-cta:focus-visible {
  background: var(--nfi-orange-dark);
  border-color: var(--nfi-orange-dark);
  transform: translateY(-2px);
}

.nfi-campaign-landing__brand-lockup {
  display: block;
  width: min(250px, 100%);
  height: auto;
  margin-top: 38px;
}

.nfi-campaign-landing__box-wrap {
  align-self: end;
  min-width: 0;
}

.nfi-campaign-landing__box {
  display: block;
  width: 100%;
  height: auto;
  transform: translate(5%, 2%);
  filter: drop-shadow(0 28px 22px rgba(0, 0, 0, 0.18));
}

/* Segment tiles */
.nfi-campaign-landing__segments {
  padding: clamp(64px, 8vw, 100px) 0;
  background: var(--nfi-gray-100);
}

.nfi-campaign-landing__section-heading {
  max-width: 720px;
  margin-bottom: 34px;
}

.nfi-campaign-landing__eyebrow {
  margin: 0 0 8px;
  color: var(--nfi-orange);
  font-size: 0.83rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nfi-campaign-landing__section-heading h2,
.nfi-campaign-landing__final-cta h2 {
  margin: 0;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1;
}

.nfi-campaign-landing__segment-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.nfi-campaign-landing__segment-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: var(--nfi-white);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.nfi-campaign-landing__segment-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--nfi-shadow);
}

.nfi-campaign-landing__segment-image-link {
  display: block;
  overflow: hidden;
  aspect-ratio: 768 / 490;
}

.nfi-campaign-landing__segment-image-link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 260ms ease;
}

.nfi-campaign-landing__segment-card:hover .nfi-campaign-landing__segment-image-link img {
  transform: scale(1.035);
}

.nfi-campaign-landing__segment-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 26px 24px 28px;
}

.nfi-campaign-landing__segment-body h3 {
  margin: 0 0 12px;
  font-size: clamp(1.35rem, 2.1vw, 1.72rem);
  font-weight: 500;
  line-height: 1.1;
}

.nfi-campaign-landing__segment-body h3 a {
  text-decoration: none;
}

.nfi-campaign-landing__segment-body p {
  margin: 0 0 22px;
  color: #242424;
  font-size: 1rem;
  line-height: 1.52;
}

.nfi-campaign-landing__text-link {
  margin-top: auto;
  color: var(--nfi-orange) !important;
  font-weight: 700;
  text-underline-offset: 4px;
}

/* Final CTA */
.nfi-campaign-landing__final-cta {
  background: var(--nfi-black);
  color: var(--nfi-white);
}

.nfi-campaign-landing__final-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  padding-top: 48px;
  padding-bottom: 48px;
}

.nfi-campaign-landing__final-cta h2 {
  max-width: 740px;
  font-size: clamp(1.8rem, 3.8vw, 3rem);
}

.nfi-campaign-landing__secondary-cta {
  flex: 0 0 auto;
}

/* Accessibility */
.nfi-campaign-landing a:focus-visible {
  outline: 3px solid #2b70ff;
  outline-offset: 4px;
}

/* Responsive */
@media (max-width: 960px) {
  .nfi-campaign-landing__title {
    font-size: clamp(3.1rem, 9.5vw, 5.8rem);
  }

  .nfi-campaign-landing__support-grid {
    grid-template-columns: 0.85fr 1.25fr;
    min-height: 400px;
  }

  .nfi-campaign-landing__segment-grid {
    grid-template-columns: 1fr;
  }

  .nfi-campaign-landing__segment-card {
    display: grid;
    grid-template-columns: minmax(260px, 0.9fr) 1.1fr;
  }

  .nfi-campaign-landing__segment-image-link {
    height: 100%;
    aspect-ratio: auto;
  }
}

@media (max-width: 720px) {
  .nfi-campaign-landing__container {
    width: min(100% - 32px, var(--nfi-max-width));
  }

  .nfi-campaign-landing__title {
    gap: 2px;
    font-size: clamp(2.65rem, 13vw, 4.4rem);
    line-height: 0.93;
  }

  .nfi-campaign-landing__benefit-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .nfi-campaign-landing__support-grid {
    grid-template-columns: 1fr;
  }

  .nfi-campaign-landing__support-copy {
    padding-bottom: 18px;
  }

  .nfi-campaign-landing__brand-lockup {
    width: min(230px, 76%);
  }

  .nfi-campaign-landing__box {
    width: 118%;
    max-width: none;
    transform: translate(-4%, 2%);
  }

  .nfi-campaign-landing__segment-card {
    display: flex;
  }

  .nfi-campaign-landing__segment-image-link {
    aspect-ratio: 768 / 490;
  }

  .nfi-campaign-landing__final-cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nfi-campaign-landing *,
  .nfi-campaign-landing *::before,
  .nfi-campaign-landing *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* WordPress / GeneratePress conflict protection */
.entry-content .nfi-campaign-landing__title {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  margin: 0 0 30px !important;
  padding: 0 !important;
  font-size: clamp(3.25rem, 7.2vw, 6.55rem) !important;
  font-weight: 900 !important;
  letter-spacing: -0.055em !important;
  line-height: 0.88 !important;
  text-transform: none !important;
}

.entry-content .nfi-campaign-landing__title::after {
  content: none !important;
  display: none !important;
}

.entry-content .nfi-campaign-landing__benefit h2 {
  margin: 0 0 2px !important;
  padding: 0 !important;
  font-size: clamp(1rem, 1.55vw, 1.22rem) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.entry-content .nfi-campaign-landing__section-heading h2,
.entry-content .nfi-campaign-landing__final-cta h2 {
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(2rem, 4.5vw, 3.5rem) !important;
  font-weight: 900 !important;
  letter-spacing: -0.035em !important;
  line-height: 1 !important;
  text-transform: none !important;
}

.entry-content .nfi-campaign-landing__final-cta h2 {
  font-size: clamp(1.8rem, 3.8vw, 3rem) !important;
}

.entry-content .nfi-campaign-landing__segment-body h3 {
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-size: clamp(1.35rem, 2.1vw, 1.72rem) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.entry-content .nfi-campaign-landing p,
.entry-content .nfi-campaign-landing h1,
.entry-content .nfi-campaign-landing h2,
.entry-content .nfi-campaign-landing h3,
.entry-content .nfi-campaign-landing article,
.entry-content .nfi-campaign-landing section,
.entry-content .nfi-campaign-landing div {
  max-width: none;
}

@media (max-width: 960px) {
  .entry-content .nfi-campaign-landing__title {
    font-size: clamp(3.1rem, 9.5vw, 5.8rem) !important;
  }
}

@media (max-width: 720px) {
  .entry-content .nfi-campaign-landing__title {
    font-size: clamp(2.65rem, 13vw, 4.4rem) !important;
    line-height: 0.93 !important;
  }
}
