/* ════════════════════════════════════════════════════════════════════
   nd-legacy.css — reskin the legacy (edge.css / edge-native) pages to the
   2026 "nd" design language: teal #14B8A6, Poppins, light slate surfaces,
   soft 20-30px card radii. The legacy system is token-driven, so most of
   this is a CSS-variable remap on body:not(.nd-page); the rest retargets
   the few hard-coded navy/gold/sage rules. Loads AFTER nd.css.
   ════════════════════════════════════════════════════════════════════ */

body:not(.nd-page) {
  /* brand */
  --navy: #0F172A;
  --navy-2: #1E293B;
  --footer: #0F172A;
  --blue: #2563EB;
  --blue-600: #1D4ED8;
  --blue-700: #1E40AF;
  --blue-soft: #EFF6FF;
  --green: #14B8A6;          /* eco accent is now the teal */
  --green-600: #0D9488;
  --green-700: #0F766E;
  --green-soft: rgba(20, 184, 166, 0.13);
  --green-line: rgba(20, 184, 166, 0.28);
  --gold: #F5B958;
  --gold-soft: #FEF6E7;
  /* neutrals */
  --ink: #0F172A;
  --body: #334155;
  --muted: #64748B;
  --line: #E2E8F0;
  --sage: #F8FAFC;           /* signature sage panels -> light slate */
  --sage-2: #F1F5F9;
  --mist: #F8FAFC;
  /* type */
  --font-head: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  /* geometry */
  --r-sm: 12px;
  --r: 20px;
  --r-lg: 30px;
  --shadow-sm: 0 2px 12px rgba(15, 23, 42, 0.05);
  --shadow: 0 4px 40px rgba(0, 0, 0, 0.10);
  --shadow-lg: 0 4px 40px rgba(0, 0, 0, 0.15);
  /* nd extras used below */
  --grad: linear-gradient(90deg, #4A6CF7 0%, #63E6DB 100%);
  --blue-label: #4A6CF7;
}

/* type: Poppins reads heavier than Archivo/Manrope — relax the weights */
body:not(.nd-page).edge-native,
body:not(.nd-page) .edge-shell { font-weight: 400; }
body:not(.nd-page) h1, body:not(.nd-page) h2, body:not(.nd-page) h3,
body:not(.nd-page) h4, body:not(.nd-page) h5 { font-weight: 600; letter-spacing: -0.01em; }

/* buttons: nd gradient pill (13px radius) for the action variants */
body:not(.nd-page) .btn { border-radius: 13px; font-weight: 500; letter-spacing: 0; }
body:not(.nd-page) .btn--primary,
body:not(.nd-page) .btn--green {
  background: var(--grad);
  box-shadow: 0 10px 26px -12px rgba(20, 184, 166, 0.65);
}
body:not(.nd-page) .btn--primary:hover,
body:not(.nd-page) .btn--green:hover { background: var(--grad); filter: brightness(1.06); }
body:not(.nd-page) .btn--navy { background: var(--navy); }
body:not(.nd-page) .btn--navy:hover { background: var(--navy-2); }

/* eyebrows: nd section-label blue, teal slashes */
body:not(.nd-page) .eyebrow { color: var(--blue-label); }
body:not(.nd-page) .section--navy .eyebrow,
body:not(.nd-page) .section--blue .eyebrow { color: rgba(255, 255, 255, 0.75); }

/* CTA band: nd glow colors on the dark card */
body:not(.nd-page) .ctaband::before {
  background: radial-gradient(600px 320px at 100% 0%, rgba(74, 108, 247, 0.42), transparent 62%),
              radial-gradient(420px 280px at 0% 120%, rgba(20, 184, 166, 0.32), transparent 60%);
}

/* icon tiles: navy squares w/ gold glyphs -> teal-soft circles w/ teal glyphs */
body.edge-native #et-main-area .et_pb_icon.itile--navy,
body.edge-native #et-main-area .et_pb_image.itile--navy {
  background: var(--green-soft);
  color: var(--green);
  border-radius: 50%;
}

/* the 4px accent toplines (green->blue->gold) -> nd gradient */
body.edge-native #et-main-area .edge_form_section .wrap::before { background: var(--grad); }

/* legacy hard-coded sage tints -> slate equivalents (panel variety §26k) */
body:not(.nd-page) [style*="#e7efe8"], body:not(.nd-page) [style*="#f2f7f2"] { background-color: #F1F5F9 !important; }

/* converted-page h3/p feature stacks: breathing room + consistent scale */
body:not(.nd-page) .edge-shell .et_pb_heading h3.h3 { font-size: 19px; margin: 20px 0 4px; }
body:not(.nd-page) .edge-shell .eyebrow p,
body:not(.nd-page) .edge-shell p.eyebrow { margin: 0 0 8px; }

/* third-party embeds must never exceed their container */
body:not(.nd-page) .edge-shell iframe,
body:not(.nd-page) .edge-shell embed,
body:not(.nd-page) .edge-shell object { max-width: 100%; }

/* classic (non-builder) Divi pages keep the boxed 80% .container even on
   phones (312px at 390) — give them a normal mobile gutter instead */
@media (max-width: 980px) {
  body:not(.nd-page) #main-content .container,
  body:not(.nd-page) #left-area .container {
    width: calc(100% - 24px);
    max-width: calc(100% - 24px);
  }
}

/* mobile: legacy 2-across card grids must stack on phones (they render as
   unreadable slivers at 390px — features, incentive cards, why-choose) */
@media (max-width: 640px) {
  body:not(.nd-page) .edge-shell .grid,
  body:not(.nd-page) .edge-shell [class*="grid-"] { grid-template-columns: 1fr !important; }
  /* long button labels (e.g. email CTAs) wrap instead of clipping */
  body:not(.nd-page) .btn,
  body:not(.nd-page) .edge-shell a.et_pb_button { white-space: normal; max-width: 100%; }
  /* Divi 5 flex sections (display:flex + rows as display:contents) put every
     column on one flex line at phone widths — force full-width stacking */
  body:not(.nd-page) .edge-shell .et_pb_section.et_block_section { flex-wrap: wrap; width: 100%; }
  body:not(.nd-page) .edge-shell .et_pb_section.et_block_section .et_pb_column {
    flex: 1 1 100%; width: 100% !important; max-width: 100%;
  }
}

/* partner/lender logo strips: contain, never crop (edge_about__img crops 490/300) */
/* partner-logo strip (solar/financing): uniform white cards so mixed-ratio
   logo banners read as one structured row; 2x2 grid on phones */
body.edge-native #et-main-area .edge_partner_logo {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 6px 24px rgba(15, 23, 42, .06);
  height: 108px;
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.edge-native #et-main-area .edge_partner_logo .et_pb_image_wrap {
  display: flex !important;
  align-items: center;
  justify-content: center;
}
body.edge-native #et-main-area .edge_partner_logo img {
  object-fit: contain !important;
  aspect-ratio: auto !important;
  max-height: 46px;
  max-width: min(100%, 230px);
  width: auto !important;
  margin: 0 auto;
}
@media (max-width: 980px) {
  body.edge-native #et-main-area .et_pb_row:has(.edge_partner_logo) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px;
  }
  body.edge-native #et-main-area .et_pb_row:has(.edge_partner_logo) > .et_pb_column {
    /* the generic phone stacking rule uses flex-basis 100%, which outranks
       width in a flex row — pin the basis too */
    flex: 0 0 calc(50% - 6px) !important;
    width: calc(50% - 6px) !important;
    margin: 0 !important;
  }
  body.edge-native #et-main-area .edge_partner_logo { height: 88px; padding: 14px 16px; }
  body.edge-native #et-main-area .edge_partner_logo img { max-height: 36px; }
}

/* photo grids (energy-star page): even row of rounded photos on desktop,
   2x2 with a uniform gutter on phones — same pattern as the partner logos */
body.edge-native #et-main-area .edge_grid_photo img {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  border-radius: 18px !important;
}
@media (max-width: 980px) {
  body.edge-native #et-main-area .et_pb_row:has(.edge_grid_photo) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px;
  }
  body.edge-native #et-main-area .et_pb_row:has(.edge_grid_photo) > .et_pb_column {
    flex: 0 0 calc(50% - 6px) !important;
    width: calc(50% - 6px) !important;
    margin: 0 !important;
  }
}

/* image-card grids: rows holding more cards than fit one line (e.g. the six
   additional-services cards in one row) wrap into even lines with a real gap
   instead of needing one section per line (whose seams orphan cards on phones) */
body.edge-native:not(.page-id-17258) #et-main-area .et_pb_row:has(.et_pb_column.imgcard) {
  flex-wrap: wrap;
  gap: 24px;
}
/* Divi's row clearfix pseudo-elements are flex items — on a wrapped row whose
   line is exactly full they spill onto their own line and row-gap turns that
   into a phantom blank strip. imgcard rows are flex at EVERY width (rule
   above), so their reset is global; logo/photo rows only become flex inside
   the max-width:980 rules below — at desktop they still float and NEED the
   clearfix, so their reset lives in that media block. */
body.edge-native #et-main-area .et_pb_row:has(.et_pb_column.imgcard)::before,
body.edge-native #et-main-area .et_pb_row:has(.et_pb_column.imgcard)::after {
  content: none;
}
@media (max-width: 980px) {
  body.edge-native #et-main-area .et_pb_row:has(.edge_partner_logo)::before,
  body.edge-native #et-main-area .et_pb_row:has(.edge_partner_logo)::after,
  body.edge-native #et-main-area .et_pb_row:has(.edge_grid_photo)::before,
  body.edge-native #et-main-area .et_pb_row:has(.edge_grid_photo)::after {
    content: none;
  }
}
@media (min-width: 981px) {
  /* wrap breaks Divi's own column sizing (2-per-line + a void) — pin 1_3
     imgcards to true thirds (team page 17258 keeps its own 4-across grid) */
  body.edge-native:not(.page-id-17258) #et-main-area .et_pb_row:has(.et_pb_column.imgcard) > .et_pb_column.imgcard.et_pb_column_1_3 {
    flex: 0 0 calc((100% - 48px) / 3) !important;
    max-width: calc((100% - 48px) / 3) !important;
    margin: 0 !important;
  }
  /* 1_4 imgcards (e.g. the four commercial project cards) pin to quarters the
     same way — Divi's quarter width plus the row gap otherwise overflows to 3+1 */
  body.edge-native:not(.page-id-17258) #et-main-area .et_pb_row:has(.et_pb_column.imgcard) > .et_pb_column.imgcard.et_pb_column_1_4 {
    flex: 0 0 calc((100% - 72px) / 4) !important;
    max-width: calc((100% - 72px) / 4) !important;
    margin: 0 !important;
  }
  /* and 1_2 imgcard pairs (new-construction ratings) pin to halves — their
     Divi float gutter margin otherwise wraps the second card to its own line */
  body.edge-native:not(.page-id-17258) #et-main-area .et_pb_row:has(.et_pb_column.imgcard) > .et_pb_column.imgcard.et_pb_column_1_2 {
    flex: 0 0 calc((100% - 24px) / 2) !important;
    max-width: calc((100% - 24px) / 2) !important;
    margin: 0 !important;
  }
}

/* phones pair cards 2-per-row, so an odd count strands the last card as a
   half-width orphan — let it span the full row instead. edge_servicecards
   rows stay a nowrap 3-across strip until 600px, where they stack full-width
   anyway — inside them this rule would crush the first cards, so excluded.
   edge_team member cards also excluded: a full-width portrait photo is huge —
   their rows justify-content:center, so the odd card centers at half width. */
@media (max-width: 980px) {
  body.edge-native #et-main-area .et_pb_row > .et_pb_column.card:nth-child(odd):last-child:not(.edge_servicecards *):not(.edge_team *) {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}

/* flush utilities: adjacent related bands (e.g. two card rows) shed the full
   band padding on their touching edges — extra class outranks the band rule */
@media (min-width: 981px) {
  body.edge-native #et-main-area .et_pb_section.et_block_section.section.section--flush-bottom { padding-bottom: 16px !important; }
  body.edge-native #et-main-area .et_pb_section.et_block_section.section.section--flush-top { padding-top: 16px !important; }
}

/* square tile photos (image + title + text benefit tiles, e.g. duct-sealing):
   uniform 1:1 crop so mixed stock photos read as one even grid */
body.edge-native #et-main-area .edge_tile_photo img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 18px !important;
  display: block;
}

/* split rows (image | text, e.g. About ENERGY STAR): media constrained and
   centered against the text column instead of a huge top-aligned block */
body.edge-native #et-main-area .et_pb_row:has(.edge_split_media) {
  align-items: center !important;
}
body.edge-native #et-main-area .edge_split_media .et_pb_image_wrap {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
}
body.edge-native #et-main-area .edge_split_media img {
  max-height: 280px;
  width: auto !important;
  max-width: 100%;
  object-fit: contain !important;
  border-radius: 20px;
  margin: 0 auto;
}

/* ════════════════════════════════════════════════════════════════════
   Reference-look pass (per new/index.html): soft 30px panels, borderless
   floating cards, rounded photos, roomier rhythm — no more square boxes.
   ════════════════════════════════════════════════════════════════════ */

/* colored panels get the nd card radius (kills the square blocks) */
body:not(.nd-page) { --edge-panel-r: 30px; }

/* white content cards: drop the hairline border, float on a soft nd shadow */
body.edge-native #et-main-area .et_pb_column.card,
body.edge-native #et-main-area .et_pb_column.quote {
  border: 0 !important;
  border-radius: 20px !important;
  box-shadow: 0 4px 34px rgba(15, 23, 42, 0.07) !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.edge-native #et-main-area .et_pb_column.card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 44px rgba(15, 23, 42, 0.11) !important;
}

/* photos: 8px corners read boxy — round like the reference (30px cards) */
body.edge-native #et-main-area .edge_about__img img { border-radius: 24px !important; }
body.edge-native #et-main-area .edge_hero .edge_about__img img,
body.edge-native #et-main-area .edge_hero__img {
  border-radius: 30px 110px 30px 30px !important; /* nd hero photo signature curve */
  overflow: hidden;
}

/* icon circles scale up to the reference size */
body.edge-native #et-main-area .et_pb_icon.itile--navy,
body.edge-native #et-main-area .et_pb_image.itile--navy {
  width: 62px !important;
  min-width: 62px;
  height: 62px !important;
  max-width: 62px;
}

/* ── Full-bleed bands (reference look) ─────────────────────────────────
   The boxed 1080-1260px tinted panels read as "separate squares". The
   reference flows full-width tinted sections with the content constrained
   inside — bands, not boxes. Sections carry the tint edge-to-edge; rows
   and wraps stay centered at content width. */
body.edge-native #et-main-area .et_pb_section.edge-panel {
  max-width: 100% !important;
  border-radius: 0 !important;
  margin-top: 0 !important;
  padding-left: clamp(26px, 3.4vw, 52px);
  padding-right: clamp(26px, 3.4vw, 52px);
}
body.edge-native #et-main-area .et_pb_section.edge-panel .et_pb_row {
  max-width: var(--maxw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* class-based panels: move the fill from the boxed .wrap to the section */
body.edge-native #et-main-area section.section--sage { background: var(--sage) !important; }
body.edge-native #et-main-area section.section--mist { background: var(--mist) !important; }
body.edge-native #et-main-area section.section--navy { background: var(--navy) !important; }
body.edge-native #et-main-area section.section--blue { background: var(--blue) !important; }
body.edge-native #et-main-area section.section--sage > .wrap,
body.edge-native #et-main-area section.section--mist > .wrap,
body.edge-native #et-main-area section.section--navy > .wrap,
body.edge-native #et-main-area section.section--blue > .wrap {
  background: transparent !important;
  border-radius: 0 !important;
}
/* the un-tinted Divi wrapper around class-based panels must span full width */
body.edge-native #et-main-area .et_pb_section:has(> * section.section--sage),
body.edge-native #et-main-area .et_pb_section:has(section.section--navy) {
  max-width: 100% !important;
}

/* hero: bigger photo so the band doesn't sit half-empty */
body.edge-native #et-main-area .edge_hero .edge_about__img img {
  aspect-ratio: 4/3 !important;
  min-height: 340px;
}

/* svc-built pages: sections are VB-boxed at 1080px ("separate squares") —
   stretch every band edge-to-edge and re-center the rows at content width */
body.edge-native #et-main-area .et_pb_section.et_block_section.section {
  max-width: 100% !important;
  width: 100% !important;
  border-radius: 0 !important;
}
body.edge-native #et-main-area .et_pb_section.et_block_section.section > .et_pb_row {
  max-width: min(var(--maxw), calc(100% - clamp(40px, 6vw, 96px))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* roomier band rhythm on desktop only (phone keeps its tightened VB values).
   VB-editability: (0,1,1) via :where — beats Divi's base section padding
   (0,1,0), loses to a VB-set section padding (.et_pb_section_N.et_pb_section,
   (0,2,0)) — so editors can retune any band in the Visual Builder. */
@media (min-width: 981px) {
  :where(body.edge-native #et-main-area) div.et_pb_section:where(.et_block_section.section) {
    padding-top: clamp(40px, 4.4vw, 72px);
    padding-bottom: clamp(40px, 4.4vw, 72px);
  }
}

/* classic (non-native, boxed .container) pages: same band treatment, escaping
   the container via the 100vw trick; also kill their hairline section borders */
body:not(.nd-page) #main-content .et_pb_section.et_block_section.section {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding-left: max(24px, calc(50vw - 630px)) !important;
  padding-right: max(24px, calc(50vw - 630px)) !important;
}
body:not(.nd-page) .edge-shell .et_pb_section.et_block_section.section { border: 0 !important; }
@media (min-width: 981px) {
  /* classic band rhythm — same (0,1,1) VB-editable default as the native rule
     above; the :not(.edge-native) guard lives inside :where (specificity-free)
     so the two rules stay mutually exclusive by page class */
  :where(body:not(.nd-page):not(.edge-native) #main-content) div.et_pb_section:where(.et_block_section.section) {
    padding-top: clamp(28px, 3vw, 52px);
    padding-bottom: clamp(28px, 3vw, 52px);
  }
  /* one-module sections (a lone heading or paragraph in its own section —
     common on classic pages) don't deserve full band padding. Same (0,1,1);
     wins over the band rule above only by source order. */
  :where(body:not(.nd-page):not(.edge-native) #main-content) div.et_pb_section:where(.et_block_section.section):where(:has(> .et_pb_row:only-child > .et_pb_column:only-child > .et_pb_module:only-child)) {
    padding-top: 18px;
    padding-bottom: 18px;
  }
}
/* classic pages inherit the borderless floating cards + rounded photos too */
body:not(.nd-page) .edge-shell .et_pb_column.card,
body:not(.nd-page) .edge-shell .et_pb_column.quote {
  border: 0 !important;
  border-radius: 20px !important;
  box-shadow: 0 4px 34px rgba(15, 23, 42, 0.07) !important;
}
body:not(.nd-page) .edge-shell .edge_about__img img { border-radius: 24px !important; }

/* accordion/FAQ cards: nd pill look */
body:not(.nd-page) .acc { border: 0; border-radius: 16px; box-shadow: 0 2px 16px rgba(15, 23, 42, 0.06); }

/* dark bands get the nd glow (full-bleed, so the glow rides the section) */
body.edge-native #et-main-area section.section--navy,
body.edge-native #et-main-area .et_pb_section.section--navy,
body.edge-native #et-main-area .et_pb_section.edge-panel--navy {
  position: relative;
  overflow: hidden;
}
body.edge-native #et-main-area section.section--navy::after,
body.edge-native #et-main-area .et_pb_section.section--navy::after,
body.edge-native #et-main-area .et_pb_section.edge-panel--navy::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(600px 320px at 100% 0%, rgba(74, 108, 247, 0.28), transparent 62%),
              radial-gradient(420px 280px at 0% 120%, rgba(20, 184, 166, 0.22), transparent 60%);
}
body.edge-native #et-main-area section.section--navy > .wrap,
body.edge-native #et-main-area .et_pb_section.section--navy .et_pb_row { position: relative; z-index: 1; }

/* SetMore booking button: replace the black SVG button with a brand pill */
body:not(.nd-page) .edge-shell a[href*="setmore"] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--grad);
  color: #fff !important;
  border-radius: 13px;
  padding: 14px 26px;
  font-weight: 500;
  font-size: 15px;
  box-shadow: 0 10px 26px -12px rgba(20, 184, 166, 0.6);
}
body:not(.nd-page) .edge-shell a[href*="setmore"] img { display: none; }
body:not(.nd-page) .edge-shell a[href*="setmore"]::after { content: "Book an appointment \2192"; }

/* WP Job Manager (careers): dress the raw widget in the design system */
body:not(.nd-page) .job_filters { background: transparent; }
body:not(.nd-page) .job_filters .search_jobs { padding: 0 0 14px; }
body:not(.nd-page) .job_filters input[type="text"],
body:not(.nd-page) .job_filters select {
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 12px 16px;
  font-family: var(--font-body);
  font-size: 15px;
  background: #fff;
}
body:not(.nd-page) .job_filters input[type="submit"],
body:not(.nd-page) .job_listings + .load_more_jobs {
  background: var(--grad);
  color: #fff;
  border: 0;
  border-radius: 13px;
  padding: 12px 26px;
  font-weight: 500;
  cursor: pointer;
}
body:not(.nd-page) ul.job_listings {
  border: 0;
  display: grid;
  gap: 14px;
  padding: 8px 0 0;
}
body:not(.nd-page) ul.job_listings li.job_listing {
  background: #fff;
  border: 0 !important;
  border-radius: 16px;
  box-shadow: 0 3px 22px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}
body:not(.nd-page) ul.job_listings li.job_listing a { padding: 18px 22px; }
body:not(.nd-page) .job_listings .company img { border-radius: 10px; }
body:not(.nd-page) a.rss_link { display: none; }

/* wide award/badge banners must never be cover-cropped */
body:not(.nd-page) .edge-shell img[src*="COY_"],
body:not(.nd-page) .edge-shell img[src*="Sustainable"] {
  object-fit: contain !important;
  aspect-ratio: auto !important;
  height: auto !important;
}

/* generic icon tiles (converted pages use plain .itile--navy divs) */
body:not(.nd-page) .itile--navy {
  background: var(--green-soft) !important;
  color: var(--green) !important;
  border-radius: 50%;
}

/* prose bodies carry inline-styled grid/flex layouts (city columns,
   logo+text splits) — stack them on phones */
@media (max-width: 640px) {
  body:not(.nd-page) .edge_prose__c div[style*="grid"],
  body:not(.nd-page) .edge-shell .wrap div[style*="grid"] {
    grid-template-columns: 1fr !important;
  }
  body:not(.nd-page) .edge_prose__c div[style*="flex"],
  body:not(.nd-page) .edge-shell .wrap div[style*="display: flex"],
  body:not(.nd-page) .edge-shell .wrap div[style*="display:flex"] {
    flex-direction: column !important;
  }
  body:not(.nd-page) .edge_prose__c div[style*="flex"] > * { width: 100% !important; max-width: 100%; }
}

/* table screenshots must never be cover-cropped */
body:not(.nd-page) .edge-shell img[src*="income-table"],
body:not(.nd-page) .edge-shell img[src*="-table"],
body:not(.nd-page) .edge-shell img[src*="MasterDealer"],
body:not(.nd-page) .edge-shell img[src*="Horizontal"] {
  object-fit: contain !important;
  aspect-ratio: auto !important;
  height: auto !important;
}

/* real tables scroll sideways on phones instead of clipping */
@media (max-width: 640px) {
  body:not(.nd-page) .edge-shell table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
