/* advancedair theme - generated from refs/tmpl/theme.css by rebuild/gen_css.py.
   Colour roles (PROVENANCE.md): the reference's orange is --primary, its darker
   orange --primary-dark, its blue --dark-soft, its navy --dark; accent text on
   a dark ground is --secondary (expected_diffs accent_on_dark_is_secondary).
   White, #304453 text, the pale blue and the peach are the reference's own.
   Every value that steps with the width is a custom property here or in its
   section's :root, so its generated @media override lands on :root. */
:root {
  --primary: #C41010;
  --primary-dark: #8F0B0B;
  --secondary: #92C6DE;
  --dark: #0E2230;
  --dark-soft: #1A4560;
  --ink: rgb(48, 68, 83); /* body.color@1440 */
  --white: rgb(255, 255, 255); /* hero_bar.bg@1440 */
  --pale: rgb(229, 240, 249); /* feat_card.bg@1440 */
  --peach: rgb(254, 237, 228); /* why_bar.bg@1440 */
  --root-size: 16px; /* html.size */
  --body-lh: 25.6px; /* body.lh */
  --btn-size: 16px; /* hero_btn.size */
  --btn-lh: 16px; /* hero_btn.lh */
  --orcall-size: 16px; /* hero_orcall.size */
  --orcall-lh: 25.6px; /* hero_orcall.lh */
  --loc-size: 14.4px; /* hero_loc.size */
  --loc-lh: 20.16px; /* hero_loc.lh */
  --phone-size: 17.6px; /* hero_phone.size */
  --phone-lh: 24.64px; /* hero_phone.lh */
}
*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--root-size); }
body {
  margin: 0;
  font-family: "Instrument Sans", sans-serif;
  font-size: var(--root-size);
  line-height: var(--body-lh);
  font-weight: 400; /* body.weight@1440 */
  color: var(--ink);
  background: var(--white);
  overflow-x: hidden;
}
h1, h2, h3, p { margin: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
ul { margin: 0; padding: 0; list-style: none; }
.sr { display: block; font-size: 0; }

/* A Cornerstone row: a container at 88% capped at the reference's max width,
   whose inner row runs its columns with negative-margin gutters. */
.row {
  width: 88%; /* @m(hero_inner.w@600 / html.w@600 * 100)% */
  max-width: 1200px; /* ref_components hero_inner.maxWidth@1440 */
  margin-left: auto;
  margin-right: auto;
  padding: 1px; /* hero_inner.padT@1440 */
}
.rowin { display: flex; flex-wrap: wrap; }

/* The button block: an anchor with a padded inner box and a tracked label. */
.btn {
  display: inline-flex;
  background: var(--primary);
  color: var(--white);
}
.btn--blue { background: var(--dark-soft); }
.btn__in {
  display: flex;
  flex: 1 1 auto;
  justify-content: center;
  align-items: center;
  padding-top: 15px; /* @m((hero_btn_box.h@1440 - hero_btn.h@1440) / 2) */
  padding-bottom: 15px; /* @m((hero_btn_box.h@1440 - hero_btn.h@1440) / 2) */
  padding-left: 20px; /* @m((hero_btn_box.w@1440 - hero_btn.w@1440 - c:hero_btn.margin#1@1440) / 2) */
  padding-right: 20px; /* @m((hero_btn_box.w@1440 - hero_btn.w@1440 - c:hero_btn.margin#1@1440) / 2) */
}
.btn__label {
  display: block;
  font-family: "Titillium Web", sans-serif;
  font-size: var(--btn-size);
  line-height: var(--btn-lh);
  font-weight: 700; /* hero_btn.weight@1440 */
  letter-spacing: 2px; /* hero_btn.ls@1440 */
  margin-right: -2px; /* ref_components hero_btn.margin#1@1440 */
  text-transform: uppercase;
  text-align: center;
}

/* The action bar: a button, "Or Call:", and the client's number frame. */
.bar {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  background: var(--white);
}
.bar--peach { background: var(--peach); }
.bar__or {
  font-size: var(--orcall-size);
  line-height: var(--orcall-lh);
  font-weight: 700; /* hero_orcall.weight@1440 */
  color: var(--ink);
}
.bar__nums {
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  column-gap: 20px; /* ref_components hero_nums.gap#1@1440 */
}
.bar__num { display: block; }
.bar__loc, .hd__loc {
  display: block;
  font-family: "Titillium Web", sans-serif;
  font-size: var(--loc-size);
  line-height: var(--loc-lh);
  font-weight: 700; /* hero_loc.weight@1440 */
  letter-spacing: 2px; /* hero_loc.ls@1440 */
  margin-right: -2px; /* ref_components hero_loc.margin#1@1440 */
  text-transform: uppercase;
  color: var(--primary);
}
.bar__phone, .hd__phone {
  display: block;
  font-size: var(--phone-size);
  line-height: var(--phone-lh);
  font-weight: 700; /* hero_phone.weight@1440 */
  color: var(--ink);
}

/* A glyph badge: the reference draws rings and a disc in an SVG; here the
   rings are a radial gradient on ::before and the kit glyph sits on top. */
.badge {
  position: relative;
  display: block;
  flex-shrink: 0;
  --disc-stop: 65%; /* departure badge_disc_stop */
  --ring-stop: 84%; /* departure badge_ring_stop */
}
.badge::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%; /* departure badge_circle */
  background: radial-gradient(closest-side, var(--disc) var(--disc-stop), var(--mid) var(--disc-stop) var(--ring-stop), var(--ring) var(--ring-stop));
}
.badge__disc { position: relative; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; }
.badge__disc svg {
  width: 42%; /* departure badge_glyph */
  height: 42%; /* departure badge_glyph */
  fill: var(--white);
}

/* Hover and keyboard focus, measured on the reference by refs/probe_hover.py
   (refs/hover.json; gen_css.py merges its hover_* roles). A hover colour is
   the client role the reference's hover colour plays (PROVENANCE.md colour
   roles): its darker orange is --primary-dark, its navy --dark, its blue
   --dark-soft. Every :hover state also applies on :focus-visible, with an
   outline (expected_diffs focus_ring). Reduced motion drops the transitions
   and animations (expected_diffs hover_reduced_motion). */
a:focus-visible, button:focus-visible {
  outline: 2px solid currentColor; /* departure focus_ring */
  outline-offset: 2px; /* departure focus_ring_offset */
}
.btn:focus-visible {
  outline-offset: -6px; /* departure focus_ring_inset */
}
.btn {
  transition: border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), filter 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* ref_components hover_btn_orange.transition@1440 */
}
.btn:hover, .btn:focus-visible { background: var(--primary-dark); }
.btn--blue:hover, .btn--blue:focus-visible { background: var(--dark); }
.bar__phone, .hd__phone {
  transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1), text-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* ref_components hover_bar_num.leaf.n4@1440 */
}
.bar__num:hover .bar__phone, .bar__num:focus-visible .bar__phone,
.hd__num:hover .hd__phone, .hd__num:focus-visible .hd__phone { color: var(--dark-soft); }
/* The badges' hover animations: the reference's own animate.css keyframes,
   "swing" on the feature and why badges, "tada" on the service tiles'. */
@keyframes aa-swing {
  20% { /* ref_components hover_feat_card.keyframes.at1@1440 */
    transform: rotate(15deg); /* ref_components hover_feat_card.keyframes.t1@1440 */
  }
  40% { /* ref_components hover_feat_card.keyframes.at2@1440 */
    transform: rotate(-10deg); /* ref_components hover_feat_card.keyframes.t2@1440 */
  }
  60% { /* ref_components hover_feat_card.keyframes.at3@1440 */
    transform: rotate(5deg); /* ref_components hover_feat_card.keyframes.t3@1440 */
  }
  80% { /* ref_components hover_feat_card.keyframes.at4@1440 */
    transform: rotate(-5deg); /* ref_components hover_feat_card.keyframes.t4@1440 */
  }
  100% { /* ref_components hover_feat_card.keyframes.at5@1440 */
    transform: rotate(0deg); /* ref_components hover_feat_card.keyframes.t5@1440 */
  }
}
@keyframes aa-tada {
  0% { /* ref_components hover_tile.keyframes.at1@1440 */
    transform: scale(1); /* ref_components hover_tile.keyframes.t1@1440 */
  }
  10%, 20% { /* ref_components hover_tile.keyframes.at2@1440 */
    transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); /* ref_components hover_tile.keyframes.t2@1440 */
  }
  30%, 50%, 70%, 90% { /* ref_components hover_tile.keyframes.at3@1440 */
    transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); /* ref_components hover_tile.keyframes.t3@1440 */
  }
  40%, 60%, 80% { /* ref_components hover_tile.keyframes.at4@1440 */
    transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); /* ref_components hover_tile.keyframes.t4@1440 */
  }
  100% { /* ref_components hover_tile.keyframes.at5@1440 */
    transform: scale(1); /* ref_components hover_tile.keyframes.t5@1440 */
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* On a phone the action bar stacks; "Or Call:" is centred, and below 480px
   the number frame is centred too (reference .maj-a / .m5m-w). */
@media (max-width: 766px) { /* hero_band.padT @766 */
  .bar__or { text-align: center; }
}
@media (max-width: 479px) { /* hero_bar.padT @479 */
  .bar__nums { justify-content: center; }
}

/* ---- generated by rebuild/gen_css.py from edges.json: one block per edge, widest first ---- */
@media (max-width:766px){ /* hero_phone.size @766 */
  :root{
    --phone-size: 16px; /* hero_phone.size @766 */
    --phone-lh: 22.4px; /* hero_phone.lh @766 */
  }
}
@media (max-width:765px){ /* html.size @765 */
  :root{
    --root-size: 14px; /* html.size @765 */
    --body-lh: 22.4px; /* body.lh @765 */
    --btn-size: 14px; /* hero_btn.size @765 */
    --btn-lh: 14px; /* hero_btn.lh @765 */
    --orcall-size: 14px; /* hero_orcall.size @765 */
    --orcall-lh: 22.4px; /* hero_orcall.lh @765 */
    --loc-size: 12.6px; /* hero_loc.size @765 */
    --loc-lh: 17.64px; /* hero_loc.lh @765 */
    --phone-size: 14px; /* hero_phone.size @765 */
    --phone-lh: 19.6px; /* hero_phone.lh @765 */
  }
}

/* advancedair.navmenu - the header with grouped menus (8.4c, a library section): advancedair.header's
   promo strip (its line as text here: a library header never links '#'), white logo bar and blue
   nav bar, every value its own, plus a menu per group (a button
   opens it on click, hover or keyboard) in the nav bar's blue, hanging under its button, and the
   drawer holding each group as a disclosure. Not sticky, as the header. */
:root {
  --anav-promo-size: 16px; /* promo_text.size */
  --anav-promo-lh: 22.4px; /* promo_text.lh */
  --anav-link-size: 16px; /* nav_link.size */
}
.anav { position: relative; z-index: 3; }
.anav__promobar {
  padding: 7px 10px 7px 10px; /* ref_components promo_bar.pad@1440 */
  background: var(--primary);
  text-align: center;
}
.anav__promo-text {
  display: block;
  font-size: var(--anav-promo-size);
  line-height: var(--anav-promo-lh);
  font-weight: 700; /* promo_text.weight@1440 */
  color: var(--white);
}
.anav__bar, .anav__nav {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.anav__bar::before, .anav__bar::after, .anav__nav::before, .anav__nav::after {
  content: "";
  flex: 0 0 20px; /* ref_components logo_bar.before.w@1440 */
  height: 20px; /* ref_components logo_bar.before.h@1440 */
}
.anav__bar {
  z-index: 2;
  background: var(--white);
  box-shadow: rgba(0, 0, 0, 0.15) 0px 3px 25px 0px; /* logo_bar.shadow@1440 */
}
.anav__inner {
  display: flex;
  flex: 0 1 100%;
  max-width: 1200px; /* ref_components header_inner.maxWidth@1440 */
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 10px 10px; /* ref_components header_inner.gap@1440 */
  padding: 15px 0px 15px 0px; /* ref_components header_inner.pad@1440 */
}
.anav__logo {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 275px; /* ref_components header_logo.cssWidth@1440 */
}
.anav__logo img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 69px; /* header_logo.h@1440 */
}
.anav__nums {
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px 20px; /* ref_components header_nums.gap@1440 */
}
.anav__icon {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 50px; /* ref_components header_icon.cssWidth@1440 */
  height: 50px; /* ref_components header_icon.cssWidth@1440 */
  margin-right: -10px; /* ref_components header_icon.margin#1@1440 */
}
.anav__icon::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%; /* departure badge_circle */
  background: radial-gradient(closest-side, var(--primary) 76%, var(--peach) 76%); /* departure header_icon_disc_stop, departure header_icon_disc_stop */
}
.anav__icon svg {
  position: relative;
  width: 42%; /* departure badge_glyph */
  height: 42%; /* departure badge_glyph */
  fill: var(--white);
}
.anav__num { display: block; position: relative; }
.anav__num:hover .hd__phone, .anav__num:focus-visible .hd__phone { color: var(--dark-soft); }
.anav__cta { display: flex; }
.anav__nav {
  z-index: 1;
  background: var(--dark-soft);
}
.anav__navin {
  display: flex;
  flex: 0 1 100%;
  max-width: 1200px; /* ref_components nav_inner.maxWidth@1440 */
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.anav__menu { display: flex; flex: 1 0 auto; align-self: stretch; }
.anav__list { display: flex; flex: 1 0 auto; flex-direction: row; justify-content: space-around; align-items: stretch; }
/* a group's menu hangs from its item */
.anav__item { position: relative; display: flex; flex: 1 0 auto; }
.anav__link {
  display: flex;
  flex: 1 0 auto;
  justify-content: center;
  align-items: center;
  gap: 10px; /* ref_components nav_anchor.gap#0@1440 */
  padding: 8px 8px 8px 8px; /* ref_components nav_anchor.pad@1440 */
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}
.anav__navlabel {
  display: block;
  font-size: var(--anav-link-size);
  line-height: 1; /* @m(nav_link.lh@1440 / nav_link.size@1440) */
  font-weight: 700; /* nav_link.weight@1440 */
  color: var(--white);
}
.anav__caret {
  width: 16px; /* ref_components nav_caret.cssWidth@1440 */
  height: 16px; /* ref_components nav_caret.cssWidth@1440 */
  fill: var(--white);
}
/* the open menu: the nav bar's blue under its button, its links the bar's own */
.anav__sub {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1;
  min-width: 100%;
  width: max-content;
  background: var(--dark-soft);
  box-shadow: rgba(0, 0, 0, 0.15) 0px 3px 25px 0px; /* logo_bar.shadow@1440 */
}
.anav__sub[hidden] {
  display: none;
}
.anav__sublink {
  display: block;
  padding: 8px 8px 8px 8px; /* ref_components nav_anchor.pad@1440 */
  font-size: var(--anav-link-size);
  line-height: 1; /* @m(nav_link.lh@1440 / nav_link.size@1440) */
  font-weight: 700; /* nav_link.weight@1440 */
  color: var(--white);
}
.anav__mcta { display: none; }
.anav__right {
  display: flex;
  flex-shrink: 0;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 10px; /* ref_components nav_right.gap#0@1440 */
}
.anav__toggle {
  display: none;
  width: 48px; /* ref_components menu_toggle.cssWidth@1440 */
  height: 48px; /* ref_components menu_toggle.cssWidth@1440 */
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.anav__burger, .anav__burger::before, .anav__burger::after {
  display: block;
  width: 36px; /* ref_components burger.cssWidth@1440 */
  height: 3px; /* ref_components burger.size@1440 */
  background: var(--white);
}
.anav__burger { position: relative; margin: auto; }
.anav__burger::before, .anav__burger::after { content: ""; position: absolute; left: 0; }
.anav__burger::before { bottom: 9px; } /* ref_components burger.margin#0@1440 */
.anav__burger::after { top: 9px; } /* ref_components burger.margin#0@1440 */
.anav__search {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 32.375px; /* ref_components nav_search.cssWidth@1440 */
  height: 32.375px; /* ref_components nav_search.cssWidth@1440 */
  margin: 8px 8px 8px 16px; /* ref_components nav_search.margin@1440 */
}
.anav__search svg {
  width: 42%; /* departure badge_glyph */
  height: 42%; /* departure badge_glyph */
  fill: var(--white);
}
.anav__drawer { background: var(--dark-soft); }
.anav__drawer[hidden] { display: none; }
.anav__dlink, .anav__dsublink {
  display: block;
  padding: 8px 20px; /* ref_components nav_anchor.pad#0@1440, ref_components logo_bar.before.w@1440 */
  font-weight: 700; /* nav_link.weight@1440 */
  color: var(--white);
}
/* a group in the drawer: the drawer's link as a disclosure button, its caret beside the label */
.anav__dgroup {
  display: flex;
  align-items: center;
  gap: 10px; /* ref_components nav_anchor.gap#0@1440 */
  width: 100%;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
}
.anav__dsub[hidden] { display: none; }
.anav__dsublink {
  font-weight: 400; /* about_body.weight@1440 */
}

/* Hover and focus (refs/hover.json; theme.css says how colours map): the nav item's shade on every
   link and group button of the bar, the menus and the drawer. */
.anav__link, .anav__sublink, .anav__dlink {
  transition: border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), filter 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* ref_components hover_nav_item.transition@1440 */
}
.anav__link:hover, .anav__link:focus-visible, .anav__link[aria-expanded="true"],
.anav__sublink:hover, .anav__sublink:focus-visible, .anav__dlink:hover, .anav__dlink:focus-visible {
  background-color: color-mix(in srgb, var(--dark-soft), black 30%); /* ref_components hover_nav_item.shade@1440 */
}
.anav__burger, .anav__burger::before, .anav__burger::after {
  transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), text-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* ref_components hover_menu_toggle.leaf.n3@390 */
}
.anav__toggle:hover .anav__burger, .anav__toggle:hover .anav__burger::before, .anav__toggle:hover .anav__burger::after,
.anav__toggle:focus-visible .anav__burger, .anav__toggle:focus-visible .anav__burger::before, .anav__toggle:focus-visible .anav__burger::after {
  background: rgb(217, 225, 231); /* ref_components hover_menu_toggle.bg@390 */
}
.anav__drawer {
  transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1); /* ref_components hover_menu_drawer.transition@390 */
}
@starting-style {
  .anav__drawer:not([hidden]) { opacity: 0; }
}

@media (max-width: 1199px) { /* area_inner.radius @1199 */
  .anav__logo {
    max-width: 200px; /* ref_components header_logo.cssWidth@1199 */
  }
  .anav__logo img {
    max-height: 50px; /* header_logo.h@1199 */
  }
  .anav__icon {
    width: 35px; /* ref_components header_icon.cssWidth@1199 */
    height: 35px; /* ref_components header_icon.cssWidth@1199 */
  }
}
@media (max-width: 978px) { /* header_btn.visible @978 */
  .anav__cta, .anav__menu { display: none; }
  .anav__navin { justify-content: space-between; }
  .anav__mcta { display: flex; }
  .anav__toggle { display: flex; }
  /* the open drawer hangs full width under the nav bar, over the page, never a column beside it */
  .anav__drawer { position: absolute; top: 100%; left: 0; right: 0; }
}
@media (max-width: 479px) { /* why_bar.padT @479 */
  .anav__nums { justify-content: center; }
}
@media (max-width: 765px) { /* header.size @765 */
  .anav__search {
    width: 29.5938px; /* ref_components nav_search.cssWidth@600 */
    height: 29.5938px; /* ref_components nav_search.cssWidth@600 */
    margin: 7px 7px 7px 14px; /* ref_components nav_search.margin@600 */
  }
  .anav__toggle {
    width: 42px; /* ref_components menu_toggle.cssWidth@600 */
    height: 42px; /* ref_components menu_toggle.cssWidth@600 */
  }
}

/* ---- generated by rebuild/gen_css.py from edges.json: one block per edge, widest first ---- */
@media (max-width:766px){ /* promo_text.size @766 */
  :root{
    --anav-promo-size: 14.4px; /* promo_text.size @766 */
    --anav-promo-lh: 20.16px; /* promo_text.lh @766 */
  }
}
@media (max-width:765px){ /* promo_text.size @765 */
  :root{
    --anav-promo-size: 12.6px; /* promo_text.size @765 */
    --anav-promo-lh: 17.64px; /* promo_text.lh @765 */
    --anav-link-size: 14px; /* nav_link.size @765 */
  }
}

:where(img[data-kit-sized]) { width: auto; height: auto; }
