* { box-sizing: border-box; }
:root { --ink:#20242a; --muted:#66707b; --red:#b5232c; --red-dark:#901b23; --navy:#171d25; --line:#e3e6e9; --paper:#fff; --soft:#f4f5f6; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; line-height:1.65; }
a { color:inherit; }
.container { width:min(1120px, calc(100% - 40px)); margin-inline:auto; }
.skip-link { position:absolute; left:-9999px; top:auto; }
.skip-link:focus { left:12px; top:12px; z-index:99; background:#fff; padding:10px; }
.topbar { background:var(--navy); color:#d8dde3; font-size:13px; }
.topbar-inner { min-height:38px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.topbar a { color:#fff; text-decoration:none; font-weight:bold; }
.site-header { background:#fff; border-bottom:1px solid var(--line); position:relative; z-index:2; }
.header-inner { min-height:110px; display:grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items:center; column-gap:30px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brand-mark { display:grid; place-items:center; width:48px; height:48px; background:var(--red); color:#fff; font-size:30px; font-weight:900; font-style:italic; }
.brand-name { font-weight:900; letter-spacing:1.2px; line-height:1.1; font-size:20px; }
.brand-name small { display:block; font-size:10px; letter-spacing:3px; margin-top:5px; }
.main-nav { display:flex; align-items:center; justify-content:flex-end; gap:20px; flex-wrap:wrap; min-width: 0; margin: 0; }
.main-nav a { text-decoration:none; font-size:14px; font-weight:bold; color:#343a42; padding:32px 0; border-bottom:3px solid transparent; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color:var(--red); border-color:var(--red); }
.header-call, .button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; font-weight:bold; border-radius:3px; transition:background .2s ease; }
.header-call { background:var(--red); color:#fff; padding:11px 18px; white-space:nowrap; }
.header-call:hover, .button-red:hover { background:var(--red-dark); }
.hero { background:linear-gradient(90deg,rgba(15,20,27,.94),rgba(15,20,27,.72)),linear-gradient(135deg,#3d4855,#151b22); color:#fff; min-height:470px; display:flex; align-items:center; }
.hero-content { padding-top:64px; padding-bottom:68px; }
.eyebrow { margin:0 0 12px; color:var(--red); text-transform:uppercase; font-size:12px; letter-spacing:2px; font-weight:800; }
.hero .eyebrow, .page-hero .eyebrow { color:#ffff66; }
h1,h2,h3,p { margin-top:0; }
.hero h1 { font-size:clamp(38px,5.5vw,64px); line-height:1.08; max-width:800px; margin:0 0 20px; letter-spacing:-1.5px; }
.hero h1 span { color:#ffff66; }
.hero-copy { max-width:650px; color:#d9dee4; font-size:18px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.button { padding:13px 21px; }
.button-red { background:var(--red); color:#fff; }
.button-outline { border:1px solid rgba(255,255,255,.65); color:#fff; }
.button-outline:hover { background:#fff; color:var(--ink); }
.button-light { background:#fff; color:var(--red-dark); }
.intro-section { display:grid; grid-template-columns: .85fr 1.15fr; gap:70px; padding-top:78px; padding-bottom:78px; }
.section-heading h2, .intro-section h2 { font-size:clamp(28px,3vw,38px); line-height:1.18; margin-bottom:0; }
.intro-copy { color:#555f69; font-size:16px; }
.text-link { display:inline-block; color:var(--red); font-weight:bold; text-decoration:none; margin-top:8px; }
.text-link span { margin-left:6px; }
.services-section { background:var(--soft); padding:76px 0 84px; }
.centered { text-align:center; max-width:650px; margin:0 auto 38px; }
.centered > p:last-child { color:var(--muted); margin-top:12px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-card { background:#fff; border:1px solid var(--line); padding:30px; min-height:250px; box-shadow:0 5px 18px rgba(20,30,40,.035); }
.service-number { color:var(--red); font-weight:900; font-size:13px; letter-spacing:2px; margin-bottom:20px; }
.service-card h3 { font-size:22px; margin-bottom:10px; }
.service-card p { color:var(--muted); }
.cta-band { background:var(--red); color:#fff; padding:42px 0; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.cta-band .eyebrow { color:#ffd5d7; }
.cta-band h2 { font-size:28px; margin:0; }
.page-hero { background:var(--navy); color:#fff; padding:62px 0 66px; }
.page-hero h1 { font-size:clamp(34px,4.5vw,52px); margin-bottom:8px; line-height:1.12; }
.page-hero p:last-child { color:#d5dbe1; margin-bottom:0; font-size:17px; }
.content-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:65px; padding-top:68px; padding-bottom:78px; }
.content-main h2 { font-size:27px; margin:0 0 14px; }
.content-main h2:not(:first-child) { margin-top:34px; }
.content-main p { color:#59636e; }
.info-panel { background:var(--soft); border-top:4px solid var(--red); padding:26px; align-self:start; }
.info-panel h3 { font-size:20px; }
.info-panel p { color:#59636e; }
.contact-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:55px; padding-top:68px; padding-bottom:80px; }
.contact-details h2 { font-size:30px; }
.contact-address { font-size:18px; }
.contact-phone { font-size:24px; font-weight:bold; color:var(--red); }
.contact-phone a { text-decoration:none; }
.map-link { display:block; margin-top:20px; }
.map-frame { min-height:350px; background:var(--soft); }
.map-frame iframe { width:100%; height:100%; min-height:350px; border:0; }
.site-footer { background:var(--navy); color:#cbd1d8; padding:54px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:45px; padding-bottom:42px; }
.footer-brand { color:#fff; text-decoration:none; font-weight:900; letter-spacing:1px; }
.site-footer h2 { color:#fff; font-size:16px; margin-bottom:14px; }
.site-footer p { color:#aeb7c1; }
.site-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li { margin:7px 0; }
.site-footer a { color:#dce1e6; text-decoration:none; }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.footer-map { color:#fff !important; font-weight:bold; }
.copyright { border-top:1px solid #343c46; padding-top:18px; padding-bottom:20px; font-size:12px; color:#9ba5af; }
@media (min-width: 670px) and (max-width: 1110px) {
    .header-inner {
        column-gap: 25px;
        row-gap: 15px;
    }

    .header-inner .header-call {
        align-self: center;
        margin-top: 12px;
    }
}
@media (max-width:1100px) {
  .header-inner { display: flex; flex-direction: column; align-items: flex-start; padding-top: 15px; padding-bottom: 15px; gap: 0; }
  .main-nav { width:100%; justify-content:flex-start; margin-top: 22px; gap: 12px 22px }
  .main-nav a { padding:8px 0; }
  .intro-section { gap:35px; }
  .content-layout { gap:32px; }
}
@media (max-width:650px) {
  .container { width:min(100% - 30px,1120px); }
  .topbar-inner { padding-top:8px; padding-bottom:8px; align-items:flex-start; flex-direction:column; gap:2px; }
  .header-inner { gap:14px; }
  .brand-name { font-size:17px; }
  .header-call { margin-left:auto; }
  .main-nav { gap:8px 17px; }
  .main-nav a { font-size:13px; }
  .hero { min-height:430px; }
  .hero-content { padding-top:54px; padding-bottom:56px; }
  .intro-section, .content-layout, .contact-section { grid-template-columns:1fr; gap:28px; padding-top:48px; padding-bottom:52px; }
  .service-grid, .footer-grid { grid-template-columns:1fr; }
  .services-section { padding:52px 0; }
  .cta-inner { align-items:flex-start; flex-direction:column; }
  .page-hero { padding:48px 0; }
  .footer-grid { gap:24px; }
}
