/* ==========================================================================
   OMS shared components — header, navigation, footer, mobile contact bar,
   icons and buttons. Loaded on every page, after page styles.
   Colours: OMS Brand Kit 2026 only.
   ========================================================================== */
:root {
  --oms-matte: #080808;
  --oms-offblack: #1a1a1a;
  --oms-rust: #6b4226;
  --oms-deep: #2e1508;
  --oms-darkrust: #4a2a16;
  --oms-light: #e4e4e4;
  --oms-silver: #c0c0c0;
  --oms-charcoal: #383838;
  --oms-white: #ffffff;
  --oms-cond: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --oms-body: 'Barlow', Arial, sans-serif;
  --oms-header-h: 72px;
  --oms-bar-h: 60px;
}

/* ---------- Icons ---------- */
.oms-i { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; vertical-align: -0.2em; }
.oms-i--inline { margin-right: 0.45em; }
.oms-ic { display: inline-flex; align-items: center; justify-content: center; color: var(--oms-rust); }
.oms-ic .oms-i { width: 1.6rem; height: 1.6rem; stroke-width: 1.5; }

/* ---------- Skip link ---------- */
.oms-skip { position: absolute; left: -999px; top: 0; z-index: 300; background: var(--oms-white); color: var(--oms-matte); padding: 0.6rem 1rem; font-family: var(--oms-cond); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; }
.oms-skip:focus { left: 1rem; top: 1rem; }
#main { scroll-margin-top: var(--oms-header-h); outline: none; }

/* ---------- Buttons ---------- */
.oms-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; min-height: 44px; padding: 0.7rem 1.4rem; border: 1px solid transparent; border-radius: 0; font-family: var(--oms-cond); font-weight: 600; font-size: 0.85rem; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; line-height: 1; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.oms-btn--primary { background: var(--oms-white); color: var(--oms-matte); border-color: var(--oms-white); }
.oms-btn--primary:hover, .oms-btn--primary:focus-visible { background: var(--oms-rust); border-color: var(--oms-rust); color: var(--oms-white); }
.oms-btn--outline { background: transparent; color: var(--oms-light); border-color: var(--oms-light); }
.oms-btn--outline:hover, .oms-btn--outline:focus-visible { background: var(--oms-rust); border-color: var(--oms-rust); color: var(--oms-white); }
:focus-visible { outline: 2px solid var(--oms-light); outline-offset: 2px; }

/* ---------- Header ---------- */
.oms-header, .oms-header * { box-sizing: border-box; }
.oms-header { position: fixed; top: 0; left: 0; right: 0; z-index: 200; height: var(--oms-header-h); background: rgba(8, 8, 8, 0.97); border-bottom: 3px solid var(--oms-rust); font-family: var(--oms-body); }
.oms-header__inner { max-width: 1280px; height: 100%; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; gap: 1.5rem; }
.oms-logo { display: flex; align-items: center; flex: none; padding: 8px 0; }
.oms-logo img { height: 40px; width: auto; display: block; max-width: none; }
.oms-nav { margin-left: auto; display: flex; align-items: center; }
.oms-menu { list-style: none; display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; }
.oms-menu__item { position: relative; }
.oms-menu__btn, .oms-menu__link { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 44px; padding: 0 0.8rem; background: none; border: 0; color: var(--oms-light); font-family: var(--oms-cond); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; cursor: pointer; white-space: nowrap; }
.oms-menu__btn:hover, .oms-menu__link:hover, .oms-menu__item.is-open > .oms-menu__btn { color: var(--oms-white); box-shadow: inset 0 -2px 0 var(--oms-rust); }
.oms-menu__link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--oms-rust); }
.oms-i--chev { width: 0.9em; height: 0.9em; transition: transform .2s; }
.oms-menu__item.is-open .oms-i--chev { transform: rotate(180deg); }
.oms-sub { position: absolute; top: calc(100% + 14px); left: 0; min-width: 260px; padding: 0.75rem; background: var(--oms-matte); border: 1px solid var(--oms-charcoal); border-top: 2px solid var(--oms-rust); display: none; }
.oms-sub a { display: block; padding: 0.55rem 0.7rem; color: var(--oms-silver); font-family: var(--oms-body); font-size: 0.95rem; font-weight: 400; text-decoration: none; letter-spacing: 0; text-transform: none; line-height: 1.3; }
.oms-sub a:hover, .oms-sub a:focus-visible { color: var(--oms-white); background: var(--oms-offblack); }
.oms-sub a[aria-current="page"] { color: var(--oms-white); box-shadow: inset 2px 0 0 var(--oms-rust); }
.oms-sub--mega { left: 50%; transform: translateX(-38%); width: min(860px, calc(100vw - 48px)); display: none; grid-template-columns: repeat(3, 1fr); gap: 0.5rem 1.25rem; padding: 1.25rem; }
.oms-sub__title { margin: 0 0 0.25rem; padding: 0 0.7rem; font-family: var(--oms-cond); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oms-light); border-left: 2px solid var(--oms-rust); }
.oms-sub__group { padding: 0.4rem 0; }
.oms-menu__item.is-open > .oms-sub { display: block; }
.oms-menu__item.is-open > .oms-sub--mega { display: grid; }
.oms-nav__contact { display: none; }
.oms-header__phone { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--oms-light); font-family: var(--oms-cond); font-weight: 700; font-size: 1rem; letter-spacing: 0.08em; text-decoration: none; white-space: nowrap; }
.oms-header__phone .oms-i { color: var(--oms-rust); }
.oms-header__phone:hover { color: var(--oms-white); }
.oms-header__cta { flex: none; }
.oms-burger { display: none; margin-left: auto; width: 48px; height: 48px; align-items: center; justify-content: center; background: none; border: 1px solid var(--oms-charcoal); color: var(--oms-light); cursor: pointer; }
.oms-burger .oms-i { width: 24px; height: 24px; }
.oms-i--close { display: none; }

@media (min-width: 1081px) {
  /* hover opens menus on desktop pointer devices; click/keyboard handled by JS */
  @media (hover: hover) {
    .oms-menu__item.has-sub:hover > .oms-sub { display: block; }
    .oms-menu__item.has-sub:hover > .oms-sub--mega { display: grid; }
    .oms-menu__item.has-sub:hover > .oms-sub::before { content: ''; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
  }
}

@media (max-width: 1080px) {
  :root { --oms-header-h: 64px; }
  .oms-header__inner { padding: 0 16px; gap: 0.75rem; }
  .oms-logo img { height: 34px; }
  .oms-header__cta { display: none; }
  .oms-header__phone { margin-left: auto; }
  .oms-burger { display: inline-flex; margin-left: 0; }
  .oms-nav { position: fixed; top: var(--oms-header-h); left: 0; right: 0; bottom: 0; margin: 0; display: none; flex-direction: column; align-items: stretch; overflow-y: auto; background: var(--oms-matte); border-top: 1px solid var(--oms-charcoal); padding: 0.5rem 0 calc(var(--oms-bar-h) + 1.5rem); }
  .oms-menu-open .oms-nav { display: flex; }
  .oms-menu-open { overflow: hidden; }
  .oms-menu-open .oms-i--menu { display: none; }
  .oms-menu-open .oms-i--close { display: block; }
  .oms-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .oms-menu__item { border-bottom: 1px solid var(--oms-charcoal); }
  .oms-menu__btn, .oms-menu__link { width: 100%; justify-content: space-between; min-height: 56px; padding: 0 20px; font-size: 1.05rem; }
  .oms-menu__btn:hover, .oms-menu__link:hover, .oms-menu__item.is-open > .oms-menu__btn { box-shadow: none; }
  .oms-sub, .oms-sub--mega { position: static; transform: none; width: auto; min-width: 0; border: 0; padding: 0 20px 1rem; background: transparent; grid-template-columns: 1fr; }
  .oms-sub__group { padding: 0.5rem 0 0.25rem; }
  .oms-sub a { padding: 0.6rem 0.7rem; font-size: 1rem; }
  .oms-nav__contact { display: grid; gap: 0.75rem; padding: 1.5rem 20px 0; }
  .oms-nav__contact .oms-btn { width: 100%; min-height: 52px; text-transform: none; letter-spacing: 0.04em; font-size: 1rem; }
}
@media (max-width: 420px) {
  .oms-header__phone span { display: none; }
  .oms-header__phone { width: 48px; height: 48px; justify-content: center; border: 1px solid var(--oms-charcoal); }
  .oms-header__phone .oms-i { width: 22px; height: 22px; }
}

/* ---------- Footer ---------- */
.oms-footer { background: var(--oms-matte); border-top: 3px solid var(--oms-rust); color: var(--oms-silver); font-family: var(--oms-body); font-size: 0.95rem; display: block; padding: 0; }
.oms-footer__inner { max-width: 1280px; margin: 0 auto; padding: 3.5rem 24px 2.5rem; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; }
.oms-footer__brand img { height: 40px; width: auto; margin-bottom: 1.1rem; display: block; }
.oms-footer__brand p { margin: 0 0 1.1rem; max-width: 34ch; line-height: 1.6; color: var(--oms-silver); }
.oms-footer__contact { display: flex; align-items: center; gap: 0.55rem; min-height: 40px; color: var(--oms-light); text-decoration: none; font-weight: 500; }
.oms-footer__contact .oms-i { color: var(--oms-rust); }
.oms-footer__contact:hover { color: var(--oms-white); }
.oms-footer__title { margin: 0 0 0.9rem; font-family: var(--oms-cond); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oms-light); }
.oms-footer__col a { display: block; padding: 0.3rem 0; color: var(--oms-silver); text-decoration: none; }
.oms-footer__col a:hover { color: var(--oms-white); }
.oms-footer__brands { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.oms-footer__brands a { display: inline-block; padding: 0.35rem 0.7rem; border: 1px solid var(--oms-charcoal); font-family: var(--oms-cond); font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; }
.oms-footer__brands a:hover { border-color: var(--oms-rust); }
.oms-footer__base { max-width: 1280px; margin: 0 auto; padding: 1.25rem 24px; border-top: 1px solid var(--oms-charcoal); display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: 0.85rem; }
.oms-footer__base a { color: var(--oms-silver); }
.oms-footer__base a:hover { color: var(--oms-white); }
.oms-footer__links { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; }
@media (max-width: 900px) {
  .oms-footer__inner { grid-template-columns: 1fr 1fr; padding: 2.5rem 16px 2rem; gap: 2rem; }
  .oms-footer__brand { grid-column: 1 / -1; }
  .oms-footer__base { padding: 1.25rem 16px; }
}
@media (max-width: 520px) {
  .oms-footer__inner { grid-template-columns: 1fr; }
}

/* ---------- Mobile contact bar ---------- */
.oms-mobilebar { display: none; }
@media (max-width: 900px) {
  body { padding-bottom: calc(var(--oms-bar-h) + env(safe-area-inset-bottom, 0px)); }
  .oms-mobilebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 190; display: grid; grid-template-columns: 1fr 1fr; height: calc(var(--oms-bar-h) + env(safe-area-inset-bottom, 0px)); padding-bottom: env(safe-area-inset-bottom, 0px); background: var(--oms-offblack); border-top: 2px solid var(--oms-rust); }
  .oms-mobilebar a { display: flex; align-items: center; justify-content: center; gap: 0.6rem; color: var(--oms-light); text-decoration: none; font-family: var(--oms-cond); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.14em; text-transform: uppercase; }
  .oms-mobilebar a + a { border-left: 1px solid var(--oms-charcoal); }
  .oms-mobilebar .oms-i { width: 20px; height: 20px; }
  .oms-menu-open .oms-mobilebar { z-index: 210; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}

/* ---------- Primary actions in rust (all pages) ---------- */
.oms-btn--primary, .btn-primary, .service-link, .cta-btn-dark { background: var(--oms-rust) !important; border-color: var(--oms-rust) !important; color: var(--oms-white) !important; }
.oms-btn--primary:hover, .oms-btn--primary:focus-visible, .btn-primary:hover, .btn-primary:focus-visible,
.service-link:hover, .service-link:focus-visible, .cta-btn-dark:hover { background: var(--oms-darkrust) !important; border-color: var(--oms-darkrust) !important; color: var(--oms-white) !important; }
/* on rust bands the primary action goes matte black */
.cta-band .btn-primary, #local-cta .btn-primary { background: var(--oms-matte) !important; border-color: var(--oms-matte) !important; }
.cta-band .btn-primary:hover, #local-cta .btn-primary:hover { background: var(--oms-darkrust) !important; border-color: var(--oms-darkrust) !important; }
/* the white services strip and white "Get a Quote" tile become quiet */
.services-strip { background: var(--oms-offblack) !important; border-top: 1px solid var(--oms-charcoal); border-bottom: 1px solid var(--oms-charcoal); }
.services-strip .services-ticker span { color: var(--oms-light) !important; }
.services-strip .services-ticker span.dot::before { background: var(--oms-rust) !important; }
a.home-quote-tile { background: var(--oms-rust) !important; }
a.home-quote-tile div { color: var(--oms-white) !important; opacity: 1 !important; }
a.home-quote-tile:hover { background: var(--oms-darkrust) !important; }
@media (max-width: 900px) {
  .oms-mobilebar a:first-child { background: var(--oms-rust); color: var(--oms-white); }
}
@media (max-width: 900px) { .oms-hide-m { display: none !important; } }

/* ---------- Hero enquiry form (all pages, desktop only) ---------- */
.home-hero-form { background: rgba(8,8,8,0.92); border: 1px solid var(--oms-charcoal); border-top: 3px solid var(--oms-rust); padding: 1.75rem; font-family: var(--oms-body); }
.home-hero-form .hhf-title { font-family: var(--oms-cond); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; color: var(--oms-light); margin: 0 0 0.25rem; line-height: 1.1; letter-spacing: 0; }
.home-hero-form .hhf-sub { font-size: 0.95rem; color: var(--oms-silver); margin: 0 0 1.1rem; opacity: 1; max-width: none; line-height: 1.5; }
.home-hero-form .hhf-sub a { color: var(--oms-light); text-decoration: underline; }
.home-hero-form .hhf-field { display: block; margin-bottom: 0.85rem; }
.home-hero-form .hhf-field span { display: block; font-family: var(--oms-cond); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oms-light); margin-bottom: 0.3rem; }
.hhf-field input, .hhf-field textarea { width: 100%; background: var(--oms-offblack); border: 1px solid var(--oms-charcoal); color: var(--oms-light); font: 400 1rem var(--oms-body); padding: 0.7rem 0.8rem; border-radius: 0; min-height: 44px; box-sizing: border-box; }
.hhf-field textarea { resize: vertical; min-height: 84px; }
.hhf-field input:focus, .hhf-field textarea:focus { outline: 2px solid var(--oms-light); outline-offset: 0; border-color: var(--oms-light); }
.hhf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.75rem; }
.hhf-submit { width: 100%; min-height: 50px; font-size: 0.95rem; }
.hhf-hp { position: absolute; left: -9999px; height: 1px; overflow: hidden; }
.home-hero-form .hhf-error { color: var(--oms-light); border-left: 3px solid var(--oms-rust); padding: 0.5rem 0.75rem; background: var(--oms-offblack); font-size: 0.9rem; }
.hhf-success[hidden], .hhf-error[hidden] { display: none; }
.home-hero-form.is-sent { display: flex; flex-direction: column; justify-content: center; }
.home-hero-form.is-sent .hhf-success .hhf-title { font-size: 1.9rem; }
.svc-hero-grid { display: block; }
.svc-hero-form { display: none; }
@media (min-width: 1101px) {
  .hero .wrap.svc-hero-grid { max-width: 1280px; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 3rem; align-items: center; }
  .svc-hero-grid--legacy { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 3rem; align-items: center; max-width: 1280px; }
  .svc-hero-grid--legacy .page-hero-inner { max-width: 720px; }
  .svc-hero-form { display: block; }
  .svc-hero-form.is-sent { display: flex; }
}

/* ---------- Recent work photo strip ---------- */
.oms-gallery-sec { background: var(--oms-offblack, #1a1a1a); padding: 5rem 2rem; }
.oms-gallery-sec .oms-gallery-inner { max-width: 1200px; margin: 0 auto; }
.oms-gallery-sec .oms-g-eyebrow { display: block; font-family: var(--oms-cond); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oms-silver); margin-bottom: 0.6rem; }
.oms-gallery-sec h2 { font-family: var(--oms-cond); font-weight: 700; text-transform: uppercase; color: var(--oms-light); font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.05; margin: 0 0 2rem; }
.oms-gallery-sec h2 .accent-word { color: var(--oms-silver); }
.oms-gallery { display: grid; gap: 1rem; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.oms-gallery figure { margin: 0; background: var(--oms-matte); border-top: 3px solid var(--oms-rust); }
.oms-gallery img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; height: auto; }
.oms-gallery--wide img { aspect-ratio: 4 / 3; }
.oms-gallery figcaption { font-family: var(--oms-body); font-size: 0.9rem; color: var(--oms-silver); padding: 0.75rem 0.9rem 0.9rem; line-height: 1.45; }
@media (max-width: 760px) {
  .oms-gallery-sec { padding: 3.5rem 16px; }
  .oms-gallery { grid-template-columns: 1fr; }
  .oms-gallery img { aspect-ratio: 4 / 3; }
}

/* steps grid: four steps sit in one row on desktop */
@media (min-width: 1001px) { .steps:has(> .step:nth-child(4)) { grid-template-columns: repeat(4, 1fr); } }
.oms-founder-note { background: var(--oms-offblack, #1a1a1a); border-top: 1px solid var(--oms-charcoal); border-bottom: 1px solid var(--oms-charcoal); padding: 1.25rem 2rem; }
.oms-founder-note p { max-width: 1200px; margin: 0 auto; color: var(--oms-silver); font-size: 0.95rem; }
@media (max-width: 760px) { .oms-founder-note { padding: 1rem 16px; } }
.oms-careers-band { background: var(--oms-matte, #141414); border-top: 1px solid var(--oms-charcoal); padding: 1.5rem 2rem; }
.oms-careers-band p { margin: 0 auto; max-width: 1200px; color: var(--oms-silver); }
.oms-careers-band a { color: var(--oms-light); border-bottom: 2px solid var(--oms-rust); text-decoration: none; }
@media (max-width: 760px) { .oms-careers-band { padding: 1.25rem 16px; } }

/* ---------- Careers form extras ---------- */
.hhf-field select { width: 100%; background: var(--oms-offblack); border: 1px solid var(--oms-charcoal); color: var(--oms-light); font: 400 1rem var(--oms-body); padding: 0.7rem 0.8rem; border-radius: 0; min-height: 44px; box-sizing: border-box; }
.hhf-field select:focus { outline: 2px solid var(--oms-light); outline-offset: 0; }
.hhf-field input[type="file"] { padding: 0.55rem 0.6rem; }
.oms-careers-form .hhf-note { font-size: 0.85rem; color: var(--oms-silver); margin: 0 0 1rem; }
.oms-careers-form .hhf-note a { color: var(--oms-light); }

/* ---------- Contact page ---------- */
.oms-contact-split { align-items: start; }
.oms-contact-cards { display: grid; gap: 1rem; margin: 0 0 2rem; }
.oms-contact-card { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; align-items: center; background: var(--oms-offblack); border-left: 3px solid var(--oms-rust); padding: 1.1rem 1.25rem; text-decoration: none; }
.oms-contact-card .oms-i { grid-row: span 3; width: 1.6rem; height: 1.6rem; color: var(--oms-rust); }
.oms-cc-label { font-family: var(--oms-cond); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--oms-silver); }
.oms-cc-value { font-family: var(--oms-cond); font-weight: 700; font-size: 1.5rem; color: var(--oms-light); overflow-wrap: anywhere; }
.oms-cc-note { font-size: 0.9rem; color: var(--oms-silver); }
.oms-contact-card:hover .oms-cc-value { color: var(--oms-white); }
.oms-cc-areas { columns: 2; }
.oms-contact-formwrap .home-hero-form { display: block; }
.oms-contact-formwrap .home-hero-form.is-sent { display: flex; }

/* ---------- Projects ---------- */
.oms-proj-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.oms-proj { background: var(--oms-offblack); border-top: 3px solid var(--oms-rust); display: flex; flex-direction: column; }
.oms-proj img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.oms-proj__body { padding: 1rem 1.1rem 1.25rem; }
.oms-proj__cat { font-family: var(--oms-cond); font-weight: 600; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--oms-silver); }
.oms-proj h3 { margin: 0.3rem 0 0.4rem; font-size: 1.3rem; }
.oms-proj p { margin: 0; font-size: 0.95rem; color: var(--oms-silver); line-height: 1.55; }
@media (max-width: 1000px) { .oms-proj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .oms-proj-grid { grid-template-columns: 1fr; } }

/* ---------- Google reviews carousel ---------- */
.oms-reviews { background: var(--oms-offblack); padding: 5rem 2rem; border-top: 1px solid var(--oms-charcoal); }
.oms-reviews__inner { max-width: 1200px; margin: 0 auto; }
.oms-reviews__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; margin-bottom: 1.75rem; }
.oms-reviews h2 { font-family: var(--oms-cond); font-weight: 700; text-transform: uppercase; color: var(--oms-light); font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.05; margin: 0 0 0.5rem; }
.oms-reviews h2 .accent-word { color: var(--oms-silver); }
.oms-reviews .oms-g-eyebrow { display: block; font-family: var(--oms-cond); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oms-silver); margin-bottom: 0.6rem; }
.oms-reviews__score { margin: 0; color: var(--oms-silver); font-size: 0.95rem; display: flex; align-items: center; gap: 0.5rem; }
.oms-rv__stars { display: inline-flex; gap: 2px; color: #ffffff; }
.oms-rv__stars svg { width: 16px; height: 16px; fill: currentColor; }
.oms-reviews__nav { display: flex; gap: 0.5rem; flex-shrink: 0; }
.oms-rv-btn { width: 46px; height: 46px; border: 1px solid var(--oms-charcoal); background: var(--oms-matte); color: var(--oms-light); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.oms-rv-btn:hover, .oms-rv-btn:focus-visible { background: var(--oms-rust); border-color: var(--oms-rust); color: #ffffff; }
.oms-reviews__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2.5rem) / 3); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 0.25rem; }
.oms-reviews__track::-webkit-scrollbar { display: none; }
.oms-rv { margin: 0; scroll-snap-align: start; background: var(--oms-matte); border-top: 3px solid var(--oms-rust); padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
.oms-rv blockquote { margin: 0; flex: 1; }
.oms-rv blockquote p { margin: 0; color: var(--oms-silver); font-size: 0.95rem; line-height: 1.6; }
.oms-rv figcaption { display: flex; flex-direction: column; gap: 0.15rem; }
.oms-rv__name { font-family: var(--oms-cond); font-weight: 700; font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--oms-light); }
.oms-rv__src { font-size: 0.8rem; color: var(--oms-silver); }
.oms-reviews__all { display: inline-block; margin-top: 1.5rem; color: var(--oms-light); font-family: var(--oms-cond); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.85rem; border-bottom: 2px solid var(--oms-rust); padding-bottom: 2px; text-decoration: none; }
@media (max-width: 1000px) { .oms-reviews__track { grid-auto-columns: calc((100% - 1.25rem) / 2); } }
@media (max-width: 640px) {
  .oms-reviews { padding: 3.5rem 16px; }
  .oms-reviews__track { grid-auto-columns: 86%; }
  .oms-reviews__nav { display: none; }
}

.oms-hero-rating { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 1.1rem; color: var(--oms-light, #f2f2f2); text-decoration: none; font-size: 0.95rem; }
.oms-hero-rating .oms-rv__stars { color: #f5b301; }
.oms-hero-rating strong { font-weight: 700; }
.oms-hero-rating:hover span:last-child { text-decoration: underline; }

/* ---------- Emergency breakdown band ---------- */
.oms-emerg { background: var(--oms-matte); border-top: 3px solid var(--oms-rust); border-bottom: 1px solid var(--oms-charcoal); padding: 3rem 2rem; }
.oms-emerg__inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; }
.oms-emerg__eyebrow { display: block; font-family: var(--oms-cond); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--oms-silver); margin-bottom: 0.5rem; }
.oms-emerg h2 { font-family: var(--oms-cond); font-weight: 700; text-transform: uppercase; color: var(--oms-light); font-size: clamp(1.6rem, 3.5vw, 2.3rem); line-height: 1.05; margin: 0 0 0.75rem; }
.oms-emerg h2 .accent-word { color: var(--oms-silver); }
.oms-emerg p { margin: 0; color: var(--oms-silver); max-width: 62ch; line-height: 1.6; }
.oms-emerg__btn { white-space: nowrap; min-height: 52px; }
@media (max-width: 760px) {
  .oms-emerg { padding: 2.5rem 16px; }
  .oms-emerg__inner { grid-template-columns: 1fr; gap: 1.25rem; }
  .oms-emerg__btn { display: none; }
}

/* ---------- Accessibility (WCAG 2.2 AA) ---------- */
.step .num, .service-num { color: #777777 !important; }
.service-card:hover .service-num { color: #8c8c8c !important; }
.home-local-cta__grid [data-a11y-muted] { color: rgba(255,255,255,0.88) !important; }
@media (max-width: 760px) {
  .hero::before { background: rgba(8,8,8,0.8) !important; }
  .page-hero > div:first-child > div { background: rgba(8,8,8,0.85) !important; }
}
/* reflow at 320px (WCAG 1.4.10) */
@media (max-width: 400px) {
  .why-grid { grid-template-columns: 1fr !important; }
  .trust-row, [data-a11y-2col] { grid-template-columns: 1fr !important; }
}
.hero .crumbs, .hero .eyebrow, .page-hero .page-tag { text-shadow: 0 1px 3px rgba(0,0,0,0.9); }
.hhf-note a, .prose p a, .faq a, .oms-careers-band a { text-decoration: underline; text-underline-offset: 2px; }
