:root{--navy:#323873;--navy-dk:#222758;--red:#d14644;--maroon:#943030;--paper:#f7f7f7;--white:#fff;--ink:#1b1d2b;--steel:#5a6074;--line:#d9dbe3;--max:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.65 "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
h1,h2,h3{font-family:"Archivo",system-ui,sans-serif;line-height:1.15;margin:0 0 .6em;color:var(--navy-dk)}
h1{font-size:clamp(2rem,4.6vw,3.5rem);font-weight:800;letter-spacing:-.01em}h2{font-size:clamp(1.5rem,2.8vw,2.1rem);font-weight:700}h3{font-size:1.2rem;font-weight:700}
p{margin:0 0 1em;max-width:70ch}a{color:var(--navy);text-underline-offset:3px}a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:99}
.topbar{background:var(--navy-dk);color:#dfe1f2;font-size:.9rem}.topbar .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:.45rem;padding-bottom:.45rem}.topbar a{color:#fff;text-decoration:none}
header.site{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:84px}
.brand img{height:64px;width:auto;display:block}
nav.main ul{list-style:none;display:flex;gap:.25rem;margin:0;padding:0;align-items:center}
nav.main a{display:block;padding:.6rem .8rem;text-decoration:none;color:var(--ink);font-weight:600;font-size:.98rem}
nav.main a:hover,nav.main a[aria-current=page]{color:var(--red)}
nav.main a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--red)}
nav.main li{position:relative}.sub{display:none;position:absolute;left:0;top:100%;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);min-width:270px;flex-direction:column;padding:.4rem 0;box-shadow:0 12px 30px rgba(34,39,88,.15)}
nav.main li:hover>.sub,nav.main li:focus-within>.sub{display:flex}.sub a{font-weight:500}
.nav-cta{background:var(--red);color:#fff!important;margin-left:.5rem}.nav-cta:hover{background:var(--maroon);color:#fff!important}
.menu-btn{display:none;background:none;border:2px solid var(--navy);color:var(--navy);font:700 .95rem "Archivo",sans-serif;padding:.45rem .8rem;cursor:pointer}
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;right:-8%;top:0;bottom:0;width:46%;background:var(--red);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%);opacity:.95}
.hero:after{content:"";position:absolute;right:-8%;bottom:0;width:30%;height:42%;background:var(--maroon);clip-path:polygon(0 100%,100% 100%,60% 0)}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;padding-top:4.5rem;padding-bottom:4.5rem;align-items:center}
.hero h1{color:#fff}.hero p{color:#e3e5f6;font-size:1.15rem}
.btn{display:inline-block;background:var(--red);color:#fff;padding:.8rem 1.5rem;font:700 1rem "Archivo",sans-serif;text-decoration:none;border:2px solid var(--red);cursor:pointer}
.btn:hover{background:var(--maroon);border-color:var(--maroon);color:#fff}.btn.ghost{background:transparent;border-color:#fff}.btn.ghost:hover{background:#fff;color:var(--navy)}
.btns{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}
.stock{background:#fff;color:var(--ink);box-shadow:0 20px 50px rgba(0,0,0,.3)}.stock h2{font-size:1.1rem;padding:1rem 1.25rem;margin:0;background:var(--navy-dk);color:#fff}
.stock a{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.stock a:hover{background:var(--paper)}.stock strong{font-family:"Archivo",sans-serif}.stock span{color:var(--red);font-weight:700;text-align:right}
section{padding:4rem 0}section.alt{background:#fff}section.dark{background:var(--navy-dk);color:#e6e8f7}section.dark h2,section.dark h3{color:#fff}
.page-head{background:var(--navy);color:#fff;padding:3rem 0 2.6rem;border-bottom:6px solid var(--red)}.page-head h1{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);margin:0}
.crumbs{font-size:.9rem;margin-bottom:.8rem;color:#c9ccea}.crumbs a{color:#fff}
.families a.row{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:1.5rem;padding:1.5rem 0 1.5rem 1.25rem;border-top:1px solid var(--line);border-left:5px solid transparent;text-decoration:none;color:var(--ink)}
.families a.row:hover{border-left-color:var(--red);background:var(--paper)}.families a.row h3{margin:0;color:var(--navy)}.families a.row p{margin:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.four{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.ticks{list-style:none;padding:0;margin:0}.ticks li{padding:.55rem 0 .55rem 1.6rem;position:relative;border-bottom:1px solid var(--line)}.ticks li:before{content:"";position:absolute;left:0;top:1.05rem;width:.7rem;height:.7rem;background:var(--red);clip-path:polygon(0 0,100% 0,0 100%)}
section.dark .ticks li{border-color:rgba(255,255,255,.18)}
figure{margin:0}figure img{width:100%;height:auto;display:block;background:#ddd}figcaption{font-size:.95rem;padding:.6rem 0;color:var(--steel);font-weight:600}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.mills{display:flex;flex-wrap:wrap;gap:.6rem}.mills span{border:2px solid var(--navy);padding:.45rem .9rem;font:700 .95rem "Archivo",sans-serif;color:var(--navy)}
.band{background:var(--red);color:#fff;padding:1.6rem 0}.band .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.band h2{color:#fff;margin:0;font-size:1.4rem}.band .btn{background:#fff;color:var(--maroon);border-color:#fff}.band .btn:hover{background:var(--navy-dk);color:#fff;border-color:var(--navy-dk)}
.tblwrap{overflow-x:auto;margin:0 0 1.5rem;border:1px solid var(--line);background:#fff}table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:.55rem .75rem;border:1px solid var(--line);text-align:left;white-space:nowrap}th{background:var(--navy);color:#fff;font-family:"Archivo",sans-serif;font-weight:600}tbody th{background:var(--paper);color:var(--navy-dk)}
.grade{padding:2rem 0;border-top:3px solid var(--navy)}.grade:first-of-type{border-top:0}.grade h2{display:flex;gap:.75rem;align-items:baseline;flex-wrap:wrap}.grade h2 small{font:500 1rem "Source Sans 3",sans-serif;color:var(--steel)}.grade h3{font-size:1rem;margin:1.2rem 0 .5rem;color:var(--steel)}
.layout{display:grid;grid-template-columns:1fr 310px;gap:3rem;align-items:start}aside .box{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);padding:1.25rem;margin-bottom:1.5rem}aside ul{list-style:none;margin:0;padding:0}aside li a{display:block;padding:.4rem 0;border-bottom:1px solid var(--line);text-decoration:none}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none}.chips a{display:block;border:2px solid var(--navy);padding:.3rem .8rem;font:700 .9rem "Archivo",sans-serif;text-decoration:none}.chips a:hover{background:var(--navy);color:#fff}
form .f{margin-bottom:1rem}label{display:block;font-weight:600;margin-bottom:.3rem}input,textarea,select{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid #9aa0b5;background:#fff;color:var(--ink)}textarea{min-height:130px}.hp{position:absolute;left:-9999px}
.team{list-style:none;padding:0;margin:0}.team li{padding:.7rem 0;border-bottom:1px solid var(--line)}.team span{display:block;color:var(--steel);font-size:.95rem}
.office{background:#fff;border:1px solid var(--line);border-top:4px solid var(--navy);padding:1.5rem}.office address{font-style:normal}
footer.site{background:var(--navy-dk);color:#cfd2ea;padding:3.5rem 0 1.5rem;font-size:.97rem}footer.site h2{font-size:1rem;color:#fff;margin-bottom:.8rem}footer.site a{color:#fff;text-decoration:none}footer.site a:hover{text-decoration:underline}footer.site ul{list-style:none;padding:0;margin:0}footer.site li{padding:.2rem 0}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1.2fr;gap:2rem}.fgrid img{height:70px;background:var(--paper);padding:.4rem;margin-right:.5rem}.legal{border-top:1px solid rgba(255,255,255,.18);margin-top:2rem;padding-top:1rem;font-size:.88rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
@media(max-width:960px){.hero .wrap,.two,.layout,.three,.fgrid{grid-template-columns:1fr}.four{grid-template-columns:1fr 1fr}.hero:before{width:100%;opacity:.15}.hero:after{display:none}.families a.row{grid-template-columns:1fr;gap:.4rem}.gal{grid-template-columns:1fr 1fr}
.menu-btn{display:block}nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:3px solid var(--red);max-height:75vh;overflow:auto}nav.main.open{display:block}nav.main ul{flex-direction:column;align-items:stretch;padding:.5rem 1.25rem}.sub{display:flex;position:static;border:0;box-shadow:none;padding:0 0 0 1rem;min-width:0}.nav-cta{margin:.5rem 0}header.site .wrap{position:relative}}
@media(max-width:560px){.gal,.four{grid-template-columns:1fr}.brand img{height:52px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ===== v2: logo-shape design system, mega menu, slider, motion ===== */
:root{--slant:3.2vw;--ease:cubic-bezier(.2,.8,.2,1)}
header.site .wrap{min-height:116px}.brand img{height:96px;width:auto;transition:height .3s var(--ease)}
header.site{transition:box-shadow .3s}header.site.scrolled{box-shadow:0 8px 26px rgba(34,39,88,.16)}header.site.scrolled .wrap{min-height:82px}header.site.scrolled .brand img{height:66px}
nav.main li.has-mega{position:static;display:flex;align-items:center}
.mega-toggle{width:30px;height:30px;border:0;background:none;cursor:pointer;position:relative;margin-left:-.4rem}
.mega-toggle:before{content:"";position:absolute;left:10px;top:8px;width:8px;height:8px;border:solid var(--navy);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .3s var(--ease),top .3s}
.has-mega.open .mega-toggle:before{transform:rotate(-135deg);top:13px}
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:4px solid var(--red);box-shadow:0 30px 60px rgba(34,39,88,.24);visibility:hidden;opacity:0;clip-path:inset(0 0 100% 0);transition:clip-path .5s var(--ease),opacity .2s,visibility 0s .5s}
.has-mega.open .mega{visibility:visible;opacity:1;clip-path:inset(0 0 -80px 0);transition-delay:0s}
.mega-in{display:grid;grid-template-columns:repeat(3,1fr) 1.15fr;gap:2rem;padding:2rem 1.25rem 2.2rem}
.mega h3{font-size:1rem;color:var(--navy-dk);padding-bottom:.5rem;margin-bottom:.6rem;border-bottom:3px solid var(--red);display:inline-block}
.mega a.m{display:block;padding:.5rem .7rem;border-left:3px solid transparent;color:var(--ink);transition:background .2s,border-color .2s,transform .25s var(--ease)}
.mega a.m strong{display:block;font:700 1rem "Archivo",sans-serif;color:var(--navy)}.mega a.m span{font-size:.86rem;color:var(--steel)}
.mega a.m:hover,.mega a.m:focus-visible{background:var(--paper);border-left-color:var(--red);transform:translateX(5px)}
.has-mega.open .mega a.m{animation:mIn .5s var(--ease) both;animation-delay:calc(var(--i)*45ms + 120ms)}
.mega-feat{background:var(--navy);color:#fff;padding:1.5rem;clip-path:polygon(24px 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%,0 24px);display:flex;flex-direction:column;gap:.6rem}
.mega-feat h3{color:#fff;border-color:var(--red)}.mega-feat p{font-size:.95rem;margin:0}.mega-feat a:not(.btn){color:#fff}
.btn{clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);position:relative;overflow:hidden;transition:background .25s,color .25s,transform .25s var(--ease)}
.btn:hover{transform:translateY(-2px)}.btn:after{content:"";position:absolute;top:0;left:-70%;width:40%;height:100%;background:rgba(255,255,255,.35);transform:skewX(-25deg);transition:left .6s}.btn:hover:after{left:130%}
/* slider */
.slider{position:relative;background:linear-gradient(120deg,#1b1f4a,var(--navy-dk));color:#fff;overflow:hidden;min-height:clamp(580px,88vh,800px)}
.slider .shape{position:absolute;pointer-events:none}
.sh1{left:-12%;top:0;width:62%;height:100%;background:linear-gradient(135deg,#40479a,#2b3173);clip-path:polygon(0 0,72% 0,100% 100%,0 100%);animation:drift 16s ease-in-out infinite alternate}
.sh2{right:0;top:0;width:34%;height:100%;background:var(--red);clip-path:polygon(42% 0,100% 0,100% 100%,0 100%);animation:drift2 18s ease-in-out infinite alternate}
.sh3{right:0;bottom:0;width:24%;height:38%;background:var(--maroon);clip-path:polygon(0 100%,100% 100%,100% 0);animation:drift 12s ease-in-out infinite alternate-reverse}
.slide{position:absolute;inset:0;visibility:hidden;opacity:0;transition:opacity .9s,visibility 0s .9s}.slide.active{visibility:visible;opacity:1;transition-delay:0s;z-index:2}
.slide>.wrap{height:100%}.sl{height:100%;display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center;padding-top:3rem;padding-bottom:5.5rem}
.slider h1,.slider .t{color:#fff;font-size:clamp(2.3rem,5.2vw,4.3rem);font-weight:800;letter-spacing:-.015em;margin:0 0 1.1rem}
.ln{display:block;overflow:hidden;padding-bottom:.08em}.ln>span{display:block;transform:translateY(112%)}
.slide.active .ln>span{animation:up .9s var(--ease) both;animation-delay:calc(var(--l)*120ms + 250ms)}
.slider .fade{opacity:0}.slide.active .fade{animation:fadeUp .8s var(--ease) .75s both}.slider p{color:#e6e8fa;font-size:1.18rem}
.art{width:100%;max-width:560px;justify-self:center}.slide.active .art{animation:wipe 1.1s var(--ease) both}.art svg{width:100%;height:auto;display:block;filter:drop-shadow(0 24px 30px rgba(0,0,0,.35))}
.slide.active .art svg{animation:float 7s ease-in-out 1.4s infinite alternate}
.slide .bar .b{transform:scale(0);transform-box:fill-box;transform-origin:center}.slide.active .bar .b{animation:pop .7s cubic-bezier(.2,1.4,.4,1) both;animation-delay:calc(var(--i)*55ms + 350ms)}
.slab{transform:translateX(640px)}.slide.active .slab{animation:slideIn .9s var(--ease) both;animation-delay:calc(var(--i)*130ms + 250ms)}
.coil{opacity:0}.slide.active .coil{animation:show .5s both;animation-delay:calc(var(--i)*90ms + 300ms)}.spring{transform-box:fill-box;transform-origin:center}.slide.active .spring{animation:spr 2.8s ease-in-out 1.4s infinite}
.ring{transform-box:fill-box;transform-origin:center}.slide.active .ring{animation:spin 26s linear infinite}.slide.active .ring.rev{animation-direction:reverse}.ptxt{opacity:0}.slide.active .ptxt{animation:show .8s .9s both}
.s-ctl{position:absolute;left:0;right:0;bottom:1.7rem;z-index:6}.s-ctl .wrap{display:flex;align-items:center;gap:.8rem}
.s-ctl button{font:700 1.4rem/1 "Archivo",sans-serif;color:#fff;background:transparent;border:2px solid rgba(255,255,255,.7);width:46px;height:46px;cursor:pointer;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);transition:background .25s}.s-ctl button:hover{background:var(--red);border-color:var(--red)}
.s-ctl .dots{display:flex;gap:.5rem;margin:0 .6rem}.s-ctl .dots button{width:38px;height:6px;padding:0;border:0;background:rgba(255,255,255,.35);clip-path:none}.s-ctl .dots button.on{background:var(--red)}
.s-prog{position:absolute;left:0;bottom:0;height:5px;width:100%;background:rgba(255,255,255,.12);z-index:6}.s-prog i{display:block;height:100%;background:var(--red);animation:prog 6.5s linear both}.slider.paused .s-prog i{animation-play-state:paused}
/* ticker + stats */
.marq{background:var(--red);color:#fff;overflow:hidden;white-space:nowrap}.marq .tr{display:inline-flex;animation:mq 50s linear infinite}.marq:hover .tr{animation-play-state:paused}
.marq span{padding:.95rem 1.7rem;font:700 1rem "Archivo",sans-serif;display:inline-flex;align-items:center}.marq span:after{content:"";width:.6rem;height:.6rem;background:#fff;clip-path:polygon(0 0,100% 0,0 100%);margin-left:1.7rem}
.stats{background:#fff;padding:3.2rem 0}.stats .four>div{border-left:5px solid var(--red);padding:.2rem 0 .2rem 1.1rem}.stats b{display:block;font:800 clamp(2rem,4vw,3rem)/1 "Archivo",sans-serif;color:var(--navy)}.stats span{color:var(--steel);font-weight:600}
/* slanted sections echo the logo */
section.alt,section.dark{clip-path:polygon(0 0,100% var(--slant),100% 100%,0 100%);margin-top:calc(var(--slant)*-1);padding-top:calc(4rem + var(--slant));padding-bottom:5rem}
footer.site{clip-path:polygon(0 var(--slant),100% 0,100% 100%,0 100%);margin-top:calc(var(--slant)*-1);padding-top:calc(3.5rem + var(--slant))}.fgrid img{height:96px;width:auto}
.families a.row{transition:background .3s,border-color .3s,padding .3s var(--ease)}.families a.row:hover{padding-left:2rem}
figure{overflow:hidden}figure img{transition:transform .8s var(--ease)}figure:hover img{transform:scale(1.06)}.office{transition:transform .3s var(--ease),box-shadow .3s}.office:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(34,39,88,.16)}
/* page heads */
.page-head{position:relative;overflow:hidden;padding:4rem 0 3.4rem}
.page-head:before{content:"";position:absolute;left:-10%;top:0;bottom:0;width:58%;background:var(--navy-dk);clip-path:polygon(0 0,76% 0,100% 100%,0 100%);animation:slideL 1.1s var(--ease) both}
.page-head:after{content:"";position:absolute;right:0;top:0;bottom:0;width:20%;background:var(--red);clip-path:polygon(45% 0,100% 0,100% 100%,0 100%);animation:slideR 1.1s .15s var(--ease) both}
.page-head .wrap{position:relative;z-index:2}.page-head h1{animation:fadeUp .9s .25s var(--ease) both}.page-head .crumbs{animation:fadeUp .8s .1s both}
.ph-art{position:absolute;right:7%;top:50%;width:320px;transform:translateY(-50%);z-index:1}.ph-art svg{width:100%;height:auto}.ph-art .pb .b{transform:scale(0);transform-box:fill-box;transform-origin:center;animation:pop .6s cubic-bezier(.2,1.4,.4,1) both;animation-delay:calc(var(--i)*60ms + 500ms)}
.progress{position:fixed;left:0;top:0;height:4px;width:0;background:var(--red);z-index:50}
/* scroll reveal */
html.js .rv{opacity:0;transform:translateY(30px);transition:opacity .85s var(--ease),transform .85s var(--ease);transition-delay:var(--d,0ms)}html.js .rv.in{opacity:1;transform:none}
@keyframes up{from{transform:translateY(112%)}to{transform:none}}@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes show{to{opacity:1}}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}@keyframes wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(-10% -10% -10% -10%)}}
@keyframes float{from{transform:translateY(-8px)}to{transform:translateY(10px)}}@keyframes slideIn{from{transform:translateX(640px)}to{transform:none}}
@keyframes spr{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.84)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes prog{from{width:0}to{width:100%}}
@keyframes mq{to{transform:translateX(-50%)}}@keyframes mIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes slideL{from{transform:translateX(-100%)}to{transform:none}}@keyframes slideR{from{transform:translateX(100%)}to{transform:none}}
@keyframes drift{from{transform:translate(0,0)}to{transform:translate(2.5%,-3%)}}@keyframes drift2{from{transform:translateX(0)}to{transform:translateX(-4%)}}
@media(max-width:960px){.sl{grid-template-columns:1fr;padding-top:2rem;padding-bottom:6rem;align-content:center}.art{max-width:320px;grid-row:1}.slider{min-height:760px}.sh2{width:50%}
.mega{position:static;clip-path:none;box-shadow:none;border:0;display:none;visibility:visible;opacity:1;transition:none}.has-mega.open .mega{display:block}.mega-in{grid-template-columns:1fr;gap:1rem;padding:.4rem 0 1rem}nav.main li.has-mega{flex-wrap:wrap}.has-mega>a:first-child{flex:1}.mega{width:100%}.ph-art{display:none}header.site .wrap{min-height:90px}.brand img{height:72px}header.site.scrolled .brand img{height:56px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.js .rv{opacity:1;transform:none}.marq .tr{animation:none}}
/* v2.1 fixes */
header.site .mega-in{display:grid;grid-template-columns:repeat(3,1fr) 1.15fr;align-items:start;justify-content:normal;min-height:0}
.mega a.m span{font-weight:400;display:block;line-height:1.35}.mega a.m strong{font-weight:700}
nav.main .mega-feat a.btn{color:#fff;margin:.4rem 0;padding:.8rem 1.5rem}nav.main .mega-feat a:not(.btn){padding:.25rem 0;font-weight:600}
.slider h1,.slider .t{font-size:clamp(2rem,4.2vw,3.6rem)}
.ph-art{width:250px}
@media(max-width:960px){header.site .mega-in{grid-template-columns:1fr;gap:1rem;padding:.4rem 0 1rem}}
.slider{min-height:clamp(560px,calc(100vh - 156px),760px)}
@media(max-width:960px){.slider{min-height:780px}}
.sl{padding-bottom:6.5rem}@media(max-width:560px){.topbar .wrap>span:first-child{display:none}}

/* ===== v3: brighter palette, logo motifs, quote band, facilities, new motion ===== */
:root{--paper:#fbfcff;--tint:#eef1fb}
body{background:var(--paper)}
.topbar{background:#2b3173}
nav.main a{font-size:1.14rem;padding:.65rem .85rem}
@media(max-width:1240px){nav.main a{font-size:1.02rem;padding:.6rem .6rem}}
@media(max-width:960px){nav.main a{font-size:1.1rem}}
header.site{background:#fff}
.slider{background:linear-gradient(120deg,#4048a6,#303780)}.sh1{background:linear-gradient(135deg,#505ac2,#37409a)}
.slider .t,.slider h1{text-shadow:0 2px 18px rgba(20,24,70,.35)}
section.alt{background-color:var(--tint);background-image:linear-gradient(rgba(50,56,115,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(50,56,115,.07) 1px,transparent 1px);background-size:44px 44px}
section.dark{background:linear-gradient(120deg,#3d44a0,#2d3478)}
.page-head{background:linear-gradient(120deg,#4249a8,#323873)}.page-head:before{background:#2b3173}
footer.site{background:#262b63}footer.site .flogos{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}.fgrid .flogos img{height:96px;width:auto;background:none;padding:0;margin:0}
.stats{background:linear-gradient(#fff,var(--tint))}
.stats .four>div{background:#fff;padding:1.2rem 1.2rem 1.2rem 1.4rem;box-shadow:0 10px 28px rgba(50,56,115,.1);clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}
/* logo motifs on every page */
main section,.page-head{position:relative}main section{overflow:hidden}main section>.wrap{position:relative;z-index:1}
main section:not(.slider):not(.stats):not(.qband):before{content:"";position:absolute;right:-40px;top:34px;width:250px;height:250px;background:var(--red);opacity:.08;clip-path:polygon(0 0,100% 0,0 100%);pointer-events:none;animation:drift 12s ease-in-out infinite alternate}
main section:not(.slider):not(.stats):not(.qband):after{content:"";position:absolute;left:-60px;bottom:24px;width:270px;height:150px;background:var(--navy);opacity:.07;clip-path:polygon(25% 0,100% 0,75% 100%,0 100%);pointer-events:none;animation:drift2 14s ease-in-out infinite alternate}
section.dark:before,section.dark:after{opacity:.16!important;background:#fff!important}
main section h2:not(.nomark):before{content:"";display:inline-block;width:.6em;height:.6em;margin-right:.5em;background:linear-gradient(135deg,var(--red) 55%,var(--maroon) 55%);clip-path:polygon(30% 0,100% 0,100% 70%,70% 100%,0 100%,0 30%);vertical-align:.05em}
html.js .rv.in h2:before,html.js h2.rv.in:before{animation:markIn .9s var(--ease) both}
figure{clip-path:polygon(26px 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%,0 26px)}
figure img{filter:saturate(1.08)}.four figure figcaption{padding:.6rem .2rem}
.gal figure{background:#fff;box-shadow:none}
.tblwrap{box-shadow:0 8px 24px rgba(50,56,115,.08)}
/* tiles, steps, faq */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.5rem}.tile{background:#fff;border-left:6px solid var(--red);padding:1.4rem 1.4rem 1.2rem;box-shadow:0 10px 26px rgba(50,56,115,.09);transition:transform .35s var(--ease),box-shadow .35s,border-color .3s}
.tile:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(50,56,115,.18);border-color:var(--navy)}.tile h3{color:var(--navy)}.tile p{margin:0;color:var(--steel)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;list-style:none;margin:2.6rem 0 0;padding:0;counter-reset:s}
.steps li{background:#fff;color:var(--ink);padding:2rem 1.3rem 1.3rem;border-top:5px solid var(--red);position:relative;counter-increment:s;box-shadow:0 14px 30px rgba(10,14,60,.25)}
.steps li:before{content:counter(s);position:absolute;top:-26px;left:1.1rem;width:48px;height:48px;background:var(--red);color:#fff;font:800 1.3rem "Archivo",sans-serif;display:grid;place-items:center;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.steps h3{color:var(--navy-dk);font-size:1.1rem}.steps p{margin:0;font-size:.98rem}
.faq details{background:#fff;border:1px solid var(--line);border-left:6px solid var(--navy);margin-bottom:.8rem;transition:border-color .3s,box-shadow .3s}.faq details[open]{border-left-color:var(--red);box-shadow:0 12px 28px rgba(50,56,115,.12)}
.faq summary{cursor:pointer;padding:1.05rem 3.2rem 1.05rem 1.3rem;font:700 1.08rem "Archivo",sans-serif;color:var(--navy-dk);list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);font-size:1.6rem;color:var(--red);transition:transform .3s}.faq details[open] summary:after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding:0 1.3rem 1.2rem;margin:0;max-width:none}
/* facilities cards */
.fcards{display:grid;grid-template-columns:1fr 1fr;gap:2.2rem;margin-top:2rem}.fwrap{display:block}
.fcard{background:#fff;display:flex;flex-direction:column;height:100%;box-shadow:0 14px 34px rgba(50,56,115,.14);clip-path:polygon(30px 0,100% 0,100% calc(100% - 30px),calc(100% - 30px) 100%,0 100%,0 30px);transform-style:preserve-3d}
.fimg{position:relative;overflow:hidden;cursor:zoom-in}.fimg img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .9s var(--ease)}.fcard:hover .fimg img{transform:scale(1.08)}
.fno{position:absolute;left:0;top:0;background:var(--red);color:#fff;font:800 1.2rem "Archivo",sans-serif;padding:.7rem 1.2rem .7rem 1.4rem;clip-path:polygon(0 0,100% 0,100% 55%,72% 100%,0 100%)}
.fbody{padding:1.6rem 1.8rem 2rem;border-top:6px solid var(--red);flex:1}.fbody h3{font-size:1.4rem;color:var(--navy-dk)}
.fspec{display:flex;gap:.6rem;flex-wrap:wrap;margin:.2rem 0 1rem}.fspec span{background:var(--tint);border-left:4px solid var(--red);padding:.25rem .75rem;font:700 .86rem "Archivo",sans-serif;color:var(--navy)}
/* company cards */
.cocard h3{color:var(--navy-dk);font-size:1.35rem}.cocard img{height:auto;max-width:170px;margin:.4rem 0 1rem;display:block}.cocard address{margin:1rem 0}.cocard .btn{margin-top:.4rem}
.wordmark{font:800 2.1rem/1 "Archivo",sans-serif;color:var(--navy);margin:1rem 0 1.4rem!important;letter-spacing:.02em}.wordmark span{color:var(--red)}
/* quote band */
.qband{background:linear-gradient(115deg,#2d3478 0%,#4048a6 56%,#d14644 56.2%,#bf3836 100%);color:#fff;position:relative;overflow:hidden;padding:calc(4.5rem + var(--slant)) 0 calc(5rem + var(--slant));clip-path:polygon(0 var(--slant),100% 0,100% 100%,0 100%);margin-top:calc(var(--slant)*-1)}
.qshape{position:absolute;pointer-events:none}.q1{left:-4%;bottom:-18%;width:34%;height:70%;background:rgba(255,255,255,.07);clip-path:polygon(0 100%,100% 0,100% 100%);animation:drift 11s ease-in-out infinite alternate}
.q2{right:-3%;top:-10%;width:26%;height:55%;background:rgba(255,255,255,.1);clip-path:polygon(30% 0,100% 0,100% 100%,0 100%);animation:drift2 13s ease-in-out infinite alternate}.q3{left:46%;top:0;width:12%;height:100%;background:rgba(255,255,255,.05);clip-path:polygon(40% 0,100% 0,60% 100%,0 100%)}
.qgrid2{display:grid;grid-template-columns:1fr 1.3fr;gap:3.5rem;align-items:center;position:relative;z-index:2}
.qtxt h2{color:#fff;font-size:clamp(2rem,4vw,3.1rem)}.qtxt .lead{font-size:1.25rem;color:#eceefc}.ticks.lt li{border-color:rgba(255,255,255,.25)}.qcall{margin-top:1.4rem}.qtxt a{color:#fff;font-weight:700}
.qwrap{filter:drop-shadow(0 30px 40px rgba(8,10,50,.55))}.qcard{background:#fff;color:var(--ink);padding:2.2rem 2.2rem 2.4rem;border-top:8px solid var(--red);clip-path:polygon(34px 0,100% 0,100% calc(100% - 34px),calc(100% - 34px) 100%,0 100%,0 34px)}
.qcard h3{font-size:1.6rem;margin-bottom:1.2rem;color:var(--navy-dk)}.qf{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1.2rem}.qf .full{grid-column:1/-1}
.qcard input,.qcard textarea,.qcard select{background:var(--paper);border:2px solid #cfd3e6;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s,background .2s}.qcard input:focus,.qcard textarea:focus,.qcard select:focus{outline:none;border-color:var(--red);background:#fff;box-shadow:0 0 0 4px rgba(209,70,68,.18)}
.qcard label{font-size:.92rem;color:var(--navy-dk)}.qcard textarea{min-height:110px}.qcard .btn{width:100%;font-size:1.15rem;padding:1rem;animation:pulse 2.6s ease-in-out infinite}
/* slider photos */
.phwrap{position:relative;width:100%;max-width:580px;aspect-ratio:4/3;margin:0 auto}
.phwrap:before{content:"";position:absolute;inset:7% -5% -7% 9%;background:var(--red);clip-path:polygon(34px 0,100% 0,100% calc(100% - 34px),calc(100% - 34px) 100%,0 100%,0 34px);opacity:.92}
.phwrap:after{content:"";position:absolute;left:-6%;top:-5%;width:30%;height:30%;background:#fff;opacity:.9;clip-path:polygon(0 0,100% 0,0 100%)}
.phframe{position:absolute;inset:0;overflow:hidden;background:#222;clip-path:polygon(34px 0,100% 0,100% calc(100% - 34px),calc(100% - 34px) 100%,0 100%,0 34px);box-shadow:0 20px 40px rgba(0,0,0,.4)}.phframe img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02)}
.slide.active .phframe img{animation:kb 14s ease-in-out infinite alternate}
.phtag{position:absolute;z-index:3;background:#fff;color:var(--navy-dk);font:800 1rem "Archivo",sans-serif;padding:.7rem 1.1rem;border-left:6px solid var(--red);box-shadow:0 14px 28px rgba(0,0,0,.3);opacity:0}.phtag.t0{left:-1.5rem;bottom:1.6rem}.phtag.t1{right:-1.2rem;top:1.6rem;border-left-color:var(--navy)}
.slide.active .phtag{animation:tagIn .8s var(--ease) both}.slide.active .phtag.t0{animation-delay:.9s}.slide.active .phtag.t1{animation-delay:1.1s}
.slider .shape{translate:calc(var(--mx,0)*26px) calc(var(--my,0)*16px);transition:translate .4s ease-out}.slide .art{translate:calc(var(--mx,0)*-14px) calc(var(--my,0)*-10px);transition:translate .4s ease-out}
.slider .btn.ghost{background:rgba(255,255,255,.08)}
/* loader, to-top, lightbox */
.loader{position:fixed;inset:0;background:#2b3173;z-index:100;display:none;place-items:center;align-content:center;gap:1.2rem;color:#fff}html.loading .loader{display:grid}.loader svg{width:130px}.loader b{font:800 1.1rem "Archivo",sans-serif;letter-spacing:.35em;opacity:0;animation:fadeUp .7s .6s both}
.loader .lp{opacity:0}.loader .l1{animation:lp1 .7s .1s var(--ease) both}.loader .l2{animation:lp2 .7s .3s var(--ease) both}.loader .l3{animation:lp3 .7s .5s var(--ease) both}
.loader.out{animation:lOut .75s var(--ease) forwards}
.totop{position:fixed;right:1.4rem;bottom:1.4rem;width:58px;height:58px;padding:0;border:0;background:var(--navy);cursor:pointer;z-index:40;opacity:0;visibility:hidden;transform:translateY(24px);transition:opacity .3s,visibility .3s,transform .4s var(--ease),background .25s;clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);box-shadow:0 10px 24px rgba(0,0,0,.3)}
.totop.show{opacity:1;visibility:visible;transform:none}.totop:hover{background:var(--red)}.totop svg{width:100%;height:100%;display:block}
.lb{position:fixed;inset:0;background:rgba(15,18,55,.92);z-index:90;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;cursor:zoom-out;padding:2rem}.lb.on{opacity:1;visibility:visible}.lb img{max-width:min(1100px,100%);max-height:88vh;box-shadow:0 30px 80px rgba(0,0,0,.6);transform:scale(.94);transition:transform .4s var(--ease)}.lb.on img{transform:none}.lb button{position:absolute;top:1rem;right:1.4rem;background:none;border:0;color:#fff;font-size:3rem;cursor:pointer;line-height:1}
@keyframes markIn{from{transform:rotate(-180deg) scale(0)}to{transform:none}}@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.14) translate(-1.5%,-1%)}}
@keyframes tagIn{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(209,70,68,.5)}50%{box-shadow:0 0 0 14px rgba(209,70,68,0)}}
@keyframes lp1{from{opacity:0;transform:translate(-40px,-40px)}to{opacity:1;transform:none}}@keyframes lp2{from{opacity:0;transform:translate(-40px,40px)}to{opacity:1;transform:none}}@keyframes lp3{from{opacity:0;transform:translate(40px,40px)}to{opacity:1;transform:none}}@keyframes lOut{to{clip-path:inset(0 0 100% 0)}}
@media(max-width:960px){.tiles,.steps,.fcards{grid-template-columns:1fr 1fr}.qgrid2{grid-template-columns:1fr;gap:2rem}.qf{grid-template-columns:1fr}.phwrap{max-width:380px}.phtag.t0{left:.4rem}.phtag.t1{right:.4rem}.qband{background:linear-gradient(160deg,#2d3478,#4048a6 60%,#bf3836)}}
@media(max-width:640px){.tiles,.steps,.fcards{grid-template-columns:1fr}.totop{width:50px;height:50px}.fgrid .flogos img{height:80px}}
.totop{background:var(--red)}.totop:hover{background:var(--navy-dk)}
.fimg img{aspect-ratio:16/10}[id]{scroll-margin-top:110px}
