/* ============================================================
   NIR DESIGN SYSTEM → ENFOLD BRIDGE
   Maps design-system tokens onto Enfold's markup. Everything is
   scoped to body.nir-ds (#top is Enfold's body id) so it can be
   switched off with ?nir_ds=off.
   Rules: gold always carries black text · black bands carry white
   text · surfaces are white / #F4F4F4 only · Public Sans everywhere.
   ============================================================ */

/* ---------- 1. Base type ---------- */
body.nir-ds#top,
body.nir-ds#top .main_color,
body.nir-ds#top .alternate_color,
body.nir-ds#top input,
body.nir-ds#top textarea,
body.nir-ds#top select,
body.nir-ds#top button {
  font-family: var(--f-body);
}
body.nir-ds#top .main_color,
body.nir-ds#top .alternate_color { color: var(--text-body); }
body.nir-ds#top .entry-content-wrapper p,
body.nir-ds#top .avia_textblock p {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  text-wrap: pretty;
}
body.nir-ds#top h1, body.nir-ds#top h2, body.nir-ds#top h3,
body.nir-ds#top h4, body.nir-ds#top h5, body.nir-ds#top h6,
body.nir-ds#top .av-special-heading-tag {
  font-family: var(--f-display);
  color: var(--text-heading);
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-tight);
  text-wrap: balance;
  text-transform: none;
}
body.nir-ds#top h1, body.nir-ds#top h1.av-special-heading-tag { font-weight: var(--fw-extrabold); font-size: var(--fs-h1); }
body.nir-ds#top h2, body.nir-ds#top h2.av-special-heading-tag { font-weight: var(--fw-bold); font-size: var(--fs-h2); }
body.nir-ds#top h3, body.nir-ds#top h3.av-special-heading-tag { font-weight: var(--fw-bold); font-size: var(--fs-h3); }
body.nir-ds#top h4, body.nir-ds#top h5, body.nir-ds#top h6 { font-weight: var(--fw-bold); }

/* Enfold sub-headings → brand eyebrow */
body.nir-ds#top .av-subheading,
body.nir-ds#top .av-subheading p {
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--link);
}

/* Links */
body.nir-ds#top .main_color a:not(.avia-button),
body.nir-ds#top .alternate_color a:not(.avia-button) {
  color: var(--link);
  transition: color var(--dur-fast) var(--ease);
}
body.nir-ds#top .main_color a:not(.avia-button):hover,
body.nir-ds#top .alternate_color a:not(.avia-button):hover { color: var(--ink-900); }

/* ---------- 2. Surfaces (max two per page) ---------- */
body.nir-ds#top .main_color,
body.nir-ds#top #main { background-color: var(--paper); }
body.nir-ds#top .alternate_color { background-color: var(--paper-2); }

/* ---------- 3. Header & nav ---------- */
body.nir-ds#top #header_meta {
  background: var(--ink-900);
  color: var(--txt-inv);
  border: 0;
}
body.nir-ds#top #header_meta a,
body.nir-ds#top #header_meta .phone-info { color: var(--txt-inv); }
body.nir-ds#top #header_meta a:hover { color: var(--accent); }
body.nir-ds#top #header_main {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
body.nir-ds#top .av-main-nav > li > a {
  font-family: var(--f-body);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-ui);
  color: var(--text-heading);
  text-transform: none;
  letter-spacing: 0;
}
body.nir-ds#top .av-main-nav > li > a:hover,
body.nir-ds#top .av-main-nav > li.current-menu-item > a,
body.nir-ds#top .av-main-nav > li.current-menu-ancestor > a { color: var(--link); }
body.nir-ds#top .av-main-nav .avia-menu-fx { background: var(--accent); }
body.nir-ds#top .av-main-nav ul.sub-menu {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow-menu);
  overflow: hidden;
}
body.nir-ds#top .av-main-nav ul.sub-menu li a {
  color: var(--text-body);
  font-size: var(--fs-small);
  border-color: var(--line);
}
body.nir-ds#top .av-main-nav ul.sub-menu li a:hover {
  background: var(--paper-2);
  color: var(--link);
}
body.nir-ds#top .header-scrolled #header_main { box-shadow: 0 2px 10px rgba(0,0,0,.06); }

/* ---------- 4. Buttons ---------- */
body.nir-ds#top .avia-button {
  font-family: var(--f-body);
  font-weight: var(--fw-bold);
  border-radius: var(--r);
  letter-spacing: 0;
  transition: background-color var(--dur-fast) var(--ease),
              color var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease);
}
body.nir-ds#top .avia-button:active { transform: translateY(1px); }
body.nir-ds#top .avia-button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

/* Primary = gold with black text */
body.nir-ds#top .avia-button.avia-color-theme-color,
body.nir-ds#top .avia-button.avia-color-orange,
body.nir-ds#top .avia-button.avia-color-custom {
  background-color: var(--accent);
  border-color: var(--accent);
  color: var(--text-on-accent);
}
body.nir-ds#top .avia-button.avia-color-theme-color:hover,
body.nir-ds#top .avia-button.avia-color-orange:hover,
body.nir-ds#top .avia-button.avia-color-custom:hover {
  background-color: var(--accent-press);
  border-color: var(--accent-press);
  color: var(--text-on-accent);
}

/* Dark = black with white text */
body.nir-ds#top .avia-button.avia-color-dark,
body.nir-ds#top .avia-button.avia-color-black {
  background-color: var(--ink-900);
  border-color: var(--ink-900);
  color: var(--txt-inv);
}
body.nir-ds#top .avia-button.avia-color-dark:hover,
body.nir-ds#top .avia-button.avia-color-black:hover {
  background-color: var(--ink-800);
  border-color: var(--ink-800);
}

/* Ghost = transparent, current-color border → gold on hover */
body.nir-ds#top .avia-button.avia-color-light,
body.nir-ds#top .avia-button.avia-color-theme-color-subtle,
body.nir-ds#top .avia-button.avia-color-theme-color-highlight {
  background-color: transparent;
  border: var(--bw) solid currentColor;
}
body.nir-ds#top .avia-button.avia-color-light:hover,
body.nir-ds#top .avia-button.avia-color-theme-color-subtle:hover,
body.nir-ds#top .avia-button.avia-color-theme-color-highlight:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ---------- 5. Cards (icon boxes, testimonials, pricing) ---------- */
body.nir-ds#top .main_color .iconbox_content,
body.nir-ds#top .alternate_color .iconbox_content,
body.nir-ds#top .avia-testimonial-wrapper .avia-testimonial-content,
body.nir-ds#top .main_color .pricing-table > li {
  background: var(--surface-card);
  border: 1px solid var(--surface-card-border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-card);
  transition: transform var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease);
}
body.nir-ds#top .main_color .iconbox:hover .iconbox_content,
body.nir-ds#top .alternate_color .iconbox:hover .iconbox_content {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}
body.nir-ds#top .iconbox_icon,
body.nir-ds#top .iconlist_icon,
body.nir-ds#top .av-icon-char { color: var(--accent); }

/* Icons in a filled circle: gold fill, black glyph */
body.nir-ds#top .iconbox_top .iconbox_icon,
body.nir-ds#top .avia-icon-list .iconlist_icon {
  background-color: var(--accent);
  color: var(--text-on-accent);
  border-color: var(--accent);
}

/* ---------- 6. Bands ---------- */
body.nir-ds#top .av_promobox {
  background: var(--ink-900);
  border: 0;
  border-radius: var(--r-lg);
  color: var(--txt-inv);
}
body.nir-ds#top .av_promobox .avia-promocontent,
body.nir-ds#top .av_promobox .avia-promocontent p,
body.nir-ds#top .av_promobox h1, body.nir-ds#top .av_promobox h2,
body.nir-ds#top .av_promobox h3 { color: var(--txt-inv); }

/* Helper classes (Enfold section → Custom CSS Class) */
body.nir-ds#top .nir-band-ink { background: var(--ink-900) !important; color: var(--txt-inv); }
body.nir-ds#top .nir-band-ink h1, body.nir-ds#top .nir-band-ink h2,
body.nir-ds#top .nir-band-ink h3, body.nir-ds#top .nir-band-ink p { color: var(--txt-inv); }
body.nir-ds#top .nir-band-gold { background: var(--accent) !important; color: var(--text-on-accent); text-align: center; }
body.nir-ds#top .nir-band-gold h1, body.nir-ds#top .nir-band-gold h2,
body.nir-ds#top .nir-band-gold h3, body.nir-ds#top .nir-band-gold p { color: var(--text-on-accent); }
body.nir-ds#top .nir-band-ink .iconbox_content {
  background: var(--ink-800);
  border-color: var(--line-dark);
}

/* Hero photo protection: flat black overlay, no gradients */
body.nir-ds#top .av-section-color-overlay { background-image: none !important; }

/* ---------- 7. Forms (Gravity Forms + Enfold forms) ---------- */
body.nir-ds#top .gform_wrapper input[type="text"],
body.nir-ds#top .gform_wrapper input[type="email"],
body.nir-ds#top .gform_wrapper input[type="tel"],
body.nir-ds#top .gform_wrapper input[type="number"],
body.nir-ds#top .gform_wrapper select,
body.nir-ds#top .gform_wrapper textarea,
body.nir-ds#top .avia_ajax_form input[type="text"],
body.nir-ds#top .avia_ajax_form input[type="email"],
body.nir-ds#top .avia_ajax_form textarea {
  font-family: var(--f-body);
  font-size: var(--fs-ui);
  color: var(--text-body);
  background: var(--paper);
  border: var(--bw) solid var(--line);
  border-radius: var(--r);
  padding: 12px 14px;
  transition: border-color var(--dur-fast) var(--ease);
}
body.nir-ds#top .gform_wrapper input:focus,
body.nir-ds#top .gform_wrapper select:focus,
body.nir-ds#top .gform_wrapper textarea:focus,
body.nir-ds#top .avia_ajax_form input:focus,
body.nir-ds#top .avia_ajax_form textarea:focus {
  border-color: var(--accent);
  outline: none;
}
body.nir-ds#top .gform_wrapper .gfield_label,
body.nir-ds#top .avia_ajax_form label {
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--text-heading);
}
/* Submit = gold full pill */
body.nir-ds#top .gform_wrapper .gform_button,
body.nir-ds#top .gform_wrapper input[type="submit"],
body.nir-ds#top .avia_ajax_form input[type="submit"] {
  font-family: var(--f-body);
  font-weight: var(--fw-bold);
  background: var(--accent);
  border: 0;
  border-radius: var(--r-pill);
  color: var(--text-on-accent);
  padding: 14px 36px;
  cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
body.nir-ds#top .gform_wrapper .gform_button:hover,
body.nir-ds#top .gform_wrapper input[type="submit"]:hover,
body.nir-ds#top .avia_ajax_form input[type="submit"]:hover { background: var(--accent-press); }
body.nir-ds#top .gform_wrapper .gform_button:active,
body.nir-ds#top .avia_ajax_form input[type="submit"]:active { transform: translateY(1px); }

/* ---------- 8. Footer & socket = black ---------- */
body.nir-ds#top #footer,
body.nir-ds#top .footer_color {
  background: var(--ink-900);
  color: var(--txt-inv-dim);
  border-color: var(--line-dark);
}
body.nir-ds#top #footer h3, body.nir-ds#top #footer h4,
body.nir-ds#top #footer .widgettitle { color: var(--txt-inv); font-weight: var(--fw-bold); }
body.nir-ds#top #footer a { color: var(--txt-inv); }
body.nir-ds#top #footer a:hover { color: var(--accent); }
body.nir-ds#top #socket,
body.nir-ds#top .socket_color {
  background: var(--ink-900);
  border-top: 1px solid var(--line-dark);
  color: var(--txt-inv-dim);
}
body.nir-ds#top #socket a { color: var(--txt-inv-dim); }
body.nir-ds#top #socket a:hover { color: var(--accent); }
body.nir-ds#top #footer .logo img,
body.nir-ds#top .nir-band-ink .nir-logo { filter: invert(1); }

/* ---------- 9. Scroll-to-top = gold circle ---------- */
body.nir-ds#top #scroll-top-link {
  background: var(--accent);
  color: var(--text-on-accent);
  border: 0;
  border-radius: var(--r-pill);
  box-shadow: var(--shadow-fab);
}
body.nir-ds#top #scroll-top-link:hover { background: var(--accent-press); }

/* ---------- 10. Focus ---------- */
body.nir-ds#top a:focus-visible,
body.nir-ds#top button:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  body.nir-ds#top * { transition: none !important; }
}
