@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/archivo-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/archivo-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/archivo-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/archivo-latin-800-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/source-sans-3-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/source-sans-3-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/source-sans-3-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --blue:#395181; --blue-sec:#14265A; --blue-band:#0E1C4A; --blue-d:#1E3160; --blue-dd:#09163C; --blue-l:#4E6BA3; --blue-ll:#8195BC;
  --tint:#EAEEF6; --tint-2:#DCE3EF;
  --bronze:#A8763A; --bronze-l:#C9A063; --bronze-dd:#6B4A21;
  --stone:#F1EEE8; --stone-2:#E4DED2;
  --ink:#333532; --ink-2:#585E5B; --muted:#868C89;
  --page:#F2F4F7; --white:#FFFFFF; --rule:#DCE1E8; --rule-d:#33456B;
  --f-d:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-b:"Source Sans 3","Helvetica Neue",Arial,sans-serif;
  --shell:1320px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background-color:var(--page);color:var(--ink);font-family:var(--f-b);font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased}
a{color:inherit}
/* long German and Spanish compounds must not push the page sideways */
body{overflow-wrap:break-word}
@media (max-width:520px){h1,h2,h3,h4,p,li,cite,figcaption{hyphens:auto;-webkit-hyphens:auto}}
:focus-visible{outline:3px solid var(--blue-l);outline-offset:2px}
svg{display:block}
img{max-width:100%;display:block}
.shell{max-width:var(--shell);margin:0 auto;padding:0 36px}
@media (max-width:420px){.shell{padding:0 20px}}
section{padding:84px 0}
@media (max-width:720px){section{padding:52px 0}}

h1,h2,h3{margin:0;font-family:var(--f-d);font-weight:700;letter-spacing:-.02em;text-wrap:balance;line-height:1.1;hyphens:auto;-webkit-hyphens:auto}
h1{font-size:clamp(34px,4.7vw,62px);font-weight:800;letter-spacing:-.03em;line-height:1.04}
h2{font-size:clamp(26px,3.2vw,42px);font-weight:800;margin-bottom:18px;letter-spacing:-.03em;text-transform:uppercase}
h2 .sub{display:block;font-size:.42em;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:12px}
.on-blue h2 .sub{color:var(--blue-ll)}
.on-stone h2 .sub{color:var(--bronze)}
h3{font-size:19px;font-weight:700;letter-spacing:-.012em;line-height:1.28}
p{margin:0 0 15px}

.kicker{font-family:var(--f-d);font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:13px;margin-bottom:16px}
.kicker::before{content:"";width:30px;height:3px;background:var(--blue);flex:none}
.lede{font-size:clamp(16.5px,1.6vw,19.5px);line-height:1.58;color:var(--ink-2);max-width:60ch}
.lede.light{color:#D5DCE9}
.txt{color:var(--ink-2);font-size:16px;max-width:66ch}
.txt.light{color:#C3CCDD}
.txt.mvh{font-size:15px;border-left:3px solid var(--bronze);padding-left:16px;margin:22px 0 24px}
.txt.mvh b{font-family:var(--f-d);font-weight:700;letter-spacing:.02em;color:var(--blue)}
.txt.mvh span{display:block}
.txt.mvh span+span{margin-top:10px}
.small{font-size:13.5px;color:var(--muted);max-width:70ch}
.on-blue .small{color:#93A2BF}
.on-blue 
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-d);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:14px 26px;text-decoration:none;background:var(--blue);color:#FFF;border:2px solid var(--blue);transition:background .18s,border-color .18s,transform .18s}
.btn:hover{background:var(--blue-l);border-color:var(--blue-l);transform:translateY(-2px)}
.btn.solid-light{background:#FFF;color:var(--blue);border-color:#FFF}
.btn.solid-light:hover{background:var(--tint);border-color:var(--tint)}
.btn.out{background:transparent;color:#FFF;border-color:rgba(255,255,255,.55)}
.btn.out:hover{background:rgba(255,255,255,.14);border-color:#FFF}

/* scroll progress */
#prog{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--blue),var(--bronze));z-index:200;transition:width .1s linear}


.util{background:var(--blue-dd);color:#A7B4CE;font-size:12.5px}
.util .shell{display:flex;justify-content:flex-end;gap:24px;height:36px;align-items:center}
.util a{text-decoration:none;color:#A7B4CE}
.util a:hover{color:#FFF}
.util .sep{width:1px;height:14px;background:rgba(255,255,255,.2)}
@media (max-width:640px){.util .shell{gap:16px}.util .sep{display:none}}

header.top{background:var(--white);border-bottom:3px solid var(--blue);position:sticky;top:0;z-index:80;transition:box-shadow .25s}
header.top.stuck{box-shadow:0 6px 24px rgba(22,32,58,.12)}
.top-in{display:flex;align-items:center;gap:24px;height:88px;transition:height .25s}
header.top.stuck .top-in{height:70px}
.mark{display:flex;align-items:center;text-decoration:none;margin-right:auto}
.mark img{height:72px;width:auto;transition:height .25s}
header.top.stuck .mark img{height:56px}
nav.tn{display:flex;gap:22px;align-self:stretch;align-items:center}
nav.tn a{font-family:var(--f-d);font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blue);text-decoration:none;align-self:stretch;display:flex;align-items:center;border-bottom:4px solid transparent;transition:border-color .18s,color .18s}
nav.tn a:hover{border-bottom-color:var(--bronze)}
@media (max-width:1240px){nav.tn{display:none}}

/* hero */
.hero{position:relative;color:#FFF;overflow:hidden;border-bottom:4px solid var(--bronze);min-height:clamp(500px,70vh,720px);display:flex;align-items:center}
.hero > .shell{width:100%}
.hero .bg{position:absolute;inset:0;background-image:url("/assets/exterior-sm.jpg");background-size:cover;background-position:center 48%;transform:none}
.hero .veil{position:absolute;inset:0;background:linear-gradient(100deg, rgba(22,32,58,.96) 0%, rgba(34,49,79,.90) 46%, rgba(57,81,129,.46) 100%)}
.hero-in{position:relative;z-index:2;padding:80px 0 78px;max-width:800px}
.hero h1{color:#FFF;max-width:15ch;margin-bottom:22px}
.hero h1 em{font-style:normal;color:#C6D4EA}
.hero .rise{animation:rise 1.05s cubic-bezier(.16,.84,.28,1) both;will-change:transform,opacity}
.hero .rise:nth-child(2){animation-delay:.09s}
.hero .rise:nth-child(3){animation-delay:.18s}
.hero .rise:nth-child(4){animation-delay:.27s}
.hero .rise:nth-child(5){animation-delay:.36s}
@keyframes rise{from{transform:translateY(22px);opacity:0}60%{opacity:1}to{transform:translateY(0);opacity:1}}
.hero .wave{animation:fadein 1.5s .5s ease both}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@media (max-width:900px){.hero-in{padding:52px 0 50px}.hero{min-height:clamp(420px,60vh,560px)}.hero .bg{background-position:62% 50%}}

.fs{background-color:var(--stone);background-image:repeating-linear-gradient(45deg,rgba(107,74,33,.028) 0 1px,transparent 1px 12px);border-bottom:1px solid var(--stone-2)}
.fs-in{display:grid;grid-template-columns:repeat(5,1fr)}
.fs-in div{padding:40px 20px;border-right:1px solid var(--stone-2);text-align:center;position:relative}
.fs-in div::after{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:40px;height:4px;background:var(--blue)}
.fs-in div:nth-child(2)::after,.fs-in div:nth-child(4)::after{background:var(--bronze)}
.fs-in div:last-child{border-right:0}
.fs .n{font-family:var(--f-d);font-size:clamp(28px,3.2vw,44px);font-weight:800;line-height:1;letter-spacing:-.055em;display:block;font-variant-numeric:tabular-nums;color:var(--blue-d)}
.fs .l{font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-dd);opacity:.78;display:block;margin-top:12px}
@media (max-width:1000px){.fs-in{grid-template-columns:repeat(2,1fr)}.fs-in div{border-bottom:1px solid var(--stone-2)}}
@media (max-width:380px){.fs-in{grid-template-columns:1fr}}

.head-row{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start;margin-bottom:40px}
@media (max-width:900px){.head-row{grid-template-columns:1fr;gap:20px;margin-bottom:30px}}

/* grid items default to min-width:auto and refuse to shrink below their
   content, which pushes a horizontal scrollbar onto narrow screens */
.split>*,.head-row>*,.pillars>*,.prods>*,.npd>*,.certs>*,.csr-areas>*,
.addr>*,.regions>*,.f-grid>*,.fs-in>*,.figs>*,.aw-grid>*,
.explode>*,.vid-col>*,.aw-stats>*,.mark50>*,.csr-panel>*,.vid-wrap>*{min-width:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:start}
.split.mid{align-items:center}
.split.wide-l{grid-template-columns:1.2fr .8fr}
.split.wide-r{grid-template-columns:.8fr 1.2fr}
@media (max-width:900px){.split,.split.wide-l,.split.wide-r{grid-template-columns:1fr;gap:32px}}

.photo{border:1px solid var(--rule);background:var(--white);overflow:hidden}
.photo img{width:100%;height:auto;transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}
.photo:hover img{transform:scale(1.035)}
.photo figcaption{font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:12px 16px;border-top:1px solid var(--rule);background:var(--white)}
figure{margin:0}

.quote{border-left:5px solid var(--bronze);padding:6px 0 6px 24px;margin:26px 0}
.quote p{font-family:var(--f-d);font-size:clamp(18px,2vw,24px);font-weight:600;letter-spacing:-.02em;line-height:1.32;color:var(--blue);margin:0}
.miles{margin-top:34px;border-top:1px solid var(--rule);padding-top:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.mile{position:relative;padding-top:18px}
.mile::before{content:"";position:absolute;left:0;top:0;width:26px;height:3px;background:var(--bronze)}
.mile b{display:block;font-family:var(--f-d);font-size:clamp(20px,2.1vw,27px);font-weight:800;letter-spacing:-.045em;color:var(--blue-d);line-height:1}
.mile span{display:block;font-size:13px;color:var(--ink-2);margin-top:7px;line-height:1.45}
@media (max-width:620px){.miles{grid-template-columns:1fr;gap:16px}}
.quote cite{font-style:normal;font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--bronze);display:block;margin-top:12px}

.dirs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:26px}
.dir{background:var(--white);padding:24px 22px 26px;border-top:4px solid var(--blue);transition:background .2s,border-top-color .2s}
.dir:nth-child(2){border-top-color:var(--bronze)}
.dir:hover{background:var(--tint);border-top-color:var(--bronze)}
.dir .role{font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);display:block;margin-bottom:8px}
.dir h3{font-size:18px;color:var(--blue);margin-bottom:8px}
.dir p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:1.5}
@media (max-width:800px){.dirs{grid-template-columns:1fr}}

.prods{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.prod{background:var(--white);display:flex;flex-direction:column;transition:background .2s,box-shadow .2s;position:relative}
.prod::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bronze);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.2,.8,.3,1)}
.prod:hover{background:var(--tint);z-index:2}
.prod:hover::after{transform:scaleX(1)}
.prod.fill{background:var(--white);pointer-events:none}
@media (max-width:680px){.prod.fill{display:none}}
.prod .im{padding:14px 14px 4px}
.prod img{width:100%;aspect-ratio:1/1;object-fit:contain;mix-blend-mode:multiply;transition:transform .4s cubic-bezier(.2,.8,.3,1)}
.prod:hover img{transform:scale(1.07);will-change:transform}
.rv{transition:opacity .72s ease,transform .72s cubic-bezier(.22,.85,.3,1)}
.prod .b{padding:6px 18px 22px}
.prod h3{font-size:13.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--blue);line-height:1.3;margin-bottom:5px}
.prod p{font-size:12px;color:var(--muted);margin:0;line-height:1.45}
@media (max-width:1080px){.prods{grid-template-columns:repeat(3,1fr)}}
@media (max-width:680px){.prods{grid-template-columns:repeat(2,1fr)}}

.explode{display:grid;grid-template-columns:.82fr 1.18fr;gap:52px;align-items:start}
.explode.flip .vid-wrap{order:-1}
@media (max-width:940px){.explode{grid-template-columns:1fr;gap:32px}.explode.flip .vid-wrap{order:0}}
.vid-wrap{background:var(--white);border:1px solid var(--rule);padding:10px;position:relative}
.vid-wrap video{width:100%;height:auto;display:block}
.vid-cap{font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:12px 8px 4px;border-top:1px solid var(--rule);margin-top:10px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.vid-cap b{color:var(--bronze);font-weight:700}

.layers{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.vid-col{display:flex;flex-direction:column}
.vid-col .layers{grid-template-columns:repeat(3,1fr);margin-top:24px}
@media (max-width:940px){.vid-col .layers{grid-template-columns:1fr 1fr}}
@media (max-width:430px){.vid-col .layers{grid-template-columns:1fr}}
.layers>*{min-width:0}
@media (max-width:430px){.layers{grid-template-columns:1fr;gap:14px}}
.layers li{font-size:13px;color:var(--ink-2);padding-left:22px;position:relative;line-height:1.4}
.layers li b{display:block;font-family:var(--f-d);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:3px}
.layers li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:3px;background:var(--bronze)}

.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pill{background:var(--white);border:1px solid var(--rule);border-left:4px solid var(--blue);padding:24px 22px 26px;transition:transform .2s,border-left-color .2s,box-shadow .2s}
.pill:nth-child(2),.pill:nth-child(3){border-left-color:var(--bronze)}
.pill:hover{transform:translateY(-3px);border-left-color:var(--bronze);box-shadow:0 10px 26px rgba(22,32,58,.08)}
.pill h3{font-size:16px;color:var(--blue);margin-bottom:8px;text-transform:uppercase;letter-spacing:.02em}
.pill p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:1.5}
@media (max-width:980px){.pillars{grid-template-columns:repeat(2,1fr)}}
.pillars.two{grid-template-columns:1fr 1fr}
@media (max-width:520px){.pillars,.pillars.two{grid-template-columns:1fr}}

.npd{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule-d);border:1px solid var(--rule-d);margin-top:44px}
.npd .step{background:var(--rule-d);padding:28px 22px 30px}
.npd .num{font-family:var(--f-d);font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--bronze-l);display:block;margin-bottom:14px}
.npd .bar{height:3px;background:rgba(255,255,255,.18);margin-bottom:18px;position:relative;overflow:hidden}
.npd .bar i{position:absolute;inset:0 auto 0 0;background:var(--bronze-l);width:0;transition:width 1.1s cubic-bezier(.2,.8,.3,1)}
.npd h3{font-size:15.5px;margin-bottom:9px;text-transform:uppercase;letter-spacing:.02em;color:#FFF}
.npd p{font-size:12.5px;color:#A9B6CF;margin:0;line-height:1.55}
@media (max-width:980px){.npd{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.npd{grid-template-columns:1fr}}

.certs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cert{background:var(--white);border:1px solid var(--rule);border-left:6px solid var(--blue);padding:28px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.cert:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(22,32,58,.09)}
.cert .badge{background:var(--blue);margin:-28px -28px 22px;padding:22px 28px;display:flex;align-items:center;min-height:118px}
.cert .badge img{width:100%;max-width:230px;height:auto}
.cert .badge .txt-mark{font-family:var(--f-d);font-weight:800;color:#FFF;letter-spacing:-.03em;line-height:1.1;font-size:24px}
.cert .badge .txt-mark span{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--bronze-l);margin-top:7px}
.cert .std{font-family:var(--f-d);font-size:23px;font-weight:800;letter-spacing:-.045em;display:block;color:var(--blue)}
.cert .sc{font-size:13px;color:var(--muted);margin:6px 0 18px}
.cert dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:13px}
.cert dt{font-family:var(--f-d);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.cert dd{margin:0;color:var(--ink-2)}
@media (max-width:900px){.certs{grid-template-columns:1fr}}

/* awards — the one place bronze leads */
.on-stone{background:var(--stone)}
.aw-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--stone-2);border:1px solid var(--stone-2);margin-bottom:32px}
.aw-stats div{background:var(--white);padding:32px 22px;text-align:center;border-top:4px solid var(--bronze)}
.aw-stats .n{font-family:var(--f-d);font-size:clamp(36px,4.4vw,50px);font-weight:800;line-height:1;letter-spacing:-.05em;color:var(--bronze-dd);display:block;font-variant-numeric:tabular-nums}
.aw-stats .l{font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-top:12px}
@media (max-width:760px){.aw-stats{grid-template-columns:repeat(2,1fr)}}
.aw-stats>*{min-width:0}
@media (max-width:430px){.aw-stats{grid-template-columns:1fr}.aw-stats div{padding:22px 16px}}
.aw-grid{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:22px;align-items:start}
@media (max-width:900px){.aw-grid{grid-template-columns:1fr}}
.aw-grid .photo{border-color:var(--stone-2)}
.aw-grid .photo figcaption{border-top-color:var(--stone-2)}

.mark50{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-bottom:34px}
.mark50 img{height:118px;width:auto}
.mark50 p{margin:0;font-family:var(--f-d);font-size:clamp(17px,2vw,23px);font-weight:600;letter-spacing:-.02em;color:var(--blue);max-width:34ch;line-height:1.3}

/* ---------- export map ---------- */
.mapwrap{background:var(--white);border:1px solid var(--rule);padding:18px 18px 8px;position:relative;overflow:hidden}
.mapkey{display:flex;gap:26px;flex-wrap:wrap;align-items:center;padding:14px 4px 6px;border-top:1px solid var(--rule);margin-top:8px}
.mapkey i{font-style:normal;display:inline-flex;align-items:center;gap:9px;font-family:var(--f-d);font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.mapkey .sw{width:16px;height:16px;flex:none}
.mapkey .sw.home{background:var(--blue-d)}
.mapkey .sw.mkt{background:var(--blue)}
.mapkey .sw.route{height:3px;background:var(--bronze);width:26px}

.wmap{width:100%;height:auto;display:block}
.wmap .land path{stroke:#FFFFFF;stroke-width:1.1;stroke-linejoin:round}
.wmap .base{fill:#DDE3EE}
.wmap .mk{fill:var(--blue)}
.wmap .home{fill:var(--blue-d)}
.wmap .rt{stroke:#C2CDDF;stroke-width:2.2;stroke-dasharray:10 10}
.wmap-idle .rt-flow,.wmap-idle .halo,.wmap-idle .o-halo,.wmap-idle .o-halo2{animation-play-state:paused}
.wmap .rt-flow{stroke:var(--bronze);stroke-width:4;stroke-linecap:round;stroke-dasharray:26 var(--len);stroke-dashoffset:var(--len);animation:flow 4.2s linear infinite;animation-delay:var(--d)}
@keyframes flow{from{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}
.wmap .lead{stroke:#A7B4CB;stroke-width:1.6;stroke-dasharray:6 6;fill:none}
.wmap .halo{fill:var(--blue);opacity:.2;transform-box:fill-box;transform-origin:center;animation:ping 3s ease-out infinite;animation-delay:var(--d)}
@keyframes ping{0%{transform:scale(.55);opacity:.38}65%{transform:scale(1.75);opacity:0}100%{transform:scale(1.75);opacity:0}}
.wmap .ring{fill:#FFFFFF}
.wmap .core{fill:var(--blue)}
.wmap .lbl{font-family:var(--f-d);font-size:30px;font-weight:700;letter-spacing:2.2px;fill:var(--blue-d)}
.wmap .o-halo,.wmap .o-halo2{fill:var(--bronze);opacity:.22;transform-box:fill-box;transform-origin:center;animation:ping 3.4s ease-out infinite}
.wmap .o-halo2{animation-delay:1.7s}
.wmap .o-ring{fill:#FFFFFF}
.wmap .o-core{fill:var(--blue-d)}
.wmap .o-lead{stroke:var(--blue-d);stroke-width:2.6;fill:none}
.wmap .o-lbl{font-family:var(--f-d);font-size:46px;font-weight:800;letter-spacing:2px;fill:var(--blue-d)}
.wmap .o-sub{font-family:var(--f-d);font-size:22px;font-weight:700;letter-spacing:4.4px;fill:#8792A6}

/* ---------- markets by region ---------- */
.regions{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:30px}
.reg{background:var(--white);padding:26px 24px 28px;border-top:4px solid var(--blue);transition:background .2s,border-top-color .2s}
.reg:hover{background:var(--tint);border-top-color:var(--bronze)}
.reg .cnt{font-family:var(--f-d);font-size:36px;font-weight:800;line-height:1;letter-spacing:-.05em;color:var(--bronze-dd);display:block;font-variant-numeric:tabular-nums}
.reg h3{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--blue);margin:12px 0 16px}
.reg ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.reg li{font-size:14.5px;color:var(--ink-2);padding-left:20px;position:relative;line-height:1.4}
.reg li::before{content:"";position:absolute;left:0;top:9px;width:10px;height:2px;background:var(--blue-ll)}
@media (max-width:940px){.regions{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.regions{grid-template-columns:1fr}}

.statement{background:var(--blue-band);color:#FFF;padding:72px 0;position:relative;overflow:hidden}
.statement::after{content:"";position:absolute;right:-90px;top:-90px;width:360px;height:360px;border:56px solid rgba(201,160,99,.10);border-radius:50%}
.statement q{quotes:none;font-family:var(--f-d);font-size:clamp(24px,3.4vw,44px);font-weight:800;letter-spacing:-.035em;line-height:1.12;display:block;max-width:24ch;text-transform:uppercase;position:relative}
.statement q em{font-style:normal;color:var(--bronze-l)}
.statement p{color:#B4C0D8;font-size:16.5px;max-width:60ch;margin:22px 0 0;position:relative}

.on-blue{background:var(--blue-sec);color:#FFF}
.on-blue h2,.on-blue h3{color:#FFF}

.addr{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
@media (max-width:1080px){.addr{grid-template-columns:repeat(2,1fr);gap:38px}}
@media (max-width:640px){.addr{grid-template-columns:1fr;gap:30px}}
.addr h3{font-family:var(--f-d);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze-l);margin-bottom:14px}
.addr p{font-size:15px;color:#C3CCDD;line-height:1.78;margin:0}
.addr a{color:#C3CCDD;text-decoration:none;border-bottom:1px solid var(--rule-d)}
.addr a:hover{color:var(--bronze-l);border-bottom-color:var(--bronze-l)}

footer{background:var(--blue-dd);color:#96A4C0;padding:54px 0 30px}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:42px;padding-bottom:34px;border-bottom:1px solid var(--rule-d)}
@media (max-width:860px){.f-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media (max-width:520px){.f-grid{grid-template-columns:1fr}}
.f-grid h4{font-family:var(--f-d);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#FFF;margin:0 0 14px}
.f-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14.5px}
.f-grid a{text-decoration:none;color:#96A4C0}
.f-grid a:hover{color:var(--bronze-l)}
.f-brand img{height:84px;width:auto;filter:brightness(0) invert(1);opacity:.94}
.f-brand p{font-size:14.5px;line-height:1.7;margin:16px 0 0;max-width:36ch}
.colo{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:#68769A;padding-top:24px}


/* ---------- anti-vibration motifs ---------- */
.on-blue{position:relative;overflow:hidden}
.on-blue > *{position:relative;z-index:1}

.statement{background-color:var(--blue-band)}

/* elastomer section-hatch on the awards ground */
.on-tint{background-color:var(--tint)}
.on-tint h2 .sub,.on-stone h2 .sub,.on-tint .kicker,.on-stone .kicker{color:var(--bronze)}
.on-tint .kicker::before,.on-stone .kicker::before{background:var(--bronze)}
.on-tint .pill,.on-stone .pill{background:var(--white)}
.on-stone{background-color:var(--stone);background-image:repeating-linear-gradient(45deg,rgba(107,74,33,.028) 0 1px,transparent 1px 12px)}

/* damped-wave signature: excitation in, isolated out */
.wavestrip{position:relative;height:168px;margin:0;overflow:hidden;background:var(--white);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.wavestrip canvas{display:block;width:100%;height:168px}
.hero .wave{position:absolute;left:0;right:0;bottom:0;height:180px;z-index:1;opacity:.55;pointer-events:none}
.hero .wave canvas{display:block;width:100%;height:180px}


.on-white{background-color:var(--white)}
.wavestrip .tag-in,.wavestrip .tag-mid,.wavestrip .tag-out{position:absolute;top:16px;font-family:var(--f-d);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);pointer-events:none}
.wavestrip .tag-in{left:34px}
.wavestrip .tag-mid{left:46%;transform:translateX(-50%);color:var(--bronze-dd)}
.wavestrip .tag-out{right:34px;color:var(--blue-d)}
@media (max-width:760px){.wavestrip,.wavestrip canvas{height:132px}.wavestrip .tag-in{left:14px}.wavestrip .tag-out{right:14px}}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
.figs{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:58px}
@media(max-width:940px){.figs{grid-template-columns:1fr}}
.fig{margin:0;background:var(--white);border:1px solid var(--rule);padding:18px 18px 0}
.fig img{width:100%;height:auto;display:block}
.fig figcaption{border-top:1px solid var(--rule);margin-top:14px;padding:13px 0 15px;display:flex;flex-direction:column;gap:5px}
.fig figcaption b{font-family:var(--f-d);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)}
.fig figcaption span{font-size:13.5px;color:var(--ink-2);line-height:1.5}
.figs-lead{margin-top:64px;max-width:660px}
.lang{appearance:none;-webkit-appearance:none;background:transparent;border:1px solid rgba(255,255,255,.22);color:#C6D4EA;font-family:var(--f-d);font-size:11px;font-weight:700;letter-spacing:.15em;padding:4px 24px 4px 9px;border-radius:2px;cursor:pointer;line-height:1.2;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='9' height='6'><path d='M0 0h9L4.5 6z' fill='%23C6D4EA'/></svg>");background-repeat:no-repeat;background-position:right 8px center}
.lang:hover,.lang:focus{border-color:rgba(255,255,255,.5);color:#FFF;outline:none}
.lang option{color:#16203A;background:#FFF;letter-spacing:normal}
.csr-panel{background:var(--blue-dd);color:#FFF;padding:46px 46px 50px;margin-top:52px;position:relative;overflow:hidden}
.csr-panel::after{content:"";position:absolute;right:-120px;bottom:-140px;width:380px;height:380px;border:52px solid rgba(201,160,99,.09);border-radius:50%;pointer-events:none}
.csr-panel > *{position:relative;z-index:1}
.csr-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:18px}
.csr-head h3{font-family:var(--f-d);font-size:clamp(17px,1.9vw,23px);font-weight:800;letter-spacing:-.02em;text-transform:uppercase;color:#FFF;margin:0}
.causes{display:flex;gap:9px;flex-wrap:wrap}
.cause{font-family:var(--f-d);font-size:10px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--bronze-l);border:1px solid rgba(201,160,99,.45);padding:6px 12px;border-radius:2px}
.csr-areas{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;margin-top:34px}
.csr-card h3{font-family:var(--f-d);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#FFF;margin:0 0 9px}
.csr-card p{font-size:13.5px;line-height:1.6;color:#AEBCD6;margin:0}
.csr-fig{width:86px;height:86px;margin-bottom:18px}
.csr-fig svg{width:100%;height:100%;overflow:visible}
.csr-fig .ring{fill:none;stroke:rgba(201,160,99,.42);stroke-width:1.4}
.csr-fig .ln{fill:none;stroke:#DCE4F2;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.csr-fig .acc{fill:none;stroke:var(--bronze-l);stroke-width:2.4;stroke-linecap:round}
.csr-fig .dot{fill:var(--bronze-l);stroke:none}
@media (max-width:980px){.csr-areas{grid-template-columns:1fr 1fr;gap:30px 34px}}
@media (max-width:560px){.csr-areas{grid-template-columns:1fr}}
.partners{display:grid;grid-template-columns:1fr 1fr;gap:0 54px;margin-top:8px}
.partner{display:flex;gap:16px;align-items:baseline;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.partner b{font-family:var(--f-d);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--bronze-l);flex:none;width:22px}
.partner span{font-size:15px;color:#E3EAF6;line-height:1.4}
.csr-foot{margin:26px 0 0;font-size:13px;color:#93A2BF;max-width:70ch}
@media (max-width:820px){.partners{grid-template-columns:1fr}.csr-panel{padding:32px 26px 36px}}
.railwrap{display:none}
@media (max-width:1240px){
 .railwrap{display:block;border-top:1px solid var(--rule);background:var(--white)}
 .rail{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 14px;position:relative}
 .rail::-webkit-scrollbar{display:none}
 .rail a{flex:none;font-family:var(--f-d);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);text-decoration:none;padding:12px 13px 10px;border-bottom:3px solid transparent;white-space:nowrap;transition:color .18s,border-color .18s}
 .rail a.on{border-bottom-color:var(--bronze);color:var(--blue-d)}
 header.top.stuck .top-in{height:62px}
 header.top.stuck .mark img{height:48px}
}
nav.tn a.on{border-bottom-color:var(--bronze)}
[id]{scroll-margin-top:96px}
@media (max-width:1240px){[id]{scroll-margin-top:148px}}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Deter casual copying of imagery: no drag, no iOS long-press save menu.
   Text stays selectable so visitors can copy the address and email. */
img,video,svg,canvas,picture,.hero .bg,.mapwrap{
  -webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;user-drag:none;
  -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;
  -webkit-touch-callout:none}
/* comfortable touch targets on phones and tablets, desktop left alone */
@media (pointer:coarse){
  .langbar a{padding:15px 13px}
  .util .shell{height:auto;padding-block:2px}
  .f-grid ul a{display:inline-block;padding:9px 0}
  .addr a{display:inline-block;padding:8px 0}
  .colo a{display:inline-block;padding:8px 0}
  .rail a{padding-block:14px}
}
/* language bar (replaces the JS select) */
.langbar{display:flex;gap:2px}
.langbar a{font-family:var(--f-d);font-size:11px;font-weight:700;letter-spacing:.15em;
  color:#8FA0BE;text-decoration:none;padding:4px 9px;border:1px solid transparent;border-radius:2px;line-height:1.2}
.langbar a:hover{color:#FFF;border-color:rgba(255,255,255,.22)}
.langbar a.on{color:#FFF;border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.07)}
.wmap-slot{min-height:120px}
@media (pointer:coarse){.langbar a{padding:15px 13px}.util .shell{height:auto;padding-block:2px}}

@media (min-width:820px){.hero .bg{background-image:url("/assets/exterior.jpg")}}

/* ======================================================================
   Accessibility, legibility and mobile-navigation remediation — 6 Nov 2026
   Appended as overrides so every change is visible in one place.
   ====================================================================== */

/* 1 — contrast. Both tokens failed WCAG AA at small sizes on white.
       bronze  #A8763A = 3.95:1  ->  #8A5F2B = 5.6:1
       muted   #868C89 = 3.43:1  ->  #6E7370 = 4.9:1                      */
:root{
  --bronze:#8A5F2B;
  --bronze-dd:#5E3F18;
  --muted:#6E7370;
}

/* 2 — legibility. Nothing below 12.5px; body copy off 12px.             */
.fs .l,.photo figcaption,.quote cite,.dir .role,.vid-cap,.aw-stats .l,
.mapkey i,.fig figcaption b,.cert dt,.layers li b,.addr h3,.f-grid h4,
.cert .badge .txt-mark span,.partner b{font-size:12.5px;letter-spacing:.12em}
.kicker{font-size:13px}
.prod p{font-size:14px;color:var(--ink-2)}
.npd p{font-size:14px}
.npd .num{font-size:13px}
.wavestrip .tag-in,.wavestrip .tag-mid,.wavestrip .tag-out{font-size:12px;letter-spacing:.16em}
.cause{font-size:12.5px}
.colo{font-size:13px;color:#8E9BBD}
.util{font-size:13px}
.langbar a{font-size:12.5px}

/* 3 — touch targets. Phones and tablets only; the desktop design is
       left exactly as it was.                                           */
@media (pointer:coarse){
  .langbar a{min-height:44px;display:inline-flex;align-items:center;padding:0 14px}
  .f-grid ul a{display:block;padding:12px 0}
  .addr a{display:inline-block;padding:12px 0}
  .colo a{display:inline-block;padding:12px 0}
}

/* 4 — mobile navigation. The horizontal rail scrolled silently off the
       right edge with no affordance, hiding six of ten sections. It is
       now a labelled menu button opening a two-column list.             */
.menu-btn{display:none}
@media (max-width:1240px){
  .menu-btn{display:inline-flex;align-items:center;gap:11px;min-height:46px;
    padding:0 16px;border:1px solid var(--rule);border-radius:4px;
    background:var(--white);cursor:pointer;font-family:var(--f-d);font-size:13px;
    font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
  .menu-btn:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}
  .menu-btn .bars{position:relative;width:18px;height:12px;flex:none}
  .menu-btn .bars i{position:absolute;left:0;right:0;height:2px;background:currentColor;
    transition:transform .22s ease,opacity .16s ease}
  .menu-btn .bars i:nth-child(1){top:0}
  .menu-btn .bars i:nth-child(2){top:5px}
  .menu-btn .bars i:nth-child(3){top:10px}
  .menu-btn[aria-expanded="true"] .bars i:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] .bars i:nth-child(2){opacity:0}
  .menu-btn[aria-expanded="true"] .bars i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

  .railwrap{display:block;border-top:1px solid var(--rule);background:var(--white);
    max-height:0;overflow:hidden;transition:max-height .3s ease}
  .railwrap.open{max-height:76vh;overflow-y:auto;
    box-shadow:0 14px 28px rgba(22,32,58,.10)}
  .rail{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;
    overflow:visible;padding:6px 20px 18px}
  .rail a{display:flex;align-items:center;min-height:50px;padding:0 2px;
    font-size:13.5px;letter-spacing:.08em;white-space:normal;
    border-bottom:1px solid var(--rule)}
  .rail a.on{color:var(--blue-d);border-bottom-color:var(--bronze)}
  [id]{scroll-margin-top:100px}
}
@media (max-width:520px){.rail{grid-template-columns:1fr}}

/* 5 — skip link, and a visible focus ring everywhere.                   */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--blue-dd);
  color:#FFF;font-family:var(--f-d);font-size:14px;font-weight:700;
  padding:14px 20px;text-decoration:none}
.skip:focus{left:0}
a:focus-visible,button:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}

/* 6 — the stiffness figures are representative, not measured data.      */
.fig .disclaim{display:block;font-size:12.5px;line-height:1.5;color:var(--muted);
  margin-top:4px;font-style:italic}

/* 7 — the fact strip now carries six items (headcount and plant count added,
       the redundant "years of operation" removed).                        */
.fs-in{grid-template-columns:repeat(6,1fr)}
@media (max-width:1180px){.fs-in{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.fs-in{grid-template-columns:repeat(2,1fr)}}
@media (max-width:380px){.fs-in{grid-template-columns:1fr}}

/* 8 — <picture> wrappers must not affect layout; every existing rule
       targets the inner <img>.                                          */
picture{display:contents}

/* 9 — second contrast/legibility pass, after measuring the first.        */
:root{ --muted:#676C69; }                    /* 4.15:1 on the tint band -> 4.6:1 */
h2 .sub{font-size:max(12.5px,.42em)}         /* the em-relative eyebrow fell to 10.9px on phones */
.wavestrip .tag-in,.wavestrip .tag-mid,.wavestrip .tag-out{font-size:12.5px}
.cert .badge .txt-mark span{color:#E8D3AC}   /* was --bronze-l, 3.26:1 on the blue card */

/* 10 — the About column now carries two photographs, so it is much taller
       than the text beside it. Centring the row left a large gap above the
       headline; the text now starts at the top of the photo. */
.photostack{display:block}
#about .split.mid{align-items:start;grid-template-columns:1.2fr .8fr}
@media (max-width:900px){#about .split.mid{grid-template-columns:1fr}}
/* the board list sits in the text column, beside the board photographs */
.dirs.in-column{grid-template-columns:1fr;margin-top:32px}
.dirs.in-column .dir{padding:20px 22px 22px}
.dirs.in-column .dir p{max-width:62ch}
