/* ============================================================
   APECXTV GLOBAL V1.1 — MAIN STYLESHEET
   ============================================================ */
@import 'variables.css';

/* ── RESET & BASE ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-family);font-weight:var(--font-weight-regular);font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--colour-text-secondary);background:var(--colour-background-primary);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit}
:focus-visible{outline:2px solid var(--colour-primary);outline-offset:2px}

/* ── TYPOGRAPHY ── */
h1,.h1{font-size:var(--text-h1-size);font-weight:var(--font-weight-extrabold);line-height:var(--text-h1-line);letter-spacing:var(--text-h1-spacing);color:var(--colour-text-primary)}
h2,.h2{font-size:var(--text-h2-size);font-weight:var(--font-weight-bold);line-height:var(--text-h2-line);letter-spacing:var(--text-h2-spacing);color:var(--colour-text-primary)}
h3,.h3{font-size:var(--text-h3-size);font-weight:var(--font-weight-semibold);line-height:var(--text-h3-line);color:var(--colour-text-primary)}
.eyebrow{font-size:var(--text-eyebrow-size);font-weight:var(--font-weight-medium);letter-spacing:var(--text-eyebrow-spacing);text-transform:uppercase;color:var(--colour-corporate-gold);display:block;margin-bottom:var(--space-4)}
.body-large{font-size:var(--text-body-large-size);line-height:var(--text-body-line)}
.caption{font-size:var(--text-caption-size);color:var(--colour-slate-grey)}

/* ── LAYOUT ── */
.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--grid-margin)}
.section{padding:var(--space-20) 0}
.section--alt{background:var(--colour-background-secondary)}
.section--dark{background:var(--colour-background-inverse)}
.section--dark h2,.section--dark h3{color:var(--colour-text-inverse)}
.section--dark p{color:rgba(255,255,255,0.75)}
.section--dark .eyebrow{color:var(--colour-corporate-gold)}
.section-header{margin-bottom:var(--space-12)}
.grid{display:grid;gap:var(--grid-gutter)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ── NAVIGATION ── */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background:transparent;transition:background var(--duration-normal) var(--ease-default),box-shadow var(--duration-normal) var(--ease-default)}
.site-nav.scrolled{background:var(--colour-deep-navy);box-shadow:var(--shadow-header)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px;padding:0 var(--grid-margin);max-width:var(--container-max);margin:0 auto}
.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.nav-monogram{width:52px;height:52px;flex-shrink:0;display:block;object-fit:contain}
.nav-wordmark{display:flex;flex-direction:column;line-height:1;gap:1px}
.nav-wm-name{font-size:1.25rem;font-weight:800;color:#ffffff;letter-spacing:0.04em;line-height:1}
.nav-wm-sub{font-size:0.6rem;font-weight:600;color:var(--colour-corporate-gold);letter-spacing:0.18em;text-transform:uppercase;line-height:1}
.nav-links{display:flex;align-items:center;gap:var(--space-1)}
.nav-link{font-size:0.9375rem;font-weight:var(--font-weight-medium);color:rgba(255,255,255,0.85);padding:var(--space-2) var(--space-3);transition:color var(--duration-normal) var(--ease-default);position:relative;white-space:nowrap}
.nav-link::after{content:'';position:absolute;bottom:0;left:var(--space-3);right:var(--space-3);height:1px;background:var(--colour-corporate-gold);transform:scaleX(0);transition:transform var(--duration-normal) var(--ease-default)}
.nav-link:hover{color:var(--colour-white)}
.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1)}
.nav-link.active{color:var(--colour-white)}
.nav-cta{margin-left:var(--space-4)}
.nav-hamburger{display:none;flex-direction:column;gap:5px;padding:var(--space-2);cursor:pointer}
.nav-hamburger span{display:block;width:24px;height:2px;background:var(--colour-white);transition:transform var(--duration-normal) var(--ease-default),opacity var(--duration-normal) var(--ease-default)}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-mobile{display:none;position:fixed;top:80px;left:0;right:0;background:var(--colour-deep-navy);padding:var(--space-6) var(--space-6) var(--space-8);flex-direction:column;gap:var(--space-2);border-top:1px solid rgba(255,255,255,0.1);z-index:var(--z-sticky)}
.nav-mobile.open{display:flex}
.nav-mobile .nav-link{padding:var(--space-3) 0;border-bottom:1px solid rgba(255,255,255,0.08);font-size:1.0625rem}
.nav-mobile .btn{margin-top:var(--space-4);text-align:center}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-button-size);font-weight:var(--font-weight-semibold);letter-spacing:var(--text-button-spacing);text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-none);transition:background var(--duration-normal) var(--ease-default),color var(--duration-normal) var(--ease-default),transform var(--duration-fast) var(--ease-default);cursor:pointer;white-space:nowrap;text-decoration:none;line-height:1}
.btn:active{transform:scale(0.98)}
.btn-primary{background:var(--colour-primary);color:var(--colour-white)}
.btn-primary:hover{background:var(--colour-premium-gold);color:var(--colour-deep-navy)}
.btn-secondary{background:transparent;color:var(--colour-primary);border:2px solid var(--colour-primary)}
.btn-secondary:hover{background:var(--colour-primary);color:var(--colour-white)}
.btn-secondary-on-dark{background:transparent;color:var(--colour-white);border:2px solid rgba(255,255,255,0.6)}
.btn-secondary-on-dark:hover{background:var(--colour-white);color:var(--colour-primary);border-color:var(--colour-white)}
.btn-gold{background:var(--colour-corporate-gold);color:var(--colour-deep-navy)}
.btn-gold:hover{background:var(--colour-premium-gold)}
.text-link{color:var(--colour-primary);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--colour-corporate-gold);padding-bottom:1px;transition:color var(--duration-normal) var(--ease-default)}
.text-link:hover{color:var(--colour-corporate-gold)}
.text-link .arrow{transition:transform var(--duration-normal) var(--ease-default)}
.text-link:hover .arrow{transform:translateX(4px)}

/* ── HERO ── */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--colour-deep-navy)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg svg{width:100%;height:100%;position:absolute;top:0;left:0}
.hero-content{position:relative;z-index:1;padding:120px var(--grid-margin) var(--space-20);max-width:var(--container-max);width:100%;margin:0 auto}
.hero-text{max-width:820px}
.hero-text h1{color:var(--colour-white);margin-bottom:var(--space-6)}
.hero-text p{font-size:var(--text-body-large-size);color:rgba(255,255,255,0.85);margin-bottom:var(--space-8);max-width:640px;line-height:1.7}
.hero-cta{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-10)}
.hero-credentials{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}
.hero-credential-tag{display:inline-flex;align-items:center;gap:var(--space-2);padding:5px 12px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);font-size:0.75rem;font-weight:var(--font-weight-medium);color:rgba(255,255,255,0.75);letter-spacing:0.02em}
.hero-credential-tag .dot{width:6px;height:6px;border-radius:50%;background:var(--colour-corporate-gold);flex-shrink:0}
.hero-scroll{position:absolute;bottom:var(--space-8);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:rgba(255,255,255,0.4);font-size:0.6875rem;letter-spacing:0.1em;text-transform:uppercase}
.hero-scroll::before{content:'';width:1px;height:40px;background:rgba(255,255,255,0.25);animation:scroll-pulse 2s ease-out infinite}
@keyframes scroll-pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ── PAGE HERO ── */
.page-hero{background:var(--colour-deep-navy);padding:140px 0 var(--space-16);position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;top:0;right:0;width:40%;height:100%;background:radial-gradient(ellipse at right,rgba(4,43,107,0.4) 0%,transparent 70%)}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{color:var(--colour-white);margin-bottom:var(--space-4)}
.page-hero .intro{font-size:var(--text-body-large-size);color:rgba(255,255,255,0.8);max-width:700px;line-height:1.7}
.page-hero .breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-caption-size);color:rgba(255,255,255,0.4);margin-bottom:var(--space-4)}
.page-hero .breadcrumb a{transition:color var(--duration-normal)}
.page-hero .breadcrumb a:hover{color:var(--colour-corporate-gold)}
.page-hero .breadcrumb span{color:rgba(255,255,255,0.25)}

/* ── CARDS ── */
.card{background:var(--colour-white);padding:var(--space-8);box-shadow:var(--shadow-card);transition:box-shadow var(--duration-normal) var(--ease-default),transform var(--duration-normal) var(--ease-default)}
.card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}
.card-icon{width:40px;height:40px;margin-bottom:var(--space-5);color:var(--colour-corporate-gold)}
.capability-card{background:var(--colour-white);padding:var(--space-8);box-shadow:var(--shadow-card);transition:box-shadow var(--duration-normal) var(--ease-default),transform var(--duration-normal) var(--ease-default),border-top-color var(--duration-normal);border-top:3px solid transparent}
.capability-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);border-top-color:var(--colour-corporate-gold)}
.capability-card .icon-wrap{width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--colour-corporate-gold);margin-bottom:var(--space-5)}
.capability-card h3{font-size:1.0625rem;margin-bottom:var(--space-3)}
.capability-card p{font-size:0.9375rem;line-height:1.65}
.project-card{background:var(--colour-white);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow var(--duration-normal) var(--ease-default),transform var(--duration-normal);cursor:pointer}
.project-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}
.project-card-image{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--colour-light-silver)}
.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-default)}
.project-card:hover .project-card-image img{transform:scale(1.04)}
.project-card-image .overlay{position:absolute;inset:0;background:rgba(2,26,69,0.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-normal) var(--ease-default)}
.project-card:hover .overlay{opacity:1}
.project-card-content{padding:var(--space-5) var(--space-6)}
.project-card-content h3{font-size:0.9375rem;margin-bottom:var(--space-2)}
.project-card-content .meta{font-size:0.8125rem;color:var(--colour-slate-grey)}
.location-badge{display:inline-block;background:var(--colour-ocean-green);color:var(--colour-white);font-size:0.6875rem;font-weight:var(--font-weight-medium);letter-spacing:0.04em;text-transform:uppercase;padding:3px 10px;margin-bottom:var(--space-3)}

/* ── GOLD DIVIDER ── */
.gold-divider{width:48px;height:2px;background:var(--colour-corporate-gold);margin-bottom:var(--space-6)}
.gold-divider-center{margin:0 auto var(--space-6)}

/* ── STATS BAR ── */
.stats-bar{background:var(--colour-primary);padding:var(--space-10) 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);text-align:center}
.stat-item{color:var(--colour-white)}
.stat-number{font-size:clamp(2rem,4vw,3rem);font-weight:var(--font-weight-extrabold);color:var(--colour-white);line-height:1;margin-bottom:var(--space-2)}
.stat-number span{color:var(--colour-corporate-gold)}
.stat-label{font-size:0.875rem;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:0.04em}

/* ── WHY APECXTV ── */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:start}
.why-item{display:flex;gap:var(--space-5);padding:var(--space-6) 0;border-bottom:1px solid var(--colour-border)}
.why-item:last-child{border-bottom:none}
.why-number{font-size:0.6875rem;font-weight:var(--font-weight-bold);color:var(--colour-corporate-gold);letter-spacing:0.05em;min-width:28px;padding-top:3px}
.why-content h3{font-size:1rem;margin-bottom:var(--space-2)}

/* ── CTA BAND ── */
.cta-band{background:var(--colour-deep-navy);padding:var(--space-20) 0;text-align:center}
.cta-band h2{color:var(--colour-white);margin-bottom:var(--space-4)}
.cta-band p{color:rgba(255,255,255,0.75);font-size:var(--text-body-large-size);max-width:600px;margin:0 auto var(--space-8)}
.btn-pair{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}

/* ── MAP INTERFACE ── */
.map-section{background:var(--colour-background-secondary);padding:var(--space-20) 0}
.map-interface{background:var(--colour-white);box-shadow:var(--shadow-card)}
.map-controls-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--colour-border);flex-wrap:wrap;background:white}
.map-search-wrap{flex:1;min-width:220px;position:relative}
.map-search-wrap svg{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--colour-slate-grey);pointer-events:none}
.map-search{width:100%;padding:var(--space-3) var(--space-3) var(--space-3) 36px;background:var(--colour-light-silver);border:1px solid transparent;font-family:var(--font-family);font-size:0.9375rem;color:var(--colour-text-primary);outline:none;transition:border-color var(--duration-normal),background var(--duration-normal)}
.map-search:focus{border-color:var(--colour-primary);background:var(--colour-white)}
.filter-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid var(--colour-border);background:var(--colour-white);font-size:0.875rem;font-weight:var(--font-weight-medium);color:var(--colour-text-primary);cursor:pointer;transition:border-color var(--duration-normal),background var(--duration-normal),color var(--duration-normal);white-space:nowrap}
.filter-btn:hover{border-color:var(--colour-primary)}
.filter-btn.active{border-color:var(--colour-primary);background:var(--colour-primary);color:var(--colour-white)}
.filter-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--colour-ocean-green);color:var(--colour-white);font-size:0.6875rem;font-weight:var(--font-weight-bold);border-radius:var(--radius-full)}
.map-container-wrap{position:relative;overflow:hidden}

/* ── FILTER & PROJECT PANELS ── */
.filter-panel,.project-panel{position:absolute;top:0;right:0;height:100%;background:var(--colour-white);box-shadow:var(--shadow-panel);z-index:var(--z-panel);transform:translateX(100%);transition:transform var(--duration-medium) var(--ease-map);overflow-y:auto}
.filter-panel{width:300px}
.project-panel{width:420px;display:flex;flex-direction:column}
.filter-panel.open,.project-panel.open{transform:translateX(0)}
.filter-panel-header,.project-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--colour-border);position:sticky;top:0;background:white;z-index:1}
.filter-panel-header h3,.project-panel-header h3{font-size:1rem}
.panel-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--colour-slate-grey);cursor:pointer;transition:color var(--duration-normal)}
.panel-close:hover{color:var(--colour-primary)}
.filter-panel-body{padding:var(--space-5) var(--space-6)}
.filter-group{margin-bottom:var(--space-6)}
.filter-group-label{font-size:0.75rem;font-weight:var(--font-weight-semibold);color:var(--colour-slate-grey);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:var(--space-3)}
.filter-options{display:flex;flex-direction:column;gap:var(--space-2)}
.filter-checkbox{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;padding:var(--space-2) 0;font-size:0.9375rem}
.filter-checkbox input[type="checkbox"]{width:16px;height:16px;accent-color:var(--colour-primary);cursor:pointer}
.filter-chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}
.filter-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:3px 10px;background:var(--colour-light-silver);font-size:0.8125rem;color:var(--colour-text-secondary)}
.filter-actions{padding:var(--space-4) var(--space-6);border-top:1px solid var(--colour-border);display:flex;gap:var(--space-3)}
.project-panel-hero{aspect-ratio:16/9;background:var(--colour-light-silver);overflow:hidden;flex-shrink:0}
.project-panel-hero img{width:100%;height:100%;object-fit:cover}
.project-panel-body{padding:var(--space-6);flex:1;overflow-y:auto}
.panel-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--colour-border)}
.panel-meta-label{font-size:0.6875rem;font-weight:var(--font-weight-semibold);color:var(--colour-slate-grey);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:2px}
.panel-meta-value{font-size:0.875rem;color:var(--colour-text-primary);font-weight:var(--font-weight-medium)}
.panel-section{margin-bottom:var(--space-6)}
.panel-section h4{font-size:0.875rem;font-weight:var(--font-weight-semibold);color:var(--colour-text-primary);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--colour-corporate-gold);display:inline-block}
.panel-section p{font-size:0.9375rem;line-height:1.65}
.responsibilities-list{display:flex;flex-direction:column;gap:var(--space-2)}
.responsibility-item{display:flex;gap:var(--space-3);align-items:flex-start;font-size:0.875rem;line-height:1.55}
.responsibility-item::before{content:'';width:6px;height:6px;background:var(--colour-corporate-gold);border-radius:var(--radius-full);flex-shrink:0;margin-top:6px}
.panel-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}
.panel-gallery-thumb{aspect-ratio:1;background:var(--colour-light-silver);overflow:hidden;cursor:pointer}
.panel-gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-normal)}
.panel-gallery-thumb:hover img{transform:scale(1.06)}
.panel-cta{padding:var(--space-5) var(--space-6);border-top:1px solid var(--colour-border);background:white;flex-shrink:0}

/* ── MAP LEGEND ── */
.map-legend{position:absolute;bottom:var(--space-4);left:var(--space-4);background:rgba(2,26,69,0.85);padding:var(--space-3) var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-4);z-index:500;backdrop-filter:blur(4px)}
.legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:0.75rem;color:rgba(255,255,255,0.8)}
.legend-dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(255,255,255,0.3)}
.legend-dot.wind{background:#D4A017}
.legend-dot.oil{background:#042B6B;border-color:rgba(255,255,255,0.5)}
.legend-dot.marine{background:#0B8A7D}
.legend-dot.nuclear{background:#5E6B84}

/* ── NO RESULTS ── */
.no-results{display:none;text-align:center;padding:var(--space-12) var(--space-6);color:var(--colour-slate-grey)}
.no-results.visible{display:block}
.no-results h3{margin-bottom:var(--space-3);font-size:1.125rem}

/* ── PROJECT LIST ── */
.project-list{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}

/* ── FORMS ── */
.form-group{display:flex;flex-direction:column;gap:var(--space-2)}
.form-label{font-size:0.875rem;font-weight:var(--font-weight-medium);color:var(--colour-text-primary);letter-spacing:0.01em}
.form-control{width:100%;padding:var(--space-4);background:var(--colour-white);border:1px solid var(--colour-border);border-bottom:2px solid var(--colour-slate-grey);font-size:var(--text-body-size);font-family:var(--font-family);color:var(--colour-text-primary);outline:none;transition:border-color var(--duration-normal) var(--ease-default)}
.form-control::placeholder{color:rgba(94,107,132,0.6)}
.form-control:focus{border-bottom-color:var(--colour-primary)}
.form-control.error{border-bottom-color:var(--colour-error)}
textarea.form-control{min-height:120px;resize:vertical}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 7L11 1' stroke='%23D4A017' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
.form-error{font-size:0.8125rem;color:var(--colour-error)}
.form-success{padding:var(--space-5) var(--space-6);background:rgba(11,138,125,0.08);border-left:3px solid var(--colour-ocean-green);color:var(--colour-ocean-green);font-weight:var(--font-weight-medium)}

/* ── DOWNLOADS TABLE ── */
.downloads-table{width:100%;border-collapse:collapse}
.downloads-table th{text-align:left;padding:var(--space-3) var(--space-5);font-size:0.75rem;font-weight:var(--font-weight-semibold);color:var(--colour-slate-grey);text-transform:uppercase;letter-spacing:0.06em;border-bottom:2px solid var(--colour-border)}
.downloads-table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--colour-border);font-size:0.9375rem}
.downloads-table tr:hover td{background:var(--colour-light-silver)}
.file-type-badge{display:inline-block;padding:1px 6px;font-size:0.625rem;font-weight:var(--font-weight-bold);letter-spacing:0.05em;text-transform:uppercase;background:var(--colour-light-silver);color:var(--colour-slate-grey);border-radius:2px}
.status-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:0.8125rem;font-weight:var(--font-weight-medium)}
.status-dot{width:8px;height:8px;border-radius:var(--radius-full)}
.status-completed .status-dot{background:var(--colour-ocean-green)}
.status-ongoing .status-dot{background:var(--colour-corporate-gold)}

/* ── ABOUT — APECXTV NAME SECTION ── */
.apecxtv-name-section{background:var(--colour-deep-navy);padding:var(--space-20) 0;overflow:hidden}
.apecxtv-acronym{display:block;line-height:1.25;margin-bottom:var(--space-8);overflow:hidden}
.apecxtv-phrase{display:block;white-space:nowrap;font-weight:var(--font-weight-extrabold);letter-spacing:-0.01em;font-size:clamp(0.85rem,2.6vw,2.25rem)}
.apecxtv-phrase .hl{color:var(--colour-corporate-gold);font-size:clamp(1.1rem,3.2vw,2.75rem);font-weight:var(--font-weight-extrabold);vertical-align:baseline}
.apecxtv-phrase .rest{color:#ffffff;font-weight:600;vertical-align:baseline}
.apecxtv-tagline{font-size:clamp(1.25rem,2.5vw,1.75rem);color:rgba(255,255,255,0.6);font-style:italic;margin-bottom:var(--space-6)}
.apecxtv-meaning{font-size:clamp(0.875rem,1.5vw,1rem);color:rgba(255,255,255,0.5);line-height:1.7;max-width:640px}

/* ── ABOUT — PHILOSOPHY & ICR ── */
.vmp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}
.vmp-card{padding:var(--space-8);background:var(--colour-white);border-top:3px solid var(--colour-corporate-gold)}
.vmp-card.dark{background:var(--colour-primary);border-top-color:var(--colour-corporate-gold)}
.vmp-card.dark h3,.vmp-card.dark p{color:var(--colour-white)}
.vmp-card h3{margin-bottom:var(--space-3);font-size:1.125rem}
.vmp-card .label{font-size:0.75rem;font-weight:var(--font-weight-semibold);color:var(--colour-corporate-gold);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:var(--space-2)}
.philosophy-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}
.philosophy-card{padding:var(--space-8);background:var(--colour-light-silver)}
.philosophy-card h3{margin-bottom:var(--space-3)}
.icr-section{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
.icr-points{display:flex;flex-direction:column;gap:var(--space-6)}
.icr-point{display:flex;gap:var(--space-4);align-items:flex-start}
.icr-point-icon{width:40px;height:40px;flex-shrink:0;color:var(--colour-corporate-gold);padding-top:2px}
.icr-point h4{font-size:1rem;margin-bottom:var(--space-2)}

/* ── PRINCIPAL CONSULTANT PHOTO ── */
.consultant-photo-wrap{position:relative;border:1px solid rgba(4,43,107,0.15)}
.consultant-photo{width:100%;height:auto;display:block;object-fit:contain;object-position:top center}

/* ── SERVICES ── */
.service-detail{padding:var(--space-10) 0;border-top:1px solid var(--colour-border);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);align-items:start}
.service-detail:first-child{border-top:none}
.service-number{font-size:0.6875rem;font-weight:var(--font-weight-bold);color:var(--colour-corporate-gold);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--space-3)}
.service-responsibilities{display:flex;flex-direction:column;gap:var(--space-3)}
.service-responsibility{display:flex;gap:var(--space-3);align-items:flex-start;font-size:0.9375rem}
.service-responsibility::before{content:'';width:6px;height:6px;background:var(--colour-corporate-gold);border-radius:var(--radius-full);flex-shrink:0;margin-top:8px}
.industries-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}
.industry-card{padding:var(--space-8);background:var(--colour-white);border-left:4px solid;box-shadow:var(--shadow-card);transition:box-shadow var(--duration-normal),transform var(--duration-normal)}
.industry-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}
.industry-card.wind{border-left-color:var(--colour-corporate-gold)}
.industry-card.oil{border-left-color:var(--colour-primary)}
.industry-card.marine{border-left-color:var(--colour-ocean-green)}
.industry-card.nuclear{border-left-color:var(--colour-slate-grey)}

/* ── OPEN NETWORK ── */
.discipline-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);transition:background var(--duration-normal),border-color var(--duration-normal)}
.discipline-card:hover{background:rgba(255,255,255,0.1);border-color:var(--colour-corporate-gold)}
.discipline-card .dot{width:8px;height:8px;background:var(--colour-corporate-gold);border-radius:var(--radius-full);flex-shrink:0}
.discipline-card span{font-size:0.9375rem;color:rgba(255,255,255,0.85)}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-16);align-items:start}
.contact-info-item{display:flex;gap:var(--space-4);padding:var(--space-5) 0;border-bottom:1px solid var(--colour-border)}
.contact-info-item:last-child{border-bottom:none}
.contact-info-icon{width:40px;height:40px;flex-shrink:0;color:var(--colour-corporate-gold)}
.contact-info-content h4{font-size:0.875rem;margin-bottom:var(--space-1)}
.contact-info-content p,.contact-info-content a{font-size:0.9375rem;color:var(--colour-text-secondary)}
.contact-info-content a{transition:color var(--duration-normal)}
.contact-info-content a:hover{color:var(--colour-primary)}

/* ── GALLERY PAGE ── */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
.gallery-thumb{aspect-ratio:4/3;overflow:hidden;cursor:pointer;background:var(--colour-light-silver);position:relative}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-default)}
.gallery-thumb:hover img{transform:scale(1.05)}
.gallery-thumb.hero-thumb{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gallery-thumb.hero-thumb img{height:100%}

/* ── FOOTER ── */
.site-footer{background:var(--colour-deep-navy);padding:var(--space-20) 0 var(--space-10);border-top:1px solid rgba(255,255,255,0.06)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-10);margin-bottom:var(--space-12)}
.footer-col h4{font-size:0.75rem;font-weight:var(--font-weight-semibold);color:var(--colour-corporate-gold);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:var(--space-5)}
.footer-logo-name{font-size:1.25rem;font-weight:var(--font-weight-extrabold);color:var(--colour-white);letter-spacing:0.02em;margin-bottom:var(--space-2)}
.footer-tagline{font-size:0.8125rem;color:rgba(255,255,255,0.45);line-height:1.5;margin-bottom:var(--space-5);font-style:italic}
.footer-links{display:flex;flex-direction:column;gap:var(--space-3)}
.footer-link{font-size:0.9375rem;color:rgba(255,255,255,0.6);transition:color var(--duration-normal) var(--ease-default)}
.footer-link:hover{color:var(--colour-premium-gold)}
.footer-contact-item{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-4)}
.footer-contact-label{font-size:0.6875rem;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:0.05em}
.footer-contact-value{font-size:0.875rem;color:rgba(255,255,255,0.7)}
.footer-contact-value a{transition:color var(--duration-normal) var(--ease-default)}
.footer-contact-value a:hover{color:var(--colour-corporate-gold)}
.footer-bottom{padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.footer-copyright{font-size:0.8125rem;color:rgba(255,255,255,0.3)}
.footer-legal-links{display:flex;gap:var(--space-6)}
.footer-legal-links a{font-size:0.8125rem;color:rgba(255,255,255,0.3);transition:color var(--duration-normal)}
.footer-legal-links a:hover{color:rgba(255,255,255,0.55)}

/* ── BACK TO TOP ── */
.back-to-top{position:fixed;bottom:var(--space-6);right:var(--space-6);width:44px;height:44px;background:var(--colour-primary);color:var(--colour-white);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:opacity var(--duration-normal),visibility var(--duration-normal),background var(--duration-normal);z-index:var(--z-dropdown)}
.back-to-top.visible{opacity:1;visibility:visible}
.back-to-top:hover{background:var(--colour-corporate-gold)}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--duration-reveal) var(--ease-default),transform var(--duration-reveal) var(--ease-default)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:100ms}
.reveal-delay-2{transition-delay:200ms}
.reveal-delay-3{transition-delay:300ms}
.reveal-delay-4{transition-delay:400ms}

/* ── UTILITIES ── */
.skip-link{position:absolute;top:-40px;left:var(--space-4);background:var(--colour-primary);color:var(--colour-white);padding:var(--space-2) var(--space-4);z-index:1000;transition:top var(--duration-fast)}
.skip-link:focus{top:var(--space-4)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.text-center{text-align:center}
.mb-4{margin-bottom:var(--space-4)}
.mb-6{margin-bottom:var(--space-6)}
.mb-8{margin-bottom:var(--space-8)}
.mb-10{margin-bottom:var(--space-10)}
.mb-12{margin-bottom:var(--space-12)}
.mt-6{margin-top:var(--space-6)}
.mt-8{margin-top:var(--space-8)}
.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translateX(-50%) translateY(100px);background:var(--colour-primary);color:var(--colour-white);padding:var(--space-4) var(--space-6);font-size:0.9375rem;box-shadow:var(--shadow-card-hover);transition:transform var(--duration-medium) var(--ease-default),opacity var(--duration-medium) var(--ease-default);opacity:0;z-index:800;pointer-events:none}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
.toast.success{background:var(--colour-ocean-green)}

/* ── RESPONSIVE ── */
@media (max-width:1023px){
  :root{--grid-margin:32px;--grid-gutter:16px}
  .nav-links,.nav-cta{display:none}
  .nav-hamburger{display:flex}
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-8)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .why-grid{grid-template-columns:1fr;gap:var(--space-8)}
  .icr-section{grid-template-columns:1fr}
  .service-detail{grid-template-columns:1fr;gap:var(--space-6)}
  .contact-grid{grid-template-columns:1fr}
  .project-list{grid-template-columns:repeat(2,1fr)}
  .vmp-grid{grid-template-columns:1fr;gap:var(--space-2)}
  .philosophy-grid{grid-template-columns:1fr}
  .industries-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .project-panel{width:52vw}
  .filter-panel{width:280px}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-thumb.hero-thumb{grid-column:span 2;grid-row:span 1}
}
@media (max-width:767px){
  :root{--grid-margin:16px}
  .section{padding:var(--space-12) 0}
  .hero-content{padding:100px var(--grid-margin) var(--space-12)}
  .hero-cta{flex-direction:column;align-items:flex-start}
  .grid-2{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .project-list{grid-template-columns:1fr}
  #map-canvas{height:400px}
  .project-panel{width:100%;top:auto;bottom:0;height:80%;transform:translateY(100%);box-shadow:0 -4px 24px rgba(2,26,69,0.15)}
  .project-panel.open{transform:translateY(0)}
  .filter-panel{width:100%;height:auto;top:auto;bottom:0;transform:translateY(100%)}
  .filter-panel.open{transform:translateY(0)}
  .cta-band .btn-pair{flex-direction:column;align-items:center}
  .map-legend{display:none}
  .gallery-grid{grid-template-columns:1fr}
  .apecxtv-phrase{white-space:normal;font-size:clamp(0.75rem,3.5vw,1.1rem)}
  .apecxtv-phrase .hl{font-size:clamp(1rem,4.5vw,1.4rem)}
  .nav-monogram{width:40px;height:40px}
  .nav-wm-name{font-size:1rem}
  .nav-wordmark{gap:0}
  .nav-logo{gap:9px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .pin-pulse{animation:none}
}
