.upits-page { --brand:#006ca5; --brand-dark:#004e79; --up-navy:#072d45; --up-cyan:#75dcf1; }
.upits-page main { color:var(--up-navy); }
.upits-page main p { color:#526575; }
.upits-page .container { width:min(1200px,calc(100% - 48px)); }
.upits-page :focus-visible { outline:3px solid #db8d29; outline-offset:5px; }
.up-skip { position:fixed; top:-100px; left:20px; z-index:100001; padding:12px 20px; background:white; }
.up-skip:focus { top:12px; }
.up-hero { background:#edf5f8; padding:22px 0 0; overflow:hidden; }
.up-breadcrumb { color:#526575; font-size:12px; margin-bottom:32px; }
.up-breadcrumb span { margin:0 12px; }
.up-hero-grid { display:grid; grid-template-columns:1.02fr 1fr; gap:46px; align-items:center; padding-bottom:42px; }
.up-kicker { display:block; color:#006ca5; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; margin-bottom:18px; }
.up-hero h1 { font-size:clamp(35px,3.6vw,53px); line-height:1.08; letter-spacing:-.05em; margin-bottom:20px; }
.up-hero h1 span { color:#0077ae; }
.up-hero .up-subtitle { color:var(--up-navy); font-size:18px; font-weight:600; line-height:1.5; }
.up-hero p { font-size:14px; max-width:530px; }
.up-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.up-actions .btn { padding:14px 20px; font-size:13px; text-align:center; }
.up-hero figure { margin:0; position:relative; }
.up-hero figure::before { content:""; position:absolute; inset:-13px 22px 20px -13px; border:1px solid #b4d4e0; pointer-events:none; }
.up-hero figure img { position:relative; width:100%; height:360px; object-fit:cover; object-position:52% center; }
.up-hero figcaption { position:relative; background:var(--up-navy); color:white; padding:18px 22px; font-size:12px; display:flex; justify-content:space-between; gap:15px; }
.up-hero figcaption span { color:var(--up-cyan); }
.up-facts { background:var(--up-navy); color:white; padding:26px 0; }
.up-facts dl { display:grid; grid-template-columns:1.05fr 1.1fr .8fr 1.3fr; margin:0; gap:26px; }
.up-facts dt { font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:#95c3d7; margin-bottom:7px; }
.up-facts dd { margin:0; font-size:13px; font-weight:600; }
.up-facts small { display:block; font-weight:400; color:#bdd0dc; margin-top:3px; }
.up-section { padding:80px 0; scroll-margin-top:100px; }
.up-soft { background:#f1f6f8; }
.up-heading { max-width:700px; margin-bottom:32px; }
.up-section h2 { font-size:clamp(27px,3vw,39px); line-height:1.17; letter-spacing:-.035em; margin-bottom:18px; }
.up-section h3 { font-size:18px; line-height:1.4; letter-spacing:-.02em; }
.up-heading p,.up-section p { font-size:14px; line-height:1.8; }
.up-heading-row { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:30px; }
.up-heading-row .up-heading { margin:0; }
.up-link { color:#006ca5; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.up-projects { display:grid; grid-template-columns:1.15fr 1fr; gap:28px; }
.up-project { margin:0; }
.up-image-link { display:block; position:relative; overflow:hidden; background:#dce8ee; }
.up-image-link img { width:100%; height:290px; object-fit:cover; transition:transform .25s; }
.up-image-link:hover img { transform:scale(1.025); }
.up-image-link span { position:absolute; bottom:14px; right:14px; background:white; padding:7px 12px; font-size:11px; font-weight:600; }
.up-project figcaption { padding-top:20px; }
.up-project h3 { margin-bottom:8px; }
.up-project .up-kicker { font-size:10px; margin-bottom:8px; }
.up-split { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; }
.up-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.up-card { border:1px solid #dbe5eb; padding:26px; background:white; }
.up-number { display:block; color:#007caf; font-size:12px; font-weight:700; letter-spacing:.12em; margin-bottom:25px; }
.up-card p { margin-bottom:0; }
.up-checks { padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:16px 28px; margin:26px 0 0; }
.up-checks li { font-size:13px; border-bottom:1px solid #d5e0e6; padding:0 0 15px 22px; position:relative; }
.up-checks li::before { content:'✓'; position:absolute; left:0; color:#007caf; }
.up-dark { background:var(--up-navy); color:white; }
.up-page-photo { margin:0; }
.up-page-photo img { width:100%; height:auto; }
.up-page-photo figcaption { margin-top:12px; font-size:12px; color:#a8c7d6; }
.upits-page .up-dark p { color:#bdd0dc; }
.up-dark .up-kicker,.up-dark .up-link { color:var(--up-cyan); }
.up-dark .up-split { align-items:center; gap:45px; }
.up-industries { display:grid; grid-template-columns:repeat(3,1fr); gap:0 30px; }
.up-industry { border-top:1px solid #dbe5eb; padding:23px 0 10px; }
.up-industry h3 { font-size:15px; margin-bottom:8px; }
.up-industry p { font-size:13px; }
.up-service-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.up-service-list li { padding:20px; background:white; border:1px solid #dbe5eb; font-size:13px; display:flex; gap:14px; align-items:center; }
.up-service-list span { color:#0080b4; font-size:11px; }
.up-faq { max-width:850px; }
.up-faq details { border-bottom:1px solid #d3e1e8; padding:19px 0; }
.up-faq summary { font-size:15px; font-weight:600; cursor:pointer; padding-right:15px; }
.up-faq details p { margin:16px 0 0; }
.up-quote { position:relative; overflow:hidden; }
.up-quote h2 { max-width:800px; font-size:clamp(30px,3.8vw,47px); }
.up-quote p { max-width:650px; }
.up-quote .btn-primary { background:#78def2; border-color:#78def2; color:#072d45; }
.up-contact { display:flex; gap:25px; flex-wrap:wrap; margin-top:28px; font-size:13px; }
.up-mobile-cta { display:none; }
.up-dialog { border:0; padding:48px 16px 16px; width:min(1200px,95vw); max-height:92vh; background:#072d45; color:white; }
.up-dialog::backdrop { background:rgba(0,15,26,.85); }
.up-dialog img { max-height:75vh; width:100%; object-fit:contain; }
.up-dialog button { position:absolute; right:14px; top:8px; background:white; border:0; padding:7px 14px; cursor:pointer; border-radius:3px; }
.up-dialog p { font-size:13px; margin:12px 0 0; }
@media(min-width:1600px) { .up-hero-grid { padding-top:25px; padding-bottom:55px; } }
@media(max-width:1000px) { .up-hero-grid { gap:25px; } .up-hero figure img { height:340px; } .up-split { gap:30px; } .up-cards,.up-industries { grid-template-columns:repeat(2,1fr); } }
@media(max-width:767px) {
 .upits-page .container { width:calc(100% - 36px); } .up-hero-grid,.up-split,.up-projects { grid-template-columns:1fr; } .up-hero-grid { gap:35px; padding-bottom:28px; } .up-breadcrumb { margin-bottom:24px; font-size:10px; } .up-hero h1 { font-size:39px; } .up-hero figure img { height:auto; } .up-hero figure::before { inset:-9px 15px 20px -9px; } .up-hero figcaption { font-size:11px; padding:15px; } .up-facts dl { grid-template-columns:1fr 1fr; gap:23px; } .up-section { padding:52px 0; } .up-heading-row { display:block; } .up-heading-row>.up-link { display:inline-block; margin-top:15px; } .up-image-link img { height:auto; } .up-service-list { grid-template-columns:1fr 1fr; } .up-cards { gap:14px; } .up-card { padding:20px; } .up-section h3 { font-size:16px; } .up-checks { gap:12px; } .up-industries { gap:0 22px; } .up-mobile-cta { display:flex; gap:10px; position:fixed; bottom:0; left:0; right:0; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:white; border-top:1px solid #dbe5eb; z-index:90; } .up-mobile-cta .btn { flex:1; font-size:12px; padding:12px 8px; } .upits-page { padding-bottom:80px; } .up-contact { gap:12px; } .up-contact a { overflow-wrap:anywhere; } .up-dialog { padding-top:48px; } 
}
@media(max-width:380px) { .up-hero h1 { font-size:34px; } .up-cards,.up-industries,.up-service-list { grid-template-columns:1fr; } .up-actions .btn { width:100%; } .up-facts dd { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .up-image-link img { transition:none; } }
