/* Durabel: shared page chrome (structure, responsive, hover & reveal states only) */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--text-body);font-family:var(--font-family-base);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 20px}
@media(min-width:768px){.wrap{padding:0 32px}}
@media(min-width:1024px){.wrap{padding:0 40px}}

.d-xl{font-size:29px;line-height:1.08;letter-spacing:-.025em;margin:0}
@media(min-width:768px){.d-xl{font-size:42px}}
@media(min-width:1024px){.d-xl{font-size:54px}}
.d-num{font-size:56px;line-height:.9;letter-spacing:-.04em;font-weight:700}
@media(min-width:1024px){.d-num{font-size:88px}}

/* header */
.hd{position:fixed;top:0;left:0;right:0;z-index:60;background:#fff;box-shadow:0 1px 0 rgba(1,69,74,.08),0 6px 20px rgba(1,69,74,.05)}
.hdspace-top{height:40px}
.hdspace-row{height:88px}
@media(min-width:768px){.hdspace-row{height:104px}}
@media(min-width:1040px){.hdspace-row{height:116px}}
.topbar{background:var(--blue-800)}
.hdrow{display:flex;align-items:center;gap:20px;min-height:88px;transition:min-height .22s var(--ease-out,ease)}
.hdplate{flex:0 0 auto;display:flex;align-items:center}
.hdlogo{height:48px;width:auto;object-fit:contain;transition:height .22s var(--ease-out,ease)}
.hdbox{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:18px}
@media(min-width:768px){
.hdrow{min-height:104px;gap:28px}
.hdlogo{height:62px}
}
@media(min-width:1040px){
.hdrow{min-height:116px;gap:44px}
.hdlogo{height:74px}
.hdbox{justify-content:space-between;gap:28px}
}
.hd.on .topbar{display:none}
.hd.on .hdrow{min-height:78px}
.hd.on .hdlogo{height:44px}
@media(min-width:1040px){.hd.on .hdrow{min-height:90px}.hd.on .hdlogo{height:56px}}
.nl{position:relative;color:var(--blue-800);font-size:15px;font-weight:500;padding:10px 14px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;transition:color .14s var(--ease-out,ease),background .14s var(--ease-out,ease);cursor:pointer}
.nl:hover{color:var(--blue-600);background:var(--blue-50)}
.nl::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;background:var(--orange-400);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.16,1,.3,1)}
.nl:hover::after,.nl[aria-current="page"]::after{transform:scaleX(1)}
.navrow{display:none}
@media(min-width:1040px){.navrow{display:flex;align-items:center;gap:2px}}
.burger{display:inline-flex}
@media(min-width:1040px){.burger{display:none}}
.hdcta{display:none}
@media(min-width:620px){.hdcta{display:inline-flex}}
.navitem{position:relative}
.navmenu{position:absolute;top:calc(100% + 2px);left:0;width:340px;background:#fff;border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 20px 56px rgba(1,69,74,.18);padding:10px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .24s cubic-bezier(.16,1,.3,1),visibility .18s}
.navitem:hover .navmenu,.navitem:focus-within .navmenu{opacity:1;visibility:visible;transform:none}
.nmi{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:10px;transition:background .14s ease}
.nmi:hover{background:var(--blue-50)}

/* page hero */
.ph{position:relative;display:flex;align-items:flex-end;min-height:420px;padding:72px 0 60px;background:var(--blue-950);overflow:hidden}
@media(min-width:768px){.ph{min-height:470px;padding:88px 0 72px}}
@media(min-width:1024px){.ph{min-height:520px;padding:104px 0 84px}}
.ph-h1{margin:0;color:#fff;font-size:36px;line-height:1.07;letter-spacing:-.03em;font-weight:700}
@media(min-width:768px){.ph-h1{font-size:56px}}
@media(min-width:1024px){.ph-h1{font-size:68px}}

/* layout helpers */
.split{display:grid;gap:40px;grid-template-columns:1fr}
@media(min-width:1024px){.split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:center}}
.split-rev{display:grid;gap:40px;grid-template-columns:1fr}
@media(min-width:1024px){.split-rev{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:center}}
.trio{display:grid;gap:32px;grid-template-columns:1fr}
@media(min-width:700px){.trio{grid-template-columns:repeat(3,1fr);gap:36px}}
.duo{display:grid;gap:24px;grid-template-columns:1fr}
@media(min-width:700px){.duo{grid-template-columns:1fr 1fr;gap:28px}}
.form2{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:560px){.form2{grid-template-columns:1fr 1fr}}

/* service cards */
.sc{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 1px 2px rgba(1,69,74,.06),0 8px 22px rgba(1,69,74,.06);overflow:hidden;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease,border-color .14s ease}
.sc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--orange-400);transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.16,1,.3,1)}
.sc:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(1,69,74,.07),0 26px 56px rgba(1,69,74,.16);border-color:var(--blue-200)}
.sc:hover::after{transform:scaleX(1)}
.sc-media{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--blue-50)}
.sc-media>img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.sc:hover .sc-media>img{transform:scale(1.045)}
.sc .arw{transition:transform .22s var(--ease-out,ease)}
.sc:hover .arw{transform:translateX(5px)}

/* contact band */
.ct-band{position:absolute;inset:0;overflow:hidden}
.ct-grid{position:relative;display:grid;gap:32px;grid-template-columns:1fr}
@media(min-width:1024px){.ct-grid{grid-template-columns:minmax(0,1fr) minmax(0,516px);gap:64px;align-items:start}}
.ct-row{display:flex;align-items:center;gap:14px;color:#fff;font-size:16.5px;line-height:1.4}
.ct-tile{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.26);color:#fff}
a.ct-row:hover{color:#fff}
a.ct-row:hover span:last-child{text-decoration:underline;text-decoration-color:var(--orange-400);text-decoration-thickness:2px;text-underline-offset:5px}

/* motion */
[data-rv]{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
[data-rv].rv-in{opacity:1;transform:none}
[data-rv-d="1"]{transition-delay:.09s}
[data-rv-d="2"]{transition-delay:.18s}
[data-rv-d="3"]{transition-delay:.27s}
.imgrv{overflow:hidden}
.imgrv>img{transform:scale(1.09);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.imgrv.rv-in>img{transform:none}
.noanim [data-rv]{opacity:1!important;transform:none!important}
.noanim .imgrv>img{transform:none!important}
@keyframes hin{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.hin{animation:hin .95s cubic-bezier(.16,1,.3,1) both}
@media(prefers-reduced-motion:reduce){[data-rv],.imgrv>img,.sc,.sc-media>img{transition:none!important}.hin{animation:none}}

.du-footer__bottom span:last-child{display:none}

/* contact page hero */
.ct-hero{position:relative;overflow:hidden;padding:72px 0 88px}
@media(min-width:768px){.ct-hero{padding:88px 0 96px}}
@media(min-width:1024px){.ct-hero{padding:104px 0 108px}}

/* contact page: info + form */
.ct-page{display:grid;gap:40px;grid-template-columns:1fr}
@media(min-width:1024px){.ct-page{grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:64px;align-items:start}}

/* mobile menu */
.mnav{display:none;background:#fff;border-top:1px solid var(--border-subtle);box-shadow:0 24px 40px rgba(1,69,74,.12);max-height:calc(100vh - 88px);overflow-y:auto}
.mnav-open .mnav{display:block}
@media(min-width:1040px){.mnav,.mnav-open .mnav{display:none}}
.mnl{display:flex;align-items:center;min-height:52px;font-size:17px;font-weight:500;color:var(--blue-800);border-bottom:1px solid var(--border-subtle)}
.mnl:hover{color:var(--blue-600)}
.mns{display:flex;align-items:center;min-height:44px;font-size:15.5px;color:var(--text-body)}
.mns:hover{color:var(--blue-600)}
html,body{overflow-x:clip}
.tb-tag{display:none}
@media(min-width:900px){.tb-tag{display:inline}}
.tb-mail{display:none!important}
@media(min-width:520px){.tb-mail{display:inline-flex!important}}
