html, body { margin: 0; padding: 0; }

/*Basic Page*/

.apv-page-content{
  padding: 70px 0;
}

.apv-section-title{
  font-size: 50px !important;
  font-weight: 800;
  margin-bottom: 48px;
  line-height: 1.2;
}
.apv-section-title--blue{
  color: #0b3a63;
}
.apv-section-title--blue{
  color: #0b3a63;
}

/* =========================================================
   APV Page Header (Paragraph: page_header)
   Background image + overlay
   Left side empty / Right side content
   Title split (Primary white / Secondary red)
   Buttons: primary (red) or outline (transparent)
   ========================================================= */


.apv-page-header{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 0;
  position: relative;
  background-size: cover;
  background-position: center;
  padding: 80px 0;
}

/* Overlay (LIGHT) */
.apv-page-header__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0, 83, 159, 0.70);
  z-index: 1;
}

.apv-page-header .container{
  position: relative;
  z-index: 2;
}

/* Content */
.apv-page-header__content{
  color: #fff;
}

/* Title */
.apv-page-header__title{
  margin: 0 0 20px;
  line-height: 1.05;
}

.apv-page-header__title-primary,
.apv-page-header__title-secondary{
  display: block;
  text-transform: uppercase;
}

.apv-page-header__title-primary{
  color: #fff;
}

.apv-page-header__title-secondary{
  color: #d71920;
  margin-top: 6px;
}

/* Body text (WIDE, not constrained) */
.apv-page-header__text{
  max-width: none;
  line-height: 1.3;
  font-size: 25px;
}

.apv-page-header__text p{
  margin: 0;
}

/* Buttons row */
.apv-page-header__buttons{
  margin-top: 28px;
  display: flex;
  gap: 20px;
  align-items: center;
}

/* =========================================================
   LINK-STYLE CTA (icon + text)
========================================================= */

.apv-header-cta-link{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size:20px;
}


.apv-header-cta-link__icon img{
  width: 40px;
  height: 40px;
  display: block;
}

.apv-header-cta-link__text{
  white-space: nowrap;
}

/* Prevent color change on hover */
.apv-page-header__buttons .apv-header-cta-link__text:hover,
.apv-page-header__buttons .apv-header-cta-link__text:hover span{
  color: #ffffff;
}

/* Underline effect on hover only */
.apv-page-header__buttons .apv-header-cta-link__text:hover{
  text-decoration: underline;
}
/* =========================================================
   PRIMARY BUTTON
========================================================= */

.apv-btn{
  display: inline-flex;
  align-items: center;
  padding: 12px 28px;
  border-radius: 9999px;
  font-weight: 700;
  text-decoration: none;
}

.apv-btn--primary{
  background: #d71920;
  color: #fff;
}


/* =========================================================
   APV NAVBAR – FINAL CSS (DXPR + Bootstrap)
   Hover = COLOR ONLY (no red backgrounds)
   ========================================================= */

/* -------------------------
   Navbar vertical spacing
-------------------------- */
#apv-site-navbar .navbar-container{
  padding-top: 22px;
  padding-bottom: 22px;
}

/* -------------------------
   Front page navbar overlay
-------------------------- */
.path-frontpage #apv-site-navbar{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: transparent !important;
  z-index: 50;
}

/* -------------------------
   Inner page navbar background
-------------------------- */
body:not(.path-frontpage) #apv-site-navbar{
  background-image: url("/sites/default/files/images/navigation.png") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  z-index: 50;
}

/* -------------------------
   Global nav link styling
-------------------------- */
#apv-site-navbar a{
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

/* -------------------------
   Space between top-level items
-------------------------- */
#apv-site-navbar .navbar-nav{
  display: flex;
  align-items: center;
  gap: 32px;
}

/* =========================================================
   TOP-LEVEL HOVER – COLOR ONLY
   (About, Capabilities, Careers, News, Contact)
   ========================================================= */
@media (min-width: 992px){

  #apv-site-navbar .navbar-nav > li.nav-item > a.nav-link{
    padding: 6px 12px;
    background: transparent;
  }

  #apv-site-navbar .navbar-nav > li.nav-item > a.nav-link:hover,
  #apv-site-navbar .navbar-nav > li.nav-item > a.nav-link:focus{
    color: #ed3b34;                /* color change only */
    background: transparent !important;
  }
}

/* =========================================================
   DROPDOWN (NEWS) – DESKTOP BEHAVIOR
   ========================================================= */
@media (min-width: 992px){

  /* Parent dropdown positioning */
  #apv-site-navbar li.nav-item.dropdown{
    position: relative;
  }

  /* Keep News text + caret tight */
  #apv-site-navbar .bs-dropdown-wrapper{
    display: inline-flex;
    align-items: center;
    gap: 2px;
  }

  /* Caret cleanup */
  #apv-site-navbar .bs-dropdown-caret{
    all: unset;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    margin-left: 2px;
    line-height: 1;
    color: inherit;
  }

  /* Dropdown menu container */
  #apv-site-navbar li.nav-item.dropdown > .dropdown-menu{
    display: none;
    position: absolute;
    top: calc(100% - 2px);   /* no gap / no flicker */
    left: 0;
    margin: 0;
    padding: 0;
    z-index: 9999;
    color: white;
    background: #013f67;
    border: 0;
    border-radius: 0 !important;
    box-shadow: 0 10px 25px rgba(255,255,255,.20);
    min-width: 220px;
  }

  /* Show dropdown on hover or focus */
  #apv-site-navbar li.nav-item.dropdown:hover > .dropdown-menu,
  #apv-site-navbar li.nav-item.dropdown:focus-within > .dropdown-menu,
  #apv-site-navbar li.nav-item.dropdown > .dropdown-menu:hover{
    display: block;
  }

  /* News hover = COLOR ONLY (no background) */
  #apv-site-navbar li.nav-item.dropdown:hover > .bs-dropdown-wrapper > a,
  #apv-site-navbar li.nav-item.dropdown:focus-within > .bs-dropdown-wrapper > a{
    color: #ed3b34 !important;
    background: transparent !important;
  }

  /* =====================================================
     SUBMENU ITEMS (Blogs)
     FULL-WIDTH LIGHT GRAY HOVER
     ===================================================== */

  /* Ensure full-width rows */
  #apv-site-navbar .dropdown-menu > li{
    width: 100%;
    margin: 0;
    padding: 0;
  }

  #apv-site-navbar .dropdown-menu .dropdown-item{
    display: block;
    width: 100%;
    padding: 14px 20px;
    margin: 0;
    font-weight: 600;
    color: white !important;
    background: transparent !important;
    border-radius: 0 !important;
  }

  /* Light gray FULL-WIDTH hover */
  #apv-site-navbar .dropdown-menu > li:hover{
    background: #f2f2f2;
  }

  #apv-site-navbar .dropdown-menu > li:hover > a{
    background: transparent !important;
    color: #111 !important;
  }
}

/* =========================================================
   MOBILE – keep DXPR / Bootstrap click behavior
   ========================================================= */
@media (max-width: 991px){

  #apv-site-navbar .navbar-nav{
    gap: 12px;
  }

  #apv-site-navbar li.nav-item.dropdown > .dropdown-menu{
    position: static;
    box-shadow: none;
    border-radius: 0;
    min-width: 0;
  }

  #apv-site-navbar .bs-dropdown-wrapper{
    padding: 0;
  }
}




/* =========================================================
   HERO (match reference)
   ========================================================= */

.apv-hero{
  position: relative;
  overflow: hidden;
  background-image: url("/sites/default/files/images/homepage-ai-vid.gif");
  background-size: cover;
  background-position: left center;
  background-repeat: no-repeat;
}

/* Subtle “reference-style” tint (NOT heavy) */
.apv-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(0, 35, 70, 0.18) 0%,
    rgba(0, 35, 70, 0.12) 45%,
    rgba(0, 35, 70, 0.28) 100%
  );
  z-index: 1;
}

.apv-hero__content{
  position: relative;
  z-index: 2;
  padding-top: 160px;
  padding-bottom: 120px;
}

.apv-hero__right{
  padding-left: 10px;
}

/* Subtle shadow like reference */
.apv-hero__title,
.apv-hero__eq,
.apv-hero__word,
.apv-hero__text {
  text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}

/* PEOPLE + TECHNOLOGY (single line) */
.apv-hero__title{
  color:#ffffff;
  font-weight:800;
  letter-spacing:-0.025em;
  line-height:1.05;
  font-size: clamp(38px, 3.6vw, 66px);
  margin-bottom: 14px;
  white-space: nowrap;
}

/* = INNOVATION */
.apv-hero__subtitle{
  display:flex;
  align-items:baseline;
  gap:18px;
  white-space:nowrap;
  margin:0 0 30px 0;
}

.apv-hero__eq{
  color:#ed3b34;
  font-weight:900;
  font-size: clamp(40px, 4.2vw, 76px);
  top: -1px;
  line-height:1;
  position:relative;
}

.apv-hero__word{
  color:#ed3b34;
  font-weight:900;
  line-height:1;
  font-size: clamp(40px, 4.2vw, 76px);
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

/* Body */
.apv-hero__text{
  color:rgba(255,255,255,0.92);
  font-size: 28px;
  line-height: normal;
  max-width: 580px;
  font-weight: 400;
  letter-spacing: 0;
  text-shadow: 0 1px 4px rgba(0,0,0,0.25);
}

/* =========================================================
   OUR CAPABILITIES – 2x2 GRID + CARDS (REFERENCE LAYOUT)
   ========================================================= */
.apv-capabilities{
  padding: 80px 0;
}

/* 2x2 grid */
.apv-capabilities__grid .field--name-field-our-capabilities,
.apv-capabilities__grid .field--name-field-our-capabilities > .field__items{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* remove DXPR/Bootstrap widths + margins that cause misalignment */
.apv-capabilities__grid .field__item{
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* CARD: content + icon column */
.apv-capability{ margin: 0 !important; }

.apv-capability__card{
  border: 4px solid #0b3a5b;
  border-radius: 22px;
  background: #fff;
  padding: 28px 20px 28px 28px;
  box-sizing: border-box;

  display: grid;
  grid-template-columns: 1fr 110px;
  column-gap: 16px;

  overflow: visible !important;
  min-height: 260px;
}

/* CONTENT COLUMN */
.apv-capability__content{
  display: grid;
  align-content: start;
  width: 100%;
  min-width: 0;
}

/* Title */
.apv-capability__title{
  margin: 0 0 12px;
  color: #0b3a5b;
  line-height: 1.1;
  font-weight: 800;
  font-size: 32px;
}

/* Text */
.apv-capability__text{
  margin: 0;
  color: #0b3a5b;
  font-size: 20px;
  line-height: 1.45;
}

.apv-capability__text p,
.apv-capability__text .field{
  margin: 0;
}

/* Button */
.apv-capability__button{ margin-top: 18px; }

.apv-capability__button a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ef3b2d;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: 18px;
  padding: 12px 22px;
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
}

/* ICON pinned */
.apv-capability__icon{
  align-self: stretch;
  height: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  padding-bottom: 6px;
}

.apv-capability__icon,
.apv-capability__icon .field,
.apv-capability__icon .field__item,
.apv-capability__icon picture{
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

.apv-capability__icon .field,
.apv-capability__icon .field__item{
  height: 100%;
}

.apv-capability__icon img,
.apv-capability__icon svg{
  width: 90px !important;
  height: auto !important;
  max-width: none !important;
  display: block !important;
}

/* =========================================================
   ABOUT APV SECTION
   ========================================================= */
.apv-about{
  position: relative;
  width: 100%;
  overflow: hidden;
  background-image: url("/sites/default/files/images/Static-Background.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.apv-about__container{
  position: relative;
  z-index: 1;
}

.apv-about__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 640px;
  align-items: stretch;
  position: relative;
  z-index: 1;
}

/* LEFT */
.apv-about__left{
  position: relative;
  color: #ffffff;
  z-index: 4;
  padding: 88px 0;
  box-sizing: border-box;
}

.apv-about__left-inner{
  max-width: 560px;
}

.apv-about__title{
  margin: 0 0 28px;
  font-size: clamp(40px, 4.5vw, 64px);
  font-weight: 800;
  line-height: 1.05;
  color: #ffffff;
}

.apv-about__text{
  margin: 0 0 38px;
  max-width: 560px;
  font-size: 20px;
  line-height: 1.65;
  opacity: 0.95;
}

/* Button */
.apv-about__button a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 32px;
  border-radius: 999px;
  background-color: #ff3b30;
  color: #ffffff;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  transition: transform 0.15s ease, filter 0.15s ease;
}
.apv-about__button a:hover{
  transform: translateY(-1px);
  filter: brightness(1.05);
}

/* RIGHT */
.apv-about__right{
  position: relative;
  overflow: hidden;
  z-index: 1;
  background-image: url("/sites/default/files/images/ETL_TEAM_home.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-right: calc(95% - 50vw);
}

/* overlay */
.apv-about__right::after{
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("/sites/default/files/images/Static-Background.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.60;
  pointer-events: none;
  z-index: 2;
}

/* =====================================================
   FEDERAL FOOTPRINT SECTION (HOME) - UPDATED
   Title -> Text -> Slider -> Link
===================================================== */

#apv-federal-footprint{
  padding: 80px 0;
  background: #ffffff;
}

#apv-federal-footprint .apv-federal__title{
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  margin: 0 0 28px;
  color: #0b3a63;
}

#apv-federal-footprint .apv-federal__text{
  font-size: 25px;
  line-height: 1.65;
  color: #0b3a63;
  margin: 0 0 34px;
}
/* =====================================================
   Federal logos: normalize slide sizing + no clipping
===================================================== */

#apv-federal-footprint .apv-federal__slider .slick-track{
  display: flex;
  align-items: center;
}

#apv-federal-footprint .apv-federal__slider .slick-slide{
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* The real wrapper in your markup is .slide */
#apv-federal-footprint .apv-federal__slider .slide{
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 240px;     /* slot width - adjust */
  height: 120px;    /* slot height - adjust */
}

/* Make Drupal wrappers not interfere */
#apv-federal-footprint .apv-federal__slider .field,
#apv-federal-footprint .apv-federal__slider .field__item{
  height: 100%;
}

/* Logo fits fully inside the slot */
#apv-federal-footprint .apv-federal__slider img{
  width: auto !important;
  height: auto !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

/* Optional: nicer spacing between logos */
#apv-federal-footprint .apv-federal__slider .slick-slide{
  padding: 0 18px;
}

/* Link under slider */
#apv-federal-footprint .apv-federal__link{
  margin-top: 10px;
}

/* Style the actual <a> coming from the Link field */
#apv-federal-footprint .apv-federal__link a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  font-size: 20px;
  color: #ee3b34;
  text-decoration: none;
  padding-bottom: 3px;
  border-bottom: 2px solid currentColor;
}

#apv-federal-footprint .apv-federal__link a:hover{
  color: #d71920;
}


/* ================================
   Careers & Culture – Home
================================ */
.apv-careers{
  position: relative;
  overflow: hidden;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 620px;
  display: flex;
  align-items: center;
  padding: 0px 0 60px;
  color: #fff;
  background-color: #000;
  background-image: url("/sites/default/files/images/Static-Background.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.apv-careers::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background-image: url("/sites/default/files/images/Careers_and_Culture.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: right;
  pointer-events: none;
}

.apv-careers__container{
  position: relative;
  z-index: 2;
}

.apv-careers__content{
  max-width: 520px;
}

.apv-careers__title{
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  margin: 0 0 40px;
  color: #fff;
}

.apv-careers__text{
  font-size: 24px;
  line-height: 1.6;
  margin: 0 0 80px;
}

.apv-careers__button a{
  display: inline-block;
  background: #e43b2c;
  color: #fff;
  font-weight: 700;
  padding: 12px 26px;
  border-radius: 999px;
  text-decoration: none;
}

.apv-careers__button a:hover,
.apv-careers__button a:focus{
  color: #fff;
  filter: brightness(0.95);
  text-decoration: none;
}

/* =====================================================
   TECHNOLOGY PARTNERS SECTION
===================================================== */

#apv-technology-partners{
  padding: 90px 0;
  background: #ffffff;
}

#apv-technology-partners .apv-tech__container{
  text-align: left;
}

.apv-tech__title{
  font-size: 56px;
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 18px;
  color: #0b3a63;
}

.apv-tech__subtitle{
  font-size: 32px;
  font-weight: 800;
  line-height: 1.25;
  margin: 0 0 24px;
  color: #0b3a63;
}

.apv-tech__text{
  font-size: 22px;
  line-height: 1.55;
  margin: 0 0 42px;
  color: #0b3a63;
}

.apv-tech__logos{
  margin-top: 10px;
}

#apv-technology-partners
.field--name-field-home-tech-images.field__items{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 22px 44px;
  margin: 0;
  padding: 0;
}

#apv-technology-partners
.field--name-field-home-tech-images.field__items > .field__item{
  display: flex;
  width: 210px;
  align-items: center;
  justify-content: flex-start;
  margin: 0 !important;
  padding: 0;
}

#apv-technology-partners img{
  width: 100%;
  height: auto;
  max-width: none;
  object-fit: contain;
  display: block;
}

/* =====================================================
   SECTION DIVIDER
===================================================== */

.apv-section-divider{
  width: 100%;
  overflow: hidden;
}

.apv-section-divider img{
  width: 100%;
  height: 90px;
  display: block;
}

/* =====================================================
   CERTIFICATIONS SECTION
===================================================== */

#apv-certifications{
  padding: 90px 0;
  background: #ffffff;
}

.apv-certifications__title{
  font-size: 56px;
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0 18px;
  color: #0b3a63;
}

.apv-certifications__text{
  font-size: 24px;
  line-height: 1.3;
  margin: 0 0 36px;
  color: #0b3a63;
}

.apv-certifications__logos{
  margin-top: 10px;
}

#apv-certifications
.field--name-field-home-certification-images.field__items{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px 32px;
  margin: 0;
  padding: 0;
}

#apv-certifications
.field--name-field-home-certification-images.field__items > .field__item{
  width: 180px;
  display: flex;
  align-items: center;
}

#apv-certifications img{
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

/* -----------------------------------------------------
   RESPONSIVE TWEAKS
----------------------------------------------------- */

@media (max-width: 991px){
  .apv-tech__title{ font-size: 44px; }
  .apv-tech__subtitle{ font-size: 24px; }
  .apv-tech__text{ font-size: 19px; }
  #apv-technology-partners img{
    height: 52px;
    max-width: 200px;
  }
}

@media (max-width: 575px){
  .apv-tech__title{ font-size: 36px; }
  .apv-tech__subtitle{ font-size: 20px; }
  .apv-tech__text{ font-size: 17px; }
  #apv-technology-partners img{
    height: 46px;
    max-width: 180px;
  }
}

/* Responsive Careers */
@media (max-width: 992px){
  .apv-careers{
    min-height: 520px;
    padding: 90px 0 80px;
    background-position: 80% center;
  }
  .apv-careers__title{ font-size: 44px; }
  .apv-careers__text{ font-size: 20px; }
}

@media (max-width: 768px){
  .apv-careers{
    min-height: auto;
    padding: 80px 0 70px;
    background-position: center;
  }
  .apv-careers__content{ max-width: 100%; }
}

/* =====================================================
   RESPONSIVE – Federal logos (reusable)
===================================================== */

@media (max-width: 1199px){
  .apv-federal__grid{
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .apv-federal__title{ font-size: 48px; }

  .apv-fed-group .field--name-field-fed-logos.field__items{
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 991px){
  .apv-fed-group .field--name-field-fed-logos.field__items{
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 575px){
  #apv-federal-footprint{ padding: 60px 0; }
  .apv-federal__title{ font-size: 40px; }
  .apv-fed-group__title{ font-size: 16px; }

  .apv-fed-group .field--name-field-fed-logos.field__items{
    grid-template-columns: repeat(2, 1fr);
  }

  .apv-fed-group .field--name-field-fed-logos img{
    height: 70px;
  }
}

/* =====================================================
   HERO / CAPABILITIES / ABOUT responsive
===================================================== */

@media (max-width: 991px){
  .apv-hero{
    min-height: 70vh;
    background-position: 30% center;
  }
  .apv-hero__content{
    padding-top: 130px;
    padding-bottom: 70px;
  }
  .apv-hero__right{
    padding-left: 24px;
    padding-right: 24px;
  }
  .apv-hero__subtitle{
    white-space: normal;
    flex-wrap: wrap;
    gap: 12px;
  }
  .apv-hero__text{
    max-width: 100%;
    font-size: 18px;
  }

  /* CAPABILITY */
  .apv-capabilities{ padding: 56px 0; }
  .apv-capabilities__grid .field--name-field-our-capabilities,
  .apv-capabilities__grid .field--name-field-our-capabilities > .field__items{
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .apv-capability__card{
    grid-template-columns: 1fr 96px;
    padding: 22px 18px 22px 22px;
    min-height: 0;
  }
  .apv-capability__title{ font-size: 28px; }
  .apv-capability__text{ font-size: 18px; }
  .apv-capability__icon img,
  .apv-capability__icon svg{
    width: 76px !important;
  }

  /* ABOUT */
  .apv-about__grid{
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .apv-about__left{ padding: 64px 0; }
  .apv-about__right{ min-height: 360px; }

  /* Careers */
  .apv-careers{
    padding: 80px 0 70px;
    background-position: center;
  }
  .apv-careers__title{ font-size: 40px; }
  .apv-careers__content{ max-width: 640px; }
}

/* =========================
   About apv: Notable Insights
   ========================= */
.apv-insights{
  position: relative;
  padding: 70px 0;
  color: #0b3a63;
  background-image: url("/sites/default/files/images/Interface_Texture_Graphic.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

.apv-insights .apv-insights__title{
  color: #0b3a63;
  font-size: 44px;
  font-weight: 800;
  margin: 0 0 22px;
  line-height: 1.1;
}

.apv-insights .apv-insights__body{
  font-size: 25px;
  line-height: 1.65;
  max-width: 1200px;
}

/* =========================================================
   About APV – Meet Our Team
   ========================================================= */

.apv-team{
  padding: 80px 0 100px;
  background: #fff;
}

.apv-team__heading{
  font-size: 56px;
  font-weight: 800;
  color: #0b3a63;
  margin: 0 0 50px;
  line-height: 1.1;
  text-align: left;
}

/* Grid */
.apv-team__grid .field__items{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  margin: 0;
  padding: 0;
}

.apv-team__grid .field__item{
  margin: 0;
  padding: 0;
}

/* Card */
.apv-team-card{
  background: #fff;
  border: 1px solid #e6edf5;
  border-radius: 18px;
  overflow: hidden;
  text-align: left;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-shadow: 0 6px 18px rgba(2, 27, 42, 0.08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.apv-team-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(2, 27, 42, 0.14);
}

/* Media */
.apv-team-card__media{
  height: 240px;
  background: #f4f7fb;
  overflow: hidden;
}

.apv-team-card__media .field,
.apv-team-card__media .field__items,
.apv-team-card__media .field__item,
.apv-team-card__media picture{
  display: block;
  width: 100%;
  height: 100%;
}

.apv-team-card__media img,
.apv-team-card__media img.img-fluid{
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.apv-team-card:hover .apv-team-card__media img{
  transform: scale(1.03);
}

/* Body */
.apv-team-card__body{
  padding: 16px 18px 18px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.apv-team-card__name{
  font-size: 25px;
  font-weight: 800;
  margin: 0 0 4px;
  line-height: 1.2;
}

/* Kill Bootstrap hover/visited colors */
.apv-team-card__name a,
.apv-team-card__name a:hover,
.apv-team-card__name a:focus,
.apv-team-card__name a:active,
.apv-team-card__name a:visited{
  color: #0b3a63;
  text-decoration: none;
}

.apv-team-card__title{
  font-size: 20px;
  color: rgba(11, 58, 99, 0.75);
  margin: 0 0 14px;
}

/* Button */
.apv-team-card__btn{
  display: inline-block;
  padding: 7px 14px;
  margin-top: auto;
  border: 1px solid rgba(11, 58, 99, 0.35);
  border-radius: 999px;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align:center;
  color: #0b3a63;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.apv-team-card__btn:hover{
  background: rgba(11, 58, 99, 0.06);
  border-color: rgba(11, 58, 99, 0.55);
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 1199px){
  .apv-team__grid .field__items{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991px){
  .apv-team__grid .field__items{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
  }
  .apv-team-card__media{ height: 220px; }
}

@media (max-width: 575px){
  .apv-team{
    padding: 60px 0 80px;
  }
  .apv-team__heading{
    font-size: 42px;
    margin-bottom: 36px;
  }
  .apv-team__grid .field__items{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .apv-team-card__media{ height: 200px; }
}

/* =========================================================
   About APV – Our Core Values
   ========================================================= */
.apv-core-values{
  padding: 60px 0;
  background: #fff;
}

.apv-core-values__header{
  margin-bottom: 38px;
}

.apv-core-values__title{
  font-size: 56px;
  font-weight: 800;
  color: #0b3a63;
  margin: 0 0 14px;
  line-height: 1.1;
}

.apv-core-values__intro{
  font-size: 22px;
  line-height: 1.45;
  color: #0b3a63;
  opacity: .95;
}

.apv-core-values__items{
  display: flex;
  justify-content: center;
}

.apv-core-values__items .field__items{
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 40px;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
}

.apv-core-values__item{
  text-align: center;
  min-width: 130px;
}

.apv-core-values__icon{
  width: 130px;
  height: 130px;
  margin: 0 auto 16px;
}

.apv-core-values__icon img,
.apv-core-values__icon img.img-fluid{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.apv-core-values__label{
  font-size: 22px;
  color: #0b3a63;
  line-height: 1.2;
}

@media (max-width: 991px){
  .apv-core-values{ padding: 70px 0; }
  .apv-core-values__title{ font-size: 44px; }
  .apv-core-values__intro{ font-size: 20px; }
  .apv-core-values__items .field__items{ gap: 30px; }
  .apv-core-values__icon{ width: 104px; height: 104px; }
  .apv-core-values__label{ font-size: 20px; }
}

@media (max-width: 575px){
  .apv-core-values__title{ font-size: 38px; }
  .apv-core-values__items .field__items{ gap: 22px; }
  .apv-core-values__icon{ width: 92px; height: 92px; }
  .apv-core-values__label{ font-size: 18px; }
}

/* =========================================================
   AWARDS & RECOGNITION
========================================================= */

.apv-awards{
  padding: 70px 0;
}

.apv-awards__title{
  margin: 0 0 60px;
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}

/* =========================================================
   GRID (DRUPAL FIELD FIX)
========================================================= */

.apv-awards__grid > .field__items{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 80px;
  row-gap: 50px;
}

/* =========================================================
   ITEM
========================================================= */

.apv-awards__item{
  display: flex;
  gap: 24px;
 align-items: center;
}

.apv-awards__item--link{
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease;
}

.apv-awards__item--link:hover{
  transform: translateY(-2px);
}

/* =========================================================
   ICON (NO BACKGROUND)
========================================================= */

.apv-awards__icon{
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border-radius: 0;
}

.apv-awards__icon img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* =========================================================
   CONTENT
========================================================= */

.apv-awards__content{
  display: flex;
  flex-direction: column;
}

.apv-awards__item-title{
  margin: 0 0 6px;
  font-size: 25px;
  font-weight: 700;
  color: #0b3a63;
}

.apv-awards__link{
  font-size: 25px;
  color: #0b3a63;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px){
  .apv-awards__grid > .field__items{
    grid-template-columns: 1fr;
    row-gap: 40px;
  }

  .apv-awards__title{
    font-size: 42px;
  }
}


/* =========================================================
   About APV – Contract Vehicles
   ========================================================= */

.apv-contract{
  position: relative;
  padding: 60px 0 0;      /*  no bottom padding so image can touch footer */
  background: #fff;
  overflow: visible;
}

/* 2-column layout */
.apv-contract__grid{
  display: grid;
  grid-template-columns: 1fr 1.4fr; /* text | image */
  gap: 70px;
  align-items: start;
}

/* Left column */
.apv-contract__title{
  font-size: 56px;
  font-weight: 800;
  color: #0b3a63;
  margin: 0 0 18px;
  line-height: 1.1;
}

.apv-contract__text{
  font-size: 22px;
  line-height: 1.6;
  color: #0b3a63;
  max-width: 620px;
  margin: 0 0 28px;
}

/* Button (Learn More style) */
.apv-contract__button a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ef3b2d;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: 18px;
  padding: 16px 34px;
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
  transition: transform .2s ease, filter .2s ease;
}

.apv-contract__button a:hover,
.apv-contract__button a:focus{
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
  filter: brightness(0.97);
}

/* Right column (image) */
.apv-contract__image{
  position: relative;
  align-self: stretch;

  /*  makes image visually touch footer */
  margin-bottom: -120px;

  z-index: 2; /* keep image above footer background */
}

/* Drupal wrappers (so image sizing works no matter what markup Drupal outputs) */
.apv-contract__image .field,
.apv-contract__image .field__items,
.apv-contract__image .field__item,
.apv-contract__image picture{
  display: block;
  width: 100%;
}

/* Actual image */
.apv-contract__image img,
.apv-contract__image img.img-fluid{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

/* Ensure footer sits under the overlapping image */
.apv-footer{
  position: relative;
  z-index: 1;
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 1199px){
  .apv-contract__grid{
    grid-template-columns: 1fr 1.2fr;
    gap: 50px;
  }
}

@media (max-width: 991px){
  .apv-contract{
    padding: 70px 0 0;
  }

  .apv-contract__grid{
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .apv-contract__title{
    font-size: 44px;
  }

  /* Reduce overlap on mobile so it doesn't get weird */
  .apv-contract__image{
    margin-bottom: -60px;
  }
}

@media (max-width: 575px){
  .apv-contract{
    padding: 60px 0 0;
  }

  .apv-contract__title{
    font-size: 38px;
  }

  .apv-contract__text{
    font-size: 20px;
  }

  .apv-contract__button a{
    font-size: 16px;
    padding: 14px 28px;
  }

  .apv-contract__image{
    margin-bottom: -40px;
  }
}

/* =========================================================
   Blog Listing Grid (Views)
   Apply class "apv-blog-grid" to the VIEW (Other > CSS class)
   Set Row class to "apv-blog-item"
   ========================================================= */

/* Grid on the container that holds the rows */
.apv-blog-grid .view-content{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}

/* Make each views row behave nicely (equal height cards) */
.apv-blog-grid .view-content > .views-row,
.apv-blog-grid .view-content > .apv-blog-item{
  display: flex;
}

/* =========================================================
   APV Red Pill Button (Primary)
   Matches "Join Our Team" style
   ========================================================= */

.apv-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 36px;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition:
    background-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.2s ease;
}

/* Red filled pill */
.apv-btn--primary{
  background-color: #e03a2d;
  color: #fff;
  border: none;
}

/* Hover / focus */
.apv-btn--primary:hover,
.apv-btn--primary:focus-visible{
  background-color: #c83126;
  color: #fff;
  box-shadow: 0 10px 28px rgba(224,58,45,0.35);
  transform: translateY(-1px);
  text-decoration: none;
}

/* Active press */
.apv-btn--primary:active{
  transform: translateY(0);
  box-shadow: 0 6px 18px rgba(224,58,45,0.25);
}

/* Accessibility */
.apv-btn--primary:focus-visible{
  outline: none;
}

/* Optional small variant */
.apv-btn--sm{
  padding: 12px 28px;
  font-size: 14px;
}

/* =========================================================
   Blog Card
   Works with node--apv-blogs--teaser.html.twig markup
   ========================================================= */

.apv-blog-card{
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Image area */
.apv-blog-card__image{
  width: 100%;
  overflow: hidden;
}

.apv-blog-card__image img{
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

/* Content area */
.apv-blog-card__content{
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.apv-blog-card__title{
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 12px;
}

.apv-blog-card__title a{
  color: #0b3a63;
  text-decoration: none;
}

/* LOCK title color – no hover color change */
.apv-blog-card__title a:hover,
.apv-blog-card__title a:focus,
.apv-blog-card__title a:focus-visible,
.apv-blog-card:hover .apv-blog-card__title a{
  color: #0b3a63 !important;
  text-decoration: underline;
}

/* Excerpt */
.apv-blog-card__excerpt{
  font-size: 20px;
  line-height: 1.6;
  color: #444;
  margin: 0 0 24px;
}

/* Ensure trimmed body doesn't add unwanted spacing */
.apv-blog-card__excerpt > :last-child{
  margin-bottom: 0;
}

/* CTA sits at the bottom */
.apv-blog-card__cta{
  margin-top: auto;
}

/* =========================================================
   Blog Card Hover Effects
   ========================================================= */

/* Card hover lift */
.apv-blog-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.12);
}

/* Image zoom on hover */
.apv-blog-card:hover .apv-blog-card__image img{
  transform: scale(1.05);
}

/* =========================================================
   Accessibility: reduce motion
   ========================================================= */

@media (prefers-reduced-motion: reduce){
  .apv-blog-card{
    transition: none;
  }

  .apv-blog-card__image img{
    transition: none;
  }

  .apv-blog-card:hover{
    transform: none;
  }

  .apv-blog-card:hover .apv-blog-card__image img{
    transform: none;
  }
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 991px){
  .apv-blog-grid .view-content{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575px){
  .apv-blog-grid .view-content{
    grid-template-columns: 1fr;
  }

  .apv-blog-card__image img{
    height: 200px;
  }
}
/* =========================================================
   Capabilities page:
   ========================================================= */
.apv-capabilities-page{
  background: #fff;
}

.apv-capabilities-page__sections{
  padding: 80px 0;
}

/* =========================================================
   Section Banner (Full width)
   Paragraph: section_banner
   ========================================================= */

.apv-section-banner{
  /* full-bleed */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  /* background image */
  background: #041b2a var(--apv-banner-bg) center / cover no-repeat;

  /* height/spacing  */
  padding: 70px 0;
  padding-left: 150px;
  min-height: 190px;

  position: relative;
  overflow: hidden;
}

/* keep text above overlay */
.apv-section-banner .container{
  position: relative;
  z-index: 1;
}

.apv-section-banner__content{
  max-width: 980px;
}

/* People + Technology */
.apv-section-banner__h1{
  color: #fff;
  font-weight: 900;
  font-size: 64px;
  line-height: 1.02;
  margin: 0;
}

/* = INNOVATION */
.apv-section-banner__h2{
  color: #e53935;
  font-weight: 900;
  font-size: 72px;
  line-height: 1.02;
  margin-top: 10px;
}

/* Responsive */
@media (max-width: 991px){
  .apv-section-banner{
    padding: 55px 0;
    min-height: 170px;
     padding-left: 24px;
  }
  .apv-section-banner__h1{ font-size: 46px; }
  .apv-section-banner__h2{ font-size: 54px; }
  
}

@media (max-width: 575px){
  .apv-section-banner{
    padding: 45px 0;
    min-height: 150px;
    padding-left: 16px;
  }
  .apv-section-banner__h1{ font-size: 36px; }
  .apv-section-banner__h2{ font-size: 42px; }
}

/* =========================================================
   Capabilities Sub Section (FLEX = no indentation bugs)
   ========================================================= */

.apv-cap-subsection{
  padding:15px 0;
}

/* Row layout */
.apv-cap-subsection__row{
  display: flex;
  gap: 15px;
  align-items: flex-start;
}

/* Icon column (only exists when icon exists, thanks to Twig) */
.apv-cap-subsection__icon{
  width: 96px;
  flex: 0 0 96px;
}

.apv-cap-subsection__icon img{
  width: 84px;
  height: 84px;
  object-fit: contain;
  display: block;
}

/* Content */
.apv-cap-subsection__content{
  flex: 1 1 auto;
  min-width: 0;
}

/* Title */
.apv-cap-subsection__title{
  margin: 0 0 14px;
  font-size: 38px;
  font-weight: 800;
  line-height: 1.15;
  color: #0b3a63;
}

/* Text / bullets */
.apv-cap-subsection__text{
  font-size: 20px;
  line-height: 1.55;
  color: #0b3a63;
}

.apv-cap-subsection__text ul{
  margin: 0;
  padding-left: 22px;
}

.apv-cap-subsection__text li{
  margin: 10px 0;
}

/* Actions */
.apv-cap-subsection__actions{
  margin-top: 18px;
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}

/* Simple Button (NO icon) */
.apv-cap-subsection__btn--simple a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 30px;
  border-radius: 9999px;
  background: #e53935;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}

.apv-cap-subsection__btn--simple a:hover{
  background: #c62828;
  color: #fff;
}

/* Video Button (Bootstrap icon + border) */
.apv-cap-subsection__btn--video a{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 22px;
  border: 2px solid #e53935;
  border-radius: 9999px;
  font-size: 16px;
  font-weight: 800;
  color: #e53935;
  text-decoration: none;
}

.apv-cap-subsection__btn--video a::before{
  content: "\f4f4"; /* bi-play-fill */
  font-family: "bootstrap-icons";
  font-size: 22px;
  line-height: 1;
}

.apv-cap-subsection__btn--video a:hover{
  background: rgba(229, 57, 53, 0.08);
  text-decoration: none;
}

/* Responsive */
@media (max-width: 768px){
  .apv-cap-subsection__row{
    flex-direction: column;
  }

  .apv-cap-subsection__icon{
    width: auto;
    flex: 0 0 auto;
  }

  .apv-cap-subsection__title{
    font-size: 30px;
  }
}


/* =========================================================
   Capability Item Page
   ========================================================= */

.apv-capability-item{
  padding: 80px 0;
}

.apv-capability-item + .apv-capability-item{
  padding-top: 40px; /* tighter spacing between items */
}

/* Title */
.apv-capability-item__title{
  font-size: 40px;
  font-weight: 800;
  color: #0b3a63;
  margin-bottom: 20px;
  line-height: 1.2;
}

/* Text */
.apv-capability-item__text{
  font-size: 18px;
  line-height: 1.7;
  color: #2b2b2b;
  max-width: 820px;
}

/* Icon (right side) */
.apv-capability-item__icon{
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
}

.apv-capability-item__icon img{
  max-width: 120px;
  height: auto;
}

/* =========================
   Careers: Culture Highlights (EPT Slick Slider)
   ========================= */

#apv-careers-culture{
  padding: 70px 0;
}
#apv-careers-culture .paragraph--type--ept-slick-slider .slider-body > h2{
  margin: 0 0 18px;
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}
/* =========================
   Careers: Employee Benefits
   ========================= */

#apv-careers-benefits{
  padding: 20px 0;
}

.apv-careers-benefits__grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto; /* text + fixed icon column */
  align-items: start;
}

/* Keep text from becoming too wide (design-like) */
.apv-careers-benefits__content{
  max-width: 100%;
}

.apv-careers-benefits__title{
  margin: 0 0 18px;
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}

.apv-careers-benefits__text{
  font-size: 25px;
  line-height: 1.6;
  color: #2b4a66;
}

.apv-careers-benefits__text p:last-child{
  margin-bottom: 0;
}

/* Right media column: make it feel attached */
.apv-careers-benefits__media{
  display: flex;
  justify-content: flex-start; /* NOT flex-end */
  align-items: flex-start;
  margin-top: 6px; /* aligns with title baseline */
}

/* Icon sizing */
.apv-careers-benefits__media img{
  width: 220px;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Mobile */
@media (max-width: 992px){
  .apv-careers-benefits__grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .apv-careers-benefits__media{
    justify-content: flex-start;
  }
  .apv-careers-benefits__title{
    font-size: 40px;
  }
}

/* =========================================================
   Careers Page — LIFE AT APV section (FULL CSS)
   - Left: Title + description
   - Right: EPT Slideshow (#apv_career_life) image + pink panel
   ========================================================= */

/* Section spacing */
#apv-careers-life{
  padding: 80px 0;
}

/* Layout (2 columns) */
#apv-careers-life .apv-careers-life__grid{
  display: grid;
  grid-template-columns: 1fr 2fr; /* slider slightly wider */
  gap: 30px;
  align-items: start;
}

/* Left column typography */
#apv-careers-life .apv-careers-life__title{
  margin: 0 0 18px;
  font-size: 62px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}

#apv-careers-life .apv-careers-life__text{
  font-size: 25px;
  line-height: 1.6;
  color: #2b4a66;
  max-width: 520px;
}

#apv-careers-life .apv-careers-life__text p:last-child{
  margin-bottom: 0;
}

/* Right column wrapper */
#apv-careers-life .apv-careers-life__slider{
  width: 100%;
}

/* =========================================================
   EPT Slideshow — ONLY this slider (scoped by #apv_career_life)
   ========================================================= */

/* Remove EPT overlay background */
#apv-careers-life #apv_career_life .bg-inner{
  display: none !important;
}

/* Prevent inner container from constraining */
#apv-careers-life #apv_career_life .ept-container{
  max-width: 100%;
}

/* Make the slideshow look like one card */
#apv-careers-life #apv_career_life .ept-slideshow-wrapper{
  overflow: hidden;
  border-radius: 4px;
}

/* Each slide: image | pink panel (consistent height) */
#apv-careers-life #apv_career_life .ept-slideshow-wrapper .slides > .slide{
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  min-height: 400px; /* adjust if you want taller/shorter */
}

/* Image column */
#apv-careers-life #apv_career_life .field--name-field-ept-slideshow-slide{
  height: 100%;
  margin: 0;
}

#apv-careers-life #apv_career_life .field--name-field-ept-slideshow-slide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Pink panel (you moved quote into title field) */
#apv-careers-life #apv_career_life .field--name-field-ept-slideshow-title{
  background: #dec8e6;
  padding: 32px 36px;
  margin: 0;
  height: 100%;
}

/* Panel typography */
#apv-careers-life #apv_career_life .field--name-field-ept-slideshow-title p{
  margin: 0 0 14px;
  color: #111;
  line-height: 1.6;
  font-size: 14px;
}

/* Question line (you wrapped it in <strong>) */
#apv-careers-life #apv_career_life .field--name-field-ept-slideshow-title p strong{
  display: block;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
}

/* Remove empty spacer paragraphs (from &nbsp;) */
#apv-careers-life #apv_career_life .field--name-field-ept-slideshow-title p:empty{
  display: none;
}

/* Center arrows vertically */
#apv-careers-life #apv_career_life .flex-direction-nav a{
  top: 50% !important;
  transform: translateY(-50%);
}

/* Dots spacing */
#apv-careers-life #apv_career_life .flex-control-nav{
  margin-top: 18px;
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 992px){
  #apv-careers-life .apv-careers-life__grid{
    grid-template-columns: 1fr;
    gap: 28px;
  }

  #apv-careers-life .apv-careers-life__title{
    font-size: 42px;
  }

  #apv-careers-life .apv-careers-life__text{
    max-width: 100%;
  }

  /* Stack slide on mobile */
  #apv-careers-life #apv_career_life .ept-slideshow-wrapper .slides > .slide{
    grid-template-columns: 1fr;
    min-height: auto;
  }

  #apv-careers-life #apv_career_life .field--name-field-ept-slideshow-slide img{
    height: auto;
  }
}

/* =========================================================
   Careers — Interview Process
   Section id: #apv-careers-process
   ========================================================= */

#apv-careers-process{
  padding: 70px 0;
}

#apv-careers-process .apv-careers-process__title{
  margin: 0 0 28px;
  font-size: 62px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}

/* Center the process graphic and keep it large */
#apv-careers-process .apv-careers-process__image{
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 26px;
}

/* Media field can output <figure>, <picture>, <img> */
#apv-careers-process .apv-careers-process__image img{
    max-width: 100%;
      height: 400px;
    display: block;
}

/* Note under the image */
#apv-careers-process .apv-careers-process__note{
  font-size: 25px;
  line-height: 1.55;
  color: #2b4a66;
}


/* Responsive */
@media (max-width: 992px){
  #apv-careers-process{
    padding: 60px 0;
  }

  #apv-careers-process .apv-careers-process__title{
    font-size: 42px;
    margin-bottom: 20px;
  }

  #apv-careers-process .apv-careers-process__note{
    font-size: 18px;
  }
}

/* =========================================================
   Careers: Giving Back
   ID: #apv-careers-giving
   ========================================================= */

#apv-careers-giving{
  padding: 70px 0;
}

/* 2-column layout */
#apv-careers-giving .apv-careers-giving__grid{
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: start;
}

/* Left column */
#apv-careers-giving .apv-careers-giving__title{
  margin: 0 0 18px;
  font-size: 64px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}

#apv-careers-giving .apv-careers-giving__text{
  font-size: 25px;
  line-height: 1.55;
  color: #2b4a66;
  margin-bottom: 26px;
}

/* Remove random default margins from media/figures inside this section */
#apv-careers-giving figure,
#apv-careers-giving picture{
  margin: 0;
}

/* Gallery under the text (3 images) */
#apv-careers-giving .apv-careers-giving__gallery .field__items{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Make each gallery item behave like a card */
#apv-careers-giving .apv-careers-giving__gallery .field__item{
  overflow: hidden;
}

/* Gallery images */
#apv-careers-giving .apv-careers-giving__gallery img{
  width: 100%;
  height: 220px;          /* controls the gallery row height */
  object-fit: cover;
  display: block;
}

/* Right big image */
#apv-careers-giving .apv-careers-giving__right-img{
  width: 100%;
  overflow: hidden;
}

#apv-careers-giving .apv-careers-giving__right-img img{
  width: 100%;
  height: 560px;          /* controls big image height */
  object-fit: cover;
  display: block;
}

/* =========================
   Responsive
   ========================= */

@media (max-width: 992px){
  #apv-careers-giving{
    padding: 60px 0;
  }

  #apv-careers-giving .apv-careers-giving__grid{
    grid-template-columns: 1fr;
    gap: 30px;
  }

  #apv-careers-giving .apv-careers-giving__title{
    font-size: 42px;
  }

  #apv-careers-giving .apv-careers-giving__text{
    font-size: 18px;
  }

  #apv-careers-giving .apv-careers-giving__gallery .field__items{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  #apv-careers-giving .apv-careers-giving__gallery img{
    height: 145px;
  }

  #apv-careers-giving .apv-careers-giving__right-img img{
    height: 420px;
  }
}

@media (max-width: 576px){
  #apv-careers-giving .apv-careers-giving__gallery .field__items{
    grid-template-columns: 1fr;
  }

  #apv-careers-giving .apv-careers-giving__gallery img{
    height: 190px;
  }
}

/* =========================================================
   CONTACT PAGE (Twig: node--contact-page--full.html.twig)
   ========================================================= */

.apv-contact-page{
  padding: 70px 0;
}
/* Left column title */
.apv-contact-page__title{
  margin: 0 0 30px;
  font-size: 46px;
  font-weight: 800;
  line-height: 1.1;
  color: #0b3a63;
}

/* Left column body text */
.apv-contact-page__body{
  font-size: 25px;
  line-height: 1.7;
  color: #0b3a63;
}

.apv-contact-page__body p{
  margin: 0 0 16px;
}

/* Right column form card */
.apv-contact-page__card{
  width: 100%;
  max-width: 100%;
  margin-left: 30px;
  background: #fff;
  border: 2px solid #5b63d6;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  padding: 22px;
}

/* "Contact Form" label class (your webform element) */
.apv-contact-page__card .contact-form-label{
  display: block;
  font-size: 28px;
  font-weight: 500;
  color: #1b1f2a;
  margin: 0 0 14px;
}

/* Webform labels (Name, Email, Subject, Leave a Message) */
.apv-contact-page__card label{
  font-size: 20px;
  font-weight: 500;
  color: #5b6c7a;
  margin-bottom: 6px;
}

/* Inputs + textarea */
.apv-contact-page__card input[type="text"],
.apv-contact-page__card input[type="email"],
.apv-contact-page__card input[type="tel"],
.apv-contact-page__card input[type="url"],
.apv-contact-page__card textarea,
.apv-contact-page__card select{
  width: 100%;
  border: 1px solid #cfd6dd;
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 20px;
  box-shadow: none;
}

/* Textarea */
.apv-contact-page__card textarea{
  min-height: 110px;
  resize: vertical;
}

/* Remove focus glow from Bootstrap if you want cleaner look */
.apv-contact-page__card input:focus,
.apv-contact-page__card textarea:focus,
.apv-contact-page__card select:focus{
  outline: none;
  box-shadow: none;
}

/* Space between form items */
.apv-contact-page__card .form-item{
  margin: 0 0 14px;
}

/* Actions area */
.apv-contact-page__card .form-actions{
  margin-top: 18px;
}

/* Submit button:
   - If you correctly add .contact-form-submit to the submit element, it’ll apply.
   - Fallback targets the default Webform submit class too.
*/
.apv-contact-page__card .contact-form-submit,
.apv-contact-page__card .webform-button--submit,
.apv-contact-page__card input[type="submit"]{
  width: 100%;
  border-radius: 9999px;
  padding: 12px 18px;
  font-weight: 700;
  font-size: 20px;
}

 /*Optional: make button black like the design (uncomment)*/
.apv-contact-page__card .contact-form-submit,
.apv-contact-page__card .webform-button--submit,
.apv-contact-page__card input[type="submit"]{
  background: #000;
  border-color: #000;
}


/* Remove DXPR layout-builder block HR lines if they show up elsewhere */
.apv-contact-page .block-hr{
  display: none;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 992px){
  .apv-contact-page{
    padding: 40px 0;
  }

  .apv-contact-page__title{
    font-size: 34px;
  }

  .apv-contact-page__card{
    max-width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 576px){
  .apv-contact-page__title{
    font-size: 30px;
  }

  .apv-contact-page__card{
    padding: 18px 16px;
    border-radius: 12px;
  }
}
/* =========================================================
  Client Page
   ========================================================= */

.apv-federal-logos{
  padding: 70px 0;
}

/* Section title */
.apv-federal-logos__title{
  margin: 0 0 32px;
  font-size: 42px;
  font-weight: 800;
  line-height: 1.1;
  color: #0b3a63;
}

/* Divider between sections */
.apv-federal-logos__divider{
  height: 1px;
  background: rgba(0,0,0,.08);
  margin: 50px 0;
}

/* =================================
   IMPORTANT: FORCE GRID ON FIELD
================================= */

.apv-federal-logos__grid
.field--name-field-section-one-logos.field__items,
.apv-federal-logos__grid
.field--name-field-section-two-logos.field__items{
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  align-items: start;
  width: 100%;
}

/* Reset DXPR / Bootstrap column behavior */
.apv-federal-logos__grid .field__item{
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  max-width: none !important;
}

/* ================================
   Individual Logo Card
================================ */

.apv-federal-logo{
  text-align: center;
}

/* Image link */
.apv-federal-logo__image-link{
  display: block;
  text-decoration: none;
}

/* Logo image */
.apv-federal-logo__img{
  width: 100%;
  max-width:100%;     /* 👈 controls visual size */
  height: auto;
  max-height: 140px;
  object-fit: contain;
  display: block;
  margin: 0 auto 14px;
}

/* Slight lift on hover (image) */
.apv-federal-logo__image-link:hover .apv-federal-logo__img,
.apv-federal-logo__image-link:focus .apv-federal-logo__img{
  transform: translateY(-2px);
}

/* Text link below image */
.apv-federal-logo__link{
  display: inline-block;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.3;
  text-decoration: none;
  color: #0b3a63;
  transition: color .15s ease;
}

/* Hover state: RED */
.apv-federal-logo__link:hover,
.apv-federal-logo__link:focus{
  color: #d71920;
}

/* =================================
   Responsive
================================= */

@media (max-width: 991.98px){
  .apv-federal-logos__grid
  .field--name-field-section-one-logos.field__items,
  .apv-federal-logos__grid
  .field--name-field-section-two-logos.field__items{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px){
  .apv-federal-logos__grid
  .field--name-field-section-one-logos.field__items,
  .apv-federal-logos__grid
  .field--name-field-section-two-logos.field__items{
    grid-template-columns: 1fr;
  }
}

/* ======================================================
   Contract Vehicle List Page
====================================================== */

.apv-contract-vehicle-list-page__container{
  padding-top: 40px;
  padding-bottom: 40px;
}

/* Optional title/intro styling (safe even if not used) */
.apv-contract-vehicle-list-page__title{
  margin: 0 0 14px;
  font-weight: 800;
  line-height: 1.1;
}

.apv-contract-vehicle-list-page__intro{
  margin: 0 0 26px;
}

/* ======================================================
   Contract Vehicle Logo Grid 
====================================================== */

.apv-contract-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 64px 56px;
  padding: 24px 0 10px;
}

/* Responsive */
@media (max-width: 1199.98px){
  .apv-contract-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 56px 44px;
  }
}

@media (max-width: 991.98px){
  .apv-contract-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px 36px;
  }
}

@media (max-width: 575.98px){
  .apv-contract-grid{
    grid-template-columns: 1fr;
    gap: 34px;
  }
}

/* Make Drupal's field wrappers not interfere with grid */
.apv-contract-grid > .field{
  display: contents;
}
.apv-contract-grid .field__items{
  display: contents;
}
.apv-contract-grid .field__item{
  display: flex;
  justify-content: center;
}

/* ======================================================
   Each item output (from node--contract-vehicle--contract-grid-item)
   Whole item is linked + subtle hover lift
====================================================== */

.apv-contract-card{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  background: transparent;
  border: none;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Whole clickable area (logo + title) */
.apv-contract-card__link{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  color: inherit;
  text-decoration: none;
  cursor: pointer;

  transition: transform 0.18s ease;
}

/* Very slight lift on hover/focus */
.apv-contract-card__link:hover,
.apv-contract-card__link:focus{
  transform: translateY(-3px);
}

/* Logo area */
.apv-contract-card__logo{
  width: 100%;
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 16px;
}

/* Images scale consistently */
.apv-contract-card__logo img{
  max-width: 200px;
  max-height: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: transform 0.18s ease;
}

/* Caption */
.apv-contract-card__title{
  margin: 0;
  max-width: 260px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
  color: #6b6b6b;
  transition: color 0.18s ease;
}

/* Title turns red on hover/focus (overrides theme green) */
.apv-contract-card__link:hover .apv-contract-card__title,
.apv-contract-card__link:focus .apv-contract-card__title{
  color: #d71920;
}

/* Prevent image field wrappers from adding margins */
.apv-contract-card__logo figure,
.apv-contract-card__logo picture{
  margin: 0;
}

/* If some theme rule still overrides hover color */
.apv-contract-grid .apv-contract-card__link:hover .apv-contract-card__title,
.apv-contract-grid .apv-contract-card__link:focus .apv-contract-card__title{
  color: #d71920;
}

/* =====================================
   TESTIMONIAL PAGE (PARENT)
===================================== */
.apv-testimonial-page__list{
  padding: 80px 0;
}

/* =====================================
   TESTIMONIAL ITEM (PARAGRAPH)
===================================== */
.apv-testimonial{
  color: #0b3a63;
}

.field--name-field-testimonial-sections > .field__item:last-child .apv-testimonial{
  margin-bottom: 0;
}

/* =====================================
   DECOR ROW (line — quote — line)
===================================== */
.apv-testimonial__decor{
  display: flex;
  align-items: center;
  justify-content: center; /* <-- this centers the whole row */
  gap: 30px;
}

.apv-testimonial__decor--top{
  margin: 0 0 22px;
}

.apv-testimonial__decor--bottom{
  margin: 26px 0 0;
}

/* Lines */
.apv-testimonial__line{
  width: 190px;
  height: 2px;
  background-color: currentColor;
  opacity: 0.95;
}

/* =====================================
   QUOTE MARKS (CSS shapes)
   (prevents font-based curly quote issues)
===================================== */
.apv-testimonial__q{
  width: 70px;
  height: 38px;
  position: relative;
  display: inline-block;
}

/* Top quote */
.apv-testimonial__q--top::before,
.apv-testimonial__q--top::after{
  content: "";
  position: absolute;
  top: 0;
  width: 18px;
  height: 28px;
  background: currentColor;
  border-radius: 10px 10px 10px 0;
  transform: skewX(-10deg);
}

.apv-testimonial__q--top::before{ left: 14px; }
.apv-testimonial__q--top::after{ left: 38px; }

/* Bottom quote */
.apv-testimonial__q--bottom::before,
.apv-testimonial__q--bottom::after{
  content: "";
  position: absolute;
  bottom: 0;
  width: 18px;
  height: 28px;
  background: currentColor;
  border-radius: 10px 10px 0 10px;
  transform: skewX(-10deg);
}

.apv-testimonial__q--bottom::before{ left: 14px; }
.apv-testimonial__q--bottom::after{ left: 38px; }

/* =====================================
   TEXT + ATTRIBUTION
===================================== */
.apv-testimonial__text{
  font-size: 25px;
  line-height: 1.9;
}

/* Your content currently includes <br>, hide them to avoid forced line breaks */
.apv-testimonial__text br{
  display: none;
}

/* If the field ever outputs <p>, normalize spacing */
.apv-testimonial__text p{
  margin: 0;
}
.apv-testimonial__text p + p{
  margin-top: 12px;
}

.apv-testimonial__attribution{
  margin-top: 22px;
  font-weight: 800;
  font-size: 25px;
}

/* =====================================
   ORDER-BASED RULES (YOUR REQUIREMENTS)
   Markup confirmed:
   .field--name-field-testimonial-sections > .field__item (each testimonial)
===================================== */

/* 1) Only FIRST testimonial has TOP quote */
.field--name-field-testimonial-sections > .field__item:not(:first-child) .apv-testimonial__decor--top{
  display: none;
}

/* 1) FIRST testimonial: bottom decor slightly below attribution */
.field--name-field-testimonial-sections > .field__item:first-child .apv-testimonial__decor--bottom{
  margin-top: 34px;
}

/* 3) LAST testimonial: no quotes at all */
.field--name-field-testimonial-sections > .field__item:last-child .apv-testimonial__decor{
  display: none;
}

/* =====================================
   RESPONSIVE
===================================== */
@media (max-width: 992px){
  .apv-testimonial__line{
    width: 140px;
  }
}

@media (max-width: 768px){
  .apv-testimonial-page__list{
    padding: 60px 0;
  }

  .apv-testimonial{
    margin-bottom: 75px;
  }

  .apv-testimonial__line{
    width: 90px;
  }

  .apv-testimonial__text{
    font-size: 16px;
    line-height: 1.8;
  }

  .apv-testimonial__q{
    width: 56px;
    height: 32px;
  }

  .apv-testimonial__q--top::before,
  .apv-testimonial__q--top::after,
  .apv-testimonial__q--bottom::before,
  .apv-testimonial__q--bottom::after{
    width: 14px;
    height: 22px;
  }

  .apv-testimonial__q--top::before,
  .apv-testimonial__q--bottom::before{ left: 12px; }

  .apv-testimonial__q--top::after,
  .apv-testimonial__q--bottom::after{ left: 32px; }

  /* Keep the “slightly lower” rule on mobile too */
  .field--name-field-testimonial-sections > .field__item:first-child .apv-testimonial__decor--bottom{
    margin-top: 30px;
  }
}

/* =========================================================
   OUR IMPACT SECTION
   - Title + intro text
   - 2-column grid of impact cards
   - Equal height cards per row
   - Full-height left image tile (no bottom gap)
   - Bootstrap modal styling
========================================================= */

/* Section spacing */
.apv-impact{
  padding: 70px 0;
}

/* Title */
.apv-impact__title{
  margin: 0 0 18px;
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  color: #0b3a63;
}

/* Intro text */
.apv-impact__text{
  margin: 0 0 44px;
  font-size: 25px;
  line-height: 1.65;
  color: #0b3a63;
}

/* =========================================================
   GRID FIX (IMPORTANT)
   Markup is:
   .apv-impact__grid > .field.field__items > .field__item
========================================================= */

.apv-impact__grid{
  margin: 0;
  padding: 0;
}

/* The real parent of the cards */
.apv-impact__grid > .field--name-field-impact-cards.field__items{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  margin: 0;
  padding: 0;

  /* ensures equal-height items per row */
  align-items: stretch;
}

/* Remove default field spacing */
.apv-impact__grid .field__item{
  margin: 0;
  padding: 0;
  height: 100%;
}

/* =========================================================
   IMPACT CARD (Paragraph: impact_card_modal)
========================================================= */

.apv-impact-card{
  height: 100%;
}

/* Make the whole card clickable via the button */
.apv-impact-card__btn{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: stretch; /* important so left tile can be full height */
  gap: 22px;

  /* No left padding so the image reads "full" */
  padding: 0 24px 0 0;

  text-align: left;
  background: #fff;
  border: 2px solid #0b3a63;
  border-radius: 18px;

  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}

/* Hover effect */
.apv-impact-card__btn:hover,
.apv-impact-card__btn:focus-visible{
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0,0,0,0.12);
  outline: none;
}

/* Left image tile */
.apv-impact-card__icon{
  flex: 0 0 210px;     /* tile width */
  height: 100%;
  display: flex;
  align-items: stretch;
}

/* Remove Drupal field/media spacing inside the icon area */
.apv-impact-card__icon .field,
.apv-impact-card__icon .field__item,
.apv-impact-card__icon .media,
.apv-impact-card__icon .field--name-field-media-image{
  margin: 0;
  padding: 0;
  height: 100%;
}

/* Make the image truly fill the tile (fixes bottom gap) */
.apv-impact-card__icon img{
  width: 100%;
  height: 100%;
  object-fit: cover;

  /* left corners only */
  border-radius: 16px 0 0 16px;

  /* critical: remove inline-image baseline gap */
  display: block;
  line-height: 0;
}

/* Content area */
.apv-impact-card__content{
  flex: 1 1 auto;
  min-width: 0;

  /* vertical padding for text since button has no left padding */
  padding: 22px 0;
}

/* Title */
.apv-impact-card__title{
  margin: 0 0 6px;
  font-size: 25px;
  font-weight: 800;
  line-height: 1.2;
  color: #0b3a63;
}

/* Ensure field wrappers don’t add spacing */
.apv-impact-card__title .field,
.apv-impact-card__summary .field,
.apv-impact-card__content .field{
  margin: 0;
}

/* Summary */
.apv-impact-card__summary{
  font-size: 25px;
  line-height: 1.5;
  color: #0b3a63;
  opacity: 0.9;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991.98px){
  .apv-impact{
    padding: 70px 0;
  }

  .apv-impact__title{
    font-size: 42px;
  }

  .apv-impact__text{
    font-size: 18px;
    margin-bottom: 34px;
  }

  .apv-impact__grid > .field--name-field-impact-cards.field__items{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .apv-impact-card__title{
    font-size: 22px;
  }

  .apv-impact-card__summary{
    font-size: 18px;
  }

  .apv-impact-card__icon{
    flex-basis: 190px;
  }
}

/* Small phones: reduce image tile size */
@media (max-width: 575.98px){
  .apv-impact-card__btn{
    gap: 14px;
    padding-right: 16px;
    border-radius: 16px;
  }

  .apv-impact-card__icon{
    flex-basis: 130px;
  }

  .apv-impact-card__icon img{
    border-radius: 14px 0 0 14px;
  }

  .apv-impact-card__content{
    padding: 16px 0;
  }

  .apv-impact-card__title{
    font-size: 20px;
  }

  .apv-impact-card__summary{
    font-size: 15px;
  }
}

/* =========================================================
   APV IMPACT MODAL — MODERN OVERLAY PANEL
   508 / WCAG FRIENDLY
========================================================= */

/* ---------------------------------------------------------
   BACKDROP (strong separation from panel)
--------------------------------------------------------- */
.modal-backdrop{
  background-color: #000; /* neutral for contrast */
}

.modal-backdrop.show{
  opacity: 0.65;
}

/* ---------------------------------------------------------
   MODAL DIALOG SIZE / POSITION
--------------------------------------------------------- */
.apv-impact-modal .modal-dialog{
  max-width: 1100px;
  width: calc(100% - 48px);
}

/* ---------------------------------------------------------
   MODAL CONTENT (flat, modern)
--------------------------------------------------------- */
.apv-impact-modal .modal-content,
.apv-impact-modal .apv-impact-modal__content{
  border: 0 !important;
  border-radius: 0 !important; /* flat = modern */
  background: transparent !important;
  overflow: hidden;

  box-shadow:
    0 0 0 1px rgba(255,255,255,0.12), /* white edge */
    0 30px 90px rgba(0,0,0,0.45);    /* existing dark shadow */
}

/* ---------------------------------------------------------
   PANEL LAYOUT
--------------------------------------------------------- */
.apv-impact-modal__panel{
  background: #0b3a63; /* brand blue */
  color: #ffffff;

  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;

  padding: 64px 72px;
}

/* ---------------------------------------------------------
   LEFT COLUMN
--------------------------------------------------------- */
.apv-impact-modal__left{
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* =========================================================
   Impact Modal — Back Button (Bootstrap Icon)
========================================================= */

.apv-impact-modal__back{
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: none;

  background: #ffffff;
  color: #0b3a63;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;
  padding: 0;

  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  transition: transform .15s ease, box-shadow .15s ease;
}

/* Bootstrap icon */
.apv-impact-modal__back .bi{
  font-size: 26px;
  line-height: 1;
}

/* Hover */
.apv-impact-modal__back:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.35);
}

/* Focus — REQUIRED for 508 */
.apv-impact-modal__back:focus-visible{
  outline: 3px solid #ffffff;
  outline-offset: 4px;
}


/* ---------------------------------------------------------
   TITLE
--------------------------------------------------------- */
.apv-impact-modal__title{
  margin: 0;
  font-size: 56px;
  font-weight: 800;
  line-height: 1.05;
  color: #ffffff;
}

/* ---------------------------------------------------------
   RIGHT COLUMN (CONTENT)
--------------------------------------------------------- */
.apv-impact-modal__right{
  max-width: 760px;
}

/* Clean Drupal wrappers */
.apv-impact-modal__right .field,
.apv-impact-modal__right .field__item,
.apv-impact-modal__right .text-formatted{
  margin: 0;
}

/* Typography */
.apv-impact-modal__right p{
  margin: 0 0 20px;
  font-size: 22px;
  line-height: 1.75;
  color: rgba(255,255,255,0.95);
}

.apv-impact-modal__right p:last-child{
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   SUBTLE ENTRANCE ANIMATION
--------------------------------------------------------- */
.apv-impact-modal.fade .modal-dialog{
  transform: translateY(18px);
  transition: transform .22s ease-out, opacity .22s ease-out;
}

.apv-impact-modal.show .modal-dialog{
  transform: translateY(0);
}

/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */
@media (max-width: 991.98px){
  .apv-impact-modal__panel{
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 40px 28px;
  }

  .apv-impact-modal__title{
    font-size: 40px;
  }

  .apv-impact-modal__right p{
    font-size: 18px;
  }
}

@media (max-width: 575.98px){
  .apv-impact-modal .modal-dialog{
    width: calc(100% - 24px);
  }

  .apv-impact-modal__panel{
    padding: 32px 22px;
  }

  .apv-impact-modal__title{
    font-size: 32px;
  }

  .apv-impact-modal__right p{
    font-size: 16px;
    line-height: 1.65;
  }
}

/* =========================================================
   News Listing Grid (Views)
   Add class "apv-news-grid" to the view (Other > CSS class)
   ========================================================= */

.apv-news-grid .view-content{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* your mock shows 2 */
  gap: 32px;
}

.apv-news-grid .view-content > .views-row{
  display: flex;
}

/* =========================================================
   News Card
   ========================================================= */

.apv-news-card{
  width: 100%;
  background: #fff;
  border: 3px solid #0b3a63;
  border-radius: 18px;
  padding: 26px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
  transition: transform .25s ease, box-shadow .25s ease;
}

.apv-news-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.10);
}

.apv-news-card__date{
  font-size: 16px;
  color: #0b3a63;
  margin: 0 0 10px;
}

.apv-news-card__title{
  margin: 0 0 10px;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 800;
}

.apv-news-card__title a{
  color: #0b3a63;
  text-decoration: none;
}

.apv-news-card__title a:hover{
  color: #0b3a63; /* keep same color */
  text-decoration: underline;
}

.apv-news-card__excerpt{
  margin: 0 0 22px;
  font-size: 20px;
  line-height: 1.55;
  color: #0b3a63;
}

.apv-news-card__cta{
  margin-top: auto;
}

/* Responsive */
@media (max-width: 991px){
  .apv-news-grid .view-content{
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   REUSABLE BACK LINK — TEXT STYLE
========================================================= */

.apv-backlink{
  margin-bottom: 30px;
}

.apv-backlink__link{
  display: inline-flex;
  align-items: center;
  gap: 6px;

  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;

  color: #c40000; /* red */
  text-decoration: underline;

  transition: transform .2s ease, color .2s ease;
}

.apv-backlink__link i{
  font-size: 13px;
}

.apv-backlink__link:hover{
  color: #8f0000; /* darker red on hover */
  transform: translateX(-3px);
}

/* =========================================================
   TEAM MEMBER — FULL NODE (Executive Profile)
   (Header block removed; this CSS styles the profile section)
========================================================= */

.apv-team-profile{
  padding: 70px 0;
}

/* =========================================================
   LAYOUT
========================================================= */

.apv-team-profile__grid{
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 60px;
  align-items: start;
}

/* =========================================================
   PHOTO CARD
========================================================= */

.apv-team-profile__photo-card{
  background: #fff;
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  overflow: hidden; /* clips zoom on hover */
  transition: transform .25s ease, box-shadow .25s ease;
}

.apv-team-profile__photo-card img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
  transition: transform .25s ease;
  transform: translateZ(0);
}

.apv-team-profile__photo-card:hover img{
  transform: scale(1.04);
}

.apv-team-profile__photo-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 45px rgba(0,0,0,.08);
}

/* =========================================================
   NAME + JOB TITLE
========================================================= */

.apv-team-profile__name{
  margin: 0 0 10px;
  font-size: 52px;
  line-height: 1.05;
  font-weight: 800;
  color: #0b3a63;
}

.apv-team-profile__job-title{
  margin: 0 0 18px;
  font-size: 20px;
  font-weight: 600;
  color: #1f4f7a;
}

/* Normalize common formatter markup if job title outputs headings */
.apv-team-profile__job-title h1,
.apv-team-profile__job-title h2,
.apv-team-profile__job-title h3,
.apv-team-profile__job-title p{
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

/* =========================================================
   CONTACTS
========================================================= */

.apv-team-profile__contacts{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 25px;
  align-items: center;
}

/* Base wrapper for each contact item */
.apv-team-profile__contact{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Prevent squashed phone/email */
.apv-team-profile__contact,
.apv-team-profile__contact a{
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  color: #0b3a63;
  font-weight: 600;
  text-decoration: none;
}

/* Phone + email chips (non-icon items) */
.apv-team-profile__contact:not(.apv-team-profile__contact--linkedin){
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(11,58,99,.06);
}

/* LinkedIn icon button */
.apv-team-profile__contact--linkedin a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(11,58,99,.08);
  color: #0b3a63;
  font-size: 18px;
  transition: transform .18s ease, background-color .18s ease, color .18s ease;
}

.apv-team-profile__contact--linkedin a:hover{
  transform: translateY(-2px);
  background: #0b3a63;
  color: #fff;
}

/* If you decide to style phone/email links on hover */
.apv-team-profile__contact:not(.apv-team-profile__contact--linkedin) a:hover{
  text-decoration: underline;
}

/* Allow wrapping on very small screens only */
@media (max-width: 480px){
  .apv-team-profile__contact,
  .apv-team-profile__contact a{
    white-space: normal;
  }
}

/* =========================================================
   BIO
========================================================= */

.apv-team-profile__bio{
  font-size: 18px;
  line-height: 1.7;
  color: #0b3a63;
}

.apv-team-profile__bio p:last-child{
  margin-bottom: 0;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px){
  .apv-team-profile{
    padding: 60px 0;
  }

  .apv-team-profile__grid{
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .apv-team-profile__name{
    font-size: 40px;
  }
}


/* =========================================================
   NEWS ITEM — FULL
========================================================= */

.apv-news__wrap{
  padding: 80px 0;
}

.apv-news__title{
  margin: 0 0 12px;
  font-size: 52px;
  line-height: 1.08;
  font-weight: 800;
  color: #0b3a63;
}

.apv-news__date{
  margin: 0 0 26px;
  font-size: 14px;
  font-weight: 700;
  color: rgba(11,58,99,.75);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.apv-news__body{
  font-size: 18px;
  line-height: 1.75;
  color: #0b3a63;
}

.apv-news__body p:last-child{
  margin-bottom: 0;
}

@media (max-width: 991px){
  .apv-news__wrap{
    padding: 60px 0;
  }
  .apv-news__title{
    font-size: 40px;
  }
}

/* =========================================================
   BLOG FULL PAGE — LEFT IMAGE / RIGHT CONTENT
========================================================= */

.apv-blog__wrap{
  padding: 80px 0;
}

/* Two-column layout */
.apv-blog__grid{
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 60px;
  align-items: start;
}

/* Left image card */
.apv-blog__image-card{
  background: #fff;
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  overflow: hidden;
}

.apv-blog__image-card img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
}

/* Title */
.apv-blog__title{
  margin: 0 0 18px;
  font-size: 52px;
  line-height: 1.1;
  font-weight: 800;
  color: #0b3a63;
}

/* Body */
.apv-blog__body{
  font-size: 18px;
  line-height: 1.75;
  color: #0b3a63;
}

.apv-blog__body p:last-child{
  margin-bottom: 0;
}

/* Improve headings/spacing in body */
.apv-blog__body h2,
.apv-blog__body h3{
  margin: 1.8em 0 .7em;
  font-weight: 800;
}

.apv-blog__body ul,
.apv-blog__body ol{
  margin: 0 0 1.2em;
  padding-left: 1.2em;
}
/* =========================================
   BLOG IMAGE HOVER ZOOM EFFECT
========================================= */

/* Make sure overflow is hidden so zoom stays inside card */
.apv-blog__image-card{
  overflow: hidden;
}

/* Smooth transition */
.apv-blog__image-card img{
  transition: transform .35s ease;
  transform: translateZ(0);
}

/* Slight zoom on hover */
.apv-blog__image-card:hover img{
  transform: scale(1.05);
}

/* Responsive */
@media (max-width: 991px){
  .apv-blog__wrap{
    padding: 60px 0;
  }

  .apv-blog__grid{
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .apv-blog__title{
    font-size: 40px;
  }
}

/* =========================================================
   CONTRACT VEHICLE ITEM — FULL
========================================================= */

.apv-cv__wrap{
  padding: 80px 0;
}

.apv-cv__section-title{
  margin: 0 0 14px;
  font-size: 52px;
  line-height: 1.08;
  font-weight: 800;
  color: #0b3a63;
}

/* Body */
.apv-cv__body{
  font-size: 18px;
  line-height: 1.75;
  color: #0b3a63;
}

.apv-cv__body p:last-child{
  margin-bottom: 0;
}

/* Nice spacing for headings in body */
.apv-cv__body h2,
.apv-cv__body h3{
  margin: 1.8em 0 .7em;
  font-weight: 800;
}

@media (max-width: 991px){
  .apv-cv__wrap{
    padding: 60px 0;
  }

  .apv-cv__title{
    font-size: 40px;
  }
}

/* =====================================
   TECHNOLOGY PAGE
===================================== */

.apv-technology-page__content {
  padding: 80px 0;
}

.apv-technology-page__body {
  font-size: 20px;
  line-height: 1.7;
  color: #0b3a63;
  margin-bottom: 60px;
}



