:root{
  --bg:#FAFAF8; --surface:#FFFFFF; --surface-2:#F2F5F6;
  --ink:#1C3A52; --ink-muted:#5C6E7A; --line:#E5E9EA;
  --accent:#1E93C2; --accent-ink:#FFFFFF; --accent-soft:#DFF0F8; --accent-dark:#155C79;
  --gold:#C98E1B; --gold-soft:#FBF0D9;
  --green:#5A9F2C; --green-soft:#E7F3DC;
  --coral:#DC5636; --coral-soft:#FBE4DD;
  --shadow:0 1px 2px rgba(28,58,82,.05),0 16px 40px -20px rgba(28,58,82,.22);
  --font:'Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0E2233; --surface:#153148; --surface-2:#1A3A54;
    --ink:#EAF1F5; --ink-muted:#9FB6C4; --line:#294F68;
    --accent:#5FC1EA; --accent-ink:#06202E; --accent-soft:#1D4A63; --accent-dark:#8FDBFA;
    --gold:#EEBD52; --gold-soft:#3A2E15;
    --green:#8ECB5C; --green-soft:#22331B;
    --coral:#EF8666; --coral-soft:#3A2117;
    --shadow:0 1px 2px rgba(0,0,0,.35),0 16px 40px -20px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --bg:#0E2233; --surface:#153148; --surface-2:#1A3A54;
  --ink:#EAF1F5; --ink-muted:#9FB6C4; --line:#294F68;
  --accent:#5FC1EA; --accent-ink:#06202E; --accent-soft:#1D4A63; --accent-dark:#8FDBFA;
  --gold:#EEBD52; --gold-soft:#3A2E15;
  --green:#8ECB5C; --green-soft:#22331B;
  --coral:#EF8666; --coral-soft:#3A2117;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 16px 40px -20px rgba(0,0,0,.6);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--bg); color:var(--ink); font-family:var(--font); -webkit-font-smoothing:antialiased;}
img{display:block; max-width:100%;}
a{color:inherit;}
::selection{background:var(--accent-soft); color:var(--ink);}

.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.narrow{max-width:760px;}

h1,h2,h3,h4{font-weight:800; letter-spacing:-0.01em; text-wrap:balance; margin:0;}
h1{font-size:clamp(2.1rem,1.4rem + 3vw,3.4rem); line-height:1.05;}
h2{font-size:clamp(1.6rem,1.3rem + 1.3vw,2.3rem); line-height:1.15;}
h3{font-size:1.15rem; line-height:1.3;}
p{line-height:1.7; margin:0;}
.lede{font-size:1.15rem; color:var(--ink-muted); line-height:1.6;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:.75rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--accent-dark);}
.eyebrow::before{content:""; width:18px; height:2px; background:var(--accent); display:inline-block; border-radius:2px;}

/* header */
header.site{position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px 0;}
.logo-link{display:flex; align-items:center;}
.logo-link img{height:34px; width:auto;}
nav.main-nav{display:flex; align-items:center; gap:28px;}
nav.main-nav a{font-size:.95rem; font-weight:600; text-decoration:none; color:var(--ink-muted); padding:6px 0; border-bottom:2px solid transparent;}
nav.main-nav a:hover, nav.main-nav a.active{color:var(--ink); border-color:var(--accent);}
.btn{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:.92rem; padding:11px 20px; border-radius:10px; text-decoration:none; border:1.5px solid transparent; white-space:nowrap;}
.btn-primary{background:var(--accent); color:var(--accent-ink);}
.btn-primary:hover{background:var(--accent-dark);}
.btn-ghost{border-color:var(--line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent-dark);}
.btn-ext::after{content:"↗"; font-weight:800;}

/* hero */
.hero{padding:64px 0 88px; overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
.hero-photo{border-radius:20px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3;}
.hero-photo img{width:100%; height:100%; object-fit:cover;}
.hero-actions{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:32px; margin-top:40px; flex-wrap:wrap;}
.hero-stats .num{font-size:1.6rem; font-weight:800; font-variant-numeric:tabular-nums; color:var(--accent-dark);}
.hero-stats .lbl{font-size:.82rem; color:var(--ink-muted);}

section{padding:76px 0;}
section.alt{background:var(--surface-2);}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{margin-top:10px;}
.section-head p{margin-top:14px;}

/* pillar / feature cards */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
@media (max-width:860px){.grid-3,.grid-2{grid-template-columns:1fr;} .hero-grid{grid-template-columns:1fr;} .hero-photo{order:-1;}}

.pillar-card{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:30px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:14px;}
.pillar-tag{display:inline-flex; align-self:flex-start; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:4px 10px; border-radius:999px;}
.pillar-tag.internal{background:var(--gold-soft); color:var(--gold);}
.pillar-tag.external{background:var(--green-soft); color:var(--green);}
.pillar-card p{color:var(--ink-muted); flex-grow:1;}
.pillar-card ul{margin:0; padding-left:18px; font-size:.92rem; color:var(--ink-muted); line-height:1.75;}

.strength-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px 32px;}
@media (max-width:760px){.strength-grid{grid-template-columns:repeat(2,1fr);}}
.strength{display:flex; gap:14px;}
.strength .idx{flex-shrink:0; width:38px; height:38px; border-radius:10px; background:var(--accent-soft); color:var(--accent-dark); display:flex; align-items:center; justify-content:center; font-weight:800;}
.strength h4{font-size:1rem;}
.strength p{font-size:.9rem; color:var(--ink-muted); margin-top:4px;}

/* leadership */
.leader-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:760px){.leader-grid{grid-template-columns:1fr;}}
.leader-card{text-align:left;}
.leader-photo{border-radius:16px; overflow:hidden; aspect-ratio:3/2; box-shadow:var(--shadow); margin-bottom:16px;}
.leader-photo img{width:100%; height:100%; object-fit:cover;}
.leader-card h4{font-size:1.05rem;}
.leader-card .role{color:var(--accent-dark); font-size:.88rem; font-weight:600; margin-top:2px;}

/* legal block */
.legal-card{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:34px 38px; box-shadow:var(--shadow);}
.legal-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px 32px; margin-top:8px;}
@media (max-width:640px){.legal-grid{grid-template-columns:1fr;}}
.legal-item .k{font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-muted); font-weight:700;}
.legal-item .v{font-size:1.02rem; font-weight:600; margin-top:3px;}

/* timeline */
.timeline{border-left:2px solid var(--line); margin-left:6px; padding-left:28px; display:flex; flex-direction:column; gap:30px;}
.tl-item{position:relative;}
.tl-item::before{content:""; position:absolute; left:-33px; top:4px; width:12px; height:12px; border-radius:50%; background:var(--accent); border:3px solid var(--bg);}
.tl-year{font-weight:800; color:var(--accent-dark); font-size:.95rem;}
.tl-item p{margin-top:4px; color:var(--ink-muted);}

/* contact */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:28px; box-shadow:var(--shadow); margin-bottom:16px;}
.contact-card .k{font-size:.76rem; text-transform:uppercase; color:var(--ink-muted); font-weight:700; letter-spacing:.05em;}
.contact-card .v{font-size:1.05rem; font-weight:600; margin-top:4px;}
.contact-card .v a{color:var(--accent-dark); text-decoration:none;}
form.lead-form{display:flex; flex-direction:column; gap:16px;}
form.lead-form label{font-size:.85rem; font-weight:700; margin-bottom:6px; display:block;}
form.lead-form input, form.lead-form textarea{width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--line); background:var(--surface); color:var(--ink); font-family:var(--font); font-size:.95rem;}
form.lead-form input:focus, form.lead-form textarea:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.form-note{font-size:.8rem; color:var(--ink-muted); margin-top:2px;}

/* branch list */
.branch-list{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:18px;}
@media (max-width:640px){.branch-list{grid-template-columns:1fr;}}
.branch{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px 18px;}
.branch .name{font-weight:700; font-size:.95rem;}
.branch .lic{font-size:.82rem; color:var(--ink-muted); margin-top:3px; font-variant-numeric:tabular-nums;}

/* legal text pages */
.legal-copy h2{margin-top:40px; font-size:1.3rem;}
.legal-copy h2:first-child{margin-top:0;}
.legal-copy p, .legal-copy li{color:var(--ink-muted); font-size:.98rem; margin-top:12px;}
.legal-copy ul{padding-left:20px;}
.updated-note{display:inline-block; background:var(--accent-soft); color:var(--accent-dark); font-size:.82rem; font-weight:600; padding:6px 12px; border-radius:8px; margin-bottom:28px;}

/* footer */
footer.site{background:var(--surface-2); border-top:1px solid var(--line); padding:56px 0 28px; margin-top:40px;}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px;}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr; gap:28px;}}
.foot-logo img{height:30px; margin-bottom:14px;}
.foot-grid p{color:var(--ink-muted); font-size:.9rem; max-width:34ch;}
.foot-col h5{font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-muted); margin-bottom:14px;}
.foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.foot-col a{text-decoration:none; font-size:.92rem; color:var(--ink);}
.foot-col a:hover{color:var(--accent-dark);}
.foot-legal{border-top:1px solid var(--line); margin-top:40px; padding-top:22px; font-size:.8rem; color:var(--ink-muted); line-height:1.8;}

@media (max-width:760px){
  nav.main-nav{display:none;}
  .hero{padding:44px 0 60px;}
  section{padding:52px 0;}
  .legal-card{padding:24px;}
}
