:root {
  --bg: #f4f5f7;
  --surface: #ffffff;
  --text: #111827;
  --muted: #4b5563;
  --accent: #c11f2a;
  --accent-dark: #981823;
  --line: #d8dde6;
  --focus: #0b57d0;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
img, svg, video, canvas, iframe {
  max-width: 100%;
}
img, video {
  height: auto;
}
body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.6;
  color: var(--text);
  background: linear-gradient(180deg, #f7f8fa 0%, #eef2f6 100%);
  overflow-x: clip;
}
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: #fff;
  padding: .6rem .8rem;
  z-index: 999;
}
.skip-link:focus { left: .5rem; }
.container { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.site-header {
  position: sticky;
  top: 0;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(8px);
  z-index: 100;
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: .8rem; }
.brand { display: flex; align-items: center; gap: .7rem; font-weight: 700; }
.brand img { width: 44px; height: 44px; object-fit: contain; background: #fff; border-radius: 10px; border: 1px solid var(--line); }
.menu-toggle { display: none; border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: .45rem .65rem; font-weight: 600; }
.nav-list { list-style: none; display: flex; align-items: center; gap: .15rem; margin: 0; padding: 0; }
.nav-list a { display: inline-block; padding: .45rem .7rem; border-radius: 8px; color: #1f2937; font-weight: 600; white-space: nowrap; }
.nav-list a:hover, .nav-list a[aria-current="page"] { background: #eef2f7; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .7rem 1rem;
  border-radius: 10px;
  border: 1px solid transparent;
  font-weight: 700;
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.btn-primary { color: #fff; background: linear-gradient(135deg, var(--accent), var(--accent-dark)); }
.btn-secondary { color: #1f2937; background: #fff; border-color: var(--line); }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn { min-height: 44px; }
.hero { padding: 2.7rem 0 1.5rem; }
.hero-grid { display: grid; grid-template-columns: 1.3fr .9fr; gap: 1rem; }
.kicker { display: inline-block; background: #fde8ea; color: #8b111a; padding: .25rem .55rem; border-radius: 999px; font-weight: 700; font-size: .86rem; }
h1 { font-size: clamp(1.75rem, 3.8vw, 2.8rem); line-height: 1.15; margin: .8rem 0; }
h2 { font-size: clamp(1.35rem, 2.7vw, 2rem); line-height: 1.2; margin: 0 0 .8rem; }
h3 { font-size: 1.2rem; margin: 0 0 .45rem; }
.lead { color: var(--muted); max-width: 70ch; }
.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1rem;
  box-shadow: 0 6px 22px rgba(17,24,39,.05);
}
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.section { padding: 1rem 0 2rem; }
.cta-row { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .8rem; }
ul { padding-left: 1.2rem; }
li, p, h1, h2, h3 { overflow-wrap: anywhere; }
.small { color: var(--muted); font-size: .93rem; }
.breadcrumbs { font-size: .9rem; color: var(--muted); margin: .6rem 0 0; }
.breadcrumbs a { color: #334155; text-decoration: underline; text-underline-offset: 2px; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; }
th, td { border: 1px solid var(--line); padding: .6rem; text-align: left; }
th { background: #f1f4f8; }
label { display: block; font-weight: 600; margin-bottom: .25rem; }
input, select, textarea {
  width: 100%;
  border: 1px solid #bcc5d1;
  border-radius: 8px;
  padding: .62rem .7rem;
  font: inherit;
  background: #fff;
}
input:invalid, select:invalid, textarea:invalid { border-color: #c11f2a; }
textarea { min-height: 140px; resize: vertical; }
.footer { border-top: 1px solid var(--line); margin-top: 1.5rem; padding: 1.2rem 0 4.6rem; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 1rem; }
.footer a { text-decoration: underline; text-underline-offset: 2px; }
.sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: none;
  gap: .5rem;
  background: rgba(16,20,27,.96);
  padding: .5rem;
  z-index: 200;
}
.sticky-cta a { flex: 1; text-align: center; border-radius: 9px; padding: .68rem; font-weight: 700; color: #fff; }
.sticky-cta a:first-child { background: var(--accent); }
.sticky-cta a:last-child { background: #273041; }
@media (max-width: 960px) {
  .hero-grid, .grid-2, .grid-3, .footer-grid { grid-template-columns: 1fr; }
  .menu-toggle { display: inline-block; }
  nav { position: relative; }
  .nav-list {
    display: none;
    position: absolute;
    right: 0;
    top: 2.7rem;
    width: min(86vw, 320px);
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: .55rem;
  }
  .nav-list.open { display: flex; }
  .sticky-cta { display: flex; }
  body { padding-bottom: 4.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}

/* Redesign 2026 */
:root {
  --ink: #101820;
  --navy: #16212b;
  --fire: #bd2029;
  --fire-bright: #e6383f;
  --cream: #f6f3ee;
}
body { background: #f8f8f7; }
.site-header { background: rgba(16,24,32,.97); border: 0; color: #fff; }
.brand { color: #fff; letter-spacing: -.02em; }
.brand img { width: 50px; height: 50px; border: 0; border-radius: 50%; }
.nav-list a { color: #e8edf1; font-size: .95rem; }
.nav-list a:hover { background: rgba(255,255,255,.1); color: #fff; }
.nav-list a[aria-current="page"] { background: rgba(230,56,63,.18); color: #fff; box-shadow: inset 0 -2px 0 #e6383f; }
.menu-toggle { color: #fff; border-color: #52606d; background: transparent; }
.hero--premium { position: relative; overflow: hidden; color: #fff; background: radial-gradient(circle at 82% 18%, rgba(230,56,63,.33), transparent 32%), linear-gradient(125deg,#101820 0%,#1d2b36 58%,#542027 100%); padding: clamp(4rem,8vw,7rem) 0; }
.hero--premium:after { content:""; position:absolute; width:360px; height:360px; border:1px solid rgba(255,255,255,.12); border-radius:50%; right:-120px; bottom:-180px; box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.018); }
.hero--premium .lead { color: #d9e0e5; font-size: 1.12rem; }
.hero--premium h1 { font-size: clamp(2.45rem,6.5vw,5.3rem); max-width: 900px; letter-spacing: -.045em; }
.eyebrow { color:#ff9ba0; text-transform:uppercase; letter-spacing:.16em; font-size:.78rem; font-weight:800; }
.trust-row { display:flex; flex-wrap:wrap; gap:.75rem 1.4rem; margin-top:1.6rem; color:#d9e0e5; font-size:.92rem; }
.trust-row span:before { content:"✓"; color:#ff737a; font-weight:900; margin-right:.45rem; }
.section--services { padding: clamp(3.8rem,7vw,6.5rem) 0; background: var(--cream); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.section-heading h2 { font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-.04em; max-width:680px; margin:.3rem 0 0; }
.section-heading p { max-width:440px; color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.service-card { position:relative; min-height:265px; display:flex; flex-direction:column; padding:1.5rem; border-radius:18px; color:#fff; background:linear-gradient(145deg,#192630,#273641); overflow:hidden; box-shadow:0 14px 34px rgba(16,24,32,.12); transition:transform .2s ease,box-shadow .2s ease; }
.service-card:nth-child(3n+2) { background:linear-gradient(145deg,#7d171e,#bd2029); }
.service-card:hover { transform:translateY(-5px); box-shadow:0 20px 44px rgba(16,24,32,.2); }
.service-card .number { font-size:.78rem; color:#ffafb3; letter-spacing:.12em; font-weight:800; }
.service-card h3 { font-size:1.45rem; line-height:1.15; margin:3.8rem 0 .65rem; }
.service-card p { color:#dce3e7; margin:0 0 1.2rem; }
.service-card .card-link { margin-top:auto; font-weight:800; }
.service-card .card-link:after { content:" →"; color:#ff8b91; }
.service-groups { display:grid; gap:1.5rem; }
.service-group { padding:clamp(1.2rem,2.8vw,2rem); background:#fff; }
.service-group-head { display:grid; gap:.45rem; margin-bottom:1.25rem; }
.service-group-head h3 { font-size:clamp(1.4rem,2.4vw,2rem); letter-spacing:-.03em; }
.service-group-head p { margin:0; color:var(--muted); max-width:62ch; }
.service-group-tag { color:#bd2029; }
.service-group-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.coverage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.coverage-card { padding:1.5rem; }
.coverage-card h2 { margin-top:.4rem; }
.coverage-card--accent { background:linear-gradient(145deg,#192630,#273641); color:#fff; border-color:#243440; }
.coverage-card--accent p { color:#dce3e7; }
.band { background:#bd2029; color:#fff; padding:2.2rem 0; }
.band .container { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.band h2 { margin:0; }
.band p { color:#ffe3e5; margin:.35rem 0 0; }
.band .btn { background:#fff; color:#8c171e; white-space:nowrap; }
.proof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#d7dde1; border:1px solid #d7dde1; border-radius:18px; overflow:hidden; }
.proof-grid article { background:#fff; padding:1.8rem; }
.proof-grid strong { display:block; font-size:2rem; color:#bd2029; }
.footer { background:#101820; color:#dbe2e6; border:0; margin:0; padding-top:3rem; }
.footer a { color:#fff; }
@media(max-width:960px){
  .nav-list { background:#16212b; border-color:#364651; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-group-grid, .coverage-grid { grid-template-columns:1fr; }
  .section-heading { align-items:start; flex-direction:column; }
  .proof-grid { grid-template-columns:1fr; }
}
@media(max-width:620px){
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:225px; }
  .band .container { align-items:flex-start; flex-direction:column; }
  .site-header .nav-wrap>.btn { display:none; }
}

@media (max-width: 480px) {
  .container { width: min(1120px, calc(100% - 1.1rem)); }
  .brand img { width: 42px; height: 42px; }
  .brand span { font-size: 1.03rem; }
  .hero, .hero--premium, .hero--photo { overflow: hidden; }
  .ref-card figure { aspect-ratio: 4 / 3; }
  .nav-list a { white-space: normal; }
}

.topbar{background:#090f14;color:#aeb9c1;font-size:.78rem;padding:.42rem 0;border-bottom:1px solid #26333d}.topbar .container{display:flex;justify-content:space-between;gap:1rem}.topbar a{color:#fff}.nav-services{position:relative}.mega-menu{display:none;position:absolute;left:50%;transform:translateX(-50%);top:100%;width:min(740px,90vw);grid-template-columns:repeat(2,1fr);gap:.35rem;padding:.8rem;background:#fff;border-radius:14px;box-shadow:0 22px 55px rgba(0,0,0,.3)}.nav-services:hover .mega-menu,.nav-services:focus-within .mega-menu{display:grid}.mega-menu a{color:#17232d;padding:.75rem!important;border-radius:9px}.mega-menu a:hover{background:#f2f4f5;color:#bd2029}.mega-menu b,.mega-menu small{display:block}.mega-menu small{color:#64727e;font-weight:400;margin-top:.15rem}
.topbar a{display:inline-flex;align-items:center;min-height:40px;padding:.2rem 0}
.hero--photo{position:relative;background-image:linear-gradient(90deg,rgba(10,16,22,.97) 0%,rgba(10,16,22,.82) 43%,rgba(10,16,22,.18) 100%),var(--hero-image)!important;background-size:cover!important;background-position:center!important;min-height:570px;display:flex;align-items:center;color:#fff}.hero--photo>.container{position:relative;z-index:2}.hero--photo .lead{color:#d8e0e5;max-width:680px}.hero--photo h1{max-width:850px}
.inquiry-section{background:#eef0f1;padding:clamp(4rem,7vw,7rem) 0}.inquiry-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,6rem);align-items:start}.inquiry-grid h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.04em}.contact-panel{margin-top:2rem;padding:1.2rem;border-left:4px solid #bd2029;background:#fff;display:grid;gap:.35rem}.contact-panel a{font-size:1.15rem;font-weight:700}.inquiry-form{background:#fff;border-radius:20px;padding:clamp(1.2rem,3vw,2.2rem);box-shadow:0 18px 50px rgba(16,24,32,.12)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.inquiry-form label{margin-top:.8rem}.inquiry-form .check{display:flex;gap:.55rem;align-items:flex-start;font-weight:400}.inquiry-form .check input{width:auto;margin-top:.35rem}.inquiry-form button{margin-top:1rem;width:100%}
.contact-panel a{display:inline-flex;align-items:center;min-height:40px}
.inquiry-form .check a{display:inline-flex;align-items:center;min-height:40px;padding:.1rem 0}
.inquiry-form button{min-height:44px}
.footer-main{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:clamp(1.5rem,4vw,4rem);padding-bottom:2.5rem}.footer-main>div{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}.footer-main h2,.footer-main h3{color:#fff;margin:0 0 .55rem}.footer-brand img{width:76px;height:76px;object-fit:contain;background:#fff;border-radius:50%}.footer-brand p{max-width:320px}.footer-bottom{border-top:1px solid #32404b;padding:1rem 0;display:flex;justify-content:space-between;font-size:.85rem}
.footer-main a{display:inline-flex;align-items:center;min-height:40px;padding:.15rem 0}
@media(max-width:960px){.topbar{display:none}.mega-menu{position:static;transform:none;width:100%;grid-template-columns:1fr;box-shadow:none;background:#101820}.mega-menu a{color:#fff}.nav-services:hover .mega-menu{display:none}.inquiry-grid,.footer-main{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.hero--photo{min-height:620px;background-image:linear-gradient(rgba(10,16,22,.84),rgba(10,16,22,.94)),var(--hero-image)!important;background-position:62% center!important}.inquiry-grid,.footer-main,.form-row{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:.3rem}}
.menu-toggle{min-width:44px!important;min-height:44px!important;height:44px!important;display:none!important;align-items:center;justify-content:center}
.nav-list a{min-height:44px!important;display:flex;align-items:center}

@media(max-width:960px){
  .nav-wrap { position:relative; }
  .nav-wrap nav { position:static; }
  .menu-toggle { display:inline-flex!important; }
  .nav-list { left:0; right:0; top:calc(100% - .25rem); width:auto; }
  .footer .footer-main a,
  .footer .footer-main a:link,
  .footer .footer-main a:visited { min-height:44px !important; min-width:44px !important; display:flex !important; align-items:center; }
  .hero .breadcrumbs a,
  .card p a,
  .inquiry-section a { min-height:40px; display:inline-flex; align-items:center; }
  .menu-toggle,
  .inquiry-form button,
  .sticky-cta a,
  .cta-row .btn,
  a[href^="tel:"],
  a[href^="mailto:"],
  .breadcrumbs a,
  .inquiry-form .check a,
  .card p a,
  .footer a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }
  .inquiry-form button,
  .menu-toggle {
    padding-top: .6rem !important;
    padding-bottom: .6rem !important;
  }
  .footer a,
  .card p a,
  .breadcrumbs a,
  .inquiry-form .check a {
    line-height: 1.2;
    padding-top: .2rem;
    padding-bottom: .2rem;
  }
}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}.form-status{min-height:1.5rem;margin:.7rem 0 0;color:#334155;font-weight:600}.inquiry-form button:disabled{opacity:.65;cursor:wait}.faq-list{display:grid;gap:.8rem;max-width:900px}.faq-list details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem}.faq-list summary{font-size:1.08rem;font-weight:800;cursor:pointer}.faq-list p{color:var(--muted)}
.answer-box{max-width:760px;margin:1.2rem 0;padding:1rem 1.15rem;border-left:4px solid #e6383f;background:rgba(255,255,255,.1);border-radius:0 12px 12px 0}.answer-box b{color:#ffb3b7;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}.answer-box p{margin:.35rem 0 0;color:#eef2f4}.related-card{display:block;transition:transform .2s ease,border-color .2s ease}.related-card:hover{transform:translateY(-3px);border-color:#bd2029}.related-card span{color:var(--muted);font-size:.9rem}.related-card b{color:#a91c24}.breadcrumbs.container{padding-top:1rem}.breadcrumbs span{margin-left:.35rem}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
.ref-intro{max-width:760px;color:var(--muted);margin:0 0 2rem}
.ref-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
.ref-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 12px 32px rgba(16,24,32,.08);transition:transform .2s ease,box-shadow .2s ease}
.ref-card:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(16,24,32,.16)}
.ref-card figure{margin:0;position:relative;aspect-ratio:16/10;background:#0f1720}
.ref-card img{width:100%;height:100%;object-fit:cover;display:block}
.ref-card figure:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,16,22,.45) 100%)}
.ref-badge{position:absolute;left:.85rem;top:.85rem;z-index:2;background:rgba(189,32,41,.95);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:.32rem .62rem;border-radius:999px}
.ref-body{display:flex;flex-direction:column;gap:.5rem;padding:1.15rem 1.2rem 1.35rem;flex:1}
.ref-loc{color:#a91c24;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em}
.ref-body h3{margin:0;font-size:1.22rem;letter-spacing:-.01em}
.ref-body p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}
.ref-result{margin-top:auto;padding-top:.65rem;font-size:.9rem;color:#1f2937;border-top:1px dashed var(--line)}
.ref-result b{color:#15803d}
@media(min-width:961px) and (max-width:1200px){.ref-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:960px){.ref-grid{grid-template-columns:1fr}}
.ref-card--link{text-decoration:none;color:inherit}
.ref-card--link .ref-body{gap:.45rem}
.ref-more{margin-top:auto;padding-top:.4rem;font-weight:800;color:#a91c24}
.ref-card--link:hover .ref-more{color:#bd2029}
.geo-answer{margin:.55rem 0 .2rem;padding:.7rem .95rem;background:rgba(169,28,36,.12);border-left:4px solid #e6383f;border-radius:6px;font-size:1.02rem;line-height:1.55}
.geo-answer strong{color:#e6383f}

.inquiry-form input,
.inquiry-form select,
.inquiry-form textarea { transition: border-color .18s ease, box-shadow .18s ease; }
.inquiry-form input:focus,
.inquiry-form select:focus,
.inquiry-form textarea:focus { box-shadow: 0 0 0 3px rgba(11,87,208,.15); }

@media (prefers-contrast: more) {
  .nav-list a,
  .btn,
  .card { border-width: 2px; }
}

@media print {
  .site-header,
  .topbar,
  .sticky-cta,
  .inquiry-section,
  .footer { display: none !important; }
  body { background: #fff; color: #000; }
  .hero,
  .section { padding: .4rem 0; }
}
