.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-147 .elementor-element.elementor-element-3eec15de .elementor-button-content-wrapper{flex-direction:row;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-147 .elementor-element.elementor-element-75b74ac0 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-75b74ac0 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-147 .elementor-element.elementor-element-75b74ac0{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-147 .elementor-element.elementor-element-75b74ac0 .elementor-icon-list-text{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-6b9c6455{text-align:center;}.elementor-147 .elementor-element.elementor-element-483aa482{text-align:center;}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title, .elementor-widget-icon-box .elementor-icon-box-title a{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-147 .elementor-element.elementor-element-49671202 .elementor-icon-box-wrapper{gap:15px;}.elementor-147 .elementor-element.elementor-element-504bf0e1 .elementor-icon-box-wrapper{gap:15px;}.elementor-147 .elementor-element.elementor-element-6a161cda .elementor-icon-box-wrapper{gap:15px;}.elementor-147 .elementor-element.elementor-element-37532009 .elementor-icon-box-wrapper{gap:15px;}.elementor-147 .elementor-element.elementor-element-48baab6c .elementor-icon-box-wrapper{gap:15px;}.elementor-147 .elementor-element.elementor-element-def9278 .elementor-icon-box-wrapper{gap:15px;}.elementor-147 .elementor-element.elementor-element-34ba822c{text-align:center;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-147 .elementor-element.elementor-element-76cb2d30 .elementor-icon-box-wrapper{align-items:start;gap:15px;}.elementor-147 .elementor-element.elementor-element-54774e1b .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-54774e1b .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-147 .elementor-element.elementor-element-54774e1b{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-147 .elementor-element.elementor-element-54774e1b .elementor-icon-list-text{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-2dc81233 .elementor-icon-box-wrapper{align-items:start;gap:15px;}.elementor-147 .elementor-element.elementor-element-3fb2a79b .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-3fb2a79b .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-147 .elementor-element.elementor-element-3fb2a79b{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-147 .elementor-element.elementor-element-3fb2a79b .elementor-icon-list-text{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-419089c3 .elementor-icon-box-wrapper{align-items:start;gap:15px;}.elementor-147 .elementor-element.elementor-element-2a0445ec .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-2a0445ec .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-147 .elementor-element.elementor-element-2a0445ec{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-147 .elementor-element.elementor-element-2a0445ec .elementor-icon-list-text{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-5ec17ec1 .elementor-icon-box-wrapper{align-items:start;gap:15px;}.elementor-147 .elementor-element.elementor-element-5709f280 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-5709f280 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-147 .elementor-element.elementor-element-5709f280{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-147 .elementor-element.elementor-element-5709f280 .elementor-icon-list-text{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-65c50bb6 .elementor-icon-box-wrapper{align-items:start;gap:15px;}.elementor-147 .elementor-element.elementor-element-3f99cee2 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-3f99cee2 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-147 .elementor-element.elementor-element-3f99cee2{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-147 .elementor-element.elementor-element-3f99cee2 .elementor-icon-list-text{transition:color 0.3s;}.elementor-147 .elementor-element.elementor-element-b39b2af{text-align:center;}.elementor-147 .elementor-element.elementor-element-1477b5d1{text-align:center;}.elementor-147 .elementor-element.elementor-element-4244f19d{text-align:center;}.elementor-147 .elementor-element.elementor-element-5e59d54{text-align:center;}.elementor-147 .elementor-element.elementor-element-6295bca1{text-align:center;}.elementor-widget-accordion .elementor-accordion-icon, .elementor-widget-accordion .elementor-accordion-title{color:var( --e-global-color-primary );}.elementor-widget-accordion .elementor-accordion-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-accordion .elementor-active .elementor-accordion-icon, .elementor-widget-accordion .elementor-active .elementor-accordion-title{color:var( --e-global-color-accent );}.elementor-widget-accordion .elementor-active .elementor-accordion-icon svg{fill:var( --e-global-color-accent );}.elementor-widget-accordion .elementor-accordion-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-accordion .elementor-tab-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-147 .elementor-element.elementor-element-6f241a7a{text-align:center;}.elementor-widget-form .elementor-field-group > label, .elementor-widget-form .elementor-field-subgroup label{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group > label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-type-html{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-group .elementor-field{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form .e-form__buttons__wrapper__button-next{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-button[type="submit"]{background-color:var( --e-global-color-accent );}.elementor-widget-form .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-message{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form{--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-text );--e-form-steps-indicator-active-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-background-color:var( --e-global-color-text );--e-form-steps-indicator-progress-meter-color:var( --e-global-color-text );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-field-group{padding-right:calc( 10px/2 );padding-left:calc( 10px/2 );margin-bottom:10px;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-form-fields-wrapper{margin-left:calc( -10px/2 );margin-right:calc( -10px/2 );margin-bottom:-10px;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-field-group.recaptcha_v3-bottomleft, .elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-field-type-html{padding-bottom:0px;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-button[type="submit"]{color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89 .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}.elementor-147 .elementor-element.elementor-element-14f82a89{--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:30px;--e-form-steps-indicator-inactive-secondary-color:#ffffff;--e-form-steps-indicator-active-secondary-color:#ffffff;--e-form-steps-indicator-completed-secondary-color:#ffffff;--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}/* Start custom CSS *//* ==========================================================================
   OLDHAM PLUMBER — Additional CSS (paste into Elementor > Site Settings >
   Custom CSS, or Appearance > Customize > Additional CSS)
   Pairs with: oldham-plumber-elementor.json
   ========================================================================== */

/* ---------- 1. Design tokens ---------- */
:root {
  --op-navy: #0e1c33;
  --op-navy-2: #132540;
  --op-teal: #14b8a6;
  --op-orange: #f2660c;
  --op-orange-hover: #d4560a;

  --op-background: #ffffff;
  --op-surface: #f4f7fa;
  --op-text: #10131a;
  --op-text-secondary: #5b6472;
  --op-text-muted: #8891a0;
  --op-border: #e4e8ee;
  --op-white: #ffffff;

  --op-radius-sm: 8px;
  --op-radius-md: 12px;
  --op-radius-lg: 20px;
  --op-container: 1200px;
}

/* ---------- 1b. GLOBAL RESET ----------
   Neutralises the theme's dark-mode defaults AND its narrow content width.
   Dark sections are switched back to navy further down via #id + !important. */

/* Kill dark backgrounds on the theme's own page wrappers (this is what was
   showing through as black bands behind sections) */
html, body,
#page, #content, #main, #primary, #wrapper, .site, .site-content,
.content-area, .entry-content, .page-content, main, article,
.elementor-page, .elementor-default, .elementor-location-single {
  background-color: var(--op-white) !important;
  color: var(--op-text) !important;
}

/* All Elementor structural wrappers transparent by default */
.elementor, .elementor-section, .elementor-container,
.elementor-widget-wrap, .elementor-column, .elementor-widget,
.elementor-inner-section, .elementor-inner-section .elementor-container,
.elementor-element, .elementor-top-section, .e-con, .e-con-inner {
  background-color: transparent !important;
}

/* Top-level sections default to white, except the intentionally dark ones */
.elementor-section:not(.elementor-inner-section):not([id]),
.elementor-section:not(.elementor-inner-section)[id]:not(#op-emergency-bar-section):not(#op-hero):not(#op-coverage-bar):not(#op-stats-band):not(#op-final-cta):not(#op-footer):not(#op-mobile-sticky-bar-section) {
  background-color: var(--op-white) !important;
}

/* ---------- WIDTH FIX ----------
   The theme was constraining Elementor to a narrow centre column. Let full
   sections span the viewport and cap only the inner container. */
#page, #content, #main, #primary, .site-content, .content-area,
.entry-content, .page-content, main, article {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}
.elementor-section:not(.elementor-inner-section) {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.elementor-section:not(.elementor-inner-section) > .elementor-container {
  max-width: var(--op-container) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* Full-bleed bars keep their own inner max-width handling */
#op-emergency-bar-section > .elementor-container,
#op-coverage-bar > .elementor-container,
#op-stats-band > .elementor-container,
#op-footer > .elementor-container,
#op-mobile-sticky-bar-section > .elementor-container {
  max-width: none !important;
}

/* Text colour defaults */
.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-icon-box-title,
.elementor-icon-box-description,
.elementor-tab-title,
.elementor-tab-content,
.elementor-field-group label,
.elementor-accordion-item {
  color: var(--op-text) !important;
}
h1, h2, h3, h4, h5, h6, p { color: var(--op-text); }

/* Links inside the dark bands must never inherit the theme's dark link colour */
#op-emergency-bar-section a, #op-hero a, #op-coverage-bar a,
#op-stats-band a, #op-final-cta a, #op-footer a {
  color: var(--op-white);
}

body { color: var(--op-text); }

/* ---------- Anchor-link navigation ---------- */
/* Smooth-scroll to each section, and offset the landing point so the
   sticky header + emergency bar don't cover the section's heading. */
html { scroll-behavior: smooth; }
#op-services, #op-services2-heading, #op-areas-heading,
#op-how-it-works-heading, #op-faq, #op-callback-form {
  scroll-margin-top: 120px; /* header (~76px) + emergency bar (~40px) */
}
@media (max-width: 767px) {
  #op-services, #op-services2-heading, #op-areas-heading,
  #op-how-it-works-heading, #op-faq, #op-callback-form {
    scroll-margin-top: 100px;
  }
}
.op-teal-heading {
  color: var(--op-teal); font-size: 13px; font-weight: 800;
  letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px;
}

/* ---------- 2. Emergency status bar ---------- */
#op-emergency-bar-section { background: var(--op-navy) !important; padding: 0 !important; }
.op-emergency-bar {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 36px; padding: 8px 16px; color: var(--op-white); font-size: 13px; font-weight: 600;
}
.op-emergency-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--op-orange);
  animation: op-pulse 1.6s ease-in-out infinite; flex-shrink: 0;
}
@keyframes op-pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.4;transform:scale(.8);} }
.op-emergency-phone { color: var(--op-white); text-decoration: underline; font-weight: 700; }
@media (max-width: 767px) { .op-emergency-bar { flex-direction: column; gap: 2px; padding: 8px 12px; } }

/* ---------- 3. Header ---------- */
#op-header { background: var(--op-white) !important; border-bottom: 1px solid var(--op-border); position: sticky; top: 0; z-index: 999; }
.op-header-inner {
  max-width: var(--op-container); margin: 0 auto; display: flex; align-items: center;
  justify-content: space-between; min-height: 72px; padding: 8px 32px; flex-wrap: wrap;
}
.op-logo { display: flex; flex-direction: column; line-height: 1.05; font-weight: 800; }
.op-logo-top { font-size: 14px; letter-spacing: 0.06em; color: var(--op-text) !important; }
.op-logo-bottom { font-size: 19px; color: var(--op-orange) !important; }
.op-nav { display: flex; gap: 22px; }
.op-nav a, .op-nav a:link, .op-nav a:visited {
  color: var(--op-text-secondary) !important; font-weight: 600; font-size: 14px; text-decoration: none !important;
}
.op-nav a:hover { color: var(--op-orange) !important; }
.op-header-actions { display: flex; align-items: center; gap: 14px; }
.op-header-phone, .op-header-phone:link, .op-header-phone:visited {
  font-weight: 700; color: var(--op-text) !important; text-decoration: none !important;
}
.op-header-cta, .op-header-cta:link, .op-header-cta:visited {
  background: var(--op-orange) !important; color: var(--op-white) !important; padding: 10px 16px;
  border-radius: var(--op-radius-sm); font-weight: 700; text-decoration: none !important; font-size: 13px;
}
.op-header-cta:hover { background: var(--op-orange-hover) !important; }
@media (max-width: 1023px) { .op-nav { display: none; } }

/* ---------- 4. Hero ---------- */
#op-hero {
  background: linear-gradient(135deg, rgba(14,28,51,.94), rgba(14,28,51,.88)),
    repeating-linear-gradient(45deg, #1b2f4d 0 2px, #16283f 2px 40px) !important;
  padding: 72px 32px 56px !important;
}
#op-hero .elementor-widget-container,
#op-hero h1, #op-hero p,
#op-hero .elementor-heading-title,
#op-hero .elementor-widget-text-editor,
#op-hero .elementor-widget-text-editor p { color: var(--op-white) !important; }
#op-hero h1 {
  font-size: 46px; line-height: 1.12; max-width: 720px;
  text-align: left !important; margin-left: 0 !important; margin-right: auto !important;
}
#op-hero .op-hl { color: var(--op-teal) !important; }
#op-hero p, #op-hero .elementor-widget-text-editor p {
  color: rgba(255,255,255,.78) !important; font-size: 17px; max-width: 600px;
  text-align: left !important; margin-left: 0 !important; margin-right: auto !important;
}

/* Force the whole hero column/content stack to hug the left edge instead of
   the theme's default centred (margin:auto) heading/paragraph styling */
#op-hero .elementor-column,
#op-hero .elementor-widget-wrap {
  align-items: flex-start !important;
}
#op-hero .elementor-container { justify-content: flex-start !important; }
#op-hero .elementor-widget-container { margin-left: 0 !important; margin-right: auto !important; }

.op-hero-badge {
  display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18); padding: 6px 14px; border-radius: 999px;
  font-size: 12px; font-weight: 700; margin: 0 auto 20px 0; color: #cfe8e3;
}
.op-dotsm { width: 7px; height: 7px; border-radius: 50%; background: var(--op-teal); display: inline-block; }

.op-hero-badges { display: flex; gap: 12px; flex-wrap: wrap; margin: 0 auto 0 0; justify-content: flex-start; }
.op-hero-divider { border-top: 1px solid rgba(255,255,255,.14); margin: 22px auto 18px 0; max-width: 720px; }
.op-hero-badge-pill {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); border-radius: 10px;
  padding: 12px 16px; font-size: 12px; font-weight: 700; color: var(--op-white); text-align: center; min-width: 88px;
}

#op-btn-primary .elementor-button, #op-btn-primary.elementor-button {
  background: var(--op-orange) !important; color: var(--op-white) !important; border-radius: 8px !important;
  min-height: 50px; font-weight: 700; padding: 0 28px;
}
#op-btn-primary .elementor-button:hover { background: var(--op-orange-hover) !important; }
#op-btn-primary .elementor-button-icon { margin-right: 8px; }
#op-btn-primary .elementor-button-icon i { font-size: 14px; }

#op-btn-outline .elementor-button, #op-btn-outline.elementor-button {
  background: transparent !important; color: var(--op-white) !important;
  border: 1px solid rgba(255,255,255,.45) !important; border-radius: 8px !important; min-height: 50px; font-weight: 700; padding: 0 28px;
}

#op-btn-navy .elementor-button, #op-btn-navy.elementor-button {
  background: var(--op-navy) !important; color: var(--op-white) !important; border-radius: 8px !important;
  min-height: 50px; font-weight: 700; padding: 0 28px;
}

/* ---------- GLOBAL BUTTON TEXT CENTRING (inside the button shape) ----------
   Separate from the positioning fix below: this forces the text to sit
   dead-centre horizontally AND vertically inside every button's own
   padding/min-height, regardless of button width. */
.elementor-button,
.elementor-button.elementor-size-sm,
.elementor-button.elementor-size-md,
.elementor-button.elementor-size-lg {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1.2 !important;
}
.elementor-button .elementor-button-text,
.elementor-button .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100%;
}

/* ---------- GLOBAL BUTTON ALIGNMENT (position within its column) ----------
   Every Elementor button widget's wrapper inherits text-align from its
   column, and the theme's default is left — this is why buttons across
   the site have been drifting left even in sections meant to be centred.
   Fix it once, globally, then explicitly opt individual buttons back out
   (the hero CTA row, and the "Learn More" links, which are meant to stay
   left-aligned). Text-align only — deliberately NOT touching
   justify-content/align-items here, since that would also squash
   full-width elements like the form and paragraphs in the same column. */
.elementor-widget-button,
.elementor-widget-button .elementor-widget-container,
.elementor-widget-button .elementor-button-wrapper {
  text-align: center !important;
}

/* Opt back OUT of centring: hero button row stays left + side-by-side */
#op-hero-cta-row .elementor-widget-button,
#op-hero-cta-row .elementor-widget-button .elementor-widget-container,
#op-hero-cta-row .elementor-button-wrapper {
  text-align: left !important;
}

/* Opt back OUT of centring: "Learn More" links under service cards stay
   left-aligned under their card text */
#op-service-link,
#op-service-link .elementor-widget-container,
#op-service-link .elementor-button-wrapper {
  text-align: left !important;
}

@media (max-width: 767px) { #op-hero { padding: 40px 20px !important; } #op-hero h1 { font-size: 32px; } }

/* Hero CTA row — shrink the nested Elementor row to its content instead of
   stretching two 50/50 columns across the full hero width */
#op-hero-cta-row { max-width: 720px; margin: 0 auto 0 0 !important; }
#op-hero-cta-row .elementor-container {
  justify-content: flex-start !important;
  flex-wrap: wrap;
  gap: 16px;
}
#op-hero-cta-row .elementor-column {
  width: auto !important;
  flex: 0 0 auto !important;
  max-width: none !important;
}
#op-hero-cta-row .elementor-widget-wrap { justify-content: flex-start !important; }
@media (max-width: 480px) {
  #op-hero-cta-row .elementor-column { width: 100% !important; }
  #op-hero-cta-row .elementor-button { width: 100%; }
}

/* ---------- 5. Trust strip ---------- */
#op-trust { background: var(--op-white) !important; border-bottom: 1px solid var(--op-border); padding: 22px 32px !important; }
#op-trust-list .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px 32px; justify-content: center; }
#op-trust-list .elementor-icon-list-icon i { color: var(--op-teal); }
#op-trust-list .elementor-icon-list-text { font-size: 13px; font-weight: 600; color: var(--op-text-secondary); }

/* ---------- 6. Coverage bar (strip) ---------- */
#op-coverage-bar { background: var(--op-navy-2) !important; padding: 22px 32px !important; }
.op-coverage-bar-inner { max-width: var(--op-container); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.op-coverage-bar-inner p { color: var(--op-white); margin: 0; font-weight: 700; font-size: 15px; }
.op-coverage-bar-btn {
  background: var(--op-orange); color: var(--op-white); padding: 10px 20px; border-radius: 8px;
  font-weight: 700; text-decoration: none; font-size: 14px;
}

/* ---------- 7. Coverage checker (form card) ---------- */
#op-coverage {
  background: var(--op-white) !important; border: 1px solid var(--op-border); border-radius: var(--op-radius-lg);
  max-width: 720px; margin: 64px auto !important; padding: 40px !important; text-align: center;
}
#op-coverage .elementor-button { background: var(--op-orange) !important; border-radius: 8px !important; }

/* ---------- 8. How it works ---------- */
#op-how-it-works { padding-top: 24px !important; }
.op-step-number { font-size: 40px; font-weight: 800; color: var(--op-border); margin-bottom: 4px; }
#op-how-it-works .elementor-column { border: 1px solid var(--op-border); border-radius: var(--op-radius-md); padding: 10px; }

/* ---------- 9. Stats band ---------- */
#op-stats-band { background: var(--op-navy) !important; padding: 48px 32px !important; }
.op-stats-grid { max-width: var(--op-container); margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); text-align: center; }
.op-stats-grid > div { border-right: 1px solid rgba(255,255,255,.14); }
.op-stats-grid > div:last-child { border-right: none; }
.op-stat-num { font-size: 38px; font-weight: 800; color: var(--op-white); }
.op-stat-label { font-size: 13px; color: rgba(255,255,255,.65); font-weight: 600; }
@media (max-width: 767px) { .op-stats-grid { grid-template-columns: 1fr; gap: 18px; } .op-stats-grid > div { border-right: none; } }

/* ---------- 10. Services ---------- */
#op-services { padding: 24px 32px 88px !important; }
/* Force a proper 3-across grid — Elementor was laying all six columns in one row */
#op-services > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 22px !important;
  align-items: stretch !important;
}
#op-services > .elementor-container > .elementor-column {
  width: 100% !important;
  max-width: none !important;
}
@media (max-width: 1023px) { #op-services > .elementor-container { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 767px)  { #op-services > .elementor-container { grid-template-columns: 1fr !important; } }

/* Same treatment for the 3-step row */
#op-how-it-works > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
#op-how-it-works > .elementor-container > .elementor-column { width: 100% !important; max-width: none !important; }
@media (max-width: 767px) { #op-how-it-works > .elementor-container { grid-template-columns: 1fr !important; } }

/* Card container = the column itself now (not the icon-box), so the
   border/shadow wraps the icon, title, description AND the button as one
   unified card, matching the reference's card look. Using an ID list for
   compatibility rather than relying on the newer "CSS Classes" field. */
#op-service-card-1, #op-service-card-2, #op-service-card-3,
#op-service-card-4, #op-service-card-5, #op-service-card-6 {
  background: var(--op-white);
  border: 1px solid var(--op-border);
  border-radius: var(--op-radius-md);
  padding: 28px 24px 24px;
  position: relative;
  box-shadow: 0 6px 20px rgba(14,28,51,.06);
  display: flex !important;
  flex-direction: column !important;
}
#op-service-card-1 { border-color: var(--op-orange); border-width: 2px; }

/* "Most Common" ribbon on the featured card */
.op-svc-badge {
  position: absolute; top: -1px; right: -1px;
  background: var(--op-orange); color: var(--op-white);
  font-size: 11px; font-weight: 800; letter-spacing: .03em;
  padding: 6px 14px; border-radius: 0 8px 0 10px;
}

/* Coloured icon-square badges — one accent colour per card, replacing the
   plain oversized icon with a proper 48px rounded badge like the reference */
#op-service-card-1 .elementor-icon-box-icon,
#op-service-card-2 .elementor-icon-box-icon,
#op-service-card-3 .elementor-icon-box-icon,
#op-service-card-4 .elementor-icon-box-icon,
#op-service-card-5 .elementor-icon-box-icon,
#op-service-card-6 .elementor-icon-box-icon {
  width: 48px; height: 48px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 6px;
}
#op-service-card-1 .elementor-icon-box-icon { background: #f2660c; }
#op-service-card-2 .elementor-icon-box-icon { background: #dc2626; }
#op-service-card-3 .elementor-icon-box-icon { background: #059669; }
#op-service-card-4 .elementor-icon-box-icon { background: #2563eb; }
#op-service-card-5 .elementor-icon-box-icon { background: #0e1c33; }
#op-service-card-6 .elementor-icon-box-icon { background: #7c3aed; }
#op-service-card-1 .elementor-icon-box-icon i, #op-service-card-2 .elementor-icon-box-icon i,
#op-service-card-3 .elementor-icon-box-icon i, #op-service-card-4 .elementor-icon-box-icon i,
#op-service-card-5 .elementor-icon-box-icon i, #op-service-card-6 .elementor-icon-box-icon i {
  color: var(--op-white) !important; font-size: 18px;
}
#op-service-card-1 .elementor-icon-box-title, #op-service-card-2 .elementor-icon-box-title,
#op-service-card-3 .elementor-icon-box-title, #op-service-card-4 .elementor-icon-box-title,
#op-service-card-5 .elementor-icon-box-title, #op-service-card-6 .elementor-icon-box-title {
  font-size: 17px !important; margin: 4px 0 6px !important;
}
#op-service-card-1 .elementor-icon-box-description, #op-service-card-2 .elementor-icon-box-description,
#op-service-card-3 .elementor-icon-box-description, #op-service-card-4 .elementor-icon-box-description,
#op-service-card-5 .elementor-icon-box-description, #op-service-card-6 .elementor-icon-box-description {
  font-size: 14px !important;
}

/* "Learn more" pinned to the bottom of each card, whatever the text length */
#op-service-link { margin-top: auto !important; padding-top: 14px; }
#op-service-link .elementor-button { background: transparent !important; color: var(--op-orange) !important; font-weight: 700; padding-left: 0 !important; text-decoration: none; }

/* ---------- 10b. Detailed services (native widgets: Image + Icon Box + Icon List) ---------- */
#op-services2-heading { padding-bottom: 0 !important; }
#op-services2-row1, #op-services2-row2 {
  padding: 12px 32px !important;
  max-width: var(--op-container);
  margin: 0 auto !important;
}
#op-services2-row2 { padding-top: 0 !important; padding-bottom: 88px !important; }
#op-services2-row1 .elementor-container,
#op-services2-row2 .elementor-container { gap: 24px; }

/* Card = one column: id list keeps this compatible with any Elementor
   version (no dependency on the newer "CSS Classes" field) */
#op-svc2-card-1, #op-svc2-card-2, #op-svc2-card-3, #op-svc2-card-4, #op-svc2-card-5 {
  background: var(--op-white);
  border: 1px solid var(--op-border);
  border-radius: var(--op-radius-md);
  overflow: hidden;
}

/* Photo (Image widget) */
#op-svc2-card-1-photo, #op-svc2-card-2-photo, #op-svc2-card-3-photo,
#op-svc2-card-4-photo, #op-svc2-card-5-photo {
  margin: 0 !important;
}
#op-svc2-card-1-photo img, #op-svc2-card-2-photo img, #op-svc2-card-3-photo img,
#op-svc2-card-4-photo img, #op-svc2-card-5-photo img {
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
  background: linear-gradient(135deg, #2a3f5f, #14243b);
}

/* Title row (Icon Box widget, icon-left layout) */
#op-svc2-card-1-title, #op-svc2-card-2-title, #op-svc2-card-3-title,
#op-svc2-card-4-title, #op-svc2-card-5-title {
  padding: 16px 20px 0 !important;
}
#op-svc2-card-1-title .elementor-icon-box-icon,
#op-svc2-card-2-title .elementor-icon-box-icon,
#op-svc2-card-3-title .elementor-icon-box-icon,
#op-svc2-card-4-title .elementor-icon-box-icon,
#op-svc2-card-5-title .elementor-icon-box-icon {
  background: var(--op-surface);
  border-radius: 8px;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  margin-right: 10px !important;
}
#op-svc2-card-1-title .elementor-icon-box-icon i,
#op-svc2-card-2-title .elementor-icon-box-icon i,
#op-svc2-card-3-title .elementor-icon-box-icon i,
#op-svc2-card-4-title .elementor-icon-box-icon i,
#op-svc2-card-5-title .elementor-icon-box-icon i { color: var(--op-orange); font-size: 15px; }
#op-svc2-card-1-title .elementor-icon-box-title,
#op-svc2-card-2-title .elementor-icon-box-title,
#op-svc2-card-3-title .elementor-icon-box-title,
#op-svc2-card-4-title .elementor-icon-box-title,
#op-svc2-card-5-title .elementor-icon-box-title { font-size: 16px !important; font-weight: 700 !important; margin: 0 !important; }

/* Checklist (Icon List widget) */
#op-svc2-card-1-list, #op-svc2-card-2-list, #op-svc2-card-3-list,
#op-svc2-card-4-list, #op-svc2-card-5-list {
  padding: 10px 20px 22px !important;
}
#op-svc2-card-1-list .elementor-icon-list-items,
#op-svc2-card-2-list .elementor-icon-list-items,
#op-svc2-card-3-list .elementor-icon-list-items,
#op-svc2-card-4-list .elementor-icon-list-items,
#op-svc2-card-5-list .elementor-icon-list-items { gap: 8px; }
#op-svc2-card-1-list .elementor-icon-list-icon i,
#op-svc2-card-2-list .elementor-icon-list-icon i,
#op-svc2-card-3-list .elementor-icon-list-icon i,
#op-svc2-card-4-list .elementor-icon-list-icon i,
#op-svc2-card-5-list .elementor-icon-list-icon i { color: var(--op-teal); font-size: 13px; }
#op-svc2-card-1-list .elementor-icon-list-text,
#op-svc2-card-2-list .elementor-icon-list-text,
#op-svc2-card-3-list .elementor-icon-list-text,
#op-svc2-card-4-list .elementor-icon-list-text,
#op-svc2-card-5-list .elementor-icon-list-text { font-size: 14px; color: var(--op-text-secondary) !important; }

@media (max-width: 1023px) {
  #op-services2-row1 .elementor-column, #op-services2-row2 .elementor-column { width: 50% !important; }
}
@media (max-width: 640px) {
  #op-services2-row1 .elementor-column, #op-services2-row2 .elementor-column { width: 100% !important; }
}

/* ---------- 11. Landlords & businesses ---------- */
#op-business-landlords { background: var(--op-surface) !important; padding: 80px 32px !important; text-align: center; }

/* ---------- 12. Why choose us — numbered rows ---------- */
#op-why-choose-us { padding: 24px 32px 88px !important; }
.op-why-list { display: flex; flex-direction: column; gap: 18px; max-width: 760px; margin: 0 auto; }
.op-why-row { display: flex; gap: 16px; align-items: flex-start; border: 1px solid var(--op-border); border-radius: var(--op-radius-md); padding: 20px 22px; }
.op-why-num { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; background: var(--op-navy); color: var(--op-white); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; }
.op-why-row h4 { margin: 0 0 4px; font-size: 16px; color: var(--op-text) !important; }
.op-why-row p { margin: 0; font-size: 14px; color: var(--op-text-secondary) !important; }

/* ---------- 13. Areas covered — radial graphic in a shadowed card + list ---------- */
#op-areas { padding: 24px 32px 88px !important; }
.op-areas-wrap { display: flex; gap: 40px; align-items: center; flex-wrap: wrap; max-width: var(--op-container); margin: 0 auto; }

.op-areas-radial {
  flex: 1 1 340px;
  min-height: 300px;
  display: flex; align-items: center; justify-content: center;
  background: var(--op-surface);
  border: 1px solid var(--op-border);
  border-radius: var(--op-radius-lg);
  box-shadow: 0 10px 30px rgba(14,28,51,.08);
}
.op-radial {
  width: 240px; height: 240px; border-radius: 50%; position: relative;
  background: radial-gradient(circle, rgba(20,184,166,.15) 0%, rgba(20,184,166,.06) 45%, transparent 70%);
  border: 1px dashed rgba(20,184,166,.35); display: flex; align-items: center; justify-content: center;
}
.op-radial:before, .op-radial:after { content: ""; position: absolute; border-radius: 50%; border: 1px dashed rgba(20,184,166,.3); }
.op-radial:before { width: 160px; height: 160px; }
.op-radial:after { width: 90px; height: 90px; }
.op-radial-center {
  background: var(--op-navy); color: var(--op-white) !important; width: 68px; height: 68px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 11px;
  text-align: center; z-index: 2; box-shadow: 0 4px 14px rgba(14,28,51,.35);
}

.op-areas-list {
  flex: 1 1 360px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px;
  background: var(--op-white);
  border: 1px solid var(--op-border);
  border-radius: var(--op-radius-lg);
  box-shadow: 0 10px 30px rgba(14,28,51,.06);
  padding: 12px 20px;
}
/* !important is required here: the theme's own link-colour rule was
   overriding this and making the area names nearly invisible (light grey
   on white) — same root cause as the earlier phone-number issue. */
.op-areas-list a {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 4px; border-bottom: 1px solid var(--op-border);
  color: var(--op-text) !important; text-decoration: none !important;
  font-weight: 600; font-size: 14px;
}
.op-areas-list a:before {
  content: "f3c5"; /* fa-map-marker-alt */
  font-family: "Font Awesome 5 Free"; font-weight: 900;
  color: var(--op-teal); font-size: 12px; flex: 0 0 auto;
}
.op-areas-list a:hover { color: var(--op-orange) !important; }
.op-areas-list a:hover:before { color: var(--op-orange); }

@media (max-width: 767px) { .op-areas-list { grid-template-columns: 1fr; } }

/* ---------- 14. Reviews ---------- */
#op-reviews { text-align: center; padding: 24px 32px 88px !important; }
.op-review-single { max-width: 640px; margin: 0 auto; }
.op-review-single .op-stars { color: #f5b301; letter-spacing: 3px; font-size: 18px; margin-bottom: 14px; }
.op-review-single blockquote { font-size: 17px; color: var(--op-text); font-style: italic; margin: 0 0 20px; line-height: 1.6; }
.op-review-avatar-row { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 24px; }
.op-avatar-ph { width: 40px; height: 40px; border-radius: 50%; background: var(--op-surface); border: 1px solid var(--op-border); }
.op-review-who { text-align: left; font-size: 13px; }
.op-review-name { font-weight: 700; }
.op-review-meta { color: var(--op-text-muted); }
.op-placeholder-tag { font-size: 11px; font-weight: 700; letter-spacing: .04em; color: var(--op-orange); text-transform: uppercase; margin-bottom: 10px; }

/* ---------- 15. FAQ ---------- */
#op-faq { max-width: 860px; margin: 0 auto !important; padding: 24px 20px 88px !important; }
#op-faq .elementor-accordion-item { border: none !important; border-bottom: 1px solid var(--op-border) !important; border-radius: 0; margin-bottom: 0; }
#op-faq .elementor-tab-title { font-size: 15px !important; font-weight: 700; color: var(--op-navy-2); padding: 18px 4px !important; }
#op-faq .elementor-tab-content { padding: 0 4px 18px !important; color: var(--op-text-secondary); }

/* ---------- 16. Final / emergency CTA band ---------- */
#op-final-cta { background: var(--op-navy) !important; padding: 64px 32px !important; text-align: center; }
.op-emergency-band { text-align: center; }
.op-emergency-band h2 { color: var(--op-white) !important; }
.op-emergency-band p { color: rgba(255,255,255,.7) !important; }

/* Phone number — the theme's link colour was overriding this, hence the
   dark-on-navy text. Specificity + !important forces the orange back. */
#op-final-cta .op-phone-big,
#op-final-cta a.op-phone-big,
#op-final-cta a.op-phone-big:link,
#op-final-cta a.op-phone-big:visited,
#op-final-cta a.op-phone-big:hover {
  display: block;
  font-size: 34px;
  font-weight: 800;
  color: var(--op-orange) !important;
  text-decoration: none !important;
  margin: 14px auto 22px;
  text-align: center;
}

/* Centre the callback button inside the band */
#op-final-cta .elementor-widget-button,
#op-final-cta .elementor-widget-button .elementor-widget-container,
#op-final-cta .elementor-button-wrapper {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
#op-final-cta .elementor-column,
#op-final-cta .elementor-widget-wrap {
  align-items: center !important;
}

/* ---------- 17. Callback (split layout) ---------- */
#op-callback-heading { padding-bottom: 0 !important; }
#op-callback-form { max-width: var(--op-container); margin: 0 auto !important; padding: 24px 32px 96px !important; }
#op-callback-info h3 { font-size: 20px; color: var(--op-text) !important; }
#op-callback-info p { color: var(--op-text-secondary) !important; }
.op-callback-info-list { list-style: none; padding: 0; margin: 18px 0; display: flex; flex-direction: column; gap: 14px; }
.op-callback-info-list li { display: flex; gap: 10px; font-size: 14px; color: var(--op-text-secondary); }
.op-callback-info-list li b { color: var(--op-text); display: block; font-size: 13px; }
#op-callback-form-col { background: var(--op-surface); border-radius: var(--op-radius-lg); padding: 12px; }
#op-callback-form-col .elementor-button { background: var(--op-orange) !important; border-radius: 8px !important; min-height: 50px; }
@media (max-width: 900px) { #op-callback-form .elementor-column { width: 100% !important; } }

/* ---------- 18. Footer ---------- */
#op-footer { background: var(--op-navy) !important; color: rgba(255,255,255,.75); padding: 56px 32px 22px !important; }
.op-footer-grid { max-width: var(--op-container); margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.op-footer-brand { color: var(--op-white); font-weight: 800; font-size: 17px; margin-bottom: 8px; }
.op-footer-heading { color: var(--op-white); font-weight: 700; margin-bottom: 12px; font-size: 14px; }
.op-footer-col a { display: block; color: rgba(255,255,255,.7); text-decoration: none; margin-bottom: 8px; font-size: 13px; }
.op-footer-col a:hover { color: var(--op-white); }
.op-footer-bottom { max-width: var(--op-container); margin: 36px auto 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); display: flex; gap: 24px; flex-wrap: wrap; font-size: 12px; color: rgba(255,255,255,.55); }
.op-footer-bottom a { color: rgba(255,255,255,.55); text-decoration: none; }
@media (max-width: 767px) { .op-footer-grid { grid-template-columns: 1fr 1fr; } }

/* ---------- 19. Mobile sticky call bar ---------- */
#op-mobile-sticky-bar-section { display: none !important; }
.op-mobile-sticky-bar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999; height: 64px; padding-bottom: env(safe-area-inset-bottom, 0); }
@media (max-width: 767px) {
  #op-mobile-sticky-bar-section { display: block !important; }
  .op-mobile-sticky-bar { display: flex; }
  body { padding-bottom: 76px; }
}
.op-mobile-sticky-bar a { flex: 1; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; text-decoration: none; letter-spacing: .02em; }
.op-sticky-call { background: var(--op-orange); color: var(--op-white); }
.op-sticky-callback { background: var(--op-navy); color: var(--op-white); }

/* ---------- 20. Typography defaults ---------- */
h1, h2, h3, h4 { color: var(--op-text); font-weight: 800; }
h2 { font-size: 36px; letter-spacing: -0.01em; margin-bottom: 12px; }
h3 { font-size: 20px; }

/* ---------- 21. Accessibility ---------- */
a:focus-visible, button:focus-visible { outline: 3px solid var(--op-orange); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .op-emergency-dot { animation: none; } }/* End custom CSS */