:root{--navy:#0b2347;--blue:#152f56;--gold:#ffbb09;--gold-dark:#eda900;--muted:#53667f;--line:#e5ebf4;--ice:#f5f9ff;--shadow:0 16px 40px rgba(10,40,80,.08);--u:calc(min(100vw,1440px)/2000);--gut:max(0px,calc(50vw - 720px))}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;background:#fff;color:var(--navy);font-family:Inter,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}button,input,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h1{font-size:clamp(2.8rem,4.4vw,4.8rem);line-height:1.12;font-weight:800}h2{font-size:clamp(2rem,3vw,3rem);line-height:1.17}h3{font-size:1.18rem}p{line-height:1.67;color:var(--muted)}.container{width:min(1420px,calc(100% - 72px));margin-inline:auto}
.topbar{position:relative;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid #e9eff6}.navline{min-height:92px;display:flex;align-items:center;gap:45px}.brand{display:flex;align-items:center;flex:none}.brand img{width:240px;max-height:74px;object-fit:contain}.nav-links{display:flex;justify-content:center;align-items:center;gap:36px;flex:1}.nav-links a{padding:33px 0 29px;border-bottom:3px solid transparent;font-size:.94rem;font-weight:650;transition:color .2s,border-color .2s;white-space:nowrap}.nav-links a:hover,.nav-links a.active{color:#092c55;border-bottom-color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:100px;padding:16px 26px;font-size:.97rem;font-weight:750;line-height:1.2;transition:transform .2s,box-shadow .2s,background .2s;border:1px solid transparent;white-space:nowrap}.btn:hover{transform:translateY(-2px)}.btn span{font-size:1.2rem}.btn svg{flex:none;width:1.35em;height:1.35em}.nav-search{display:grid;place-items:center;flex:none;margin-left:auto;padding:6px;background:none;border:0;color:var(--navy)}.btn-primary{background:var(--gold);color:#0a2346;box-shadow:0 8px 20px rgba(255,187,9,.17)}.btn-primary:hover{background:#ffca36;box-shadow:0 12px 25px rgba(255,187,9,.23)}.btn-secondary{background:#fff;color:var(--navy);border-color:#bbcbde}.btn-secondary:hover{background:#f3f7ff}.top-cta{padding:13px 23px}.mobile-toggle{display:none;background:transparent;border:0;padding:10px}.mobile-toggle span{display:block;width:25px;height:2px;background:var(--navy);margin:5px}
.hero{position:relative;overflow:hidden;background:linear-gradient(114deg,#fff 9%,#f8fbff 38%,#eaf3ff 100%);padding-top:48px;padding-bottom:44px}.hero-art{display:none}.hero-inner{position:relative}.hero-content{position:relative;z-index:2;padding:0 0 36px}.eyebrow{display:flex;align-items:center;gap:15px;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;color:#345477;margin-bottom:28px}.eyebrow span{display:inline-block;width:38px;height:4px;border-radius:5px;background:var(--gold)}.hero .eyebrow{text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:500;color:#3f5673}.hero h1{margin-bottom:26px}.hero h1 em{color:var(--gold);font-style:normal}.hero-content>p{max-width:560px;font-size:1.08rem;margin-bottom:32px}.hero-actions{display:flex;gap:13px;flex-wrap:wrap}.hero-photo{aspect-ratio:715/390;border-radius:25px;background-repeat:no-repeat;background-size:190% auto;background-position:65% 0;box-shadow:var(--shadow)}.hero-features{position:relative;margin-top:16px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;z-index:5}.feature{display:flex;gap:14px;align-items:center;min-height:96px;padding:18px 15px;border:1px solid #e8edf7;background:rgba(255,255,255,.97);box-shadow:0 12px 28px rgba(20,43,70,.06);border-radius:18px;font-weight:750;transition:transform .2s}.feature:hover{transform:translateY(-4px)}.feature-icon,.service-icon{display:grid;place-items:center;flex:none;color:var(--gold-dark);background:#fff7e3;border-radius:13px;width:52px;height:52px}
.section{padding:94px 0}.light-section{background:var(--ice)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:38px}.section-head>div{max-width:820px}.section-head .eyebrow{margin-bottom:15px}.section-head h2{margin-bottom:0}.section-head>p{max-width:350px;margin:0;font-size:1.05rem}.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.service-card{min-width:0;background:#fff;border:1px solid #e4eaf3;box-shadow:var(--shadow);border-radius:22px;overflow:hidden;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px rgba(10,40,80,.13)}.service-card>a:not(.text-link){display:block;overflow:hidden}.service-card img{width:100%;height:194px;object-fit:cover;transition:transform .3s}.service-card:hover img{transform:scale(1.04)}.service-copy{position:relative;padding:30px 23px 28px}.service-icon{position:absolute;top:-29px;left:21px;width:49px;height:49px;border:5px solid white;box-sizing:content-box;box-shadow:0 5px 18px rgba(0,0,0,.06)}.service-copy h3{margin:10px 0 12px;min-height:45px}.service-copy p{font-size:.94rem;min-height:78px}.text-link{color:#c99100;font-size:.91rem;font-weight:800;display:inline-flex;gap:15px}.text-link:hover{text-decoration:underline}.projects-grid{grid-template-columns:repeat(3,1fr)}.cta-banner{padding:54px 64px;background:linear-gradient(105deg,#eef5fd,#fff 64%,#f6faff);border-radius:29px;border:1px solid #e0eaf5;display:flex;justify-content:space-between;align-items:center;gap:48px}.cta-banner h2{margin-bottom:10px}.cta-banner p{margin-bottom:0}.cta-banner .eyebrow{margin-bottom:16px}.page-banner{background:linear-gradient(110deg,#f9fbff,#eaf3ff);padding:86px 0 77px}.page-banner h1{font-size:clamp(2.5rem,4vw,4rem);margin:0 0 20px}.page-banner p{font-size:1.13rem;max-width:750px;margin:0}.detail-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px}.detail-text .btn{margin-top:30px}.longtext{white-space:pre-line;line-height:1.86;font-size:1.06rem;color:#4f6079}.detail-img{width:100%;max-height:475px;object-fit:cover;border-radius:25px}.section-block{max-width:1100px}.section-block h2{margin-bottom:25px}.section-block .btn{margin-top:25px}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.contact-info{padding-top:35px}.contact-info strong{font-size:.86rem;text-transform:uppercase;letter-spacing:.07em;color:#182e4e}.contact-info p{margin-bottom:25px}.contact-form{background:#f8fbff;border:1px solid #e5edf7;border-radius:25px;padding:36px 44px;display:grid;gap:15px}.contact-form h2{font-size:1.7rem;margin-bottom:6px}.contact-form label{font-weight:680;font-size:.93rem;display:grid;gap:8px}.contact-form input,.contact-form textarea{width:100%;border-radius:12px;background:#fff;border:1px solid #cdd9e8;padding:13px 15px;color:var(--navy);outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,187,9,.2)}.contact-form button{width:fit-content}.small-note{font-size:.78rem}.hp-field{position:absolute;left:-9999px;opacity:0}.alert{padding:12px 14px;border-radius:10px;background:#e6fbef;color:#136838}.alert.error{background:#fff0f0;color:#922}.error-text{color:#a11}.footer{background:#0a2242;color:#fff;padding:46px 0}.footer-inner{display:flex;justify-content:space-between;gap:36px;align-items:center}.footer p{color:#a9bbce;margin:12px 0 0}.footer a:hover{color:var(--gold)}.footer-sep{color:#7085a2;margin:0 14px}
@media(max-width:1180px){.navline{gap:20px}.nav-links{gap:18px}.brand img{width:200px}.hero h1{font-size:3.1rem}.feature{font-size:.84rem;padding:12px 10px}.feature-icon{width:43px;height:43px}.service-copy{padding:25px 18px}}@media(max-width:950px){.top-cta{display:none}.nav-search{order:1}.mobile-toggle{order:2;margin-left:0!important}.navline{min-height:80px}.container{width:min(100% - 36px,800px)}.mobile-toggle{display:block;margin-left:auto}.nav-links{display:none;position:absolute;top:80px;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:15px 24px 25px;box-shadow:var(--shadow);flex-direction:column;gap:0;align-items:stretch}.nav-links.open{display:flex}.nav-links a{padding:14px 0}.hero{padding-top:10px}.hero-content{padding:35px 0 24px}.hero h1{font-size:clamp(2.4rem,6vw,3.8rem)}.services-grid{grid-template-columns:repeat(2,1fr)}.section{padding:65px 0}.section-head{align-items:start;gap:25px}.section-head>p{max-width:280px}.contact-grid{gap:40px}.cta-banner{padding:35px}.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.brand img{width:180px}.hero-content{padding:32px 0 24px}.hero h1{font-size:2.35rem}.hero-content>p{font-size:1rem}.hero-features{gap:9px}.feature{font-size:.76rem;gap:7px;min-height:80px}.feature-icon{width:32px;height:32px}.feature-icon svg{width:19px}.hero-actions .btn{width:100%}.services-grid,.projects-grid{grid-template-columns:1fr}.service-card img{height:210px}.service-copy p{min-height:0}.section-head{flex-direction:column;gap:18px}.section-head h2{font-size:2rem}.section-head>p{max-width:100%}.cta-banner{flex-direction:column;align-items:stretch}.detail-layout,.contact-grid{grid-template-columns:1fr;gap:28px}.contact-form{padding:22px}.footer-inner{flex-direction:column;align-items:start}.page-banner{padding:56px 0}}
/* Desktop hero: every measure is in pixels of the 2000x667 design, scaled by --u. */
@media(min-width:1181px){
.container{width:min(calc(100% - var(--u)*220),calc(var(--u)*1780));margin-left:calc(var(--gut) + var(--u)*110);margin-right:auto}
.topbar{overflow:hidden}
.navline{width:calc(var(--u)*2000);margin:0 0 0 var(--gut);padding:0 calc(var(--u)*68) 0 calc(var(--u)*105);min-height:calc(var(--u)*100);gap:0}
.brand{position:relative}
.brand img{width:calc(var(--u)*262);max-height:calc(var(--u)*80)}
.brand:after{content:"";position:absolute;top:50%;right:calc(var(--u)*-73);width:1px;height:calc(var(--u)*36);background:#cdd7e4;transform:translateY(-50%)}
.nav-links{flex:none;align-self:flex-start;justify-content:flex-start;align-items:stretch;gap:calc(var(--u)*57);margin-left:calc(var(--u)*154)}
.nav-links a{padding:calc(var(--u)*36) calc(var(--u)*6) calc(var(--u)*14);border-bottom-width:max(3px,calc(var(--u)*4));font-size:max(13.5px,calc(var(--u)*20));font-weight:600}
.nav-search svg{width:max(20px,calc(var(--u)*30));height:max(20px,calc(var(--u)*30))}
.top-cta{margin-left:calc(var(--u)*48);min-height:max(38px,calc(var(--u)*52));padding:0 calc(var(--u)*27);gap:calc(var(--u)*11);font-size:max(13.5px,calc(var(--u)*18))}
body.home .topbar{position:absolute;inset:0 0 auto;background:none;border:0}
body.home.has-announcement .topbar{top:38px}
h2{font-size:max(28px,calc(var(--u)*46))}
.section{padding:calc(var(--u)*115) 0}
}
.search-form{display:flex;flex-wrap:wrap;gap:12px;max-width:720px;margin-top:28px}
.search-form input{flex:1 1 240px;min-width:0;border:1px solid #cdd9e8;border-radius:100px;background:#fff;padding:15px 24px;color:var(--navy);outline:none}
.search-form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,187,9,.2)}
.search-count{font-weight:650;color:var(--navy);margin-bottom:22px}
.search-result{display:block;max-width:900px;padding:24px 28px;margin-bottom:14px;border:1px solid #e4eaf3;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(10,40,80,.05);transition:transform .2s,border-color .2s}
.search-result:hover{transform:translateY(-3px);border-color:var(--gold)}
.search-result h2{margin:8px 0 6px;font-size:1.25rem;line-height:1.3}
.search-result p{margin:0;font-size:.97rem}
.search-type{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#c99100}

/* Blog and public forms, served by the shared admin panel. */
.blog-date{font-size:14px;color:#6b7280;margin:0 0 6px}
.blog-article,.public-form{max-width:820px}
.blog-cover{display:block;width:100%;height:auto;border-radius:12px;margin-bottom:28px}
.blog-body{line-height:1.75;margin-bottom:32px}
.blog-body img{max-width:100%;height:auto}
.blog-body .pd-align-center{text-align:center}
.blog-body .pd-align-right{text-align:right}
.blog-body .pd-align-justify{text-align:justify}
.public-form-question{border:0;padding:0;margin:0 0 22px}
.public-form-question legend{font-weight:700;margin-bottom:8px;padding:0}
.public-form input:not([type=checkbox]):not([type=radio]),.public-form select,.public-form textarea{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:8px;font:inherit}
.public-form-choices{display:flex;flex-wrap:wrap;gap:12px 20px}
.public-form-choices label,.public-form-consent{display:flex;align-items:flex-start;gap:8px}
.public-form-consent{margin-bottom:22px}
.public-form-hint{font-size:14px;color:#6b7280;margin:0 0 14px}
.public-form-error{color:#b91c1c;font-size:14px;margin:6px 0 0}
.public-form-notice{padding:18px 20px;border:1px solid #d1d5db;border-radius:10px;margin-bottom:24px}
.public-form-notice.is-error{border-color:#fca5a5;background:#fef2f2}
.public-form-trap{position:absolute;left:-9999px}
.section.legal-section{padding:0 0 30px}
.page-banner + .legal-section{padding-top:50px}
.legal-section:last-of-type{padding-bottom:80px}
.legal-section .section-block{max-width:820px}
.legal-section h2{font-size:1.3rem;margin-bottom:10px}
.legal-section .longtext{white-space:pre-line;line-height:1.7}

/* Page design sections. Restyle these per site; the panel does not depend on them. */
.announcement{display:flex;align-items:center;justify-content:center;min-height:38px;padding:6px 18px;background:var(--navy);color:#fff;font-size:.9rem;text-align:center}
.ds-showcase{padding:24px 0}
.ds-showcase-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.ds-cell{grid-column:span 12;min-width:0}
.ds-picture,.ds-picture img{display:block;width:100%;height:100%}
.ds-picture{overflow:hidden}
.ds-copy h2,.ds-copy h3{margin:0 0 8px}
.ds-copy p{margin:0 0 14px}
.ds-slider{position:relative;overflow:hidden;border-radius:16px;background:var(--ice)}
.ds-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.ds-track::-webkit-scrollbar{display:none}
.ds-slide{position:relative;flex:0 0 100%;min-width:0;scroll-snap-align:start;aspect-ratio:16/8}
.ds-layout-split .ds-slide{display:grid;grid-template-columns:1fr 1fr;align-items:center}
.ds-layout-split .ds-picture{order:2}
.ds-layout-split .ds-copy{padding:32px 48px}
.ds-layout-full .ds-picture{position:absolute;inset:0}
.ds-layout-full .ds-copy{position:absolute;left:0;right:0;bottom:0;padding:48px;background:linear-gradient(transparent,rgba(11,35,71,.78));color:#fff}
.ds-layout-full .ds-copy h2{color:#fff}
.ds-banners{display:grid;grid-template-columns:repeat(var(--ds-cols,1),minmax(0,1fr));gap:12px;height:100%}
.ds-banner{position:relative;display:block;min-height:180px;overflow:hidden;border-radius:16px;background:var(--ice);color:var(--navy)}
.ds-banner .ds-picture{position:absolute;inset:0}
.ds-banner .ds-copy{position:absolute;left:0;right:0;bottom:0;padding:24px;background:linear-gradient(transparent,rgba(11,35,71,.75));color:#fff}
.ds-banner .ds-copy h3{color:#fff}
.ds-tone-accent{background:var(--gold);color:var(--navy)}
.ds-tone-dark{background:var(--navy);color:#fff}
.ds-tone-dark h2,.ds-tone-dark .longtext{color:#fff}
.ds-tone-accent h2,.ds-tone-accent .longtext{color:var(--navy)}
.ds-text .longtext{max-width:820px}
.ds-cards{display:grid;grid-template-columns:repeat(var(--ds-cols,3),minmax(0,1fr));gap:18px}
.ds-cards .ds-banner{min-height:280px}
.ds-cards-feature .ds-banner:first-child{grid-column:span 2}
.ds-cards-mosaic .ds-banner:nth-child(4n+1){grid-row:span 2}
.ds-story{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ds-image-right .ds-story-media{order:2}
.ds-story-media{display:grid;gap:14px}
.ds-story-media .ds-picture{border-radius:16px}
.ds-story-media img{height:auto}
.ds-marquee{overflow:hidden;padding:20px 0;background-size:cover;background-position:center}
.ds-marquee-track{display:flex;width:max-content;gap:56px;font-size:1.3rem;font-weight:700;white-space:nowrap;animation:ds-marquee 40s linear infinite}
@keyframes ds-marquee{to{transform:translateX(-50%)}}
.ds-features{display:grid;grid-template-columns:repeat(var(--ds-cols,3),minmax(0,1fr));gap:24px}
.ds-features-title{margin-bottom:28px}
.ds-feature{display:flex;gap:16px;align-items:flex-start}
.ds-feature h3{margin:0 0 6px}
.ds-feature p{margin:0}
.ds-feature .service-icon{position:static;flex:none;margin:0;transform:none}
@media(prefers-reduced-motion:reduce){.ds-marquee-track{animation:none}}
@media(min-width:1181px){
.ds-w-full{grid-column:span 12}.ds-w-two-thirds{grid-column:span 8}.ds-w-half{grid-column:span 6}.ds-w-third{grid-column:span 4}
.ds-cell[style] .ds-slider,.ds-cell[style] .ds-banners{height:var(--ds-h)}
.ds-cell[style] .ds-track{height:100%}
.ds-cell[style] .ds-slide{aspect-ratio:auto;height:100%}
.ds-picture img{transform:scale(var(--ds-zoom,1))}
}
@media(max-width:800px){
.ds-layout-split .ds-slide,.ds-story{grid-template-columns:1fr}
.ds-layout-split .ds-slide{aspect-ratio:auto}
.ds-layout-split .ds-picture{order:0;height:220px}
.ds-layout-split .ds-copy{padding:20px}
.ds-layout-full .ds-copy{padding:20px}
.ds-slide{aspect-ratio:4/3}
.ds-banners,.ds-cards,.ds-features{grid-template-columns:1fr}
.ds-cards-feature .ds-banner:first-child{grid-column:auto}
.ds-cards-mosaic .ds-banner:nth-child(4n+1){grid-row:auto}
.ds-story{gap:24px}
.ds-image-right .ds-story-media{order:0}
}
.ds-more{margin:36px 0 0;text-align:center}

/* Motion and interaction layer of the public site. */
:root{--ease:cubic-bezier(.22,.8,.3,1);--text-gold:#8f6900}
.topbar{position:sticky;top:0;z-index:40;transition:background .25s,box-shadow .25s}
body.scrolled .topbar{background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(11,35,71,.1)}
.nav-links a{position:relative;border-bottom-color:transparent!important;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;border-radius:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav-links a:hover{color:var(--gold-dark)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-search{border-radius:50%;transition:background .2s,transform .2s var(--ease)}
.nav-search:hover{background:rgba(255,187,9,.22);transform:scale(1.08)}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s,border-color .25s}
.btn::before{content:"";position:absolute;inset:0 auto 0 -60%;z-index:-1;width:45%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);transition:left .55s var(--ease)}
.btn svg{transition:transform .25s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:hover::before{left:115%}
.btn:hover svg:last-child{transform:translateX(4px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn-primary:hover{background:var(--gold-dark);box-shadow:0 14px 28px rgba(237,169,0,.34)}
.btn-secondary:hover{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 14px 28px rgba(11,35,71,.22)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.text-link{color:var(--text-gold);transition:color .2s,gap .25s var(--ease)}
.text-link:hover{color:var(--navy);gap:20px}
.footer a{transition:color .2s}

.service-card{transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.service-card>a{display:block;overflow:hidden}
.service-card img{transition:transform .6s var(--ease)}
.service-card:hover{transform:translateY(-6px);border-color:rgba(255,187,9,.7);box-shadow:0 26px 50px rgba(10,40,80,.16)}
.service-card:hover img{transform:scale(1.07)}
.service-icon{transition:background .25s,color .25s,transform .35s var(--ease)}
.service-card:hover .service-icon,.ds-feature:hover .service-icon{background:var(--gold);color:var(--navy);transform:translateY(-3px) rotate(-5deg)}
.ds-feature{padding:18px;border-radius:16px;transition:background .25s,box-shadow .25s,transform .3s var(--ease)}
.ds-feature:hover{background:#fff;box-shadow:0 18px 38px rgba(10,40,80,.1);transform:translateY(-3px)}
.ds-feature p{color:var(--muted)}

/* Text over photos stays readable on any image. */
.ds-copy{position:relative;z-index:1}
.ds-copy h2{font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.2}
.ds-layout-full .ds-copy,.ds-banner .ds-copy{background:linear-gradient(to top,rgba(7,24,50,.94) 0%,rgba(7,24,50,.78) 58%,rgba(7,24,50,0) 100%);color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.ds-layout-full .ds-copy{padding:90px 190px 30px 34px}
.ds-banner .ds-copy{padding:60px 22px 20px}
.ds-layout-full .ds-copy p,.ds-banner .ds-copy p{max-width:560px;color:#fff;font-size:1.02rem}
.ds-copy .btn{text-shadow:none}
.ds-tone-dark .ds-copy p{color:#fff}
.ds-tone-accent p{color:var(--navy)}

.ds-slider,.ds-banner{box-shadow:0 18px 40px rgba(10,40,80,.13)}
.ds-picture img{transition:transform .9s var(--ease)}
.ds-slide:hover .ds-picture img,.ds-banner:hover .ds-picture img{transform:scale(calc(var(--ds-zoom,1)*1.05))}
.ds-banner{transition:transform .35s var(--ease),box-shadow .35s}
.ds-banner:hover{transform:translateY(-4px);box-shadow:0 26px 50px rgba(10,40,80,.2)}
.ds-banner h3{transition:transform .35s var(--ease)}
.ds-banner:hover h3{transform:translateX(5px)}

.ds-controls{position:absolute;right:18px;bottom:18px;z-index:2;display:flex;align-items:center;gap:8px}
.ds-arrow{position:static;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--navy);line-height:0;box-shadow:0 8px 20px rgba(7,24,50,.28);cursor:pointer;transform:none;transition:background .2s,transform .25s var(--ease),opacity .2s}
.ds-arrow[hidden]{display:none}
.ds-arrow svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ds-arrow:hover:not(:disabled){background:var(--gold);transform:scale(1.08)}
.ds-arrow:disabled{opacity:.5;cursor:default}
.ds-status{position:static;display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:30px;padding:0 10px;border-radius:30px;background:rgba(255,255,255,.94);color:var(--navy);font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.ds-status:empty{display:none}
.ds-marquee:hover .ds-marquee-track{animation-play-state:paused}
.contact-form input,.contact-form textarea,.search-form input,.public-form input,.public-form select,.public-form textarea{transition:border-color .2s,box-shadow .2s}
.contact-form input:focus,.contact-form textarea:focus,.public-form input:focus,.public-form select:focus,.public-form textarea:focus{border-color:var(--gold-dark);box-shadow:0 0 0 3px rgba(255,187,9,.25);outline:none}

@keyframes hk-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes hk-drop{from{transform:translateY(-100%)}to{transform:none}}
.reveal{opacity:0;transform:translateY(26px)}
.reveal.in{opacity:1;transform:none;transition:opacity .7s var(--ease) var(--reveal-delay,0s),transform .7s var(--ease) var(--reveal-delay,0s)}

@media(min-width:1181px){
body.home .topbar{position:absolute}
body.home.scrolled .topbar{position:fixed;top:0;background:rgba(255,255,255,.92);border-bottom:1px solid #e9eff6;animation:hk-drop .32s var(--ease)}
}
@media(max-width:800px){
.ds-layout-full .ds-slide{aspect-ratio:auto;min-height:360px}
.ds-layout-full .ds-copy{position:absolute;padding:80px 20px 22px}
.ds-copy h2{font-size:1.4rem}
.ds-controls{top:12px;right:12px;bottom:auto}
.ds-arrow{width:38px;height:38px}
.ds-arrow svg{width:17px;height:17px}
.ds-status{min-width:46px;height:26px;font-size:.76rem}
}
@media(prefers-reduced-motion:reduce){
body.home.scrolled .topbar{animation:none}
.reveal{opacity:1;transform:none}
*,*::before,*::after{transition-duration:.01ms!important}
}

/* Footer. */
.footer{position:relative;padding:68px 0 0;background:linear-gradient(180deg,#0b2545 0%,#061a35 100%);color:#fff}
.footer::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,var(--gold) 50%,transparent)}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr) minmax(0,1.35fr) minmax(0,1.4fr);gap:48px}
.footer-logo{display:inline-block;margin-bottom:6px;font-size:1.4rem}
.footer-logo img{width:190px;height:auto}
.footer-about p{max-width:380px;margin:12px 0 0;color:#b6c5d8;line-height:1.75}
.footer h2.footer-title{margin:4px 0 20px;color:#8fa4bf;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.footer-links,.footer-contact{margin:0;padding:0;list-style:none}
.footer-links li{margin-bottom:12px}
.footer-links a{display:inline-block;color:#e4ebf4;font-size:.95rem;font-weight:550;transition:color .2s,transform .25s var(--ease)}
.footer-links a:hover{color:var(--gold);transform:translateX(4px)}
.footer-links .footer-all{color:var(--gold);font-weight:700}
.footer-contact li{display:flex;align-items:center;gap:14px;margin-bottom:14px;color:#e4ebf4;font-size:.95rem;font-weight:550;white-space:pre-line}
.footer-contact a{min-width:0;overflow-wrap:anywhere}
.footer-icon,.footer-socials a{display:grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:rgba(255,255,255,.04);color:#fff;transition:background .25s,border-color .25s,color .25s,transform .25s var(--ease)}
.footer-icon svg,.footer-socials svg{width:18px;height:18px}
.footer-contact li:hover .footer-icon{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.footer-socials{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.footer-socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);transform:translateY(-3px)}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;margin-top:52px;padding:22px 0;border-top:1px solid rgba(255,255,255,.12);color:#a9bbce;font-size:.87rem}
.footer-legal{display:flex;gap:24px}
.footer-legal a{color:#dbe4ef}
.footer-credit{color:var(--gold);font-weight:700}
.to-top{position:fixed;right:22px;bottom:22px;z-index:35;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;box-shadow:0 12px 26px rgba(7,24,50,.32);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .25s,transform .25s var(--ease),background .2s,color .2s}
.to-top svg{width:20px;height:20px}
body.scrolled .to-top{opacity:1;pointer-events:auto;transform:none}
.to-top:hover{background:var(--gold);color:var(--navy)}
@media(max-width:1050px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
.footer{padding-top:52px}
.footer-grid{grid-template-columns:minmax(0,1fr);gap:34px}
.footer-bottom{flex-direction:column;align-items:flex-start;margin-top:38px}
.to-top{right:14px;bottom:14px;width:42px;height:42px}
}

/* Reserve the same logo box before loading and when switching light/dark variants. */
.brand{width:114px;height:60px}
.brand img{width:100%;height:100%;max-height:none;object-position:left center}
@media(min-width:1181px){.brand{width:171px;height:90px}}

/* Opening section of the home page. */
.hx{position:relative;isolation:isolate;display:flex;min-height:clamp(620px,90vh,790px);overflow:hidden;background:#061a35;color:#fff}
.hx-media{position:absolute;inset:-5%;z-index:-3;transform:translate3d(var(--hx-x,0),var(--hx-y,0),0);will-change:transform}
.hx-slide{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.02);transition:opacity 1.6s ease,transform 1.6s ease}
.hx-slide.on{opacity:1}
.hx-slide.zoom{transform:scale(1.13);transition:opacity 1.6s ease,transform 9s linear}
.hx-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(95deg,rgba(6,22,46,.95) 0%,rgba(6,22,46,.84) 36%,rgba(6,22,46,.42) 66%,rgba(6,22,46,.18) 100%),linear-gradient(to top,rgba(6,22,46,.92) 0%,rgba(6,22,46,0) 44%),linear-gradient(to bottom,rgba(6,22,46,.6) 0%,rgba(6,22,46,0) 22%)}
.hx-glow{position:absolute;left:-10%;bottom:-34%;z-index:-1;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(255,187,9,.24),rgba(255,187,9,0) 66%);animation:hx-float 9s ease-in-out infinite alternate}
.hx-inner{display:flex;flex-direction:column;justify-content:flex-end;gap:44px;padding-top:clamp(120px,17vh,170px);padding-bottom:50px}
.hx-copy{max-width:860px}
.hx-badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;padding:8px 16px;border:1px solid rgba(255,255,255,.24);border-radius:40px;background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.86rem;font-weight:600}
.hx-badge i{position:relative;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.hx-badge i::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--gold);animation:hx-ping 2s ease-out infinite}
.hx h1{margin:0 0 20px;color:#fff;font-size:clamp(2.4rem,4.7vw,4.15rem);font-weight:800;line-height:1.1;letter-spacing:-.035em}
.hx-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.06em}
.hx-line>span{display:block;animation:hx-up .95s var(--ease) backwards}
.hx-line:nth-child(2)>span{animation-delay:.1s}
.hx-line:nth-child(3)>span{animation-delay:.2s}
.hx h1 em{font-style:normal;color:var(--gold);background:linear-gradient(100deg,var(--gold) 0%,#ffe391 45%,var(--gold) 90%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:hx-shine 5.5s linear infinite}
.hx-copy>p{max-width:580px;margin:0 0 30px;color:#dbe5f1;font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.65}
.hx-actions{display:flex;flex-wrap:wrap;gap:14px}
.hx .btn-primary{box-shadow:0 14px 34px rgba(255,187,9,.35)}
.hx .btn-secondary{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.09);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hx .btn-secondary:hover{border-color:#fff;background:#fff;color:var(--navy)}
.hx-badge,.hx-copy>p,.hx-actions{animation:hk-rise .85s var(--ease) backwards}
.hx-copy>p{animation-delay:.3s}
.hx-actions{animation-delay:.42s}
.hx-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.hx-card{display:flex;align-items:center;gap:14px;min-height:88px;padding:16px 18px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);color:#fff;font-size:.97rem;font-weight:650;line-height:1.28;animation:hk-rise .8s var(--ease) backwards;transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .35s}
.hx-card:nth-child(1){animation-delay:.5s}
.hx-card:nth-child(2){animation-delay:.58s}
.hx-card:nth-child(3){animation-delay:.66s}
.hx-card:nth-child(4){animation-delay:.74s}
.hx-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:rgba(255,187,9,.2);color:var(--gold);transition:background .3s,color .3s,transform .35s var(--ease)}
.hx-icon svg{width:24px;height:24px}
.hx-card-title{min-width:0;flex:1}
.hx-card-arrow{flex:none;opacity:.55;transition:opacity .25s,transform .3s var(--ease)}
.hx-card-arrow svg{display:block;width:18px;height:18px}
.hx-card:hover{transform:translateY(-6px);border-color:var(--gold);background:var(--gold);color:var(--navy);box-shadow:0 22px 44px rgba(255,187,9,.3)}
.hx-card:hover .hx-icon{background:var(--navy);color:var(--gold);transform:rotate(-6deg)}
.hx-card:hover .hx-card-arrow{opacity:1;transform:translateX(4px)}
.hx-track{position:absolute;inset:auto 0 0;height:7px;overflow:hidden;background:repeating-linear-gradient(90deg,rgba(255,255,255,.26) 0 2px,transparent 2px 26px)}
.hx-track::after{content:"";position:absolute;top:0;bottom:0;left:-22%;width:22%;background:linear-gradient(90deg,transparent,var(--gold));animation:hx-train 6.5s linear infinite}
.brand-light{display:none}
@keyframes hx-up{from{transform:translateY(112%)}to{transform:none}}
@keyframes hx-shine{to{background-position:-220% 0}}
@keyframes hx-ping{from{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}
@keyframes hx-float{from{transform:translate3d(0,0,0)}to{transform:translate3d(90px,-60px,0)}}
@keyframes hx-train{to{left:100%}}
@media(min-width:1181px){
body.home:not(.scrolled) .topbar{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
body.home:not(.scrolled) .nav-links a{color:#fff}
body.home:not(.scrolled) .nav-links a:hover{color:var(--gold)}
body.home:not(.scrolled) .nav-search{color:#fff}
body.home:not(.scrolled) .nav-search:hover{background:rgba(255,255,255,.16)}
body.home:not(.scrolled) .brand:after{background:rgba(255,255,255,.3)}
body.home:not(.scrolled) .brand.has-light img:first-child{display:none}
body.home:not(.scrolled) .brand.has-light .brand-light{display:block}
}
@media(max-width:1050px){.hx-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
.hx{min-height:0}
.hx-shade{background:linear-gradient(to top,rgba(6,22,46,.94) 0%,rgba(6,22,46,.72) 55%,rgba(6,22,46,.58) 100%)}
.hx-inner{gap:32px;padding-top:56px;padding-bottom:38px}
.hx-glow{width:420px;height:420px}
.hx-actions .btn{flex:1 1 100%}
.hx-card{min-height:76px;padding:12px;gap:10px;font-size:.84rem}
.hx-icon{width:38px;height:38px;border-radius:11px}
.hx-icon svg{width:20px;height:20px}
.hx-card-arrow{display:none}
}
@media(prefers-reduced-motion:reduce){
.hx-line>span,.hx h1 em,.hx-badge,.hx-copy>p,.hx-actions,.hx-card,.hx-glow,.hx-badge i::after,.hx-track::after{animation:none}
.hx-slide.zoom{transform:scale(1.02)}
}

/* Mobile menu. */
.nav-links a.nav-cta{display:none}
.mobile-toggle{border-radius:12px;transition:background .2s}
.mobile-toggle span{transition:transform .3s var(--ease),opacity .2s}
.mobile-toggle:hover{background:rgba(255,187,9,.18)}
.mobile-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mobile-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.mobile-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open::after{content:"";position:fixed;inset:0;z-index:30;background:rgba(6,22,46,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:hk-fade .25s ease}
@keyframes hk-fade{from{opacity:0}to{opacity:1}}
@media(max-width:950px){
.nav-links{display:flex;top:calc(100% + 8px);left:12px;right:12px;gap:2px;max-height:calc(100dvh - 104px);padding:10px;overflow-y:auto;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 28px 60px rgba(7,24,50,.28);visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-10px) scale(.98);transform-origin:top center;transition:opacity .2s,transform .3s var(--ease),visibility 0s .3s}
.nav-links.open{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:opacity .2s,transform .3s var(--ease),visibility 0s}
.nav-links a{display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:13px;color:var(--navy);font-size:1rem;transition:background .2s,color .2s,padding-left .25s var(--ease)}
.nav-links a::after{position:static;flex:none;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;border-radius:0;background:none;opacity:.4;transform:rotate(45deg);transition:opacity .2s,transform .25s var(--ease)}
.nav-links a:hover::after{transform:rotate(45deg) translate(2px,-2px);opacity:1}
.nav-links a.active::after{transform:rotate(45deg);opacity:1}
.nav-links a:hover{background:var(--ice);color:var(--navy);padding-left:18px}
.nav-links a.active{background:#fff7e3;box-shadow:inset 3px 0 0 var(--gold)}
.nav-links.open a{animation:hk-rise .4s var(--ease) backwards}
.nav-links.open a:nth-child(2){animation-delay:.04s}
.nav-links.open a:nth-child(3){animation-delay:.08s}
.nav-links.open a:nth-child(4){animation-delay:.12s}
.nav-links.open a:nth-child(5){animation-delay:.16s}
.nav-links.open a:nth-child(6){animation-delay:.2s}
.nav-links.open a:nth-child(n+7){animation-delay:.24s}
.nav-links a.nav-cta{display:inline-flex;justify-content:center;gap:12px;margin-top:8px;padding:15px 20px;border-radius:100px;color:#0a2346}
.nav-links a.nav-cta:hover{background:var(--gold-dark);padding-left:20px}
.nav-links a.nav-cta::after{display:none}
}
@media(prefers-reduced-motion:reduce){.nav-links.open a{animation:none}body.menu-open::after{animation:none}}

/* Keeps the footer at the bottom of the window on short pages. */
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
main{flex:1 0 auto;min-width:0}

/* Preloader. */
.preloader{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;background:radial-gradient(circle at 50% 42%,#123259 0%,#061a35 70%);transition:transform .75s cubic-bezier(.76,0,.24,1),visibility 0s .75s;animation:pl-giveup .4s 7s forwards}
.preloader.done{visibility:hidden;transform:translateY(-100%)}
html.skip-preloader .preloader{display:none}
.pl-logo{width:min(230px,56vw);height:auto;animation:pl-breathe 1.8s ease-in-out infinite alternate}
.pl-scene{position:relative;width:min(460px,84vw);height:92px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.pl-train{position:absolute;left:0;bottom:12px;width:190px;animation:pl-run 2.1s linear infinite}
.pl-train svg{display:block;width:100%;height:auto;overflow:visible}
.pl-car{animation:pl-bounce .28s ease-in-out infinite alternate}
.pl-wheel{transform-box:fill-box;transform-origin:center;animation:pl-spin .36s linear infinite}
.pl-speed{position:absolute;top:18%;right:100%;display:grid;gap:9px;width:70px}
.pl-speed i{display:block;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,187,9,.85));animation:pl-line .42s ease-in-out infinite alternate}
.pl-speed i:nth-child(2){width:70%;margin-left:30%;animation-delay:.12s}
.pl-speed i:nth-child(3){width:85%;margin-left:15%;animation-delay:.22s}
.pl-rail{position:absolute;left:0;right:0;bottom:0;height:13px;background:linear-gradient(rgba(255,255,255,.75),rgba(255,255,255,.75)) top/100% 3px no-repeat,repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 7px,transparent 7px 26px)}
.pl-rail::after{content:"";position:absolute;left:0;top:0;height:3px;background:var(--gold);box-shadow:0 0 12px rgba(255,187,9,.8);animation:pl-trail 2.1s linear infinite}
@keyframes pl-run{from{transform:translateX(-200px)}to{transform:translateX(min(480px,88vw))}}
@keyframes pl-trail{from{width:0}to{width:100%}}
@keyframes pl-bounce{from{transform:translateY(0)}to{transform:translateY(-1.5px)}}
@keyframes pl-spin{to{transform:rotate(360deg)}}
@keyframes pl-line{from{transform:translateX(-10px);opacity:.35}to{transform:translateX(0);opacity:1}}
@keyframes pl-breathe{from{opacity:.82;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes pl-giveup{to{opacity:0;visibility:hidden}}
/* The opening animation waits until the curtain has lifted. */
html.preloading .hx-line>span,html.preloading .hx h1 em,html.preloading .hx-badge,html.preloading .hx-copy>p,html.preloading .hx-actions,html.preloading .hx-card{animation-play-state:paused}

/* Header proportions on desktop. */
.site-language{display:flex;align-items:center;flex:none;margin-left:10px;gap:5px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-language select{width:88px;min-height:38px;padding:7px 5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font:inherit;font-size:12px;cursor:pointer}
.site-language select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.site-language select:disabled{opacity:.6;cursor:wait}
.site-language-submit{border:0;background:var(--gold);border-radius:8px;padding:8px;font-size:12px}
.site-language.has-js .site-language-submit{display:none}
body.home:not(.scrolled) .site-language select{background:rgba(8,28,52,.8);color:#fff;border-color:rgba(255,255,255,.4)}
@media(max-width:950px){.site-language{order:1;margin-left:0}.site-language select{width:77px;font-size:11px}.navline{gap:12px}}
@media(min-width:1181px){
.navline{width:min(100%,calc(var(--u)*2000));min-height:104px;padding:0 calc(var(--u)*110)}
.brand:after{right:calc(clamp(18px,2.2vw,32px)*-1);height:40px}
.nav-links{align-self:center;gap:clamp(20px,2.4vw,34px);margin-left:clamp(36px,4.4vw,64px)}
.nav-links a{padding:10px 2px;border-bottom-width:0;font-size:clamp(14.5px,1.15vw,16.5px);font-weight:600}
.nav-links a::after{bottom:0}
.nav-search{width:44px;height:44px}
.nav-search svg{width:23px;height:23px}
.top-cta{min-height:48px;margin-left:clamp(10px,1.2vw,18px);padding:0 24px;gap:10px;font-size:15px}
}

@media(min-width:951px) and (max-width:1360px){.top-cta{display:none}.nav-links{flex:1;gap:clamp(10px,1.4vw,20px);margin-left:30px}.nav-links a{font-size:14px}.navline{gap:12px}}
