:root {
  --ink: #111820;
  --ink-2: #1b2630;
  --paper: #f1efe8;
  --paper-2: #e5e2d9;
  --white: #fff;
  --blue: #1758d3;
  --blue-dark: #1046ad;
  --accent: #eb7441;
  --accent-dark: #c85225;
  --muted: #69747b;
  --line: rgba(17, 24, 32, .18);
  --line-light: rgba(255, 255, 255, .18);
  --shell: 1240px;
  --header-height: 84px;
  --ease: cubic-bezier(.2, .75, .25, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.shell { width: min(calc(100% - 48px), var(--shell)); margin-inline: auto; }
.skip-link { position: fixed; left: 12px; top: 12px; z-index: 999; transform: translateY(-160%); background: var(--white); padding: 12px 18px; font-weight: 700; }
.skip-link:focus { transform: none; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .17em;
  line-height: 1.2;
  text-transform: uppercase;
}
.eyebrow::before { width: 22px; height: 2px; background: var(--accent); content: ''; }

/* Header */
.site-header { position: relative; z-index: 50; background: var(--paper); border-bottom: 1px solid var(--line); }
.utility-bar { min-height: 32px; background: var(--ink); color: #bcc5cb; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.utility-inner { min-height: 32px; display: flex; align-items: center; justify-content: flex-end; gap: 26px; }
.utility-inner span:first-child { margin-right: auto; }
.utility-inner a { color: var(--white); text-decoration: none; }
.header-main { min-height: var(--header-height); display: grid; grid-template-columns: 260px 1fr auto; align-items: stretch; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 13px; align-self: center; width: fit-content; color: inherit; text-decoration: none; }
.brand-mark { position: relative; width: 44px; height: 44px; background: var(--blue); border-top: 4px solid var(--accent); overflow: hidden; }
.brand-mark i { position: absolute; top: 10px; bottom: 8px; width: 7px; background: var(--white); }
.brand-mark i:first-child { left: 10px; }
.brand-mark i:last-child { left: 23px; }
.brand-mark i:last-child::after { position: absolute; top: 9px; left: 0; width: 12px; height: 7px; background: var(--white); content: ''; }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-size: 22px; letter-spacing: .06em; }
.brand-copy small { margin-top: 6px; color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: stretch; justify-content: flex-end; gap: 5px; }
.primary-nav > a, .nav-services > a { display: grid; place-items: center; min-height: var(--header-height); padding: 0 13px; font-size: 13px; font-weight: 700; text-decoration: none; }
.primary-nav > a[aria-current="page"], .nav-services > a[aria-current="page"] { color: var(--blue); box-shadow: inset 0 -3px var(--blue); }
.primary-nav > a:hover, .nav-services > a:hover { color: var(--blue); }
.nav-services { position: static; }
.mega-menu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
  gap: 34px;
  padding: 24px max(24px, calc((100vw - var(--shell)) / 2));
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  background: var(--ink);
  color: var(--white);
  pointer-events: none;
  transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s;
  box-shadow: 0 24px 55px rgba(0, 0, 0, .23);
}
.nav-services:hover .mega-menu, .nav-services:focus-within .mega-menu { visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition-delay: 0s; }
.mega-intro { align-self: center; }
.mega-intro p { max-width: 250px; margin-top: 14px; color: #aeb9c0; font-size: 14px; line-height: 1.45; }
.mega-service-previews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line-light); }
.mega-service-preview { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 11px; min-height: 104px; align-items: start; padding: 13px; background: var(--ink-2); color: var(--white); text-decoration: none; transition: background .15s ease, color .15s ease; }
.mega-service-preview:hover, .mega-service-preview:focus-visible { background: var(--blue); }
.service-preview-icon { display: grid; width: 38px; height: 38px; place-items: center; color: var(--accent); border: 1px solid currentColor; }
.mega-service-preview:hover .service-preview-icon, .mega-service-preview:focus-visible .service-preview-icon { color: var(--white); }
.service-preview-icon svg { width: 25px; height: 25px; }
.service-preview-copy { min-width: 0; display: grid; align-content: start; gap: 4px; }
.service-preview-copy strong { font-size: 14px; letter-spacing: -.02em; line-height: 1.08; }
.service-preview-copy small { font-size: 12px; line-height: 1.35; }
.service-preview-copy [data-service-price] { color: #ffb18f; font-weight: 800; }
.mega-service-preview:hover [data-service-price], .mega-service-preview:focus-visible [data-service-price] { color: #fff; }
.service-preview-copy [data-service-condition] { color: #aeb9c0; }
.mega-service-preview:hover [data-service-condition], .mega-service-preview:focus-visible [data-service-condition] { color: #dce7ff; }
.mega-service-preview > b { align-self: center; color: var(--accent); font-size: 14px; }
.header-contact { align-self: center; display: grid; padding-left: 22px; border-left: 1px solid var(--line); }
.header-contact small { color: var(--muted); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.header-contact a { margin-top: 3px; font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.header-phone { display: none; align-items: center; min-height: 44px; gap: 6px; color: var(--ink); font-size: 13px; font-weight: 800; letter-spacing: .02em; text-decoration: none; white-space: nowrap; }
.header-phone span { display: grid; width: 22px; height: 22px; place-items: center; color: var(--blue); border: 1px solid currentColor; font-size: 12px; }
.menu-button { display: none; align-self: center; justify-self: end; width: 48px; height: 48px; padding: 0; border: 1px solid var(--line); background: transparent; }
.menu-button span { display: block; width: 20px; height: 2px; margin: 5px auto; background: var(--ink); }
.mobile-menu, .menu-backdrop { display: none; }

/* Buttons and common sections */
.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s var(--ease);
}
.button:hover { transform: translateY(-2px); }
.button--accent { background: var(--accent); color: var(--ink); }
.button--accent:hover { background: #ff8a55; }
.button--ghost { border-color: var(--line); background: transparent; color: var(--ink); }
.button--ghost-light { border-color: var(--line-light); background: transparent; color: var(--white); }
.button--light { background: var(--paper); color: var(--ink); }
.button--dark { background: var(--ink); color: var(--white); }
.text-link { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.text-link b { color: var(--accent); font-size: 16px; }
.text-link--light { color: var(--white); }
.section { padding: 112px 0; }
.section--paper { background: var(--paper); }
.section--ink { background: var(--ink); color: var(--white); }
.section--blue { background: var(--blue); color: var(--white); }
.section-heading { max-width: 750px; }
.section-heading h2 { margin: 22px 0 18px; font-size: clamp(36px, 5.2vw, 68px); font-weight: 700; letter-spacing: -.055em; line-height: .98; }
.section-heading p { max-width: 620px; margin-bottom: 0; color: var(--muted); font-size: 17px; }
.section--ink .section-heading p, .section--blue .section-heading p { color: #aeb9c0; }
.split-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 48px; }

/* Home hero */
.home-hero { position: relative; overflow: hidden; background: var(--ink); color: var(--white); }
.home-hero::before { position: absolute; inset: 0; opacity: .25; background-image: linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px); background-size: 80px 80px; content: ''; mask-image: linear-gradient(to bottom, #000, transparent 88%); }
.home-hero-grid { position: relative; display: grid; min-height: 590px; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: 24px 36px; padding-block: 48px 28px; }
.hero-copy, .hero-visual, .repair-order, .repair-order-intro, .repair-order-list { min-width: 0; }
.hero-copy { position: relative; z-index: 2; }
.hero-copy h1 { max-width: 100%; margin: 26px 0 30px; font-size: clamp(50px, 5.5vw, 80px); font-weight: 800; letter-spacing: -.075em; line-height: .84; text-transform: uppercase; text-wrap: wrap; }
.hero-copy h1 em { color: var(--accent); font-style: normal; }
.hero-copy p { max-width: 590px; margin-bottom: 34px; color: #b8c1c7; font-size: 18px; }
.hero-visual { position: relative; align-self: stretch; display: grid; max-width: 100%; overflow: clip; place-items: center; }
.hero-visual > img { width: min(440px, 100%); max-width: 100%; height: auto; animation: revolve 90s linear infinite; }
.visual-label { position: absolute; top: 38px; right: 0; color: #8e9aa3; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.hero-ticket { position: absolute; right: 0; bottom: 60px; display: grid; width: 150px; min-height: 150px; align-content: center; padding: 18px; background: var(--accent); color: var(--ink); }
.hero-ticket small { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hero-ticket strong { font-size: 60px; letter-spacing: -.06em; line-height: .9; }
.hero-ticket span { font-size: 12px; font-weight: 700; text-transform: uppercase; }
.repair-order { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(230px, .8fr) minmax(0, 2.2fr); gap: 30px; align-items: center; padding-top: 22px; border-top: 1px solid var(--line-light); }
.repair-order-intro p { max-width: 300px; margin: 12px 0 0; color: #b8c1c7; font-size: 14px; line-height: 1.4; }
.repair-order-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--line-light); }
.repair-order-list li { display: grid; gap: 6px; min-height: 76px; align-content: start; padding: 4px 16px 0; border-right: 1px solid var(--line-light); }
.repair-order-list span { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.repair-order-list strong { font-size: 16px; line-height: 1.1; }
.repair-order-list small { color: #9eabb3; font-size: 12px; line-height: 1.25; }
@keyframes revolve { to { transform: rotate(360deg); } }
.stat-rail { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-light); }
.stat-rail > div { min-height: 108px; display: flex; align-items: flex-end; gap: 12px; padding: 20px 22px; border-right: 1px solid var(--line-light); }
.stat-rail > div:first-child { border-left: 1px solid var(--line-light); }
.stat-rail strong { font-size: 28px; line-height: 1; }
.stat-rail span { max-width: 110px; color: #9eabb3; font-size: 10px; letter-spacing: .08em; line-height: 1.25; text-transform: uppercase; }

/* Services */
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 56px; background: var(--line); border: 1px solid var(--line); }
.service-card { position: relative; min-height: 320px; display: flex; flex-direction: column; padding: 30px; background: var(--paper); transition: background .22s ease, color .22s ease; }
.service-card:hover { background: var(--ink); color: var(--white); }
.service-card > span { color: var(--muted); font-size: 11px; }
.service-card h3 { margin: auto 0 18px; font-size: clamp(25px, 3vw, 38px); letter-spacing: -.04em; line-height: 1; }
.service-card h3 a { text-decoration: none; }
.service-card h3 a::after { position: absolute; inset: 0; content: ''; }
.service-card p { min-height: 72px; color: var(--muted); font-size: 14px; }
.service-card:hover p { color: #aeb9c0; }
.service-card .text-link { position: relative; z-index: 1; margin-top: 18px; }

/* Home intake register */
.home-service-register { display: grid; grid-template-columns: minmax(0, 1fr); margin: 54px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.home-service-register li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-service-register a { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; min-height: 94px; align-items: center; gap: 18px; padding: 18px 22px; color: var(--ink); text-decoration: none; transition: background .15s ease, color .15s ease; }
.home-service-register a:hover, .home-service-register a:focus-visible { background: var(--ink); color: var(--white); }
.home-service-register a > span { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.home-service-register a strong { font-size: clamp(19px, 2.15vw, 28px); letter-spacing: -.035em; line-height: 1.02; }
.home-service-register a b { color: var(--accent); font-size: 17px; }

/* Estimator */
.estimator { display: grid; grid-template-columns: 1.7fr .7fr; border: 1px solid var(--line-light); }
.estimator-form { padding: 36px; }
.estimator-form h3 { margin: 18px 0 34px; font-size: clamp(28px, 4vw, 48px); letter-spacing: -.045em; }
.estimator-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 22px; }
.estimator label, .contact-form label { display: grid; gap: 8px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.estimator select, .contact-form input, .contact-form select, .contact-form textarea {
  width: 100%;
  min-height: 50px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 0;
  background: rgba(255,255,255,.06);
  color: var(--white);
  padding: 12px 14px;
  font-size: 15px;
  letter-spacing: normal;
  text-transform: none;
}
.estimator select option, .contact-form select option { color: var(--ink); }
.estimator-result { display: grid; align-content: center; min-width: 0; padding: 36px; background: var(--blue); }
.estimator-result small { font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.estimator-result strong { margin: 12px 0 8px; font-size: clamp(50px, 7vw, 92px); letter-spacing: -.07em; line-height: .85; overflow-wrap: anywhere; }
.estimator-result span { color: #cfdbf8; font-size: 13px; }

/* Process, trust, location */
.process-grid, .service-detail-grid, .visit-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; }
.process-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.process-list li { display: grid; grid-template-columns: 70px 1fr; gap: 14px; padding: 25px 0; border-bottom: 1px solid var(--line); }
.section--ink .process-list { border-color: var(--line-light); }
.section--ink .process-list li { border-color: var(--line-light); }
.process-list > li > span { color: var(--accent); font-size: 11px; font-weight: 700; }
.process-list h3 { margin-bottom: 8px; font-size: 22px; letter-spacing: -.03em; }
.process-list p { margin-bottom: 0; color: var(--muted); font-size: 14px; }
.section--ink .process-list p { color: #9eabb3; }
.trust-band { padding: 90px 0; background: var(--blue); color: var(--white); }
.trust-grid { display: grid; grid-template-columns: 1.35fr .65fr; align-items: center; gap: 8vw; }
.trust-grid h2 { max-width: 760px; margin: 22px 0; font-size: clamp(40px, 6vw, 76px); letter-spacing: -.06em; line-height: .95; }
.trust-grid p { max-width: 580px; margin-bottom: 30px; color: #cfdbf8; }
.document-preview { position: relative; max-width: 330px; justify-self: end; background: var(--white); color: var(--ink); text-decoration: none; transform: rotate(2deg); box-shadow: 18px 24px 0 rgba(10, 35, 94, .35); }
.document-preview img { width: 100%; }
.document-preview span { display: flex; justify-content: space-between; padding: 14px; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.location-strip { display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: 8vw; }
.location-strip h2 { margin: 20px 0; font-size: clamp(48px, 6.8vw, 86px); letter-spacing: -.065em; line-height: .9; }
.location-strip p { max-width: 550px; color: var(--muted); }
.location-coordinates { position: relative; min-height: 350px; display: grid; align-content: center; padding: 50px; overflow: hidden; background: var(--ink); color: var(--white); }
.location-coordinates::before, .location-coordinates::after { position: absolute; inset: 50% auto auto 50%; background: var(--line-light); content: ''; }
.location-coordinates::before { width: 130%; height: 1px; transform: translate(-50%, -50%); }
.location-coordinates::after { width: 1px; height: 130%; transform: translate(-50%, -50%); }
.location-coordinates span { position: relative; z-index: 1; font-size: clamp(25px, 3.4vw, 42px); font-weight: 700; letter-spacing: -.04em; }
.location-coordinates i { position: absolute; left: 50%; top: 50%; width: 24px; height: 24px; border: 6px solid var(--accent); border-radius: 50%; transform: translate(-50%, -50%); }

/* Forms */
.contact-form { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; }
.contact-form .form-heading h2 { margin: 20px 0; font-size: clamp(38px, 5.5vw, 72px); letter-spacing: -.055em; line-height: .95; }
.contact-form .form-heading p { max-width: 470px; color: #cfdbf8; }
.form-fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 12px; }
.field-wide { grid-column: 1 / -1; }
.contact-form textarea { resize: vertical; }
.contact-form label > span { min-height: 14px; color: #ffd5c4; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.form-actions { grid-column: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.form-actions p { margin: 0; color: #cfdbf8; font-size: 12px; }
.form-actions a { color: var(--white); }

/* Interior pages */
.page-hero { padding: 100px 0 88px; background: var(--paper); border-bottom: 1px solid var(--line); }
.page-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; }
.page-hero h1 { margin: 25px 0 0; font-size: clamp(52px, 7.5vw, 102px); letter-spacing: -.075em; line-height: .88; }
.page-hero-copy { align-self: end; }
.page-hero-copy > p { color: #3d474e; font-size: clamp(18px, 2.2vw, 25px); line-height: 1.35; }
.page-hero-copy small { display: block; margin-top: 20px; color: var(--muted); }
.feature-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.feature-list li { display: grid; grid-template-columns: 55px 1fr; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); font-size: 18px; }
.feature-list span { color: var(--accent); font-size: 12px; font-weight: 800; }
.section--ink .feature-list { border-color: var(--line-light); }
.section--ink .feature-list li { border-color: var(--line-light); }
.service-note-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 8vw; }
.service-note-grid h2 { margin: 22px 0 0; font-size: clamp(44px, 6vw, 78px); letter-spacing: -.06em; line-height: .92; }
.service-note-grid p { margin-bottom: 26px; color: #aeb9c0; font-size: 18px; }
.related-services > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 50px; background: var(--line); }
.related-services a { min-height: 180px; display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 20px; padding: 22px; background: var(--paper-2); text-decoration: none; }
.related-services a:hover { background: var(--blue); color: var(--white); }
.related-services span { align-self: start; color: var(--muted); font-size: 11px; }
.related-services strong { font-size: 22px; letter-spacing: -.03em; }
.related-services b { color: var(--accent); }

/* Prices */
.table-wrap { margin-top: 52px; overflow-x: auto; border: 1px solid var(--line); background: var(--white); }
.price-table { width: 100%; min-width: 760px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.price-table caption { padding: 18px; color: var(--muted); font-size: 11px; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.price-table th, .price-table td { padding: 16px 18px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); text-align: right; }
.price-table th:first-child { text-align: left; }
.price-table thead th { background: var(--ink); color: var(--white); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.price-table tbody tr:hover { background: #e8edf8; }
.price-terms { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 32px; background: var(--line); border: 1px solid var(--line); }
.price-terms article { min-height: 180px; padding: 24px; background: var(--paper); }
.price-terms span { color: var(--blue); font-size: 28px; font-weight: 800; }
.price-terms p { margin-top: 16px; color: var(--muted); font-size: 13px; }
.download-link { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 20px; margin-top: 32px; padding: 18px; border: 1px solid var(--line); text-decoration: none; }
.download-link:hover { background: var(--white); }
.download-link span { display: grid; width: 54px; height: 54px; place-items: center; background: var(--blue); color: var(--white); font-size: 11px; font-weight: 800; }
.download-link b { color: var(--accent); font-size: 22px; }
.download-link--dark { border-color: var(--line-light); }
.download-link--dark:hover { background: var(--ink-2); }

/* Documents */
.document-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px 18px; }
.document-card { min-width: 0; }
.document-card a { display: block; border: 1px solid var(--line); background: var(--white); text-decoration: none; }
.document-card img { width: 100%; aspect-ratio: 480 / 679; object-fit: cover; object-position: top; }
.document-card a > span { display: grid; min-height: 104px; grid-template-columns: 1fr auto; gap: 7px 16px; padding: 16px; border-top: 1px solid var(--line); }
.document-card small { grid-column: 1 / -1; color: var(--muted); }
.document-card strong { line-height: 1.2; }
.document-card b { color: var(--accent); }
.requisites-grid { display: grid; grid-template-columns: 1fr .85fr; gap: 7vw; }
.requisites-grid dl { margin: 0; }
.requisites-grid dl > div { display: grid; grid-template-columns: 100px 1fr; gap: 25px; padding: 18px 0; border-bottom: 1px solid var(--line-light); }
.requisites-grid dt { color: #8e9aa3; font-size: 11px; text-transform: uppercase; }
.requisites-grid dd { margin: 0; font-size: 18px; overflow-wrap: anywhere; }
.legacy-brand { width: min(100%, 570px); height: auto; margin-top: 32px; border: 1px solid var(--line-light); }

/* Contacts and map */
.contact-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-bottom: 50px; background: var(--line); border: 1px solid var(--line); }
.contact-cards article { min-height: 190px; display: flex; flex-direction: column; align-items: flex-start; padding: 28px; background: var(--paper); }
.contact-cards a, .contact-cards strong { margin-top: auto; font-size: clamp(20px, 2.2vw, 28px); font-weight: 700; text-decoration: none; letter-spacing: -.03em; }
.contact-cards article a + a { margin-top: 5px; font-size: 18px; }
.contact-cards p { margin: 10px 0 0; color: var(--muted); font-size: 12px; }
.map-block { min-width: 0; overflow: hidden; background: #d8d5cd; }
.map-block iframe { display: block; width: 100%; height: 520px; border: 0; }
.map-block--location iframe { height: 350px; }
.map-details { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 18px 22px; background: var(--ink); color: var(--white); }
.map-details > div { display: grid; gap: 3px; }
.map-details strong { font-size: 17px; letter-spacing: -.025em; }
.map-details span { color: #9eabb3; font-size: 12px; }
.map-details a { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-align: right; text-decoration: none; text-transform: uppercase; }

/* Footer and dialogs */
.site-footer { padding: 72px 0 0; background: #0b1015; color: var(--white); }
.footer-grid { display: grid; grid-template-columns: 1.3fr .6fr .8fr; gap: 6vw; padding-bottom: 64px; }
.brand--footer .brand-copy small { color: #8e9aa3; }
.footer-brand p { max-width: 360px; margin-top: 22px; color: #8e9aa3; }
.footer-grid nav, .footer-contacts { display: grid; align-content: start; gap: 11px; }
.footer-grid nav a, .footer-contacts a { width: fit-content; color: #c7d0d5; text-decoration: none; }
.footer-contacts span { color: #8e9aa3; font-size: 13px; }
.footer-contacts { margin: 0; font-style: normal; }
.footer-contacts small { max-width: 290px; color: #70808a; font-size: 10px; letter-spacing: .04em; line-height: 1.45; }
.footer-route { color: var(--accent) !important; font-weight: 800; }
.footer-bottom { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid var(--line-light); color: #8e9aa3; font-size: 11px; }
.developer-credit { display: inline-flex; align-items: center; gap: 10px; color: var(--white); text-decoration: none; }
.developer-credit span:last-child { color: #8e9aa3; }
.document-dialog { width: min(92vw, 900px); max-height: 92vh; padding: 42px 16px 16px; border: 0; background: var(--ink); color: var(--white); }
.document-dialog::backdrop { background: rgba(0,0,0,.78); }
.document-dialog > button { position: fixed; top: 14px; right: 18px; width: 44px; height: 44px; border: 1px solid var(--line-light); background: var(--ink); color: var(--white); font-size: 28px; }
.document-dialog img { width: auto; max-height: calc(92vh - 105px); margin: 0 auto; }
.document-dialog > a { display: block; margin-top: 12px; text-align: center; }
.not-found { min-height: 620px; display: grid; align-items: center; background: var(--ink); color: var(--white); }
.not-found-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: end; }
.not-found strong { display: block; color: var(--accent); font-size: clamp(120px, 20vw, 280px); letter-spacing: -.09em; line-height: .72; }
.not-found h1 { font-size: clamp(44px, 6vw, 80px); letter-spacing: -.06em; line-height: .95; }
.not-found p { color: #aeb9c0; }
.legacy-page { min-height: 500px; display: grid; align-items: center; }
.legacy-page h1 { margin: 20px 0; font-size: clamp(48px, 7vw, 88px); letter-spacing: -.06em; }

@media (max-width: 1100px) {
  .header-main { grid-template-columns: 210px 1fr; }
  .header-contact { display: none; }
  .primary-nav > a, .nav-services > a { padding-inline: 9px; font-size: 12px; }
  .home-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
  .hero-visual > img { width: min(420px, 100%); }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .price-terms { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
  :root { --header-height: 70px; }
  .shell { width: min(calc(100% - 32px), var(--shell)); }
  .utility-inner { justify-content: space-between; gap: 12px; }
  .utility-inner span:first-child { display: none; }
  .header-main { min-height: var(--header-height); grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; }
  .primary-nav { grid-column: 1 / -1; display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 0; padding-bottom: 10px; }
  .primary-nav > a, .nav-services > a { min-height: 44px; padding-inline: 12px; }
  .js .primary-nav { display: none; }
  .js .menu-button { display: block; }
  .header-phone { display: inline-flex; justify-self: end; }
  .mega-menu { display: none; }
  .menu-backdrop { position: fixed; inset: 0; z-index: 70; display: block; background: rgba(5,8,11,.62); }
  .mobile-menu { position: fixed; inset: 0 0 0 auto; z-index: 80; display: flex; width: min(90vw, 430px); height: 100dvh; flex-direction: column; padding: 20px; overflow-y: auto; background: var(--ink); color: var(--white); box-shadow: -20px 0 60px rgba(0,0,0,.32); }
  .mobile-menu[hidden], .menu-backdrop[hidden] { display: none; }
  .mobile-menu-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid var(--line-light); }
  .mobile-menu-head button { width: 48px; height: 48px; border: 1px solid var(--line-light); background: transparent; color: var(--white); font-size: 28px; }
  .mobile-menu nav { display: grid; }
  .mobile-menu nav > a, .mobile-menu summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-light); font-size: 24px; font-weight: 700; letter-spacing: -.03em; text-decoration: none; }
  .mobile-menu summary { cursor: pointer; list-style: none; }
  .mobile-menu summary::after { content: '+'; color: var(--accent); }
  .mobile-menu details[open] summary::after { content: '−'; }
  .mobile-service-links { display: grid; margin: 0; padding: 10px 0; list-style: none; }
  .mobile-service-links a { display: grid; grid-template-columns: 35px 1fr; min-height: 48px; align-items: center; color: #b4bec4; font-size: 14px; text-decoration: none; }
  .mobile-service-links span { color: var(--accent); font-size: 10px; }
  .mobile-contacts { display: grid; gap: 8px; margin-top: auto; padding-top: 24px; }
  .mobile-contacts a { font-weight: 700; text-decoration: none; }
  .mobile-contacts span { color: #8e9aa3; font-size: 12px; }
  .home-hero-grid { min-height: auto; grid-template-areas: 'copy' 'order' 'visual'; grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 48px 30px; }
  .hero-copy { grid-area: copy; }
  .repair-order { grid-area: order; }
  .hero-visual { grid-area: visual; min-height: 300px; }
  .hero-visual > img { width: min(300px, 78vw); }
  .visual-label { top: 0; }
  .hero-ticket { bottom: 20px; }
  .repair-order { grid-template-columns: 1fr; gap: 18px; padding-top: 20px; }
  .repair-order-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .repair-order-list li { min-height: 84px; padding-inline: 12px; }
  .stat-rail { grid-template-columns: repeat(2, 1fr); }
  .section { padding-block: 82px; }
  .section-heading h2 { font-size: clamp(36px, 8.5vw, 62px); }
  .process-grid, .service-detail-grid, .visit-grid, .trust-grid, .location-strip, .contact-form, .page-hero-grid, .service-note-grid, .requisites-grid { grid-template-columns: 1fr; }
  .trust-grid { gap: 55px; }
  .document-preview { justify-self: start; }
  .estimator { grid-template-columns: 1fr; }
  .form-actions { grid-column: 1; }
  .page-hero-copy { margin-top: 20px; }
  .document-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-cards { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 580px) {
  .utility-inner { min-height: 38px; font-size: 9px; }
  .utility-inner a { display: none; }
  .brand-copy strong { font-size: 18px; }
  .brand-copy small { font-size: 8px; }
  .brand-mark { width: 40px; height: 40px; }
  .header-phone { gap: 4px; font-size: 12px; }
  .header-phone span { width: 20px; height: 20px; font-size: 11px; }
  .hero-visual { min-height: 270px; }
  .hero-visual > img { width: min(270px, 82vw); }
  .hero-ticket { width: 118px; min-height: 118px; }
  .hero-ticket strong { font-size: 46px; }
  .hero-copy h1 { font-size: clamp(42px, 13.2vw, 56px); letter-spacing: -.16em; }
  .hero-copy p { font-size: 16px; }
  .repair-order-list { grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--line-light); }
  .repair-order-list li { min-height: 92px; padding: 12px; border-top: 1px solid var(--line-light); }
  .home-service-register { grid-template-columns: 1fr; margin-top: 38px; }
  .home-service-register a { min-height: 78px; gap: 13px; padding: 15px; }
  .button-row { align-items: stretch; flex-direction: column; }
  .button-row .button { width: 100%; }
  .stat-rail > div { min-height: 98px; align-items: flex-start; flex-direction: column; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 285px; }
  .estimator-form, .estimator-result { padding: 24px; }
  .estimator-fields, .form-fields { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .split-heading { align-items: flex-start; flex-direction: column; }
  .location-coordinates { min-height: 280px; padding: 25px; }
  .contact-form { gap: 40px; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .page-hero { padding-block: 70px 62px; }
  .page-hero h1 { font-size: clamp(46px, 14vw, 72px); }
  .related-services > div, .price-terms, .document-grid { grid-template-columns: 1fr; }
  .document-card a { max-width: 420px; margin-inline: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; padding-block: 22px; }
  .developer-credit { flex-wrap: wrap; }
  .not-found-grid { grid-template-columns: 1fr; }
  .map-block iframe, .map-block--location iframe { height: 320px; }
  .map-details { align-items: flex-start; flex-direction: column; gap: 10px; padding: 16px; }
  .map-details a { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .site-header, .site-footer, .button, .contact-form, .document-dialog { display: none !important; }
  body { background: #fff; color: #000; }
  .section, .page-hero { padding: 24px 0; }
  .table-wrap { overflow: visible; }
  .price-table { min-width: 0; }
}
