



/* =======================================================
   1. โค้ดเดิมของระบบ (ห้ามลบ)
   ======================================================= */
.skip-link.screen-reader-text {
    display: block !important;
    position: absolute !important;
    top: -1000px !important;
    left: 0 !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.skip-link.screen-reader-text:focus {
    top: 20px !important;
    left: 20px !important;
    width: auto !important;
    height: auto !important;
    position: fixed !important;
    background-color: #00d2ff !important; 
    color: #0f172a !important;
    padding: 15px 25px !important;
    z-index: 999999 !important;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5);
    text-decoration: none !important;
}

/* =======================================================
   2. Desktop (คอมพิวเตอร์หน้าจอใหญ่) - เรียงแถวเดียว + สอบผ่านเกณฑ์ Google
   ======================================================= */
@media (min-width: 992px) {
    @keyframes techFadeIn {
        0% { opacity: 0; transform: translateY(-12px) scale(0.98); }
        100% { opacity: 1; transform: translateY(0) scale(1); }
    }

    /* แก้ไขต้นเหตุ: ล็อกกลุ่มเมนูหลัก (ul) ให้เป็นแถวเดียวเสมอ ไม่ยอมให้หักขึ้นแถวใหม่ */
    body .elementor-nav-menu--main ul.elementor-nav-menu {
        display: flex !important;
        flex-wrap: nowrap !important;
        flex-direction: row !important;
    }

    /* ล็อกไม่ให้ตัวหนังสือในแต่ละหัวข้อเมนูตัดขึ้นบรรทัดใหม่ */
    body .elementor-nav-menu--main ul.elementor-nav-menu > li {
        white-space: nowrap !important;
    }

    /* ปรับขนาดปุ่มเมนูหลักชั้นแรก ให้สูงได้มาตรฐาน Google แต่บีบข้างไม่ให้ล้น */
    body .elementor-nav-menu--main > ul > li > .elementor-item {
        padding-top: 16px !important;   /* ความสูงแนวตั้งผ่านเกณฑ์ 48px ของ Google แน่นอน */
        padding-bottom: 16px !important;
        padding-left: 12px !important;   /* ปรับให้ผอมลงเพื่อหลบตัวขอบคอลัมน์ */
        padding-right: 12px !important;
        margin-left: 4px !important;    /* เว้นระยะห่างระหว่างปุ่ม ป้องกันบอทตรวจว่าชิดกันเกินไป */
        margin-right: 4px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* ส่วนของ Dropdown เมนูลดหลั่น (คงความล้ำแบบเดิม) */
    .sub-menu, 
    .dropdown-menu, 
    .nav-dropdown,
    ul.main-menu ul {
        background-color: rgba(10, 25, 47, 0.88) !important; 
        backdrop-filter: blur(16px) !important;                    
        -webkit-backdrop-filter: blur(16px) !important;
        border-radius: 14px !important;          
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 20px rgba(0, 210, 255, 0.2) !important; 
        padding: 10px !important;                        
        border: 1px solid rgba(0, 210, 255, 0.3) !important; 
        animation: techFadeIn 0.3s cubic-bezier(0.25, 1, 0.5, 1) forwards !important;
    }

    .sub-menu li a, 
    .dropdown-menu li a, 
    .nav-dropdown a,
    ul.main-menu ul li a {
        color: #f1f5f9 !important;             
        padding: 14px 22px !important;          
        display: block !important;
        border-radius: 10px !important;          
        text-align: left !important;            
        font-size: 16px !important;             
        font-weight: 400 !important;           
        letter-spacing: 0.5px;
        transition: all 0.25s ease !important; 
    }

    .sub-menu li a:hover, 
    .dropdown-menu li a:hover, 
    .nav-dropdown a:hover,
    ul.main-menu ul li a:hover {
        background-color: rgba(0, 210, 255, 0.12) !important;  
        color: #00d2ff !important;             
        transform: translateX(6px) !important;  
        text-shadow: 0 0 10px rgba(0, 210, 255, 0.6) !important; 
    }
}

/* =======================================================
   3. Mobile & Tablet (ขยายพื้นที่สัมผัสเต็มพิกัดตามมาตรฐาน Google)
   ======================================================= */
@media (max-width: 991px) {
    
    /* ขยายพื้นที่สัมผัสของตัวลิงก์เมนูให้กดง่ายที่สุดบนมือถือ */
    .ion-solar-master-container, 
    body .elementor-nav-menu .elementor-item {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    /* เพิ่มระยะห่างระหว่างกล่องเมนูบนมือถือ */
    body .elementor-nav-menu .menu-item {
        margin-left: 8px !important;
        margin-right: 8px !important;
    }

    .main-navigation,
    .main-navigation ul,
    ul.menu,
    ul.main-menu,
    .mobile-menu {
        width: 100% !important;
        max-width: 100% !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
    }

    li.menu-item, 
    .main-navigation li {
        width: 100% !important;
        display: block !important;
        border: none !important;
    }

    ul.menu > li > a,
    .main-navigation a,
    .mobile-menu a {
        color: #f8fafc !important;
        font-size: 18px !important;
        font-weight: 500 !important;
        padding: 16px 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        background-color: transparent !important;
    }

    .sub-menu, 
    .dropdown-menu, 
    ul.main-menu ul {
        background: linear-gradient(90deg, rgba(0, 210, 255, 0.08) 0%, rgba(255, 255, 255, 0) 100%) !important;
        border-left: 2px solid #00d2ff !important;
        border-radius: 0 8px 8px 0 !important;
        margin: 8px 0 8px 15px !important;
        padding: 4px 0 !important;
        width: calc(100% - 15px) !important; 
        box-shadow: none !important;
        border-top: none !important;
        border-right: none !important;
        border-bottom: none !important;
        box-sizing: border-box !important;
    }

    .sub-menu li, 
    .dropdown-menu li, 
    ul.main-menu ul li {
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .sub-menu li a, 
    .dropdown-menu li a, 
    ul.main-menu ul li a {
        color: rgba(255, 255, 255, 0.75) !important;
        padding: 14px 16px !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        border-bottom: none !important;
        white-space: nowrap !important; 
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .sub-menu li a:active,
    .dropdown-menu li a:active {
        color: #00d2ff !important;
        padding-left: 22px !important;
        text-shadow: 0 0 8px rgba(0, 210, 255, 0.4) !important;
        transition: all 0.2s ease !important;
    }
    
    /* =======================================================
       4. สั่งซ่อน Widget ภาษาที่อยู่ "นอก" เมนูหลัก
       ======================================================= */
    .elementor-widget-wpml-language-switcher,
    .elementor-widget-polylang-language-switcher,
    .elementor-widget-language-switcher,
    .trp-language-switcher,
    
    .elementor-widget:has(.fa-globe),
    .elementor-widget:has(.fa-earth-americas),
    .elementor-widget:has(i[class*="globe"]),
    .elementor-widget:has(svg[data-icon="globe"]) {
        display: none !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* ลบเส้นคั่นใต้คำว่า "ติดต่อ" เพื่อไม่ให้เหลือเส้นลอยๆ ทิ้งไว้ */
    ul.menu > li:last-child > a,
    .main-navigation li:last-child a {
        border-bottom: none !important;
    }
}

/* ION FAQ plain v4: wrapping safeguard — 2026-08-09 */
.ion-faq-plain-v4__title,
.ion-faq-plain-v4__question-text,
.ion-faq-plain-v4__answer,
.ion-faq-plain-v4__answer p {
  max-width: 100%;
  min-width: 0;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}


/* ION global content typography + mobile gutters — 2026-08-12 */
body main#content :where(
  h1, h2, h3, h4, h5, h6,
  p, li, dt, dd, blockquote, figcaption, caption,
  th, td, label, input:not([type="hidden"]), textarea, select, button,
  summary, a, .elementor-button, .elementor-heading-title,
  .elementor-post__title, .elementor-post__excerpt
) {
  font-family: "Prompt", Tahoma, Arial, sans-serif !important;
}

body main#content span:not(:where(
  .elementor-icon, .elementor-button-icon, .eicon,
  [class*=" eicon-"], [class^="eicon-"],
  [class*=" icon"], [class^="icon"],
  [class*=" fa-"], [class^="fa-"]
)) {
  font-family: inherit !important;
}

body main#content :where(
  .elementor-counter-number,
  .elementor-counter-number-prefix,
  .elementor-counter-number-suffix,
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="kwp"], [class*="kwh"]
) {
  font-family: "Barlow Semi Condensed", "Prompt", Tahoma, Arial, sans-serif !important;
}

body main#content h1 { font-size: 40px !important; }
body main#content h2 { font-size: 36px !important; }
body main#content h3 { font-size: 24px !important; }
body main#content h4 { font-size: 20px !important; }
body main#content h5 { font-size: 18px !important; }
body main#content h6 { font-size: 17px !important; }

body main#content :where(p, li, dt, dd, blockquote):not(:where(
  [class*="title"], [class*="heading"],
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="value"],
  [class*="kwp"], [class*="kwh"]
)) {
  font-size: 17px !important;
}

body main#content :where(p, li)[class*="title"],
body main#content :where(p, li)[class*="heading"] {
  font-size: 20px !important;
}

body main#content :where(
  figcaption, caption, small,
  [class*="eyebrow"], [class*="kicker"], [class*="overline"],
  [class*="meta"], [class*="caption"], [class*="hint"],
  [class*="tier"], [class*="prefix"], [class*="unit"], [class*="phase"]
) {
  font-size: 15px !important;
}

body main#content :where(th, summary) { font-size: 18px !important; }
body main#content td { font-size: 16px !important; }
body main#content :where(label, .elementor-field-label) { font-size: 15px !important; }
body main#content :where(
  input:not([type="hidden"]), textarea, select, button, .elementor-button
) {
  font-size: 16px !important;
}

body main#content .elementor-post__title,
body main#content .elementor-post__title :where(a, span) {
  font-size: 22px !important;
}

body main#content .elementor-post__excerpt,
body main#content .elementor-post__excerpt p {
  font-size: 16px !important;
}

@media (max-width: 1024px) {
  body main#content h1 { font-size: 34px !important; }
  body main#content h2 { font-size: 32px !important; }
  body main#content h3 { font-size: 22px !important; }
  body main#content h4 { font-size: 19px !important; }
  body main#content h5 { font-size: 18px !important; }
}

@media (max-width: 767px) {
  body main#content {
    --ion-mobile-gutter-left: max(15px, env(safe-area-inset-left));
    --ion-mobile-gutter-right: max(15px, env(safe-area-inset-right));
  }

  body main#content h1,
  body main#content h2 {
    font-size: 28px !important;
  }

  body main#content h3 { font-size: 21px !important; }
  body main#content h4 { font-size: 18px !important; }
  body main#content h5 { font-size: 17px !important; }
  body main#content h6 { font-size: 16px !important; }

  body main#content :where(p, li, dt, dd, blockquote):not(:where(
    [class*="title"], [class*="heading"],
    [class*="number"], [class*="count"], [class*="metric"],
    [class*="price"], [class*="amount"], [class*="value"],
    [class*="kwp"], [class*="kwh"]
  )) {
    font-size: 16px !important;
  }

  body main#content :where(p, li)[class*="title"],
  body main#content :where(p, li)[class*="heading"] {
    font-size: 18px !important;
  }

  body main#content :where(
    figcaption, caption, small,
    [class*="eyebrow"], [class*="kicker"], [class*="overline"],
    [class*="meta"], [class*="caption"], [class*="hint"],
    [class*="tier"], [class*="prefix"], [class*="unit"], [class*="phase"]
  ) {
    font-size: 15px !important;
  }

  body main#content :where(th, td) { font-size: 16px !important; }
  body main#content summary { font-size: 18px !important; }
  body main#content :where(label, .elementor-field-label) { font-size: 15px !important; }
  body main#content :where(
    input:not([type="hidden"]), textarea, select, button, .elementor-button
  ) {
    font-size: 16px !important;
  }

  body main#content .elementor-post__title,
  body main#content .elementor-post__title :where(a, span) {
    font-size: 20px !important;
  }

  body main#content > .page-content > [data-elementor-type="wp-page"] > .e-con.e-con-boxed {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body main#content > .page-content > [data-elementor-type="wp-page"] > .e-con.e-con-boxed > .e-con-inner {
    padding-left: var(--ion-mobile-gutter-left) !important;
    padding-right: var(--ion-mobile-gutter-right) !important;
    box-sizing: border-box;
  }

  body main#content > .page-content > [data-elementor-type="wp-page"] > .e-con.e-con-full:not(:has(.elementor-widget-html)),
  body main#content > .page-content > [data-elementor-type="wp-page"] > .e-con.e-con-full:has(.elementor-widget-html) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body main#content .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div):has(:where(h1, h2, h3, h4, p, li, form)) {
    padding-left: var(--ion-mobile-gutter-left) !important;
    padding-right: var(--ion-mobile-gutter-right) !important;
    box-sizing: border-box;
  }

  body main#content .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body.single-post main#content.e-con,
  body.single-post main#content.e-con > .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
}


/* Keep mixed Thai-English content on one readable metric system. */
body main#content .page-content :where(
  h1, h2, h3, h4, h5, h6,
  p, li, dt, dd, blockquote, figcaption, caption,
  th, td, label, input:not([type="hidden"]), textarea, select, button,
  summary, a, .elementor-button, .elementor-heading-title,
  .elementor-post__title, .elementor-post__excerpt
),
body.single-post main#content :where(
  h1, h2, h3, h4, h5, h6,
  p, li, dt, dd, blockquote, figcaption, caption,
  th, td, label, input:not([type="hidden"]), textarea, select, button,
  summary, a, .elementor-button, .elementor-heading-title,
  .elementor-post__title, .elementor-post__excerpt
) {
  font-family: "Prompt", Tahoma, Arial, sans-serif !important;
}

body main#content .page-content :where(
  .elementor-counter-number,
  .elementor-counter-number-prefix,
  .elementor-counter-number-suffix,
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="kwp"], [class*="kwh"]
),
body.single-post main#content :where(
  .elementor-counter-number,
  .elementor-counter-number-prefix,
  .elementor-counter-number-suffix,
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="kwp"], [class*="kwh"]
) {
  font-family: "Barlow Semi Condensed", "Prompt", Tahoma, Arial, sans-serif !important;
}


body main#content .page-content [data-elementor-type] :where(
  h1, h2, h3, h4, h5, h6,
  p, li, dt, dd, blockquote, figcaption, caption,
  th, td, label, input:not([type="hidden"]), textarea, select, button,
  summary, a, .elementor-button, .elementor-heading-title,
  .elementor-post__title, .elementor-post__excerpt
) {
  font-family: "Prompt", Tahoma, Arial, sans-serif !important;
}

body main#content .page-content [data-elementor-type] :where(
  .elementor-counter-number,
  .elementor-counter-number-prefix,
  .elementor-counter-number-suffix,
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="kwp"], [class*="kwh"]
) {
  font-family: "Barlow Semi Condensed", "Prompt", Tahoma, Arial, sans-serif !important;
}


body main#content .page-content [data-elementor-type] .elementor-element .ion-hero__title,
body main#content .page-content [data-elementor-type] .elementor-element .ion-hero__title-line {
  font-family: "Prompt", Tahoma, Arial, sans-serif !important;
}


/* ION typography QA corrections — 2026-08-12 */
@media (max-width: 767px) {
  body main#content .page-content [data-elementor-type] .elementor-element h1,
  body main#content .page-content [data-elementor-type] .elementor-element h2 {
    font-size: 28px !important;
  }

  body main#content .page-content [data-elementor-type] .elementor-element h3 {
    font-size: 21px !important;
  }

  body main#content .page-content [data-elementor-type] .elementor-element h4 {
    font-size: 18px !important;
  }

  body main#content .page-content [data-elementor-type] .elementor-element h5 {
    font-size: 17px !important;
  }

  body main#content .page-content [data-elementor-type] .elementor-element h6 {
    font-size: 16px !important;
  }

  body main#content .page-content [data-elementor-type] .elementor-element .elementor-post__title,
  body main#content .page-content [data-elementor-type] .elementor-element .elementor-post__title :where(a, span) {
    font-size: 20px !important;
  }

  body main#content .page-content [data-elementor-type] .elementor-element :where(
    .elementor-field-label,
    [class*="eyebrow"], [class*="kicker"], [class*="overline"],
    [class*="meta"], [class*="caption"], [class*="hint"],
    [class*="tier"], [class*="prefix"], [class*="unit"], [class*="phase"]
  ) {
    font-size: 15px !important;
  }

  body main#content > .page-content > [data-elementor-type="wp-page"] > .e-con.e-con-boxed:has(.elementor-widget-html) > .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body main#content .elementor-widget-html > :where(section, main, article, div):has(:where(h1, h2, h3, h4, p, li, form)),
  body main#content .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div):has(:where(h1, h2, h3, h4, p, li, form)) {
    padding-left: var(--ion-mobile-gutter-left) !important;
    padding-right: var(--ion-mobile-gutter-right) !important;
    box-sizing: border-box;
  }

  body main#content .elementor-widget-html > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ),
  body main#content .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ) {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
}


/* ION mobile gutter de-duplication — 2026-08-12 */
@media (max-width: 767px) {
  body main#content .elementor-widget-html > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ),
  body main#content .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ) {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body main#content .ion-hero__content {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body main#content .ion-hero__title-line {
    white-space: normal !important;
  }
}


@media (max-width: 767px) {
  body main#content .elementor-widget-html > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ),
  body main#content .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ) {
    width: 100% !important;
    max-width: 100% !important;
  }
}


@media (max-width: 767px) {
  body main#content .ion-panel-hero > .ion-panel-hero__body {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}


/* ION single-post content typography + gutters — 2026-08-12 */
body.single-post [data-elementor-type="wp-post"] :where(
  h1, h2, h3, h4, h5, h6,
  p, li, dt, dd, blockquote, figcaption, caption,
  th, td, label, input:not([type="hidden"]), textarea, select, button,
  summary, a, .elementor-button, .elementor-heading-title
) {
  font-family: "Prompt", Tahoma, Arial, sans-serif !important;
}

body.single-post [data-elementor-type="wp-post"] :where(
  .elementor-counter-number,
  .elementor-counter-number-prefix,
  .elementor-counter-number-suffix,
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="kwp"], [class*="kwh"]
) {
  font-family: "Barlow Semi Condensed", "Prompt", Tahoma, Arial, sans-serif !important;
}

body.single-post [data-elementor-type="wp-post"] h1 { font-size: 40px !important; }
body.single-post [data-elementor-type="wp-post"] h2 { font-size: 36px !important; }
body.single-post [data-elementor-type="wp-post"] h3 { font-size: 24px !important; }
body.single-post [data-elementor-type="wp-post"] h4 { font-size: 20px !important; }
body.single-post [data-elementor-type="wp-post"] h5 { font-size: 18px !important; }
body.single-post [data-elementor-type="wp-post"] h6 { font-size: 17px !important; }

body.single-post [data-elementor-type="wp-post"] :where(p, li, dt, dd, blockquote):not(:where(
  [class*="title"], [class*="heading"],
  [class*="number"], [class*="count"], [class*="metric"],
  [class*="price"], [class*="amount"], [class*="value"],
  [class*="kwp"], [class*="kwh"]
)) {
  font-size: 17px !important;
}

body.single-post [data-elementor-type="wp-post"] :where(p, li)[class*="title"],
body.single-post [data-elementor-type="wp-post"] :where(p, li)[class*="heading"] {
  font-size: 20px !important;
}

body.single-post [data-elementor-type="wp-post"] :where(
  figcaption, caption, small,
  [class*="eyebrow"], [class*="kicker"], [class*="overline"],
  [class*="meta"], [class*="caption"], [class*="hint"],
  [class*="tier"], [class*="prefix"], [class*="unit"], [class*="phase"],
  label, .elementor-field-label
) {
  font-size: 15px !important;
}

body.single-post [data-elementor-type="wp-post"] :where(
  input:not([type="hidden"]), textarea, select, button, .elementor-button
) {
  font-size: 16px !important;
}

@media (max-width: 1024px) {
  body.single-post [data-elementor-type="wp-post"] h1 { font-size: 34px !important; }
  body.single-post [data-elementor-type="wp-post"] h2 { font-size: 32px !important; }
  body.single-post [data-elementor-type="wp-post"] h3 { font-size: 22px !important; }
}

@media (max-width: 767px) {
  body.single-post [data-elementor-type="wp-post"] {
    --ion-mobile-gutter-left: max(15px, env(safe-area-inset-left));
    --ion-mobile-gutter-right: max(15px, env(safe-area-inset-right));
  }

  body.single-post [data-elementor-type="wp-post"] h1,
  body.single-post [data-elementor-type="wp-post"] h2 {
    font-size: 28px !important;
  }

  body.single-post [data-elementor-type="wp-post"] h3 { font-size: 21px !important; }
  body.single-post [data-elementor-type="wp-post"] h4 { font-size: 18px !important; }
  body.single-post [data-elementor-type="wp-post"] h5 { font-size: 17px !important; }
  body.single-post [data-elementor-type="wp-post"] h6 { font-size: 16px !important; }

  body.single-post [data-elementor-type="wp-post"] :where(p, li, dt, dd, blockquote):not(:where(
    [class*="title"], [class*="heading"],
    [class*="number"], [class*="count"], [class*="metric"],
    [class*="price"], [class*="amount"], [class*="value"],
    [class*="kwp"], [class*="kwh"]
  )) {
    font-size: 16px !important;
  }

  body.single-post [data-elementor-type="wp-post"] :where(p, li)[class*="title"],
  body.single-post [data-elementor-type="wp-post"] :where(p, li)[class*="heading"] {
    font-size: 18px !important;
  }

  body.single-post [data-elementor-type="wp-post"] > #content.e-con,
  body.single-post [data-elementor-type="wp-post"] > #content.e-con > .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body.single-post [data-elementor-type="wp-post"] .elementor-widget-html > :where(section, main, article, div):has(:where(h1, h2, h3, h4, p, li, form)),
  body.single-post [data-elementor-type="wp-post"] .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div):has(:where(h1, h2, h3, h4, p, li, form)) {
    padding-left: var(--ion-mobile-gutter-left) !important;
    padding-right: var(--ion-mobile-gutter-right) !important;
    box-sizing: border-box;
  }

  body.single-post [data-elementor-type="wp-post"] .elementor-widget-html > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ),
  body.single-post [data-elementor-type="wp-post"] .elementor-widget-html > .elementor-widget-container > :where(section, main, article, div) > :where(
    [class$="__inner"], [class$="-inner"],
    [class$="__wrap"], [class$="-wrap"],
    [class$="__container"], [class$="-container"]
  ) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
}


/* ION readable microcopy floor — 2026-08-12 */
body main#content .page-content [data-elementor-type] .elementor-element :where(
  .elementor-field-label,
  [class*="eyebrow"], [class*="kicker"], [class*="overline"],
  [class*="meta"], [class*="caption"], [class*="hint"],
  [class*="tier"], [class*="prefix"], [class*="unit"], [class*="phase"]
) {
  font-size: 15px !important;
}


/* =========================================================
   ION homepage section rhythm — pending approval 2026-08-12
   Scope: homepage vertical spacing only; header/footer excluded
   Refined after visual review: tighter, balanced narrative rhythm
   ========================================================= */
body.page-id-15 main#content .ion-hero {
  padding-bottom: 44px;
}

body.page-id-15 main#content .ion-calc {
  padding-top: 44px;
  padding-bottom: 44px;
}

body.page-id-15 main#content .ion-stats {
  padding-top: 44px;
  padding-bottom: 40px;
}

body.page-id-15 main#content .ion-energy-section,
body.page-id-15 main#content .ion-partner-logo-section {
  padding-top: 40px;
  padding-bottom: 40px;
}

body.page-id-15 main#content .ionexec-section,
body.page-id-15 main#content .ion-latest-posts-v1,
body.page-id-15 main#content .ion-faq-plain-v4 {
  padding-top: 44px;
  padding-bottom: 44px;
}

/* Remove Elementor's duplicated 40px space before the FAQ. */
body.page-id-15 main#content .elementor-element-2b77960 > .e-con-inner {
  padding-top: 0 !important;
}

body.page-id-15 main#content .elementor-element-c5a0bc4 .ion-luxury-pro-form {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

@media (max-width: 1024px) {
  body.page-id-15 main#content .ion-hero {
    padding-bottom: 40px;
  }

  body.page-id-15 main#content .ion-calc {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  body.page-id-15 main#content .ion-stats {
    padding-top: 40px;
    padding-bottom: 36px;
  }

  body.page-id-15 main#content .ion-energy-section,
  body.page-id-15 main#content .ion-partner-logo-section {
    padding-top: 36px;
    padding-bottom: 36px;
  }

  body.page-id-15 main#content .ionexec-section,
  body.page-id-15 main#content .ion-latest-posts-v1,
  body.page-id-15 main#content .ion-faq-plain-v4,
  body.page-id-15 main#content .elementor-element-c5a0bc4 .ion-luxury-pro-form {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
}

@media (max-width: 767px) {
  body.page-id-15 main#content .ion-hero {
    padding-bottom: 36px;
  }

  body.page-id-15 main#content .ion-calc,
  body.page-id-15 main#content .ion-stats,
  body.page-id-15 main#content .ion-energy-section,
  body.page-id-15 main#content .ion-partner-logo-section,
  body.page-id-15 main#content .ionexec-section,
  body.page-id-15 main#content .ion-latest-posts-v1,
  body.page-id-15 main#content .ion-faq-plain-v4,
  body.page-id-15 main#content .elementor-element-c5a0bc4 .ion-luxury-pro-form {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }
}


/* =========================================================
   ION sitewide section rhythm — approved baseline 2026-08-12
   Scope: public page/post content only; header/footer excluded
   ========================================================= */

/* Shared outer sections */
body:not(.page-id-15) .ion-calc {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

body:not(.page-id-15) .ion-stats {
  padding-top: 44px !important;
  padding-bottom: 40px !important;
}

body:not(.page-id-15) .ion-pricing-v1-section,
body:not(.page-id-15) .ione-why,
body:not(.page-id-15) .ion-partner-logo-section,
body:not(.page-id-15) .ione-port,
body:not(.page-id-15) .ion-service-area,
body:not(.page-id-15) .ione-steps,
body:not(.page-id-15) .ion-smart-sizing-section,
body:not(.page-id-15) .ion-tiers-comparison-section,
body:not(.page-id-15) .ion-calculation-section,
body:not(.page-id-15) .ion-table-section,
body:not(.page-id-15) .ion-pricing-section,
body:not(.page-id-15) .ion-precheck-section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

/* Preserve hero header clearance; tighten only the outgoing edge. */
body:not(.page-id-15) .ion-hero,
body:not(.page-id-15) .ion-v5-hero,
body:not(.page-id-15) .ion-promo-section {
  padding-bottom: 44px !important;
}

/* All Back Contact page */
body.page-id-12168 .abcw-container,
body.page-id-12168 .abcy-in,
body.page-id-12168 .ionc,
body.page-id-12168 .ionwr,
body.page-id-12168 .iw,
body.page-id-12168 .abcs {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

/* Micro Inverter product page */
body.page-id-10488 .ion-v5-features-section {
  padding-top: 44px !important;
  padding-bottom: 40px !important;
}

body.page-id-10488 .ion-v5-pricing-section,
body.page-id-10488 .ion-v5-steps-section,
body.page-id-10488 .ion-v5-showcase-section,
body.page-id-10488 .ion-v5-compare-section,
body.page-id-10488 .ion-trust-logo-section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

/* Inverter guide */
body.page-id-12708 .ion-inverter-intro-v1__inner,
body.page-id-12708 .ion-benefits,
body.page-id-12708 .ion-inverter-size {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

/* Solar-panel guide */
body.page-id-12404 .ion-check,
body.page-id-12404 .ion-compare,
body.page-id-12404 .ion-inv10,
body.page-id-12404 .ion-kw,
body.page-id-12404 .ion-warranty,
body.page-id-12404 .ion-why-clean {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

/* About, promotion, and article archive */
body.page-id-2461 .ion-ceo-story {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

body.page-id-9862 .elementor-element-f31caa1 {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

body.page-id-26 .elementor-element-47cd367 {
  padding-bottom: 44px !important;
}

/* New knowledge-article template */
body.single-post .ion-kb-intro-section,
body.single-post .ion-kb-fluid-section,
body.single-post .ion-kb-cyber-safe-section,
body.single-post .ion-kb-digital-section,
body.single-post .ion-kb-roi-section,
body.single-post .ion-kb-fit-section,
body.single-post .ion-kb-trust-section,
body.single-post .ion-kb-weather-section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

/* Legacy long-form articles: one outer editorial section. */
body.single-post #content .elementor-widget-html > section:not([class]) {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

body.single-post .ion-solar-master-container {
  margin-top: 40px !important;
  margin-bottom: 40px !important;
}

/* Shared FAQ, related content, and conversion form. */
body:not(.page-id-15) .ion-faq-plain-v4,
body:not(.page-id-15) .ion-latest-posts-v1 {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

body .ion-luxury-pro-form {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

/* Remove duplicated Elementor space around a single section widget. */
body .e-con-inner:has(> .elementor-widget-html .ion-latest-posts-v1) {
  padding-top: 0 !important;
}

body:not(.page-id-15) .e-con:has(> .elementor-widget-html > .ion-partner-logo-section),
body:not(.page-id-15) .e-con-inner:has(> .elementor-widget-html > .ion-partner-logo-section) {
  gap: 0 !important;
  --gap: 0px !important;
}

@media (max-width: 1024px) {
  body:not(.page-id-15) .ion-calc,
  body:not(.page-id-15) .ion-stats,
  body:not(.page-id-15) .ion-pricing-v1-section,
  body:not(.page-id-15) .ione-why,
  body:not(.page-id-15) .ion-partner-logo-section,
  body:not(.page-id-15) .ione-port,
  body:not(.page-id-15) .ion-service-area,
  body:not(.page-id-15) .ione-steps,
  body:not(.page-id-15) .ion-smart-sizing-section,
  body:not(.page-id-15) .ion-tiers-comparison-section,
  body:not(.page-id-15) .ion-calculation-section,
  body:not(.page-id-15) .ion-table-section,
  body:not(.page-id-15) .ion-pricing-section,
  body:not(.page-id-15) .ion-precheck-section,
  body.page-id-12168 .abcw-container,
  body.page-id-12168 .abcy-in,
  body.page-id-12168 .ionc,
  body.page-id-12168 .ionwr,
  body.page-id-12168 .iw,
  body.page-id-12168 .abcs,
  body.page-id-10488 .ion-v5-features-section,
  body.page-id-10488 .ion-v5-pricing-section,
  body.page-id-10488 .ion-v5-steps-section,
  body.page-id-10488 .ion-v5-showcase-section,
  body.page-id-10488 .ion-v5-compare-section,
  body.page-id-10488 .ion-trust-logo-section,
  body.page-id-12708 .ion-inverter-intro-v1__inner,
  body.page-id-12708 .ion-benefits,
  body.page-id-12708 .ion-inverter-size,
  body.page-id-12404 .ion-check,
  body.page-id-12404 .ion-compare,
  body.page-id-12404 .ion-inv10,
  body.page-id-12404 .ion-kw,
  body.page-id-12404 .ion-warranty,
  body.page-id-12404 .ion-why-clean,
  body.page-id-2461 .ion-ceo-story,
  body.page-id-9862 .elementor-element-f31caa1,
  body:not(.page-id-15) .ion-faq-plain-v4,
  body:not(.page-id-15) .ion-latest-posts-v1,
  body.single-post .ion-kb-intro-section,
  body.single-post .ion-kb-fluid-section,
  body.single-post .ion-kb-cyber-safe-section,
  body.single-post .ion-kb-digital-section,
  body.single-post .ion-kb-roi-section,
  body.single-post .ion-kb-fit-section,
  body.single-post .ion-kb-trust-section,
  body.single-post .ion-kb-weather-section,
  body.single-post #content .elementor-widget-html > section:not([class]),
  body .ion-luxury-pro-form {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  body:not(.page-id-15) .ion-hero,
  body:not(.page-id-15) .ion-v5-hero,
  body:not(.page-id-15) .ion-promo-section {
    padding-bottom: 40px !important;
  }
}

@media (max-width: 767px) {
  body:not(.page-id-15) .ion-calc,
  body:not(.page-id-15) .ion-stats,
  body:not(.page-id-15) .ion-pricing-v1-section,
  body:not(.page-id-15) .ione-why,
  body:not(.page-id-15) .ion-partner-logo-section,
  body:not(.page-id-15) .ione-port,
  body:not(.page-id-15) .ion-service-area,
  body:not(.page-id-15) .ione-steps,
  body:not(.page-id-15) .ion-smart-sizing-section,
  body:not(.page-id-15) .ion-tiers-comparison-section,
  body:not(.page-id-15) .ion-calculation-section,
  body:not(.page-id-15) .ion-table-section,
  body:not(.page-id-15) .ion-pricing-section,
  body:not(.page-id-15) .ion-precheck-section,
  body.page-id-12168 .abcw-container,
  body.page-id-12168 .abcy-in,
  body.page-id-12168 .ionc,
  body.page-id-12168 .ionwr,
  body.page-id-12168 .iw,
  body.page-id-12168 .abcs,
  body.page-id-10488 .ion-v5-features-section,
  body.page-id-10488 .ion-v5-pricing-section,
  body.page-id-10488 .ion-v5-steps-section,
  body.page-id-10488 .ion-v5-showcase-section,
  body.page-id-10488 .ion-v5-compare-section,
  body.page-id-10488 .ion-trust-logo-section,
  body.page-id-12708 .ion-inverter-intro-v1__inner,
  body.page-id-12708 .ion-benefits,
  body.page-id-12708 .ion-inverter-size,
  body.page-id-12404 .ion-check,
  body.page-id-12404 .ion-compare,
  body.page-id-12404 .ion-inv10,
  body.page-id-12404 .ion-kw,
  body.page-id-12404 .ion-warranty,
  body.page-id-12404 .ion-why-clean,
  body.page-id-2461 .ion-ceo-story,
  body.page-id-9862 .elementor-element-f31caa1,
  body:not(.page-id-15) .ion-faq-plain-v4,
  body:not(.page-id-15) .ion-latest-posts-v1,
  body.single-post .ion-kb-intro-section,
  body.single-post .ion-kb-fluid-section,
  body.single-post .ion-kb-cyber-safe-section,
  body.single-post .ion-kb-digital-section,
  body.single-post .ion-kb-roi-section,
  body.single-post .ion-kb-fit-section,
  body.single-post .ion-kb-trust-section,
  body.single-post .ion-kb-weather-section,
  body.single-post #content .elementor-widget-html > section:not([class]),
  body .ion-luxury-pro-form {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }

  body:not(.page-id-15) .ion-hero,
  body:not(.page-id-15) .ion-v5-hero,
  body:not(.page-id-15) .ion-promo-section {
    padding-bottom: 36px !important;
  }

  body.single-post .ion-solar-master-container {
    margin-top: 36px !important;
    margin-bottom: 36px !important;
  }
}


/* Section-rhythm specificity guard for shared FAQ and form components. */
body.wp-singular.elementor-page section.ion-faq-plain-v4 {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

body.wp-singular.elementor-page .elementor-widget-form.elementor-element.ion-luxury-pro-form {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

@media (max-width: 1024px) {
  body.wp-singular.elementor-page section.ion-faq-plain-v4,
  body.wp-singular.elementor-page .elementor-widget-form.elementor-element.ion-luxury-pro-form {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
}

@media (max-width: 767px) {
  body.wp-singular.elementor-page section.ion-faq-plain-v4,
  body.wp-singular.elementor-page .elementor-widget-form.elementor-element.ion-luxury-pro-form {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }
}


/* Match the approved homepage conversion-section rhythm sitewide. */
html body.wp-singular.elementor-page .ion-luxury-pro-form:has(#cta_form_th) {
  padding-top: 44px !important;
  padding-bottom: 44px !important;
}

@media (max-width: 1024px) {
  html body.wp-singular.elementor-page .ion-luxury-pro-form:has(#cta_form_th) {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
}

@media (max-width: 767px) {
  html body.wp-singular.elementor-page .ion-luxury-pro-form:has(#cta_form_th) {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }
}


/* ION homepage executive section — CEO-approved v2 tone 2026-08-12 */
body.page-id-15 main#content .ionexec-section {
  --exec-navy-deep: #0f1e2e;
  --exec-navy: #182d43;
  --exec-amber: #e6a23c;
  --exec-amber-soft: #f4c77a;
  --exec-cream: #faf6ef;
  --exec-card: #ffffff;
  --exec-card-line: #e4dbcd;
  background: #faf6ef !important;
  color: #182d43;
}

body.page-id-15 main#content .ionexec-eyebrow {
  color: #7a4014 !important;
}

body.page-id-15 main#content .ionexec-eyebrow::before {
  background: linear-gradient(90deg, transparent, #e6a23c);
}

body.page-id-15 main#content .ionexec-eyebrow::after {
  background: linear-gradient(90deg, #e6a23c, transparent);
}

body.page-id-15 main#content .ionexec-title {
  color: #182d43 !important;
}

body.page-id-15 main#content .ionexec-sub {
  color: #66707c !important;
}

body.page-id-15 main#content .ionexec-card {
  background: #ffffff;
  border-color: #e4dbcd;
  box-shadow: 0 14px 36px rgba(15,30,46,.08);
}

body.page-id-15 main#content .ionexec-card:hover {
  border-color: rgba(230,162,60,.72);
  box-shadow: 0 18px 40px rgba(15,30,46,.13);
}

body.page-id-15 main#content .ionexec-card:focus-visible {
  outline-color: #e6a23c;
}

body.page-id-15 main#content .ionexec-thumb {
  background: #0f1e2e;
}

body.page-id-15 main#content .ionexec-thumb::after {
  background: linear-gradient(180deg, rgba(15,30,46,.02) 0%, rgba(15,30,46,.10) 58%, rgba(15,30,46,.24) 100%);
}

body.page-id-15 main#content .ionexec-play {
  width: 60px;
  height: 60px;
  background: rgba(15,30,46,.72);
  border: 0;
  box-shadow: 0 10px 26px rgba(15,30,46,.30), inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

body.page-id-15 main#content .ionexec-play svg {
  width: 20px;
  height: 20px;
  fill: #ffffff;
  margin-left: 4px;
  filter: none;
}

body.page-id-15 main#content .ionexec-card:hover .ionexec-play {
  background: rgba(15,30,46,.88);
  border-color: transparent;
  box-shadow: 0 12px 30px rgba(15,30,46,.36), inset 0 1px 0 rgba(255,255,255,.20);
}

body.page-id-15 .ionexec-modal {
  background: rgba(15,30,46,.90);
}

body.page-id-15 .ionexec-modal::before {
  background: radial-gradient(760px 360px at 50% 32%, rgba(230,162,60,.12), transparent 66%);
}

body.page-id-15 .ionexec-modal-inner {
  border-color: rgba(244,199,122,.22);
  box-shadow: 0 34px 90px -18px rgba(0,0,0,.80), 0 0 0 1px rgba(230,162,60,.10);
}

body.page-id-15 .ionexec-close {
  background: rgba(15,30,46,.92);
  border-color: rgba(244,199,122,.28);
  box-shadow: 0 12px 28px rgba(0,0,0,.36);
}

body.page-id-15 .ionexec-close:hover {
  background: #182d43;
  border-color: #e6a23c;
  box-shadow: 0 16px 32px rgba(0,0,0,.40);
}

body.page-id-15 .ionexec-close:focus-visible {
  outline-color: #e6a23c;
}

@media (max-width: 560px) {
  body.page-id-15 main#content .ionexec-play {
    width: 54px;
    height: 54px;
  }
  body.page-id-15 main#content .ionexec-play svg {
    width: 18px;
    height: 18px;
    margin-left: 3px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-id-15 main#content .ionexec-card,
  body.page-id-15 main#content .ionexec-thumb img,
  body.page-id-15 main#content .ionexec-play {
    transition: none;
  }
}

/* ION executive video play button — exact DCH reference 2026-08-12 */
body.page-id-15 main#content .ionexec-play {
  width: 58px !important;
  height: 58px !important;
  background: rgba(18, 18, 18, .62) !important;
  border: 0 !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .24) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
  transition: none !important;
}

body.page-id-15 main#content .ionexec-play svg {
  display: none !important;
}

body.page-id-15 main#content .ionexec-play::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-left: 18px solid #fff;
  margin-left: 5px;
}

body.page-id-15 main#content .ionexec-card:hover .ionexec-play,
body.page-id-15 main#content .ionexec-card:active .ionexec-play {
  transform: translate(-50%, -50%) !important;
  background: rgba(18, 18, 18, .62) !important;
  border: 0 !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .24) !important;
}

/* ION sitewide FAQ — approved card system 2026-08-12 */
body .ion-faq-plain-v4__header {
  margin-bottom: 30px;
}

body .ion-faq-plain-v4__list {
  max-width: 960px;
  margin-inline: auto;
  padding: 0;
  display: grid;
  gap: 12px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body .ion-faq-plain-v4__item {
  position: relative;
  margin: 0;
  border: 1px solid #e4dbcd !important;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(15, 30, 46, .035);
  overflow: hidden;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease;
}

body .ion-faq-plain-v4__item::before {
  content: none;
}

body .ion-faq-plain-v4__item[open] {
  border-color: rgba(230, 162, 60, .7) !important;
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(15, 30, 46, .07);
}

body .ion-faq-plain-v4__question {
  min-height: 78px;
  padding: 20px 20px 20px 24px;
  grid-template-columns: minmax(0, 1fr) 36px;
  align-items: center;
  gap: 20px;
  border: 0;
  border-radius: 15px;
  background: transparent;
}

body .ion-faq-plain-v4__question::-webkit-details-marker {
  display: none;
}

body .ion-faq-plain-v4 .ion-faq-plain-v4__question-text,
body.page-id-15 main#content .ion-faq-plain-v4 .ion-faq-plain-v4__question-text {
  min-width: 0;
  font-size: 18.5px !important;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
  color: #182d43;
}

body .ion-faq-plain-v4__answer {
  max-width: 100%;
  padding: 0 24px 24px 24px !important;
  color: #2c3540;
}

body .ion-faq-plain-v4__answer p {
  max-width: none;
  margin: 0;
  text-wrap: pretty;
  font-size: 16.75px !important;
  line-height: 1.78;
  color: #2c3540;
}

body .ion-faq-plain-v4__chevron {
  position: relative;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin: 0 !important;
  border: 1px solid #e4dbcd !important;
  border-radius: 50%;
  background: #faf6ef;
  box-shadow: none;
  transform: none !important;
  transition:
    background-color 180ms ease,
    border-color 180ms ease;
}

body .ion-faq-plain-v4__chevron::before,
body .ion-faq-plain-v4__chevron::after {
  content: "";
  position: absolute;
  border: 0 !important;
  border-radius: 2px;
  background: #182d43;
  transform: none !important;
  transition: opacity 180ms ease;
}

body .ion-faq-plain-v4__chevron::before {
  width: 12px;
  height: 2px;
}

body .ion-faq-plain-v4__chevron::after {
  width: 2px;
  height: 12px;
}

body .ion-faq-plain-v4__item[open] .ion-faq-plain-v4__chevron {
  border-color: #e6a23c !important;
  background: #e6a23c;
}

body .ion-faq-plain-v4__item[open] .ion-faq-plain-v4__chevron::before,
body .ion-faq-plain-v4__item[open] .ion-faq-plain-v4__chevron::after {
  border-color: transparent;
  background: #182d43;
}

body .ion-faq-plain-v4__item[open] .ion-faq-plain-v4__chevron::after {
  opacity: 0;
}

body .ion-faq-plain-v4__question:focus-visible {
  outline: 2px solid #e6a23c;
  outline-offset: -3px;
}

@media (hover: hover) and (pointer: fine) {
  body .ion-faq-plain-v4__item:not([open]) .ion-faq-plain-v4__question:hover {
    background: rgba(243, 236, 224, .42);
  }

  body .ion-faq-plain-v4__item:not([open]) .ion-faq-plain-v4__question:hover .ion-faq-plain-v4__chevron {
    border-color: rgba(230, 162, 60, .8) !important;
    background: rgba(230, 162, 60, .1);
  }
}

@media (max-width: 767px) {
  body.postid-6117 .ion-faq-plain-v4,
  body.postid-6446 .ion-faq-plain-v4 {
    width: calc(100% + 66px);
    max-width: calc(100% + 66px);
    margin-inline: -33px;
  }

  body .ion-faq-plain-v4__header {
    margin-bottom: 24px;
  }

  body .ion-faq-plain-v4__list {
    width: 100%;
    gap: 10px;
  }

  body .ion-faq-plain-v4__item {
    border-radius: 13px;
    box-shadow: 0 6px 18px rgba(15, 30, 46, .03);
  }

  body .ion-faq-plain-v4__item[open] {
    box-shadow: 0 10px 24px rgba(15, 30, 46, .055);
  }

  body .ion-faq-plain-v4__question {
    min-height: 68px;
    padding: 15px 12px 15px 16px;
    grid-template-columns: minmax(0, 1fr) 32px;
    gap: 12px;
    border-radius: 12px;
  }

  body .ion-faq-plain-v4 .ion-faq-plain-v4__question-text,
body.page-id-15 main#content .ion-faq-plain-v4 .ion-faq-plain-v4__question-text {
    font-size: 16.5px !important;
    line-height: 1.5;
  }

  body .ion-faq-plain-v4__answer {
    padding: 0 14px 20px 16px !important;
  }

  body .ion-faq-plain-v4__answer p {
    max-width: none;
    font-size: 15.75px !important;
    line-height: 1.76;
  }

  body .ion-faq-plain-v4__chevron {
    width: 32px;
    height: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .ion-faq-plain-v4__item,
  body .ion-faq-plain-v4__chevron,
  body .ion-faq-plain-v4__chevron::before,
  body .ion-faq-plain-v4__chevron::after {
    transition: none;
  }
}

/* ION sitewide mascot hero — solar-installation master 2026-08-12 */
body main#content .ion-hero {
  --ion-navy-950: #0f1e2e;
  --ion-navy-800: #182d43;
  --ion-amber-500: #e6a23c;
  --ion-amber-300: #f4c77a;
  --ion-cream: #faf6ef;
  --ion-sun-cream: #fbefdd;
  --ion-text-strong: #182d43;
  --ion-text-body: #2c3540;
  --ion-border-warm: #e4dbcd;

  color: var(--ion-text-body);
  background:
    linear-gradient(180deg, var(--ion-navy-950) 0 118px, transparent 118px),
    radial-gradient(circle at 78% 44%, rgba(230, 162, 60, .16) 0%, rgba(230, 162, 60, 0) 30%),
    var(--ion-cream);
  padding: 148px 40px 44px;
}

body main#content .ion-hero .ion-hero__inner {
  width: min(100%, 1180px);
  grid-template-columns: minmax(0, 700px) minmax(0, 450px);
  gap: 30px;
  align-items: center;
  justify-content: space-between;
}

body main#content .ion-hero .ion-hero__content {
  max-width: 700px;
}

body main#content .ion-hero .ion-hero__title {
  margin: 0 0 22px;
  color: var(--ion-text-strong);
  font-size: 40px !important;
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -.012em;
  text-wrap: balance;
}

body main#content .ion-hero .ion-hero__desc {
  width: 100%;
  max-width: 64ch;
  margin: 0 0 34px;
  color: var(--ion-text-body);
  font-size: 17px !important;
  font-weight: 400;
  line-height: 1.9;
}

body main#content .ion-hero .ion-btn {
  min-height: 52px;
  padding: 15px 32px;
  border-radius: 999px;
  color: var(--ion-navy-950) !important;
  font-size: 16px !important;
  font-weight: 700;
  line-height: 1;
  background: var(--ion-amber-500);
  box-shadow: 0 10px 24px rgba(122, 64, 20, .16);
}

body main#content .ion-hero .ion-hero__visual,
body main#content .ion-hero .ion-stage {
  max-width: 450px;
}

@media (max-width: 1140px) and (min-width: 768px) {
  body main#content .ion-hero {
    padding: 112px 32px 44px;
    background:
      linear-gradient(180deg, var(--ion-navy-950) 0 92px, transparent 92px),
      radial-gradient(circle at 50% 36%, rgba(230, 162, 60, .14) 0%, rgba(230, 162, 60, 0) 32%),
      var(--ion-cream);
  }

  body main#content .ion-hero .ion-hero__inner {
    width: min(100%, 760px);
    grid-template-columns: 1fr;
    gap: 22px;
    justify-items: center;
    text-align: center;
  }

  body main#content .ion-hero .ion-hero__visual {
    order: -1;
    max-width: 390px;
    margin-bottom: 0;
    transform: none;
  }

  body main#content .ion-hero .ion-stage {
    max-width: 390px;
  }

  body main#content .ion-hero .ion-hero__content {
    max-width: 700px;
  }

  body main#content .ion-hero .ion-hero__title {
    margin-bottom: 16px;
    font-size: 34px !important;
    line-height: 1.24;
  }

  body main#content .ion-hero .ion-hero__desc {
    max-width: 700px;
    margin-inline: auto;
    font-size: 16.5px !important;
    text-align: left;
  }

  body main#content .ion-hero .ion-hero__cta {
    justify-content: center;
  }
}

@media (max-width: 767px) {
  body main#content .ion-hero {
    padding: 86px 15px 36px;
    background:
      linear-gradient(180deg, var(--ion-navy-950) 0 74px, transparent 74px),
      radial-gradient(circle at 50% 30%, rgba(230, 162, 60, .14) 0%, rgba(230, 162, 60, 0) 34%),
      var(--ion-cream);
  }

  body main#content .ion-hero .ion-hero__inner {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 18px;
    justify-items: stretch;
    text-align: left;
  }

  body main#content .ion-hero .ion-hero__visual {
    order: -1;
    width: min(100%, 260px);
    max-width: 260px;
    justify-self: center;
    margin-bottom: 0;
    transform: none;
  }

  body main#content .ion-hero .ion-stage {
    max-width: 260px;
  }

  body main#content .ion-hero .ion-hero__title {
    max-width: 100%;
    margin-inline: auto;
    margin-bottom: 14px;
    font-size: 28px !important;
    line-height: 1.3;
    letter-spacing: -.015em;
    text-align: center;
  }

  body main#content .ion-hero .ion-hero__desc {
    max-width: none;
    margin-bottom: 26px;
    font-size: 16px !important;
    line-height: 1.78;
    text-align: left;
  }

  body main#content .ion-hero .ion-hero__cta {
    justify-content: stretch;
  }

  body main#content .ion-hero .ion-btn {
    width: 100%;
    min-height: 52px;
    padding: 15px 24px;
    font-size: 15.2px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body main#content .ion-hero *,
  body main#content .ion-hero *::before,
  body main#content .ion-hero *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ION mascot decoration — warm master palette 2026-08-12 */
body main#content .ion-hero .ion-hero__grid {
  display: none;
  background: none;
}

body main#content .ion-hero .ion-hero__grid::after {
  content: none;
  display: none;
  background: none;
}

body main#content .ion-hero .ion-hero__glow {
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, .92) 0%,
    rgba(251, 239, 221, .72) 42%,
    rgba(230, 162, 60, .12) 58%,
    transparent 72%
  );
}

body main#content .ion-hero .ion-hero__beam {
  background: linear-gradient(
    90deg,
    transparent,
    rgba(230, 162, 60, .24),
    transparent
  );
}

body main#content .ion-hero .ion-stage__glow {
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, .96) 0%,
    rgba(251, 239, 221, .80) 42%,
    rgba(230, 162, 60, .14) 60%,
    transparent 74%
  );
  filter: blur(10px);
}

body main#content .ion-hero .ion-swirl {
  opacity: .58;
}

body main#content .ion-hero .ion-stage stop:nth-child(1),
body main#content .ion-hero .ion-stage stop:nth-child(3) {
  stop-color: #e6a23c !important;
}

body main#content .ion-hero .ion-stage stop:nth-child(2) {
  stop-color: #f4c77a !important;
}

body main#content .ion-hero .ion-stage__img {
  filter:
    drop-shadow(0 24px 28px rgba(24, 45, 67, .18))
    drop-shadow(-6px 12px 18px rgba(24, 45, 67, .10))
    drop-shadow(0 0 24px rgba(230, 162, 60, .12));
}

body main#content .ion-hero .ion-badge {
  color: #182d43;
  background: linear-gradient(145deg, #ffffff, #fbefdd);
  border-color: rgba(230, 162, 60, .58);
  box-shadow:
    0 10px 24px rgba(24, 45, 67, .14),
    inset 0 1px 0 rgba(255, 255, 255, .90);
}

body main#content .ion-hero .ion-spark {
  background: radial-gradient(
    circle,
    #ffffff,
    #e6a23c 44%,
    transparent 72%
  );
  box-shadow: 0 0 9px rgba(230, 162, 60, .42);
}

/* ION mascot header isolation — 2026-08-12 */
body:has(main#content .ion-hero) #nav-header {
  background-color: #0f1e2e !important;
  background-image: none !important;
}

/* END ION sitewide mascot hero — solar-installation master 2026-08-12 */


