/*
Theme Name: Addisigns
Theme URI: https://addisigns.com/
Description: Addisigns child theme for Divi 5 — green and yellow sign-company design system.
Author: Addisigns
Version: 1.1.0
Template: Divi
Text Domain: addisigns
Requires at least: 6.5
Requires PHP: 7.4
*/

/* ==========================================================
   1. Design tokens
   ========================================================== */
:root {
  --ad-green: #0a602f;
  --ad-green-2: #0b6534;
  --ad-green-dark: #08502a;
  --ad-green-nav: #0c6500;
  --ad-lime: #c8d400;
  --ad-yellow: #faef23;
  --ad-mint: #dff3c9;
  --ad-ink: #222222;
  --ad-muted: #555555;
  --ad-gray: #efefef;
  --ad-tab: #f1f1f1;
  --ad-paper: #ffffff;
  --ad-soft: #f4f6fa;
  --ad-radius: 6px;
  --ad-shadow: 0 6px 18px rgba(0, 0, 0, .08);
  --ad-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  /* legacy aliases */
  --addisigns-green: var(--ad-green);
  --addisigns-green-dark: var(--ad-green-dark);
  --addisigns-ink: var(--ad-ink);
  --addisigns-paper: var(--ad-paper);
  --addisigns-gray: var(--ad-gray);
}

/* ==========================================================
   2. Base typography
   ========================================================== */
body,
body.et_pb_pagebuilder_layout,
.et_pb_module,
input, textarea, select, button {
  font-family: var(--ad-font);
}
body {
  color: var(--ad-ink);
  background: var(--ad-paper);
  font-size: 15px;
  line-height: 1.65;
  font-weight: 400;
}
h1, h2, h3, h4, h5, h6,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3,
.et_pb_module h4, .et_pb_module h5, .et_pb_module h6 {
  font-family: var(--ad-font);
  color: var(--ad-ink);
  line-height: 1.2;
  padding-bottom: 12px;
}
h1 { font-size: 50px; font-weight: 700; }
h2 { font-size: 40px; font-weight: 800; }
h3 { font-size: 30px; font-weight: 600; }
h4 { font-size: 22px; font-weight: 600; }
p { padding-bottom: 1.1em; }
a { color: var(--ad-green); }
a:hover, a:focus { color: var(--ad-green-dark); }
::selection { color: #fff; background: var(--ad-green); }
#page-container, #main-content { background: var(--ad-paper); }
#main-content .container:before { display: none; }

/* ==========================================================
   3. Header (Theme Builder)
   ========================================================== */
.ad-header.et_pb_section { padding: 10px 0 !important; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.04); }
.ad-header .et_pb_row { padding: 0 !important; width: 90%; max-width: 1180px; }
.ad-header .et_pb_menu .et_pb_menu__logo-wrap { max-width: 210px; }
.ad-header .et_pb_menu .et_pb_menu__logo img { max-height: 66px; width: auto; }
.ad-header .et_pb_menu .et_pb_menu__wrap { justify-content: flex-end; }
.ad-header .et-menu-nav > ul.et-menu { align-items: stretch; gap: 6px; }
.ad-header .et-menu > li { padding: 0 !important; }
.ad-header .et-menu > li > a {
  display: flex; align-items: center;
  padding: 16px 14px 14px !important;
  background: var(--ad-tab);
  border-top: 3px solid transparent;
  color: #333 !important;
  font-size: 13px; font-weight: 500;
  transition: background .2s, color .2s, border-color .2s;
}
.ad-header .et-menu > li.menu-item-has-children > a { padding-right: 30px !important; }
.ad-header .et-menu > li.menu-item-has-children > a:after { right: 10px; top: 50%; transform: translateY(-50%); }
.ad-header .et-menu > li > a:hover,
.ad-header .et-menu > li.current-menu-item > a,
.ad-header .et-menu > li.current-menu-ancestor > a,
.ad-header .et-menu > li.current-page-ancestor > a {
  color: var(--ad-green-nav) !important;
  border-top-color: var(--ad-green);
  opacity: 1 !important;
}
.ad-header .et-menu > li.ad-plain > a { background: transparent; }
.ad-header .et-menu li li a { font-size: 13px; color: #333 !important; padding: 8px 18px; width: 230px; }
.ad-header .et-menu li li a:hover { color: var(--ad-green-nav) !important; background: var(--ad-tab); opacity: 1; }
.ad-header .et-menu .sub-menu { border-top: 3px solid var(--ad-green); width: 260px; padding: 10px 0; }
.ad-header .et_mobile_nav_menu .mobile_menu_bar:before { color: var(--ad-green) !important; }
.ad-header .et_mobile_menu { border-top-color: var(--ad-green); }

/* ==========================================================
   4. Buttons (Divi button module + plain links)
   ========================================================== */
.et_pb_button.ad-btn,
.ad-btn-link {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--ad-font) !important;
  font-size: 15px !important; font-weight: 700 !important;
  line-height: 1.2 !important;
  padding: 13px 26px !important;
  border-radius: 999px !important;
  border: 3px solid var(--ad-green) !important;
  background: #fff !important;
  color: var(--ad-green) !important;
  letter-spacing: 0 !important;
  transition: transform .15s ease, background .2s, color .2s;
}
.et_pb_button.ad-btn:before { display: none !important; }
.et_pb_button.ad-btn::after {
  content: "\203A" !important; display: inline-block !important; position: static !important;
  opacity: 1 !important; margin: 0 0 0 4px !important; font-family: var(--ad-font) !important;
  font-size: 22px !important; line-height: 1 !important; font-weight: 700;
}
.et_pb_button.ad-btn:hover { transform: translateY(-1px); background: var(--ad-green) !important; color: #fff !important; padding: 13px 26px !important; }
.et_pb_button.ad-btn-yellow { background: var(--ad-yellow) !important; color: var(--ad-green) !important; font-size: 17px !important; padding: 15px 30px !important; }
.et_pb_button.ad-btn-yellow:hover { background: #fff35a !important; color: var(--ad-green-dark) !important; padding: 15px 30px !important; }
.et_pb_button.ad-btn-dark { border-color: #222 !important; color: #222 !important; }
.et_pb_button.ad-btn-dark:hover { background: #222 !important; color: #fff !important; }
.et_pb_button.ad-btn-solid { background: var(--ad-green) !important; color: #fff !important; }
.et_pb_button.ad-btn-solid:hover { background: var(--ad-green-dark) !important; }
.et_pb_button.ad-btn-sm { font-size: 13px !important; padding: 9px 20px !important; }
.et_pb_button.ad-btn-sm:hover { padding: 9px 20px !important; }
.ad-btn-row .et_pb_button_module_wrapper { display: inline-block; margin: 0 8px 12px !important; }
.ad-btn-row { text-align: center; }

/* ==========================================================
   5. Shared section helpers
   ========================================================== */
.ad-bg-gray.et_pb_section { background-color: var(--ad-gray) !important; }
.ad-eyebrow, .ad-eyebrow p {
  color: var(--ad-yellow); font-weight: 700; font-size: 15px;
  letter-spacing: .12em; text-transform: uppercase; padding: 0; text-align: center;
}
.ad-kicker, .ad-kicker p { color: var(--ad-muted); font-weight: 600; font-size: 15px; text-align: center; text-transform: capitalize; padding: 0; margin: 0 0 6px; }
.ad-title h2, h2.ad-title, .ad-title.et_pb_heading .et_pb_heading_container h2 {
  color: var(--ad-green); font-size: 40px; font-weight: 800; text-align: center; padding-bottom: 8px; text-transform: capitalize;
}
.ad-title-left h2 { text-align: left; }
.ad-lead, .ad-lead p { color: var(--ad-muted); font-weight: 600; text-align: center; font-size: 15px; text-transform: capitalize; }

/* ==========================================================
   6. Home hero + contact strip
   ========================================================== */
.ad-home-hero.et_pb_section {
  background-color: #444;
  background-size: cover; background-position: center;
  padding: 50px 0 110px !important;
}
.ad-home-hero.et_pb_section .et_parallax_bg,
.ad-home-hero.et_pb_section > .et_pb_background_mask { filter: grayscale(1); }
.ad-home-hero .ad-hero-box {
  background: rgba(20, 20, 20, .72);
  padding: 22px 40px 26px !important;
  max-width: 1000px;
}
.ad-home-hero h1 { color: #fff; font-size: 46px; font-weight: 700; text-align: center; line-height: 1.25; padding: 6px 0 14px; }
.ad-home-hero .ad-hero-sub p { color: #fff; font-size: 26px; text-align: center; line-height: 1.4; font-weight: 500; padding-bottom: 6px; }

.ad-contact-strip.et_pb_section { padding: 0 0 20px !important; margin-top: -90px; background: transparent !important; position: relative; z-index: 3; }
.ad-contact-strip .et_pb_row {
  background: rgba(200, 200, 200, .65); padding: 10px !important; border-radius: 12px; max-width: 1000px;
}
.ad-contact-strip .et_pb_column { margin-right: 10px !important; }
.ad-contact-strip .et_pb_column:last-child { margin-right: 0 !important; }
.ad-ccard.et_pb_blurb {
  background: var(--ad-green-2); color: #fff; border-radius: 8px; padding: 22px 16px; min-height: 165px; text-align: center;
}
.ad-ccard .et_pb_main_blurb_image { margin-bottom: 12px; }
.ad-ccard .et-pb-icon { color: #fff !important; font-size: 34px !important; }
.ad-ccard h4.et_pb_module_header, .ad-ccard h4.et_pb_module_header a { color: #fff !important; font-size: 20px; font-weight: 600; padding-bottom: 4px; }
.ad-ccard .et_pb_blurb_description, .ad-ccard .et_pb_blurb_description p { color: #fff; font-size: 14px; line-height: 1.55; padding: 0; }
.ad-ccard.ad-ccard-addr .et_pb_blurb_description p { font-size: 17px; }

/* Why work with us */
.ad-why h3 { font-size: 24px; font-weight: 600; padding-bottom: 14px; }
.ad-why p { font-size: 14px; color: #333; }

/* ==========================================================
   7. Work tiles
   ========================================================== */
.ad-tiles .et_pb_column { margin-bottom: 14px !important; }
.ad-tile.et_pb_image { margin-bottom: 0 !important; }
.ad-tile img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.ad-tile-cap.et_pb_text {
  background: #fff; border: 1px solid #ddd; border-top: 0;
  text-align: center; padding: 12px 8px; min-height: 64px; margin: 0 !important;
  display: flex; align-items: center; justify-content: center;
}
.ad-tile-cap p { padding: 0; font-size: 14px; line-height: 1.35; color: #222; }
.ad-tile-cap a { color: var(--ad-green); }
.ad-tiles .et_pb_column { border-radius: 2px; }

/* ==========================================================
   8. Services (world-map background)
   ========================================================== */
.ad-services.et_pb_section { background-color: #f0f0f0 !important; background-size: 100% auto !important; background-position: center 60px !important; }
.ad-services .ad-title-left h2 { text-align: left; font-size: 34px; }
.ad-scard.et_pb_blurb {
  background: #fff; border-bottom: 4px solid var(--ad-green); border-radius: 4px;
  padding: 20px 18px; min-height: 230px; box-shadow: var(--ad-shadow);
}
.ad-scard .et_pb_blurb_content { max-width: none; }
.ad-scard .et-pb-icon { color: var(--ad-green) !important; font-size: 40px !important; }
.ad-scard h4.et_pb_module_header { font-size: 20px; font-weight: 700; padding-bottom: 4px; }
.ad-scard .et_pb_blurb_description p { font-size: 13px; line-height: 1.55; color: #444; padding: 0; }
.ad-sbar.et_pb_blurb { background: #fff; border-bottom: 4px solid var(--ad-green); border-radius: 4px; padding: 14px 18px; box-shadow: var(--ad-shadow); }
.ad-sbar .et-pb-icon { color: var(--ad-green) !important; font-size: 36px !important; }
.ad-sbar h4.et_pb_module_header, .ad-sbar h4.et_pb_module_header a { color: var(--ad-green) !important; font-size: 22px; font-weight: 800; padding-bottom: 2px; }
.ad-sbar .et_pb_blurb_description p { font-size: 13px; padding: 0; }

/* ==========================================================
   9. History frames
   ========================================================== */
.ad-history h2 { font-size: 34px; font-weight: 700; color: var(--ad-ink); }
.ad-history p { font-size: 14px; color: #555; }
.ad-frame.et_pb_image { border: 10px solid #1e1e1e; background: #1e1e1e; margin-bottom: 14px !important; }
.ad-frame img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 4px solid #fff; }

/* ==========================================================
   10. Steps (How our expert service works)
   ========================================================== */
.ad-step.et_pb_blurb {
  background: #fff; border-bottom: 4px solid var(--ad-green); border-radius: 4px;
  padding: 18px 12px 16px; text-align: center; min-height: 150px;
}
.ad-step .et_pb_main_blurb_image { margin-bottom: 14px; }
.ad-step .et-pb-icon.et-pb-icon-circle { background: var(--ad-green) !important; color: var(--ad-yellow) !important; font-size: 34px !important; padding: 18px; }
.ad-step h4.et_pb_module_header { color: var(--ad-green); font-size: 16px; font-weight: 600; padding: 0; }

/* ==========================================================
   11. Trade partners + reviews
   ========================================================== */
.ad-partner.et_pb_column {
  background: #fff; border: 1px solid #2f7a55; box-shadow: 0 10px 22px rgba(0,0,0,.10);
  padding: 22px 20px 20px; text-align: center;
}
.ad-partner .et_pb_image { margin-bottom: 14px !important; }
.ad-partner .et_pb_image img { max-height: 120px; width: auto; object-fit: contain; }
.ad-partner h3 { color: var(--ad-green); font-size: 19px; font-weight: 600; padding-bottom: 10px; min-height: 52px; }
.ad-partner .et_pb_button.ad-sq {
  background: var(--ad-green) !important; color: #fff !important; border: 0 !important; border-radius: 2px !important;
  font-size: 13px !important; padding: 6px 14px !important; font-family: var(--ad-font) !important; font-weight: 500 !important;
}
.ad-partner .et_pb_button.ad-sq:after { display: none !important; }
.ad-partner .et_pb_button.ad-sq:hover { background: var(--ad-green-dark) !important; padding: 6px 14px !important; }
.ad-reviews.et_pb_section { background: var(--ad-gray) !important; }
.ad-rev-head { text-align: center; }
.ad-rev-head .ad-excellent { font-size: 20px; font-weight: 800; letter-spacing: .02em; padding: 0; }
.ad-rev-head .ad-stars { color: #f6bb06; font-size: 28px; letter-spacing: 2px; line-height: 1; padding: 0; }
.ad-rev-head .ad-based { font-size: 12px; padding: 4px 0 0; }
.ad-rev-head .ad-google { font-size: 24px; font-weight: 600; letter-spacing: -.5px; padding: 0; }
.ad-google .g1 { color: #4285f4; } .ad-google .g2 { color: #ea4335; } .ad-google .g3 { color: #fbbc05; } .ad-google .g4 { color: #34a853; }
.ad-review.et_pb_testimonial {
  background: #fff !important; border-radius: 10px; padding: 18px 18px 20px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.05); margin-bottom: 18px !important; min-height: 220px;
  display: flex; flex-direction: column;
}
.ad-review .et_pb_testimonial_portrait { display: none !important; }
.ad-review .et_pb_testimonial_description { margin-left: 0 !important; display: flex; flex-direction: column; }
.ad-review .et_pb_testimonial_description_inner { order: 2; font-size: 14px; line-height: 1.55; color: #222; }
.ad-review .et_pb_testimonial_description_inner:before { content: "\2605\2605\2605\2605\2605"; display: block; color: #f6bb06; font-size: 18px; letter-spacing: 1px; margin-bottom: 8px; }
.ad-review .et_pb_testimonial_author { order: 0; font-weight: 700; font-size: 14px; color: #222; margin-top: 0; }
.ad-review .et_pb_testimonial_meta { order: 1; font-size: 12px; color: #777; margin-bottom: 10px; }
.ad-review.et_pb_testimonial:before { display: none; }

/* ==========================================================
   12. Inner page hero (green / lime gradient)
   ========================================================== */
.ad-page-hero.et_pb_section {
  background: radial-gradient(circle at 48% 60%, rgba(255,255,255,.10) 0, rgba(255,255,255,0) 22%),
              linear-gradient(20deg, #d7dc00 0%, #9bbb12 28%, #4f9420 58%, #0a602f 100%) !important;
  padding: 70px 0 !important; text-align: center;
}
.ad-page-hero h1, .ad-page-hero .et_pb_text_inner { text-align: center; }
.ad-page-hero h1 { color: #fff; font-size: 50px; font-weight: 700; padding: 0; text-shadow: 0 2px 10px rgba(0,0,0,.15); }
.ad-page-hero .ad-hero-sub p { color: #fff; font-size: 18px; padding: 8px 0 0; }

/* ==========================================================
   13. Long-form gallery/article pages
   ========================================================== */
.ad-article-wrap.et_pb_section { background: #f7f8f9 !important; padding: 0 !important; }
.ad-article-wrap > .et_pb_row { background: #fff; max-width: 1180px; padding: 24px 24px 50px !important; width: 92%; }
.ad-banner.et_pb_section, .ad-banner-row.et_pb_row {
  position: relative; background-size: cover; background-position: center;
}
.ad-banner-box.et_pb_text {
  position: relative; overflow: hidden; background-size: cover; background-position: center;
  min-height: 210px; display: flex; align-items: center; justify-content: center; text-align: center; margin-bottom: 40px !important;
}
.ad-banner-box.et_pb_text:before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(160,170,0,.80) 0%, rgba(90,150,30,.70) 45%, rgba(10,96,47,.85) 100%);
}
.ad-banner-box .et_pb_text_inner { position: relative; z-index: 1; padding: 30px 20px; }
.ad-banner-box h1 { color: #fff; font-size: 62px; font-weight: 700; letter-spacing: -.5px; padding: 0; text-shadow: 3px 4px 6px rgba(0,0,0,.45); }
.ad-article { max-width: 1100px; margin: 0 auto; padding: 0 22px; }
.ad-article h2 { font-size: 32px; font-weight: 400; color: #222; margin-top: 18px; }
.ad-article h2.ad-h-green, .ad-article .ad-h-green { color: var(--ad-green); border-bottom: 1px solid var(--ad-green); padding-bottom: 10px; margin-bottom: 18px; font-size: 32px; font-weight: 400; }
.ad-article h3 { font-size: 24px; font-weight: 500; margin-top: 10px; }
.ad-article h4 { font-size: 18px; font-weight: 700; }
.ad-article p, .ad-article li { font-size: 15px; color: #333; }
.ad-article ul, .ad-article ol { padding: 0 0 1.2em 1.4em; }
.ad-article ul li { list-style: disc; }
.ad-article ol li { list-style: decimal; }
.ad-article hr { border: 0; border-top: 1px solid #555; margin: 30px 0; }
.ad-article strong { color: #111; }
.ad-article img { max-width: 100%; height: auto; }
.ad-article figure { margin: 10px 0 24px; }
.ad-article figcaption { font-size: 13px; color: #666; text-align: center; padding-top: 6px; }
.ad-article .ad-figure-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; margin: 10px 0 24px; }
.ad-article table { width: 100%; border-collapse: collapse; margin: 10px 0 24px; font-size: 14px; }
.ad-article th, .ad-article td { border: 1px solid #d9d9d9; padding: 10px 12px; text-align: left; vertical-align: top; }
.ad-article th { background: var(--ad-mint); color: #111; }
details.ad-summary {
  background: var(--ad-mint); padding: 16px 20px 18px; margin: 10px 0 30px; font-size: 17px; line-height: 1.6; color: #222;
}
details.ad-summary summary { font-weight: 700; text-transform: uppercase; font-size: 15px; cursor: pointer; margin-bottom: 4px; }
details.ad-summary p { font-size: 17px; padding: 0; color: #222; }
.ad-gallery-box.et_pb_gallery, .ad-gallery-wrap {
  background: var(--ad-mint) !important; padding: 26px 40px 20px !important;
}
.ad-gallery-box.et_pb_gallery { margin-bottom: 0 !important; }
.ad-gallery-box .et_pb_gallery_items { background: #f4f4f4; }
.ad-gallery-box .et_pb_gallery_item img { max-height: 520px; width: auto; margin: 0 auto; object-fit: contain; background: #f4f4f4; }
.ad-gallery-box .et_pb_gallery_image { background: #f4f4f4; text-align: center; padding: 16px 0; }
.ad-gallery-box .et-pb-arrow-prev, .ad-gallery-box .et-pb-arrow-next { color: var(--ad-green) !important; opacity: 1 !important; }
.ad-gallery-box .et-pb-arrow-prev { left: 10px !important; } .ad-gallery-box .et-pb-arrow-next { right: 10px !important; }
.ad-gallery-box .et-pb-controllers a { background: rgba(10,96,47,.35); }
.ad-gallery-box .et-pb-controllers a.et-pb-active-control { background: var(--ad-green); }
.ad-gallery-note.et_pb_text { background: var(--ad-mint); padding: 6px 40px 24px; margin-bottom: 30px !important; text-align: center; }
.ad-gallery-note p { font-size: 14px; padding: 0; }
.ad-pill-row { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 24px 0 8px; }
a.ad-pill {
  display: inline-block; background: var(--ad-green); color: #fff !important; border-radius: 999px;
  padding: 14px 28px; font-weight: 700; font-size: 15px; text-align: center; transition: background .2s;
}
a.ad-pill:hover { background: var(--ad-green-dark); color: #fff !important; }
a.ad-pill.ad-pill-yellow { background: var(--ad-yellow); color: var(--ad-green) !important; }

/* Portfolio hub cards */
.ad-cat.et_pb_column { background: #fff; border-bottom: 4px solid var(--ad-green); box-shadow: var(--ad-shadow); padding-bottom: 16px; border-radius: 4px; overflow: hidden; }
.ad-cat .et_pb_image { margin-bottom: 12px !important; }
.ad-cat .et_pb_image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ad-cat .et_pb_text { padding: 0 16px; }
.ad-cat h3 { font-size: 20px; color: var(--ad-green); padding-bottom: 6px; }
.ad-cat h3 a { color: var(--ad-green); }
.ad-cat p { font-size: 14px; color: #444; padding-bottom: 6px; }

/* ==========================================================
   14. About page
   ========================================================== */
.ad-stat.et_pb_text {
  background: #fff; border-bottom: 4px solid var(--ad-green); border-radius: 4px; text-align: center; padding: 14px 8px 18px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.ad-stat .ad-num { font-size: 50px; font-weight: 800; color: var(--ad-green); line-height: 1.05; padding: 0; }
.ad-stat .ad-lbl { font-size: 14px; color: #222; padding: 4px 0 0; }
.ad-team.et_pb_team_member { background: #fff; border: 1px solid #eee; text-align: center; padding: 0 0 16px !important; }
.ad-team .et_pb_team_member_image { margin: 0 0 14px !important; max-width: none !important; }
.ad-team .et_pb_team_member_image img { width: 100%; aspect-ratio: 7 / 6; object-fit: cover; }
.ad-team .et_pb_team_member_description { text-align: center; }
.ad-team h4.et_pb_module_header { font-size: 17px; font-weight: 500; padding: 0; }
.ad-team .et_pb_member_position { font-size: 14px; color: #333; padding: 0; }

/* ==========================================================
   15. Contact page
   ========================================================== */
.ad-info-box.et_pb_text { background: var(--ad-soft); padding: 30px 26px 40px; }
.ad-info-box p { font-size: 15px; color: #222; }
.ad-info { display: flex; gap: 12px; margin-top: 18px; }
.ad-info .ad-ico { flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--ad-green); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px; margin-top: 3px; }
.ad-info .ad-ico svg { width: 12px; height: 12px; fill: #fff; }
.ad-info h4 { font-size: 18px; font-weight: 600; padding: 0 0 2px; }
.ad-info p { padding: 0; font-size: 15px; }
.ad-contact-form h2 { font-size: 24px; font-weight: 400; color: #222; padding-bottom: 14px; text-align: left; }

/* ==========================================================
   16. Ninja Forms
   ========================================================== */
.nf-form-cont .nf-form-fields-required { display: none; }
.nf-form-cont .nf-field-element input:not([type=button]):not([type=submit]):not([type=checkbox]),
.nf-form-cont .nf-field-element textarea,
.nf-form-cont .nf-field-element select {
  width: 100%; border: 1px solid #ccc; background: #fff; color: #222; border-radius: 0;
  padding: 12px 12px; font-size: 14px; font-family: var(--ad-font); height: auto; box-shadow: none;
}
.nf-form-cont .nf-field-element textarea { height: 90px; min-height: 0; }
.nf-form-cont .nf-field-label label { font-weight: 700; font-size: 14px; color: #222; }
.nf-form-cont .nf-field-container { margin-bottom: 14px; }
.nf-form-cont input[type=submit], .nf-form-cont input[type=button] {
  background: var(--ad-green); color: #fff; border: 0; border-radius: 3px; padding: 12px 26px;
  font-weight: 700; font-size: 15px; cursor: pointer; font-family: var(--ad-font);
}
.nf-form-cont input[type=submit]:hover { background: var(--ad-green-dark); }
.nf-form-cont .nf-error-msg, .nf-form-cont .ninja-forms-req-symbol { color: #c62828; }
.nf-form-cont .nf-response-msg { padding: 14px 16px; background: var(--ad-mint); color: #111; margin-bottom: 14px; }
/* two- / three-up rows */
.ad-contact-form nf-fields-wrap, .ad-footer-form nf-fields-wrap { display: flex; flex-wrap: wrap; column-gap: 14px; }
.ad-contact-form nf-field, .ad-footer-form nf-field { flex: 1 1 100%; min-width: 0; }
.ad-contact-form nf-field:nth-child(1), .ad-contact-form nf-field:nth-child(2) { flex: 1 1 calc(50% - 7px); }
.ad-footer-form nf-field:nth-child(1), .ad-footer-form nf-field:nth-child(2), .ad-footer-form nf-field:nth-child(3) { flex: 1 1 calc(33.333% - 10px); }
.ad-contact-form .nf-field-container { margin-bottom: 26px; }
/* footer form on green */
.ad-footer-form .nf-field-element input:not([type=submit]),
.ad-footer-form .nf-field-element textarea,
.ad-footer-form .nf-field-element select { border: 0; }
.ad-footer-form .nf-field-label label { color: #fff; }
.ad-footer-form .listselect-container .nf-field-label { display: block !important; position: static !important; }
.ad-footer-form .listselect-container .nf-field-label label { position: static !important; clip: auto !important; height: auto !important; width: auto !important; overflow: visible !important; }
.ad-footer-form .nf-field-container { margin-bottom: 10px; }
.ad-footer-form input[type=submit] { background: var(--ad-yellow); color: var(--ad-green); margin-top: 10px; }
.ad-footer-form input[type=submit]:hover { background: #fff35a; color: var(--ad-green-dark); }
.ad-footer-form .nf-response-msg { background: rgba(255,255,255,.12); color: #fff; }
.ad-footer-form .nf-error-msg { color: var(--ad-yellow); }

/* ==========================================================
   17. Footer (Theme Builder)
   ========================================================== */
.ad-footer.et_pb_section { background: var(--ad-green-2) !important; padding: 60px 0 40px !important; color: #fff; }
.ad-footer .et_pb_row { max-width: 1180px; width: 90%; padding: 0 !important; }
.ad-footer p, .ad-footer li { color: #fff; font-size: 14px; line-height: 1.55; }
.ad-footer .ad-flogo img { max-width: 250px; }
.ad-footer h4.ad-fhead, .ad-footer .ad-fhead h4 {
  color: #fff; text-transform: uppercase; font-size: 16px; font-weight: 800; letter-spacing: .01em;
  display: inline-block; border-bottom: 1px dashed rgba(255,255,255,.85); padding: 0 0 4px; margin-bottom: 16px;
}
.ad-flinks ul { list-style: none; padding: 0 !important; margin: 0; }
.ad-flinks li { padding: 0 0 10px 22px !important; position: relative; list-style: none !important; }
.ad-flinks li:before { content: "+"; position: absolute; left: 0; top: -4px; color: #fff; font-size: 20px; font-weight: 600; }
.ad-flinks a { color: var(--ad-yellow) !important; }
.ad-fcontact ul { list-style: none; padding: 0 !important; }
.ad-fcontact li { position: relative; padding: 0 0 14px 22px !important; list-style: none !important; }
.ad-fcontact li svg { position: absolute; left: 0; top: 3px; width: 13px; height: 13px; fill: #fff; }
.ad-fcontact a { color: #fff; }
.ad-fcontact a:hover { color: var(--ad-yellow); }
.ad-social.et_pb_social_media_follow li { margin-right: 10px !important; margin-bottom: 0 !important; }
.ad-social.et_pb_social_media_follow li a.icon { background: #fff !important; border-radius: 2px; width: 26px; height: 26px; }
.ad-social.et_pb_social_media_follow li a.icon:before { color: #111 !important; font-size: 13px; line-height: 26px; width: 26px; height: 26px; }
.ad-copy.et_pb_section { background: var(--ad-green-dark) !important; padding: 14px 0 !important; }
.ad-copy p { color: #fff; text-align: center; font-size: 13px; padding: 0; }

/* ==========================================================
   18. Blog grid + single posts
   ========================================================== */
.ad-blog .et_pb_post { background: #f7f8f9; border: 0 !important; padding: 0 0 18px !important; margin-bottom: 26px !important; }
.ad-blog .et_pb_post .entry-featured-image-url { margin-bottom: 26px; }
.ad-blog .et_pb_post .entry-title, .ad-blog .et_pb_post .entry-title a { color: var(--ad-green) !important; font-size: 21px !important; font-weight: 400 !important; line-height: 1.3 !important; padding: 0 12px 6px; }
.ad-blog .et_pb_post .post-meta { padding: 0 12px; font-size: 11px; color: #333; margin-bottom: 10px; }
.ad-blog .et_pb_post .post-content { padding: 0 12px; font-size: 14px; }
.ad-blog .et_pb_post .more-link { color: var(--ad-green); }
.single-post #main-content .container { max-width: 1000px; padding-top: 50px; }
.single-post .et_post_meta_wrapper h1.entry-title { color: var(--ad-green); font-size: 40px; font-weight: 700; }
.single-post .post-meta, .single-post .post-meta a { color: #666; font-size: 13px; }
.single-post .entry-content h2 { font-size: 28px; font-weight: 700; color: var(--ad-green); margin-top: 18px; }
.single-post .entry-content h3 { font-size: 22px; font-weight: 600; }
.single-post .entry-content p, .single-post .entry-content li { font-size: 16px; color: #333; }
.single-post .entry-content ul, .single-post .entry-content ol { padding: 0 0 1.2em 1.4em; }
.single-post .entry-content img { height: auto; }
.single-post .et_post_meta_wrapper img { max-height: 520px; width: 100%; object-fit: cover; }
.ad-post-cta { background: var(--ad-mint); padding: 22px 24px; margin: 30px 0 10px; border-left: 5px solid var(--ad-green); }
.ad-post-cta p { padding: 0 0 10px; }

/* ==========================================================
   19. Legal pages
   ========================================================== */
.ad-legal { max-width: 900px; margin: 0 auto; }
.ad-legal h2 { font-size: 26px; font-weight: 700; color: var(--ad-green); margin-top: 16px; }
.ad-legal h3 { font-size: 20px; font-weight: 600; }
.ad-legal p, .ad-legal li { font-size: 15px; color: #333; }
.ad-legal ul { padding: 0 0 1.2em 1.4em; }

/* ==========================================================
   19b. Page-hero with photo, hub, galleries, portfolio
   ========================================================== */
.ad-page-hero-img.et_pb_section {
  position: relative; padding: 50px 0 !important; text-align: center;
  background-size: cover !important; background-position: center !important; overflow: hidden;
}
.ad-page-hero-img.et_pb_section:before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(90deg, rgba(225,228,120,.85) 0%, rgba(120,170,40,.75) 45%, rgba(10,96,47,.92) 100%);
}
.ad-page-hero-img .et_pb_row { position: relative; z-index: 1; }
.ad-page-hero-img .et_pb_text_inner { text-align: center; }
.ad-page-hero-img h1 { text-align: center; color: #fff; font-size: 44px; font-weight: 700; padding: 0; text-shadow: 0 2px 10px rgba(0,0,0,.2); }
.ad-sec-h.et_pb_text { margin-bottom: 14px !important; }
.ad-sec-h h4 { color: var(--ad-green); font-size: 20px; font-weight: 700; padding-bottom: 8px; border-bottom: 1px solid #2f7a55; }
.ad-gallery-page.et_pb_section, .ad-portfolio.et_pb_section { padding: 40px 0 60px !important; }
.ad-grid-gallery.et_pb_gallery { margin-bottom: 34px !important; }
.ad-grid-gallery .et_pb_gallery_items { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ad-grid-gallery .et_pb_gallery_item { width: auto !important; margin: 0 !important; clear: none !important; }
.ad-grid-gallery .et_pb_gallery_image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.ad-grid-gallery .et_overlay { background: rgba(10,96,47,.35); border: 0; }
.ad-pf-img.et_pb_image { margin-bottom: 8px !important; }
.ad-pf-img img { width: 100%; object-fit: cover; }
.ad-pf-cap.et_pb_text { text-align: center; margin-bottom: 26px !important; }
.ad-pf-cap p { color: var(--ad-green); font-weight: 600; font-size: 15px; padding: 0; }
.ad-pf-row .et_pb_column > .et_pb_image:not(:last-child) { margin-bottom: 22px !important; }
.ad-si.et_pb_section { padding: 50px 0 !important; }
.ad-si-img.et_pb_image { margin-bottom: 16px !important; }
.ad-si-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ad-center { text-align: center; }
.ad-plain-h1, h1.ad-plain-h1 { font-size: 36px; font-weight: 400; color: #222; padding-bottom: 20px; }
.ad-hub.et_pb_section { padding: 30px 0 !important; background: #f7f8f9; }
.ad-hub .et_pb_row { background: #fff; padding: 22px 30px !important; margin: 0 auto !important; }
.ad-hub-gray .ad-hub-intro, .ad-hub-gray .ad-hub-row { background: linear-gradient(180deg, #c3c3c3 0%, #e6e6e6 60%, #fff 100%) !important; }
.ad-hub-gray .ad-hub-row + .ad-hub-row { background: #fff !important; }
.ad-hub-mint .et_pb_row { background: linear-gradient(180deg, #d6f5cf 0%, #effbec 100%) !important; }
.ad-hub-head h2 { text-align: center; font-size: 28px; font-weight: 400; color: #222; padding-bottom: 14px; }
.ad-hub-gray .ad-hub-head h2 { font-weight: 800; text-transform: uppercase; font-size: 26px; }
.ad-hub-head p { font-size: 15px; color: #333; }
.ad-hub-card h3 { text-align: center; font-size: 26px; font-weight: 400; color: #222; padding-bottom: 10px; }
.ad-hub-img.et_pb_image { margin-bottom: 18px !important; }
.ad-hub-img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
ul.ad-hub-list { list-style: none !important; padding: 0 !important; text-align: center; }
ul.ad-hub-list li { list-style: none !important; font-size: 18px; line-height: 1.7; color: #222; }
ul.ad-hub-list a { color: var(--ad-green); }
.ad-hub-desc p { text-align: center; font-size: 16px; color: #222; }
.ad-hero-btns, .ad-home-hero .ad-btn-row .et_pb_button_module_wrapper { margin-top: 10px !important; }
.ad-home-hero .et_pb_row.ad-hero-box { width: 80%; }
.ad-steps.et_pb_section, .ad-trade.et_pb_section, .ad-work.et_pb_section, .ad-reviews.et_pb_section, .ad-leaders.et_pb_section { padding: 50px 0 !important; }
.ad-steps .et_pb_row, .ad-trade .et_pb_row, .ad-work .et_pb_row { padding: 10px 0 !important; }
.ad-menu.et_pb_menu { background: transparent !important; }
.ad-header .et_pb_menu__logo-wrap { flex: 0 0 200px !important; width: 200px !important; max-width: 200px !important; }
.ad-header .et_pb_menu__logo, .ad-header .et_pb_menu__logo a { display: block; width: 100% !important; max-width: 100% !important; }
.ad-header .et_pb_menu__logo img { width: 100% !important; height: auto !important; max-height: none !important; }
.ad-header .et_pb_menu__wrap { flex: 1 1 auto !important; }
.ad-header .et-menu-nav > ul.et-menu { flex-wrap: nowrap !important; justify-content: flex-end; }
.ad-header .et_pb_menu .et_pb_menu_inner_container { align-items: center; }
/* never hide content waiting on scroll animations */
.et-waypoint:not(.et_pb_circle_counter):not(.et_pb_number_counter), .et_pb_animation_off, .et_had_animation { opacity: 1 !important; }
.et_pb_main_blurb_image .et-waypoint { opacity: 1 !important; transform: none !important; }
.et_animated { animation: none !important; opacity: 1 !important; transform: none !important; }
.et_pb_button.ad-btn::after { vertical-align: middle; position: relative !important; top: -1px; }
.ad-ccard .et_pb_blurb_container, .ad-ccard .et_pb_module_header, .ad-ccard .et_pb_blurb_description { text-align: center; }
.ad-step .et_pb_blurb_container, .ad-step h4.et_pb_module_header { text-align: center !important; }
.ad-tile.et_pb_image, .ad-tile .et_pb_image_wrap, .ad-tile a { display: block; width: 100% !important; max-width: 100% !important; margin: 0 !important; }
.ad-partner .et_pb_image, .ad-partner .et_pb_text, .ad-partner h3 { text-align: center !important; }
.ad-partner .et_pb_image .et_pb_image_wrap { display: inline-block; }
.ad-trade .et_pb_row:has(.ad-partner) { display: flex; align-items: stretch; flex-wrap: wrap; }
.ad-review.et_pb_testimonial { padding-top: 6px !important; }
.ad-review .et_pb_testimonial_description { padding-top: 0 !important; }
.ad-footer-form .nf-field-label { display: none; }
.ad-footer-form .listselect-container .nf-field-label { display: block !important; }
.ad-gallery-box .et-pb-controllers { display: none; }
.ad-copy.et_pb_section { padding: 10px 0 !important; }
.ad-copy .et_pb_row { padding: 0 !important; }
.ad-services.et_pb_section { position: relative; }
.ad-services.et_pb_section:before { content: ""; position: absolute; inset: 0; background: rgba(240,240,240,.86); z-index: 0; pointer-events: none; }
.ad-services.et_pb_section > .et_pb_row { position: relative; z-index: 1; }
.ad-menu .et_pb_menu__logo { margin-right: 30px; }
.ad-menu .et_pb_menu__logo img { max-height: 64px; width: auto; }

/* ==========================================================
   20. Responsive
   ========================================================== */
@media (max-width: 980px) {
  h1 { font-size: 38px; } h2 { font-size: 32px; }
  .ad-title h2 { font-size: 32px; }
  .ad-home-hero h1 { font-size: 36px; }
  .ad-home-hero .ad-hero-sub p { font-size: 20px; }
  .ad-contact-strip.et_pb_section { margin-top: -60px; }
  .ad-contact-strip .et_pb_column { margin-right: 0 !important; margin-bottom: 10px !important; }
  .ad-banner-box h1 { font-size: 44px; }
  .ad-page-hero h1 { font-size: 40px; }
  .ad-footer-form nf-field:nth-child(1), .ad-footer-form nf-field:nth-child(2), .ad-footer-form nf-field:nth-child(3) { flex: 1 1 100%; }
  .ad-header .et_pb_menu .et_pb_menu__logo img { max-height: 52px; }
}
@media (max-width: 767px) {
  body { font-size: 15px; }
  h1 { font-size: 32px; } h2 { font-size: 27px; } h3 { font-size: 22px; }
  .ad-title h2 { font-size: 28px; }
  .ad-home-hero .ad-hero-box { padding: 18px 16px 20px !important; }
  .ad-home-hero h1 { font-size: 30px; }
  .ad-home-hero .ad-hero-sub p { font-size: 17px; }
  .et_pb_button.ad-btn-yellow { font-size: 15px !important; padding: 12px 22px !important; }
  .ad-banner-box { min-height: 150px; }
  .ad-banner-box h1 { font-size: 32px; }
  .ad-article { padding: 0 4px; }
  .ad-article h2, .ad-article h2.ad-h-green { font-size: 25px; }
  .ad-gallery-box.et_pb_gallery, .ad-gallery-wrap { padding: 16px 10px !important; }
  .ad-gallery-note.et_pb_text { padding: 6px 12px 18px; }
  .ad-contact-form nf-field:nth-child(1), .ad-contact-form nf-field:nth-child(2) { flex: 1 1 100%; }
  .ad-stat .ad-num { font-size: 40px; }
  .ad-tiles .et_pb_column { width: 47% !important; margin-right: 6% !important; float: left; }
  .ad-tiles .et_pb_column:nth-child(2n) { margin-right: 0 !important; }
  .ad-grid-gallery .et_pb_gallery_items { grid-template-columns: repeat(2, 1fr); }
  .ad-page-hero-img h1 { font-size: 30px; }
  .ad-hub .et_pb_row { padding: 18px 14px !important; }
  .ad-home-hero .et_pb_row.ad-hero-box { width: 90%; }
}
