/* Sitewide keyboard focus baseline. This asset is already loaded by every template family, so
   focus visibility stays consistent without adding another stylesheet request. */
:where(
  a:any-link,
  button,
  summary,
  input,
  select,
  textarea,
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}

/* A Back to Top action is useful only after the visitor has moved beyond the first viewport.
   site-ui.js adds is-scroll-ready from one shared observer/fallback controller. */
.back-to-top:not(.is-scroll-ready),
.mobile-cta-top[href="#top"]:not(.is-scroll-ready) {
  display: none !important;
}

.back-to-top.is-scroll-ready {
  display: inline-flex !important;
}

/* Operator: the desktop CTA panel must NEVER show only two buttons.
   The panel is revealed by the HERO signal while Back to Top rode the one-viewport
   THRESHOLD signal, and on a short-hero page (/sitemap/) the panel appears first --
   leaving Get Online Quote + Call with no Back to Top. Measured live: panel 158.4px /
   "58px 58px" below ~scrollY 400, 218.2px / "58px 58px 58px" above ~800.
   Inside the panel the button now follows the panel, which is itself already hidden until
   the hero clears, so the three-button component is always whole. The standalone MOBILE
   #top control keeps the threshold behaviour above -- it has no companion buttons. */
.desktop-cta-panel .back-to-top,
.desktop-cta-actions .back-to-top {
  display: inline-flex !important;
}

.mobile-cta-top[href="#top"].is-scroll-ready {
  display: block !important;
}

/* The legacy inline mega-menu rule removes its outline. This later, more-specific rule restores
   a high-contrast ring without changing the existing hover or spacing treatment. */
#primaryNav .mega-list a:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: 3px;
}

@media (forced-colors: active) {
  :where(
    a:any-link,
    button,
    summary,
    input,
    select,
    textarea,
    [tabindex]:not([tabindex="-1"])
  ):focus-visible,
  #primaryNav .mega-list a:focus-visible,
  #primaryNav .nav-submenu-toggle:focus-visible {
    outline-color: Highlight;
  }
}

/* Shared navigation disclosure layout and state.
   The shared controller is the only authority that exposes a dropdown. */
#primaryNav .nav-main-group {
  display: flex;
  align-items: stretch;
  height: 64px;
  border-right: 1px solid var(--rule);
}

#primaryNav .nav-main-group > .nav-main-link {
  padding-right: 4px;
  border-right: 0;
}

#primaryNav .nav-submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  padding: 0 7px;
  background: transparent;
  border: 0;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
}

#primaryNav .nav-main-group > .nav-submenu-toggle {
  min-width: 30px;
  height: 64px;
}

#primaryNav .nav-submenu-toggle.nav-main-link {
  gap: 6px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: normal;
  text-transform: uppercase;
}

#primaryNav .nav-mobile-label {
  display: none;
}

#primaryNav .nav-submenu-toggle:hover,
#primaryNav .nav-submenu-toggle:focus-visible,
#primaryNav .nav-item.open > .nav-main-group > .nav-main-link,
#primaryNav .nav-item.open > .nav-main-group > .nav-submenu-toggle,
#primaryNav .nav-item.open > .nav-submenu-toggle.nav-main-link {
  color: var(--red);
}

#primaryNav .nav-submenu-toggle:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: -3px;
}

#primaryNav .nav-chevron {
  display: inline-block;
  line-height: 1;
  transition: transform .2s ease;
}

/* Dropdowns ship in two equivalent shapes: direct anchors and semantically grouped li rows.
   Own both here so every route gets the same boundaries, and remove only the final rule. */
#primaryNav .nav-dropdown:not(.mega-menu) > a,
#primaryNav .nav-dropdown:not(.mega-menu) > li > a {
  border-bottom: 1px solid var(--rule);
}

#primaryNav .nav-dropdown:not(.mega-menu) > a:last-of-type,
#primaryNav .nav-dropdown:not(.mega-menu) > li:last-child > a {
  border-bottom: 0;
}

#primaryNav .nav-item.open .nav-chevron {
  transform: rotate(180deg);
}

@media (min-width: 1025px) {
  #primaryNav .nav-item.has-submenu > .nav-dropdown,
  #primaryNav .nav-item.has-submenu:hover > .nav-dropdown,
  #primaryNav .nav-item.has-submenu:focus-within > .nav-dropdown {
    display: none !important;
  }

  #primaryNav .nav-item.has-submenu.open > .nav-dropdown {
    display: flex !important;
  }

  #primaryNav .nav-item.has-submenu.open > .nav-dropdown.mega-menu {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  #primaryNav .nav-item.open > .nav-main-group > .nav-main-link::after,
  #primaryNav .nav-item.open > .nav-submenu-toggle.nav-main-link::after {
    transform: scaleX(1);
  }
}

@media (max-width: 1024px) {
  #primaryNav .nav-main-group {
    display: block;
    width: 100%;
    height: auto;
    border-right: 0;
  }

  #primaryNav .nav-main-group > .nav-main-link {
    display: none !important;
  }

  #primaryNav .nav-main-group > .nav-submenu-toggle {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    min-width: 0;
    height: auto;
    min-height: 56px;
    padding: 16px 28px !important;
    border-bottom: 1px solid var(--rule);
    border-left: 0;
    color: var(--ink);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
    white-space: normal;
  }

  #primaryNav .nav-submenu-toggle.nav-main-link {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    min-height: 56px;
    padding: 16px 28px !important;
    border-bottom: 1px solid var(--rule);
    color: var(--ink);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.2;
    text-align: left !important;
    text-transform: uppercase;
    white-space: normal;
  }

  #primaryNav .nav-mobile-label {
    display: inline;
  }

  #primaryNav .nav-item.has-submenu > .nav-dropdown,
  #primaryNav .nav-item.has-submenu:focus-within > .nav-dropdown {
    display: none !important;
  }

  #primaryNav .nav-item.has-submenu.open > .nav-dropdown,
  #primaryNav .nav-item.has-submenu.open > .nav-dropdown.mega-menu {
    display: block !important;
  }
}
/* Native quote dialog: the browser owns top-layer placement, background inertness, Escape,
   and focus containment. The inner shell/panel classes retain the existing visual design. */
#fullScreenModal {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 24px 16px;
  border: 0;
  background: transparent;
  overflow-y: auto;
}

#fullScreenModal:not([open]) {
  display: none;
}

#fullScreenModal[open] {
  display: block;
}

#fullScreenModal::backdrop {
  background: rgba(15, 23, 42, 0.72);
}

/* The quote widget bundle is fetched on the first pointer/keyboard intent on a trigger (see
   site-ui.js). Until it renders into the host, the empty host shows a short loading line so an
   open dialog is never a blank panel. React's first render replaces the host's children, which
   ends the :empty match. */
#fullScreenModal [data-booking-form]:empty::before {
  content: "Loading the quote form\2026";
  display: block;
  padding: 40px 16px;
  text-align: center;
  font-size: 18px;
  color: #475569;
}

@media (max-width: 480px) {
  #fullScreenModal {
    padding: 12px 8px;
  }
}
/* Component-only semantic upgrades. This file is linked only when the generated page contains
   an FAQ disclosure, numbered steps, fleet cards, or a responsive pricing table. */

.steps-grid:is(ol) {
  list-style: none;
  padding-left: 0;
}

[data-faq-disclosure] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  border-bottom: 2px solid var(--rule);
}

[data-faq-disclosure] > .fqt {
  grid-area: 1 / 1 / 2 / 3;
  margin: 0;
  color: var(--black);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 25px !important;
  font-weight: 700 !important;
  letter-spacing: .03em !important;
  line-height: 1.2;
  text-transform: uppercase;
}

[data-faq-disclosure] > .fic {
  grid-area: 1 / 2 / 2 / 3;
  align-self: center;
  justify-self: end;
  pointer-events: none;
  width: 28px;
  height: 28px;
  border: 2px solid var(--rule);
  background: var(--bg-off);
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font: 700 18px/1 'Barlow Condensed', sans-serif;
}

.faq-group {
  list-style: none;
  margin: 0;
  padding: 0;
}

#faq .faq-list {
  margin-top: 44px;
}

.faq-group > .faq-group-item {
  margin: 0;
  padding: 0;
}

[data-faq-disclosure] > .fqt > .fq {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  min-height: 72px;
  padding: 22px 3rem 22px 0;
  cursor: pointer;
  text-align: inherit;
  text-transform: inherit;
}

[data-faq-disclosure] > .fa {
  grid-area: 2 / 1 / 3 / 3;
}

[data-faq-disclosure].open > .fqt {
  color: var(--red);
}

[data-faq-disclosure].open > .fic {
  border-color: var(--red);
  background: var(--red);
  color: #fff;
  transform: rotate(45deg);
}

[data-faq-disclosure] > .fa[hidden] {
  display: none;
}

[data-faq-disclosure] > .fa.open {
  max-height: 1000px;
  padding-bottom: 22px;
}

.table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

.table-scroll > .ptable {
  display: table;
  overflow: visible;
}

/* Text panels enter the tab order only when runtime measurement confirms clipping. The inset
   edge and thin scrollbar are the visual affordance; un-clipped panels receive neither. */
[data-scroll-label][data-overflowing="true"] {
  scrollbar-width: thin;
  box-shadow: inset 0 -12px 10px -12px currentColor;
}

[data-scroll-label][data-overflowing="true"]:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}

@media (max-width: 768px) {
  [data-faq-disclosure] > .fqt {
    font-size: 18px !important;
  }

  .table-scroll > .ptable {
    min-width: 760px;
  }
}
/* A semantic hero image replaces the legacy template background. Keeping both paints the
   same asset twice and can defeat preload reuse. Preserve the component's background color. */
#intro-layout[data-hero-media="html"] {
  background-image: none !important;
}
/* quote-widget preflight parity (derived from the shipped bundle) */
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
:before,:after{--tw-content: ""}
html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}
body{margin:0;line-height:inherit}
hr{height:0;color:inherit;border-top-width:1px}
abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}
code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-.25em}
sup{top:-.5em}
table{text-indent:0;border-color:inherit;border-collapse:collapse}
button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}
button,select{text-transform:none}
button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}
:-moz-focusring{outline:auto}
:-moz-ui-invalid{box-shadow:none}
progress{vertical-align:baseline}
::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
summary{display:list-item}
blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}
fieldset{margin:0;padding:0}
legend{padding:0}
ol,ul,menu{list-style:none;margin:0;padding:0}
dialog{padding:0}
textarea{resize:vertical}
input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}
input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}
button,[role=button]{cursor:pointer}
:disabled{cursor:default}
img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}
img,video{max-width:100%;height:auto}
[hidden]:where(:not([hidden=until-found])){display:none}
input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}
input:where([type=text]):focus,input:where(:not([type])):focus,input:where([type=email]):focus,input:where([type=url]):focus,input:where([type=password]):focus,input:where([type=number]):focus,input:where([type=date]):focus,input:where([type=datetime-local]):focus,input:where([type=month]):focus,input:where([type=search]):focus,input:where([type=tel]):focus,input:where([type=time]):focus,input:where([type=week]):focus,select:where([multiple]):focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}
input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}
input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}
::-webkit-datetime-edit-fields-wrapper{padding:0}
::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}
::-webkit-datetime-edit{display:inline-flex}
::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}
select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}
select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}
input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}
input:where([type=checkbox]){border-radius:0}
input:where([type=radio]){border-radius:100%}
input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}
input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}
input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}
input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}
input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{border-color:transparent;background-color:currentColor}
input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}
input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{border-color:transparent;background-color:currentColor}
input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}
input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}
