@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap');
:root{
  --ink:#1B2430; --indigo:#26344D; --indigo-2:#3A4560; --amber:#E8A33D;
  --paper:#F7F4EE; --line:#DED8C9; --white:#FFFFFF; --muted:#5A6376;
}
*{box-sizing:border-box;}
body{ margin:0; background:#EAE6DC; color:var(--ink); font-family:"Inter",-apple-system,"Helvetica Neue",Arial,sans-serif; }
.atomap-wrap{ background:var(--paper); max-width:1120px; width:100%; margin:32px auto; border-radius:14px; overflow:hidden; box-shadow:0 20px 60px rgba(27,36,48,.15); }
#atomap-wrap{ max-width:1280px !important; margin:32px auto !important; width:auto !important; background:var(--paper); border-radius:14px; overflow:hidden; box-shadow:0 20px 60px rgba(27,36,48,.15); }
.mono{font-family:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;}

.credbar{ background:var(--indigo); color:#DCE3F0; font-size:11px; letter-spacing:.06em; padding:10px 24px; display:flex; gap:14px; flex-wrap:wrap; }
.credbar i{opacity:.4; font-style:normal;}

.hero{ padding:48px 40px 34px; max-width:760px; }
.eyebrow{ font-size:12px; letter-spacing:.12em; color:var(--amber); text-transform:uppercase; margin:0 0 14px; }
.atomap-wrap h1{ font-size:40px; line-height:1.08; letter-spacing:-0.01em; margin:0 0 16px; font-weight:700; color:var(--indigo); }
.sub{font-size:16px; line-height:1.5; color:#4B5568; margin:0 0 24px; max-width:52ch;}
.ctas{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px;}
.atomap-wrap button, .atomap-wrap .btn{font-size:14px; font-weight:600; padding:13px 22px; border-radius:6px; border:none; cursor:pointer; font-family:inherit; text-decoration:none; display:inline-flex; align-items:center; gap:8px;}
.primary{background:var(--amber); color:#241A08;}
.ghost{background:transparent; border:1.5px solid var(--indigo); color:var(--indigo);}
.microcopy{font-size:12.5px; color:#7B8497; margin:0;}

.checker-section{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#FBFAF6; padding:36px 40px 40px; }
.checker-head{ margin-bottom:20px; }
.checker-eyebrow{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--amber); margin:0 0 8px; }
.checker-head h2{ font-size:22px; margin:0 0 6px; color:var(--indigo); }
.checker-head p{ font-size:13.5px; color:var(--muted); margin:0; max-width:70ch; }
.tabs{ display:flex; gap:6px; margin:18px 0 18px; background:#EFEAE0; padding:4px; border-radius:8px; width:fit-content; flex-wrap:wrap; }
.tab{ font-size:13px; font-weight:600; padding:9px 16px; border-radius:6px; cursor:pointer; color:var(--muted); user-select:none; }
.tab.active{ background:var(--indigo); color:#fff; }
.tool{ background:var(--indigo); border-radius:14px; padding:28px; color:#EDEFF4; }
.tool-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:11.5px; color:#B9C1D4; margin-bottom:8px; }
.field .val{ font-size:20px; font-weight:700; margin-bottom:2px; }
.field .approx{ font-size:11px; color:#8A93A6; margin-bottom:6px; }
input[type=range]{ width:100%; accent-color:var(--amber); }
.divider-v{ border-left:1px solid #3F4B66; padding-left:24px; }
.status{ margin-top:6px; border-radius:10px; padding:16px 18px; }
.status.exceed{ background:rgba(194,74,59,.15); border:1px solid rgba(194,74,59,.4); }
.status.ok{ background:rgba(62,138,92,.15); border:1px solid rgba(62,138,92,.4); }
.status.info{ background:rgba(232,163,61,.12); border:1px solid rgba(232,163,61,.4); }
.status .headline{ font-size:15px; font-weight:700; margin-bottom:6px; }
.status.exceed .headline{ color:#F0968A; }
.status.ok .headline{ color:#8FD1A6; }
.status.info .headline{ color:var(--amber); }
.status .body{ font-size:12.5px; color:#C7CEDD; line-height:1.5; }
.obligations{ margin:10px 0 0; padding-left:18px; font-size:12px; color:#C7CEDD; }
.obligations li{ margin-bottom:4px; }
.savings-line{ margin-top:16px; padding-top:14px; border-top:1px solid #3F4B66; display:flex; justify-content:space-between; align-items:baseline; }
.savings-line .lbl{ font-size:11.5px; color:#9AA4B8; }
.savings-line .num{ font-size:20px; font-weight:700; color:var(--amber); }
.fineprint{ font-size:10px; color:#8A93A6; margin:14px 0 0; line-height:1.5; }

.btype-row{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.btype-pill{ font-size:12px; font-weight:600; padding:7px 14px; border-radius:20px; cursor:pointer; color:#B9C1D4; border:1px solid #3F4B66; user-select:none; position:relative; }
.btype-pill.active{ background:var(--amber); color:#241A08; border-color:var(--amber); }
.btype-pill .dc-flag{ font-size:8.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#241A08; background:var(--amber); border-radius:7px; padding:1px 5px; margin-left:6px; vertical-align:middle; }
.btype-pill.active .dc-flag{ background:#241A08; color:var(--amber); }
.dc-highlight{ display:none; background:#20304F; border:1px solid #3F4B66; border-left:3px solid var(--amber); border-radius:8px; padding:12px 16px; margin:0 0 16px; font-size:12.5px; line-height:1.55; color:#DCE3F0; }
.dc-highlight b{ color:var(--amber); }
.advanced-toggle{ font-size:11.5px; color:var(--amber); cursor:pointer; margin:2px 0 14px; display:inline-block; text-decoration:underline; user-select:none; }
.advanced-fields{ display:none; border-top:1px dashed #3F4B66; padding-top:14px; margin-top:4px; }
.advanced-fields.open{ display:block; }
.advanced-fields .field{ margin-bottom:12px; }
.advanced-fields label{ font-size:11px; }
.mini-input{ width:100%; background:#1E2A3F; border:1px solid #3F4B66; color:#EDEFF4; border-radius:6px; padding:8px 10px; font-size:13px; font-family:inherit; }
.mini-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

.lead-capture{ margin-top:16px; background:rgba(255,255,255,.06); border:1px solid #3F4B66; border-radius:10px; padding:16px 18px; position:relative; }
.lead-capture.hidden{ display:none; }
.lead-capture .lc-close{ position:absolute; top:10px; right:12px; background:none; border:none; color:#8A93A6; font-size:14px; cursor:pointer; padding:2px 6px; }
.lead-capture .lc-title{ font-size:13px; font-weight:700; color:#EDEFF4; margin:0 0 4px; padding-right:20px; }
.lead-capture .lc-sub{ font-size:11.5px; color:#9AA4B8; margin:0 0 12px; }
.lc-row{ display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:8px; }
.lc-row input{ background:#1E2A3F; border:1px solid #3F4B66; color:#EDEFF4; border-radius:6px; padding:9px 10px; font-size:12.5px; font-family:inherit; }
.lc-row button{ padding:9px 16px; font-size:12.5px; }
.lc-thanks{ font-size:12.5px; color:#8FD1A6; display:none; }
@media (max-width:780px){ .lc-row{ grid-template-columns:1fr; } }

.trust{ padding:34px 40px; border-bottom:1px solid var(--line); }
.trust-grid{ display:grid; grid-template-columns: auto 1fr auto; gap:32px; align-items:center; }
.heritage{ text-align:center; padding-right:32px; border-right:1px solid var(--line); }
.heritage .num{font-size:34px; font-weight:700; color:var(--indigo); line-height:1;}
.heritage .label{font-size:10.5px; color:#8A93A6; letter-spacing:.08em; text-transform:uppercase; margin-top:6px;}
.badges{display:flex; flex-wrap:wrap; gap:10px; justify-content:center;}
.badge{ font-size:11px; color:var(--indigo); background:#EFEAE0; border:1px solid var(--line); padding:7px 12px; border-radius:20px; white-space:nowrap; }
.profile-cta{ display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.profile-btn{ background:var(--indigo); color:#fff; font-size:12.5px; padding:11px 18px; border-radius:6px; }
.profile-note{font-size:10px; color:#9AA4B8; text-align:right; max-width:22ch;}

.track{ padding:36px 40px 8px; }
.track-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 6px; }
.track-sub{ font-size:12.5px; color:var(--muted); margin:0 0 18px; max-width:70ch; line-height:1.5; }
.track-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.track-item{ border-left:2px solid var(--amber); padding-left:14px; }
.track-item .num{font-size:24px; font-weight:700; color:var(--indigo);}
.track-item .cap{font-size:11.5px; color:var(--muted); margin-top:2px;}

.scope{ padding:36px 40px 8px; }
.scope-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 6px; }
.scope-sub{ font-size:12.5px; color:var(--muted); margin:0 0 4px; max-width:70ch; line-height:1.5; }
.three{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin-top:18px;}
.card{background:var(--white); padding:26px 22px;}
.tag{font-size:11px; color:var(--amber); font-weight:700;}
.card h3{font-size:16px; margin:8px 0 8px; color:var(--indigo);}
.card p{font-size:13px; color:var(--muted); margin:0 0 10px; line-height:1.5;}
.card ul{margin:0; padding-left:16px;}
.card ul li{font-size:12.5px; color:var(--muted); line-height:1.6;}

.roof-card{ background:var(--white); border:1px solid var(--line); border-radius:10px; padding:20px 20px 22px; }
.roof-card h4{font-size:14.5px; margin:0 0 8px; color:var(--indigo);}
.roof-card p{font-size:12.5px; color:#6B7488; margin:0; line-height:1.55;}

.flow{ padding:38px 40px; border-top:1px solid var(--line); }
.flow-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 20px; }
.flow-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.flow-step{ position:relative; padding:0 16px 0 0; }
.flow-step .idx{ font-size:11px; color:var(--amber); font-weight:700; display:block; margin-bottom:8px;}
.flow-step h4{ font-size:14px; margin:0 0 6px; color:var(--indigo);}
.flow-step p{ font-size:12px; color:var(--muted); margin:0; line-height:1.45;}
.flow-step:not(:last-child)::after{ content:"\2192"; position:absolute; right:-4px; top:0; color:var(--line); font-size:16px; }

.roof{padding:30px 40px; border-top:1px solid var(--line);}
.roof-label{font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 16px;}
.roof-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:16px;}

.partner{padding:20px 40px 6px; font-size:12.5px; color:var(--muted); border-top:1px solid var(--line);}
.partner b{color:var(--indigo);}

.closing{ margin:28px 40px 34px; background:var(--indigo); border-radius:12px; padding:28px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.closing h3{ color:#fff; font-size:19px; margin:0 0 4px; }
.closing p{ color:#B9C1D4; font-size:13px; margin:0; }
.closing .ctas{margin:0;}

@media (max-width:780px){
  .atomap-wrap h1{font-size:30px;}
  .three, .roof-grid, .track-grid, .flow-steps, .tool-grid, .mini-row{grid-template-columns:1fr;}
  .trust-grid{grid-template-columns:1fr; text-align:center;}
  .heritage{border-right:none; border-bottom:1px solid var(--line); padding:0 0 20px;}
  .profile-cta{align-items:center;}
  .profile-note{text-align:center;}
  .flow-step:not(:last-child)::after{display:none;}
}

.sitenav{ background:var(--white); border-bottom:1px solid var(--line); padding:14px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.sitenav .brand{ font-weight:800; letter-spacing:.02em; color:var(--indigo); font-size:15px; }
.sitenav .links{ display:flex; gap:22px; flex-wrap:wrap; }
.sitenav .links a{ color:var(--muted); text-decoration:none; font-size:13px; font-weight:600; letter-spacing:.02em; padding-bottom:3px; border-bottom:2px solid transparent; }
.sitenav .links a:hover{ color:var(--indigo); }
.sitenav .links a.active{ color:var(--indigo); border-bottom-color:var(--amber); }

#sec-hero{ max-width:none !important; display:flex !important; flex-direction:row !important; align-items:center; gap:44px; padding:48px 40px 34px !important; }
#hero-textcol{ flex:1 1 560px !important; max-width:600px; padding:0 !important; }
.sec-hero-visual{ flex:0 1 430px !important; }
.hero-visual{ background:var(--indigo); border-radius:16px; padding:26px 30px 28px; color:#EDEFF4; box-shadow:0 16px 40px rgba(27,36,48,.18); }
.hero-visual .hv-label{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--amber); margin:0 0 10px; }
.hero-visual .hv-gauge{ display:flex; justify-content:center; }
.hero-visual .hv-points{ list-style:none; margin:12px 0 0; padding:0; }
.hero-visual .hv-points li{ font-size:13px; color:#DCE3F0; padding:9px 0; border-top:1px solid #3A4560; display:flex; align-items:center; gap:11px; line-height:1.35; }
.hero-visual .hv-points li:first-child{ border-top:none; }
.hero-visual .hv-points .ck{ flex:0 0 18px; width:18px; height:18px; background:var(--amber); color:#241A08; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; }
.card-ic, .roof-ic{ width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:#F3EFE6; margin-bottom:12px; }
.card-ic svg, .roof-ic svg{ width:20px; height:20px; stroke:var(--indigo); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:820px){
  #sec-hero{ flex-direction:column !important; align-items:flex-start; gap:24px; }
  .sec-hero-visual{ display:none; }
  #hero-textcol{ max-width:none; }
}
#sec-flow{ border-top:1px solid var(--line); padding:38px 40px !important; }
#sec-roof{ border-top:1px solid var(--line); padding:30px 40px !important; }
#sec-track{ padding:36px 40px 8px !important; }
#sec-scope{ padding:36px 40px 8px !important; }

/* ===== inner pages ===== */
#atomap-wrap h2{ font-size:22px; margin:0 0 14px; color:var(--indigo); }
.page-hero{ padding:44px 40px 8px; max-width:800px; }
.page-hero h1{ font-size:34px; line-height:1.15; }
.section{ padding:30px 40px; border-top:1px solid var(--line); }
.section-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 16px; }
.imgbanner{ height:420px; position:relative; overflow:hidden; background-size:cover; background-position:center 55%; }
.narrative p{ font-size:15px; line-height:1.7; color:#3C4657; max-width:72ch; margin:0 0 18px; }
.narrative p.lede{ font-size:17px; color:var(--indigo); font-weight:600; }
.eng-intro{ display:flex; gap:28px; align-items:flex-start; margin-bottom:24px; flex-wrap:wrap; }
.eng-intro-text{ flex:1; min-width:280px; }
.field-photo{ width:180px; flex-shrink:0; }
.field-photo img{ display:block; width:100%; height:auto; border-radius:8px; box-shadow:0 8px 24px rgba(27,36,48,.15); }
.field-photo-cap{ font-size:10.5px; color:var(--muted); margin-top:8px; line-height:1.5; }
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.team-card,.lead-card{ background:var(--white); border:1px solid var(--line); border-radius:10px; padding:20px; }
.team-card .avatar,.lead-card .avatar{ width:48px; height:48px; border-radius:50%; background:var(--indigo); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; margin-bottom:12px; }
.team-card h3,.lead-card h3{ font-size:15px; margin:0 0 2px; color:var(--indigo); }
.team-card .role,.lead-card .role{ font-size:12px; color:var(--amber); font-weight:600; margin:0 0 10px; }
.team-card .creds{ font-size:11px; color:#7B8497; line-height:1.5; margin:0; }
.lead-card p.desc{ font-size:12px; color:#7B8497; line-height:1.55; margin:0; }
.lead-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.timeline{ margin-top:8px; }
.tl-item{ display:grid; grid-template-columns:90px 1fr; gap:16px; padding:12px 0; border-bottom:1px solid var(--line); }
.tl-item:last-child{ border-bottom:none; }
.tl-year{ font-size:14px; font-weight:700; color:var(--amber); }
.tl-text{ font-size:13px; color:#3C4657; line-height:1.55; }
.tribute{ background:var(--white); border:1px solid var(--line); border-left:3px solid var(--amber); border-radius:8px; padding:22px 24px; margin-top:8px; }
.tribute p.quote{ font-size:14.5px; font-style:italic; color:#3C4657; line-height:1.7; margin:0 0 12px; }
.tribute .attr{ font-size:12px; color:var(--muted); }
.tribute .attr b{ color:var(--indigo); }
.tribute .translation-note{ font-size:10.5px; color:#9AA4B8; margin-top:10px; }
.engine-note{ background:var(--white); border:1px solid var(--line); border-radius:10px; padding:20px 22px; margin-top:14px; }
.engine-note p{ font-size:13px; color:#3C4657; line-height:1.65; margin:0; }
.engine-note .creds-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.engine-note .cred-tag{ font-size:11px; color:var(--indigo); background:#EFEAE0; border:1px solid var(--line); padding:5px 10px; border-radius:20px; }
.engagements{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin-top:8px; border-radius:10px; overflow:hidden; }
.eng-card{ background:var(--white); padding:22px 20px; }
.eng-card .sector{ font-size:11px; color:var(--amber); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.eng-card h4{ font-size:14.5px; margin:8px 0 8px; color:var(--indigo); }
.eng-card p{ font-size:12.5px; color:var(--muted); margin:0 0 10px; line-height:1.55; }
.eng-card .range{ font-size:13px; font-weight:700; color:var(--indigo); background:#F3EFE6; display:inline-block; padding:5px 10px; border-radius:6px; }
.eng-card .range-note{ font-size:10px; color:#9AA4B8; margin-top:6px; }
.eng-fineprint{ font-size:10.5px; color:#8A93A6; margin:16px 0 0; line-height:1.6; max-width:80ch; }
.details-card{ background:var(--indigo); border-radius:12px; padding:28px 26px; color:#EDEFF4; }
.details-card .person{ display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.details-card .avatar{ width:52px; height:52px; border-radius:50%; background:var(--amber); color:#241A08; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; flex-shrink:0; }
.details-card h3{ font-size:16px; margin:0 0 2px; color:#fff; }
.details-card .role{ font-size:12px; color:#B9C1D4; margin:0; }
.detail-row{ margin-bottom:16px; }
.detail-row .lbl{ font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:#8A93A6; margin:0 0 4px; }
.detail-row .val{ font-size:13.5px; color:#EDEFF4; line-height:1.5; }
.detail-row a{ color:var(--amber); text-decoration:none; }
.detail-row a:hover{ text-decoration:underline; }
.contact-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:32px; align-items:start; }
.form-card{ background:var(--white); border:1px solid var(--line); border-radius:12px; padding:28px 30px; }
.form-card h3{ font-size:16px; margin:0 0 4px; color:var(--indigo); }
.form-card .note{ font-size:12px; color:var(--muted); margin:0 0 20px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.form-card .field label{ display:block; font-size:11.5px; color:var(--muted); margin-bottom:6px; font-weight:600; }
.form-card .field input,.form-card .field textarea{ width:100%; border:1px solid var(--line); border-radius:6px; padding:10px 12px; font-size:13px; font-family:inherit; background:#FBFAF6; }
.form-card .field textarea{ min-height:100px; resize:vertical; }
.form-card .field.full{ margin-bottom:14px; }
.form-fineprint{ font-size:10.5px; color:#9AA4B8; margin-top:10px; }
.lead-thanks{ display:none; font-size:14px; color:#2E7D4F; font-weight:700; padding:10px 0; }
.role-card{ background:var(--white); border:1px solid var(--line); border-radius:12px; padding:30px 32px; }
.role-card .tag{ font-size:11px; color:var(--amber); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.role-card h2{ font-size:22px; margin:8px 0 6px; color:var(--indigo); }
.role-card .loc{ font-size:12.5px; color:var(--muted); margin:0 0 18px; }
.role-card p.intro{ font-size:14px; color:#3C4657; line-height:1.65; margin:0 0 20px; max-width:70ch; }
.role-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:8px; }
.role-grid h3{ font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--indigo); margin:0 0 12px; }
.role-grid ul{ margin:0; padding-left:18px; }
.role-grid li{ font-size:13px; color:#3C4657; line-height:1.65; margin-bottom:8px; }
.apply-box{ margin-top:26px; background:var(--indigo); border-radius:10px; padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.apply-box .txt h4{ color:#fff; font-size:15px; margin:0 0 4px; }
.apply-box .txt p{ color:#B9C1D4; font-size:12.5px; margin:0; }
.apply-box .email{ color:var(--amber); font-weight:700; }
.ghost-light{ background:transparent; border:1.5px solid #4F5D7C; color:#EDEFF4; }
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:8px; }
.why-card{ background:var(--white); border:1px solid var(--line); border-radius:10px; padding:20px; }
.why-card h4{ font-size:14px; margin:0 0 8px; color:var(--indigo); }
.why-card p{ font-size:12.5px; color:var(--muted); margin:0; line-height:1.55; }
.future-note{ font-size:12.5px; color:var(--muted); margin-top:16px; line-height:1.6; max-width:72ch; }
@media (max-width:780px){
  .page-hero h1{ font-size:26px; }
  .team-grid,.engagements,.role-grid,.why-grid,.lead-grid,.contact-grid{ grid-template-columns:1fr; }
}

/* ===== sitewide conversion UI ===== */
body{ padding-bottom:64px; }
.wa-float{ position:fixed; right:20px; bottom:150px; z-index:100000; width:56px; height:56px; border-radius:50%; background:#25D366; box-shadow:0 8px 24px rgba(0,0,0,.28); display:flex; align-items:center; justify-content:center; text-decoration:none; transition:transform .15s ease; }
.wa-float:hover{ transform:scale(1.06); }
.wa-float svg{ width:30px; height:30px; fill:#fff; }
.atomap-sticky{ position:fixed; left:0; right:0; bottom:0; z-index:9997; background:var(--indigo); color:#fff; display:flex; align-items:center; justify-content:center; gap:16px; padding:12px 48px 12px 20px; box-shadow:0 -6px 24px rgba(27,36,48,.2); flex-wrap:wrap; }
.atomap-sticky .msg{ font-size:13.5px; font-weight:600; }
.atomap-sticky .msg b{ color:var(--amber); }
.atomap-sticky a.cta{ background:var(--amber); color:#241A08; font-weight:700; font-size:13.5px; padding:10px 20px; border-radius:6px; text-decoration:none; white-space:nowrap; }
.atomap-sticky .dismiss{ position:absolute; right:14px; top:50%; transform:translateY(-50%); background:none; border:none; color:#9AA4B8; font-size:18px; cursor:pointer; line-height:1; }
@media (max-width:600px){
  .atomap-sticky .msg{ font-size:12px; width:100%; text-align:center; }
  .atomap-sticky{ padding:10px 40px 10px 14px; gap:8px; }
  .wa-float{ bottom:140px; right:14px; width:50px; height:50px; }
}
.why-ic{ width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:#F3EFE6; margin-bottom:12px; }
.why-ic svg{ width:19px; height:19px; stroke:var(--indigo); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.range-bar{ height:7px; background:#EDE7DA; border-radius:4px; margin-top:10px; overflow:hidden; max-width:220px; }
.range-bar span{ display:block; height:100%; background:var(--amber); border-radius:4px; }
details.methodology{ margin:14px 0 0; }
details.methodology summary{ font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:6px; padding:6px 0; }
details.methodology summary::-webkit-details-marker{ display:none; }
details.methodology summary::before{ content:"+"; color:var(--amber); font-weight:700; }
details.methodology[open] summary::before{ content:"–"; }

/* hero+button polish */
#hero-textcol{ display:flex !important; flex-direction:column !important; align-items:flex-start; gap:15px !important; }
#hero-textcol .elementor-widget{ margin:0 !important; }
#hero-textcol .elementor-heading-title, #hero-textcol p{ margin:0 !important; }
#hero-textcol .ctas{ margin:2px 0 0 !important; }
.btn{ padding:14px 24px !important; line-height:1 !important; }

/* ===== v2 full-width bands ===== */
html,body{ background:var(--paper); }
#atomap-wrap{ max-width:none !important; margin:0 !important; background:transparent !important; box-shadow:none !important; border-radius:0 !important; overflow:visible !important; padding:0 !important; }
.band{ width:100%; }
.band__inner{ max-width:1200px; margin:0 auto; padding:60px 40px; }
.band--soft{ background:#FBFAF6; } .band--white{ background:var(--white); } .band--cream{ background:#F1ECE1; } .band--indigo{ background:var(--indigo); color:#EDEFF4; }
.band-divider{ border-top:1px solid var(--line); }
.band-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 10px; }
.band--indigo .band-label{ color:var(--amber); }
.site-header{ position:sticky; top:0; z-index:9000; box-shadow:0 1px 0 rgba(27,36,48,.06); }
.site-header .credbar{ padding:9px 0; }
.credbar__inner{ max-width:1200px; margin:0 auto; padding:0 40px; display:flex; gap:14px; flex-wrap:wrap; }
.site-header .sitenav{ padding:0; border-bottom:1px solid var(--line); }
.nav__inner{ max-width:1200px; margin:0 auto; padding:15px 40px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.site-footer{ background:var(--indigo); color:#B9C1D4; }
.site-footer__inner{ max-width:1200px; margin:0 auto; padding:48px 40px 26px; display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:34px; }
.site-footer .f-brand{ font-weight:800; color:#fff; font-size:17px; letter-spacing:.02em; margin-bottom:10px; }
.site-footer .f-tag{ font-size:12.5px; line-height:1.65; color:#9AA4B8; max-width:40ch; }
.site-footer h5{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8A93A6; margin:0 0 13px; }
.site-footer a{ color:#DCE3F0; text-decoration:none; font-size:13px; display:block; margin-bottom:9px; }
.site-footer a:hover{ color:var(--amber); }
.site-footer .f-meta{ font-size:12.5px; color:#9AA4B8; line-height:1.7; }
.site-footer__bottom{ border-top:1px solid #33405C; }
.site-footer__bottom .inner{ max-width:1200px; margin:0 auto; padding:16px 40px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:11.5px; color:#8A93A6; }
.jp-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:26px; }
.jp-head h2{ color:#fff !important; font-size:27px; margin:6px 0 0 !important; }
.jp-head p{ font-size:13.5px; color:#B9C1D4; margin:10px 0 0; max-width:66ch; line-height:1.6; }
.jp-link{ color:var(--amber); font-weight:600; font-size:13px; text-decoration:none; white-space:nowrap; border:1px solid #4F5D7C; padding:11px 17px; border-radius:6px; }
.jp-link:hover{ background:rgba(232,163,61,.12); }
.logo-wall{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.logo-chip{ background:#FFFFFF; border:1px solid #E6E1D6; border-radius:8px; padding:14px 12px; display:flex; align-items:center; justify-content:center; min-height:66px; }
.logo-wall img{ max-width:100%; max-height:36px; width:auto; object-fit:contain; }
.jp-note{ font-size:10.5px; color:#8A93A6; margin:18px 0 0; }
@media (max-width:820px){ .band__inner{ padding:40px 20px; } .credbar__inner,.nav__inner,.site-footer__inner,.site-footer__bottom .inner{ padding-left:20px; padding-right:20px; } .site-footer__inner{ grid-template-columns:1fr; gap:26px; } .logo-wall{ grid-template-columns:repeat(3,1fr); } .jp-head h2{ font-size:22px; } }
@media (max-width:480px){ .logo-wall{ grid-template-columns:repeat(2,1fr); } }

/* hero row (band version) */
.hero-row{ display:flex; align-items:center; gap:46px; }
.hero-text{ flex:1 1 560px; max-width:600px; display:flex; flex-direction:column; gap:16px; }
.hero-text > *{ margin:0 !important; }
.hero-text h1{ font-size:44px; line-height:1.06; letter-spacing:-0.015em; color:var(--indigo); font-weight:800; }
.hero-text .ctas{ margin:4px 0 0 !important; }
.hero-visual{ flex:0 1 430px; }
.eyebrow{ margin:0; }
@media (max-width:900px){ .hero-row{ flex-direction:column; align-items:flex-start; gap:28px; } .hero-visual{ display:none; } .hero-text{ max-width:none; } .hero-text h1{ font-size:32px; } }

/* force full-width container inner */
#atomap-wrap > .e-con-inner{ max-width:none !important; width:100% !important; padding:0 !important; }
#atomap-wrap .elementor-widget-html, #atomap-wrap .elementor-widget-html > .elementor-widget-container{ width:100% !important; }
#atomap-wrap.e-con, #atomap-wrap .e-con-inner{ --content-width:100% !important; }

/* force child chain full width */
#atomap-wrap.e-con{ --content-width:100% !important; }
#atomap-wrap, #atomap-wrap > .elementor-element, #atomap-wrap > .elementor-widget, #atomap-wrap .elementor-widget-html, #atomap-wrap .elementor-widget-html > .elementor-widget-container{ max-width:100% !important; width:100% !important; }

/* inner page safety centering */



.page-h1{ font-size:34px; line-height:1.14; letter-spacing:-0.01em; color:var(--indigo); font-weight:800; margin:0 0 14px; }

/* v3 media + type */
.sitenav .brand{ display:flex; align-items:center; }
.brand-logo{ height:38px; width:auto; display:block; }
.badges-wrap{ display:flex; flex-direction:column; gap:16px; align-items:center; }
.badge--lead{ font-size:12px; }
.accred-logos{ display:flex; gap:26px; flex-wrap:wrap; align-items:center; justify-content:center; }
.accred-logos img{ height:38px; width:auto; max-width:110px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:opacity .15s, filter .15s; }
.accred-logos img:hover{ filter:grayscale(0); opacity:1; }
.partner-logos{ display:flex; align-items:center; gap:24px; margin-top:14px; flex-wrap:wrap; }
.partner-logos img{ height:30px; width:auto; opacity:.9; }
.partner-logos .pl-label{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.field-photos{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:6px 0 4px; }
.field-photos figure{ margin:0; }
.field-photos img{ width:100%; height:280px; object-fit:cover; border-radius:10px; display:block; box-shadow:0 10px 28px rgba(27,36,48,.14); }
.field-photos figcaption{ font-size:11.5px; color:var(--muted); margin-top:9px; line-height:1.5; }
.sub{ font-size:16.5px; }
.card p{ font-size:13.5px; } .card ul li{ font-size:13px; }
.roof-card p{ font-size:13px; }
.track-sub, .scope-sub{ font-size:13.5px; }
.detail-row .val{ font-size:14px; }
.form-card .field input, .form-card .field textarea{ font-size:16px; }
.narrative p{ font-size:15.5px; }
.tl-text{ font-size:13.5px; }
.eng-card p{ font-size:13px; }
@media (max-width:780px){
  .field-photos{ grid-template-columns:1fr; } .field-photos img{ height:230px; }
  .three, .roof-grid, .why-grid, .lead-grid, .engagements, .team-grid{ gap:16px; }
  .card, .roof-card, .why-card, .eng-card, .lead-card{ padding:22px 20px; }
  .band__inner{ padding:40px 20px; }
  .accred-logos{ gap:20px; } .accred-logos img{ height:32px; }
}
/* brand-logo forced */
.brand-logo{ height:38px !important; width:auto !important; max-width:190px !important; }
.nav__inner .brand{ max-height:44px; overflow:hidden; }

/* v3 img fixes */
.accred-logos img{ height:38px !important; width:auto !important; }
.partner-logos img{ height:30px !important; width:auto !important; }
.field-photos img{ height:280px !important; width:100% !important; object-fit:cover; }
.site-header .sitenav{ display:block; }
@media (max-width:780px){
  .field-photos img{ height:230px !important; }
  .accred-logos img{ height:32px !important; }
}
/* v3 anim */
.band.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.band.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .band.reveal{ opacity:1 !important; transform:none !important; } }
.gauge-arc{ animation:gaugeDraw 1.6s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes gaugeDraw{ from{ stroke-dashoffset:440; } to{ stroke-dashoffset:132; } }
/* v4 crop+accred */
.field-photos img{ height:360px !important; object-position:center 20%; }
@media (max-width:780px){ .field-photos img{ height:300px !important; } }
.accred-logos{ display:grid !important; grid-template-columns:repeat(5,1fr); gap:22px 26px; align-items:center; justify-items:center; max-width:760px; margin:0 auto; }
.accred-logos img{ max-height:46px !important; height:auto !important; max-width:100% !important; width:auto !important; filter:none !important; opacity:1 !important; object-fit:contain; transition:transform .15s ease; }
.accred-logos img:hover{ transform:translateY(-3px); }
@media (max-width:780px){ .accred-logos{ grid-template-columns:repeat(3,1fr); } }

/* v4 st+lw */
.esco-lead{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:center; }
.st-logo{ height:40px !important; width:auto !important; max-width:230px !important; }

/* v5 lang switch + jp font stack + how-we-work band */
.lang-switch{ margin-left:10px; padding:4px 12px; border:1px solid var(--line); border-radius:20px; font-size:11px; font-weight:700; color:var(--indigo) !important; text-decoration:none !important; letter-spacing:.03em; white-space:nowrap; }
.lang-switch:hover{ background:var(--indigo); color:#fff !important; border-color:var(--indigo); }
.lang-ja, .lang-ja .mono{ font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",Meiryo,-apple-system,"Helvetica Neue",Arial,sans-serif; }
.lang-ja h1, .lang-ja h2, .lang-ja h3, .lang-ja h4{ letter-spacing:.02em; }
.lang-ja .credbar, .lang-ja .sitenav{ font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",Meiryo,-apple-system,"Helvetica Neue",Arial,sans-serif; }
.jp-checker-note{ background:#F2EFE7; border:1px dashed var(--line); border-radius:8px; padding:14px 18px; font-size:13px; color:var(--muted); line-height:1.6; margin:0 0 18px; max-width:76ch; }

/* v6: practice-icon sizing+color, balanced practices layout, credentials/logo fixes */
.roof-ic{ width:46px; height:46px; border-radius:50%; background:rgba(38,52,77,.08); }
.card-ic svg, .roof-ic svg{ width:23px; height:23px; stroke-width:1.6; }

.roof-feature{ background:var(--white); border:1px solid var(--line); border-left:3px solid var(--amber); border-radius:10px; padding:22px 26px 24px; display:flex; gap:20px; align-items:flex-start; margin-top:16px; }
.roof-feature .roof-ic{ background:rgba(232,163,61,.18); flex:0 0 auto; margin-bottom:0; }
.roof-feature .roof-ic svg{ stroke:var(--amber); }
.roof-feature .rf-body h4{ font-size:15.5px; margin:0 0 8px; color:var(--indigo); }
.roof-feature .rf-body h4 span{ font-size:10px; color:var(--amber); font-weight:700; }
.roof-feature .rf-body p{ font-size:13px; color:#6B7488; margin:0; line-height:1.6; max-width:74ch; }
.roof-feature .rf-body a{ color:var(--amber); font-weight:600; text-decoration:none; }
@media (max-width:780px){ .roof-feature{ flex-direction:column; padding:20px; } }

.partner-logos img.logo-tall{ height:36px !important; }

.accred-logos{ grid-template-columns:repeat(6,1fr) !important; }
@media (max-width:780px){ .accred-logos{ grid-template-columns:repeat(3,1fr) !important; } }

@media (max-width:780px){ .epcmv-grid{ grid-template-columns:1fr !important; } }


/* v7: selective centering for pull-quotes and short statements */
.narrative p.lede{ text-align:center; max-width:58ch; margin:0 auto 18px; }

/* v9: consistent narrative box alignment (title+content match) + unified bigger icon chips */
.narrative p{ text-align:justify; margin-left:auto; margin-right:auto; }
.card-ic, .roof-ic, .why-ic{ width:58px !important; height:58px !important; border-radius:50% !important; background:rgba(38,52,77,.08) !important; margin-bottom:14px !important; }
.card-ic svg, .roof-ic svg, .why-ic svg{ width:28px !important; height:28px !important; stroke-width:1.6 !important; }
