.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 19px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-weight:900;transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease),color .28s var(--ease),border-color .28s var(--ease);white-space:nowrap}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-120%);transition:transform .65s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(5,6,7,.12)}
.btn:hover::before{transform:translateX(120%)}
.btn--primary{background:linear-gradient(135deg,var(--color-orange),#ffb24a);color:#1d1203;box-shadow:0 16px 42px rgba(245,154,35,.24)}
.btn--primary:hover{box-shadow:0 22px 58px rgba(245,154,35,.34)}
.btn--secondary,.btn--ghost{background:rgba(255,255,255,.82);color:var(--color-text);border-color:var(--color-line)}
.btn--dark{background:var(--color-graphite);color:#fff}
.icon-button{width:44px;height:44px;border:1px solid var(--color-line);border-radius:999px;background:#fff;display:grid;gap:4px;place-content:center}
.icon-button span{width:21px;height:2px;background:var(--color-text);border-radius:999px}
.section-heading{max-width:790px;margin-bottom:38px}
.section-heading--center{text-align:center;margin-inline:auto}
.section-heading--center .eyebrow{justify-content:center}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card-grid--4{grid-template-columns:repeat(4,1fr)}
.card{position:relative;background:rgba(255,255,255,.92);border:1px solid var(--color-line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .32s var(--ease),box-shadow .32s var(--ease),border-color .32s var(--ease),background .32s var(--ease);will-change:transform}
.card::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(245,154,35,.14),transparent 34%);opacity:0;transition:opacity .28s var(--ease);pointer-events:none}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-premium);border-color:rgba(245,154,35,.42)}
.card:hover::after{opacity:1}
.card img{width:100%;height:230px;object-fit:cover;transition:transform .7s var(--ease),filter .7s var(--ease)}
.card:hover img{transform:scale(1.06);filter:saturate(1.05) contrast(1.04)}
.card__body{padding:22px}
.card__tag{display:inline-flex;margin-bottom:10px;font-size:.72rem;font-weight:900;color:var(--color-green);text-transform:uppercase;letter-spacing:.07em}
.card a{font-weight:900;color:var(--color-orange-dark);text-decoration:none}
.card__logo{height:96px;display:grid;place-items:center;padding:18px;background:linear-gradient(180deg,#fff,var(--color-cream))}
.card__logo img{height:54px;width:auto;object-fit:contain;background:transparent}
.stat-card{position:relative;padding:28px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);background:rgba(255,255,255,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.stat-card strong{display:block;font-family:var(--font-title);font-size:clamp(2.3rem,5vw,4.2rem);color:var(--color-orange);line-height:1}
.stat-card span{display:block;font-weight:900;color:#fff}
.stat-card p{color:rgba(255,255,255,.72)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.page-hero{position:relative;padding:136px 0 78px;background:radial-gradient(circle at 78% 18%,rgba(245,154,35,.18),transparent 30%),linear-gradient(120deg,var(--color-offwhite),var(--color-cream));overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(124,135,148,.12) 1px,transparent 1px),linear-gradient(0deg,rgba(124,135,148,.10) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(90deg,#000,transparent 72%);opacity:.55}
.page-hero__inner{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:46px;align-items:center}
.page-hero__inner>div:first-child>p:last-child{font-size:1.12rem;max-width:760px}
.page-hero__media img,.split-feature__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-premium);height:430px;object-fit:cover}
[data-parallax-media]{overflow:hidden}
[data-parallax-media] img{transform:scale(1.06);transition:transform .18s linear;will-change:transform}
.breadcrumbs{display:flex;gap:10px;color:var(--color-muted);font-size:.9rem;margin-bottom:18px}
.breadcrumbs a{text-decoration:none;font-weight:800;color:var(--color-orange-dark)}
.home-hero{min-height:100vh;position:relative;display:grid;align-items:center;overflow:hidden;background:var(--color-cream);padding:118px 0 82px}
.home-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(124,135,148,.12) 1px,transparent 1px),linear-gradient(0deg,rgba(124,135,148,.1) 1px,transparent 1px);background-size:64px 64px;opacity:.38;z-index:2}
.home-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;filter:saturate(1.04) contrast(1.03)}
.home-hero__tech-fallback{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),radial-gradient(circle at 26% 38%,rgba(245,154,35,.32),transparent 24%),radial-gradient(circle at 72% 62%,rgba(255,255,255,.18),transparent 28%);background-size:72px 72px,72px 72px,auto,auto;mask-image:linear-gradient(90deg,#000,transparent 85%)}
.home-hero__tech-fallback::after{content:"";position:absolute;width:42%;height:2px;left:9%;top:58%;background:linear-gradient(90deg,transparent,var(--color-orange),transparent);animation:heroEnergySweep 4.8s var(--ease) infinite}
.has-three-hero .home-hero__tech-fallback{opacity:.12}
.home-hero__three{position:absolute;inset:0;z-index:1;opacity:.42;pointer-events:none;mix-blend-mode:screen}
.home-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(251,250,247,.94) 0%,rgba(251,250,247,.82) 34%,rgba(251,250,247,.38) 64%,rgba(251,250,247,.10) 100%)}
.home-hero__bg{position:absolute;inset:7% 3% auto auto;width:min(860px,68vw);height:72%;opacity:.5;z-index:3}
.home-hero__grid{position:relative;z-index:4;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.home-hero__content{display:grid;gap:18px}
.home-hero__content p:not(.eyebrow){max-width:760px;font-size:1.18rem}
.home-hero__meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px;max-width:760px}
.home-hero__meta span{display:grid;padding:14px 16px;border:1px solid var(--color-line);border-radius:var(--radius-sm);background:rgba(255,255,255,.7);box-shadow:var(--shadow-soft);font-weight:900}
.home-hero__meta small{font-weight:700;color:var(--color-muted)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.glass-card{position:relative;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.7);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-premium);border-radius:var(--radius-lg);padding:36px;display:grid;gap:16px;overflow:hidden}
.glass-card::before{content:"";position:absolute;inset:-80px auto auto -80px;width:190px;height:190px;background:radial-gradient(circle,rgba(245,154,35,.2),transparent 68%)}
.home-hero__card{min-height:360px;align-content:center;margin-left:auto;width:min(440px,100%);transform:translateY(24px)}
.home-hero__card span{font-size:1.05rem;color:var(--color-muted);font-weight:800}
.home-hero__card strong{font-family:var(--font-title);font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.12}
.aef-logo-animated{position:relative;display:inline-grid;place-items:center;width:max-content;isolation:isolate}
.aef-logo-animated img{width:196px;background:transparent}
.aef-logo-animated__ray{position:absolute;right:18px;top:0;width:70px;height:70px;background:radial-gradient(circle,var(--color-orange),rgba(245,154,35,.32) 38%,transparent 70%);opacity:.42;filter:blur(13px);z-index:-1}
.aef-logo-animated img{filter:drop-shadow(0 16px 34px rgba(0,0,0,.22));animation:aefLogoEnter .9s var(--ease) both}
.aef-logo-animated::after{content:"";position:absolute;width:46%;height:38%;left:28%;top:30%;background:linear-gradient(90deg,transparent,rgba(245,154,35,.72),transparent);filter:blur(10px);transform:translateX(-80%) rotate(-18deg);pointer-events:none;z-index:2}
.technical-lines{width:100%;height:100%;stroke:var(--color-graphite);fill:none;stroke-width:3;overflow:visible}
.technical-lines__accent{stroke:var(--color-orange);stroke-width:5;filter:drop-shadow(0 10px 12px rgba(245,154,35,.28))}
.technical-lines__module{fill:rgba(255,255,255,.42);stroke:rgba(21,21,21,.28)}
.split-feature__grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.split-feature__content{display:grid;gap:16px}
.split-feature__content ul{display:grid;gap:10px;margin-top:8px;list-style:none}
.split-feature__content li{position:relative;padding-left:26px;color:var(--color-text);font-weight:700}
.split-feature__content li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:2px;background:var(--color-orange)}
.split-feature--reverse .split-feature__content{order:2}
.detail-grid,.contact-grid,.form-layout{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.detail-card,.form,.contact-list,.map-placeholder{background:rgba(255,255,255,.92);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:26px;box-shadow:var(--shadow-soft)}
.detail-card{background:linear-gradient(180deg,#fff,var(--color-offwhite))}
.form{display:grid;gap:14px}
.form label{display:grid;gap:6px;font-weight:900;color:var(--color-text)}
.form input,.form textarea,.form select{border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:13px 14px;background:#fff;color:var(--color-text)}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--color-orange)}
.contact-cta{position:relative;background:radial-gradient(circle at 18% 0,rgba(245,154,35,.2),transparent 34%),linear-gradient(135deg,#1b1916,#070809);color:#fff;padding:76px 0;overflow:hidden}
.contact-cta::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:70px 70px;opacity:.4}
.contact-cta__inner{position:relative;display:flex;justify-content:space-between;gap:28px;align-items:center}
.contact-cta h2{color:#fff}
.contact-cta p{color:rgba(255,255,255,.75)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.filters button{border:1px solid var(--color-line);background:#fff;border-radius:999px;padding:10px 15px;font-weight:900;color:var(--color-text);transition:.2s var(--ease)}
.filters .is-active,.filters button:hover{background:var(--color-graphite);color:#fff;border-color:var(--color-graphite)}
.filterable-item{transition:opacity .28s var(--ease),transform .28s var(--ease)}
.filterable-item.is-filter-hidden{opacity:0;transform:scale(.96);pointer-events:none}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gallery-card{border:0;background:#fff;text-align:left;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.gallery-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-card)}
.gallery-card img{height:220px;width:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gallery-card:hover img{transform:scale(1.04)}
.gallery-card span{display:block;padding:13px 15px;font-weight:900}
.lightbox,.modal{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;background:rgba(5,6,7,.74);backdrop-filter:blur(10px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s var(--ease),visibility .28s}
.lightbox.is-open,.modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
.lightbox img{max-width:90vw;max-height:78vh;border-radius:var(--radius-md);box-shadow:var(--shadow-premium)}
.lightbox button,.modal__close{position:absolute;right:20px;top:20px}
.modal__panel{position:relative;width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}
.modal__backdrop{position:absolute;inset:0}
.modal__close{width:42px;height:42px;border:1px solid var(--color-line);border-radius:999px;background:#fff;font-size:1.45rem;line-height:1}
.logo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:center}
.logo-strip img{height:62px;max-width:190px;object-fit:contain;margin:auto;background:transparent;filter:grayscale(1);opacity:.8;transition:.22s var(--ease)}
.logo-strip img:hover{filter:none;opacity:1;transform:translateY(-2px)}
.quote{font-family:var(--font-title);font-size:clamp(1.9rem,4vw,3.8rem);font-weight:900;line-height:1.12;max-width:980px}
.home-impact{overflow:hidden}
.home-impact__panel{border-radius:var(--radius-xl);padding:clamp(28px,5vw,58px);background:linear-gradient(135deg,#fff,var(--color-offwhite));border:1px solid var(--color-line);box-shadow:var(--shadow-premium)}
.process-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;list-style:none;margin-top:28px}
.process-steps li{position:relative;padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-md);background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.process-steps span{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:999px;background:var(--color-orange);color:#1d1203;font-weight:900;margin-bottom:16px}
.process-steps h3{color:#fff}
.process-steps p{color:rgba(255,255,255,.72)}
.section:not(.section--dark) .process-steps li{background:#fff;border-color:var(--color-line);box-shadow:var(--shadow-soft)}
.section:not(.section--dark) .process-steps h3{color:var(--color-text)}
.section:not(.section--dark) .process-steps p{color:var(--color-muted)}
