:root {
  --hc-dock-bottom-gap: max(10px, env(safe-area-inset-bottom, 0px));
  --hc-mobile-nav-height: calc(var(--hc-mobile-dock-height, 76px) + var(--hc-dock-bottom-gap));
  --hc-mobile-nav-collapse: 16px;
  --hc-mobile-dock-compact-scale: .789474;
  --hc-mobile-dock-item-scale: .75;
  --hc-mobile-dock-compact-x-scale: 1;
  --hc-mobile-dock-item-x-scale: 1;
}
.hc-mobile-dock { display: none; }
.hc-header-phone { display: none; }
.hc-mobile-callback-dialog { max-width: 560px; }
.hc-mobile-callback-dialog .hc-modal-head { align-items: flex-start; }
.hc-mobile-callback-dialog .hc-modal-head h2 { margin: 0; }
.hc-mobile-callback-dialog .hc-modal-copy { margin-block: 14px 24px; }
.hc-mobile-callback-dialog .hc-form-actions .hc-button { width: 100%; }

@media (max-width: 767px) {
  .hc-site-header {
    --hc-header-scroll-duration: 380ms;
    --hc-header-scroll-ease: cubic-bezier(.4, 0, .2, 1);
    transition: transform var(--hc-header-scroll-duration) var(--hc-header-scroll-ease);
  }
  .hc-site-header.is-mobile-scroll-hidden { transform: translateY(-100%); pointer-events: none; }
  .hc-site-header.is-mobile-scroll-hidden:focus-within,
  body.has-dialog .hc-site-header,
  body.hc-mobile-text-entry .hc-site-header { transform: none; pointer-events: auto; }
  .hc-site-header .hc-menu-button { display: none; }
  .hc-site-header .hc-header-row { flex-wrap: wrap; column-gap: 8px; row-gap: 0; }
  .hc-site-header .hc-brand-lockup { gap: 7px; }
  .hc-site-header .hc-brand-logo { width: 52px; }
  .hc-site-header .hc-partner-logo { width: 104px; }
  .hc-site-header .hc-header-phone {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    color: var(--c-accent);
    font-size: 14px;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
    white-space: nowrap;
    text-decoration: none;
    touch-action: manipulation;
  }
  .hc-header-phone:hover { text-decoration: underline; text-underline-offset: 3px; }
  .hc-header-phone:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
  /* Header 80, dock 70, lease summary 60; native dialogs use the top layer. */
  .hc-mobile-dock {
    --hc-dock-shift: 0px;
    --hc-dock-surface-scale: 1;
    --hc-dock-item-scale: 1;
    --hc-dock-surface-x-scale: 1;
    --hc-dock-item-x-scale: 1;
    --hc-dock-item-x: 0px;
    --hc-dock-duration: 380ms;
    --hc-dock-ease: cubic-bezier(.4, 0, .2, 1);
    position: fixed;
    z-index: 70;
    left: max(12px, env(safe-area-inset-left, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    max-width: 576px;
    margin-inline: auto;
    /* Leave the actual viewport edge clear for Safari's browser toolbar. */
    bottom: var(--hc-dock-bottom-gap);
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 2px;
    padding: 6px;
    border: 0;
    background: transparent;
    pointer-events: none;
    transition: none;
  }
  .hc-mobile-dock::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    box-sizing: border-box;
    border: 1px solid rgb(36 48 57 / 10%);
    border-radius: 999px;
    /* Legible fallback before the progressive blur enhancement. */
    background: #f1f4f6;
    box-shadow: inset 0 2px 3px rgb(255 255 255 / 60%), inset 0 -1px 2px rgb(36 48 57 / 4%), 0 8px 24px rgb(16 22 26 / 10%), 0 1px 3px rgb(16 22 26 / 6%);
    pointer-events: none;
    transform-origin: center;
    transform: translateY(calc(var(--hc-dock-shift) * .5)) scale(var(--hc-dock-surface-x-scale), var(--hc-dock-surface-scale));
    transition: transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  /* Optical rim is separate from the sole blurred surface and never covers type. */
  .hc-mobile-dock::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    box-sizing: border-box;
    border-radius: 999px;
    box-shadow: inset 1px 1px 0 rgb(255 255 255 / 45%), inset -1px -1px 0 rgb(255 255 255 / 14%);
    pointer-events: none;
    transform-origin: center;
    transform: translateY(calc(var(--hc-dock-shift) * .5)) scale(var(--hc-dock-surface-x-scale), var(--hc-dock-surface-scale));
    transition: transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
    .hc-mobile-dock::before {
      background: rgb(248 250 252 / 55%);
      background-image: linear-gradient(135deg, rgb(255 255 255 / 4%), transparent 38% 62%, rgb(255 255 255 / 3%));
      -webkit-backdrop-filter: blur(20px) saturate(145%);
      backdrop-filter: blur(20px) saturate(145%);
    }
  }
  @supports (mask-composite: exclude) or (-webkit-mask-composite: xor) {
    .hc-mobile-dock::after {
      padding: 1.5px;
      background: linear-gradient(135deg, rgb(255 255 255 / 56%), rgb(255 255 255 / 18%) 18%, transparent 36% 58%, rgb(255 255 255 / 10%) 76%, rgb(255 255 255 / 36%));
      -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
    }
  }
  html.hc-mobile-dock-compact .hc-mobile-dock {
    --hc-dock-shift: var(--hc-mobile-nav-collapse, 16px);
    --hc-dock-surface-scale: var(--hc-mobile-dock-compact-scale);
    --hc-dock-item-scale: var(--hc-mobile-dock-item-scale);
    --hc-dock-surface-x-scale: var(--hc-mobile-dock-compact-x-scale);
    --hc-dock-item-x-scale: var(--hc-mobile-dock-item-x-scale);
  }
  html.hc-mobile-dock-compact .hc-mobile-dock-item { --hc-dock-item-x: var(--hc-mobile-dock-item-shift-x, 0px); }
  .hc-mobile-dock-item {
    position: relative;
    z-index: 0;
    display: grid;
    box-sizing: border-box;
    min-width: 48px;
    min-height: 64px;
    padding: 2px 0;
    grid-template-rows: 28px minmax(28px, auto);
    align-content: start;
    justify-items: center;
    gap: 4px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #111b23;
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 14px;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgb(36 48 57 / 8%);
    transform: translateX(var(--hc-dock-item-x, 0px));
    transition: transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  .hc-mobile-dock-item::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    border-radius: inherit;
    background: rgb(255 255 255 / 44%);
    background-image: linear-gradient(150deg, rgb(255 255 255 / 2%), transparent 55%, rgb(255 255 255 / 1%));
    box-shadow: inset 0 0 0 1px rgb(36 48 57 / 8%), inset 0 1px 0 rgb(255 255 255 / 72%), 0 2px 6px rgb(0 0 0 / 6%);
    opacity: 0;
    pointer-events: none;
    transform-origin: center;
    transform: translateY(calc(var(--hc-dock-shift) * .5)) scale(var(--hc-dock-item-x-scale), var(--hc-dock-item-scale));
    transition: opacity 180ms ease, transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  /* Keep DOM geometry stable but restrict hit testing to the visible >=48px row. */
  .hc-mobile-dock-item::after {
    content: '';
    position: absolute;
    inset: var(--hc-dock-shift) 0 0;
    border-radius: inherit;
    pointer-events: auto;
    transform-origin: center;
    transform: scaleX(var(--hc-dock-item-x-scale));
    transition: transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  .hc-mobile-dock-item > span {
    max-width: 100%;
    overflow-wrap: anywhere;
    pointer-events: none;
    transition: opacity 180ms ease, transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  .hc-mobile-dock-icon {
    display: block;
    width: 28px;
    height: 28px;
    fill: currentColor;
    pointer-events: none;
    transform-origin: center;
    transition: transform var(--hc-dock-duration) var(--hc-dock-ease);
  }
  html.hc-mobile-dock-compact .hc-mobile-dock-item > span { opacity: 0; transform: translateY(6px); }
  html.hc-mobile-dock-compact .hc-mobile-dock-icon { transform: translateY(calc(var(--hc-mobile-nav-collapse, 16px) + 8px)) scale(.79); }
  .hc-mobile-dock-item:is([aria-current="page"], [data-section-active="true"], [aria-expanded="true"]) { color: #0d1720; font-weight: 700; }
  .hc-mobile-dock-item:hover { color: #0d1720; text-decoration: none; }
  .hc-mobile-dock-item:is([aria-current="page"], [data-section-active="true"], [aria-expanded="true"])::before,
  .hc-mobile-dock-item:hover::before,
  .hc-mobile-dock-item:active::before,
  .hc-mobile-dock-item:focus-visible::before { opacity: 1; }
  .hc-mobile-dock-item:active .hc-mobile-dock-icon { transform: scale(.92); }
  html.hc-mobile-dock-compact .hc-mobile-dock-item:active .hc-mobile-dock-icon { transform: translateY(calc(var(--hc-mobile-nav-collapse, 16px) + 8px)) scale(.72); }
  .hc-mobile-dock-item:focus-visible { outline: 2px solid #243039; outline-offset: -2px; }
  body.has-dialog .hc-mobile-dock,
  body.hc-mobile-text-entry .hc-mobile-dock { visibility: hidden; pointer-events: none; }
  body.hc-theme .hc-site-footer.hc-footer-v3 { padding-bottom: var(--hc-mobile-nav-height); }
  /* Keep the existing financing summary/action usable, above the new navigation. */
  body.hc-theme .lp-mobile-bar:not([hidden]) { bottom: var(--hc-mobile-nav-height); padding-bottom: 12px; }
  body.hc-theme .lp-mobile-bar { transition: transform 380ms cubic-bezier(.4, 0, .2, 1); }
  html.hc-mobile-dock-compact body.hc-theme .lp-mobile-bar:not([hidden]) { transform: translateY(var(--hc-mobile-nav-collapse, 16px)); }
  html { scroll-padding-bottom: calc(var(--hc-mobile-nav-height) + 16px); }
}

@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .hc-mobile-dock::before { background: #f1f4f6; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .hc-mobile-dock::after { display: none; }
  .hc-mobile-dock-item::before { background-image: none; }
}

@media (forced-colors: active) {
  .hc-mobile-dock::before { background: Canvas; border-color: ButtonText; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .hc-mobile-dock::after { display: none; }
  .hc-mobile-dock-item { color: ButtonText; }
  .hc-mobile-dock-item::before { background: Highlight; box-shadow: none; }
  .hc-mobile-dock-item:is([aria-current="page"], [data-section-active="true"], [aria-expanded="true"]),
  .hc-mobile-dock-item:hover,
  .hc-mobile-dock-item:focus-visible { color: HighlightText; }
  .hc-mobile-dock-item:focus-visible { outline-color: Highlight; }
}

@media (max-width: 360px) {
  .hc-mobile-dock-item { font-size: 11px; }
  .hc-site-header .hc-brand-lockup { gap: 6px; }
  .hc-site-header .hc-brand-logo { width: 44px; }
  .hc-site-header .hc-partner-logo { width: 88px; }
  .hc-site-header .hc-header-phone { font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .hc-site-header { --hc-header-scroll-duration: 0ms; }
  .hc-mobile-dock-icon { transition: none; }
  .hc-mobile-dock::before,
  .hc-mobile-dock::after,
  .hc-mobile-dock-item,
  .hc-mobile-dock-item::before,
  .hc-mobile-dock-item::after,
  .hc-mobile-dock-item > span,
  body.hc-theme .lp-mobile-bar { transition: none; }
  .hc-mobile-dock-item:active .hc-mobile-dock-icon { transform: none; }
  html.hc-mobile-dock-compact .hc-mobile-dock-item:active .hc-mobile-dock-icon { transform: translateY(calc(var(--hc-mobile-nav-collapse, 16px) + 8px)) scale(.79); }
}
@media print {
  .hc-mobile-dock { display: none; }
  .hc-site-header.is-mobile-scroll-hidden { transform: none; pointer-events: auto; }
}
