@font-face{font-family:"APMLAO Phetsarath";src:url(fonts/APMLAO-Phetsarath.ttf) format("truetype");font-weight:400;font-display:swap}
/* APMLAO — "Exchange Board" design system. Independent from the Thai site. */
@font-face{font-family:"Noto Sans Lao Looped";src:url(fonts/NotoSansLaoLooped-VF.woff) format("woff");font-weight:100 900;font-display:swap}
@font-face{font-family:"Noto Sans Lao";src:url(fonts/NotoSansLao-VF.woff) format("woff");font-weight:100 900;font-display:swap}
:root{
 --c-white:#FFFFFF; --c-fog:#F2F3F6; --c-steel:#C9CED9; --c-line:#E1E4EB;
 --c-ink:#121A33; --c-ink-2:#4E5670; --c-blue:#2B3FA0; --c-navy:#17245F; --c-red:#C10517; --c-red-2:#990412; --c-red-soft:#FBE9EA;
 --c-on-dark:#FFFFFF; --c-on-dark-2:#C9D0EE;
 --f-head:"APMLAO Phetsarath","Noto Sans Lao Looped","Noto Sans Lao",sans-serif; --f-body:"APMLAO Phetsarath","Noto Sans Lao","Noto Sans Thai",system-ui,sans-serif;
 --t-xs:13px; --t-sm:15px; --t-md:18px; --t-lg:20px; --t-xl:clamp(22px,2.2vw,28px); --t-2xl:clamp(28px,3vw,42px); --t-3xl:clamp(34px,4.4vw,60px);
 --lh-body:1.95; --lh-head:1.5;
 --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:80px; --s9:120px;
 --wrap:1220px;
 --r:6px; --shadow:0 30px 60px -32px rgba(23,36,95,.55);
 --ease:cubic-bezier(.2,.75,.2,1); --dur:.3s;
 --stripe:linear-gradient(var(--c-navy) 0 60%,var(--c-red) 60% 100%); /* blue band over red band */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--c-fog);color:var(--c-ink);font:400 var(--t-md)/var(--lh-body) var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0 0 var(--s4)}
/* Compensate for smaller Latin letterforms in the shared Lao font. */
html[lang="en"] .company-name{font-size:1.12em;line-height:inherit}
h1,h2,h3{font-family:var(--f-head);font-weight:700;line-height:var(--lh-head);margin:0;color:var(--c-navy)}
:focus-visible{outline:3px solid var(--c-red);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--c-ink);color:#fff;padding:var(--s3) var(--s4);z-index:100}
.skip:focus-visible{left:var(--s3);top:var(--s3)}
main:focus{outline:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--s6)}
.review{background:var(--c-ink);color:#C3C8D8;text-align:center;font-size:var(--t-xs);padding:4px var(--s4)}
.stripe{height:12px;background:var(--stripe)}
/* elevation (cards, buttons) */
:root{--elev-1:0 1px 2px rgba(18,26,51,.06),0 10px 28px -16px rgba(18,26,51,.28);--elev-2:0 2px 4px rgba(18,26,51,.06),0 22px 44px -20px rgba(18,26,51,.38)}
/* WebP pictures: <picture> must not change the layout of the <img> inside */
picture{display:contents}picture>source{display:none}
/* header */
.site-header{background:var(--c-white);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--c-line)}
.site-header .wrap{display:flex;align-items:center;gap:var(--s5);min-height:86px}
.logo img{height:50px;width:auto}
.main-nav{flex:1;display:flex;align-items:center;justify-content:space-between;gap:4px}
.main-nav a,.nav-toggle{display:block;white-space:nowrap;padding:10px 12px;text-decoration:none;font:500 23px/1.5 var(--f-head);color:var(--c-navy);border:0;border-radius:10px;background:transparent;text-underline-offset:5px;text-decoration-thickness:2px;cursor:pointer}
.nav-group{position:relative}
.nav-toggle{display:flex;align-items:center;gap:9px;min-height:48px}
.nav-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s}
.nav-toggle[aria-expanded="true"] .nav-chevron{transform:rotate(225deg)}
.nav-submenu{position:absolute;top:calc(100% + 8px);left:0;min-width:230px;padding:8px;background:#fff;border:1px solid #e0e6f1;box-shadow:0 16px 36px #17245f24;border-radius:14px}
.nav-submenu[hidden]{display:none}
.main-nav .nav-submenu a{padding:12px 16px;min-height:48px;font-size:21px}
.main-nav a:hover,.nav-toggle:hover{background:#f0f4fb}
.main-nav a[aria-current],.nav-group.is-current>.nav-toggle{background:#eaf0fa;text-decoration:underline;text-decoration-color:var(--c-red);color:var(--c-navy)}
.main-nav :focus-visible{outline:2px solid var(--c-blue);outline-offset:3px}
.switch{display:flex;align-items:center;gap:var(--s3);font-size:var(--t-sm)}
.switch .co{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--c-ink-2);padding:6px 10px;border:1px solid var(--c-steel);border-radius:4px;white-space:nowrap}
.switch .co{justify-content:center;min-width:44px;min-height:44px}
.switch .co svg{display:block;width:26px;height:auto;border-radius:2px}
.switch .co:hover{border-color:var(--c-blue);color:var(--c-blue)}
.lang{display:flex;border:1px solid var(--c-steel);border-radius:4px;overflow:hidden}
.lang a{display:flex;align-items:center;min-height:36px;padding:6px 12px;text-decoration:none;color:var(--c-ink-2);font-weight:600;line-height:1}
.lang a+a{border-left:1px solid var(--c-steel)}
.lang a:hover{color:var(--c-blue)}
.lang a[aria-current]{background:var(--c-navy);color:var(--c-on-dark)}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--c-steel);border-radius:4px;padding:8px 14px;font:600 var(--t-sm) var(--f-body);color:var(--c-ink);cursor:pointer}
.mobile-nav{display:none}
/* buttons */
.btn{display:inline-flex;gap:var(--s3);align-items:center;background:var(--c-navy);color:#fff;text-decoration:none;font-weight:600;font-size:var(--t-sm);padding:13px 24px;border-radius:4px;border:0;cursor:pointer;transition:background var(--dur),transform var(--dur) var(--ease)}
.btn:hover{background:var(--c-blue);transform:translateY(-1px)}
.btn.red{background:var(--c-red)}
.btn.red:hover{background:var(--c-red-2)}
.btn.out{background:transparent;color:var(--c-navy);box-shadow:inset 0 0 0 1.5px var(--c-navy)}
.btn.out:hover{background:var(--c-navy);color:#fff}
.tag{display:inline-block;font-size:var(--t-xs);font-weight:700;letter-spacing:.04em;color:#fff;background:var(--c-red);padding:2px 12px;border-radius:3px}
/* floating header (shadow once scrolled) + button depth */
.site-header{transition:box-shadow var(--dur) var(--ease)}.site-header.scrolled{box-shadow:0 10px 30px -18px rgba(18,26,51,.45)}
.btn{box-shadow:0 8px 20px -12px rgba(23,36,95,.7)}.btn.out{box-shadow:inset 0 0 0 1.5px var(--c-navy)}
/* hero */
.hero{background:linear-gradient(90deg,rgba(3,32,66,.90),rgba(3,32,66,.42)),url(img/apmlao-header.jpg) center/cover no-repeat;color:#fff;border-bottom:1px solid var(--c-line)}
.hero h1{color:#fff}
.hero .tag{display:block;color:#d0e5ff;background:none;border:0;border-radius:0;padding:0;font-size:13px;font-weight:500;letter-spacing:.03em;line-height:1.6}
.hero .wrap{display:block;padding-top:40px;padding-bottom:40px}
.hero-copy{max-width:960px}
.hero h1{font-size:clamp(28px,2.7vw,38px);line-height:1.45;margin:10px 0 16px;text-wrap:balance}
.hero .sub{font:500 20px/1.7 var(--f-head);color:#e0ebf8;margin:0 0 14px}
.hero p{color:#e0ebf8;max-width:850px;font-size:var(--t-md);line-height:var(--lh-body);margin:0;text-wrap:pretty}
.board{background:var(--c-navy);border-radius:var(--r);padding:var(--s5);color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}
.board::before{content:"";position:absolute;inset:0 0 auto 0;height:10px;background:var(--stripe)}
.board-h{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);margin:var(--s3) 0 var(--s3);font-size:var(--t-xs);color:var(--c-on-dark-2)}
.board-h b{color:#fff;font:600 var(--t-md) var(--f-head)}
.row{display:grid;grid-template-columns:56px 80px 1fr;gap:var(--s4);align-items:center;padding:var(--s3) 0;border-top:1px solid rgba(255,255,255,.14);text-decoration:none;opacity:0;transform:translateX(-10px);animation:rowin .5s var(--ease) forwards}
.row:nth-of-type(2){animation-delay:.12s}.row:nth-of-type(3){animation-delay:.24s}.row:nth-of-type(4){animation-delay:.36s}.row:nth-of-type(5){animation-delay:.48s}
@keyframes rowin{to{opacity:1;transform:none}}
.row .lg{width:56px;height:56px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden}
.row .lg img{width:48px;height:48px;object-fit:contain}
.row .tk{font:700 24px/1 var(--f-body);letter-spacing:.04em}
.row .nm{font-size:var(--t-sm);line-height:1.55;color:var(--c-on-dark-2)}
.row .nm small{display:block;color:#fff;font-size:var(--t-xs)}
/* page head */
.page-head{background:linear-gradient(90deg,rgba(3,32,66,.86),rgba(3,32,66,.2)),url(img/apmlao-header.jpg) center/cover no-repeat;color:#fff;border-bottom:1px solid var(--c-line);position:relative}
.page-head .wrap{padding-top:var(--s7);padding-bottom:var(--s7)}
.crumb{font-size:var(--t-xs);color:#d0e5ff;margin-bottom:var(--s3)}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--c-red)}
.page-head h1{font-size:var(--t-2xl);color:#fff}
.page-head .sub{color:#e0ebf8;margin:var(--s2) 0 0}
.page-head::after{content:"";position:absolute;right:0;bottom:-1px;width:min(40%,420px);height:10px;background:var(--stripe)}
/* sections */
.sec{padding:var(--s8) 0;scroll-margin-top:100px}
main>.page-head+.sec{padding-top:28px}
main:has(>.page-head)>.sec:last-child{padding-bottom:40px}
.sec.white{background:var(--c-white)}
.sec.navy{background:var(--c-navy);color:#fff}
.sec.navy h2,.sec.navy h3{color:#fff}
.sec.navy p{color:var(--c-on-dark-2)}
.sec-head{margin-bottom:var(--s6)}
.sec-head h2{font-size:var(--t-2xl)}
.sec-head h2::after{content:"";display:block;width:56px;height:4px;background:var(--c-red);margin-top:var(--s3)}
.sec.navy .sec-head h2::after{background:#fff}
.kick{font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;color:var(--c-red);display:block;margin-bottom:var(--s2)}
.lead{font-size:var(--t-md);color:var(--c-ink-2);max-width:42em}
.en{font-size:var(--t-xs);color:var(--c-ink-2);letter-spacing:.02em}

/* services list */
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s6);background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r);padding:var(--s3) var(--s6)}
.svc-list a{display:grid;grid-template-columns:28px 1fr;gap:var(--s3);padding:var(--s4) 0;border-bottom:1px dashed var(--c-steel);text-decoration:none}
.svc-list a:nth-last-child(-n+2){border-bottom:0}
.svc-list a i{width:14px;height:14px;margin-top:.55em;background:var(--c-blue);transform:skewX(-20deg)}
.svc-list a:hover b{color:var(--c-red)}
.svc-list b{display:block;font-weight:600;line-height:1.6}
.svc-intro{font-size:var(--t-md);font-weight:600;line-height:var(--lh-body);color:var(--c-navy);margin:0 0 32px;max-width:1100px}
.svc-groups{display:grid;gap:48px}
.svc-group{min-width:0}
.svc-group header{display:flex;gap:16px;align-items:center;margin-bottom:22px}
.svc-group header .n{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:12px;background:var(--c-navy);color:#fff;font-size:22px;font-weight:700}
.svc-group header h2{color:var(--c-navy);font-size:24px;line-height:1.6;margin:0}
.svc-group header .en{display:block;color:var(--c-ink-2);font-size:13px;letter-spacing:1.4px;margin-top:5px}
.svc-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.svc-items article{min-width:0;background:#fff;border:1px solid #dce3ef;border-radius:16px;overflow:visible;box-shadow:0 8px 24px -18px #17245f66;display:flex;flex-direction:column;position:relative}
.svc-items article::before,.svc-items article::after{content:"";position:absolute;left:100%;width:26px;height:3px;pointer-events:none}
.svc-items article::before{top:14px;background:var(--c-navy)}
.svc-items article::after{bottom:14px;background:var(--c-red)}
.svc-items article:nth-child(3n)::before,.svc-items article:nth-child(3n)::after,.svc-items article:last-child::before,.svc-items article:last-child::after{display:none}
@media(min-width:621px) and (max-width:960px){.svc-items article:nth-child(3n)::before,.svc-items article:nth-child(3n)::after{display:block}.svc-items article:nth-child(2n)::before,.svc-items article:nth-child(2n)::after,.svc-items article:last-child::before,.svc-items article:last-child::after{display:none}}
@media(max-width:620px){.svc-items article::before,.svc-items article::after{display:none}}

.svc-art{border-radius:15px 15px 0 0;height:190px;background:#edf3fa;overflow:hidden}
.svc-art img{width:100%;height:100%;object-fit:cover;object-position:center}
.svc-copy{padding:24px;flex:1}
.svc-items h3{font-size:20px;line-height:1.65;color:var(--c-navy);margin:0 0 10px}
.svc-items .en{display:block;font-size:14px;line-height:1.5;font-weight:600;color:#35517c}
.svc-items p{font-size:var(--t-md);line-height:var(--lh-body);color:var(--c-ink-2);margin:18px 0 0;padding-top:16px;border-top:1px solid #e6ebf3}
@media(max-width:620px){.svc-group header h2{font-size:21px}.svc-group header .en{font-size:11px;letter-spacing:.8px}.svc-copy{padding:20px}.svc-art{height:180px}}

/* vision */
.vision{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s7);align-items:start}
.vision figure{margin:0;position:sticky;top:110px}
.vision img{display:block;width:100%;height:auto;border-radius:var(--r)}
.vision figcaption{margin-top:var(--s3);font-weight:700;color:var(--c-navy)}
.vision figcaption span{display:block;font-weight:400;font-size:var(--t-xs);color:var(--c-ink-2)}
.vision-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:16px;align-items:stretch}
.vision-items article{grid-column:span 2;background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-navy);border-radius:14px;padding:20px}
.vision-items article:last-child{grid-column:2 / span 2}
.vision-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.vision-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:#eef2fb;color:var(--c-navy)}
.vision-icon svg{width:26px;height:26px}
.vision-items h3{font-size:18px;line-height:1.6;margin:0}
.vision-items p{color:var(--c-ink-2);margin:0;font-size:var(--t-md);line-height:var(--lh-body)}
/* plaques */
.plaques{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4)}
.plaque{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3)}
.plaque .lg{height:110px;display:grid;place-items:center}
.plaque .lg img{max-height:104px;max-width:100%;object-fit:contain}
.plaque .tk{display:flex;justify-content:space-between;align-items:center;font:700 22px var(--f-body);color:var(--c-navy);border-top:2px solid var(--c-navy);padding-top:var(--s3)}
.plaque .tk small{font-size:var(--t-xs);background:var(--c-fog);color:var(--c-ink-2);padding:2px 8px;border-radius:3px}
.plaque .nm{font-weight:600;line-height:1.5}
.plaque .dt{font-size:var(--t-sm);color:var(--c-red)}
.val-list{display:grid;gap:var(--s3)}
.val-list article{display:grid;grid-template-columns:120px 1fr;gap:var(--s5);align-items:center;background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r);padding:var(--s4) var(--s5)}
.val-list img{max-height:90px;max-width:120px;object-fit:contain;margin:auto}
.val-list p{margin:0;min-width:0;overflow-wrap:anywhere}
/* layered cards */
.plaque,.card,.bio,.vision-items article,.points article{box-shadow:var(--elev-1);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.plaque:hover,.card:hover{box-shadow:var(--elev-2);transform:translateY(-3px)}
/* Portrait cards: consistent framing without changing the original photographs. */
.people{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.card{display:grid;grid-template-rows:subgrid;grid-row:span 4;gap:0;min-width:0;overflow:hidden;background:#fff;border:1px solid var(--c-line);border-radius:16px;padding:0}
.card img{width:100%;height:100%;min-height:0;aspect-ratio:1/2;object-fit:cover;object-position:center top;background:#e8e9ed;border-radius:0}
.card>div{display:contents}
.card b{display:block;padding:14px 12px 8px;border-top:3px solid var(--c-navy);font:600 18px/1.6 var(--f-head);color:var(--c-navy);text-wrap:balance}
.card .en{display:block;padding:0 12px 16px;font-size:14px;line-height:1.6;color:var(--c-ink-2)}
.card .role{font-size:var(--t-md);color:var(--c-navy);line-height:var(--lh-body);margin:0 12px;padding:16px 0 20px;border-top:1px solid var(--c-line)}
.card .role span{display:block;font-size:var(--t-md);color:var(--c-ink-2);margin-top:5px}
html[lang=en] .card{grid-row:span 3}
/* Organization chart: real text and responsive reporting lines. */
.org{background:linear-gradient(180deg,#f3f6fc,#fff);border:1px solid var(--c-line);border-radius:20px;padding:36px 24px}
.org-tree{display:flex;flex-direction:column;align-items:center}
.node{background:#fff;border:1px solid #ccd7e8;border-top:3px solid var(--c-red);border-radius:10px;padding:20px 16px;text-align:center;line-height:1.6;box-shadow:0 5px 16px #10295608;min-width:0;width:100%}
.org-tree>.node{width:min(100%,500px)}
.node b{display:block;font:600 18px/1.65 var(--f-head);color:var(--c-navy);text-wrap:balance}
.node small{display:block;font-size:14px;color:var(--c-ink-2);margin-top:5px}
.node.top{background:var(--c-navy);border-color:var(--c-navy);border-top-color:var(--c-red)}
.node.top b,.node.top small{color:#fff}
.node.red{background:#eaf0fa;border-top-color:var(--c-red)}
.vline{width:2px;height:30px;background:#acbad0;flex:none;align-self:center}
.branches{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;width:100%;position:relative;padding-top:30px}
.branches::before{content:"";position:absolute;top:0;left:calc(25% - 10px);right:calc(25% - 10px);height:2px;background:#acbad0}
.branch{display:flex;flex-direction:column;align-items:center;position:relative;min-width:0}
.branch::before{content:"";position:absolute;top:-30px;left:calc(50% - 1px);width:2px;height:30px;background:#acbad0}
.branch>.node{min-height:112px;display:flex;flex-direction:column;justify-content:center}
.leaves{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;padding:0 0 0 18px;margin-top:30px;border-left:2px solid #acbad0;position:relative}
.leaves::before{content:"";position:absolute;top:-30px;left:50%;width:2px;height:30px;background:#acbad0}
.leaves .node{position:relative;padding:14px 8px}
.leaves .node b{font-size:16px}.leaves .node small{font-size:13px}
/* Biography: identity column and spacious, connected chronological rows. */
.bio{display:grid;grid-template-columns:280px minmax(0,1fr);gap:48px;background:#fff;border:1px solid var(--c-line);border-radius:18px;padding:36px;margin-bottom:32px}
.bio .who{text-align:center;align-self:start}
.bio img{width:180px;height:180px;object-fit:cover;object-position:center top;background:#e8e9ed;border-radius:50%;margin-inline:auto}
.bio .who b{display:block;font:700 22px/1.6 var(--f-head);color:var(--c-navy);margin:20px 0 12px;text-wrap:balance}
.bio .who span{display:block;font-size:var(--t-md);color:var(--c-ink-2);line-height:var(--lh-body);margin-top:6px}
.bio-details{min-width:0}.bio-details>div+div{margin-top:36px}
.bio h3{font-size:22px;color:var(--c-navy);padding-left:16px;border-left:3px solid var(--c-red);margin-bottom:20px}
.yl{list-style:none;margin:0;padding:0}
.yl li{display:grid;grid-template-columns:125px minmax(0,1fr);gap:20px;padding:18px 0;border-top:1px solid var(--c-line);font-size:var(--t-md);line-height:var(--lh-body)}
.yl li b{color:var(--c-navy);font-weight:700}.yl li span{color:var(--c-ink-2)}
@media(max-width:1180px){.people{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:960px){.bio{grid-template-columns:200px minmax(0,1fr);gap:28px;padding:28px}.yl li{grid-template-columns:1fr;gap:5px}.branches{gap:24px}.branches::before{left:calc(25% - 6px);right:calc(25% - 6px)}}
@media(max-width:620px){.people{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card b{font-size:16px}.card .role{font-size:var(--t-md)}.bio{grid-template-columns:1fr;padding:22px;gap:30px}.bio .who{max-width:300px;margin:auto}.org{padding:24px 14px}.node b{font-size:17px}.branches{grid-template-columns:1fr;gap:30px;padding-top:0;border-left:2px solid #acbad0;padding-left:14px}.branches::before{display:none}.branch::before{top:30px;left:-14px;width:14px;height:2px}.branch>.node{min-height:0}.leaves{margin-top:24px}.leaves::before{top:-24px;height:24px}.bio h3{font-size:20px}}

/* history */
.hist{list-style:none;margin:0;padding:0;display:grid;gap:0}
.hist li{display:grid;grid-template-columns:140px 1fr 140px;gap:var(--s5);padding:var(--s5) 0;border-top:1px solid var(--c-line);align-items:start}
.hist .y{font:700 30px/1.1 var(--f-body);color:var(--c-navy)}
.hist .y small{display:block;font:600 var(--t-xs)/1.5 var(--f-body);color:var(--c-red);margin-top:var(--s2)}
.hist p{margin:0;color:var(--c-ink-2)}
.hist .lg img{max-height:70px;max-width:140px;object-fit:contain}
.points{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s3)}
.points article{background:var(--c-white);padding:var(--s5);border-top:4px solid var(--c-navy);border-radius:0 0 var(--r) var(--r)}
.points article:nth-child(2n){border-color:var(--c-red)}
.points .n{font:700 28px var(--f-body);color:var(--c-steel)}
.points h3{font-size:var(--t-md);margin:var(--s2) 0}
.points p{font-size:var(--t-md);color:var(--c-ink-2);margin:0}
.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s2)}
.gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--c-white)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gallery a:hover img{transform:scale(1.05)}
.empty{background:var(--c-white);border:1.5px dashed var(--c-steel);border-radius:var(--r);padding:var(--s7);text-align:center;color:var(--c-ink-2)}
/* Contact page: light location panel and navy-accented form. */
body[data-page="contact"] main>.sec{padding-bottom:40px}
.contact{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6)}
.contact .info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;background:#fff;border:1px solid #d4deef;border-radius:18px;padding:var(--s6);position:relative;overflow:hidden;box-shadow:0 12px 36px -24px #17245f55}
.contact .info::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--c-navy) 0 78%,var(--c-red) 78%)}
.contact-details{min-width:0;overflow-wrap:anywhere;align-self:start}
.contact .info h2{color:var(--c-navy);font-size:24px;margin:0 0 24px;padding:12px 16px;background:#f0f4fb;border-left:3px solid var(--c-red);border-radius:0 8px 8px 0;line-height:1.5}
.contact-details h3{font-size:22px;line-height:1.6;margin:0 0 14px;color:var(--c-navy)}

.contact .info address{font-style:normal;color:var(--c-ink-2);margin-bottom:24px;line-height:1.8}
.contact dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0;margin:0;background:transparent;border:0;border-top:1px solid var(--c-line);border-radius:0;padding:0;box-shadow:none}
.contact dt,.contact dd{padding:14px 0;border-bottom:1px solid var(--c-line)}
.contact dt{color:var(--c-ink-2);padding-right:20px}
.contact dd{margin:0;font-weight:600;color:var(--c-navy)}
.contact dt:nth-last-of-type(1),.contact dd:last-child{border-bottom:0}
.contact dd a{text-decoration:none;text-underline-offset:4px}
.contact dd a:hover{text-decoration:underline;color:var(--c-red)}
.contact .map-card{min-width:0;display:flex;flex-direction:column;align-self:stretch}
.contact .map-static{display:block;border:1px solid var(--c-steel);border-radius:12px;overflow:hidden}
.contact .map-static img{display:block;width:100%;height:auto}
.contact .map-static:focus-visible{outline:3px solid var(--c-blue);outline-offset:3px}
.contact .map-ph,.contact .map-card iframe{display:grid;place-items:center;width:100%;aspect-ratio:16/10;border:0;border-radius:12px;background:radial-gradient(ellipse at center,#fff,#eaf0fa);color:var(--c-red);box-shadow:0 3px 0 var(--c-red)}
.contact .map-ph svg{width:48px;height:48px}
.contact .map-act{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.contact .map-act .btn{padding:10px 16px;background:#fff;color:var(--c-navy);border:1px solid var(--c-steel);border-radius:8px}
.contact .map-act .btn:first-child{background:var(--c-navy);color:#fff;border-color:var(--c-navy)}
.contact .map-act .btn:hover{background:var(--c-blue);color:#fff}
.contact .map-note{font-size:13px;color:var(--c-ink-2);margin-top:12px}
form.msg{width:100%;margin:0;position:relative;overflow:hidden;background:#fff;border:1px solid #d4deef;border-radius:18px;padding:32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 24px;box-shadow:0 12px 36px -24px #17245f55}
form.msg h2{grid-column:1/-1;font-size:24px;line-height:1.5;color:var(--c-navy);margin:0 0 6px;padding:12px 16px;background:#f0f4fb;border-left:3px solid var(--c-red);border-radius:0 8px 8px 0}
form.msg label{display:grid;gap:6px;font-size:var(--t-sm);font-weight:600;color:var(--c-navy);min-width:0}
form.msg .full{grid-column:1/-1}
form.msg>div.full{display:flex;justify-content:flex-end}
form.msg input,form.msg textarea{width:100%;min-width:0;font:inherit;font-weight:400;padding:9px 12px;line-height:1.5;min-height:44px;border:1px solid #dde3ef;border-radius:9px;background:#f7f9fd;color:var(--c-ink);box-shadow:inset 0 1px 3px #17245f08;transition:border-color .2s,background .2s}
form.msg textarea{resize:vertical;min-height:110px;height:110px}
form.msg input:hover,form.msg textarea:hover{border-color:var(--c-steel)}
form.msg input:focus,form.msg textarea:focus{outline:2px solid var(--c-blue);outline-offset:2px;border-color:var(--c-blue);background:#fff}
form.msg .btn{width:auto;min-width:160px;justify-content:center;background:linear-gradient(110deg,#17245f,#2443a4);border-color:var(--c-navy);border-radius:9px;min-height:48px}
form.msg .btn:hover{background:var(--c-blue);border-color:var(--c-blue)}
@media(max-width:760px){.contact .info{grid-template-columns:minmax(0,1fr);padding:20px;gap:24px}.contact .map-card iframe{flex:none;min-height:0;aspect-ratio:16/10}.contact dl{padding:4px 12px}.contact dt{padding-right:12px}}

@media(max-width:900px){form.msg{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:24px;gap:16px 20px}form.msg h2{grid-column:1/-1;grid-row:auto;margin:0 0 6px;padding:12px 16px;font-size:24px}form.msg h2::before{display:none}form.msg h2::after{margin-top:8px}form.msg .full{grid-column:1/-1}}
@media(max-width:620px){form.msg{grid-template-columns:minmax(0,1fr);padding:20px}form.msg h2{margin:0 0 4px;padding:12px 16px}form.msg .btn{width:100%}}
/* footer */
.site-footer{position:relative;background:#092493;color:#fff;border-top:0;border-radius:0;overflow:hidden}
.site-footer::before{content:"";position:absolute;top:0;right:0;width:20%;height:7px;background:var(--c-red)}
.site-footer>.stripe{display:none}
.site-footer .cols{display:grid;grid-template-columns:1.1fr 1.2fr .75fr;gap:40px;padding-top:40px;padding-bottom:32px;font-size:var(--t-md);align-items:start}
.site-footer img{height:72px;width:auto;max-width:100%;object-fit:contain;background:#fff;padding:8px 12px;border-radius:6px;margin-bottom:var(--s3)}
.site-footer h2{font-size:var(--t-md);margin-bottom:var(--s3);color:#fff}
.site-footer a{display:block;text-decoration:none;padding:4px 0;color:#eef2ff}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.site-footer .footer-facebook{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;min-height:48px;padding:10px 16px;margin-top:0;border:1px solid #ffffff66;border-radius:10px;background:#ffffff0d}
.footer-facebook svg{flex:none}
.footer-social{display:flex;justify-content:flex-end}
.footer-contact address{margin-bottom:18px}
.site-footer .cols>div{min-width:0;overflow-wrap:anywhere}
.site-footer .cols p{margin:8px 0 0}
@media(max-width:960px){.footer-social{justify-content:flex-start}}
.site-footer .footer-facebook:hover{background:#ffffff20;text-decoration:none}
.site-footer address{font-style:normal;color:#eef2ff;line-height:1.9}
.site-footer .bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s3);padding-top:var(--s4);padding-bottom:var(--s4);border-top:1px solid #ffffff40;font-size:var(--t-xs);color:#eef2ff}
.footer-sitemap{padding:0 0 18px}
.footer-sitemap summary{cursor:pointer;width:fit-content;padding:8px 0;color:#fff;font-size:16px}
.footer-sitemap summary:focus-visible{outline:2px solid #fff;outline-offset:4px}
.footer-sitemap nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:4px 24px;padding:12px 0 4px}
.footer-sitemap nav a{font-size:16px;min-height:44px;display:flex;align-items:center}
.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1400px);max-height:94vh}
.lightbox::backdrop{background:rgba(10,14,30,.9)}
.lightbox img{max-width:100%;max-height:88vh;object-fit:contain;margin:auto}
.lightbox button{position:fixed;top:12px;right:16px;width:48px;height:48px;font-size:34px;line-height:1;background:#fff;border:0;border-radius:50%;cursor:pointer}
.reveal{transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.pending{opacity:0;transform:translateY(14px)}
@media (max-width:1180px){.main-nav{display:none}.menu-btn{display:inline-flex;margin-left:0}.switch{margin-left:auto}}
@media (max-width:960px){.hero .wrap,.vision,.contact{grid-template-columns:1fr}.vision figure{position:static;width:100%;max-width:240px}
 .plaques{grid-template-columns:1fr 1fr}.svc-items,.svc-group:nth-child(3) .svc-items{grid-template-columns:1fr 1fr}
 .svc-items article{border-bottom:1px solid var(--c-line)}.points{grid-template-columns:1fr 1fr}
 .hist li{grid-template-columns:110px 1fr}.hist .lg{grid-column:2}.gallery{grid-template-columns:repeat(3,1fr)}.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.wrap{padding:0 var(--s4)}.site-header .wrap{min-height:58px;gap:var(--s3)}.logo img{height:32px}.switch .co span{display:none}
 .review{font-size:12px;padding:3px 12px}.stripe{height:6px}.lang a{min-height:34px;padding:4px 10px}.switch .co{padding:5px 8px}.menu-btn{padding:6px 12px}
 .hero .wrap{padding-top:var(--s6);padding-bottom:var(--s6)}.hero h1{font-size:30px}.page-head h1{font-size:28px}.row{grid-template-columns:44px 1fr}.row .lg{width:44px;height:44px}.row .lg img{width:36px;height:36px}.row .tk{font-size:20px}.row .nm{grid-column:2}
 .svc-list{grid-template-columns:1fr;padding:var(--s2) var(--s4)}.svc-list a:nth-last-child(2){border-bottom:1px dashed var(--c-steel)}
 .vision-items article,.vision-items article:last-child{grid-column:auto}.vision-items,.plaques,.svc-items,.svc-group:nth-child(3) .svc-items,.points{grid-template-columns:1fr}.svc-items article{border-right:0}
 .val-list article{grid-template-columns:80px minmax(0,1fr);gap:var(--s3)}.val-list img{max-width:80px}
 .hist li{grid-template-columns:1fr;gap:var(--s2)}.hist .lg{grid-column:auto}.gallery{grid-template-columns:1fr 1fr}
 form.msg{grid-template-columns:1fr;padding:var(--s5)}.site-footer .cols{grid-template-columns:1fr}.sec{padding:var(--s7) 0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.row{opacity:1;transform:none}.reveal.pending{opacity:1;transform:none}}
.mt-4{margin-top:var(--s4)}.mt-5{margin-top:var(--s5)}.mt-6{margin-top:var(--s6)}.mt-7{margin-top:var(--s7)}
.sec.navy .lead.on-white{color:#fff}
/* back to top */
.to-top{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:55;width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(23,36,95,.85);color:#fff;box-shadow:0 8px 22px -8px rgba(18,26,51,.6);opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s}
.to-top svg{width:22px;height:22px}.to-top.show{opacity:1;transform:none}.to-top:hover{background:var(--c-red)}.to-top[hidden]{display:none}
/* Static activity stories, newest first. */
.activity-timeline{list-style:none;margin:0;padding:0}
.activity-timeline li{display:grid;grid-template-columns:160px minmax(0,1fr);gap:32px;position:relative;padding:0 0 32px}
.activity-date{position:relative;border-right:2px solid var(--c-line);padding:24px 28px 0 0;color:var(--c-navy);font-weight:700;font-variant-numeric:tabular-nums}
.activity-date::after{content:"";position:absolute;right:-7px;top:30px;width:12px;height:12px;border-radius:50%;background:var(--c-red);box-shadow:0 0 0 5px var(--c-fog)}
.activity-story{min-width:0;background:#fff;border:1px solid var(--c-line);border-top:3px solid var(--c-navy);border-radius:14px;padding:clamp(20px,3vw,36px);box-shadow:0 12px 32px -24px #17245f55}
.activity-story h2{font-size:var(--t-xl);line-height:1.5;margin:0 0 16px;color:var(--c-navy)}
.activity-place{color:var(--c-ink-2);padding-left:16px;border-left:3px solid var(--c-red);margin:0}
.activity-detail{white-space:pre-line;margin-top:20px}
.activity-story img{max-width:100%;height:auto;border-radius:8px;margin-top:24px}
@media(max-width:620px){.activity-timeline li{grid-template-columns:minmax(0,1fr);gap:12px;padding-left:20px;border-left:2px solid var(--c-line)}.activity-date{border:0;padding:0}.activity-date::after{left:-27px;right:auto;top:8px}}
/* mobile menu v8: floating frosted card over a blurred page (APM Thailand style).
   Header: [‹ Menu] on sub-levels (left) · language switch · × (right). Items centred; groups get a round › button;
   current page = white pill + red bar. Desktop (>=1181px) uses the normal top menu, this panel never shows there. */
.menu-btn{align-items:center;gap:10px;min-height:44px}
.menu-btn .hb{display:inline-grid;gap:4px;width:18px}.menu-btn .hb i{display:block;height:2px;border-radius:2px;background:currentColor}
html.nav-open{overflow:hidden}
.mobile-nav:not([hidden]){position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;border:0;
 padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));
 background:rgba(8,18,40,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:mn-fade .2s ease}
@media (min-width:1181px){.mobile-nav:not([hidden]){display:none}}
.mn{position:relative;display:flex;flex-direction:column;width:min(460px,100%);height:min(720px,100%);padding:14px 0 18px;border-radius:28px;
 border:1px solid rgba(255,255,255,.8);background:linear-gradient(165deg,rgba(255,255,255,.8),rgba(228,235,246,.72));
 -webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%);box-shadow:0 30px 60px -28px rgba(10,26,51,.55);
 animation:mn-pop .3s cubic-bezier(.2,.9,.25,1)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.mn{background:#F4F6FB}.mobile-nav:not([hidden]){background:rgba(8,18,40,.55)}}

/* header row: language + close (and back on sub-levels) */
.mn-hd{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-shrink:0;min-height:52px;padding:0 14px}
.mn-x,.mn-back,.mn-language .lang,.mn-close,.mn-level h2,.mobile-nav .mn-links [aria-current],.mobile-nav .mn-next.is-current{
 background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.92);box-shadow:0 6px 16px -10px rgba(10,26,51,.45)}
.mn-x{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;font-size:30px;line-height:1;color:#14254A;cursor:pointer}
.mn-language .lang{display:flex;height:52px;border-radius:16px;overflow:hidden}
.mn-language .lang a{display:grid;place-items:center;min-width:54px;padding:0 12px;font-size:17px;font-weight:700;text-decoration:none;color:#14254A}
.mn-language .lang a[aria-current]{background:var(--c-navy);color:#fff}
.mn-back{position:absolute;left:14px;top:14px;display:flex;align-items:center;gap:8px;height:52px;padding:0 18px 0 14px;border-radius:16px;
 font:600 18px/1 var(--f-body);color:#14254A;cursor:pointer}
.mn-back b{font-size:26px;font-weight:400;line-height:1}

/* items */
.mn-links{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:14px 24px 16px}
.mn-root,.mn-level{display:flex;flex-direction:column;gap:6px;margin-block:auto;flex-shrink:0}
.mn-root[hidden],.mn-level[hidden]{display:none}
.mobile-nav .mn-links a,.mobile-nav .mn-next{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:60px;padding:10px 62px;
 border-radius:20px;background:none;border:1px solid transparent;font:600 23px/1.3 var(--f-head);color:#14254A;text-align:center;text-decoration:none;cursor:pointer;
 opacity:0;transform:translateY(10px);animation:mn-item .4s cubic-bezier(.2,.9,.25,1) forwards}
.mobile-nav .mn-links a::after,.mobile-nav .mn-next::after{content:"";position:absolute;left:50%;bottom:7px;width:30px;height:3px;margin-left:-15px;border-radius:2px;background:var(--c-red);transform:scaleX(0);transition:transform .25s ease}
.mobile-nav .mn-links a:hover{background:rgba(255,255,255,.5)}
.mobile-nav .mn-links a:active,.mobile-nav .mn-next:active{transform:scale(.98)}
.mobile-nav .mn-links [aria-current],.mobile-nav .mn-next.is-current{color:var(--c-navy);font-weight:700}
.mobile-nav .mn-links a[aria-current]::after,.mobile-nav .mn-next.is-current::after{transform:scaleX(1)}
.mn-next>span{position:absolute;right:6px;top:50%;display:grid;place-items:center;width:48px;height:48px;margin-top:-24px;border-radius:50%;
 background:rgba(23,36,95,.08);font-size:28px;font-weight:400;line-height:1}
.mn-level h2{display:flex;align-items:center;justify-content:center;min-height:64px;margin:0 0 8px;padding:10px 20px;border-radius:20px;
 font:700 24px/1.3 var(--f-head);color:var(--c-navy);text-align:center}
.mn-root>:nth-child(2),.mn-level>:nth-child(3){animation-delay:.03s}.mn-root>:nth-child(3),.mn-level>:nth-child(4){animation-delay:.06s}
.mn-root>:nth-child(4){animation-delay:.09s}.mn-root>:nth-child(5){animation-delay:.12s}.mn-root>:nth-child(6){animation-delay:.15s}.mn-root>:nth-child(n+7){animation-delay:.18s}

/* close pill */
.mn-close{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;align-self:center;min-height:52px;padding:8px 28px;border-radius:999px;
 font:600 19px/1.2 var(--f-body);color:#14254A;cursor:pointer}
.mn-close span{font-size:28px;font-weight:400;line-height:1}

.mn-links button:focus-visible,.mn-links a:focus-visible,.mn-hd :focus-visible,.mn-close:focus-visible{outline:3px solid var(--c-red);outline-offset:2px}
@keyframes mn-fade{from{opacity:0}}
@keyframes mn-pop{from{opacity:0;transform:scale(.96) translateY(8px)}}
@keyframes mn-item{to{opacity:1;transform:none}}
@media (max-height:640px){.mobile-nav .mn-links a,.mobile-nav .mn-next{min-height:48px;font-size:19px}.mn-level h2{min-height:52px;font-size:20px}.mn-root,.mn-level{gap:2px}}
@media (max-width:360px){.mobile-nav .mn-links a,.mobile-nav .mn-next{padding:10px 54px;font-size:20px}.mn-links{padding:12px 14px 14px}.mn-language .lang a{min-width:48px;padding:0 10px}}
.mobile-nav.mn-instant,.mobile-nav.mn-instant .mn,.mobile-nav.mn-instant .mn-links a,.mobile-nav.mn-instant .mn-next{animation:none;opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.mobile-nav:not([hidden]),.mn,.mobile-nav .mn-links a,.mobile-nav .mn-next{animation:none;opacity:1;transform:none}}
/* Slide 1: office and entity logos / connected years / original company text. */
.history-section .sec-head{margin-bottom:32px}
.history-section .sec-head h2{font-size:clamp(23px,2.15vw,31px);line-height:1.6;text-wrap:balance;max-width:none}
.source-history{position:relative;--image-col:230px;--year-col:100px}
.source-office{position:absolute;left:0;top:0;width:var(--image-col);height:auto;padding:0 16px}
.source-office .history-apm-logo{width:100%;height:150px;object-fit:contain;margin-bottom:70px}
.source-office .history-office-photo{width:100%;height:350px;object-fit:cover;border-radius:35px}
.source-timeline{list-style:none;margin:0;padding:0}
.source-timeline li{position:relative;display:grid;grid-template-columns:var(--image-col) var(--year-col) minmax(0,1fr);gap:0;min-height:130px;padding:0 0 28px}
.source-year{grid-column:2;grid-row:1;position:relative;display:flex;justify-content:center;align-items:flex-start}
.source-year::after{content:"";position:absolute;top:0;bottom:-28px;left:calc(50% - 1px);width:2px;background:#c5cedd}
.source-year span{position:relative;z-index:1;display:grid;place-items:center;width:76px;min-height:76px;padding:8px 3px;border:2px solid #c5cedd;border-radius:50%;background:white;font-size:23px;font-weight:700;line-height:1.25;text-align:center;color:#09285f}
.source-copy{grid-column:3;grid-row:1;padding:5px 0 0 14px;min-width:0}
.source-copy p{margin:0;font-size:var(--t-md);line-height:var(--lh-body);color:#09285f}
.source-copy h3{font-size:21px;line-height:1.4;text-align:left;color:#09285f;margin:0 0 14px}
.source-logo{grid-column:1;grid-row:1;display:flex;align-items:flex-start;justify-content:center;padding:12px 14px}
.source-logo img{max-width:100%;max-height:170px;object-fit:contain}
.source-timeline li:nth-child(n+7){border-top:1px solid #8f99a9;padding-top:30px}
.source-timeline li:nth-child(n+6) .source-year::after{display:none}
/* Slide 2: connected numbered chapters with consistent reading alignment. */
.company-milestones{position:relative;display:grid;gap:22px;padding-left:34px;margin-top:36px}
.company-milestones::before{content:"";position:absolute;left:34px;top:35px;bottom:55px;width:2px;background:#bac7de}
.company-milestones article{position:relative;display:grid;grid-template-columns:230px minmax(0,1fr);gap:32px;background:#fff;border:1px solid #dce3ef;border-radius:12px;padding:32px 34px 32px 64px;box-shadow:0 8px 24px #10285e06}
.company-milestones .n{position:absolute;left:-34px;top:27px;display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:#fff;color:#102b64;border:2px solid #afbed8;box-shadow:0 0 0 7px #f1f3f7;font-size:27px;font-weight:700}
.company-milestones .n::after{content:"";position:absolute;bottom:-2px;left:22px;width:20px;height:3px;border-radius:2px;background:#d00728}
.company-milestones h3{font-size:23px;color:#102b64;margin:0;align-self:start;line-height:1.65;padding-top:2px}
.company-milestones p{margin:0;border-left:1px solid #dce3ef;padding-left:32px;line-height:var(--lh-body);color:#354663;font-size:var(--t-md)}
@media(max-width:1024px){.source-history{--image-col:170px;--year-col:90px}.source-office .history-office-photo{height:360px}.source-copy p{font-size:var(--t-md)}.company-milestones article{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:760px){.source-history{--image-col:0px;--year-col:76px}.source-office{position:static;width:100%;display:flex;align-items:center;gap:20px;padding:0 0 24px}.source-office .history-apm-logo{width:42%;height:100px;margin:0}.source-office .history-office-photo{width:48%;height:200px;border-radius:20px}.source-timeline li{min-height:0;padding-bottom:30px}.source-year::after{bottom:-30px}.source-year span{width:64px;min-height:64px;font-size:18px}.source-copy{padding-left:10px}.source-copy p{font-size:var(--t-md)}.source-logo{grid-column:3;grid-row:1;justify-content:flex-start;padding:0 0 16px 10px}.source-logo img{max-width:150px;max-height:65px}.source-timeline li:nth-child(n+7) .source-copy{grid-row:2}.source-timeline li:nth-child(n+7) .source-year{grid-row:1/3}.source-copy h3{text-align:left;font-size:18px}.company-milestones{padding-left:24px;gap:20px}.company-milestones::before{left:24px}.company-milestones article{grid-template-columns:1fr;gap:12px;padding:22px 18px 22px 40px}.company-milestones .n{left:-24px;width:48px;height:48px;top:23px;font-size:20px;box-shadow:0 0 0 5px #f1f3f7}.company-milestones .n::after{left:13px;width:18px}.company-milestones p{border-left:0;border-top:1px solid #e0e6f0;padding:12px 0 0;font-size:var(--t-md)}.company-milestones h3{font-size:20px}}
/* Client overview and linked case studies. */
.portfolio-category{display:grid;justify-items:center;gap:18px;background:#0b285d;color:#fff;padding:28px 32px 32px;border-radius:24px 24px 0 0;margin-bottom:22px;text-align:center}
.portfolio-category svg{width:70px;height:70px}
.portfolio-category h2{font-size:clamp(20px,1.8vw,25px);line-height:1.7;margin:0;color:inherit;text-wrap:balance}
.portfolio-section+.portfolio-section{padding-top:0}
.client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.client-card{text-decoration:none;color:inherit;transition:border-color .18s,box-shadow .18s;border:1px solid #dce3ef;border-radius:14px;overflow:hidden;background:white;display:flex;flex-direction:column;box-shadow:0 8px 24px #18315c08}
.client-card:hover{border-color:#8398be;box-shadow:0 10px 26px #18315c18}
.client-card:focus-visible{outline:3px solid #244a91;outline-offset:4px}
.client-brand{display:flex;align-items:center;gap:18px;padding:24px;background:#0b285d;min-height:124px}
.client-brand .lg{width:80px;height:75px;display:grid;place-items:center;flex-shrink:0}.client-brand img{width:100%;max-height:75px;object-fit:contain}
.client-brand .tk{font-size:30px;font-weight:700;color:#fff}.client-card#ptl .client-brand{background:#ffcc08}.client-card#ptl .tk{color:#0b285d}
.client-card#svn .client-brand{background:#df6317}.client-card#lcs .client-brand{background:#00873d}
.client-brand small{display:block;font-size:16px;font-weight:400;letter-spacing:1px}
.client-card-body{padding:24px;display:flex;flex-direction:column;flex:1}.client-card .nm{font-size:18px;font-weight:700;line-height:1.6;color:#142a61}.client-card .dt{font-size:14px;color:#56667d;margin:16px 0 24px}
.client-more{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;border-top:1px solid #e0e6ef;padding-top:16px;color:#b50824;text-decoration:none;font-weight:600}.client-more:hover{color:#102e70}.client-more:focus-visible{outline:2px solid #183568;outline-offset:4px}
.valuation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.valuation-grid article{background:white;border:1px solid #dce3ef;border-radius:12px;padding:28px;text-align:center}.valuation-grid img{height:120px;width:100%;object-fit:contain;margin-bottom:18px}.valuation-grid p{margin:0;line-height:var(--lh-body);color:#183662}
.client-story{display:grid;gap:32px}.client-back{color:#17346f;text-decoration:none;font-weight:600}.client-identity{display:flex;align-items:center;gap:24px}.client-identity img{width:100px;height:100px;object-fit:contain}.client-identity h2{font-size:24px;line-height:1.6;margin:6px 0}.client-symbol{color:#6b7890;font-size:14px;letter-spacing:2px}
.client-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;align-items:start}.client-intro>div{background:white;border:1px solid #dce3ef;border-radius:14px;padding:28px}.client-intro h3{font-size:16px;letter-spacing:1px;color:#17346f;border-left:3px solid #c90826;padding-left:14px;margin:0 0 20px}.client-intro p{margin:0;line-height:var(--lh-body);color:#40516b}.client-intro figure{margin:0}.client-intro img{width:100%;height:auto;border-radius:12px}.client-intro figcaption{font-size:14px;color:#56667d;margin-top:10px}
.client-journey h2,.client-highlights h2{font-size:25px;color:#132d66;margin:0 0 28px}.client-journey h2 span{font-weight:400;color:#526b8b;margin-left:12px}
.client-journey ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;list-style:none;padding:0;margin:0}.client-journey li{position:relative;border-top:2px solid #becbe0;padding-top:24px}.client-journey li::before{content:"";width:12px;height:12px;background:#c90826;border:4px solid #f1f3f7;border-radius:50%;position:absolute;top:-7px;left:0}.journey-date{color:#14648f;font-weight:700;margin-bottom:12px}.client-journey h3{font-size:18px;line-height:1.7;margin:0 0 10px;color:#132d66}.client-journey p{margin:0;line-height:var(--lh-body);color:#40516b}
.client-highlights>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.client-highlights article{background:white;border:1px solid #dce3ef;border-radius:12px;padding:24px;text-align:center}.client-highlights strong{display:block;font-size:38px;color:#142a61}.client-highlights span{color:#14648f;font-weight:600}.client-highlights p{color:#617087;margin:8px 0 0}
@media(max-width:1100px){.client-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-journey ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.client-intro{grid-template-columns:1fr}.valuation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-highlights>div{grid-template-columns:repeat(2,minmax(0,1fr))}.client-identity h2{font-size:20px}}
@media(max-width:480px){.portfolio-category{padding:24px 18px;gap:14px;border-radius:18px 18px 0 0}.portfolio-category svg{width:56px;height:56px}.client-grid,.valuation-grid{grid-template-columns:1fr}.client-identity{align-items:flex-start;gap:16px}.client-identity img{width:70px;height:70px}.client-intro>div{padding:20px}.client-journey ol{grid-template-columns:1fr;gap:0;padding-left:12px}.client-journey li{border-top:0;border-left:2px solid #becbe0;padding:0 0 28px 22px}.client-journey li::before{top:4px;left:-7px}.client-journey h2 span{display:block;margin:6px 0 0}.client-highlights strong{font-size:30px}}
/* Seminar archive: year navigation and source-matched photographs. */
.seminar-years{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.seminar-years a{padding:10px 24px;border:1px solid var(--c-line);border-radius:30px;font-weight:700;color:var(--c-navy);text-decoration:none;background:#f1f4fa}
.seminar-years a:hover,.seminar-years a:focus-visible{background:var(--c-navy);color:#fff}
.seminar-groups{display:grid;gap:56px}
.seminar-year{scroll-margin-top:120px}
.seminar-year>h2{font-size:32px;border-left:4px solid var(--c-red);padding-left:18px;margin-bottom:24px}
.seminar-list{display:grid;gap:24px}
.seminar-card{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr);background:#fff;border:1px solid var(--c-line);border-radius:18px;overflow:hidden;box-shadow:0 8px 28px -22px #17245f55}
.seminar-photo{align-self:start;padding:20px 0 20px 20px}
.seminar-photo a{display:block;border-radius:10px;overflow:hidden;background:#f1f4fa}
.seminar-photo img{display:block;width:100%;height:auto}
.seminar-copy{padding:28px;min-width:0}
.seminar-copy h3{font-size:23px;line-height:1.6;margin:8px 0 20px;color:var(--c-navy)}
.seminar-meta{display:grid;gap:10px;font-size:15px;line-height:1.7;color:var(--c-ink-2);padding-bottom:18px;border-bottom:1px solid var(--c-line)}
.seminar-meta time,.seminar-location{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start}
.seminar-meta time{font-weight:700;color:var(--c-navy)}
.seminar-icon{width:24px;height:24px;margin-top:1px;color:var(--c-navy);flex:none}
.seminar-icon.pin{color:var(--c-red)}
.seminar-copy details{margin-top:16px}
.seminar-copy summary{cursor:pointer;color:var(--c-navy);font-weight:700;padding:8px 0;min-height:44px}
.seminar-body p{font-size:var(--t-md);line-height:var(--lh-body);margin:12px 0 0;color:var(--c-ink-2)}
@media(max-width:760px){.seminar-card{grid-template-columns:minmax(0,1fr)}.seminar-photo{padding:16px 16px 0}.seminar-copy{padding:20px}.seminar-copy h3{font-size:21px}.seminar-years a{padding:10px 20px}.seminar-year{scroll-margin-top:100px}}
.home-team{background:#fff}
.home-team-panel{background:#f4f6fb;border:1px solid #dbe2ee;border-radius:24px;padding:40px;position:relative;overflow:hidden}
.home-team-panel::after{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--c-navy) 75%,var(--c-red) 75%);margin-top:32px}
.home-team-panel .lead{color:var(--c-navy);font-weight:600}
.home-team-photos{display:grid;grid-template-columns:1.034fr 1fr;gap:24px;margin:30px 0;align-items:start}
.home-team-photos img{display:block;width:100%;height:auto;border-radius:24px}
.home-team-panel>.btn{background:var(--c-navy);color:#fff;border-radius:10px}
.home-team-panel>.btn:hover{background:var(--c-blue)}
@media(max-width:620px){.home-team-panel{padding:22px;border-radius:18px}.home-team-photos{grid-template-columns:1fr;gap:18px;margin:24px 0}.home-team-photos img{border-radius:16px}.home-team-panel>.btn{max-width:100%;white-space:normal}}
.home-services-section{padding-top:36px}
.home-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.home-services>a{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;align-items:start;padding:22px;background:#fff;border:1px solid #dce3ef;border-radius:14px;text-decoration:none;color:var(--c-navy);transition:border-color .2s,box-shadow .2s,transform .2s}
.home-service-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:13px;background:#eef2fb;color:var(--c-navy)}
.home-service-icon svg{width:30px;height:30px}
.home-services b{display:block;font-size:18px;line-height:1.65;font-weight:600}
.home-services .en{display:block;margin-top:8px;font-size:14px;line-height:1.6;color:var(--c-ink-2)}
.home-services>a:hover,.home-services>a:focus-visible{border-color:var(--c-navy);box-shadow:0 8px 24px -14px #17245f66;transform:translateY(-2px)}
@media(max-width:620px){.home-services{grid-template-columns:1fr;gap:12px}.home-services>a{padding:18px;grid-template-columns:42px minmax(0,1fr);gap:14px}.home-service-icon{width:42px;height:42px}.home-service-icon svg{width:26px;height:26px}.home-services b{font-size:17px}}
/* Compact introduction between Home hero and services. */
.home-about{padding:32px 0}
.home-about .sec-head{margin-bottom:20px}
.home-about .lead{margin-bottom:0}
.privacy-copy{max-width:900px;overflow-wrap:anywhere}.privacy-copy h2{font-size:24px;line-height:1.6;margin:32px 0 12px}.privacy-copy p{line-height:var(--lh-body)}.privacy-copy a,.form-privacy a{text-decoration:underline;text-underline-offset:3px}.privacy-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:20px;padding-bottom:20px}.form-privacy{font-size:var(--t-md);line-height:var(--lh-body);margin:0}.msg label.form-consent{display:flex;align-items:flex-start;font-weight:400;line-height:1.8}.msg .form-consent input{flex:0 0 20px;width:20px;min-height:20px;margin:5px 8px 0 0}.msg button:disabled{opacity:.5;cursor:not-allowed}
/* mobile bottom navigation bar: phones only (<=620px). Desktop/tablet keep the top menu unchanged. */
.tabbar{display:none}
@media (max-width:620px){
 .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) 46px 46px;align-items:stretch;
  padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--c-line);box-shadow:0 -8px 24px -18px rgba(18,26,51,.45)}
 .tabbar a,.tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:6px 2px 4px;border-radius:12px;
  color:var(--c-ink-2);text-decoration:none;font:600 12px/1.25 var(--f-body);text-align:center;-webkit-tap-highlight-color:transparent}
 .tabbar svg{width:26px;height:26px;flex-shrink:0}
 .tabbar span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-width:100%}
 .tabbar a[aria-current],.tabbar a.is-current{color:var(--c-navy)}
 .tabbar a[aria-current]::before,.tabbar a.is-current::before{content:"";position:absolute;top:0;left:50%;width:24px;height:3px;margin-left:-12px;border-radius:0 0 3px 3px;background:var(--c-red)}
 .tabbar a:active{background:var(--c-fog)}
 .tabbar a:focus-visible{outline:2px solid var(--c-navy);outline-offset:-2px}
 .tabbar button{border:0;background:none;cursor:pointer;color:var(--c-navy)}.tabbar button svg{width:28px;height:28px}
 .tabbar a:focus-visible,.tabbar button:focus-visible{outline:2px solid var(--c-navy);outline-offset:-2px}
 .tabbar .tab-call,.tabbar .tab-call[aria-current]{color:var(--c-red)}.tabbar .tab-call svg{width:28px;height:28px}
 body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
 .to-top{bottom:calc(80px + env(safe-area-inset-bottom))}
}
@media (max-width:360px){.tabbar{grid-template-columns:repeat(5,minmax(0,1fr)) 40px 40px;padding-inline:2px}.tabbar a{font-size:11px;padding-inline:0}.tabbar svg{width:24px;height:24px}}
@media print{.tabbar{display:none}}
/* phones (<=620px): shorter blue banners (Home hero and every page head). Wording unchanged. */
@media (max-width:620px){
 /* Home hero on phones = same compact block as the page heads: company name + one-line role.
    Tagline and the long intro are hidden here only (the About Us section right below says the same). */
 .hero .wrap{padding-top:22px;padding-bottom:24px}
 .hero .tag,.hero-copy>p:not(.sub){display:none}
 .hero h1{font-size:22px;line-height:1.35;margin:0 0 4px}
 .hero .sub{font-size:15px;line-height:1.5;margin:0}
 .page-head .wrap{padding-top:24px;padding-bottom:28px}
 .crumb{margin-bottom:4px;line-height:1.5}
 .page-head h1{font-size:24px;line-height:1.35}
 .page-head .sub{font-size:16px;line-height:1.6;margin-top:4px}
 .page-head::after{height:6px}
}
/* phones (<=620px): no lone word dropped onto its own line.
   Headings and short labels are balanced across lines; paragraphs avoid a one-word last line.
   (text-wrap is progressive: older browsers simply wrap as before.) */
@media (max-width:620px){
 main,.site-footer,.tabbar,.mobile-nav{text-wrap:pretty}
 h1,h2,h3,h4,b,strong,small,label,dt,dd,address,figcaption,.kick,.role,.en,.sub,.lead,.crumb,
 .yl li>span,.seminar-meta span,.tabbar span,.card .role span,.node b,.node small,
 .svc-copy p,.portfolio-section p,.vision-items p,main p:has(>a+a){text-wrap:balance}
 /* Lao addresses are short, space-separated names: break only after a comma, never inside a place name */
 .nw{white-space:nowrap}
 /* contact card company name: one line on phones (scaled to the screen) */
 .contact-details h3{font-size:clamp(15px,4.6vw,22px);line-height:1.5}
 .contact-details h3 .company-name{white-space:nowrap}
}
