/* ============================================================
   COMPONENTS — design-system sections/components mapped onto
   Enfold builder elements via Custom CSS Classes. Classes are
   applied by tools/transform.php (and can be set by hand in the
   builder: element → Advanced → Custom CSS Class).

   Section roles:  nir-hero (--bleed | --split) · nir-accent-band
                   nir-ink · nir-alt · nir-plain
   Components:     nir-card · nir-lede · nir-body · nir-img
                   nir-panel · nir-quotes · nir-stat · nir-icon
   Buttons:        nir-btn--primary · --dark · --ghost · --link
   Utility:        nir-hide
   ============================================================ */

/* ---------- Utility ---------- */
body.nir-ds#top .nir-hide { display: none !important; }

/* ---------- Headings: design-system ink, overriding Enfold's theme heading color ---------- */
body.nir-ds#top :where(#main) :is(h1,h2,h3,h4,h5,h6,.av-special-heading-tag) { color: var(--text-heading) !important; }
body.nir-ds#top :where(#main) .av_textblock_section :is(p, li) { color: var(--text-body); }
body.nir-ds#top :where(#main) .av_textblock_section a:not(.avia-button) { color: var(--link) !important; font-style: normal; }
body.nir-ds#top :where(#main) .av_textblock_section a:not(.avia-button) :is(em, strong, i, b) { color: inherit !important; font-style: normal; }

/* ---------- Section surfaces ---------- */
body.nir-ds#top .nir-plain { background-color: var(--paper) !important; }
body.nir-ds#top .nir-alt   { background-color: var(--paper-2) !important; }
body.nir-ds#top .nir-ink   { background-color: var(--ink-900) !important; color: var(--txt-inv); }
body.nir-ds#top .nir-accent-band { background-color: var(--accent) !important; color: #000; text-align: center; }

body.nir-ds#top .nir-ink :is(h1,h2,h3,h4,h5,h6,.av-special-heading-tag),
body.nir-ds#top .nir-ink .av_textblock_section,
body.nir-ds#top .nir-ink .av_textblock_section p { color: var(--txt-inv) !important; }
body.nir-ds#top .nir-ink .nir-lede,
body.nir-ds#top .nir-ink .nir-lede p { color: var(--txt-inv-dim) !important; }
body.nir-ds#top .nir-ink a:not(.avia-button) { color: var(--accent); }

body.nir-ds#top .nir-accent-band :is(h1,h2,h3,h4,p,.av_textblock_section,.av_textblock_section *) {
  color: #000 !important;
}
body.nir-ds#top .nir-accent-band .av_textblock_section p {
  font-size: 17.5px; font-weight: 500; line-height: 1.6; margin: 0 auto; max-width: 72ch;
}

/* Photo cells inside ink sections get the flat dark overlay */
body.nir-ds#top .flex_cell.nir-ink { position: relative; }
body.nir-ds#top .flex_cell.nir-ink::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(rgba(20,20,20,.78), rgba(20,20,20,.86));
}
body.nir-ds#top .flex_cell.nir-ink > * { position: relative; z-index: 1; }

/* ---------- Hero: split (inner pages) ---------- */
body.nir-ds#top .nir-hero--split .flex_cell.nir-ink { padding-top: var(--s-9) !important; padding-bottom: var(--s-9) !important; }
body.nir-ds#top .nir-hero :is(h1, h1.av-special-heading-tag) { color: #fff !important; max-width: 18ch; }
body.nir-ds#top .nir-hero .nir-lede,
body.nir-ds#top .nir-hero .nir-lede p { color: rgba(255,255,255,.92) !important; font-size: var(--fs-lede); line-height: 1.6; }

/* ---------- Hero: full-bleed (home) — stack both cells, photo behind copy ---------- */
body.nir-ds#top .nir-hero--bleed.av-layout-grid-container,
body.nir-ds#top .av-layout-grid-container.nir-hero--bleed {
  display: grid !important; grid-template-columns: 1fr; min-height: 560px;
}
body.nir-ds#top .nir-hero--bleed > .flex_cell {
  grid-area: 1 / 1; width: 100% !important; display: block !important; float: none !important;
}
body.nir-ds#top .nir-hero--bleed > .flex_cell:not(.nir-ink) { padding: 0 !important; overflow: hidden; }
body.nir-ds#top .nir-hero--bleed > .flex_cell:not(.nir-ink) :is(.avia-image-container, .avia-image-container-inner, .avia-image-overlay-wrap, img) {
  width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important;
}
body.nir-ds#top .nir-hero--bleed > .flex_cell:not(.nir-ink) img { object-fit: cover; }
body.nir-ds#top .nir-hero--bleed > .flex_cell.nir-ink {
  z-index: 2; background: transparent !important; background-image: none !important;
  display: flex !important; align-items: center; justify-content: center; text-align: center;
  padding: 130px var(--gutter) !important;
}
body.nir-ds#top .nir-hero--bleed > .flex_cell.nir-ink::before { background: linear-gradient(rgba(0,0,0,.42), rgba(0,0,0,.58)); }
body.nir-ds#top .nir-hero--bleed :is(h1, .av-special-heading) { margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
body.nir-ds#top .nir-hero--bleed .nir-lede { max-width: 64ch; margin: 0 auto; }

/* ---------- Lede / body copy ---------- */
body.nir-ds#top .nir-lede, body.nir-ds#top .nir-lede p { font-size: var(--fs-lede); line-height: 1.6; color: var(--txt-dim); }
body.nir-ds#top .nir-body p { color: var(--txt); }

/* ---------- Images ---------- */
body.nir-ds#top .nir-img img { border-radius: var(--r-lg); box-shadow: none; }

/* ---------- Service / feature cards ---------- */
body.nir-ds#top .flex_column.nir-card {
  background: var(--surface-card) !important;
  border: 1px solid var(--surface-card-border);
  border-radius: var(--r-lg);
  padding: var(--s-7) var(--s-6) !important;
  text-align: center;
  box-shadow: var(--shadow-card);
  transform: none;
  transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
body.nir-ds#top .flex_column.nir-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-hover); }
body.nir-ds#top .nir-card :is(h3, .av-special-heading-tag) { font-size: 20px !important; line-height: 1.25; color: var(--ink-700) !important; }
body.nir-ds#top .nir-card .av_textblock_section p { color: var(--txt-dim) !important; font-size: 15.5px; }
body.nir-ds#top .nir-card .av_font_icon { color: var(--accent); }
body.nir-ds#top .nir-ink .flex_column.nir-card { background: var(--ink-800) !important; border-color: var(--line-dark); box-shadow: none; }
body.nir-ds#top .nir-ink .nir-card :is(h3, .av-special-heading-tag) { color: #fff !important; }
body.nir-ds#top .nir-ink .nir-card .av_textblock_section p { color: var(--txt-inv-dim) !important; }

/* Card CTA = uppercase text link with sliding arrow (not a button) */
body.nir-ds#top .nir-card .avia-button,
body.nir-ds#top .nir-btn--link .avia-button,
body.nir-ds#top .avia-button.nir-btn--link {
  background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important;
  color: var(--link) !important; font-size: 13px !important; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
}
body.nir-ds#top .nir-ink .nir-card .avia-button { color: var(--accent) !important; }
body.nir-ds#top .nir-card .avia-button .avia_iconbox_title::after,
body.nir-ds#top .nir-btn--link .avia-button .avia_iconbox_title::after { content: " \2192"; display: inline-block; transition: transform var(--dur-fast) var(--ease); }
body.nir-ds#top .nir-card:hover .avia-button .avia_iconbox_title::after { transform: translateX(4px); }

/* ---------- Buttons ---------- */
body.nir-ds#top :is(.nir-btn--primary .avia-button, .avia-button.nir-btn--primary),
body.nir-ds#top :is(.nir-btn--dark .avia-button, .avia-button.nir-btn--dark),
body.nir-ds#top :is(.nir-btn--ghost .avia-button, .avia-button.nir-btn--ghost) {
  font-family: var(--f-body); font-weight: 700; font-size: var(--fs-ui); letter-spacing: .01em; line-height: 1;
  padding: 14px 28px; border: var(--bw) solid transparent; border-radius: var(--r);
}
body.nir-ds#top :is(.nir-btn--primary .avia-button, .avia-button.nir-btn--primary) { background: var(--accent) !important; border-color: var(--accent) !important; color: #000 !important; }
body.nir-ds#top :is(.nir-btn--primary .avia-button, .avia-button.nir-btn--primary):hover { background: var(--accent-press) !important; border-color: var(--accent-press) !important; }
body.nir-ds#top :is(.nir-btn--dark .avia-button, .avia-button.nir-btn--dark) { background: var(--ink-900) !important; border-color: var(--ink-900) !important; color: #fff !important; }
body.nir-ds#top :is(.nir-btn--dark .avia-button, .avia-button.nir-btn--dark):hover { background: var(--ink-800) !important; }
body.nir-ds#top :is(.nir-btn--ghost .avia-button, .avia-button.nir-btn--ghost) { background: transparent !important; border-color: currentColor !important; color: inherit !important; }
body.nir-ds#top :is(.nir-btn--ghost .avia-button, .avia-button.nir-btn--ghost):hover { border-color: var(--accent) !important; color: var(--accent) !important; }
body.nir-ds#top .avia-button .avia_button_icon { display: none !important; }

/* ---------- Panels / testimonials ---------- */
body.nir-ds#top .nir-panel { background: #fff !important; border-radius: var(--r-xl); box-shadow: var(--shadow-float); padding: var(--s-8) var(--s-7) !important; }
body.nir-ds#top :is(.nir-alt, .nir-plain) .nir-panel,
body.nir-ds#top .avia-section:not(.nir-ink) .nir-panel { background: transparent !important; box-shadow: none; padding: 0 !important; }
body.nir-ds#top .nir-quotes .avia-testimonial-content {
  background: var(--surface-card); border: 1px solid var(--surface-card-border); border-radius: var(--r-lg);
  padding: var(--s-6); font-size: clamp(17px, 1.9vw, 21px); font-weight: 500; line-height: 1.6; color: var(--txt);
}
body.nir-ds#top .nir-quotes .avia-testimonial-content::before {
  content: "\201C"; display: block; font-size: 60px; font-weight: 800; color: var(--accent); line-height: .5; height: 22px;
}
body.nir-ds#top .nir-quotes .avia-testimonial-content::after { display: none; }
body.nir-ds#top .nir-quotes :is(.avia-testimonial-name, .avia-testimonial-subtitle) { font-size: 14px; font-weight: 700; color: var(--txt-dim); }
body.nir-ds#top .nir-quotes .avia-slideshow-arrows a { background: var(--accent); color: #000; border-radius: 50%; }

/* ---------- Stats (animated numbers) ---------- */
body.nir-ds#top .nir-stat .avia-single-number { font-weight: 800; font-size: 42px !important; line-height: 1; color: #fff !important; }
body.nir-ds#top .nir-stat .avia-no-number { color: var(--accent) !important; }
body.nir-ds#top .nir-stat .avia-animated-number-content,
body.nir-ds#top .nir-stat .avia-animated-number-content p { font-size: 13px !important; color: var(--txt-inv-dim) !important; line-height: 1.5; }
body.nir-ds#top :not(.nir-ink) > * .nir-stat .avia-single-number { color: var(--ink-900) !important; }

/* ---------- Let's Talk (dark section holding a form) ---------- */
body.nir-ds#top .nir-ink:has(.gform_wrapper) .nir-panel,
body.nir-ds#top .avia-section:has(.gform_wrapper) .nir-panel {
  background: #fff !important; border-radius: var(--r-xl); box-shadow: var(--shadow-float);
  padding: var(--s-8) var(--s-7) !important; max-width: 900px; margin: 0 auto !important; float: none !important;
}
body.nir-ds#top :is(.nir-ink, .avia-section):has(.gform_wrapper) .nir-panel :is(h2, .av-special-heading-tag) { color: var(--ink-700) !important; text-align: center; }

/* ---------- Header / top bar / nav (design-system chrome) ---------- */
body.nir-ds#top #header_meta { background: var(--ink-900) !important; font-size: 13.5px; }
body.nir-ds#top #header_meta :is(a, .phone-info, .phone-info span) { color: var(--txt-inv) !important; font-weight: 500; }
body.nir-ds#top #header_meta a:hover { color: var(--accent) !important; }
body.nir-ds#top #header_main { background: var(--paper) !important; border-bottom: 1px solid var(--line) !important; }
body.nir-ds#top #header_main .av-main-nav > li > a { font-weight: 600 !important; font-size: 15px !important; color: var(--txt) !important; padding: 0 13px; }
body.nir-ds#top #header_main .av-main-nav > li > a:hover,
body.nir-ds#top #header_main .av-main-nav > li:is(.current-menu-item, .current-menu-ancestor, .current_page_item) > a { color: var(--link) !important; }
body.nir-ds#top #header_main .av-main-nav > li > a .avia-menu-fx { background: var(--link) !important; height: 2.5px; bottom: 0; }

/* Mega menu: 4 columns, hub link bold with gold rule, dim sub-links */
body.nir-ds#top .avia_mega_div {
  background: var(--paper) !important; border: 1px solid var(--line) !important; border-top: 0 !important;
  border-radius: 0 0 var(--r) var(--r); box-shadow: var(--shadow-menu) !important; padding: var(--s-5) !important;
}
body.nir-ds#top .avia_mega_div ul.sub-menu { overflow: visible !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; background: transparent !important; }
body.nir-ds#top .avia_mega_div > .sub-menu > li { border-left: 1px solid var(--line) !important; padding: 0 var(--s-4) !important; }
body.nir-ds#top .avia_mega_div > .sub-menu > li:first-child { border-left: 0 !important; }
body.nir-ds#top .avia_mega_div .mega_menu_title,
body.nir-ds#top .avia_mega_div .mega_menu_title a {
  display: block; font-size: 15px !important; font-weight: 700 !important; color: var(--txt) !important;
  padding-bottom: 10px; margin-bottom: 6px; border-bottom: 2px solid var(--accent); text-transform: none;
}
body.nir-ds#top .avia_mega_div .sub-menu li li a {
  color: var(--txt-dim) !important; font-size: 14px !important; font-weight: 500; padding: 6px 0 !important; background: none !important;
}
body.nir-ds#top .avia_mega_div .sub-menu li li a:hover { color: var(--link) !important; }
body.nir-ds#top .avia_mega_div .sub-menu li li a::before,
body.nir-ds#top .avia_mega_div .avia-bullet { display: none !important; }

/* ---------- Footer (design-system chrome) ---------- */
body.nir-ds#top #footer { background: var(--ink-900) !important; font-size: 15px; padding: var(--s-8) 0 var(--s-7); }
body.nir-ds#top #footer :is(h3, h4, .widgettitle) { color: var(--accent) !important; font-size: 16.5px !important; font-weight: 700; text-transform: none; letter-spacing: 0; }
body.nir-ds#top #footer :is(p, li, span, .textwidget) { color: #fff; }
body.nir-ds#top #footer a { color: #fff !important; }
body.nir-ds#top #footer a:hover { color: var(--accent) !important; }
body.nir-ds#top #footer .widget { border: 0 !important; }
body.nir-ds#top #socket { background: var(--ink-900) !important; border-top: 1px solid var(--ink-800) !important; font-size: 13.5px; }
body.nir-ds#top #socket :is(a, span) { color: var(--txt-inv-dim) !important; }
body.nir-ds#top #socket a:hover { color: var(--accent) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 989px) {
  body.nir-ds#top .nir-hero--bleed > .flex_cell.nir-ink { padding: 90px var(--s-5) !important; }
  body.nir-ds#top .flex_column.nir-card { margin-bottom: var(--s-5); }
}

/* ---------- Icons set by class (transform.php) — wins over legacy :has() mapping ---------- */
body.nir-ds#top .nir-icon--commercial  [data-av_iconfont]::before { -webkit-mask-image: url("../icons/commercial.svg") !important;  mask-image: url("../icons/commercial.svg") !important; }
body.nir-ds#top .nir-icon--residential [data-av_iconfont]::before { -webkit-mask-image: url("../icons/residential.svg") !important; mask-image: url("../icons/residential.svg") !important; }
body.nir-ds#top .nir-icon--maintenance [data-av_iconfont]::before { -webkit-mask-image: url("../icons/maintenance.svg") !important; mask-image: url("../icons/maintenance.svg") !important; }
body.nir-ds#top .nir-icon--materials   [data-av_iconfont]::before { -webkit-mask-image: url("../icons/materials.svg") !important;   mask-image: url("../icons/materials.svg") !important; }
body.nir-ds#top .nir-icon [data-av_iconfont] { color: var(--accent) !important; }

/* ---------- v0.4.1 fixes ---------- */

/* Links on dark surfaces are gold */
body.nir-ds#top :is(.nir-ink, .nir-hero) .av_textblock_section a:not(.avia-button) { color: var(--accent) !important; }

/* Split hero: copy left, photo right, 50/50 (design-system page-hero) */
body.nir-ds#top .nir-hero--split.av-layout-grid-container { display: flex !important; flex-wrap: wrap; }
body.nir-ds#top .nir-hero--split > .flex_cell { flex: 1 1 50% !important; width: 50% !important; max-width: 50%; float: none !important; }
body.nir-ds#top .nir-hero--split > .flex_cell.nir-ink { order: -1; display: flex !important; align-items: center; padding: var(--s-9) var(--s-7) !important; }
body.nir-ds#top .nir-hero--split > .flex_cell.nir-ink > .flex_cell_inner { width: 100%; max-width: 560px; }
body.nir-ds#top .nir-hero--split > .flex_cell:not(.nir-ink) { padding: 0 !important; min-height: 460px; overflow: hidden; }
body.nir-ds#top .nir-hero--split > .flex_cell:not(.nir-ink) :is(.flex_cell_inner, .avia-image-container, .avia-image-container-inner, .avia-image-overlay-wrap) { height: 100%; width: 100% !important; max-width: none !important; margin: 0 !important; }
body.nir-ds#top .nir-hero--split > .flex_cell:not(.nir-ink) img { width: 100% !important; height: 100% !important; min-height: 460px; object-fit: cover; border-radius: 0 !important; max-width: none !important; }
@media (max-width: 989px) {
  body.nir-ds#top .nir-hero--split > .flex_cell { flex-basis: 100% !important; width: 100% !important; max-width: 100%; }
  body.nir-ds#top .nir-hero--split > .flex_cell:not(.nir-ink), body.nir-ds#top .nir-hero--split > .flex_cell:not(.nir-ink) img { min-height: 260px; }
}

/* Card CTA: show "Learn more →" on desktop (original build hid it) */
body.nir-ds#top .nir-card .avia-button:is(.av-desktop-hide, .av-medium-hide) { display: inline-flex !important; }
body.nir-ds#top .nir-card .avia-button-wrap { margin-top: var(--s-4); }

/* Testimonials sit on the alt surface, not a parallax photo */
body.nir-ds#top .avia-section:has(.nir-quotes) { background-color: var(--paper-2) !important; background-image: none !important; }
body.nir-ds#top .avia-section:has(.nir-quotes) :is(.av-parallax, .av-section-color-overlay) { display: none !important; }
body.nir-ds#top .avia-section:has(.nir-quotes) .nir-panel { background: transparent !important; box-shadow: none !important; }

/* Decorative photo-only sections (no builder elements inside) are not part of the system */
body.nir-ds#top .avia-section:not(:has([class*="avia-builder-el-"])) { display: none !important; }

/* Form controls: white with light border (design-system Input) */
body.nir-ds#top .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], select, textarea) {
  background: #fff !important; border: var(--bw) solid #DDDDDD !important; border-radius: var(--r) !important; box-shadow: none !important; color: var(--txt) !important;
}
body.nir-ds#top .gform_wrapper :is(input, select, textarea):focus { border-color: var(--accent) !important; outline: none !important; }

/* ============================================================
   v0.5 — plain (non-builder) pages: page hero, prose, CTA band
   + design-system buttons/eyebrow as plain HTML classes
   ============================================================ */
body.nir-ds#top .nir-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  font-family: var(--f-body); font-weight: 700; font-size: var(--fs-ui); letter-spacing: .01em; line-height: 1;
  padding: 14px 28px; border: var(--bw) solid transparent; border-radius: var(--r);
  text-decoration: none !important; cursor: pointer; white-space: nowrap;
  transition: background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast), transform .1s;
}
body.nir-ds#top .nir-btn:active { transform: translateY(1px); }
body.nir-ds#top .nir-btn--lg { font-size: var(--fs-body); padding: 17px 34px; }
body.nir-ds#top .nir-btn.nir-btn--primary { background: var(--accent); color: #000 !important; }
body.nir-ds#top .nir-btn.nir-btn--primary:hover { background: var(--accent-press); }
body.nir-ds#top .nir-btn.nir-btn--dark { background: var(--ink-900); color: #fff !important; }
body.nir-ds#top .nir-btn.nir-btn--ghost { background: transparent; color: inherit !important; border-color: currentColor; }
body.nir-ds#top .nir-btn.nir-btn--ghost:hover { border-color: var(--accent); color: var(--accent) !important; }

body.nir-ds#top .nir-eyebrow {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: var(--ls-eyebrow); text-transform: uppercase;
  color: var(--link); display: flex; align-items: center; gap: var(--s-3); margin: 0;
}
body.nir-ds#top .nir-eyebrow::before { content: ""; width: 24px; height: 3px; background: var(--accent); flex: none; border-radius: 2px; }
body.nir-ds#top .nir-eyebrow--ondark { color: var(--accent) !important; }
body.nir-ds#top .nir-row-actions { display: flex; flex-wrap: wrap; gap: var(--s-4); justify-content: center; margin-top: var(--s-4); }

/* Full-bleed blocks inside Enfold's boxed content column */
body.nir-plain-page #main { overflow-x: clip; }
body.nir-plain-page #main .template-page.content { padding-top: 0 !important; padding-bottom: 0 !important; }
body.nir-plain-page #main .container_wrap_first { border: 0 !important; }
body.nir-ds#top :is(.nir-page-hero, .nir-cta-band) { width: 100vw; margin-left: calc(50% - 50vw); position: relative; }

body.nir-ds#top .nir-page-hero { background: var(--ink-900); color: #fff; padding: var(--s-9) var(--gutter); text-align: center; }
body.nir-ds#top .nir-page-hero__inner { max-width: 860px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: var(--s-4); }
body.nir-ds#top .nir-page-hero__title {
  color: #fff !important; font-family: var(--f-display); font-size: var(--fs-h1) !important; font-weight: 800 !important;
  line-height: var(--lh-tight); letter-spacing: var(--ls-tight); margin: 0; text-wrap: balance;
}
body.nir-ds#top .nir-page-hero__lede { color: rgba(255,255,255,.9) !important; font-size: var(--fs-lede); line-height: 1.6; max-width: 64ch; margin: 0; }

body.nir-ds#top .nir-prose { max-width: 820px; margin: var(--s-8) auto var(--s-9); padding: 0 var(--s-5); }
body.nir-ds#top .nir-prose > :first-child { margin-top: 0 !important; }
body.nir-ds#top .nir-prose p, body.nir-ds#top .nir-prose li { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--txt); }
body.nir-ds#top .nir-prose :is(h2) { font-size: var(--fs-h2) !important; margin: var(--s-7) 0 var(--s-4); }
body.nir-ds#top .nir-prose :is(h3) { font-size: var(--fs-h3) !important; margin: var(--s-6) 0 var(--s-3); }
body.nir-ds#top .nir-prose :is(h4, h5, h6) { margin: var(--s-5) 0 var(--s-3); }
body.nir-ds#top .nir-prose img { border-radius: var(--r-lg); height: auto; max-width: 100%; }
body.nir-ds#top .nir-prose iframe { width: 100% !important; min-height: 380px; border: 0; border-radius: var(--r-lg); }
body.nir-ds#top .nir-prose ul { list-style: none; margin: var(--s-4) 0; padding: 0; }
body.nir-ds#top .nir-prose ul li { position: relative; padding-left: 28px; margin: 0 0 var(--s-2); }
body.nir-ds#top .nir-prose ul li::before {
  content: ""; position: absolute; left: 0; top: .45em; width: 15px; height: 15px; background: var(--accent);
  -webkit-mask: url("../icons/check.svg") center / contain no-repeat; mask: url("../icons/check.svg") center / contain no-repeat;
}
body.nir-ds#top .nir-prose blockquote { border-left: 3px solid var(--ink-900); margin: var(--s-5) 0; padding: 4px 0 4px var(--s-4); font-size: 18px; color: var(--txt); }
body.nir-ds#top .nir-prose a:not(.nir-btn) { color: var(--link) !important; }

body.nir-ds#top .nir-cta-band { background: var(--ink-900); color: #fff; }
body.nir-ds#top .nir-cta-band__wrap {
  max-width: var(--maxw); margin: 0 auto; padding: var(--s-7) var(--gutter);
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-6); flex-wrap: wrap;
}
body.nir-ds#top .nir-cta-band h2 { color: #fff !important; font-size: clamp(25px, 2.9vw, 34px) !important; margin: 0; }
body.nir-ds#top .nir-cta-band__sub { font-size: 14px; color: var(--txt-inv-dim) !important; margin: var(--s-2) 0 0; }

/* ---------- screenshot follow-ups ---------- */
/* Icons: plain gold glyph, no outlined circles (FL template) */
body.nir-ds#top .av_font_icon.nir-icon :is(.av-icon-char, a) { border: 0 !important; background: transparent !important; box-shadow: none !important; }
/* Linked headings take the heading color, not the link color */
body.nir-ds#top :where(#main) :is(h1,h2,h3,h4,h5,h6,.av-special-heading-tag) a { color: inherit !important; text-decoration: none; }
/* Split hero photo cell: true full-bleed (no inner column gutters) */
body.nir-ds#top .nir-hero--split > .flex_cell:not(.nir-ink) .flex_column { margin: 0 !important; padding: 0 !important; width: 100% !important; height: 100%; }
/* Pull quotes: black rule (design-system .pull) */
body.nir-ds#top :where(#main) blockquote { border-left-color: var(--ink-900) !important; }

/* Plain pages: featured image becomes the hero photo (flat dark overlay); hide Enfold's thumb */
body.nir-plain-page .entry-content-header .page-thumb { display: none !important; }
body.nir-ds#top .nir-page-hero--photo {
  background: linear-gradient(rgba(20,20,20,.78), rgba(20,20,20,.86)), var(--nir-hero-img) center / cover no-repeat, var(--ink-900);
}

/* Bleed hero: the photo always covers the whole hero (fixes the grey gap on mobile) */
body.nir-ds#top .nir-hero--bleed > .flex_cell:not(.nir-ink) { position: relative !important; }
body.nir-ds#top .nir-hero--bleed > .flex_cell:not(.nir-ink) :is(.flex_cell_inner, .flex_column, .avia-image-container, .avia-image-container-inner, .avia-image-overlay-wrap, a) { position: static !important; }
body.nir-ds#top .nir-hero--bleed > .flex_cell:not(.nir-ink) img {
  position: absolute !important; inset: 0; width: 100% !important; height: 100% !important;
  object-fit: cover; object-position: center; border-radius: 0 !important; max-width: none !important; margin: 0 !important;
}
body.nir-ds#top .nir-hero--bleed :is(.av-image-caption-overlay, .av-caption-image-overlay-bg) { display: none !important; }
body.nir-ds#top .nir-hero--bleed .avia-image-container { border-radius: 0 !important; box-shadow: none !important; }
@media (max-width: 767px) {
  body.nir-ds#top .nir-hero--bleed.av-layout-grid-container { min-height: 520px; }
  body.nir-ds#top .nir-hero--bleed > .flex_cell.nir-ink { padding: 72px var(--s-5) !important; }
}

/* ============================================================
   Accent band (statement + CTA) and Service-area section (chips + map)
   ============================================================ */
body.nir-ds#top .flex_cell.nir-accent-band { text-align: center; }
body.nir-ds#top .flex_cell.nir-accent-band .av_textblock_section { max-width: 760px; margin: 0 auto; }
body.nir-ds#top .flex_cell.nir-accent-band .av_textblock_section p {
  font-size: clamp(17px, 1.6vw, 19px) !important; font-weight: 600 !important; line-height: 1.5; color: #000 !important; margin: 0;
}
body.nir-ds#top .flex_cell.nir-accent-band .avia-button-wrap { margin-top: var(--s-4); }
body.nir-ds#top .flex_cell.nir-accent-band > .flex_cell_inner { padding-top: var(--s-6) !important; padding-bottom: var(--s-6) !important; }

/* Chips (design-system Chip) */
body.nir-ds#top ul.nir-chips { list-style: none !important; margin: var(--s-5) 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: var(--s-2); }
body.nir-ds#top ul.nir-chips li {
  margin: 0 !important; padding: 8px 14px !important; display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; line-height: 1; color: var(--txt); background: var(--paper);
  border: var(--bw) solid var(--line); border-radius: var(--r-pill); white-space: nowrap;
}
body.nir-ds#top ul.nir-chips li::before {
  content: ""; width: 12px; height: 12px; flex: none; background: var(--accent);
  -webkit-mask: url("../icons/check.svg") center / contain no-repeat; mask: url("../icons/check.svg") center / contain no-repeat;
}
body.nir-ds#top .nir-prose ul.nir-chips li::before { position: static; top: auto; }

/* Service-area two-up */
body.nir-ds#top .nir-service-area .av_textblock_section .nir-eyebrow { margin-bottom: var(--s-4); }
body.nir-ds#top .nir-service-area .av_textblock_section h2 { font-size: var(--fs-h2) !important; margin: 0 0 var(--s-4); max-width: 18ch; }
body.nir-ds#top .nir-service-area .av_textblock_section p.nir-lede { font-size: var(--fs-lede); line-height: 1.6; color: var(--txt-dim) !important; max-width: 52ch; margin: 0; }
body.nir-ds#top .nir-service-area .nir-service-area__media .avia-image-container { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-card); }
body.nir-ds#top .nir-service-area .nir-service-area__media img { width: 100%; height: auto; display: block; border-radius: var(--r-lg); }
body.nir-ds#top .nir-service-area .container { padding-top: var(--s-9); padding-bottom: var(--s-9); }
body.nir-ds#top .nir-service-area .flex_column.nir-service-area__copy { padding-right: var(--s-7) !important; }
@media (max-width: 767px) {
  body.nir-ds#top .nir-service-area .flex_column.nir-service-area__copy { padding-right: 0 !important; margin-bottom: var(--s-6); }
  body.nir-ds#top .nir-service-area .av_textblock_section h2 { max-width: none; }
}

/* Accent band polish: symmetric spacing, no stray gap below */
body.nir-ds#top .flex_cell.nir-accent-band .avia-button-wrap,
body.nir-ds#top .flex_cell.nir-accent-band .avia-button { margin-bottom: 0 !important; }
body.nir-ds#top .flex_cell.nir-accent-band .av_textblock_section { margin-bottom: 0 !important; }
body.nir-ds#top .flex_cell.nir-accent-band > .flex_cell_inner { padding-top: 34px !important; padding-bottom: 34px !important; }
body.nir-ds#top .nir-service-area.container_wrap, body.nir-ds#top .nir-alt.container_wrap, body.nir-ds#top .nir-ink.container_wrap { border-top: 0 !important; border-bottom: 0 !important; }

/* Floated columns inside layout-row cells must be cleared, or the next section overlaps them */
body.nir-ds#top .av-layout-grid-container .flex_cell_inner { display: flow-root; }
body.nir-ds#top .av-layout-grid-container .flex_cell_inner::after { content: ""; display: table; clear: both; }
body.nir-ds#top .avia-section .entry-content-wrapper::after { content: ""; display: table; clear: both; }

/* No entrance animations: the system uses fast, subtle transitions, not content sliding/fading into place */
body.nir-ds#top .avia_transform :is(.av-animated-generic, .av-animated-when-visible, .av-animated-when-almost-visible, .av-animated-when-visible-95, .avia_start_animation, .avia_start_delayed_animation),
body.nir-ds#top :is(.av-animated-generic, .av-animated-when-visible, .av-animated-when-almost-visible, .av-animated-when-visible-95) {
  opacity: 1 !important; visibility: visible !important; animation: none !important; transform: none !important; transition: none !important;
}
body.nir-ds#top .avia_transform .av-animated-when-visible-95 .flex_column_table, body.nir-ds#top .avia_transform .av-animated-generic.avia_start_animation { animation: none !important; }

/* Sections that were pulled up over a (now hidden) decorative photo strip: drop the negative margin */
body.nir-ds#top .avia-section:not(:has([class*="avia-builder-el-"])) + .avia-section .entry-content-wrapper > .flex_column,
body.nir-ds#top .avia-section:not(:has([class*="avia-builder-el-"])) + .avia-section .entry-content-wrapper > .flex_column_table,
body.nir-ds#top .avia-section:has(.nir-quotes) .entry-content-wrapper > .flex_column,
body.nir-ds#top .avia-section:has(.nir-quotes) .entry-content-wrapper > .flex_column_table { margin-top: 0 !important; }
body.nir-ds#top .avia-section:has(.nir-quotes) { padding-top: var(--s-9); padding-bottom: var(--s-9); }

/* Staging only: the reCAPTCHA key is locked to the live domain, so its badge just shows an error here */
body.nir-staging .grecaptcha-badge { display: none !important; }

/* Single posts: hide Enfold's own title/meta/thumb; the plugin's page hero carries them */
body.nir-plain-page.single-post .entry-content-header, body.nir-plain-page.single-post .post-meta-infos, body.nir-plain-page.single-post .blog-meta, body.nir-plain-page.single-post .big-preview { display: none !important; }
body.nir-plain-page.single-post .post-entry { padding-top: 0 !important; }
body.nir-plain-page.single-post :is(.post_delimiter, .comment-entry, #comments) { display: none !important; }

/* ---------- Top bar (design-system chrome): phone + gold "Request a Quote" on both sites ---------- */
body.nir-ds#top #header_meta { height: auto !important; min-height: 38px; }
body.nir-ds#top #header_meta .container { min-height: 38px; }
body.nir-ds#top #header_meta .sub_menu > ul > li { border: 0 !important; padding: 0 0 0 14px !important; margin: 0 !important; }
body.nir-ds#top #header_meta .sub_menu > ul > li > a {
  font-size: 14px !important; font-weight: 600 !important; color: #fff !important; line-height: 38px; padding: 0 !important;
}
body.nir-ds#top #header_meta .sub_menu > ul > li > a:hover { color: var(--accent) !important; }
body.nir-ds#top #header_meta .sub_menu > ul > li > a[href*="contact"],
body.nir-ds#top #header_meta .sub_menu > ul > li.amg-hello-bar-button > a,
body.nir-ds#top #header_meta .sub_menu > ul > li.nir-topbar-cta > a {
  display: inline-block; line-height: 1; padding: 7px 12px !important; border-radius: var(--r);
  background: var(--accent) !important; color: #000 !important; font-weight: 700 !important;
}
body.nir-ds#top #header_meta .sub_menu > ul > li > a[href*="contact"]:hover,
body.nir-ds#top #header_meta .sub_menu > ul > li.amg-hello-bar-button > a:hover { background: var(--accent-press) !important; color: #000 !important; }
body.nir-ds#top #header_meta .social_bookmarks li a { font-size: 14px !important; width: 30px; line-height: 38px !important; border: 0 !important; color: #fff !important; }
body.nir-ds#top #header_meta .social_bookmarks li a:hover { color: var(--accent) !important; background: transparent !important; }
body.nir-ds#top #header_meta .social_bookmarks li { border: 0 !important; }
@media (max-width: 767px) {
  body.nir-ds#top #header_meta .sub_menu > ul > li > a { font-size: 14px !important; }
}

/* ============================================================
   REFINEMENT PASS 1 — header chrome
   ============================================================ */

/* Top bar: one flex row, everything vertically centred, button never touches the nav */
body.nir-ds#top #header_meta { height: auto !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; }
body.nir-ds#top #header_meta > .container {
  display: flex !important; align-items: center; justify-content: space-between; gap: var(--s-4);
  height: auto !important; min-height: 48px; padding-top: 8px !important; padding-bottom: 8px !important;
}
body.nir-ds#top #header_meta > .container::before,
body.nir-ds#top #header_meta > .container::after { content: none !important; display: none !important; }
body.nir-ds#top #header_meta .social_bookmarks {
  position: static !important; float: none !important; margin: 0 !important; height: auto !important;
  display: flex; align-items: center; gap: 2px;
}
body.nir-ds#top #header_meta .social_bookmarks li { float: none !important; height: auto !important; margin: 0 !important; }
body.nir-ds#top #header_meta .social_bookmarks li a {
  display: flex !important; align-items: center; justify-content: center; width: 30px; height: 30px; line-height: 30px !important; font-size: 14px !important; border-radius: var(--r);
}
body.nir-ds#top #header_meta .sub_menu {
  position: static !important; float: none !important; top: auto !important; right: auto !important;
  margin: 0 0 0 auto !important; height: auto !important; line-height: normal !important;
}
body.nir-ds#top #header_meta .sub_menu > ul {
  position: static !important; top: auto !important; margin: 0 !important; padding: 0 !important; height: auto !important;
  display: flex; align-items: center; gap: var(--s-5);
}
body.nir-ds#top #header_meta .sub_menu > ul > li {
  float: none !important; padding: 0 !important; margin: 0 !important; border: 0 !important; line-height: 1 !important; display: flex; align-items: center;
}
body.nir-ds#top #header_meta .sub_menu > ul > li::before,
body.nir-ds#top #header_meta .sub_menu > ul > li::after { content: none !important; display: none !important; }
body.nir-ds#top #header_meta .sub_menu > ul > li > a { line-height: 1 !important; font-size: 14px !important; letter-spacing: .01em; }
body.nir-ds#top #header_meta .sub_menu > ul > li > a[href*="contact"],
body.nir-ds#top #header_meta .sub_menu > ul > li.amg-hello-bar-button > a { padding: 9px 16px !important; font-size: 13.5px !important; }
@media (max-width: 767px) {
  body.nir-ds#top #header_meta > .container { justify-content: center; min-height: 44px; padding-top: 6px !important; padding-bottom: 6px !important; }
  body.nir-ds#top #header_meta .social_bookmarks { display: none !important; }
  body.nir-ds#top #header_meta .sub_menu { margin: 0 !important; }
  body.nir-ds#top #header_meta .sub_menu > ul { gap: var(--s-4); }
}

/* Mega menu column headers: Enfold floats the link, collapsing the wrapper; unfloat so the rule sits under the text */
body.nir-ds#top .avia_mega_div .mega_menu_title {
  display: block !important; height: auto !important; line-height: 1.35 !important;
  padding: 0 0 10px !important; margin: 0 0 12px !important; border-bottom: 2px solid var(--accent) !important;
}
body.nir-ds#top .avia_mega_div .mega_menu_title a {
  float: none !important; display: inline !important; padding: 0 !important; margin: 0 !important; border: 0 !important;
  line-height: inherit !important; font-size: 15px !important; font-weight: 700 !important; color: var(--txt) !important;
}
body.nir-ds#top .avia_mega_div .mega_menu_title a:hover { color: var(--link) !important; }
body.nir-ds#top .avia_mega_div > .sub-menu > li > ul.sub-menu > li > a { padding: 7px 0 !important; line-height: 1.4 !important; }
body.nir-ds#top .avia_mega_div { padding: var(--s-6) var(--s-5) !important; }

/* ============================================================
   REFINEMENT PASS 2 — vertical rhythm (design system: 96 / 72 / 56)
   ============================================================ */
:root { --nir-sec-y: 96px; }
@media (max-width: 989px) { :root { --nir-sec-y: 72px; } }
@media (max-width: 767px) { :root { --nir-sec-y: 56px; } }

/* Sections: rhythm lives on the inner content, never stacked on the section too */
body.nir-ds#top #main .avia-section { padding-top: 0 !important; padding-bottom: 0 !important; }
body.nir-ds#top #main .avia-section > .container > .content { padding-top: var(--nir-sec-y) !important; padding-bottom: var(--nir-sec-y) !important; }
body.nir-ds#top #main .nir-service-area .container { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Layout rows: content cells share the same rhythm (hero and accent bands have their own) */
body.nir-ds#top #main .av-layout-grid-container:not(.nir-hero) > .flex_cell:not(.nir-accent-band) { padding-top: var(--nir-sec-y) !important; padding-bottom: var(--nir-sec-y) !important; }

/* Accent bands: one consistent band height */
body.nir-ds#top #main .flex_cell.nir-accent-band { padding-top: 40px !important; padding-bottom: 40px !important; }
body.nir-ds#top #main .flex_cell.nir-accent-band > .flex_cell_inner { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Same surface back-to-back reads as ONE section: no doubled gap */

body.nir-ds#top #main .av-layout-grid-container:has(> .flex_cell.nir-alt) + .av-layout-grid-container:has(> .flex_cell.nir-alt) > .flex_cell { padding-top: 0 !important; }
body.nir-ds#top #main .avia-section.nir-alt + .avia-section.nir-alt > .container > .content { padding-top: 0 !important; }

body.nir-ds#top #main .av-layout-grid-container:has(> .flex_cell.nir-plain) + .av-layout-grid-container:has(> .flex_cell.nir-plain) > .flex_cell { padding-top: 0 !important; }
body.nir-ds#top #main .avia-section.nir-plain + .avia-section.nir-plain > .container > .content { padding-top: 0 !important; }

body.nir-ds#top #main .av-layout-grid-container:has(> .flex_cell.nir-ink) + .av-layout-grid-container:has(> .flex_cell.nir-ink) > .flex_cell { padding-top: 0 !important; }
body.nir-ds#top #main .avia-section.nir-ink + .avia-section.nir-ink > .container > .content { padding-top: 0 !important; }
body.nir-ds#top #main .avia-section:not(.nir-alt):not(.nir-ink):not(.nir-accent-band):not(.nir-hero) + .avia-section:not(.nir-alt):not(.nir-ink):not(.nir-accent-band):not(.nir-hero) > .container > .content { padding-top: 0 !important; }

/* First/last children never add to the section padding */
body.nir-ds#top #main :is(.flex_cell_inner, .entry-content-wrapper) > :first-child { margin-top: 0 !important; }
body.nir-ds#top #main :is(.flex_cell_inner, .entry-content-wrapper) > :last-child { margin-bottom: 0 !important; }

/* Bleed hero: cells stretch to the full hero (Enfold pins them at a fixed height) */
body.nir-ds#top .nir-hero--bleed > .flex_cell { height: auto !important; min-height: 0 !important; align-self: stretch !important; }

/* ============================================================
   REFINEMENT PASS 3 — one content container, merges, motion
   ============================================================ */

/* Layout-row content aligns to the same 1200px container as the header and sections.
   Outer edges get max(gutter, (viewport - 1200)/2); the gap between two cells is 64px. */
body.nir-ds#top #main .av-layout-grid-container:not(.nir-hero--bleed) > .flex_cell:first-child {
  padding-left: max(var(--gutter), calc((100vw - var(--maxw)) / 2)) !important;
}
body.nir-ds#top #main .av-layout-grid-container:not(.nir-hero--bleed) > .flex_cell:last-child {
  padding-right: max(var(--gutter), calc((100vw - var(--maxw)) / 2)) !important;
}
body.nir-ds#top #main .av-layout-grid-container:not(.nir-hero--bleed) > .flex_cell:not(:last-child) { padding-right: var(--s-6) !important; }
body.nir-ds#top #main .av-layout-grid-container:not(.nir-hero--bleed) > .flex_cell:not(:first-child) { padding-left: var(--s-6) !important; }
/* Media-only cells in a split hero stay full-bleed */
body.nir-ds#top #main .nir-hero--split > .flex_cell:not(.nir-ink) { padding: 0 !important; }
@media (max-width: 989px) {
  body.nir-ds#top #main .av-layout-grid-container:not(.nir-hero--bleed) > .flex_cell { padding-left: var(--s-5) !important; padding-right: var(--s-5) !important; }
  body.nir-ds#top #main .nir-hero--split > .flex_cell:not(.nir-ink) { padding: 0 !important; }
}

/* Section ↔ row with the same surface also merge */

body.nir-ds#top #main .avia-section.nir-alt + .av-layout-grid-container:has(> .flex_cell.nir-alt) > .flex_cell { padding-top: 0 !important; }
body.nir-ds#top #main .av-layout-grid-container:has(> .flex_cell.nir-alt) + .avia-section.nir-alt > .container > .content { padding-top: 0 !important; }

body.nir-ds#top #main .avia-section.nir-plain + .av-layout-grid-container:has(> .flex_cell.nir-plain) > .flex_cell { padding-top: 0 !important; }
body.nir-ds#top #main .av-layout-grid-container:has(> .flex_cell.nir-plain) + .avia-section.nir-plain > .container > .content { padding-top: 0 !important; }

body.nir-ds#top #main .avia-section.nir-ink + .av-layout-grid-container:has(> .flex_cell.nir-ink) > .flex_cell { padding-top: 0 !important; }
body.nir-ds#top #main .av-layout-grid-container:has(> .flex_cell.nir-ink) + .avia-section.nir-ink > .container > .content { padding-top: 0 !important; }

/* Motion: Enfold's icon/element pop-in animations off too (design system = fast, subtle transitions only) */
body.nir-ds#top :is(.avia_animate_when_visible, .avia-icon-animate, .avia_start_animation, .avia_start_delayed_animation) {
  opacity: 1 !important; transform: none !important; animation: none !important;
}

/* Card icons at the design-system size */
body.nir-ds#top .nir-card .av_font_icon .av-icon-char,
body.nir-ds#top .nir-card .av_font_icon [data-av_iconfont] { font-size: 40px !important; width: 40px; height: 40px; line-height: 40px !important; }
body.nir-ds#top .nir-card .av_font_icon { margin-bottom: var(--s-4) !important; }
