/* ============================================================
   Northern Doors — "Refined" refresh (Nine10, Sept 2026)
   2 of 2: home page layout. Three approved changes, done in CSS
   so they revert by disabling this snippet. No content, copy or
   images change and nothing is edited in Elementor.

   1. Divisions: one-at-a-time carousel -> all four as cards
   2. Products: clipped panel -> two columns, all 33 items,
      intro column sticky as the longer list scrolls past
   3. Brands: moving carousel -> one settled row

   Swiper clones slides at runtime so a loop has something to
   scroll into. Laid out statically those clones appear as extra
   half-built cards and repeated logos, so they are hidden. Only
   true clones carry the bare "swiper-slide-duplicate" class —
   "duplicate-prev/next/active" also land on REAL slides beside
   the clones, hence the :not() guards below.

   All selectors are home-page element IDs; no other page is
   affected.
   ============================================================ */

/* ============================================================
   1a. DIVISION CARD SURFACE  (all widths)
   The slide's copy panel is an Elementor container painted with
   a blue gradient PLUS a texture image, carrying white type and
   a solid orange button. Full width as a carousel that read as a
   banner; repeated four times as cards it was far too heavy. It
   is now a plain white card body — dark heading, grey copy, navy
   text link — so the photography does the work.
   ============================================================ */
.elementor-element-e63704f .swiper-slide > .e-con{
  background-color:#fff !important;
  border:1px solid #E3E6EB;
  border-radius:8px;
  overflow:hidden;
  height:100%;
  box-shadow:0 1px 2px rgba(16,24,40,.05);
  transition:transform .18s cubic-bezier(.4,0,.2,1),
             box-shadow .18s cubic-bezier(.4,0,.2,1),
             border-color .18s cubic-bezier(.4,0,.2,1);
}
.elementor-element-e63704f .swiper-slide > .e-con:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(16,24,40,.12);
  border-color:#CDD3DC;
}

/* Copy panel: strip the gradient, the texture and the overlay */
.elementor-element-e63704f .swiper-slide .e-con-inner > .e-con:nth-child(1){
  background-image:none !important;
  background-color:#fff !important;
  display:flex;
  flex-direction:column;
  --padding-top:24px;
  --padding-bottom:26px;
  --padding-left:22px;
  --padding-right:22px;
  --gap:12px 12px;
}
.elementor-element-e63704f .swiper-slide .e-con-inner > .e-con:nth-child(1)::before{
  background-image:none !important;
  background-color:transparent !important;
}

/* Photo band: each photo is a container background sized by a
   420px spacer widget, which made the cards nearly square and
   very image heavy. A 4:3 band balances photo against copy.
   background-position is left alone — the truck shot is
   deliberately anchored to bottom centre. */
.elementor-element-e63704f .swiper-slide .e-con-inner > .e-con:nth-child(2){
  aspect-ratio:4/3;
  min-height:0 !important;
  background-size:cover !important;
}
.elementor-element-e63704f .swiper-slide .elementor-widget-spacer{
  display:none !important;
}

/* Card heading */
.elementor-element-e63704f .swiper-slide .elementor-widget-heading .elementor-heading-title{
  color:#16181D !important;
  font-size:1.18rem !important;
  line-height:1.3 !important;
  letter-spacing:-.015em !important;
}

/* Card copy */
.elementor-element-e63704f .swiper-slide .elementor-widget-text-editor{
  color:#6B7280 !important;
  font-size:.9rem !important;
  line-height:1.6 !important;
}

/* Orange button -> quiet navy text link with an arrow.
   margin-top:auto drops it to the card floor so all four links
   line up regardless of how long the copy is. */
.elementor-element-e63704f .swiper-slide .elementor-widget-button{
  margin-top:auto;
  padding-top:4px;
}
.elementor-element-e63704f .swiper-slide .elementor-button{
  background-color:transparent !important;
  background-image:none !important;
  border:0 !important;
  padding:0 !important;
  box-shadow:none !important;
  color:var(--e-global-color-primary,#194698) !important;
  fill:var(--e-global-color-primary,#194698) !important;
  font-size:.9rem !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
}
.elementor-element-e63704f .swiper-slide .elementor-button:hover,
.elementor-element-e63704f .swiper-slide .elementor-button:focus-visible{
  background-color:transparent !important;
  color:var(--e-global-color-primary,#194698) !important;
  transform:none !important;
  box-shadow:none !important;
}
.elementor-element-e63704f .swiper-slide .elementor-button-text::after{
  content:"\2192";
  display:inline-block;
  margin-left:.45em;
  transition:transform .18s cubic-bezier(.4,0,.2,1);
}
.elementor-element-e63704f .swiper-slide .elementor-button:hover .elementor-button-text::after{
  transform:translateX(3px);
}

/* ============================================================
   1b. DIVISIONS GRID  (768px and up)
   Below 768px the original one-at-a-time carousel is kept.
   ============================================================ */
@media (min-width:768px){
  .elementor-element-e63704f .swiper-wrapper{
    display:grid !important;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
    transform:none !important;
    align-items:stretch;
  }
  .elementor-element-e63704f .swiper-slide{
    width:auto !important;
    margin:0 !important;
    height:auto !important;
  }
  .elementor-element-e63704f .swiper-slide-duplicate{display:none !important}
  .elementor-element-e63704f .swiper-slide-duplicate-active:not(.swiper-slide-duplicate),
  .elementor-element-e63704f .swiper-slide-duplicate-prev:not(.swiper-slide-duplicate),
  .elementor-element-e63704f .swiper-slide-duplicate-next:not(.swiper-slide-duplicate){
    display:block !important;
  }

  /* Card interior: photo on top, copy beneath */
  .elementor-element-e63704f .swiper-slide > .e-con > .e-con-inner{
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    gap:0 !important;
    height:100%;
  }
  .elementor-element-e63704f .swiper-slide .e-con-inner > .e-con{
    --width:100%;
    width:100% !important;
  }
  .elementor-element-e63704f .swiper-slide .e-con-inner > .e-con:nth-child(2){order:1}
  .elementor-element-e63704f .swiper-slide .e-con-inner > .e-con:nth-child(1){
    order:2;
    flex:1 1 auto;
  }

  .elementor-element-e63704f .elementor-swiper-button,
  .elementor-element-e63704f .swiper-pagination{display:none !important}
}

/* Two across on tablet */
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-e63704f .swiper-wrapper{grid-template-columns:repeat(2,1fr)}
}

/* ============================================================
   2. PRODUCTS — two columns, nothing hidden
   The panel was capped to roughly its neighbour's height, so 23
   of the 33 product lines were never visible to a visitor. The
   uncapping applies at every width; the two columns and the
   sticky intro are desktop only.
   ============================================================ */
.elementor-element-4c8c970{--align-items:flex-start}
.elementor-element-1689a22{--container-widget-height:auto;align-self:flex-start}
.elementor-element-f80cfd2{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
.elementor-element-f80cfd2 ul{margin:0;padding-left:1.1em}

@media (min-width:768px){
  .elementor-element-f80cfd2 ul{columns:2;column-gap:30px}
  .elementor-element-f80cfd2 li{
    break-inside:avoid;
    -webkit-column-break-inside:avoid;
    page-break-inside:avoid;
  }
  /* Intro column stays with you; 120px clears the sticky header */
  .elementor-element-102a283{position:sticky;top:120px;align-self:flex-start}
}

/* ============================================================
   3. BRANDS — one settled row instead of a moving carousel
   ============================================================ */
@media (min-width:768px){
  .elementor-element-b769f39 .swiper-wrapper{
    display:flex !important;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:22px 40px;
    transform:none !important;
  }
  .elementor-element-b769f39 .swiper-slide{
    width:auto !important;
    margin:0 !important;
    flex:0 0 auto;
  }
  .elementor-element-b769f39 .swiper-slide-duplicate{display:none !important}
  .elementor-element-b769f39 .elementor-swiper-button,
  .elementor-element-b769f39 .swiper-pagination{display:none !important}
  .elementor-element-b769f39 .swiper-slide img,
  .elementor-element-b769f39 .elementor-carousel-image{
    max-height:42px !important;
    height:42px !important;
    width:auto !important;
    max-width:150px !important;
    object-fit:contain !important;
    background-size:contain !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
  }
}

/* ============================================================
   4. REMAINING SECTIONS — carrying the mockup through the page
   These were missed in the first pass: the page got the type and
   button language but kept its old section treatments.
   ============================================================ */

/* ---- 4a. Services: tick list in two columns ---------------- */
@media (min-width:768px){
  .elementor-element-514c9c2 .elementor-icon-list-items{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px 24px;
  }
}

/* ---- 4b. Emergency band: white -> navy ---------------------
   The mockup makes this a dark band so the 24/7 message carries
   weight instead of reading as another white section. */
.elementor-element-9ec3aa9{
  background-color:#000343 !important;
}
.elementor-element-9ec3aa9 .elementor-heading-title{color:#fff !important}
.elementor-element-9ec3aa9 .elementor-widget-text-editor{color:rgba(255,255,255,.78) !important}
.elementor-element-9ec3aa9 .elementor-widget-text-editor strong{color:#fff !important}
/* the outline button needs to read on navy */
.elementor-element-d4c6460 .elementor-button{
  background-color:transparent !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.55) !important;
}
.elementor-element-d4c6460 .elementor-button:hover{
  background-color:rgba(255,255,255,.12) !important;
  border-color:#fff !important;
  color:#fff !important;
}

/* ---- 4c. Products: tinted bullet panel -> hairline table ---- */
.elementor-element-f80cfd2{
  background-color:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
  color:#16181D !important;
}
.elementor-element-f80cfd2 ul{
  list-style:none !important;
  padding-left:0 !important;
  margin:0 !important;
  border-top:1px solid #E3E6EB;
}
.elementor-element-f80cfd2 li{
  list-style:none !important;
  padding:13px 4px;
  border-bottom:1px solid #E3E6EB;
  font-size:.92rem;
  font-weight:600;
  line-height:1.4;
  color:#16181D;
}
.elementor-element-f80cfd2 li::marker{content:""}

/* ---- 4d. Brands: label above, logos centred ---------------- */
@media (min-width:768px){
  .elementor-element-57be662 > .e-con-inner{
    flex-direction:column !important;
    align-items:center !important;
    gap:24px !important;
  }
  .elementor-element-eaa55e6{width:100% !important}
  .elementor-element-eaa55e6 .elementor-heading-title{
    text-align:center !important;
    font-size:.76rem !important;
    font-weight:700 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
    color:#6B7280 !important;
  }
  .elementor-element-b769f39{width:100% !important}
}

/* ---- 4e. Safety commitment card ---------------------------- */
.elementor-element-27ceff3{
  border-radius:8px;
  box-shadow:0 10px 30px rgba(16,24,40,.12);
  --padding-top:40px;
  --padding-bottom:40px;
  --padding-left:42px;
  --padding-right:42px;
}
.elementor-element-352c0cd .elementor-heading-title{
  font-size:1.6rem !important;
  line-height:1.16 !important;
  letter-spacing:-.02em !important;
}

/* ---- 4f. Testimonial: tinted box -> quote card ------------- */
.elementor-element-bd745ff{background-color:transparent !important}
.elementor-element-b65420e .elementor-testimonial-wrapper{
  background-color:#F5F6F8 !important;
  border-left:3px solid #E86D25;
  border-radius:6px;
  padding:26px 28px;
}
.elementor-element-b65420e .elementor-testimonial-content{
  font-size:1.02rem !important;
  line-height:1.6 !important;
  color:#16181D !important;
}

/* ---- 4g. Get in touch: cyan panel -> navy, rounded map ------ */
.elementor-element-8463106{
  background-image:none !important;
  background-color:#000343 !important;
  --padding-top:56px;
  --padding-bottom:56px;
  --padding-left:48px;
  --padding-right:48px;
}
.elementor-element-6f3f4ee .elementor-heading-title{
  font-size:2rem !important;
  line-height:1.16 !important;
  letter-spacing:-.02em !important;
}
.elementor-element-43d48f9 .elementor-widget-text-editor{
  color:rgba(255,255,255,.78) !important;
}
.elementor-element-261c608 .elementor-button{
  background-color:transparent !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.55) !important;
}
.elementor-element-261c608 .elementor-button:hover{
  background-color:rgba(255,255,255,.12) !important;
  border-color:#fff !important;
}

/* ---- 4h. Final polish ------------------------------------- */
/* Testimonial carousel: the bright blue circular arrows fought
   with the quiet quote card. Muted to match the page. */
.elementor-element-c5cebe6 .elementor-swiper-button{
  background-color:transparent !important;
  color:#6B7280 !important;
  fill:#6B7280 !important;
  border:1px solid #E3E6EB !important;
  border-radius:6px !important;
  transition:border-color .18s,color .18s;
}
.elementor-element-c5cebe6 .elementor-swiper-button:hover{
  border-color:#194698 !important;
  color:#194698 !important;
  fill:#194698 !important;
}

/* Contact block: give the copy column room so it is not squeezed
   against a dominant map */
@media (min-width:1025px){
  .elementor-element-8463106{--width:42% !important}
  .elementor-element-c1254cd{--width:58% !important}
}
/* The two CTAs sat in a fixed row inside a narrow panel and broke
   mid-word; let them wrap onto a second line instead. */
.elementor-element-57f1305{
  flex-wrap:wrap !important;
  --gap:12px 12px;
}

/* Safety card: the mockup gives this real presence */
@media (min-width:1025px){
  .elementor-element-27ceff3{max-width:600px}
}

/* ============================================================
   5. MOCKUP PARITY PASS
   Eyebrows, section type scale, and the section treatments that
   the first pass left on their old Elementor styling.
   ============================================================ */

/* ---- 5a. Eyebrows ------------------------------------------
   Added as heading widgets (rendered as <p>) above each section
   title. Same treatment as the mockup: small, uppercase, wide
   tracking, brand navy — or translucent white on dark bands. */
.elementor-element-eb1a001 .elementor-heading-title,
.elementor-element-eb1a003 .elementor-heading-title,
.elementor-element-eb1a005 .elementor-heading-title,
.elementor-element-eb1a006 .elementor-heading-title,
.elementor-element-eb1a008 .elementor-heading-title{
  font-size:.75rem !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:var(--e-global-color-primary,#194698) !important;
}
.elementor-element-eb1a002 .elementor-heading-title,
.elementor-element-eb1a007 .elementor-heading-title{
  font-size:.75rem !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:rgba(255,255,255,.72) !important;
}
/* Eyebrow sits tight to the heading it introduces */
.elementor-element-eb1a001,
.elementor-element-eb1a002,
.elementor-element-eb1a003,
.elementor-element-eb1a005,
.elementor-element-eb1a006,
.elementor-element-eb1a007,
.elementor-element-eb1a008{
  margin-bottom:-6px;
}

/* ---- 5b. Section heading scale ----------------------------
   Matches the mockup's h2 ramp: clamp(1.65rem, 1.1rem + 1.7vw,
   2.4rem), 1.16 leading, -.02em tracking. Scoped to section
   titles so card and staff headings keep their own sizes. */
.elementor-element-a4163be .elementor-heading-title,
.elementor-element-f44447d .elementor-heading-title,
.elementor-element-b89931c .elementor-heading-title,
.elementor-element-a56fb52 .elementor-heading-title,
.elementor-element-352c0cd .elementor-heading-title,
.elementor-element-6f3f4ee .elementor-heading-title,
.elementor-element-eb1a004 .elementor-heading-title{
  font-size:clamp(1.65rem, 1.1rem + 1.7vw, 2.4rem) !important;
  line-height:1.16 !important;
  letter-spacing:-.02em !important;
  font-weight:700 !important;
}

/* ---- 5c. Divisions heading block --------------------------- */
.elementor-element-eb1a004 .elementor-heading-title{
  white-space:nowrap;          /* "Four divisions, one call" on one line */
}
.elementor-element-eb1a004{margin-bottom:14px}

/* ---- 5d. Emergency band: stacked -> two columns ------------
   Copy on the left, the two CTAs held on the right, as in the
   mockup. Below 1025px it falls back to the original stack. */
@media (min-width:1025px){
  .elementor-element-9ec3aa9 > .e-con-inner{
    display:grid !important;
    grid-template-columns:1fr auto auto;
    grid-template-areas:
      "eb  b1 b2"
      "ttl b1 b2"
      "cpy b1 b2";
    column-gap:20px;
    row-gap:0;
    align-items:center;
  }
  .elementor-element-eb1a002{grid-area:eb}
  .elementor-element-f44447d{grid-area:ttl}
  .elementor-element-43eeb87{grid-area:cpy}
  .elementor-element-445e009{grid-area:b1;align-self:center}
  .elementor-element-d4c6460{grid-area:b2;align-self:center}
  .elementor-element-9ec3aa9 .elementor-heading-title,
  .elementor-element-9ec3aa9 .elementor-widget-text-editor{
    text-align:left !important;
  }
  .elementor-element-f44447d{--align-self:stretch}
  .elementor-element-43eeb87{max-width:62ch}
}

/* ---- 5e. Services photo caption: floating box -> navy bar --- */
.elementor-element-1a6e12a{
  --gap:0px 0px;
}
.elementor-element-e315fd0 img{
  border-radius:6px 6px 0 0 !important;
  display:block;
  width:100%;
}
.elementor-element-5ba54c0{
  background-color:#000343;
  border-radius:0 0 6px 6px;
  padding:20px 24px;
  margin:0 !important;
  box-shadow:none !important;
}
.elementor-element-5ba54c0 .elementor-heading-title{
  color:rgba(255,255,255,.80) !important;
  font-size:.9rem !important;
  font-weight:400 !important;
  line-height:1.55 !important;
  letter-spacing:0 !important;
  text-align:left !important;
}

/* ---- 5f. Safety commitment: match the mockup card ---------- */
.elementor-element-27ceff3{
  background-color:#fff !important;
  border-radius:6px !important;
  box-shadow:0 10px 30px rgba(16,24,40,.10);
  --padding-top:44px;
  --padding-bottom:44px;
  --padding-left:46px;
  --padding-right:46px;
  --gap:0px 0px;
  --flex-direction:column;
  --align-items:flex-start;
}
.elementor-element-460c181{
  font-size:1rem !important;
  line-height:1.65 !important;
  color:var(--e-global-color-text,#3D3D3D) !important;
  margin-bottom:22px !important;
  max-width:52ch;
}
/* COR and ISNetworld marks at one height, as in the mockup */
.elementor-element-8352d8f img,
.elementor-element-245875f img{
  height:78px !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain;
}
.elementor-element-8352d8f,
.elementor-element-245875f{
  width:auto !important;
}

/* ---- 5g. Reviews ------------------------------------------- */
/* The quote card is the loop container, so the stars, quote and
   name all sit inside one card rather than the stars floating
   above it. */
.elementor-element-bd745ff{
  background-color:#F5F6F8 !important;
  border-left:3px solid #E86D25;
  border-radius:6px !important;
}
.elementor-element-b65420e .elementor-testimonial-wrapper{
  background-color:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
}
/* Gold star graphic warmed to the brand orange */
.elementor-element-60e5c6e img{
  filter:hue-rotate(-18deg) saturate(1.45) brightness(.94);
}
.elementor-element-60e5c6e{margin-bottom:10px}
/* Review photo caption: floating blue box -> navy bar */
.elementor-element-59e378a{
  background-color:#194698;
  border-radius:0 0 6px 6px;
  padding:18px 22px;
  margin:0 !important;
}
.elementor-element-59e378a .elementor-heading-title{
  color:rgba(255,255,255,.86) !important;
  font-size:.9rem !important;
  font-weight:400 !important;
  line-height:1.55 !important;
  letter-spacing:0 !important;
}
.elementor-element-ff936cc img{
  border-radius:6px 6px 0 0 !important;
  display:block;
  width:100%;
}

/* ---- 5h. Get in touch: full width navy band ---------------- */
.elementor-element-43d48f9{
  background-color:#000343 !important;
  --padding-top:0px;
  --padding-bottom:0px;
  --padding-left:0px;
  --padding-right:0px;
  --gap:0px 0px;
}
.elementor-element-a839fdb{
  --width:100%;
  max-width:100% !important;
  border-radius:0 !important;
  overflow:hidden;
}
.elementor-element-8463106{
  border-radius:0 !important;
}
.elementor-element-b3e300b{
  font-size:1.0625rem !important;
  line-height:1.65 !important;
  max-width:46ch;
}

/* ============================================================
   6. PARITY PASS — corrections
   ============================================================ */

/* ---- 6a. Emergency: the CTAs live in their own container ----
   so the grid area has to be assigned to that container, not to
   the two button widgets. */
@media (min-width:1025px){
  .elementor-element-9ec3aa9 > .e-con-inner{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "eb  cta"
      "ttl cta"
      "cpy cta";
  }
  .elementor-element-9490e4a{
    grid-area:cta;
    align-self:center;
    --width:auto;
    width:auto !important;
  }
}

/* ---- 6b. Photo captions: absolute overlay -> attached bar ---
   Both captions are absolutely positioned over their photo and
   carry an entrance animation that leaves them invisible until
   scrolled into view. Pinned under the image and always visible. */
.elementor-element-5ba54c0,
.elementor-element-59e378a{
  position:static !important;
  width:100% !important;
  max-width:100% !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
  animation:none !important;
}
.elementor-element-5ba54c0.elementor-invisible,
.elementor-element-59e378a.elementor-invisible{
  visibility:visible !important;
  opacity:1 !important;
}
.elementor-element-5ba54c0{background-color:#000343 !important}
.elementor-element-59e378a{background-color:#194698 !important}

/* ---- 6c. Review arrows -------------------------------------
   The icon is an inline SVG that does not inherit currentColor,
   so recolouring the button alone left two empty outlines. */
.elementor-element-c5cebe6 .elementor-swiper-button{
  width:40px;
  height:40px;
  padding:0 !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
}
.elementor-element-c5cebe6 .elementor-swiper-button svg{
  width:14px;
  height:14px;
  fill:var(--e-global-color-primary,#194698) !important;
  transition:fill .18s;
}
.elementor-element-c5cebe6 .elementor-swiper-button:hover svg{
  fill:#fff !important;
}
.elementor-element-c5cebe6 .elementor-swiper-button:hover{
  background-color:var(--e-global-color-primary,#194698) !important;
  border-color:var(--e-global-color-primary,#194698) !important;
}

/* ---- 6d. Divisions heading colour -------------------------- */
.elementor-element-eb1a004 .elementor-heading-title{
  color:var(--e-global-color-secondary,#000343) !important;
}

/* ---- 6e. Contact map: soften the edge ---------------------- */
.elementor-element-1ba7ee9 img{
  border-radius:8px;
}

/* Caption bar sits flush under its photo — kill the column gap
   between the image widget and the caption in both sections. */
.elementor-element-1a6e12a,
.elementor-element-1a6e12a > .e-con-inner{
  --gap:0px 0px !important;
  row-gap:0 !important;
}
.elementor-element-5ba54c0,
.elementor-element-59e378a{
  border-radius:0 0 6px 6px !important;
  margin-top:0 !important;
}

/* ============================================================
   7. SPACING PASS
   ============================================================ */

/* ---- 7a. Eyebrow sits close to its heading -----------------
   Container gap is 20px; a negative margin pulls the pair to a
   ~6px relationship so they read as one unit. */
.elementor-element.elementor-element-eb1a001,
.elementor-element.elementor-element-eb1a002,
.elementor-element.elementor-element-eb1a003,
.elementor-element.elementor-element-eb1a005,
.elementor-element.elementor-element-eb1a006,
.elementor-element.elementor-element-eb1a007,
.elementor-element.elementor-element-eb1a008{
  margin-bottom:-14px !important;
}

/* ---- 7b. Review photo caption flush to its photo ----------- */
.elementor-element-325d62f{
  --gap:0px 0px !important;
  gap:0 !important;
}

/* ---- 7c. Section rhythm -----------------------------------
   Vertical padding was inconsistent (20px to 60px) and the
   emergency band in particular sat too tight under its eyebrow.
   One rhythm across the page. */
@media (min-width:768px){
  .elementor-element-d5ef06e > .e-con-inner,
  .elementor-element-4c8c970 > .e-con-inner,
  .elementor-element-0314942 > .e-con-inner{
    padding-top:80px !important;
    padding-bottom:80px !important;
  }
  .elementor-element-bd905f7 > .e-con-inner{
    padding-top:80px !important;
    padding-bottom:80px !important;
  }
  .elementor-element-9ec3aa9 > .e-con-inner{
    padding-top:64px !important;
    padding-bottom:64px !important;
  }
  .elementor-element-57be662 > .e-con-inner,
  .elementor-element-c353795 > .e-con-inner{
    padding-top:56px !important;
    padding-bottom:56px !important;
  }
  .elementor-element-9b04552 > .e-con-inner{
    padding-top:48px !important;
    padding-bottom:48px !important;
  }
}
@media (max-width:767px){
  .elementor-element-d5ef06e > .e-con-inner,
  .elementor-element-4c8c970 > .e-con-inner,
  .elementor-element-0314942 > .e-con-inner,
  .elementor-element-bd905f7 > .e-con-inner,
  .elementor-element-9ec3aa9 > .e-con-inner{
    padding-top:48px !important;
    padding-bottom:48px !important;
  }
}

/* ---- 7d. Emergency eyebrow ---------------------------------
   Inside the grid the eyebrow and heading are already adjacent
   rows with no gap to cancel, so the negative margin from 7a
   overlapped them. Reset it there and space the rows instead. */
@media (min-width:1025px){
  .elementor-element.elementor-element-eb1a002{
    margin-bottom:0 !important;
  }
  .elementor-element-9ec3aa9 > .e-con-inner{
    row-gap:6px;
  }
}
