/*
Theme Name: AESOVATION
Theme URI: https://www.aesovation.com/
Author: AESOVATION
Description: Lightweight Elementor-ready classic theme for AESOVATION solar engineering.
Version: 0.9.3
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: aescon
*/

@font-face {
  font-family: "Noto Sans Thai";
  src: url("assets/fonts/noto-sans-thai-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("assets/fonts/montserrat-400-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Syne";
  src: url("assets/fonts/Syne-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --aes-purple: #49328f;
  --aes-purple-dark: #2d225e;
  --aes-cyan: #18aac4;
  --aes-cyan-dark: #08788f;
  --aes-lime: #b7d52a;
  --aes-lime-dark: #7f9c12;
  --aes-ink: #171627;
  --aes-body: #555266;
  --aes-muted: #7f7a91;
  --aes-line: #e4e1eb;
  --aes-surface: #f5f6f8;
  --aes-surface-cyan: #edf8fa;
  --aes-white: #fff;
  --aes-max: 1240px;
  --aes-gutter: clamp(22px, 4vw, 40px);
  --aes-header-height: 82px;
  --aes-radius: 4px;
  --aes-font: "Noto Sans Thai", Tahoma, Arial, sans-serif;
  --aes-shadow: 0 16px 42px rgba(35, 28, 70, .08);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--aes-header-height); }
body {
  margin: 0;
  color: var(--aes-body);
  background: var(--aes-white);
  font-family: var(--aes-font);
  font-size: 16px;
  line-height: 1.75;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
body.aescon-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--aes-purple); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--aes-cyan); outline-offset: 3px; }
::selection { color: var(--aes-white); background: var(--aes-purple); }

.aescon-container { width: min(calc(100% - (var(--aes-gutter) * 2)), var(--aes-max)); margin-inline: auto; }
.aescon-section { padding-block: clamp(72px, 8vw, 112px); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { top: 10px; left: 10px; z-index: 100000; width: auto; height: auto; padding: 12px 18px; margin: 0; clip: auto; background: var(--aes-purple-dark); color: var(--aes-white); }

.aescon-site-header { position: sticky; top: 0; z-index: 1000; min-height: var(--aes-header-height); background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--aes-line); }
.aescon-header-inner { min-height: var(--aes-header-height); display: flex; align-items: center; gap: 26px; }
.aescon-brand { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.aescon-brand .custom-logo { width: 205px; max-height: 54px; object-fit: contain; }
.aescon-primary-nav { margin-left: auto; }
.aescon-primary-nav ul { display: flex; align-items: center; gap: clamp(16px, 1.7vw, 28px); list-style: none; margin: 0; padding: 0; }
.aescon-primary-nav a { position: relative; display: block; padding-block: 26px; color: var(--aes-ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.aescon-primary-nav a::after { content: ""; position: absolute; right: 0; bottom: 18px; left: 0; height: 2px; background: var(--aes-lime); transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.aescon-primary-nav .current-menu-item > a, .aescon-primary-nav a:hover { color: var(--aes-purple); }
.aescon-primary-nav .current-menu-item > a::after, .aescon-primary-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.aescon-header-cta { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 22px; color: var(--aes-white); background: var(--aes-purple); border: 1px solid var(--aes-purple); border-radius: var(--aes-radius); font-weight: 700; text-decoration: none; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }
.aescon-header-cta:hover { background: var(--aes-purple-dark); border-color: var(--aes-purple-dark); transform: translateY(-1px); }
.aescon-menu-toggle { display: none; width: 46px; height: 46px; margin-left: auto; padding: 0; align-items: center; justify-content: center; color: var(--aes-ink); background: var(--aes-white); border: 1px solid var(--aes-line); border-radius: var(--aes-radius); }
.aescon-menu-toggle svg { width: 24px; height: 24px; }
.aescon-mobile-panel { position: fixed; inset: 0; z-index: 1100; visibility: hidden; opacity: 0; overflow-y: auto; background: var(--aes-white); transform: translateX(100%); transition: opacity .24s ease, transform .24s ease, visibility .24s; }
.aescon-mobile-panel[data-open="true"] { visibility: visible; opacity: 1; transform: translateX(0); }
.aescon-mobile-head { min-height: 73px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--aes-line); }
.aescon-mobile-logo { width: 160px; height: auto; }
.aescon-menu-close { width: 46px; height: 46px; color: var(--aes-ink); background: var(--aes-white); border: 1px solid var(--aes-line); border-radius: var(--aes-radius); }
.aescon-mobile-nav { padding-block: 18px 32px; }
.aescon-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.aescon-mobile-nav li { border-bottom: 1px solid var(--aes-line); }
.aescon-mobile-nav a { display: block; padding: 15px 0; color: var(--aes-ink); font-size: 18px; font-weight: 650; text-decoration: none; }
.aescon-mobile-nav .aescon-mobile-cta { display: flex; width: 100%; margin-top: 22px; padding: 12px 20px; color: var(--aes-white); }
.aescon-mobile-phone { margin-top: 10px; text-align: center; border: 1px solid var(--aes-line); }

.aescon-site-main { min-height: 55vh; overflow: hidden; }
.aescon-kicker, .aescon-eyebrow { margin: 0 0 14px; color: var(--aes-cyan-dark); font-size: 13px; font-weight: 800; letter-spacing: .13em; line-height: 1.4; }
.aescon-section-heading h2, .aescon-section-head-center h2, .aescon-engineering-copy h2, .aescon-projects-head h2, .aescon-consult-copy h2, .aescon-contact-details h2, .aescon-contact-form-intro h2 { margin: 0; color: var(--aes-ink); font-size: clamp(34px, 4.1vw, 52px); font-weight: 750; line-height: 1.26; letter-spacing: -.025em; }
.aescon-section-heading h2 span, .aescon-section-head-center h2 span, .aescon-engineering-copy h2 span, .aescon-projects-head h2 span, .aescon-consult-copy h2 span, .aescon-contact-form-intro h2 span { display: block; color: var(--aes-purple); }
.aescon-section-head-center { width: min(820px, 100%); margin: 0 auto 50px; text-align: center; }
.aescon-section-head-center > p:last-child { max-width: 660px; margin: 18px auto 0; }

.aescon-hero { position: relative; min-height: clamp(570px, 46vw, 700px); display: flex; align-items: center; isolation: isolate; overflow: hidden; color: var(--aes-white); background: var(--aes-ink); }
.aescon-hero-media { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.aescon-hero-overlay { position: absolute; inset: 0; z-index: -2; background: rgba(12, 12, 26, .64); }
.aescon-hero::after { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; width: 55%; background: rgba(39, 25, 87, .28); border-right: 1px solid rgba(255,255,255,.12); }
.aescon-hero-content { padding-block: 72px 94px; }
.aescon-hero .aescon-eyebrow { color: var(--aes-lime); }
.aescon-hero h1 { max-width: 820px; margin: 0; color: var(--aes-white); font-size: clamp(44px, 5.3vw, 74px); font-weight: 750; line-height: 1.12; letter-spacing: -.035em; }
.aescon-hero h1 span { display: block; color: #80d5df; }
.aescon-hero-lead { max-width: 710px; margin: 24px 0 0; color: rgba(255,255,255,.84); font-size: clamp(17px, 1.5vw, 20px); line-height: 1.75; }
.aescon-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.aescon-btn { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 26px; border: 1px solid transparent; border-radius: var(--aes-radius); font-weight: 700; text-decoration: none; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.aescon-btn:hover { transform: translateY(-2px); }
.aescon-btn-light { color: var(--aes-purple-dark); background: var(--aes-white); }
.aescon-btn-light:hover { color: var(--aes-white); background: var(--aes-cyan-dark); }
.aescon-btn-wire { color: var(--aes-white); border-color: rgba(255,255,255,.55); }
.aescon-btn-wire:hover { background: rgba(255,255,255,.12); border-color: var(--aes-white); }
.aescon-btn-primary { color: var(--aes-white); background: var(--aes-purple); border-color: var(--aes-purple); }
.aescon-btn-primary:hover { color: var(--aes-white); background: var(--aes-purple-dark); border-color: var(--aes-purple-dark); }
.aescon-hero-note { position: absolute; right: max(var(--aes-gutter), calc((100vw - var(--aes-max)) / 2)); bottom: 22px; color: rgba(255,255,255,.56); font-size: 11px; font-weight: 700; letter-spacing: .16em; }

.aescon-metrics { color: var(--aes-white); background: var(--aes-purple-dark); border-top: 4px solid var(--aes-lime); }
.aescon-metrics-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.aescon-metric { min-height: 150px; display: flex; flex-direction: column; justify-content: center; padding: 28px clamp(22px, 3vw, 46px); border-left: 1px solid rgba(255,255,255,.13); }
.aescon-metric:first-child { border-left: 0; }
.aescon-metric > span { color: rgba(255,255,255,.65); font-size: 14px; }
.aescon-metric strong { color: var(--aes-white); font-size: clamp(34px, 3.3vw, 48px); font-weight: 700; line-height: 1.25; }
.aescon-metric small { color: #79cfda; font-size: 16px; font-weight: 700; }

.aescon-intro { background: var(--aes-white); }
.aescon-intro-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(50px, 8vw, 120px); align-items: start; }
.aescon-section-heading { position: sticky; top: calc(var(--aes-header-height) + 30px); }
.aescon-intro-copy .aescon-lead { margin: 0 0 24px; color: var(--aes-ink); font-size: clamp(20px, 2vw, 26px); font-weight: 600; line-height: 1.55; }
.aescon-intro-copy > p:not(.aescon-lead) { margin: 0; font-size: 17px; }
.aescon-text-link { display: inline-flex; gap: 20px; margin-top: 28px; color: var(--aes-purple); font-weight: 750; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.aescon-text-link:hover { color: var(--aes-purple-dark); }

.aescon-solutions { background: var(--aes-surface); }
.aescon-solution-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.aescon-solution-card { min-width: 0; background: var(--aes-white); border: 1px solid var(--aes-line); border-top: 3px solid var(--aes-cyan); border-radius: var(--aes-radius); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.aescon-solution-card:hover { transform: translateY(-5px); box-shadow: var(--aes-shadow); }
.aescon-solution-card img { width: 100%; height: 260px; object-fit: cover; }
.aescon-solution-body { padding: 26px 28px 30px; }
.aescon-solution-body > span { color: var(--aes-cyan-dark); font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.aescon-solution-body h3 { margin: 5px 0 10px; color: var(--aes-ink); font-size: 23px; line-height: 1.4; }
.aescon-solution-body p { min-height: 84px; margin: 0 0 18px; }
.aescon-solution-body a { color: var(--aes-purple); font-weight: 700; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }

.aescon-engineering { color: rgba(255,255,255,.77); background: var(--aes-purple-dark); }
.aescon-engineering-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); gap: clamp(48px, 7vw, 96px); align-items: center; }
.aescon-engineering-media { position: relative; }
.aescon-engineering-media::before { content: ""; position: absolute; top: -16px; right: 16px; bottom: 16px; left: -16px; border: 1px solid rgba(124,213,224,.34); }
.aescon-engineering-media img { position: relative; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.aescon-engineering-media > div { position: absolute; right: -20px; bottom: -24px; padding: 18px 24px; background: var(--aes-cyan); color: var(--aes-white); }
.aescon-engineering-media strong, .aescon-engineering-media span { display: block; }
.aescon-engineering-media strong { font-size: 20px; }
.aescon-engineering-media span { font-size: 10px; letter-spacing: .1em; }
.aescon-engineering-copy .aescon-kicker { color: #7cd5e0; }
.aescon-engineering-copy h2 { color: var(--aes-white); }
.aescon-engineering-copy h2 span { color: var(--aes-lime); }
.aescon-benefit-list { margin-top: 36px; }
.aescon-benefit-list article { display: grid; grid-template-columns: 38px 1fr; gap: 15px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.14); }
.aescon-benefit-list svg { width: 28px; height: 28px; padding: 6px; color: var(--aes-lime); border: 1px solid rgba(183,213,42,.55); fill: none; stroke: currentColor; stroke-width: 2; }
.aescon-benefit-list h3 { margin: 0 0 3px; color: var(--aes-white); font-size: 19px; }
.aescon-benefit-list p { margin: 0; }

.aescon-projects { background: var(--aes-white); }
.aescon-projects-head { display: grid; grid-template-columns: 1fr minmax(300px, 430px); gap: 50px; align-items: end; margin-bottom: 44px; }
.aescon-projects-head > p { margin: 0 0 4px; }
.aescon-project-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 290px; gap: 16px; }
.aescon-project-grid figure { position: relative; margin: 0; overflow: hidden; background: var(--aes-ink); }
.aescon-project-grid .is-wide { grid-row: span 2; }
.aescon-project-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.aescon-project-grid figure:hover img { transform: scale(1.025); }
.aescon-project-grid figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 50px 24px 22px; color: var(--aes-white); background: rgba(25, 18, 54, .76); }
.aescon-project-grid figcaption span, .aescon-project-grid figcaption strong { display: block; }
.aescon-project-grid figcaption span { color: var(--aes-lime); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.aescon-project-grid figcaption strong { margin-top: 4px; font-size: 19px; }

.aescon-process { background: var(--aes-surface-cyan); }
.aescon-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); counter-reset: aescon-process; list-style: none; margin: 0; padding: 0; border-top: 1px solid #c7e5e9; }
.aescon-process-grid li { position: relative; min-height: 220px; padding: 62px 24px 28px; border-left: 1px solid #c7e5e9; counter-increment: aescon-process; }
.aescon-process-grid li:last-child { border-right: 1px solid #c7e5e9; }
.aescon-process-grid li::before { content: counter(aescon-process); position: absolute; top: -20px; left: 24px; width: 40px; height: 40px; display: grid; place-items: center; color: var(--aes-white); background: var(--aes-purple); border-radius: 50%; font-size: 14px; font-weight: 800; }
.aescon-process-grid span { color: var(--aes-ink); font-size: 19px; font-weight: 750; }
.aescon-process-grid p { margin: 10px 0 0; }

.aescon-consult { color: rgba(255,255,255,.78); background: var(--aes-purple-dark); }
.aescon-consult-grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(600px, 1.22fr); gap: clamp(44px, 7vw, 90px); align-items: start; }
.aescon-consult-copy { position: sticky; top: calc(var(--aes-header-height) + 30px); padding-top: 14px; }
.aescon-consult-copy .aescon-kicker { color: #7cd5e0; }
.aescon-consult-copy h2 { color: var(--aes-white); }
.aescon-consult-copy h2 span { color: var(--aes-lime); }
.aescon-consult-copy > p:not(.aescon-kicker) { margin: 24px 0; }
.aescon-direct-contact { display: grid; gap: 8px; margin-top: 30px; }
.aescon-direct-contact a { width: fit-content; color: var(--aes-white); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

.aescon-form-card { padding: clamp(24px, 3vw, 38px); color: var(--aes-body); background: var(--aes-white); border-top: 4px solid var(--aes-lime); border-radius: var(--aes-radius); box-shadow: var(--aes-shadow); }
.aescon-form-card-head { margin-bottom: 26px; }
.aescon-form-card-head span { color: var(--aes-cyan-dark); font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.aescon-form-card-head h3 { margin: 3px 0 0; color: var(--aes-ink); font-size: clamp(24px, 2.5vw, 32px); line-height: 1.35; }
.aescon-form { position: relative; }
.aescon-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 19px 18px; }
.aescon-field { display: grid; gap: 7px; }
.aescon-field-full { grid-column: 1 / -1; }
.aescon-field label { color: var(--aes-ink); font-size: 14px; font-weight: 700; }
.aescon-field label span { color: #b42318; }
.aescon-field input, .aescon-field textarea { width: 100%; min-height: 51px; padding: 11px 13px; color: var(--aes-ink); background: var(--aes-white); border: 1px solid #cfcbd8; border-radius: 3px; outline: 0; transition: border-color .18s ease, box-shadow .18s ease; }
.aescon-field textarea { min-height: 126px; resize: vertical; }
.aescon-field input:focus, .aescon-field textarea:focus { border-color: var(--aes-cyan-dark); box-shadow: 0 0 0 3px rgba(24,170,196,.14); }
.aescon-field input::placeholder, .aescon-field textarea::placeholder { color: #9995a5; }
.aescon-submit { width: 100%; min-height: 53px; display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 22px; padding: 12px 24px; color: var(--aes-white); background: var(--aes-purple); border: 1px solid var(--aes-purple); border-radius: 3px; font-weight: 750; cursor: pointer; transition: background-color .18s ease, transform .18s ease; }
.aescon-submit:hover { background: var(--aes-purple-dark); transform: translateY(-1px); }
.aescon-submit:disabled { opacity: .65; cursor: wait; }
.aescon-submit svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; }
.aescon-form-note { margin: 10px 0 0; color: var(--aes-muted); font-size: 12px; text-align: center; }
.aescon-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.aescon-form-status { margin: 0 0 20px; padding: 12px 14px; border: 1px solid var(--aes-line); font-size: 14px; }
.aescon-form-status.is-success { color: #245b1d; background: #eff8ec; border-color: #b9d8b2; }
.aescon-form-status.is-error { color: #8b1e18; background: #fff1f0; border-color: #e8b5b2; }

.aescon-page-hero { position: relative; min-height: 430px; display: flex; align-items: center; isolation: isolate; color: var(--aes-white); background: var(--aes-ink); }
.aescon-page-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.aescon-page-hero-overlay { position: absolute; inset: 0; z-index: -1; background: rgba(25, 19, 52, .76); }
.aescon-page-hero .aescon-eyebrow { color: var(--aes-lime); }
.aescon-page-hero h1 { max-width: 800px; margin: 0; color: var(--aes-white); font-size: clamp(44px, 5.3vw, 68px); line-height: 1.15; letter-spacing: -.035em; }
.aescon-page-hero h1 span { color: #7cd5e0; }
.aescon-page-hero .aescon-container > p:last-child { max-width: 700px; margin: 18px 0 0; color: rgba(255,255,255,.8); font-size: 18px; }

.aescon-contact-main { background: var(--aes-white); }
.aescon-contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(50px, 8vw, 110px); align-items: stretch; }
.aescon-contact-details h2 { font-size: clamp(34px, 3.5vw, 46px); }
.aescon-contact-lead { max-width: 520px; margin: 18px 0 34px; }
.aescon-contact-list { margin-bottom: 34px; }
.aescon-contact-list > div { display: grid; grid-template-columns: 42px 1fr; gap: 17px; padding: 20px 0; border-top: 1px solid var(--aes-line); }
.aescon-contact-list svg { width: 34px; height: 34px; padding: 6px; color: var(--aes-cyan-dark); border: 1px solid #addce3; fill: none; stroke: currentColor; stroke-width: 1.7; }
.aescon-contact-list > div > img { width: 34px; height: 34px; object-fit: contain; }
.aescon-contact-list span { display: block; color: var(--aes-muted); font-size: 12px; font-weight: 700; letter-spacing: .05em; }
.aescon-contact-list address { color: var(--aes-ink); font-style: normal; }
.aescon-contact-list a { color: var(--aes-purple); font-size: 17px; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.aescon-contact-visual { position: relative; min-height: 560px; overflow: hidden; background: var(--aes-surface-cyan); border: 1px solid #cae6ea; }
.aescon-contact-visual::before, .aescon-contact-visual::after { content: ""; position: absolute; border: 1px solid #b7dfe5; border-radius: 50%; }
.aescon-contact-visual::before { width: 500px; height: 500px; top: -160px; right: -150px; }
.aescon-contact-visual::after { width: 340px; height: 340px; bottom: -110px; left: -110px; }
.aescon-map-grid { position: absolute; inset: 48px; border: 1px solid #c4e4e8; }
.aescon-map-grid::before, .aescon-map-grid::after { content: ""; position: absolute; background: #c4e4e8; }
.aescon-map-grid::before { top: 0; bottom: 0; left: 42%; width: 1px; }
.aescon-map-grid::after { top: 44%; right: 0; left: 0; height: 1px; }
.aescon-map-pin { position: absolute; top: 38%; left: 55%; width: 56px; height: 56px; display: grid; place-items: center; background: var(--aes-purple); border: 7px solid var(--aes-white); border-radius: 50% 50% 50% 0; box-shadow: 0 12px 24px rgba(43,32,91,.22); transform: rotate(-45deg); }
.aescon-map-pin span { width: 10px; height: 10px; background: var(--aes-lime); border-radius: 50%; }
.aescon-map-label { position: absolute; right: 28px; bottom: 28px; left: 28px; padding: 22px 24px; background: var(--aes-purple-dark); color: var(--aes-white); }
.aescon-map-label small, .aescon-map-label strong, .aescon-map-label span { display: block; }
.aescon-map-label small { color: var(--aes-lime); font-weight: 800; letter-spacing: .12em; }
.aescon-map-label strong { margin-top: 3px; font-size: 23px; }
.aescon-map-label span { color: rgba(255,255,255,.6); font-size: 12px; }

.aescon-contact-form-section { background: var(--aes-surface); }
.aescon-contact-form-grid { display: grid; grid-template-columns: minmax(0, .72fr) minmax(600px, 1.28fr); gap: clamp(50px, 8vw, 100px); align-items: start; }
.aescon-contact-form-intro { position: sticky; top: calc(var(--aes-header-height) + 30px); }
.aescon-contact-form-intro > p:not(.aescon-kicker) { margin: 22px 0; }
.aescon-contact-form-intro ul { margin: 24px 0 0; padding: 0; list-style: none; }
.aescon-contact-form-intro li { padding: 12px 0; color: var(--aes-ink); border-top: 1px solid var(--aes-line); font-weight: 650; }

.aescon-prose { width: min(calc(100% - (var(--aes-gutter) * 2)), 800px); margin: 0 auto; padding-block: 70px; }
.aescon-prose h1, .aescon-prose h2, .aescon-prose h3 { color: var(--aes-ink); line-height: 1.3; }
.aescon-prose h1 { font-size: clamp(34px, 5vw, 54px); }
.aescon-prose h2 { margin-top: 1.8em; font-size: clamp(27px, 4vw, 38px); }
.aescon-prose a:not(.wp-element-button) { color: var(--aes-purple); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; text-decoration-skip-ink: auto; transition: color .18s ease; }
.aescon-prose a:not(.wp-element-button):hover { color: var(--aes-purple-dark); }
.aescon-empty-state { padding-block: 90px; text-align: center; }

.aescon-site-footer { padding: 64px 0 24px; color: rgba(255,255,255,.68); background: #201947; border-top: 4px solid var(--aes-lime); }
.aescon-footer-grid { display: grid; grid-template-columns: 1.3fr .7fr 1fr; gap: clamp(36px, 6vw, 80px); align-items: start; }
.aescon-footer-brand img { width: 190px; padding: 7px 10px; background: var(--aes-white); }
.aescon-footer-brand p { max-width: 390px; margin: 20px 0 0; }
.aescon-site-footer h2 { margin: 0 0 15px; color: var(--aes-white); font-size: 18px; }
.aescon-site-footer a { color: var(--aes-white); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.aescon-footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.aescon-footer-contact { display: grid; gap: 8px; }
.aescon-footer-contact h2 { margin-bottom: 7px; }
.aescon-footer-contact address { margin-bottom: 5px; font-style: normal; }
.aescon-footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 50px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); font-size: 13px; }

@media (max-width: 1120px) {
  .aescon-primary-nav, .aescon-header-inner > .aescon-header-cta { display: none; }
  .aescon-menu-toggle { display: inline-flex; }
  .aescon-consult-grid, .aescon-contact-form-grid { grid-template-columns: minmax(0, .8fr) minmax(520px, 1.2fr); }
}

@media (max-width: 900px) {
  .aescon-intro-grid, .aescon-engineering-grid, .aescon-contact-grid, .aescon-consult-grid, .aescon-contact-form-grid { grid-template-columns: 1fr; }
  .aescon-section-heading, .aescon-consult-copy, .aescon-contact-form-intro { position: static; }
  .aescon-solution-grid { grid-template-columns: repeat(2, 1fr); }
  .aescon-solution-card:last-child { grid-column: 1 / -1; width: calc(50% - 10px); justify-self: center; }
  .aescon-projects-head { grid-template-columns: 1fr; gap: 20px; }
  .aescon-process-grid { grid-template-columns: repeat(2, 1fr); row-gap: 54px; }
  .aescon-contact-visual { min-height: 480px; }
  .aescon-footer-grid { grid-template-columns: 1.2fr .8fr; }
  .aescon-footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  :root { --aes-gutter: 15px; --aes-header-height: 73px; }
  .aescon-container { width: auto; margin-inline: max(15px, env(safe-area-inset-left)) max(15px, env(safe-area-inset-right)); }
  .aescon-section { padding-block: 62px; }
  .aescon-brand .custom-logo { width: 160px; max-height: 50px; }
  .aescon-hero { min-height: 610px; align-items: flex-end; }
  .aescon-hero-media { object-position: 56% center; }
  .aescon-hero::after { width: 100%; background: rgba(39,25,87,.34); border: 0; }
  .aescon-hero-content { padding-block: 70px 58px; }
  .aescon-hero h1 { font-size: clamp(37px, 11.2vw, 48px); line-height: 1.16; }
  .aescon-hero-lead { margin-top: 18px; font-size: 16px; line-height: 1.7; }
  .aescon-actions { display: grid; margin-top: 26px; }
  .aescon-btn { width: 100%; }
  .aescon-hero-note { display: none; }
  .aescon-metrics-grid { grid-template-columns: 1fr; }
  .aescon-metric { min-height: 124px; padding-inline: 4px; border-left: 0; border-top: 1px solid rgba(255,255,255,.13); }
  .aescon-metric:first-child { border-top: 0; }
  .aescon-metric strong { font-size: 38px; }
  .aescon-section-heading h2, .aescon-section-head-center h2, .aescon-engineering-copy h2, .aescon-projects-head h2, .aescon-consult-copy h2, .aescon-contact-details h2, .aescon-contact-form-intro h2 { font-size: 31px; line-height: 1.34; }
  .aescon-section-head-center { margin-bottom: 34px; text-align: left; }
  .aescon-intro-grid, .aescon-engineering-grid, .aescon-contact-grid, .aescon-consult-grid, .aescon-contact-form-grid { gap: 36px; }
  .aescon-intro-copy .aescon-lead { font-size: 20px; }
  .aescon-intro-copy > p:not(.aescon-lead) { font-size: 16px; }
  .aescon-solution-grid { grid-template-columns: 1fr; gap: 15px; }
  .aescon-solution-card:last-child { grid-column: auto; width: auto; }
  .aescon-solution-card img { height: 230px; }
  .aescon-solution-body { padding: 22px 22px 26px; }
  .aescon-solution-body p { min-height: 0; }
  .aescon-engineering { padding-top: 75px; }
  .aescon-engineering-media::before { top: -10px; right: 10px; bottom: 10px; left: -10px; }
  .aescon-engineering-media > div { right: 0; bottom: -18px; }
  .aescon-benefit-list { margin-top: 28px; }
  .aescon-project-grid { grid-template-columns: 1fr; grid-auto-rows: 290px; }
  .aescon-project-grid .is-wide { grid-row: auto; }
  .aescon-process-grid { grid-template-columns: 1fr; row-gap: 44px; border-top: 0; }
  .aescon-process-grid li { min-height: auto; padding: 42px 20px 24px; border-top: 1px solid #c7e5e9; border-right: 1px solid #c7e5e9; }
  .aescon-process-grid li::before { top: -20px; left: 20px; }
  .aescon-form-card { padding: 22px 20px 24px; }
  .aescon-form-grid { grid-template-columns: 1fr; gap: 17px; }
  .aescon-field-full { grid-column: auto; }
  .aescon-page-hero { min-height: 430px; }
  .aescon-page-hero h1 { font-size: 39px; }
  .aescon-page-hero .aescon-container > p:last-child { font-size: 16px; }
  .aescon-contact-visual { min-height: 410px; }
  .aescon-map-grid { inset: 28px; }
  .aescon-map-label { right: 15px; bottom: 15px; left: 15px; padding: 18px; }
  .aescon-footer-grid { grid-template-columns: 1fr; gap: 34px; }
  .aescon-footer-contact { grid-column: auto; }
  .aescon-footer-bottom { flex-direction: column; gap: 4px; margin-top: 38px; }
  .aescon-prose { width: auto; margin-inline: max(15px, env(safe-area-inset-left)) max(15px, env(safe-area-inset-right)); padding-block: 48px; }
}

/* Source-faithful archetypes for the migrated Wix pages. */
.aes-source-project,
.aes-source-article-page,
.aes-source-service,
.aes-source-listing { color: #171717; background: #fff; }

/* Project case studies */
.aes-source-project { height: 1478.6px; padding: 73px 15px 0; overflow: hidden; }
.aes-source-project-inner {
  width: min(944px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 476px 387px;
  grid-template-rows: 492px auto;
  column-gap: 81px;
  align-items: start;
}
.aes-source-project-copy { padding-top: 8px; }
.aes-source-project-label { width: 177px; height: 76px; margin: 0 0 8px; color: #111; font-size: 20px; line-height: 38px; }
.aes-source-project h1 { width: 493px; margin: 0 0 10px; color: #10a8c4; font-size: 48px; font-weight: 700; line-height: 87.6px; }
.aes-source-project-facts { display: grid; gap: 23px; }
.aes-source-project-facts > div { display: flex; align-items: center; gap: 16px; color: #161616; font-size: 17px; }
.aes-source-project-facts img { width: 31px; height: 31px; object-fit: contain; }
.aes-source-project-main-image { grid-column: 2; grid-row: 1; margin: 0; overflow: hidden; border-radius: 26px; }
.aes-source-project-main-image img { width: 387px; height: 492px; object-fit: cover; }
.aes-source-project-summary { grid-column: 1; grid-row: 2; width: 476px; padding-top: 22px; }
.aes-source-project-metrics { height: 43.6px; display: flex; align-items: baseline; gap: 57px; margin-bottom: 28px; }
.aes-source-project-metrics > div { display: flex; align-items: baseline; gap: 9px; }
.aes-source-project-metrics span { color: #171717; font-size: 18px; line-height: 33.6px; }
.aes-source-project-metrics strong { color: #49328f; font-size: 18px; font-weight: 400; line-height: 33.6px; }
.aes-source-project-metrics > div:nth-child(2) strong { font-size: 24px; line-height: 43.6px; }
.aes-source-project-summary > p { height: 232px; margin: 0; overflow: hidden; color: #37353b; font-size: 16px; line-height: 29px; }
.aes-source-project-gallery { width: calc(100vw - 15px); max-width: none; margin: 124.6px 0 0 calc((944px - (100vw - 15px)) / 2); display: flex; gap: 29px; overflow: hidden; }
.aes-source-project-gallery figure,
.aes-source-project-gallery figure:first-child { flex: 0 0 823px; margin: 0; overflow: hidden; }
.aes-source-project-gallery img { width: 823px; height: 463px; object-fit: cover; }

/* Editorial posts */
.aes-source-article-page { height: var(--aes-article-height, auto); padding: 24px 15px 74px; overflow: hidden; background-color: #19a9bd; background-image: var(--aes-article-background); background-position: center top; background-size: 100% 100%; background-attachment: scroll; }
.aes-source-article { width: min(940px, 100%); margin-inline: auto; padding: 75px 100px 64px; background: #fff; border: 0; }
.aes-source-article-header h1 { margin: 0 0 18px; color: #49328f; font-size: 28px; font-weight: 600; line-height: 35px; }
.aes-source-article-meta { display: none; }
.aes-source-article-updated { margin: 0 0 20px; color: #202024; font-size: 14px; line-height: 21px; }
.aes-source-article-body { color: #202024; font-size: 16px; line-height: 1.84; }
.aes-source-article-body p { margin: 0 0 22px; }
.aes-source-article-body > p:first-child { font-size: 18px; line-height: 27px; }
.aes-source-article-body h2 { margin: 43px 0 15px; color: #171717; font-size: 25px; line-height: 1.45; }
.aes-source-article-body h3 { margin: 34px 0 12px; color: #171717; font-size: 21px; line-height: 1.45; }
.aes-source-article-body blockquote { margin: 30px 0; padding: 18px 24px; border-left: 4px solid #16aac4; color: #49328f; background: #f5f5f7; }
.aes-source-article-image { margin: 27px 0 30px; }
.aes-source-article-image img { width: 100%; aspect-ratio: 1.5 / 1; object-fit: cover; }
.aes-source-article-related-image { width: min(740px, 100%); margin: 55px auto 0; }
.aes-source-article-related-image img { width: 100%; max-height: 360px; object-fit: cover; }
.aes-source-article-page > .aeslive-related { width: min(740px, calc(100% - 30px)); margin: 70px auto 0; }

/* Service detail pages */
.aes-source-service-intro { min-height: 398px; display: grid; place-items: center; padding: 52px 15px; color: #fff; background: #13aac3; text-align: center; }
.aes-source-service-intro > div { width: min(980px, 100%); }
.aes-source-service-kicker { margin: 0 0 5px !important; color: #111; font-size: 16px; }
.aes-source-service-intro h1 { margin: 0 0 20px; color: #49328f; font-size: clamp(40px, 4.2vw, 55px); font-weight: 700; line-height: 1.22; }
.aes-source-service-intro p { width: min(780px, 100%); margin: 0 auto; font-size: 16px; line-height: 1.62; }
.aes-source-service-split { min-height: 556px; display: grid; grid-template-columns: calc(50% - 2.5px) calc(50% + 2.5px); background: #11a9c2; }
.aes-source-service-split.is-reversed figure { order: 2; }
.aes-source-service-split figure { min-height: 556px; margin: 0; overflow: hidden; }
.aes-source-service-split figure img { width: 100%; height: 100%; min-height: 556px; object-fit: cover; }
.aes-source-service-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(55px, 7vw, 115px); color: #fff; }
.aes-source-service-copy h2 { margin: 0 0 22px; color: #49328f; font-size: clamp(31px, 3.1vw, 43px); line-height: 1.3; }
.aes-source-service-copy p { margin: 0 0 10px; font-size: 16px; line-height: 1.75; }
.aes-source-service-split.no-media { min-height: 0; display: block; }
.aes-source-service-split.no-media .aes-source-service-copy { width: min(980px, calc(100% - 30px)); min-height: 364px; margin-inline: auto; padding: 58px 0; text-align: center; }
.aes-source-service-benefits { padding: 0; background: #fff; }
.aes-source-service-wide { width: 100%; margin-inline: auto; }
.aes-source-service-benefits h2 { height: 108px; display: flex; align-items: center; margin: 0; padding: 0 54px; color: #49328f; font-size: clamp(31px, 3.2vw, 43px); line-height: 1.3; text-align: left; }
.aes-source-benefit-grid { min-height: 279px; display: grid; grid-template-columns: 451px 437.7px minmax(0, 1fr); gap: 32px; padding: 0 54px; }
.aes-source-benefit-grid article { min-height: 279px; padding: 50px 22px 20px; background: #fff; }
.aes-source-benefit-grid article > span { color: #11a9c2; font-size: 38px; font-weight: 750; line-height: 1.5; }
.aes-source-benefit-grid h3 { margin: 10px 0; color: #49328f; font-size: 21px; line-height: 1.4; }
.aes-source-benefit-grid p { margin: 0 0 5px; color: #3d3b42; font-size: 15px; line-height: 1.7; }
.aes-source-service-split.legacy-secondary-media,
.aes-source-service-split.legacy-secondary-media figure,
.aes-source-service-split.legacy-secondary-media figure img { min-height: 679px; }
.aes-source-service-showcase { padding: 75px 15px 90px; background: #fff; }
.aes-source-service-showcase > div { width: min(1080px, 100%); margin-inline: auto; }
.aes-source-service-showcase h2 { margin: 0 0 38px; color: #49328f; font-size: 36px; text-align: center; }
.aes-source-service-showcase > div > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.aes-source-service-showcase figure { margin: 0; overflow: hidden; }
.aes-source-service-showcase img { width: 100%; aspect-ratio: 1.38 / 1; object-fit: cover; }
.aes-source-related-wrap { width: min(1080px, calc(100% - 30px)); margin: 60px auto 0; }
.aes-source-service { position: relative; }
.aes-source-service-booking { position: absolute; right: calc((100% - 980px)/2); bottom: 55px; z-index: 2; min-width: 180px; padding: 10px 24px; border: 1px solid #49328f; border-radius: 999px; color: #49328f; text-align: center; text-decoration: none; }

/* Full-width source service pages. */
.aes-modern-service { position: relative; overflow: hidden; background: #fff; }
.aes-modern-hero { position: relative; min-height: 520px; color: #fff; }
.aes-modern-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.aes-modern-hero-shade { position: absolute; inset: 0; background: rgba(8, 17, 21, .56); }
.aes-modern-hero-copy { position: relative; z-index: 1; width: min(910px, calc(100% - 40px)); margin-inline: auto; padding-top: 74px; }
.aes-modern-hero-copy h1 { margin: 0 0 18px; color: #fff; font-size: 40px; line-height: 1.15; }
.aes-modern-hero-copy p { width: min(610px, 100%); margin: 0 0 12px; color: #fff; font-size: 16px; line-height: 1.55; }
.aes-modern-actions { display: flex; gap: 14px; margin-top: 34px; }
.aes-modern-actions a { min-width: 142px; padding: 7px 24px; border: 1px solid #fff; border-radius: 999px; color: #fff; text-align: center; }
.aes-modern-actions a:first-child { border-color: #0aacca; background: #0aacca; }
.aes-modern-feature { background: #fff; }
.aes-modern-feature h2 { color: #171717; }
.aes-modern-system-intro { display: grid; grid-template-columns: 50% 50%; min-height: 420px; background: #13afc6; }
.aes-modern-system-intro > img { width: 100%; height: 100%; max-height: 557px; object-fit: cover; }
.aes-modern-system-intro > div { position: relative; padding: 72px 80px; overflow: hidden; color: #fff; }
.aes-modern-system-copy-bg { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; opacity: .13; }
.aes-modern-system-intro p { margin: 0 0 14px; color: inherit; line-height: 1.55; }
.aes-modern-system-intro p { position: relative; z-index: 1; }
.aes-modern-system-grid { display: grid; grid-template-columns: repeat(3, 274px); grid-template-rows: repeat(2, 235px); justify-content: center; gap: 63px 96px; padding: 255px 0 78px; background: linear-gradient(rgba(3,34,49,.52),rgba(3,34,49,.52)),var(--aes-system-bg) center/cover no-repeat; }
.aes-modern-system-grid article { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; min-height: 180px; border-bottom: 1px solid rgba(255,255,255,.55); }
.aes-modern-system-grid h2 { margin: 0 0 18px; color: #fff; font-size: 20px; line-height: 1.35; }
.aes-modern-system-grid article > img { width: 58px; height: 58px; margin: 0 0 12px; object-fit: contain; }
.aes-modern-system-grid p { margin: -12px 0 14px; color: #fff; font-size: 12px; line-height: 1.45; }
.aes-modern-maintenance-grid { display: grid; grid-template-columns: repeat(2, 629px); width: 1258px; margin: 5px auto 0; }
.aes-modern-maintenance-grid article { position: relative; height: 467px; overflow: hidden; }
.aes-modern-maintenance-grid img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.62); }
.aes-modern-maintenance-grid h2 { position: absolute; left: 104px; right: 104px; bottom: 80px; margin: 0; color: #fff; font-size: 24px; line-height: 1.25; text-align: center; }
.aes-modern-maintenance-split { display: grid; grid-template-columns: 33.333% 66.667%; height: 854px; margin-top: 138px; background: #fff; }
.aes-modern-maintenance-split img { width: 100%; height: 100%; object-fit: cover; }
.aes-modern-maintenance-split > div { padding: 82px 11%; }
.aes-modern-maintenance-split h2 { margin: 0 0 8px; color: #49328f; font-size: 32px; }
.aes-modern-maintenance-split p { max-width: 560px; line-height: 1.6; }
.aes-modern-maintenance-split > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 8px 22px; overflow: hidden; }
.aes-modern-maintenance-split > div h2 { grid-column: 1 / -1; }
.aes-modern-maintenance-split > div p { margin: 0; font-size: 12px; line-height: 1.45; }
.aes-modern-equipment-row { display: grid; grid-template-columns: repeat(5, 222px); justify-content: center; padding-top: 13px; }
.aes-modern-equipment-row figure { margin: 0 -3px 0 0; }
.aes-modern-equipment-row img { width: 222px; height: 249px; object-fit: contain; }
.aes-modern-equipment-row figcaption { margin-top: 8px; color: #242229; font-size: 15px; text-align: center; }
.aes-modern-install-intro { display: grid; grid-template-columns: 50% 50%; height: 397px; }
.aes-modern-install-intro img { width: 100%; height: 397px; object-fit: cover; }
.aes-modern-install-intro > div { width: 486px; padding: 22px 0; transform: translateX(-89px); }
.aes-modern-install-intro h2 { margin: 0 0 12px; color: #49328f; font-size: 30px; font-weight: 400; line-height: normal; }
.aes-modern-install-intro p { line-height: 1.55; }
.aes-modern-install-projects { padding-top: 20px; }
.aes-modern-install-projects h2 { width: 980px; margin: 0 auto -7px; color: #49328f; font-size: 36px; }
.aes-modern-install-projects > div { display: grid; grid-template-columns: repeat(3, 403px); justify-content: center; }
.aes-modern-install-projects figure { position: relative; margin: 0; overflow: hidden; }
.aes-modern-install-projects img { width: 403px; height: 334px; object-fit: cover; }
.aes-modern-install-projects figcaption { position: relative; margin: 6px 18px 0; font-size: 12px; line-height: 1.35; }
.aes-modern-install-copy section { position: relative; min-height: 252px; padding: 92px calc((100% - 980px)/2) 30px; overflow: hidden; }
.aes-modern-install-copy section:nth-child(even) { min-height: 548px; padding-left: calc(50% + 88px); }
.aes-modern-install-copy section img { position: absolute; inset: 0 50% 0 0; width: 50%; height: 100%; object-fit: cover; }
.aes-modern-install-copy h2 { position: relative; margin: 0; color: #49328f; font-size: 36px; line-height: 1.3; }
.aes-modern-install-copy section > div { position: relative; }
.aes-modern-install-copy section p { margin: 6px 0; font-size: 12px; line-height: 1.45; }
.aes-modern-private-benefits { display: grid; grid-template-columns: 50% 50%; height: 557px; background: #12abc3; }
.aes-modern-private-benefits > div { position: relative; overflow: hidden; }
.aes-modern-private-benefits > div > img:first-child { width: 100%; height: 100%; object-fit: cover; }
.aes-modern-private-benefits .aes-modern-private-photo { position: absolute; top: 73px; left: 10%; width: 78%; height: 366px; object-fit: cover; }
.aes-modern-private-benefits > div:last-child { padding: 57px 17%; color: #fff; }
.aes-modern-private-right-bg { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; opacity: .12; }
.aes-modern-private-benefits h2 { margin: 0 0 20px; color: #111; font-size: 34px; }
.aes-modern-private-benefits h2,
.aes-modern-private-benefits p { position: relative; z-index: 1; }
.aes-modern-private-benefits p { margin: 0 0 12px; color: inherit; line-height: 1.45; }
.aes-modern-private-copy { display: grid; grid-template-columns: 55% 45%; height: 753px; padding-top: 233px; }
.aes-modern-private-copy > div { padding: 0 14% 0 25%; }
.aes-modern-private-copy p { line-height: 1.55; }
.aes-modern-private-metrics { display: flex; gap: 42px; margin-top: 28px; }
.aes-modern-private-metrics img { width: 76px; height: 76px; object-fit: contain; }
.aes-modern-private-copy img { width: 364px; height: 500px; object-fit: cover; }
.aes-modern-projects { position: absolute; top: var(--aes-modern-projects); left: 0; width: 100%; }
.aes-modern-projects > h2 { width: 980px; margin: 0 auto 95px; color: #49328f; font-size: 38px; line-height: 1; }
.aes-modern-projects > p { position: absolute; top: 53px; left: 50%; width: 980px; margin: 0; color: #171717; font-size: 14px; line-height: 1.5; transform: translateX(-50%); }
.aes-modern-projects > div { display: grid; grid-template-columns: repeat(3, 435px); gap: 10px; justify-content: center; }
.aes-modern-projects figure { margin: 0; }
.aes-modern-projects img { width: 435px; height: 435px; object-fit: cover; }
.aes-modern-solarforhousehold .aes-modern-projects > div { grid-template-columns: 320px; justify-content: start; width: 980px; margin-inline: auto; gap: 10px; }
.aes-modern-solarforhousehold .aes-modern-projects img { width: 320px; height: 320px; }
.aes-modern-news { position: absolute; top: var(--aes-modern-news); left: 0; width: 100%; }
.aes-modern-news > h2 { width: 339px; margin: 0 auto 23px; color: #49328f; font-size: 38px; line-height: 1; text-align: left; }
.aes-modern-news > div { display: grid; grid-template-columns: repeat(3, 292px); gap: 32px; width: 940px; margin-inline: auto; }
.aes-modern-news article { min-width: 0; }
.aes-modern-news img { width: 292px; height: 164px; object-fit: cover; }
.aes-modern-private-ppa-structure .aes-modern-news img { height: 195px; }
.aes-modern-news h3 { margin: 19px 25px 0; font-size: 18px; line-height: 1.4; }
.aes-modern-news h3 a { color: #111; }

/* Listing pages */
.aes-source-listing-hero { position: relative; min-height: 483px; display: flex; align-items: center; isolation: isolate; overflow: hidden; color: #fff; }
.aes-source-listing-service .aes-source-listing-hero { min-height: 439.65625px; }
.aes-source-listing-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.aes-source-listing-shade { position: absolute; inset: 0; z-index: -1; background: rgba(6, 11, 22, .48); }
.aes-source-listing-copy { width: min(940px, calc(100% - 30px)); margin-inline: auto; }
.aes-source-listing-copy h1 { width: 440px; max-width: 100%; margin: 0 0 26px; color: #fff; font-size: 36px; font-weight: 700; line-height: 1.35; }
.aes-source-listing-copy p { width: 450px; max-width: 100%; margin: 0; font-size: 16px; line-height: 1.52; }
.aes-source-listing-copy .aes-source-listing-news { margin-top: -15px; font-size: 38px; }
.aes-source-listing-body { width: min(1000px, calc(100% - 30px)); margin-inline: auto; padding: 42px 0 90px; background-image: var(--aes-listing-background); background-repeat: no-repeat; background-position: right top; background-size: 430px auto; }
.aes-source-listing-service .aes-source-listing-copy { width: min(876px, calc(100% - 30px)); transform: translateY(6px); }
.aes-source-listing-service .aes-source-listing-copy h1 { width: 413px; margin-bottom: 32px; line-height: normal; }
.aes-source-listing-service .aes-source-listing-copy p { width: 489px; line-height: 1.4; }
.aes-source-listing-service .aes-source-listing-copy .aes-source-listing-spacer { height: 22.4px; }
.aes-source-listing-service .aes-source-listing-body { width: 100%; min-height: 518px; padding: 48.25px 0 68.75px; background-position: center top; background-size: cover; }
.aes-source-listing-project .aes-source-listing-copy { width: min(878px, calc(100% - 30px)); transform: translateY(-33.7px); }
.aes-source-listing-project .aes-source-listing-copy h1 { width: 413px; line-height: normal; }
.aes-source-listing-project .aes-source-listing-body { width: 100%; padding: 0 0 51px; background-position: center top; background-size: 100% 320px; }
.aes-source-listing-post .aes-source-listing-hero { align-items: flex-start; }
.aes-source-listing-post .aes-source-listing-copy { width: min(878px, calc(100% - 30px)); padding-top: 107px; }
.aes-source-listing-post .aes-source-listing-copy h1,
.aes-source-listing-post .aes-source-listing-copy .aes-source-listing-news { width: 413px; height: 54px; margin: 0; font-size: 36px; font-weight: 700; line-height: normal; }
.aes-source-listing-post .aes-source-listing-body { width: 100%; min-height: 1396px; padding: 20px 0 90px; background-position: center top; background-size: 100% 1396px; }
.aes-source-listing-category .aes-source-listing-hero { height: 337px; min-height: 337px; }
.aes-source-listing-category .aes-source-listing-body { width: 100%; min-height: 814px; padding: 0; background: #fff; }
.aes-source-listing-post .aes-source-listing-grid { width: 940px; max-width: calc(100% - 30px); margin-inline: auto; grid-template-columns: repeat(2, 454px); gap: 32px; }
.aes-source-listing-post .aes-source-listing-card img { width: 454px; height: 303px; aspect-ratio: auto; }
.aes-source-listing-post .aes-source-listing-heading { display: none; }
.aes-source-listing-post .aes-source-listing-card > div { padding: 74px 23px 0; }
.aes-source-listing-post .aes-source-listing-card h2 { margin: 0; font-size: 22px; font-weight: 400; line-height: 30.8px; }
.aes-source-listing-post .aes-source-listing-card p { height: 128px; margin: 18px 0 12px; overflow: hidden; color: #171717; font-size: 14px; line-height: 22px; }
.aes-source-listing-post .aes-source-card-link { width: 158px; height: 41px; display: grid; place-items: center; color: #fff; background: #05aace; border-radius: 5px; font-size: 0; text-decoration: none; }
.aes-source-listing-post .aes-source-card-link::after { content: "รายละเอียดเพิ่มเติม"; font-size: 14px; }
.aes-source-listing-job .aes-source-listing-hero { height: 346px; min-height: 346px; }
.aes-source-listing-job .aes-source-listing-copy { display: none; }
.aes-source-listing-job .aes-source-listing-body { width: 100%; min-height: 1472.6px; padding: 49px 0 90px; background: #fff; }
.aes-source-listing-job .aes-source-listing-heading { width: 780px; max-width: calc(100% - 30px); margin: 0 auto 28.6px; text-align: left; }
.aes-source-listing-job .aes-source-listing-heading h1 { margin: 0 0 180px; color: #171717; font-size: 60px; font-weight: 700; line-height: 80.4px; }
.aes-source-listing-job .aes-source-listing-heading p { width: 919px; margin: 0 0 0 -63.5px; font-size: 14px; line-height: 19.6px; }
.aes-source-listing-job .aes-source-listing-grid { width: 919px; max-width: calc(100% - 30px); margin-inline: auto; grid-template-columns: 1fr; gap: 27.6px; }
.aes-source-listing-job .aes-source-listing-card { height: 143px; padding: 0; border: 1px solid #ddd; }
.aes-source-listing-job .aes-source-listing-card > div { position: relative; height: 100%; padding: 34.8px 39px; }
.aes-source-listing-job .aes-source-listing-card h2 { width: 561px; max-width: calc(100% - 170px); margin: 0; color: #171717; font-size: 30px; font-weight: 400; line-height: 42px; }
.aes-source-listing-job .aes-source-listing-card p { margin: 0; font-size: 16px; line-height: 26px; }
.aes-source-listing-job .aes-source-listing-card p:first-of-type { display: none; }
.aes-source-listing-job .aes-source-card-link { position: absolute; top: 55px; right: 29px; width: 115px; height: 42px; display: grid; place-items: center; color: #fff; background: #49328f; font-size: 0; text-decoration: none; }
.aes-source-listing-job .aes-source-card-link::after { content: "View Job"; font-size: 14px; }
.aes-source-listing-heading { margin-bottom: 44px; text-align: center; }
.aes-source-listing-heading h2 { margin: 0; color: #151515; font-size: 31px; line-height: 1.25; }
.aes-source-listing-heading strong { display: block; margin-top: 1px; color: #11a9c2; font-size: 38px; line-height: 1.2; }
.aes-source-listing-heading img { width: auto; max-width: min(390px, 85%); max-height: 58px; margin: 3px auto 0; object-fit: contain; }
.aes-source-listing-service .aes-source-listing-heading { margin-bottom: 51px; }
.aes-source-listing-service .aes-source-listing-heading img { width: 165px; height: 27px; max-width: 165px; max-height: 27px; }
.aes-source-listing-project .aes-source-listing-heading { height: 114px; margin: 0; padding-top: 31px; }
.aes-source-listing-project .aes-source-listing-heading h2 { font-size: 36px; line-height: 48px; }
.aes-source-listing-project .aes-source-listing-heading img { width: 437px; height: 28px; max-width: 437px; max-height: 28px; margin-top: 7px; }
.aes-source-service-label-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px 18px; margin: -18px auto 38px; color: #49328f; font-size: 13px; font-weight: 700; }
.aes-source-service-label-list span { padding-bottom: 3px; border-bottom: 2px solid #11a9c2; }
.aes-source-listing-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 45px; margin: 0 auto 70px; }
.aes-source-listing-metrics > div { display: grid; justify-items: center; text-align: center; }
.aes-source-listing-metrics img { width: 70px; height: 70px; margin-bottom: 8px; object-fit: contain; }
.aes-source-listing-metrics span { color: #171717; font-size: 16px; font-weight: 650; }
.aes-source-listing-metrics strong { color: #49328f; font-size: 34px; line-height: 1.25; }
.aes-source-listing-metrics small { color: #171717; font-size: 15px; }
.aes-source-listing-project .aes-source-listing-metrics { width: min(950px, calc(100% - 30px)); height: 206.40625px; grid-template-columns: 309px 295px 266px; gap: 40px; margin: 0 auto; padding-top: 53px; }
.aes-source-listing-project .aes-source-listing-metrics > div { display: grid; grid-template-columns: 76px 1fr; grid-template-rows: 30px 47px 27px; column-gap: 15px; justify-items: stretch; text-align: left; }
.aes-source-listing-project .aes-source-listing-metrics > div:nth-child(3) { column-gap: 18px; }
.aes-source-listing-project .aes-source-listing-metrics img { grid-row: 1 / 4; width: 76px; height: 76px; margin: 0; }
.aes-source-listing-project .aes-source-listing-metrics > div:nth-child(2) img { transform: translateY(5px); }
.aes-source-listing-project .aes-source-listing-metrics > div:nth-child(3) img { transform: translateY(2px); }
.aes-source-listing-project .aes-source-listing-metrics span { font-size: 20px; line-height: normal; }
.aes-source-listing-project .aes-source-listing-metrics strong { font-size: 38px; line-height: 47px; }
.aes-source-listing-project .aes-source-listing-metrics small { font-size: 18px; line-height: normal; text-align: center; }
.aes-source-project-all { width: 1014px; max-width: calc(100% - 30px); margin: 95px auto 43px; color: #171717; font-size: 16px; line-height: 24px; }
.aes-source-listing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 30px; }
.aes-source-listing-service .aes-source-listing-grid { width: min(1230px, calc(100% - 30px)); margin-inline: auto; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.aes-source-listing-project .aes-source-listing-grid { width: 988px; max-width: calc(100% - 30px); margin-inline: auto; grid-template-columns: repeat(3, 319px); gap: 40px 15px; }
.aes-source-listing-card { min-width: 0; background: #fff; }
.aes-source-listing-card > a { display: block; overflow: hidden; text-decoration: none; }
.aes-source-listing-card img { width: 100%; aspect-ratio: 1.38 / 1; object-fit: cover; transition: transform .35s ease; }
.aes-source-listing-card:hover img { transform: scale(1.025); }
.aes-source-listing-card > div { padding: 18px 3px 0; }
.aes-source-listing-card h2 { margin: 0 0 8px; font-size: 21px; line-height: 1.4; }
.aes-source-listing-card h2 a { color: #181818; text-decoration: none; }
.aes-source-listing-card p { margin: 0 0 13px; color: #45434a; font-size: 15px; line-height: 1.7; }
.aes-source-service-tile { background: #12a9c3; }
.aes-source-service-tile img { width: 100%; aspect-ratio: 230 / 192; }
.aes-source-service-tile > div { min-height: 82px; display: grid; place-items: center; padding: 10px 8px; text-align: center; }
.aes-source-service-tile h3 { margin: 0; font-size: 17px; font-weight: 650; line-height: 1.25; }
.aes-source-service-tile h3 a { color: #fff; text-decoration: none; }
.aes-source-listing-project .aes-source-listing-card img { height: 250px; aspect-ratio: 319 / 250; }
.aes-source-card-link { color: #49328f; font-weight: 700; text-decoration: underline; text-decoration-color: #11a9c2; text-underline-offset: 4px; }
.aes-source-listing-job .aes-source-listing-card > a { display: none; }
.aes-source-listing-job .aes-source-listing-card { padding: 0; border: 1px solid #ddd; }
.aes-source-listing-extra-media { margin-top: 35px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.aes-source-listing-extra-media img { width: 100%; aspect-ratio: 1.4 / 1; object-fit: cover; }

/* About page */
.aes-source-about { color: #242229; background: #fff; }
.aes-source-about-strip { display: block; width: 100%; height: 96px; object-fit: cover; }
.aes-source-about-hero { position: relative; height: 402px; overflow: hidden; }
.aes-source-about-hero-bg { width: 100%; height: 100%; object-fit: cover; filter: blur(5px); transform: scale(1.012); }
.aes-source-about-hero-logo { position: absolute; top: 45%; left: 67.23%; width: 457px; max-width: 40vw; transform: translate(-50%, -50%); }
.aes-source-about-intro { width: 1047px; max-width: calc(100% - 30px); min-height: 882.53125px; margin-left: max(15px, calc((100vw - 963px) / 2)); padding: 168px 0 88px; display: grid; grid-template-columns: 425px 622px; gap: 80px; align-items: start; }
.aes-source-about-copy h1 { margin: 0; color: #121212; font-size: 36px; font-weight: 400; line-height: 50.4px; }
.aes-source-about-copy > strong { display: block; margin-bottom: 24px; color: #19abc2; font-size: 49px; line-height: 1.15; }
.aes-source-about-wordmark { width: 389px; height: 47px; margin: 24px 0 39px; object-fit: contain; }
.aes-source-about-intro figure { margin: 56.40625px 0 0; }
.aes-source-about-intro figure img { width: 622px; height: 570px; object-fit: cover; }
.aes-source-about-content { background-image: var(--aes-about-background); background-position: center top; background-size: 100% 1141px; background-repeat: no-repeat; }
.aes-source-about-copy p { margin: 0; font-size: 16px; line-height: 22.4px; }
.aes-source-about-copy p:first-of-type { line-height: normal; }
.aes-source-about-copy p:nth-of-type(5) { margin-top: 12.8px; }
.aes-source-about-intro figure { margin: 56.40625px 0 0; padding: 0; border: 0; }
.aes-source-about-intro figure img { width: 622px; height: 570px; min-height: 0; object-fit: cover; }
.aes-source-about-content { height: 2885.375px; padding: 90px max(15px, calc((100% - 1040px) / 2)); overflow: hidden; background-color: #fff; background-image: var(--aes-about-background); background-position: center top; background-size: 100% 1141px; background-repeat: no-repeat; }
.aes-source-about-prose { font-size: 16px; line-height: 1.8; }
.aes-source-about-prose h2,
.aes-source-about-prose h3 { margin: 56px 0 16px; color: #49328f; font-size: 34px; }
.aes-source-about-prose p { margin: 0 0 16px; }
.aes-source-about-media { margin-top: 55px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.aes-source-about-media img { width: 100%; aspect-ratio: 1.25 / 1; object-fit: cover; }

/* Operating standards */
.aes-source-standards { color: #242229; background: #fff; }
.aes-source-standards-hero { position: relative; height: 491px; display: flex; align-items: center; isolation: isolate; overflow: hidden; color: #fff; }
.aes-source-standards-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.aes-source-standards-shade { position: absolute; inset: 0; z-index: -1; background: rgba(19, 42, 64, .48); }
.aes-source-standards-copy { width: min(940px, calc(100% - 30px)); margin-inline: auto; transform: translateY(-20.3px); }
.aes-source-standards-hero h1 { width: 510px; margin: 0 0 4px 450px; color: #fff; font-size: 36px; font-weight: 400; line-height: 50.4px; }
.aes-source-standards-hero p { width: 510px; margin: 0 0 0 450px; font-size: 16px; line-height: 24px; }
.aes-source-standards-inner { width: 920px; max-width: calc(100% - 30px); margin-inline: auto; }
.aes-source-standards-why { height: 942px; padding-top: 63px; background: #fff var(--aes-standards-background) center top / cover no-repeat; }
.aes-source-standards-kicker { width: 324px; height: 16px; object-fit: contain; }
.aes-source-standards-kicker.is-wide { width: 404px; height: 20px; }
.aes-source-standards-why h2,
.aes-source-standards-safety h2 { margin: 11px 0 30px; color: #49328f; font-size: 36px; font-weight: 400; line-height: 50.4px; }
.aes-source-standards-why-grid { display: grid; grid-template-columns: 468px 1fr; }
.aes-source-standards-why-grid article { min-width: 0; padding-left: 21px; }
.aes-source-standards-why-grid article:nth-child(3),
.aes-source-standards-why-grid article:nth-child(4) { margin-top: 55px; }
.aes-source-standards-why-grid article:nth-child(5),
.aes-source-standards-why-grid article:nth-child(6) { margin-top: 38px; }
.aes-source-standards-why-grid article img { width: auto; height: 80px; max-width: 100%; object-fit: contain; object-position: left center; }
.aes-source-standards-why-grid article:nth-child(4) img { height: 82px; }
.aes-source-standards-why-grid article p { width: 386px; max-width: 100%; margin: 15px 0 0; color: #171717; font-size: 16px; line-height: 24px; }
.aes-source-standards-safety { height: 874.8125px; padding-top: 55.40625px; background: #fff; }
.aes-source-standards-safety h2 { margin: 7px 0 49px 4px; }
.aes-source-standards-safety-grid { display: grid; grid-template-columns: 510px 363px; gap: 38px; }
.aes-source-safety-list { display: grid; gap: 10px; }
.aes-source-safety-list article { min-height: 77px; display: grid; grid-template-columns: 30px 1fr; gap: 10px; padding: 13px 20px; background: #f7f7f7; }
.aes-source-safety-list article > span { width: 24px; height: 24px; display: grid; place-items: center; margin-top: 2px; color: #fff; background: #bad51d; border-radius: 50%; font-weight: 800; }
.aes-source-safety-list h3 { margin: 0; color: #49328f; font-size: 18px; font-weight: 650; line-height: 27px; }
.aes-source-safety-list p { margin: 0; color: #171717; font-size: 16px; line-height: 24px; }
.aes-source-safety-image { width: 363px; height: 333px; object-fit: cover; }
.aes-source-standards-content { padding: 65px 15px 100px; }
.aes-source-standards-content article { width: min(940px, 100%); margin: 0 auto; padding: 45px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; border-bottom: 1px solid #e4e4e4; }
.aes-source-standards-content article:nth-child(even) figure { order: -1; }
.aes-source-standards-content h2 { margin: 0 0 18px; color: #49328f; font-size: 34px; line-height: 1.35; }
.aes-source-standards-content p { margin: 0 0 12px; font-size: 15px; line-height: 1.78; }
.aes-source-standards-content figure { margin: 0; }
.aes-source-standards-content img { width: 100%; aspect-ratio: 1.35 / 1; object-fit: cover; }
.aes-source-standards-gallery { width: min(1100px, 100%); margin: 75px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.aes-source-standards-gallery img { width: 100%; aspect-ratio: 1.3 / 1; object-fit: cover; }



/* Partner, privacy and careers */
.aes-source-privacy-hero { position: relative; height: 215px; display: grid; place-items: center; isolation: isolate; overflow: hidden; }
.aes-source-privacy-hero img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.aes-source-privacy-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(19, 21, 34, .42); }
.aes-source-privacy-hero h1 { margin: 0; color: #fff; font-size: 36px; }
.aes-source-privacy-copy { width: min(940px, calc(100% - 30px)); margin-inline: auto; padding: 65px 0 100px; color: #242229; font-size: 15px; line-height: 1.8; }
.aes-source-privacy-copy h2 { margin: 40px 0 13px; color: #49328f; font-size: 25px; }
.aes-source-privacy-copy p { margin: 0 0 13px; }
.aes-source-partner-hero { position: relative; min-height: 483px; display: flex; align-items: center; isolation: isolate; overflow: hidden; color: #fff; }
.aes-source-partner-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.aes-source-partner-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(18, 20, 29, .38); }
.aes-source-partner-hero > div { width: min(940px, calc(100% - 30px)); margin-inline: auto; }
.aes-source-partner-hero h1 { margin: 0; color: #fff; font-size: 35px; }
.aes-source-partner-hero h2 { margin: 0 0 24px; color: #fff; font-size: 39px; }
.aes-source-partner-hero p { width: min(570px, 100%); margin: 0; line-height: 1.7; }
.aes-source-partner-logos { width: min(1000px, calc(100% - 30px)); margin-inline: auto; padding: 70px 0 110px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 35px; align-items: center; background-image: var(--aes-partner-background); background-repeat: no-repeat; background-position: right top; background-size: 450px auto; }
.aes-source-misc-our-partners .aes-source-partner-logos { box-sizing: border-box; min-height: 938px; align-content: start; }
.aes-source-partner-logos figure { margin: 0; }
.aes-source-partner-logos img { width: 100%; max-height: 140px; object-fit: contain; }
.aes-source-partner-contact { height: 338px; min-height: 338px; display: grid; grid-template-columns: 1fr 1fr; background: #03141c; }
.aes-source-partner-contact figure { margin: 0; }
.aes-source-partner-contact figure img { width: 100%; height: 338px; min-height: 338px; object-fit: cover; }
.aes-source-partner-contact > div { padding: 75px clamp(45px, 8vw, 140px); }
.aes-source-partner-contact h1 { margin: 0 0 32px; color: #fff; font-size: 36px; line-height: 1.3; }
.aes-source-partner-contact h2 { margin: 5px 0 5px 75px; color: #fff; font-size: 16px; line-height: 1.5; }
.aes-source-partner-form { box-sizing: border-box; height: 733px; padding: 190px 15px 0; overflow: hidden; }
.aes-source-partner-form > div { width: min(760px, 100%); margin-inline: auto; }
.aes-source-partner-form h2 { margin: 0 0 30px; color: #49328f; font-size: 34px; text-align: center; }
.aes-source-job { padding: 5px 15px 300px; color: #202026; background: #fff; }
.aes-source-job > article { width: min(940px, 100%); margin-inline: auto; }
.aes-source-job header { position: relative; padding: 60px 0 70px; border-bottom: 1px solid #ddd; }
.aes-source-job header > a:first-child { color: #49328f; text-decoration: underline; text-underline-offset: 4px; }
.aes-source-job h1 { margin: 20px 0 12px; color: #19191c; font-size: 50px; line-height: 1.25; }
.aes-source-job header > p { margin: 0 0 36px; }
.aes-source-job-apply { position: absolute; top: 105px; right: 0; padding: 13px 28px; color: #fff; background: #49328f; text-decoration: none; }
.aes-source-job-facts { display: flex; gap: 85px; }
.aes-source-job-facts > div { display: grid; }
.aes-source-job-facts span { color: #67636f; }
.aes-source-job-content { padding: 62px 0; font-size: 16px; line-height: 1.8; }
.aes-source-job-content h2 { margin: 0 0 20px; color: #19191c; font-size: 30px; }
.aes-source-job-content h2:not(:first-child) { margin-top: 55px; }
.aes-source-job-content p { margin: 0 0 20px; }

@media (max-width: 820px) {
  .aes-source-project { height: auto; padding-top: 45px; padding-bottom: 70px; overflow: visible; }
  .aes-source-project-inner { grid-template-columns: 1fr; grid-template-rows: auto; }
  .aes-source-project-copy { padding-top: 25px; }
  .aes-source-project h1 { width: 100%; margin-bottom: 28px; }
  .aes-source-project-main-image { grid-column: 1; grid-row: auto; margin-top: 38px; }
  .aes-source-project-main-image img { height: min(116vw, 560px); }
  .aes-source-project-summary { grid-column: 1; grid-row: auto; width: 100%; padding-top: 42px; }
  .aes-source-project-metrics { height: auto; flex-wrap: wrap; }
  .aes-source-project-summary > p { height: auto; overflow: visible; }
  .aes-source-project-gallery { width: calc(100% - 30px); margin: 70px auto 0; display: grid; grid-template-columns: 1fr; gap: 15px; overflow: visible; }
  .aes-source-project-gallery figure,
  .aes-source-project-gallery figure:first-child { width: 100%; }
  .aes-source-project-gallery img { width: 100%; height: auto; aspect-ratio: 1.5 / 1; }
  .aes-source-article { padding-inline: 35px; }
  .aes-source-service-split { grid-template-columns: 1fr; }
  .aes-source-service-split.is-reversed figure { order: 0; }
  .aes-source-service-split figure,
  .aes-source-service-split figure img { min-height: 340px; }
  .aes-source-service-copy { padding: 55px 35px; }
  .aes-source-benefit-grid,
  .aes-source-listing-service .aes-source-listing-grid { grid-template-columns: 1fr 1fr; }
  .aes-source-benefit-grid { min-height: 0; padding-inline: 15px; }
  .aes-source-benefit-grid article { min-height: 0; }
  .aes-source-listing-project .aes-source-listing-body { background-size: auto 320px; }
  .aes-source-listing-project .aes-source-listing-heading { height: auto; min-height: 114px; padding-inline: 15px; }
  .aes-source-listing-project .aes-source-listing-heading img { width: min(437px, 100%); height: auto; }
  .aes-source-listing-project .aes-source-listing-metrics { width: calc(100% - 30px); height: auto; grid-template-columns: 1fr; gap: 26px; padding: 48px 0 34px; }
  .aes-source-listing-project .aes-source-listing-metrics > div { width: min(320px, 100%); margin-inline: auto; }
  .aes-source-listing-project .aes-source-listing-grid { width: calc(100% - 30px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 15px; }
  .aes-source-listing-project .aes-source-listing-card img { height: auto; }
  .aes-source-listing-post .aes-source-listing-grid { width: calc(100% - 30px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aes-source-listing-post .aes-source-listing-card img { width: 100%; height: auto; aspect-ratio: 1.5 / 1; }
  .aes-source-listing-job .aes-source-listing-heading { width: calc(100% - 30px); }
  .aes-source-listing-job .aes-source-listing-grid { width: calc(100% - 30px); }
  .aes-source-service-showcase > div > div,
  .aes-source-standards-gallery { grid-template-columns: 1fr 1fr; }
  .aes-source-about-intro,
  .aes-source-standards-content article,
  .aes-source-partner-contact { grid-template-columns: 1fr; }
  .aes-source-about-hero-logo { left: 64%; width: 42vw; }
  .aes-source-about-intro { width: calc(100% - 30px); max-width: none; min-height: 0; margin-inline: auto; padding: 80px 0; gap: 38px; }
  .aes-source-about-intro figure { margin: 0; }
  .aes-source-about-intro figure img { width: 100%; height: auto; min-height: 0; }
  .aes-source-standards-hero h1,
  .aes-source-standards-hero p { width: 54%; margin-left: 46%; }
  .aes-source-standards-why { height: auto; padding-bottom: 70px; background-size: auto 100%; }
  .aes-source-standards-why-grid { grid-template-columns: 1fr 1fr; gap: 38px 20px; }
  .aes-source-standards-why-grid article { margin-top: 0 !important; padding-left: 0; }
  .aes-source-standards-safety { height: auto; padding-bottom: 70px; }
  .aes-source-standards-safety-grid { grid-template-columns: 1fr; }
  .aes-source-safety-image { width: min(363px, 100%); height: auto; margin-inline: auto; }
  .aes-source-standards-content article:nth-child(even) figure { order: 0; }
  .aes-source-partner-logos { grid-template-columns: repeat(2, 1fr); }
  .aes-source-contact-main { padding-bottom: 70px; }
  .aes-source-contact-layout { grid-template-columns: 1fr; gap: 45px; }
  .aes-source-contact-details { padding-left: 0; }
  .aes-source-contact-form { width: min(482px, 100%); padding-top: 0; }

  /* Responsive rules for modern service pages */
  .aes-modern-service { overflow: visible; }
  .aes-modern-hero-copy { width: calc(100% - 30px); padding-top: 48px; }
  .aes-modern-hero-copy h1 { font-size: clamp(28px, 5.5vw, 36px); text-align: center; }
  .aes-modern-hero-copy p { width: 100%; text-align: left; }
  .aes-modern-actions { justify-content: center; flex-wrap: wrap; }
  .aes-modern-system-intro { grid-template-columns: 1fr; }
  .aes-modern-system-intro > div { padding: 48px 24px; }
  .aes-modern-system-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; width: calc(100% - 30px); max-width: 600px; gap: 32px 24px; padding: 60px 0; }
  .aes-modern-maintenance-grid { grid-template-columns: 1fr; width: calc(100% - 30px); max-width: 629px; }
  .aes-modern-maintenance-split { grid-template-columns: 1fr; height: auto; margin-top: 48px; }
  .aes-modern-maintenance-split > div { padding: 48px 24px; grid-template-columns: 1fr; }
  .aes-modern-equipment-row { grid-template-columns: repeat(3, minmax(0, 1fr)); width: calc(100% - 30px); gap: 16px; }
  .aes-modern-install-intro { grid-template-columns: 1fr; height: auto; }
  .aes-modern-install-intro > div { width: 100%; transform: none; padding: 24px 0; }
  .aes-modern-install-projects h2 { width: calc(100% - 30px); text-align: center; }
  .aes-modern-install-projects > div { grid-template-columns: 1fr; width: min(403px, calc(100% - 30px)); margin-inline: auto; }
  .aes-modern-install-copy section { padding: 48px 15px 30px; }
  .aes-modern-install-copy section:nth-child(even) { padding-left: 15px; }
  .aes-modern-install-copy section img { position: static; width: 100%; height: auto; aspect-ratio: 16 / 9; margin-bottom: 20px; }
  .aes-modern-private-benefits { grid-template-columns: 1fr; height: auto; }
  .aes-modern-private-benefits > div:last-child { padding: 48px 24px; }
  .aes-modern-private-copy { grid-template-columns: 1fr; height: auto; padding-top: 48px; }
  .aes-modern-private-copy > div { padding: 0 24px; }
  .aes-modern-private-copy img { width: min(364px, 100%); height: auto; margin: 24px auto 0; }
  .aes-modern-projects { position: static; width: 100%; margin-top: 48px; }
  .aes-modern-projects > h2 { width: calc(100% - 30px); margin: 0 auto 16px; font-size: clamp(28px, 5.5vw, 36px); text-align: center; }
  .aes-modern-projects > p { position: static; transform: none; width: min(820px, calc(100% - 30px)); margin: 0 auto 28px; text-align: left; }
  .aes-modern-projects > div { grid-template-columns: repeat(2, minmax(0, 1fr)); width: calc(100% - 30px); gap: 16px; justify-content: center; }
  .aes-modern-projects img { width: 100%; height: auto; aspect-ratio: 1 / 1; }
  .aes-modern-solarforhousehold .aes-modern-projects > div { width: min(320px, calc(100% - 30px)); grid-template-columns: 1fr; }
  .aes-modern-news { position: static; width: 100%; margin-top: 48px; }
  .aes-modern-news > h2 { width: calc(100% - 30px); margin: 0 auto 20px; font-size: clamp(28px, 5.5vw, 36px); text-align: center; }
  .aes-modern-news > div { grid-template-columns: repeat(2, minmax(0, 1fr)); width: calc(100% - 30px); gap: 24px; }
  .aes-modern-news img { width: 100%; height: auto; aspect-ratio: 16 / 9; }
}

@media (max-width: 600px) {
  .aes-modern-equipment-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aes-modern-projects > div { grid-template-columns: 1fr; width: min(400px, calc(100% - 30px)); }
  .aes-modern-news > div { grid-template-columns: 1fr; width: min(360px, calc(100% - 30px)); }
  .aes-modern-system-grid { grid-template-columns: 1fr; width: min(320px, calc(100% - 30px)); }
  .aes-source-project { padding-inline: 15px; }
  .aes-source-project-copy { padding-top: 14px; }
  .aes-source-project-label { margin-bottom: 14px; font-size: 14px; }
  .aes-source-project h1 { font-size: 37px; }
  .aes-source-project-metrics { gap: 35px; }
  .aes-source-project-gallery { width: calc(100% - 30px); gap: 15px; }
  .aes-source-project-gallery img { height: 285px; }
  .aes-source-article-page { padding: 15px; }
  .aes-source-article-page { height: auto; overflow: visible; }
  .aes-source-article { padding: 44px 15px; }
  .aes-source-article-header h1 { font-size: 27px; }
  .aes-source-article-body { font-size: 15px; line-height: 1.8; }
  .aes-source-article-body h2 { font-size: 23px; }
  .aes-source-service-intro { min-height: 365px; padding-inline: 15px; }
  .aes-source-service-intro h1 { font-size: 37px; }
  .aes-source-service-intro p { font-size: 15px; }
  .aes-source-service-split figure,
  .aes-source-service-split figure img { min-height: 280px; }
  .aes-source-service-copy { padding: 46px 15px; }
  .aes-source-service-copy h2 { font-size: 29px; }
  .aes-source-service-benefits { padding: 0; }
  .aes-source-service-benefits h2 { height: auto; min-height: 108px; justify-content: center; padding: 30px 15px; text-align: center; }
  .aes-source-benefit-grid { grid-template-columns: 1fr; gap: 15px; }
  .aes-source-listing-hero,
  .aes-source-listing-service .aes-source-listing-hero { min-height: 430px; }
  .aes-source-listing-copy { width: calc(100% - 30px); }
  .aes-source-listing-copy h1 { margin-bottom: 18px; font-size: 32px; }
  .aes-source-listing-copy p { font-size: 15px; }
  .aes-source-listing-body { width: calc(100% - 30px); padding-top: 36px; }
  .aes-source-listing-heading strong { font-size: 30px; }
  .aes-source-listing-metrics { grid-template-columns: 1fr; gap: 24px; }
  .aes-source-listing-grid,
  .aes-source-listing-service .aes-source-listing-grid { grid-template-columns: 1fr; gap: 34px; }
  .aes-source-listing-project .aes-source-listing-grid { grid-template-columns: 1fr; }
  .aes-source-listing-project .aes-source-listing-copy { transform: none; }
  .aes-source-listing-project .aes-source-listing-heading h2 { font-size: 30px; line-height: 1.35; }
  .aes-source-project-all { margin-top: 60px; }
  .aes-source-listing-post .aes-source-listing-copy { padding-top: 82px; }
  .aes-source-listing-post .aes-source-listing-copy h1,
  .aes-source-listing-post .aes-source-listing-copy .aes-source-listing-news { width: 100%; height: auto; font-size: 32px; }
  .aes-source-listing-post .aes-source-listing-body { min-height: 0; background-size: auto 100%; }
  .aes-source-listing-post .aes-source-listing-grid { grid-template-columns: 1fr; }
  .aes-source-listing-post .aes-source-listing-card > div { padding: 34px 15px 0; }
  .aes-source-listing-job .aes-source-listing-hero { height: 300px; min-height: 300px; }
  .aes-source-listing-job .aes-source-listing-body { min-height: 0; padding-top: 45px; }
  .aes-source-listing-job .aes-source-listing-heading h1 { margin-bottom: 80px; font-size: 43px; line-height: 1.25; }
  .aes-source-listing-job .aes-source-listing-heading p { width: auto; margin-left: 0; }
  .aes-source-listing-job .aes-source-listing-card { height: auto; min-height: 170px; }
  .aes-source-listing-job .aes-source-listing-card > div { padding: 22px 15px 72px; }
  .aes-source-listing-job .aes-source-listing-card h2 { max-width: 100%; font-size: 26px; }
  .aes-source-listing-job .aes-source-card-link { top: auto; right: 15px; bottom: 15px; }
  .aes-source-listing-extra-media { grid-template-columns: 1fr; gap: 15px; }
  .aes-source-service-showcase > div > div,
  .aes-source-standards-gallery { grid-template-columns: 1fr; }
  .aes-source-about-hero { height: 290px; }
  .aes-source-about-hero-logo { left: 64%; width: 50vw; }
  .aes-source-about-intro { padding: 70px 0; gap: 25px; }
  .aes-source-about-content { height: auto; overflow: visible; }
  .aes-source-about-copy > strong { font-size: 38px; }
  .aes-source-about-intro figure { margin-top: 10px; }
  .aes-source-about-media { grid-template-columns: 1fr; }
  .aes-source-standards-hero { height: 430px; align-items: flex-end; }
  .aes-source-standards-copy { padding-bottom: 42px; }
  .aes-source-standards-hero h1,
  .aes-source-standards-hero p { width: 100%; margin-left: 0; }
  .aes-source-standards-hero h1 { font-size: 32px; }
  .aes-source-standards-why { padding-top: 55px; }
  .aes-source-standards-why h2,
  .aes-source-standards-safety h2 { font-size: 30px; line-height: 1.35; text-align: center; }
  .aes-source-standards-kicker { max-width: 100%; height: auto; margin-inline: auto; }
  .aes-source-standards-why-grid { grid-template-columns: 1fr; }
  .aes-source-standards-why-grid article img { margin-inline: auto; }
  .aes-source-standards-why-grid article p { width: 100%; text-align: center; }
  .aes-source-standards-safety { padding-top: 55px; }
  .aes-source-standards-safety h2 { margin-left: 0; }
  .aes-source-safety-list article { padding-inline: 12px; }

  .aes-source-partner-logos { grid-template-columns: 1fr 1fr; gap: 22px; }
  .aes-source-partner-contact > div { padding: 50px 15px; }
  .aes-source-job h1 { padding-right: 0; font-size: 38px; }
  .aes-source-job-apply { position: static; display: inline-block; margin: 0 0 25px; }
  .aes-source-job-facts { gap: 35px; }
}

/* Complete Thai page inventory */
.aeslive { color: #25252b; background: #fff; }
.aeslive-hero { position: relative; min-height: 520px; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; background: #18112f; }
.aeslive-hero > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.aeslive-hero-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(24,17,47,.9) 0%, rgba(24,17,47,.58) 48%, rgba(24,17,47,.2) 100%); }
.aeslive-hero-inner { padding-top: 120px; padding-bottom: 68px; color: #fff; }
.aeslive-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 40px; color: rgba(255,255,255,.75); font-size: 14px; }
.aeslive-breadcrumb a { color: #c7dd2b; text-decoration: underline; text-underline-offset: 4px; }
.aeslive-kicker, .aeslive-eyebrow { margin: 0 0 10px; color: #c7dd2b; font-size: 13px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.aeslive-hero h1 { max-width: 950px; margin: 0; color: #fff; font-size: clamp(38px, 5vw, 66px); line-height: 1.16; text-wrap: balance; }
.aeslive-hero-index { min-height: 450px; }
.aeslive-section { padding-block: clamp(68px, 8vw, 105px); }
.aeslive-intro { width: min(780px, 100%); margin: 0 auto 44px; text-align: center; font-size: 19px; line-height: 1.8; }
.aeslive-intro-source p { margin: 0 0 8px; }
.aeslive-service-labels { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: -18px auto 38px; }
.aeslive-service-labels span { padding: 8px 14px; color: #482f92; background: #f3f1fa; border-bottom: 2px solid #c7dd2b; font-size: 13px; font-weight: 750; }
.aeslive-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.aeslive-card { overflow: hidden; display: flex; flex-direction: column; background: #fff; border: 1px solid #e1e1e5; box-shadow: 0 14px 35px rgba(24,17,47,.07); transition: transform .25s ease, box-shadow .25s ease; }
.aeslive-card:hover { transform: translateY(-5px); box-shadow: 0 20px 45px rgba(24,17,47,.13); }
.aeslive-card-media { display: block; overflow: hidden; aspect-ratio: 1.45 / 1; }
.aeslive-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.aeslive-card:hover .aeslive-card-media img { transform: scale(1.035); }
.aeslive-card-copy { flex: 1; display: flex; flex-direction: column; padding: 25px 25px 27px; }
.aeslive-card h2 { margin: 0 0 11px; font-size: 21px; line-height: 1.4; }
.aeslive-card h2 a { color: #482f92; text-decoration: none; }
.aeslive-card p { margin: 0 0 20px; color: #55525b; font-size: 15px; line-height: 1.72; }
.aeslive-text-link { margin-top: auto; color: #482f92; font-weight: 750; text-decoration: underline; text-decoration-color: #c7dd2b; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.aeslive-text-link span { color: #16aabd; }
.aeslive-content-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); gap: clamp(45px, 7vw, 95px); align-items: start; }
.aeslive-article-wrap { width: min(920px, 100%); margin-inline: auto; }
.aeslive-prose { font-size: 17px; line-height: 1.88; }
.aeslive-prose > :first-child { margin-top: 0; }
.aeslive-prose h2 { margin: 46px 0 16px; color: #482f92; font-size: clamp(28px, 3vw, 37px); line-height: 1.35; }
.aeslive-prose h3 { margin: 34px 0 12px; color: #18112f; font-size: 24px; line-height: 1.4; }
.aeslive-prose p { margin: 0 0 18px; }
.aeslive-prose blockquote { margin: 28px 0; padding: 24px 28px; color: #482f92; background: #f3f1fa; border-left: 5px solid #c7dd2b; font-size: 24px; font-weight: 750; }
.aeslive-meta-line { display: inline-block; margin: 0 12px 20px 0 !important; color: #6a6672; font-size: 14px; }
.aeslive-side-gallery { display: grid; gap: 22px; position: sticky; top: 100px; }
.aeslive-side-gallery img { width: 100%; max-height: 460px; object-fit: cover; box-shadow: 16px 16px 0 #c7dd2b; }
.aeslive-index-copy { width: min(850px, 100%); margin: 0 auto 50px; text-align: center; }
.aeslive-project-summary { width: min(850px, 100%); margin: 0 auto 50px; text-align: center; }
.aeslive-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.aeslive-gallery figure { margin: 0; overflow: hidden; background: #ececf0; }
.aeslive-gallery figure:first-child { grid-column: 1 / -1; }
.aeslive-gallery img { width: 100%; height: 100%; min-height: 330px; max-height: 680px; object-fit: cover; }
.aeslive-back { margin: 45px 0 0; text-align: center; }
.aeslive-source-media { margin-top: 75px; }
.aeslive-source-media > h2 { margin: 0 0 28px; color: #482f92; font-size: clamp(28px, 3vw, 38px); text-align: center; }
.aeslive-source-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.aeslive-source-gallery figure { margin: 0; overflow: hidden; background: #ececf0; }
.aeslive-source-gallery img { width: 100%; height: 100%; aspect-ratio: 1.4 / 1; object-fit: cover; }
.aeslive-related { margin: 0 0 72px; padding: 30px; background: #f6f5f9; border-left: 5px solid #c7dd2b; }
.aeslive-related h2 { margin: 0 0 18px; color: #482f92; font-size: 25px; }
.aeslive-related ul { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 0; padding: 0; list-style: none; }
.aeslive-related a { color: #482f92; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.aeslive-related a:hover, .aeslive-related a:focus-visible { color: #18112f; }
.aeslive-job-cards .aeslive-card-media { display: none; }
.aeslive-job-cards .aeslive-card { border-top: 5px solid #16aabd; }
.aeslive-booking { background: linear-gradient(135deg, #e9f8fa 0%, #fff 48%, #f0f6cb 100%); }
.aeslive-booking-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 7vw, 90px); align-items: start; }
.aeslive-booking h2 { margin: 0 0 18px; color: #482f92; font-size: clamp(32px, 4vw, 46px); line-height: 1.3; }
.aeslive-booking p, .aeslive-booking li { font-size: 17px; line-height: 1.75; }
.aeslive-booking ul { padding-left: 23px; }
.aeslive-booking 
.aes-source-booking-empty {
  width: min(980px, 100%);
  min-height: 316px;
  display: grid;
  place-items: center;
  margin-inline: auto;
  padding: 20px;
  background: #05aace;
}
.aes-source-booking-page { min-height: 316px; }
.aes-source-booking-empty > div {
  width: 100%;
  min-height: 274px;
  display: grid;
  place-items: center;
  background: #05aace;
  border: 1px solid rgba(255,255,255,.2);
}
.aes-source-booking-empty p { margin: 0; color: #fff; font-size: 24px; font-weight: 400; line-height: 1.4; text-align: center; }
.aeslive-cta { padding-block: 52px; color: #fff; background: linear-gradient(120deg, #18112f 0%, #482f92 68%, #16aabd 130%); }
.aeslive-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.aeslive-cta p { margin: 0 0 3px; color: #c7dd2b; font-size: 14px; font-weight: 750; }
.aeslive-cta h2 { margin: 0; color: #fff; font-size: clamp(28px, 3vw, 39px); }
.aeslive-cta .aeshome-button { flex: 0 0 auto; color: #18112f; background: #c7dd2b; border-color: #c7dd2b; }
.aescon-primary-nav .menu-item-has-children { position: relative; }
.aescon-primary-nav .menu-item-has-children > a { padding-right: 14px; }
.aescon-primary-nav .menu-item-has-children > a::before { content: ""; position: absolute; right: 0; top: 50%; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-75%) rotate(45deg); }
.aescon-primary-nav .sub-menu { position: absolute; z-index: 950; top: calc(100% - 8px); left: -18px; width: 255px; display: grid; gap: 0; padding: 10px 0; visibility: hidden; opacity: 0; background: #fff; border-top: 3px solid #c7dd2b; box-shadow: 0 18px 40px rgba(24,17,47,.16); transform: translateY(8px); transition: opacity .18s ease, transform .18s ease, visibility .18s; }
.aescon-primary-nav .sub-menu li { width: 100%; }
.aescon-primary-nav .sub-menu a { padding: 10px 18px; font-size: 13px; line-height: 1.45; }
.aescon-primary-nav .sub-menu a::after { display: none; }
.aescon-primary-nav .sub-menu a:hover, .aescon-primary-nav .sub-menu a:focus-visible { color: #482f92; background: #f5f3fa; }
.aescon-primary-nav .menu-item-has-children:hover > .sub-menu, .aescon-primary-nav .menu-item-has-children:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
  .aeslive-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aeslive-source-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aeslive-content-wrap, .aeslive-booking-grid { grid-template-columns: 1fr; }
  .aeslive-side-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); position: static; }
}

@media (max-width: 767px) {
  .aeslive-hero, .aeslive-hero-index { min-height: 470px; }
  .aeslive-hero-inner { padding-top: 96px; padding-bottom: 46px; }
  .aeslive-hero-shade { background: rgba(24,17,47,.68); }
  .aeslive-breadcrumb { margin-bottom: 28px; }
  .aeslive-hero h1 { font-size: 35px; }
  .aeslive-section { padding-block: 62px; }
  .aeslive-intro { margin-bottom: 30px; text-align: left; font-size: 17px; }
  .aeslive-card-grid, .aeslive-gallery { grid-template-columns: 1fr; gap: 15px; }
  .aeslive-source-gallery { grid-template-columns: 1fr; gap: 15px; }
  .aeslive-source-media { margin-top: 55px; }
  .aeslive-source-media > h2 { text-align: left; }
  .aeslive-related { margin-bottom: 55px; padding: 24px 20px; }
  .aeslive-related ul { display: grid; gap: 12px; }
  .aeslive-gallery figure:first-child { grid-column: auto; }
  .aeslive-gallery img { min-height: 230px; }
  .aeslive-card-copy { padding: 22px 20px 24px; }
  .aeslive-prose { font-size: 16px; line-height: 1.82; }
  .aeslive-prose h2 { margin-top: 38px; font-size: 28px; }
  .aeslive-prose h3 { font-size: 21px; }
  .aeslive-side-gallery { grid-template-columns: 1fr; }
  .aeslive-side-gallery img { box-shadow: 8px 8px 0 #c7dd2b; }
  .aeslive-index-copy, .aeslive-project-summary { text-align: left; }
  .aeslive-cta-inner { align-items: flex-start; flex-direction: column; }
  .aeslive-cta .aeshome-button { width: 100%; text-align: center; }
}

@media (max-width: 390px) {
  .aescon-hero h1 { font-size: 37px; }
  .aescon-page-hero h1 { font-size: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* ==========================================================================
   1. PURE FULL-BLEED CINEMATIC VIDEO (ZERO TEXT ON VIDEO)
   ========================================================================== */
.aeshome-hero-video-section {
  position: relative;
  width: 100%;
  height: clamp(480px, 68vh, 720px);
  background: #0d0b1a;
  overflow: hidden;
}

.aeshome-video-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}

.aeshome-full-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* ==========================================================================
   2. BESPOKE EPC SOLAR SECTION (STRICT APISIT INVARIANT RULE)
   ========================================================================== */
.aeshome-epc-section {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}

.aeshome-epc-container {
  width: min(calc(100% - (var(--aes-gutter) * 2)), 1160px);
  margin-inline: auto;
}

/* Header */
.aeshome-epc-header {
  width: 100%;
  max-width: 960px;
  margin: 0 auto clamp(20px, 2.5vw, 28px) auto;
  text-align: center;
  box-sizing: border-box;
}

.aeshome-epc-header h1 {
  margin: 0 auto 12px auto;
  color: #121020;
  font-family: var(--aes-font);
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 800;
  line-height: 1.32;
  letter-spacing: -0.02em;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

.aeshome-epc-brand {
  display: inline;
  font-family: 'Syne', var(--aes-font);
  font-size: inherit;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: var(--aes-cyan);
  margin-right: 10px;
  margin-left: 0;
}

/* วงที่ 1: กึ่งกลางของหน้าจอ แต่ข้อความเรียงชิดซ้าย */
.aeshome-epc-lead {
  margin: 0 auto;
  max-width: 820px;
  color: #4a4658;
  font-family: var(--aes-font);
  font-size: clamp(14.5px, 1.3vw, 15.5px);
  line-height: 1.75;
  text-align: left;
}

.aeshome-epc-link {
  color: var(--aes-purple);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  transition: all 0.2s ease;
}

.aeshome-epc-link:hover {
  color: var(--aes-cyan-dark);
}

/* วงที่ 2: การ์ด 3 ใบ วางเรียงกึ่งกลางกริด แต่เนื้อหาภายในการ์ดเรียงชิดซ้าย */
.aeshome-epc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: clamp(24px, 2.5vw, 32px);
  margin-bottom: clamp(48px, 4.5vw, 64px);
}

.aeshome-epc-card {
  background: #fdfcff;
  border: 1px solid #ede8f5;
  border-radius: 14px;
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  transition: all 0.22s ease;
}

.aeshome-epc-card:hover {
  background: #ffffff;
  border-color: #cfc4e3;
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(73, 50, 143, 0.07);
}

.aeshome-epc-card h2 {
  margin: 0 0 8px 0;
  color: #121020;
  font-family: var(--aes-font);
  font-size: 17.5px;
  font-weight: 750;
  line-height: 1.38;
  text-align: left;
}

.aeshome-epc-card p {
  margin: 0;
  color: #555163;
  font-family: var(--aes-font);
  font-size: 14px;
  line-height: 1.68;
  text-align: left;
}

/* วงที่ 3: สถิติ 3 กล่อง จัดกึ่งกลางของคอลัมน์ และลบกรอบออก (Border-Free Centered Stat Units) */
.aeshome-stats-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
  padding-top: clamp(12px, 1.5vw, 20px);
  padding-bottom: clamp(8px, 1vw, 16px);
}

.aeshome-stat-card {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  text-align: left;
  transition: transform 0.2s ease;
}

.aeshome-stat-card:hover {
  transform: translateY(-2px);
}

.aeshome-stat-card-icon {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.aeshome-stat-card-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.aeshome-stat-card-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.aeshome-stat-card-label {
  font-family: var(--aes-font);
  font-size: 13.5px;
  color: #635f72;
  font-weight: 600;
  margin-bottom: 2px;
}

.aeshome-stat-card-number {
  display: flex;
  align-items: baseline;
  gap: 3px;
  line-height: 1.1;
}

.aeshome-stat-card-prefix {
  font-family: 'Montserrat', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: var(--aes-purple);
}

.aeshome-stat-card-number strong {
  font-family: 'Montserrat', var(--aes-font);
  font-size: clamp(26px, 2.3vw, 30px);
  font-weight: 800;
  color: var(--aes-purple);
  letter-spacing: -0.02em;
}

.aeshome-stat-card-unit {
  font-family: var(--aes-font);
  font-size: 14px;
  font-weight: 750;
  color: var(--aes-purple);
  margin-left: 2px;
}

/* RESPONSIVE FOR EPC SECTION & VIDEO */
@media (max-width: 1023px) {
  .aeshome-epc-section {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-epc-header {
    margin-bottom: 20px !important;
  }
  .aeshome-epc-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-bottom: 22px !important;
  }
  .aeshome-epc-card h2 {
    text-align: center !important;
    width: 100% !important;
  }
  .aeshome-epc-card p {
    text-align: left !important;
  }
  .aeshome-stats-cards-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .aeshome-stat-card {
    justify-content: center !important;
    padding: 6px 0 !important;
  }
}

@media (max-width: 767px) {
  .aeshome-hero-video-section {
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
  }
  .aeshome-hero-video-section video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
  .aeshome-epc-section {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-epc-header {
    margin-bottom: 16px !important;
    padding: 0 4px !important;
  }
  .aeshome-epc-header h1 {
    font-size: 19px !important;
    line-height: 1.36 !important;
    margin-bottom: 8px !important;
    text-align: center !important;
  }
  .aeshome-epc-lead {
    font-size: 13.5px !important;
    line-height: 1.65 !important;
    text-align: left !important;
    max-width: 100% !important;
    padding: 0 !important;
  }
  .aeshome-epc-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }
  .aeshome-epc-card {
    padding: 16px 15px !important;
    border-radius: 12px !important;
    align-items: flex-start !important;
    text-align: left !important;
  }
  .aeshome-epc-card h2 {
    font-size: 16.5px !important;
    line-height: 1.35 !important;
    margin-bottom: 8px !important;
    text-align: center !important;
    width: 100% !important;
  }
  .aeshome-epc-card p {
    font-size: 13px !important;
    line-height: 1.6 !important;
    text-align: left !important;
  }
  .aeshome-stats-cards-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .aeshome-stat-card {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    padding: 4px 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
  .aeshome-stat-card-icon {
    width: 44px !important;
    height: 44px !important;
    flex-shrink: 0 !important;
  }
  .aeshome-stat-card-info {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .aeshome-stat-card-label {
    font-size: 12px !important;
    color: #635f72 !important;
    margin-bottom: 2px !important;
  }
  .aeshome-stat-card-number {
    display: flex !important;
    align-items: baseline !important;
    gap: 2px !important;
    line-height: 1.1 !important;
  }
  .aeshome-stat-card-prefix {
    font-size: 18px !important;
    color: var(--aes-purple) !important;
  }
  .aeshome-stat-card-number strong {
    font-size: 22px !important;
    color: var(--aes-purple) !important;
  }
  .aeshome-stat-card-unit {
    font-size: 12.5px !important;
    color: var(--aes-purple) !important;
  }
}

.brandstorm-builder-document > .bs-widget {
  margin-bottom: 0 !important;
}

.aeshome-organisation {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}

.aeshome-centred-copy {
  max-width: 960px;
  width: 100%;
  margin: 0 auto clamp(20px, 2.5vw, 28px) auto;
  text-align: center;
  box-sizing: border-box;
}

.aeshome-wordmark {
  width: 260px;
  height: auto;
  margin: 0 auto 16px;
  object-fit: contain;
}

.aeshome-centred-copy h2 {
  margin: 0 0 14px;
  color: #121020;
  font-family: var(--aes-font);
  font-size: clamp(26px, 2.5vw, 34px);
  font-weight: 800;
  line-height: 1.3;
  text-align: center;
}

.aeshome-org-eyebrow {
  display: inline;
  font-family: 'Syne', var(--aes-font);
  font-size: inherit;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--aes-cyan);
  margin-left: 12px;
  margin-right: 0;
  line-height: inherit;
}

.aeshome-centred-copy p {
  margin: 0 auto;
  max-width: 820px;
  color: #4a4658;
  font-family: var(--aes-font);
  font-size: clamp(14.5px, 1.3vw, 15.5px);
  line-height: 1.75;
  text-align: left;
}

.aeshome-service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.aeshome-service-card {
  background: #ffffff;
  border: 1px solid #ede8f5;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 20px rgba(18, 16, 32, 0.04);
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  height: 100%;
}

.aeshome-service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(73, 50, 143, 0.12);
  border-color: #d8cde9;
}

.aeshome-service-media {
  position: relative;
  width: 100%;
  height: 225px;
  overflow: hidden;
  background: #121020;
}

.aeshome-service-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.aeshome-service-card:hover .aeshome-service-media img {
  transform: scale(1.05);
}

.aeshome-service-pill {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(18, 16, 32, 0.72);
  backdrop-filter: blur(8px);
  color: #ffffff;
  font-family: var(--aes-font);
  font-size: 12px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  letter-spacing: 0.2px;
}

.aeshome-service-body {
  padding: 24px 22px 26px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  text-align: left;
  background: #ffffff;
}

/* วงแรก: หัวข้อและชื่อภาษาอังกฤษอยู่กึ่งกลาง */
.aeshome-service-header {
  margin-bottom: 12px;
  text-align: center;
}

.aeshome-service-header h3 {
  margin: 0;
  color: #121020;
  font-family: var(--aes-font);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.32;
  text-align: center;
}

.aeshome-service-subtitle {
  display: block;
  font-family: var(--aes-font);
  font-size: 13px;
  font-weight: 650;
  color: var(--aes-purple);
  margin-top: 3px;
  text-align: center;
}

/* เนื้อหาคำอธิบายคงชิดซ้ายตามเดิม */
.aeshome-service-body p {
  margin: 0;
  color: #4a4658;
  font-family: var(--aes-font);
  font-size: 13.5px;
  line-height: 1.68;
  text-align: left;
}

/* RESPONSIVE FOR SERVICE CARDS */
@media (max-width: 1023px) {
  .aeshome-organisation {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-centred-copy {
  max-width: 960px;
  width: 100%;
  margin: 0 auto clamp(20px, 2.5vw, 28px) auto;
  text-align: center;
  box-sizing: border-box;
}
  .aeshome-centred-copy h2 {
    font-size: 26px !important;
    line-height: 1.3 !important;
    text-align: center !important;
  }
  .aeshome-org-eyebrow {
    font-size: inherit !important;
    margin-left: 10px !important;
    margin-right: 0 !important;
  }
  .aeshome-service-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    max-width: 680px !important;
    margin-inline: auto !important;
  }
  .aeshome-service-card {
    height: auto !important;
    border-radius: 14px !important;
  }
  .aeshome-service-media {
    height: 230px !important;
  }
  .aeshome-service-header h3 {
    font-size: 19.5px !important;
  }
  .aeshome-service-subtitle {
    font-size: 13px !important;
  }
  .aeshome-service-body {
    padding: 22px 20px 24px !important;
  }
}

@media (max-width: 767px) {
  .aeshome-organisation {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-centred-copy {
  max-width: 960px;
  width: 100%;
  margin: 0 auto clamp(20px, 2.5vw, 28px) auto;
  text-align: center;
  box-sizing: border-box;
}
  .aeshome-centred-copy h2 {
    font-size: 22px !important;
    line-height: 1.3 !important;
    text-align: center !important;
  }
  .aeshome-org-eyebrow {
    font-size: inherit !important;
    margin-left: 8px !important;
    margin-right: 0 !important;
  }
  .aeshome-centred-copy p {
    font-size: 13.5px !important;
    line-height: 1.68 !important;
  }
  .aeshome-service-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 100% !important;
  }
  .aeshome-service-card {
    height: auto !important;
    border-radius: 12px !important;
  }
  .aeshome-service-media {
    height: 190px !important;
  }
  .aeshome-service-pill {
    top: 10px !important;
    left: 10px !important;
    font-size: 11px !important;
    padding: 3px 10px !important;
  }
  .aeshome-service-header {
    margin-bottom: 8px !important;
  }
  .aeshome-service-header h3 {
    font-size: 17.5px !important;
    line-height: 1.35 !important;
  }
  .aeshome-service-subtitle {
    font-size: 12px !important;
    margin-top: 2px !important;
  }
  .aeshome-service-body {
    padding: 18px 16px 20px !important;
  }
  .aeshome-service-body p {
    font-size: 13px !important;
    line-height: 1.62 !important;
  }
}

/* ==========================================================================
   4. ABOUT AESOVATION SECTION (ORIGINAL ELEGANT & CLEAN RESTORATION)
   ========================================================================== */
.aeshome-about {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}

.aeshome-about-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(0, 1fr);
  gap: clamp(36px, 4vw, 56px);
  align-items: flex-start;
  width: 100%;
  box-sizing: border-box;
}

.aeshome-about-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100%;
  box-sizing: border-box;
}

.aeshome-about-eyebrow {
  display: inline;
  font-family: 'Syne', var(--aes-font);
  font-size: inherit;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--aes-cyan);
  margin-left: 12px;
  margin-right: 0;
  line-height: inherit;
}

.aeshome-about-heading {
  margin: 0 0 20px 0;
  color: #121020;
  font-family: var(--aes-font);
  font-size: clamp(28px, 2.6vw, 36px);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  text-align: center;
  width: 100%;
  align-self: center;
}

.aeshome-about-text {
  margin-bottom: 24px;
  width: 100%;
  box-sizing: border-box;
}

.aeshome-about-text p {
  margin: 0 0 16px 0;
  color: #4a4658;
  font-family: var(--aes-font);
  font-size: clamp(14.5px, 1.2vw, 15.5px);
  line-height: 1.75;
  text-align: left;
  word-break: break-word;
  overflow-wrap: break-word;
  box-sizing: border-box;
}

.aeshome-about-text p:last-child {
  margin-bottom: 0;
}

.aeshome-about-text strong {
  color: var(--aes-purple);
  font-weight: 750;
}

.aeshome-about-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 28px;
  align-self: center;
  margin-inline: auto;
  color: #ffffff !important;
  background: var(--aes-purple);
  border: 1px solid var(--aes-purple);
  border-radius: 8px;
  font-family: var(--aes-font);
  font-size: 14.5px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.24s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 16px rgba(73, 50, 143, 0.22);
  box-sizing: border-box;
}

.aeshome-about-btn::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 2px solid #ffffff;
  border-top: 2px solid #ffffff;
  transform: rotate(45deg);
  margin-left: 6px;
  margin-bottom: 2px;
  transition: transform 0.2s ease;
}

.aeshome-about-btn:hover {
  color: #ffffff !important;
  background: var(--aes-purple-dark);
  border-color: var(--aes-purple-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(73, 50, 143, 0.32);
}

.aeshome-about-btn:hover::after {
  transform: rotate(45deg) translate(2px, -2px);
}

.aeshome-about-media {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  box-sizing: border-box;
}

.aeshome-about-video-wrap {
  position: relative;
  width: 100%;
  max-width: 540px;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  background: #121020;
  box-shadow: 0 16px 40px rgba(18, 16, 32, 0.12);
  border: 1px solid rgba(73, 50, 143, 0.12);
  box-sizing: border-box;
}

.aeshome-about-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* ==========================================================================
   TABLET RESPONSIVE (768px - 1023px)
   ========================================================================== */
@media (max-width: 1023px) {
  .aeshome-about {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-about .aescon-container {
    width: min(calc(100% - 40px), 720px) !important;
    margin-inline: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 28px !important;
    width: 100% !important;
    margin-inline: auto !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-copy {
    order: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-eyebrow {
    font-size: inherit !important;
    margin-left: 10px !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
  }
  .aeshome-about-heading {
    font-size: 26px !important;
    line-height: 1.3 !important;
    margin: 0 0 16px 0 !important;
    text-align: center !important;
    width: 100% !important;
    align-self: center !important;
  }
  .aeshome-about-text {
    margin-bottom: 20px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-text p {
    font-size: 14.5px !important;
    line-height: 1.75 !important;
    text-align: left !important;
    margin: 0 0 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-btn {
    display: inline-flex !important;
    justify-content: center !important;
    align-self: center !important;
    margin-inline: auto !important;
    padding: 12px 28px !important;
    font-size: 14.5px !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-media {
    order: 2 !important;
    width: 100% !important;
    margin-top: 4px !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-video-wrap {
    width: 100% !important;
    border-radius: 14px !important;
    aspect-ratio: 16 / 9 !important;
    box-shadow: 0 12px 32px rgba(18, 16, 32, 0.10) !important;
    box-sizing: border-box !important;
  }
}

/* ==========================================================================
   MOBILE RESPONSIVE (375px - 767px)
   ========================================================================== */
@media (max-width: 767px) {
  .aeshome-about {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-about .aescon-container {
    width: calc(100% - 30px) !important;
    max-width: calc(100% - 30px) !important;
    margin-inline: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 22px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-copy {
    order: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-eyebrow {
    font-size: inherit !important;
    margin-left: 8px !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
  }
  .aeshome-about-heading {
    font-size: 22px !important;
    line-height: 1.3 !important;
    margin: 0 0 14px 0 !important;
    text-align: center !important;
    width: 100% !important;
    align-self: center !important;
  }
  .aeshome-about-text {
    margin-bottom: 18px !important;
    width: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-text p {
    font-size: 13.5px !important;
    line-height: 1.68 !important;
    text-align: left !important;
    margin: 0 0 10px !important;
    width: 100% !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-btn {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-self: center !important;
    margin-inline: auto !important;
    min-height: 48px !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
  }
  .aeshome-about-media {
    order: 2 !important;
    width: 100% !important;
    margin: 4px auto 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .aeshome-about-video-wrap {
    width: 100% !important;
    border-radius: 12px !important;
    aspect-ratio: 16 / 9 !important;
    box-shadow: 0 8px 24px rgba(18, 16, 32, 0.08) !important;
    box-sizing: border-box !important;
  }
}





/* ==========================================================================
   5. WHY CHOOSE AESOVATION SECTION (EXECUTIVE FULL-WIDTH 3-COL GRID LAYOUT)
   ========================================================================== */
.aeshome-why {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}

.aeshome-why-header {
  max-width: 960px;
  width: 100%;
  margin: 0 auto clamp(20px, 2.5vw, 28px) auto;
  text-align: center;
  box-sizing: border-box;
}

.aeshome-why-header h2 {
  margin: 0;
  color: #121020;
  font-family: var(--aes-font);
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.02em;
  text-align: center;
}

.aeshome-why-eyebrow {
  display: inline;
  font-family: 'Syne', var(--aes-font);
  font-size: inherit;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--aes-cyan);
  margin-left: 12px;
  margin-right: 0;
  line-height: inherit;
}

/* TOP HERO BANNER */
.aeshome-why-banner-wrap {
  width: 100%;
  margin-bottom: clamp(24px, 3vw, 36px);
  box-sizing: border-box;
}

.aeshome-why-banner {
  position: relative;
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(18, 16, 32, 0.09);
  width: 100%;
  height: clamp(260px, 28vw, 380px);
  background: #121020;
  display: flex;
}

.aeshome-why-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.aeshome-why-banner:hover img {
  transform: scale(1.02);
}

.aeshome-why-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(18, 16, 32, 0.1) 0%, rgba(18, 16, 32, 0.78) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: clamp(16px, 2.5vw, 24px) clamp(20px, 3vw, 32px);
  box-sizing: border-box;
}

.aeshome-why-banner-badge {
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(18, 16, 32, 0.82);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  padding: 10px 18px;
}

.aeshome-why-banner-badge-icon {
  width: 34px;
  height: 34px;
  min-width: 34px;
  background: linear-gradient(135deg, var(--aes-cyan), #0891b2);
  color: #121020;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
  flex-shrink: 0;
}

.aeshome-why-banner-badge-text {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.aeshome-why-banner-badge-text strong {
  color: #ffffff;
  font-family: var(--aes-font);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.35;
}

.aeshome-why-banner-badge-text span {
  color: rgba(255, 255, 255, 0.8);
  font-family: var(--aes-font);
  font-size: 12px;
  line-height: 1.4;
  margin-top: 2px;
}

.aeshome-why-banner-stats {
  display: flex;
  align-items: center;
  gap: 24px;
}

.aeshome-why-bstat {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.aeshome-why-bstat strong {
  font-family: 'Montserrat', var(--aes-font);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 800;
  color: var(--aes-cyan);
  line-height: 1.1;
}

.aeshome-why-bstat span {
  font-family: var(--aes-font);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 2px;
  font-weight: 600;
}

/* 3-COLUMN CARDS GRID (CENTERED HEADINGS + LEFT-ALIGNED 2-LINE BODY) */
.aeshome-why-grid-3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  width: 100%;
  box-sizing: border-box;
}

.aeshome-why-card-item {
  background: #fdfcff;
  border: 1px solid #ede8f5;
  border-radius: 16px;
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: all 0.26s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  box-shadow: 0 4px 16px rgba(18, 16, 32, 0.03);
  min-height: 155px;
}

.aeshome-why-card-item:hover {
  background: #ffffff;
  border-color: #cfc4e3;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(73, 50, 143, 0.08);
}

.aeshome-why-card-item h3 {
  margin: 0 auto 8px auto;
  color: #121020;
  font-family: var(--aes-font);
  font-size: 17px;
  font-weight: 750;
  line-height: 1.38;
  text-align: center;
  width: 100%;
}

.aeshome-why-card-item p {
  margin: 0 auto;
  color: #555163;
  font-family: var(--aes-font);
  font-size: 13.5px;
  line-height: 1.68;
  text-align: left;
  width: 100%;
}

/* RESPONSIVE FOR 3-COL WHY SECTION (TABLET & MOBILE + BUILDER PREVIEW) */
@media (max-width: 1023px) {
  .aeshome-why {
    padding-block: 28px !important;
  }
  .aeshome-why-header {
    margin-bottom: 20px !important;
  }
  .aeshome-why-header h2 {
    font-size: 26px !important;
  }
  .aeshome-why-eyebrow {
    font-size: inherit !important;
    margin-left: 8px !important;
  }
  .aeshome-why-banner-wrap {
    margin-bottom: 20px !important;
  }
  .aeshome-why-banner {
    height: 220px !important;
  }
  .aeshome-why-banner-overlay {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    padding: 14px 18px !important;
  }
  .aeshome-why-banner-stats {
    display: none !important;
  }
  .aeshome-why-grid-3col {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }
  .aeshome-why-card-item {
    padding: 20px 18px !important;
  }
  .aeshome-why-card-head {
    margin-bottom: 10px !important;
  }
  .aeshome-why-pill {
    font-size: 11px !important;
    padding: 3px 10px !important;
    white-space: nowrap !important;
  }
  .aeshome-why-check {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    font-size: 11px !important;
  }
  .aeshome-why-card-item h3 {
    font-size: 15.5px !important;
    line-height: 1.4 !important;
    margin-bottom: 8px !important;
  }
  .aeshome-why-card-item p {
    font-size: 13px !important;
    line-height: 1.65 !important;
  }
}

/* Builder Canvas Tablet Override */
.bs-viewport-tablet .aeshome-why {
  padding-block: 28px !important;
}
.bs-viewport-tablet .aeshome-why-header {
  margin-bottom: 20px !important;
}
.bs-viewport-tablet .aeshome-why-header h2 {
  font-size: 26px !important;
}
.bs-viewport-tablet .aeshome-why-eyebrow {
  font-size: inherit !important;
  margin-left: 8px !important;
}
.bs-viewport-tablet .aeshome-why-banner-wrap {
  margin-bottom: 20px !important;
}
.bs-viewport-tablet .aeshome-why-banner {
  height: 220px !important;
}
.bs-viewport-tablet .aeshome-why-banner-overlay {
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  padding: 14px 18px !important;
}
.bs-viewport-tablet .aeshome-why-banner-stats {
  display: none !important;
}
.bs-viewport-tablet .aeshome-why-grid-3col {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 16px !important;
}
.bs-viewport-tablet .aeshome-why-card-item {
  padding: 20px 18px !important;
}
.bs-viewport-tablet .aeshome-why-card-head {
  margin-bottom: 10px !important;
}
.bs-viewport-tablet .aeshome-why-pill {
  font-size: 11px !important;
  padding: 3px 10px !important;
  white-space: nowrap !important;
}
.bs-viewport-tablet .aeshome-why-check {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  font-size: 11px !important;
}
.bs-viewport-tablet .aeshome-why-card-item h3 {
  font-size: 15.5px !important;
  line-height: 1.4 !important;
  margin-bottom: 8px !important;
}
.bs-viewport-tablet .aeshome-why-card-item p {
  font-size: 13px !important;
  line-height: 1.65 !important;
}

/* MOBILE (max-width: 767px) */
@media (max-width: 767px) {
  .aeshome-why {
    padding-block: 20px !important;
  }
  .aeshome-why-header {
    margin-bottom: 16px !important;
  }
  .aeshome-why-header h2 {
    font-size: 21px !important;
  }
  .aeshome-why-eyebrow {
    font-size: inherit !important;
    margin-left: 6px !important;
  }
  .aeshome-why-banner-wrap {
    margin-bottom: 16px !important;
  }
  .aeshome-why-banner {
    height: 170px !important;
    border-radius: 12px !important;
  }
  .aeshome-why-banner img {
    border-radius: 12px !important;
  }
  .aeshome-why-banner-overlay {
    padding: 10px 12px !important;
  }
  .aeshome-why-banner-badge {
    padding: 6px 10px !important;
    gap: 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .aeshome-why-banner-badge-icon {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    font-size: 12px !important;
  }
  .aeshome-why-banner-badge-text strong {
    font-size: 12px !important;
  }
  .aeshome-why-banner-badge-text span {
    font-size: 10px !important;
  }
  .aeshome-why-banner-stats {
    display: none !important;
  }
  .aeshome-why-grid-3col {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
  }
  .aeshome-why-card-item {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 16px 16px 18px !important;
    border-radius: 12px !important;
  }
  .aeshome-why-card-head {
    margin-bottom: 8px !important;
  }
  .aeshome-why-pill {
    font-size: 11px !important;
    padding: 3px 10px !important;
    white-space: nowrap !important;
  }
  .aeshome-why-check {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    font-size: 10px !important;
  }
  .aeshome-why-card-item h3 {
    font-size: 15px !important;
    line-height: 1.4 !important;
    margin: 0 0 6px 0 !important;
  }
  .aeshome-why-card-item p {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
}

/* Builder Canvas Mobile Override */
.bs-viewport-mobile .aeshome-why {
  padding-block: 20px !important;
}
.bs-viewport-mobile .aeshome-why-header {
  margin-bottom: 16px !important;
}
.bs-viewport-mobile .aeshome-why-header h2 {
  font-size: 21px !important;
}
.bs-viewport-mobile .aeshome-why-eyebrow {
  font-size: inherit !important;
  margin-left: 6px !important;
}
.bs-viewport-mobile .aeshome-why-banner-wrap {
  margin-bottom: 16px !important;
}
.bs-viewport-mobile .aeshome-why-banner {
  height: 170px !important;
  border-radius: 12px !important;
}
.bs-viewport-mobile .aeshome-why-banner img {
  border-radius: 12px !important;
}
.bs-viewport-mobile .aeshome-why-banner-overlay {
  padding: 10px 12px !important;
}
.bs-viewport-mobile .aeshome-why-banner-badge {
  padding: 6px 10px !important;
  gap: 8px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.bs-viewport-mobile .aeshome-why-banner-badge-icon {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  font-size: 12px !important;
}
.bs-viewport-mobile .aeshome-why-banner-badge-text strong {
  font-size: 12px !important;
}
.bs-viewport-mobile .aeshome-why-banner-badge-text span {
  font-size: 10px !important;
}
.bs-viewport-mobile .aeshome-why-banner-stats {
  display: none !important;
}
.bs-viewport-mobile .aeshome-why-grid-3col {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  width: 100% !important;
}
.bs-viewport-mobile .aeshome-why-card-item {
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 16px 16px 18px !important;
  border-radius: 12px !important;
}
.bs-viewport-mobile .aeshome-why-card-head {
  margin-bottom: 8px !important;
}
.bs-viewport-mobile .aeshome-why-pill {
  font-size: 11px !important;
  padding: 3px 10px !important;
  white-space: nowrap !important;
}
.bs-viewport-mobile .aeshome-why-check {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  font-size: 10px !important;
}
.bs-viewport-mobile .aeshome-why-card-item h3 {
  font-size: 15px !important;
  line-height: 1.4 !important;
  margin: 0 0 6px 0 !important;
}
.bs-viewport-mobile .aeshome-why-card-item p {
  font-size: 13px !important;
  line-height: 1.6 !important;
}

@media (max-width: 767px) {
  .aeshome-why {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
}
  .aeshome-why-header h2 {
    font-size: 22px !important;
  }
  .aeshome-why-eyebrow {
    font-size: inherit !important;
    margin-left: 8px !important;
  }
  .aeshome-why-banner {
    height: 180px !important;
    border-radius: 14px !important;
  }
  .aeshome-why-banner img {
    border-radius: 14px !important;
  }
  .aeshome-why-banner-overlay {
    padding: 12px 14px !important;
  }
  .aeshome-why-banner-badge {
    padding: 8px 12px !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .aeshome-why-banner-badge-icon {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    font-size: 14px !important;
  }
  .aeshome-why-banner-badge-text strong {
    font-size: 12.5px !important;
  }
  .aeshome-why-banner-badge-text span {
    font-size: 10.5px !important;
  }
  .aeshome-why-banner-stats {
    display: none !important;
  }
  .aeshome-why-grid-3col {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .aeshome-why-card-item {
    padding: 16px 16px 18px !important;
    border-radius: 12px !important;
  }
  .aeshome-why-card-item h3 {
    font-size: 15px !important;
  }
  .aeshome-why-card-item p {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
}




























.aescon-site-footer .aescon-form { padding: 16px 48px 17px; }
.aescon-site-footer .aescon-form-grid { gap: 19px 24px; }
.aescon-site-footer .aescon-field { min-height: 68px; }
.aescon-site-footer .aescon-field label { line-height: 17px; }
.aescon-site-footer .aescon-field input { height: 44px; min-height: 44px; }
.aescon-site-footer .aescon-field textarea { height: 98px; min-height: 98px; }
.aescon-site-footer .aescon-field-full textarea { height: 98px; min-height: 98px; }
.aescon-site-footer .aescon-submit { width: 144px; height: 41px; min-height: 41px; margin-top: 34px; padding: 6px 18px; }
.aescon-site-footer .aescon-submit svg { display: none; }





.aescon-site-footer { padding: 0; color: #172222; background: linear-gradient(135deg, #73d5e0, #22b8bd 64%, #9bd74f); border-top: 0; }

.aescon-footer-brand img { width: 205px; padding: 0; background: transparent; }
.aescon-footer-brand p { max-width: 660px; margin: 20px 0 0; color: #162728; }
.aescon-site-footer h2 { color: #111; }
.aescon-footer-contact { gap: 5px; }
.aescon-footer-contact address { color: #162728; }
.aescon-footer-contact p { margin: 3px 0 0; }
.aescon-site-footer a { color: #182627; }
.aescon-footer-bottom { display: block; margin: 0; padding: 10px 0; color: #4c5c1e; background: #bed72a; border: 0; text-align: center; font-size: 14px; }

@media (max-width: 1180px) {
  .aescon-header-inner { display: flex; }
  .aescon-primary-nav { display: none; }
  .aescon-language { margin-left: auto; }
  .aescon-menu-toggle { display: inline-flex; margin-left: 0; }
  .aeshome-service-content { padding-inline: 24px; }
  .aeshome-service-content h3 { font-size: 21px; }
  .aeshome-service-content p { font-size: 15px; }
}

@media (max-width: 900px) {
  .aeshome-stats-grid { gap: 25px; }
  .aeshome-stat { grid-template-columns: 58px 1fr; }
  .aeshome-stat img { width: 58px; height: 58px; }
  .aeshome-stat strong { font-size: 31px; }
  .aeshome-service-grid { grid-template-columns: 1fr; }
  .aeshome-service-card { height: 570px; }
  .aeshome-about-grid, .aeshome-why-grid { grid-template-columns: 1fr; }
  .aeshome-about-media { order: -1; margin: 0; }
  .aeshome-about-copy .aeshome-wordmark { margin-inline: 0; }
  
  .aeshome-why-grid > figure img { min-height: 380px; }
  
}

@media (max-width: 767px) {
  .aes-modern-service { height: auto !important; overflow: visible; }
  .aes-modern-hero { min-height: 650px; }
  .aes-modern-hero-copy { padding-top: 92px; }
  .aes-modern-hero-copy h1 { font-size: 32px; }
  .aes-modern-feature,
  .aes-modern-projects,
  .aes-modern-news { position: static; height: auto; overflow: visible; }
  .aes-modern-system-intro,
  .aes-modern-install-intro,
  .aes-modern-maintenance-split,
  .aes-modern-private-benefits,
  .aes-modern-private-copy { grid-template-columns: 1fr; height: auto; }
  .aes-modern-system-intro > div,
  .aes-modern-install-intro > div,
  .aes-modern-maintenance-split > div { padding: 38px 20px; }
  .aes-modern-install-intro > div { width: auto; transform: none; }
  .aes-modern-system-grid { grid-template-columns: 1fr; grid-template-rows: none; gap: 18px; padding: 60px 20px; }
  .aes-modern-maintenance-grid { grid-template-columns: 1fr; width: 100%; margin: 0; }
  .aes-modern-maintenance-grid article { height: 340px; }
  .aes-modern-maintenance-grid h2 { left: 28px; right: 28px; bottom: 42px; }
  .aes-modern-maintenance-split { margin-top: 0; }
  .aes-modern-maintenance-split img { height: 460px; }
  .aes-modern-maintenance-split > div { grid-template-columns: 1fr; }
  .aes-modern-private-benefits > div:first-child { height: 420px; }
  .aes-modern-private-benefits > div:last-child,
  .aes-modern-private-copy > div { padding: 42px 20px; }
  .aes-modern-private-copy { padding-top: 0; }
  .aes-modern-private-copy img { width: 100%; height: 460px; }
  .aes-modern-equipment-row { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 24px 15px; }
  .aes-modern-equipment-row img { width: 100%; height: auto; aspect-ratio: 222/249; }
  .aes-modern-install-projects { padding: 50px 15px; }
  .aes-modern-install-projects h2 { width: auto; margin-bottom: 24px; font-size: 30px; text-align: center; }
  .aes-modern-install-projects > div { grid-template-columns: 1fr; gap: 12px; }
  .aes-modern-install-projects img { width: 100%; height: auto; aspect-ratio: 403/334; }
  .aes-modern-install-copy section,
  .aes-modern-install-copy section:nth-child(even) { min-height: 0; padding: 55px 20px; }
  .aes-modern-install-copy section img { position: static; width: calc(100% + 40px); height: 360px; margin: -55px -20px 40px; }
  .aes-modern-projects { padding: 62px 15px; }
  .aes-modern-projects > h2 { width: auto; margin: 0 0 32px; font-size: 30px; text-align: center; }
  .aes-modern-projects > div,
  .aes-modern-solarforhousehold .aes-modern-projects > div { grid-template-columns: 1fr; width: auto; gap: 12px; }
  .aes-modern-projects img,
  .aes-modern-solarforhousehold .aes-modern-projects img { width: 100%; height: auto; aspect-ratio: 1; }
  .aes-modern-news { padding: 62px 15px; }
  .aes-modern-news > h2 { width: auto; margin-bottom: 32px; font-size: 30px; text-align: center; }
  .aes-modern-news > div { grid-template-columns: 1fr; width: auto; gap: 30px; }
  .aes-modern-news img,
  .aes-modern-private-ppa-structure .aes-modern-news img { width: 100%; height: auto; aspect-ratio: 292/165; }
  .aes-source-listing-category .aes-source-listing-hero { height: 430px; min-height: 430px; }
  .aes-source-listing-category .aes-source-listing-body { min-height: 430px; }
  .aes-source-partner-contact { height: auto; min-height: 0; }
  .aes-source-partner-contact figure img { height: auto; min-height: 0; aspect-ratio: 1.45 / 1; }
  .aes-source-partner-contact h2 { margin-left: 0; }
  .aes-source-partner-form { height: auto; padding: 70px 15px 80px; overflow: visible; }
  .aes-source-service-booking { position: static; display: block; width: max-content; margin: 30px auto 55px; }
  .aes-source-misc-our-partners .aes-source-partner-logos { min-height: 0; }

  .aescon-site-header { min-height: 73px; }
  .aescon-header-inner { width: auto; min-height: 69px; margin-inline: max(15px, env(safe-area-inset-left)) max(15px, env(safe-area-inset-right)); }
  .aescon-language { display: none; }
  .aescon-menu-toggle { margin-left: auto; }
  .aescon-brand .custom-logo { width: 174px; }
  .aeshome-section { padding-block: 36px; }
  .aeshome-hero { height: auto; min-height: 610px; align-items: flex-end; }
  .aeshome-hero-image { object-position: 57% center; }
  .aeshome-hero-shade { background: rgba(11,18,23,.55); }
  .aeshome-hero-inner { padding-top: 95px; padding-bottom: 48px; }
  .aeshome-hero-en { margin-bottom: 22px; font-size: 34px; line-height: 1.2; }
  .aeshome-hero h1 { margin-bottom: 11px; font-size: 22px; line-height: 1.45; }
  .aeshome-hero-inner > p:last-child { font-size: 15px; line-height: 1.66; }
  .aeshome-stats { padding-block: 22px; }
  .aeshome-stats-grid { grid-template-columns: 1fr; gap: 0; }
  .aeshome-stat { min-height: 118px; grid-template-columns: 64px 1fr; border-bottom: 1px solid #eee; }
  .aeshome-stat:last-child { border-bottom: 0; }
  .aeshome-stat img,
  .aeshome-stat:nth-child(2) img,
  .aeshome-stat:nth-child(3) img { width: 64px; height: 64px; transform: none; }
  .aeshome-stat h2 { font-size: 16px; }
  .aeshome-stat strong { margin-top: 0; font-size: 34px; }
  .aeshome-stat span { margin-top: 0; font-size: 16px; text-align: left; }
  .aeshome-centred-copy {
  max-width: 960px;
  width: 100%;
  margin: 0 auto clamp(20px, 2.5vw, 28px) auto;
  text-align: center;
  box-sizing: border-box;
}
  .aeshome-centred-copy .aeshome-wordmark { margin-inline: 0; width: 245px; }
  .aeshome-centred-copy h2, .aeshome-about h2, .aeshome-why h2, .aeshome-projects h2, .aeshome-news h2, 
  .aeshome-centred-copy p { font-size: 16px; }
  .aeshome-service-grid { gap: 15px; }
  .aeshome-service-card { height: 560px; }
  .aeshome-service-content { padding: 48px 22px 24px; }
  .aeshome-service-content h3 { margin-bottom: 28px; font-size: 22px; }
  .aeshome-service-content p { font-size: 15px; }
  .aeshome-about::before, .aeshome-about::after { height: 42px; }
  .aeshome-about-grid { gap: 28px; }
  .aeshome-about-copy .aeshome-wordmark { width: 245px; }
  
  
  .aeshome-why h2 { text-align: left; }
  .aeshome-why-grid { gap: 28px; }
  .aeshome-why-grid > figure img { min-height: 260px; aspect-ratio: 1.35 / 1; }
  .aeshome-benefits article { grid-template-columns: 28px 1fr; padding: 15px; }
  .aeshome-benefits h3 { font-size: 17px; }
  
  
  
  
  
  
  
  
  .aescon-footer-bottom { padding: 9px 15px; font-size: 12px; }

  .aeshome-centred-copy,
  .aeshome-about h2,
  .aeshome-why h2,
  .aeshome-projects h2,
  .aeshome-news h2,
  
}

/* Measured desktop parity with the current Thai Wix source (partner strip intentionally excluded). */
@media (min-width: 1024px) {
  .aes-modern-service { height: var(--aes-modern-main); }
  .aes-modern-hero { position: absolute; top: 0; left: 0; width: 100%; height: var(--aes-modern-hero); min-height: 0; }
  .aes-modern-feature { position: absolute; top: var(--aes-modern-hero); left: 0; width: 100%; height: calc(var(--aes-modern-news) - var(--aes-modern-hero)); overflow: hidden; }
  .aes-modern-private-ppa-structure .aes-modern-hero-copy,
  .aes-modern-equipment .aes-modern-hero-copy,
  .aes-modern-maintenance .aes-modern-hero-copy { width: 906px; padding-top: 91px; }
  .aes-modern-solar-system .aes-modern-hero-copy { padding-top: 132px; text-align: center; }
  .aes-modern-install-solar-rooftop .aes-modern-hero-copy { width: 980px; padding-top: 75px; }
  .aes-modern-install-solar-rooftop .aes-modern-hero-copy h1 { width: 580px; font-size: 30px; font-weight: 400; line-height: 42px; }
  .aes-source-service-solarforresidentialprojects { height: 2986px; overflow: hidden; }
  .aes-source-service-solarforindustrialuse { height: 1642px; overflow: hidden; }

  .aes-source-service-showcase.is-legacy {
    height: 416px;
    padding: 0;
  }
  .aes-source-service-showcase.is-legacy > div {
    width: 1200px;
  }
  .aes-source-service-showcase.is-legacy > div > div {
    grid-template-columns: repeat(4, 286px);
    gap: 14px;
    transform: translateY(-47px);
  }
  .aes-source-service-showcase.is-legacy img {
    width: 286px;
    height: 335px;
    aspect-ratio: auto;
  }

  
  


  
  
  
  
  

  
  
  
}
\n\n

/* ==========================================================================
   AESOVATION HUMAN-CRAFTED LUXURY EDITORIAL HEADER ARCHITECTURE
   ========================================================================== */
.aes-site-header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
  min-height: 78px;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid rgba(23, 22, 39, 0.07);
  box-shadow: 0 4px 20px -2px rgba(35, 28, 70, 0.03);
}

/* Strictly bound inside .aescon-container (Content Grid Red Lines) */
.aes-header-container {
  width: min(calc(100% - (var(--aes-gutter) * 2)), 1160px) !important;
  max-width: 1160px !important;
  min-height: 78px;
  margin-inline: auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(24px, 4vw, 48px);
}

/* Left Brand Logo */
.aes-brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  margin: 0 !important;
  padding: 0 !important;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.aes-brand:hover {
  opacity: 0.92;
  transform: translateY(-0.5px);
}
.aes-logo-img {
  width: auto;
  height: 44px;
  max-height: 44px;
  object-fit: contain;
  display: block;
}

/* Right Primary Navigation (5 Master Tabs) */
.aes-primary-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 78px;
  margin-left: auto;
  margin-right: auto;
}

.aes-nav-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
}

.aes-nav-item {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.aes-nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 44px;
  padding: 0 14px;
  border-radius: 8px;
  font-family: var(--aes-font);
  font-size: 15px;
  font-weight: 600;
  color: var(--aes-ink);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.18s ease, background-color 0.18s ease;
}

.aes-nav-link:hover,
.aes-nav-item:hover > .aes-nav-link {
  color: var(--aes-purple);
  background-color: rgba(73, 50, 143, 0.05);
}

.aes-dropdown-arrow {
  color: var(--aes-muted);
  transition: transform 0.2s ease, color 0.2s ease;
}
.aes-nav-item:hover > .aes-nav-link .aes-dropdown-arrow {
  transform: rotate(180deg);
  color: var(--aes-purple);
}

/* Subtle Organic Underline (Active + Hover) */
.aes-nav-link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 14px;
  right: 14px;
  height: 2.5px;
  background: linear-gradient(90deg, var(--aes-lime) 0%, var(--aes-cyan) 100%);
  border-radius: 3px 3px 0 0;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s ease;
  opacity: 0;
}

.aes-nav-item:hover > .aes-nav-link::after,
.aes-nav-link:hover::after,
.aes-nav-link.is-current::after,
.current-menu-item > .aes-nav-link::after {
  transform: scaleX(1);
  opacity: 1;
}

/* Shared Dropdown Frame (Clean Modern Elevated Glass) */
.aes-dropdown-menu {
  position: absolute;
  top: calc(100% + 2px);
  background: #ffffff;
  border: 1px solid rgba(73, 50, 143, 0.08);
  border-radius: 14px;
  box-shadow: 0 24px 60px -12px rgba(23, 22, 39, 0.12), 0 6px 18px -2px rgba(23, 22, 39, 0.03);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s;
  z-index: 1100;
}

.aes-dropdown-menu::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
}

/* 1. About Us Editorial Dropdown Panel */
.aes-about-dropdown-panel {
  left: 0;
  transform: translateY(6px);
  width: 320px;
  padding: 10px;
}
.aes-has-dropdown:hover > .aes-about-dropdown-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.aes-about-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.aes-about-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.18s ease;
}
.aes-about-item:hover {
  background: #faf8fe;
}
.aes-about-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f6f3fc;
  color: var(--aes-purple);
  border-radius: 8px;
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.aes-about-item:hover .aes-about-icon {
  background: var(--aes-purple);
  color: #ffffff;
  transform: scale(1.05);
}
.aes-about-title {
  display: block;
  font-family: var(--aes-font);
  font-size: 14.5px;
  font-weight: 700;
  color: var(--aes-ink);
  line-height: 1.35;
}
.aes-about-desc {
  display: block;
  font-family: var(--aes-font);
  font-size: 12px;
  color: var(--aes-muted);
  margin-top: 2px;
  line-height: 1.4;
}

/* 2. Services Pure 6-Service Grid Panel (Clean Luxury) */
.aes-services-megamenu-panel {
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  width: 590px;
  max-width: calc(100vw - 40px);
  padding: 12px;
}
.aes-has-dropdown:hover > .aes-services-megamenu-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.aes-mega-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  background: #ffffff;
}
.aes-service-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid transparent;
  text-decoration: none;
  transition: all 0.18s ease;
}
.aes-service-card:hover {
  background: #faf8fe;
  border-color: #ece8f6;
  transform: translateX(2px);
}
.aes-service-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f6f3fc;
  color: var(--aes-purple);
  border-radius: 8px;
  flex-shrink: 0;
  transition: all 0.18s ease;
}
.aes-service-card:hover .aes-service-icon {
  background: var(--aes-purple);
  color: #ffffff;
  transform: scale(1.05);
}
.aes-service-name {
  display: block;
  font-family: var(--aes-font);
  font-size: 14px;
  font-weight: 700;
  color: var(--aes-ink);
  line-height: 1.35;
}
.aes-service-hint {
  display: block;
  font-family: var(--aes-font);
  font-size: 11.5px;
  color: var(--aes-muted);
  margin-top: 2px;
  line-height: 1.4;
}

/* ==========================================================================
   LUXURY CENTERED TABLET & MOBILE RESPONSIVE NAVIGATION
   ========================================================================== */
.aes-menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: #f7f4fc;
  border: 1px solid rgba(73, 50, 143, 0.12);
  border-radius: 10px;
  cursor: pointer;
  gap: 5px;
  transition: all 0.2s ease;
}
.aes-menu-toggle:hover {
  background: #f1ecf9;
  border-color: rgba(73, 50, 143, 0.25);
}
.aes-hamburger-bar {
  width: 20px;
  height: 2px;
  background: var(--aes-purple);
  border-radius: 2px;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Off-Canvas Mobile Drawer */
.aes-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 2000;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0.3s ease;
}
.aes-mobile-drawer[data-open="true"],
.aes-mobile-drawer.is-open,
body.aes-menu-open .aes-mobile-drawer {
  visibility: visible;
  pointer-events: auto;
}

.aes-drawer-overlay {
  position: absolute;
  inset: 0;
  background: rgba(23, 22, 39, 0.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.aes-mobile-drawer[data-open="true"] .aes-drawer-overlay,
.aes-mobile-drawer.is-open .aes-drawer-overlay,
body.aes-menu-open .aes-drawer-overlay {
  opacity: 1;
}

.aes-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(400px, 90vw);
  background: #ffffff;
  box-shadow: -12px 0 40px rgba(23, 22, 39, 0.16);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 24px;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
}
.aes-mobile-drawer[data-open="true"] .aes-drawer-panel,
.aes-mobile-drawer.is-open .aes-drawer-panel,
body.aes-menu-open .aes-drawer-panel {
  transform: translateX(0);
}

.aes-drawer-header {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center; /* Center logo */
  padding-bottom: 22px;
  border-bottom: 1px solid #f0edf7;
}
.aes-drawer-logo {
  height: 38px;
  width: auto;
  object-fit: contain;
  margin-inline: auto;
}
.aes-drawer-close {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f7f4fc;
  border: 1px solid rgba(73, 50, 143, 0.12);
  border-radius: 10px;
  cursor: pointer;
  color: var(--aes-purple);
  transition: all 0.2s ease;
}
.aes-drawer-close:hover {
  background: var(--aes-purple);
  color: #ffffff;
  transform: translateY(-50%) rotate(90deg);
}

.aes-mobile-nav {
  margin-top: 18px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 auto;
}
.aes-mobile-nav-list {
  width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.aes-mobile-nav-list > li {
  width: 100%;
  text-align: center;
  border-bottom: 1px solid #f4f1fa;
}
.aes-mobile-link,
.aes-mobile-sub-toggle {
  display: flex;
  align-items: center;
  justify-content: center; /* Perfectly Centered */
  gap: 8px;
  width: 100%;
  padding: 15px 12px;
  font-family: var(--aes-font);
  color: var(--aes-ink);
  font-size: 16.5px;
  font-weight: 700;
  text-decoration: none;
  background: none;
  border: none;
  text-align: center;
  cursor: pointer;
  border-radius: 10px;
  transition: color 0.18s ease, background-color 0.18s ease;
}
.aes-mobile-link:hover,
.aes-mobile-sub-toggle:hover {
  color: var(--aes-purple);
  background-color: #faf8fe;
}

.aes-sub-arrow {
  color: var(--aes-muted);
  transition: transform 0.22s ease, color 0.22s ease;
}
.aes-mobile-has-sub.is-expanded .aes-sub-arrow {
  transform: rotate(180deg);
  color: var(--aes-purple);
}

/* Accordion Centered Sub-list */
.aes-mobile-sub-list {
  display: none;
  list-style: none;
  margin: 4px 0 14px;
  padding: 8px;
  border-left: none;
  background: #f8f6fd;
  border-radius: 12px;
  width: 100%;
}
.aes-mobile-has-sub.is-expanded .aes-mobile-sub-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.aes-mobile-sub-list li {
  width: 100%;
  text-align: center;
}
.aes-mobile-sub-list li a {
  display: block;
  width: 100%;
  padding: 10px 14px;
  font-family: var(--aes-font);
  color: var(--aes-body);
  font-size: 14.5px;
  font-weight: 600;
  text-align: center; /* Centered */
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.18s ease;
}
.aes-mobile-sub-list li a:hover {
  background: #ffffff;
  color: var(--aes-purple);
  box-shadow: 0 2px 8px rgba(73, 50, 143, 0.08);
}

.aes-mobile-footer-actions {
  width: 100%;
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  justify-content: center;
}
.aes-mobile-phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 320px;
  background: var(--aes-purple);
  border: 1px solid var(--aes-purple);
  color: #ffffff;
  padding: 14px 20px;
  border-radius: 12px;
  font-family: var(--aes-font);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(73, 50, 143, 0.22);
  transition: all 0.2s ease;
}
.aes-mobile-phone:hover {
  background: var(--aes-purple-dark);
  transform: translateY(-1px);
}

@media (max-width: 1140px) {
  .aes-header-container {
    display: flex !important;
    justify-content: space-between !important;
    min-height: 68px !important;
  }
  .aes-site-header {
    min-height: 68px !important;
  }
  .aes-primary-nav { display: none !important; }
  .aes-menu-toggle { display: flex !important; }
  .aes-logo-img { height: 38px !important; }
}

@media (max-width: 540px) {
  .aes-header-container {
    min-height: 64px !important;
  }
  .aes-site-header {
    min-height: 64px !important;
  }
  .aes-logo-img { height: 34px !important; }
  .aes-drawer-panel {
    width: 100vw !important;
    padding: 24px 20px !important;
  }
}

/* ==========================================================================
   6. CLIENTS & PARTNERS INFINITE MARQUEE SLIDER (PURE CSS 60FPS)
   ========================================================================== */
.aeshome-clients {
  position: relative;
  background: #ffffff;
  padding-block: clamp(36px, 3.2vw, 44px);
  clear: both;
  overflow: hidden;
}

.aeshome-clients-header {
  text-align: center;
  max-width: 820px;
  margin: 0 auto clamp(24px, 2.5vw, 32px) auto;
}

.aeshome-clients-header h2 {
  font-family: var(--aes-font-head, var(--aes-font));
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 800;
  color: #121020;
  margin: 0 0 8px 0;
  line-height: 1.35;
  text-align: center;
}

.aeshome-clients-eyebrow {
  color: var(--aes-accent, #00c2ff);
  font-family: 'Syne', sans-serif;
  letter-spacing: 0.5px;
}

.aeshome-clients-header p {
  font-family: var(--aes-font);
  font-size: clamp(14px, 1.2vw, 15px);
  color: #555163;
  margin: 0 auto;
  line-height: 1.6;
  text-align: left;
  display: table;
}


/* MARQUEE CONTAINER WITH SOFT GRADIENT FADE EDGES */
.aeshome-marquee-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  display: flex;
  margin-bottom: 16px;
  mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}

.aeshome-marquee-wrap:last-child {
  margin-bottom: 0;
}

.aeshome-marquee-track {
  display: flex;
  width: max-content;
  will-change: transform;
}

.marquee-left {
  animation: aes-scroll-left 32s linear infinite;
}

.marquee-right {
  animation: aes-scroll-right 30s linear infinite;
}

.aeshome-marquee-wrap:hover .aeshome-marquee-track {
  animation-play-state: paused;
}

.aeshome-marquee-group {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-right: 20px;
}

/* LOGO CARD */
.aeshome-logo-card {
  width: 190px;
  height: 84px;
  background: #fbfafc;
  border: 1px solid #ede8f5;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  box-sizing: border-box;
  transition: all 0.26s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 10px rgba(18, 16, 32, 0.02);
  flex-shrink: 0;
}

.aeshome-logo-card img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(15%) opacity(0.9);
  transition: all 0.26s ease;
}

.aeshome-logo-card:hover {
  background: #ffffff;
  border-color: #cfc4e3;
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(73, 50, 143, 0.08);
}

.aeshome-logo-card:hover img {
  filter: grayscale(0%) opacity(1);
  transform: scale(1.04);
}

@keyframes aes-scroll-left {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes aes-scroll-right {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}

/* RESPONSIVE MARQUEE */
@media (max-width: 1023px) {
  .aeshome-clients {
    padding-block: 28px !important;
  }
  .aeshome-logo-card {
    width: 160px !important;
    height: 74px !important;
    padding: 8px 14px !important;
  }
  .aeshome-marquee-group {
    gap: 14px !important;
    padding-right: 14px !important;
  }
  .marquee-left {
    animation-duration: 26s !important;
  }
  .marquee-right {
    animation-duration: 24s !important;
  }
}

.bs-viewport-tablet .aeshome-clients {
  padding-block: 28px !important;
}
.bs-viewport-tablet .aeshome-logo-card {
  width: 160px !important;
  height: 74px !important;
  padding: 8px 14px !important;
}
.bs-viewport-tablet .aeshome-marquee-group {
  gap: 14px !important;
  padding-right: 14px !important;
}

@media (max-width: 767px) {
  .aeshome-clients {
    padding-block: 20px !important;
  }
  .aeshome-clients-header {
    margin-bottom: 16px !important;
  }
  .aeshome-clients-header h2 {
    font-size: 21px !important;
  }
  .aeshome-clients-header p {
    font-size: 13px !important;
  }
  .aeshome-logo-card {
    width: 135px !important;
    height: 64px !important;
    padding: 6px 10px !important;
    border-radius: 10px !important;
  }
  .aeshome-marquee-group {
    gap: 10px !important;
    padding-right: 10px !important;
  }
  .aeshome-marquee-wrap {
    margin-bottom: 10px !important;
  }
}

.bs-viewport-mobile .aeshome-clients {
  padding-block: 20px !important;
}
.bs-viewport-mobile .aeshome-clients-header {
  margin-bottom: 16px !important;
}
.bs-viewport-mobile .aeshome-clients-header h2 {
  font-size: 21px !important;
}
.bs-viewport-mobile .aeshome-clients-header p {
  font-size: 13px !important;
}
.bs-viewport-mobile .aeshome-logo-card {
  width: 135px !important;
  height: 64px !important;
  padding: 6px 10px !important;
  border-radius: 10px !important;
}
.bs-viewport-mobile .aeshome-marquee-group {
  gap: 10px !important;
  padding-right: 10px !important;
}
.bs-viewport-mobile .aeshome-marquee-wrap {
  margin-bottom: 10px !important;
}

/* ==========================================================================
   7. OUR PROJECTS SECTION (CLEAN MINIMAL LUXURY ENGINEERING SHOWCASE)
   ========================================================================== */
.aeshome-projects {
  position: relative;
  background: #ffffff;
  padding-block: clamp(40px, 4vw, 56px);
  clear: both;
}

.aeshome-projects-header {
  text-align: center;
  max-width: 840px;
  margin: 0 auto clamp(28px, 3vw, 38px) auto;
}

.aeshome-projects-header h2 {
  font-family: var(--aes-font-head, var(--aes-font));
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 800;
  color: #121020;
  margin: 0 0 10px 0;
  line-height: 1.3;
  text-align: center;
}

.aeshome-projects-eyebrow {
  color: var(--aes-accent, #00c2ff);
  font-family: 'Syne', sans-serif;
  letter-spacing: 0.5px;
  margin-left: 10px;
}

.aeshome-projects-header p {
  font-family: var(--aes-font);
  font-size: clamp(14px, 1.2vw, 15px);
  color: #555163;
  margin: 0 auto;
  line-height: 1.65;
  text-align: left;
  display: table;
}

/* DESKTOP GRID (1140px+) */
.aeshome-projects-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.2vw, 26px);
  margin-bottom: clamp(32px, 3.5vw, 42px);
}

.aeshome-project-card {
  background: #ffffff;
  border: 1px solid #ede8f5;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 18px rgba(18, 16, 32, 0.04);
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  height: 100%;
}

.aeshome-project-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px rgba(73, 50, 143, 0.11);
  border-color: #cfc2e6;
}

.aeshome-project-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #121020;
}

.aeshome-project-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.aeshome-project-card:hover .aeshome-project-media img {
  transform: scale(1.05);
}

/* SINGLE MINIMAL PILL BADGE */
.aeshome-project-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(18, 16, 32, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff;
  font-family: var(--aes-font);
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  letter-spacing: 0.2px;
  z-index: 2;
}

/* CARD BODY */
.aeshome-project-body {
  padding: 22px 20px 24px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  text-align: left;
  background: #ffffff;
}

.aeshome-project-header {
  margin-bottom: 8px;
}

.aeshome-project-header h3 {
  margin: 0 0 4px 0;
  color: #121020;
  font-family: var(--aes-font);
  font-size: 17.5px;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
}

.aeshome-project-card:hover .aeshome-project-header h3 {
  color: var(--aes-purple);
}

.aeshome-project-location {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--aes-font);
  font-size: 12.5px;
  font-weight: 650;
  color: var(--aes-purple);
}

.aeshome-project-desc {
  margin: 0;
  color: #555163;
  font-family: var(--aes-font);
  font-size: 13.5px;
  line-height: 1.65;
  text-align: left;
}

/* BOTTOM ACTION BUTTON */
.aeshome-projects-action {
  display: flex;
  justify-content: center;
}

.aeshome-projects-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 34px;
  color: #ffffff !important;
  background: var(--aes-purple);
  border: 1px solid var(--aes-purple);
  border-radius: 8px;
  font-family: var(--aes-font);
  font-size: 14.5px;
  font-weight: 750;
  text-decoration: none;
  transition: all 0.24s ease;
  box-shadow: 0 4px 16px rgba(73, 50, 143, 0.2);
}

.aeshome-projects-btn:hover {
  color: #ffffff !important;
  background: var(--aes-purple-dark);
  border-color: var(--aes-purple-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(73, 50, 143, 0.3);
}

.aeshome-projects-btn::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 2px solid #ffffff;
  border-top: 2px solid #ffffff;
  transform: rotate(45deg);
  margin-left: 4px;
  margin-bottom: 2px;
  transition: transform 0.2s ease;
}

.aeshome-projects-btn:hover::after {
  transform: rotate(45deg) translate(2px, -2px);
}

/* TABLET RESPONSIVE (768px - 1139px) & BUILDER TABLET VIEWPORT */
@media (max-width: 1139px) {
  .aeshome-projects {
    padding-block: 36px !important;
  }
  .aeshome-projects-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    max-width: 620px !important;
    margin-inline: auto !important;
    margin-bottom: 28px !important;
  }
  .aeshome-project-card {
    height: auto !important;
    border-radius: 16px !important;
  }
  .aeshome-project-media {
    aspect-ratio: 16 / 9 !important;
  }
  .aeshome-project-body {
    padding: 20px 18px 22px !important;
  }
  .aeshome-project-header h3 {
    font-size: 18px !important;
    line-height: 1.35 !important;
  }
}

.bs-viewport-tablet .aeshome-projects {
  padding-block: 36px !important;
}
.bs-viewport-tablet .aeshome-projects-grid {
  grid-template-columns: 1fr !important;
  gap: 22px !important;
  max-width: 620px !important;
  margin-inline: auto !important;
  margin-bottom: 28px !important;
}
.bs-viewport-tablet .aeshome-project-card {
  height: auto !important;
  border-radius: 16px !important;
}
.bs-viewport-tablet .aeshome-project-media {
  aspect-ratio: 16 / 9 !important;
}
.bs-viewport-tablet .aeshome-project-body {
  padding: 20px 18px 22px !important;
}
.bs-viewport-tablet .aeshome-project-header h3 {
  font-size: 18px !important;
  line-height: 1.35 !important;
}

/* MOBILE RESPONSIVE (max-width: 767px) & BUILDER MOBILE VIEWPORT */
@media (max-width: 767px) {
  .aeshome-projects {
    padding-block: 26px !important;
  }
  .aeshome-projects-header {
    margin-bottom: 18px !important;
    padding: 0 4px !important;
  }
  .aeshome-projects-header h2 {
    font-size: 20px !important;
    line-height: 1.36 !important;
    margin-bottom: 8px !important;
  }
  .aeshome-projects-header p {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
  .aeshome-projects-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 100% !important;
    margin-bottom: 22px !important;
  }
  .aeshome-project-card {
    border-radius: 14px !important;
  }
  .aeshome-project-media {
    aspect-ratio: 16 / 9 !important;
  }
  .aeshome-project-tag {
    top: 10px !important;
    left: 10px !important;
    font-size: 11px !important;
    padding: 3px 10px !important;
  }
  .aeshome-project-body {
    padding: 16px 15px 18px !important;
  }
  .aeshome-project-header {
    margin-bottom: 6px !important;
  }
  .aeshome-project-header h3 {
    font-size: 16px !important;
    line-height: 1.35 !important;
    margin-bottom: 3px !important;
  }
  .aeshome-project-location {
    font-size: 12px !important;
  }
  .aeshome-project-desc {
    font-size: 12.5px !important;
    line-height: 1.58 !important;
  }
  .aeshome-projects-btn {
    width: 100% !important;
    max-width: 320px !important;
    font-size: 14px !important;
    padding: 11px 24px !important;
  }
}

.bs-viewport-mobile .aeshome-projects {
  padding-block: 26px !important;
}
.bs-viewport-mobile .aeshome-projects-header {
  margin-bottom: 18px !important;
  padding: 0 4px !important;
}
.bs-viewport-mobile .aeshome-projects-header h2 {
  font-size: 20px !important;
  line-height: 1.36 !important;
  margin-bottom: 8px !important;
}
.bs-viewport-mobile .aeshome-projects-header p {
  font-size: 13px !important;
  line-height: 1.6 !important;
}
.bs-viewport-mobile .aeshome-projects-grid {
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  max-width: 100% !important;
  margin-bottom: 22px !important;
}
.bs-viewport-mobile .aeshome-project-card {
  border-radius: 14px !important;
}
.bs-viewport-mobile .aeshome-project-media {
  aspect-ratio: 16 / 9 !important;
}
.bs-viewport-mobile .aeshome-project-tag {
  top: 10px !important;
  left: 10px !important;
  font-size: 11px !important;
  padding: 3px 10px !important;
}
.bs-viewport-mobile .aeshome-project-body {
  padding: 16px 15px 18px !important;
}
.bs-viewport-mobile .aeshome-project-header {
  margin-bottom: 6px !important;
}
.bs-viewport-mobile .aeshome-project-header h3 {
  font-size: 16px !important;
  line-height: 1.35 !important;
  margin-bottom: 3px !important;
}
.bs-viewport-mobile .aeshome-project-location {
  font-size: 12px !important;
}
.bs-viewport-mobile .aeshome-project-desc {
  font-size: 12.5px !important;
  line-height: 1.58 !important;
}
.bs-viewport-mobile .aeshome-projects-btn {
  width: 100% !important;
  max-width: 320px !important;
  font-size: 14px !important;
  padding: 11px 24px !important;
}

/* =========================================================================
   AESOVATION AUTHENTIC CONTACT PAGE STYLING
   ========================================================================= */

.aes-source-contact {
  background-color: #ffffff;
  color: #121020;
  font-family: "Noto Sans Thai", "Montserrat", Tahoma, Arial, sans-serif;
  width: 100%;
}

.aes-source-contact-hero {
  width: 100%;
  line-height: 0;
  overflow: hidden;
  background: #121020;
}

.aes-source-contact-hero img {
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   AESOVATION Contact Page (Authoritative Brandstorm Builder CSS)
   ========================================================================== */

.aes-source-contact,
.aes-contact-builder-page {
  color: #121020;
  font-family: "Noto Sans Thai", "Montserrat", Tahoma, Arial, sans-serif;
  width: 100%;
  box-sizing: border-box;
}

.aes-source-contact-hero {
  width: 100%;
  line-height: 0;
  overflow: hidden;
  background: #121020;
  box-sizing: border-box;
}

.aes-source-contact-hero .aes-hero-banner-wrap {
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
  box-sizing: border-box;
}

.aes-source-contact-hero img {
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  display: block;
  box-sizing: border-box;
}

.aes-source-contact-main {
  width: 100%;
  min-height: 0;
  padding: 60px 20px 96px;
  background: #f8fafc;
  box-sizing: border-box;
}

.aes-source-contact-inner {
  width: 100%;
  min-width: 0;
  max-width: 1180px;
  margin: 0 auto;
  box-sizing: border-box;
}

.aes-contact-heading-wrap {
  width: 100%;
  text-align: center;
  margin-bottom: 48px;
  box-sizing: border-box;
}

.aes-source-contact-title,
.aes-source-contact-inner h1 {
  width: 100%;
  max-width: 100%;
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 850;
  color: #121020;
  text-align: center;
  margin: 0 auto;
  line-height: 1.35;
  letter-spacing: -0.01em;
  word-break: break-word;
  overflow-wrap: break-word;
  box-sizing: border-box;
}

.aes-source-contact-layout {
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Left Column: Contact Details */
.aes-source-contact-details {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 32px 28px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.aes-detail-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.aes-detail-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.aes-detail-item img {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  margin-top: 2px;
  object-fit: contain;
}

.aes-detail-text {
  flex: 1;
  min-width: 0;
  word-break: break-word;
  overflow-wrap: break-word;
}

.aes-detail-text strong {
  display: block;
  font-size: 13px;
  font-weight: 750;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

.aes-detail-text p {
  font-size: 15px;
  color: #1e293b;
  font-weight: 600;
  line-height: 1.55;
  margin: 0 0 4px;
  word-break: break-word;
}

.aes-detail-text span {
  font-size: 12.5px;
  color: #64748b;
  display: block;
}

.aes-phone-link {
  font-size: 18px !important;
  color: #49328f !important;
  font-weight: 800 !important;
  font-family: "Montserrat", sans-serif;
  text-decoration: none;
}

.aes-email-link {
  color: #1e293b !important;
  font-weight: 600;
  text-decoration: none;
  word-break: break-all;
}

.aes-email-link:hover, .aes-phone-link:hover {
  color: #18aac4 !important;
}

.aes-map-link {
  font-size: 13px;
  color: #18aac4;
  text-decoration: none;
  font-weight: 600;
  display: inline-block;
  margin-top: 2px;
}

.aes-map-link:hover {
  text-decoration: underline;
}

/* Right Column: Form Wrap */
.aes-source-contact-form-wrap {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 36px 36px 40px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.aes-form-header {
  margin-bottom: 28px;
  text-align: center;
  box-sizing: border-box;
}

.aes-form-header h2,
.aes-form-heading {
  font-size: 22px;
  font-weight: 800;
  color: #121020;
  margin: 0 auto 8px;
  text-align: center;
  line-height: 1.35;
  width: 100%;
  word-break: break-word;
}

.aes-form-header p,
.aes-form-lead {
  font-size: 14.5px;
  color: #64748b;
  margin: 0 auto;
  line-height: 1.6;
  text-align: center;
  max-width: 580px;
}

.aes-source-contact-form {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.aes-source-contact-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.aes-field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.aes-field-group.is-tall,
.aes-field-group.is-full {
  grid-column: 1 / -1;
}

.aes-field-group label {
  font-size: 13.5px;
  font-weight: 700;
  color: #1e293b;
}

.aes-field-group label .req {
  color: #ef4444;
}

.aes-field-group input,
.aes-field-group textarea {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 11px 14px;
  font-size: 16px;
  font-family: inherit;
  color: #0f172a;
  background: #f8fafc;
  outline: none;
  box-sizing: border-box;
  transition: all 0.15s ease;
}

.aes-field-group textarea {
  min-height: 80px;
  resize: vertical;
}

.aes-field-group input:focus,
.aes-field-group textarea:focus {
  border-color: #49328f;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(73, 50, 143, 0.12);
}

.aes-form-action {
  display: flex;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}

.aes-submit-btn {
  background: #49328f;
  color: #ffffff;
  border: none;
  border-radius: 8px;
  padding: 13px 40px;
  min-height: 48px;
  min-width: 160px;
  font-size: 16px;
  font-weight: 750;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s ease;
  box-shadow: 0 4px 14px rgba(73, 50, 143, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.aes-submit-btn:hover {
  background: #392575;
  transform: translateY(-1px);
}

.aes-submit-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* Success Card */
.aes-success-card {
  padding: 20px 0;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

.aes-success-badge {
  width: 52px;
  height: 52px;
  background: #e8f8ed;
  color: #15803d;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  font-weight: 900;
  margin: 0 auto 12px;
}

.aes-success-title {
  font-size: 21px;
  font-weight: 850;
  color: #121020;
  margin: 0 auto 6px;
  text-align: center;
}

.aes-ref-chip {
  display: inline-block;
  background: #f1eff8;
  color: #49328f;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-weight: 750;
  padding: 4px 12px;
  border-radius: 4px;
  margin-bottom: 12px;
}

.aes-success-desc {
  font-size: 14px;
  color: #4a4658;
  line-height: 1.65;
  max-width: 540px;
  margin: 0 auto 18px;
  text-align: center;
}

.aes-success-actions {
  display: flex;
  justify-content: center;
  width: 100%;
}

.aes-btn-line {
  background: #06c755;
  color: #ffffff;
  text-decoration: none;
  padding: 12px 24px;
  min-height: 44px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 750;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.15s ease;
  box-sizing: border-box;
}

.aes-btn-line:hover { background: #05b34c; }

/* Responsive Media Queries */
@media (max-width: 1024px) {
  .aes-source-contact-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 768px) {
  .aes-source-contact-main {
    padding: 40px 15px 72px;
  }
  .aes-source-contact-inner {
    width: 100%;
    max-width: 100%;
  }
  .aes-contact-heading-wrap {
    margin-bottom: 32px;
  }
  .aes-source-contact-title,
  .aes-source-contact-inner h1 {
    font-size: 24px;
  }
  .aes-source-contact-details {
    padding: 24px 20px;
  }
  .aes-source-contact-form-wrap {
    padding: 28px 20px 32px;
  }
  .aes-source-contact-fields {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .aes-submit-btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .aes-source-contact-main {
    padding: 32px 15px 56px;
  }
  .aes-source-contact-inner {
    width: 100%;
    max-width: 100%;
  }
  .aes-source-contact-title,
  .aes-source-contact-inner h1 {
    font-size: 21px;
    line-height: 1.4;
  }
  .aes-form-header h2,
  .aes-form-heading {
    font-size: 19px;
  }
  .aes-source-contact-details {
    padding: 20px 15px;
  }
  .aes-source-contact-form-wrap {
    padding: 22px 15px 26px;
  }
  .aes-btn-line {
    width: 100%;
  }
}

