:root{
  --navy:#14213d;--navy-2:#1f3158;--yellow:#ffc233;--paper:#f6f4ee;--sky:#dbe7f5;--ink:#0b1220;--text:#2a3350;--muted:#667089;
  --bw:3px;--hard:8px 8px 0 var(--navy);
}
html{scroll-behavior:smooth}
body{font-family:'Work Sans',system-ui,sans-serif;color:var(--text);background:var(--paper);line-height:1.7;overflow-x:hidden}
h1,h2,h3,h4,h5,.brand{font-family:'Archivo',Arial,sans-serif}
h1,h2,h3,h4,h5{color:var(--navy);font-weight:800;line-height:1.08;letter-spacing:-.02em}
a{color:var(--navy);text-decoration:none}
a:hover{color:#3a5ba0}
img{max-width:100%}

/* Brand: one line, one style */
.brand{display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;font-weight:900;font-size:1.55rem;color:var(--navy);letter-spacing:-.03em;line-height:1}
.brand::before{content:"";width:.9rem;height:.9rem;background:var(--yellow);border:3px solid var(--navy);flex:0 0 auto}
.brand:hover{color:var(--navy)}
.brand-light,.brand-light:hover{color:#fff}
.brand-light::before{border-color:#fff}

/* Nav */
.site-nav{background:var(--paper);border-bottom:var(--bw) solid var(--navy);padding:.9rem 0;z-index:1030}
.site-nav .nav-link{color:var(--navy);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;padding:.45rem .9rem!important;margin:0 .1rem}
.site-nav .nav-link:hover{background:var(--sky)}
.site-nav .nav-link.active{background:var(--yellow)}
.navbar-toggler{border:var(--bw) solid var(--navy)!important;border-radius:0;box-shadow:none!important}

/* Buttons */
.btn{border-radius:0;font-weight:800;text-transform:uppercase;letter-spacing:.07em;font-size:.82rem;padding:.85rem 1.6rem;border:var(--bw) solid var(--navy);transition:.2s}
.btn-yellow{background:var(--yellow);color:var(--navy);box-shadow:5px 5px 0 var(--navy)}
.btn-yellow:hover{background:var(--yellow);color:var(--navy);transform:translate(3px,3px);box-shadow:2px 2px 0 var(--navy)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:5px 5px 0 var(--yellow)}
.btn-navy:hover{background:var(--navy);color:#fff;transform:translate(3px,3px);box-shadow:2px 2px 0 var(--yellow)}
.btn-white{background:#fff;color:var(--navy);box-shadow:5px 5px 0 var(--navy)}
.btn-white:hover{background:#fff;color:var(--navy);transform:translate(3px,3px);box-shadow:2px 2px 0 var(--navy)}

/* Hero */
.hero{padding:5rem 0 5.5rem;position:relative}
.hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:36%;background:var(--sky);z-index:0;clip-path:polygon(0 0,100% 0,70% 100%,0 100%)}
.hero .container{position:relative;z-index:1}
.tag{display:inline-block;background:var(--navy);color:#fff;font-weight:800;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;padding:.35rem .8rem}
.hero h1{font-size:clamp(2.8rem,7vw,5.8rem);font-weight:900;margin:1.2rem 0 1.4rem}
.mark{background:linear-gradient(transparent 58%,var(--yellow) 58% 92%,transparent 92%);padding:0 .1em}
.hero .lead{max-width:540px;font-size:1.18rem;color:var(--text)}
.frame{position:relative;max-width:480px;margin-left:auto}
.frame img{width:100%;aspect-ratio:4/5;object-fit:cover;border:var(--bw) solid var(--navy);box-shadow:16px 16px 0 var(--yellow);display:block;transform:rotate(-2deg)}
.frame .note{position:absolute;left:-26px;bottom:34px;background:var(--navy);color:#fff;padding:.9rem 1.2rem;font-family:'Archivo',sans-serif;font-weight:800;line-height:1.2;transform:rotate(2deg);max-width:200px}
.frame .note i{color:var(--yellow);margin-right:.35rem}

/* Pillars strip */
.strip{background:var(--navy);color:#fff;border-top:var(--bw) solid var(--navy);border-bottom:var(--bw) solid var(--navy)}
.strip .item{padding:1.6rem 1.2rem;display:flex;gap:1rem;align-items:center;border-left:2px solid rgba(255,255,255,.18)}
.strip .item:first-child{border-left:0}
.strip i{font-size:1.9rem;color:var(--yellow)}
.strip strong{font-family:'Archivo',sans-serif;font-size:1.15rem;display:block;line-height:1.2}
.strip span{font-size:.9rem;color:rgba(255,255,255,.7)}
@media(max-width:991px){.strip .item{border-left:0;border-top:2px solid rgba(255,255,255,.18)}}

/* Sections */
.section{padding:6rem 0}
.section-sky{background:var(--sky)}
.section-navy{background:var(--navy);color:rgba(255,255,255,.78)}
.section-navy h2,.section-navy h3,.section-navy h4{color:#fff}
.title{font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:900;margin:.9rem 0 1rem}
.muted{color:var(--muted)}

/* Intro blocks */
.block{background:#fff;border:var(--bw) solid var(--navy);padding:1.8rem;height:100%;box-shadow:6px 6px 0 var(--navy);transition:.25s}
.block:hover{transform:translate(-3px,-3px);box-shadow:10px 10px 0 var(--yellow)}
.block .ico{width:56px;height:56px;background:var(--yellow);border:var(--bw) solid var(--navy);display:grid;place-items:center;font-size:1.6rem;color:var(--navy);margin-bottom:1rem}

/* Service cards (horizontal) */
.svc{background:#fff;border:var(--bw) solid var(--navy);box-shadow:var(--hard);height:100%;display:flex;flex-direction:column;transition:.25s}
.svc:hover{transform:translate(-4px,-4px);box-shadow:12px 12px 0 var(--navy)}
.svc .pic{overflow:hidden;border-bottom:var(--bw) solid var(--navy)}
.svc .pic img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block;transition:transform .6s}
.svc:hover .pic img{transform:scale(1.06)}
.svc .txt{padding:1.6rem;display:flex;flex-direction:column;flex:1}
.svc h3{font-size:1.5rem}
.svc p{color:var(--muted);flex:1;font-size:.97rem}
.svc .btn{padding:.65rem 1.2rem;font-size:.76rem;box-shadow:4px 4px 0 var(--navy)}
@media(min-width:768px){.svc{flex-direction:row}.svc .pic{flex:0 0 40%;max-width:40%;border-bottom:0;border-right:var(--bw) solid var(--navy)}.svc .txt{flex:1}}

/* Approach */
.approach .col{padding:1rem 1.6rem}
@media(min-width:992px){.approach .col+.col{border-left:2px solid rgba(255,255,255,.2)}}
.approach i{font-size:2.4rem;color:var(--yellow);display:block;margin-bottom:.8rem}

/* Blog */
.post{background:#fff;border:var(--bw) solid var(--navy);box-shadow:var(--hard);display:flex;flex-direction:column;height:100%;transition:.25s}
.post:hover{transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--yellow)}
.post .pic{overflow:hidden;border-bottom:var(--bw) solid var(--navy);flex:1;min-height:220px}
.post .pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.post:hover .pic img{transform:scale(1.05)}
.post .txt{padding:1.5rem}
.post h3{font-size:1.45rem}
.post.big h3{font-size:2.2rem}
.post h3 a{color:var(--navy)}
.post h3 a:hover{color:#3a5ba0}
.cat{display:inline-block;background:var(--yellow);border:2px solid var(--navy);font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;padding:.15rem .6rem;margin-bottom:.8rem}
.go{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;border-bottom:3px solid var(--yellow)}
.go:hover{border-bottom-color:var(--navy)}

/* Page header */
.page-head{background:var(--navy);padding:4.5rem 0 4rem;border-bottom:var(--bw) solid var(--navy);position:relative;overflow:hidden}
.page-head::after{content:"";position:absolute;right:-60px;top:0;bottom:0;width:260px;background:var(--yellow);transform:skewX(-14deg)}
.page-head .container{position:relative;z-index:1}
.page-head h1{color:#fff;font-size:clamp(2.2rem,5.5vw,4.4rem);font-weight:900;max-width:820px}
.page-head p{color:rgba(255,255,255,.8);max-width:620px;font-size:1.1rem;margin:1rem 0 0}
.crumbs{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--yellow);margin-bottom:1rem}
.crumbs a{color:var(--yellow)}
.crumbs a:hover{color:#fff}

/* Article */
.article{max-width:800px;margin:0 auto}
.article .cover{width:100%;aspect-ratio:16/9;object-fit:cover;border:var(--bw) solid var(--navy);box-shadow:var(--hard);margin-bottom:2.4rem;display:block}
.article h2{font-size:2rem;margin:2.4rem 0 .7rem}
.article p,.article li{font-size:1.1rem}
.article blockquote{background:var(--yellow);border:var(--bw) solid var(--navy);box-shadow:6px 6px 0 var(--navy);padding:1.4rem 1.7rem;margin:2.2rem 0;font-family:'Archivo',sans-serif;font-weight:800;font-size:1.4rem;color:var(--navy);line-height:1.3}

/* Forms / contact */
.panel{background:#fff;border:var(--bw) solid var(--navy);box-shadow:var(--hard);padding:2.3rem;height:100%}
.panel-yellow{background:var(--yellow)}
.info-row{display:flex;gap:1rem;padding:1rem 0;border-bottom:2px solid var(--navy)}
.info-row:last-child{border-bottom:0}
.info-row i{font-size:1.5rem}
.info-row small{display:block;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}
.info-row a{font-weight:700}
.map{border:var(--bw) solid var(--navy);box-shadow:var(--hard);width:100%;height:280px;display:block;margin-top:2rem;filter:grayscale(.3)}
.form-label{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--navy)}
.form-control,.form-select{border:var(--bw) solid var(--navy);border-radius:0;padding:.75rem 1rem;background:#fff}
.form-control:focus,.form-select:focus{box-shadow:5px 5px 0 var(--yellow);border-color:var(--navy)}
.form-check-input{border:2px solid var(--navy);border-radius:0}
.form-check-input:checked{background-color:var(--navy);border-color:var(--navy)}
.form-success{display:none;background:var(--sky);border:var(--bw) solid var(--navy);padding:1rem 1.2rem;margin-top:1.2rem;font-weight:600}
.form-success.show{display:block;animation:pop .45s}
@keyframes pop{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.news{padding:5.5rem 0;border-bottom:var(--bw) solid var(--navy)}
.news-yellow{background:var(--yellow)}
.news-sky{background:var(--sky)}
.news .panel{max-width:660px;margin:0 auto;text-align:center}
.news .badge-ico{width:84px;height:84px;margin:-4.6rem auto 1.2rem;background:var(--navy);color:var(--yellow);border:var(--bw) solid var(--navy);display:grid;place-items:center;font-size:2.4rem;box-shadow:5px 5px 0 var(--yellow)}

/* Legal */
.legal{max-width:860px;margin:0 auto;background:#fff;border:var(--bw) solid var(--navy);box-shadow:var(--hard);padding:3rem}
.legal h2{font-size:1.6rem;margin:2.2rem 0 .6rem;padding-left:1rem;border-left:8px solid var(--yellow)}
.legal h2:first-of-type{margin-top:1.5rem}
@media(max-width:575px){.legal,.panel{padding:1.5rem}}

/* CTA */
.cta{background:var(--yellow);border:var(--bw) solid var(--navy);box-shadow:12px 12px 0 var(--navy);padding:4rem 2rem;text-align:center}
.cta p{max-width:560px;margin:0 auto 2rem;color:var(--navy)}

/* Footer */
.site-footer{background:var(--navy);color:rgba(255,255,255,.72);padding:5rem 0 0;border-top:var(--bw) solid var(--navy)}
.site-footer h5{color:var(--yellow);font-size:1rem;text-transform:uppercase;letter-spacing:.14em;margin-bottom:1.2rem}
.site-footer a{color:rgba(255,255,255,.72)}
.site-footer a:hover{color:var(--yellow)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.55rem}
.footer-bottom{border-top:2px solid rgba(255,255,255,.15);margin-top:3.5rem;padding:1.5rem 0;font-size:.9rem}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.show{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
@media(max-width:575px){.brand{font-size:1.25rem}.section{padding:4rem 0}.frame .note{left:-6px}.hero::before{display:none}.page-head::after{display:none}}
