/* Self-hosted web fonts (SIL Open Font License 1.1; licences in review-assets/fonts/). Latin subset only, preloaded from the head.
   No local() fallback faces: Chrome resolves local() names through a system font table that a fresh browser process
   builds before the first paint (about two seconds on Windows), so the stacks fall back to plain system families. */
@font-face{font-family:"Figtree";src:url(/assets/cities/3f6bb37f80010ea1/fonts/figtree-latin-var.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Sofia Sans Extra Condensed";src:url(/assets/cities/3f6bb37f80010ea1/fonts/sofia-sans-extra-condensed-900-latin.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* PartyBus base styles: tokens, resets, shared layout primitives. */
:root{--ink:#202020;--blue:#1265ff;--blue-dark:#084bc7;--pale:#f5f5f7;--accent-surface:#bbd2ff;--rule:#e5e5e5;--muted:#5b5b61;--card:#303030;--display:"Sofia Sans Extra Condensed",Impact,sans-serif;--body:Figtree,Arial,sans-serif;--gutter:clamp(24px,5.28vw,84px);--section:104px;--nav-height:104px;scroll-padding-top:calc(var(--nav-height) + 16px);--page:1440px;--radius:24px;font-synthesis:none;color:var(--ink);background:white}
*{box-sizing:border-box}
body{margin:0}
img{display:block;max-width:100%;height:auto}
.wordmark,.help-wordmark,.comparison-wordmark,.footer-wordmark{display:block;height:auto}
button,input{color:inherit}
button,summary{cursor:pointer}
a{color:inherit}
/* Reading links have a fine underline at rest and a stronger underline on hover
   or keyboard focus. Preserve the surrounding text color and layout. */
a[href]{text-decoration-line:none!important}
p a[href]:not(.button):not([class*="button--"]),.post-body li a[href]:not(.button):not([class*="button--"]),.post-body td a[href]:not(.button):not([class*="button--"]),.post-body th a[href]:not(.button):not([class*="button--"]),.post-body dd a[href]:not(.button):not([class*="button--"]){color:inherit!important;font-weight:var(--weight-bold);text-decoration-line:underline!important;text-decoration-thickness:1px!important;text-decoration-color:currentColor!important;text-underline-offset:4px!important}
/* Inline text descendants share one continuous hover or focus underline. */
a[href]:hover,a[href]:focus-visible{text-decoration-line:underline!important;text-decoration-color:currentColor!important;text-underline-offset:4px!important}
p a[href]:not(.button):not([class*="button--"]):hover,p a[href]:not(.button):not([class*="button--"]):focus-visible,.post-body li a[href]:not(.button):not([class*="button--"]):hover,.post-body li a[href]:not(.button):not([class*="button--"]):focus-visible,.post-body td a[href]:not(.button):not([class*="button--"]):hover,.post-body td a[href]:not(.button):not([class*="button--"]):focus-visible,.post-body th a[href]:not(.button):not([class*="button--"]):hover,.post-body th a[href]:not(.button):not([class*="button--"]):focus-visible,.post-body dd a[href]:not(.button):not([class*="button--"]):hover,.post-body dd a[href]:not(.button):not([class*="button--"]):focus-visible{text-decoration-thickness:2px!important}
:is(p,td,dd) a[href]:not(.button):not([class*="button--"]){color:inherit!important;font-weight:var(--weight-bold)}
#site-notice a[href]{font-weight:var(--weight-bold)}
a,button,input,summary{-webkit-tap-highlight-color:transparent}
a svg,button svg,summary svg{flex-shrink:0}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
p:not(.heading-label)+p:not(.heading-label){margin-top:24px}
p a{text-underline-offset:4px}
.container{width:min(calc(100% - 2*var(--gutter)),var(--page));margin-inline:auto}
.section{padding-block:var(--section)}
.section-dark{color:white;background:var(--ink)}
.section-heading{text-align:center;max-width:1050px;margin:0 auto 64px}
.section-heading p{max-width:1000px;margin:32px auto 0}
.section-action{display:flex;justify-content:center;margin-top:48px}
.actions{display:flex;gap:14px;flex-wrap:wrap}
.button{display:inline-flex;justify-content:center;align-items:center;gap:20px;min-height:62px;padding:18px 30px;border:2px solid transparent;border-radius:999px;text-decoration:none;transition:background .15s,color .15s}
.button--blue{background:var(--blue);color:white}
.button--blue:hover{background:var(--blue-dark)}
.button--white{background:white;color:var(--blue-dark)}
.button--white:hover{background:var(--pale)}
.button--outline{border-color:var(--ink);gap:10px;color:var(--ink)}
.button--outline:hover{background:var(--ink);color:white}
.button--inverse{border-color:white;color:white}
.button--inverse:hover{background:white;color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:20px;text-underline-offset:5px}
:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.section-dark :focus-visible{outline-color:white}
summary{list-style:none}
summary::-webkit-details-marker{display:none}
[hidden]{display:none!important}
.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0;margin:-1px}
.skip:focus{position:fixed;top:8px;left:8px;background:white;padding:14px;z-index:100}
.hero{position:relative;isolation:isolate;background:var(--ink);color:white}
.hero-picture,.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover;object-position:center}
.hero-shade{z-index:-1;background:linear-gradient(90deg,#07101ae6,#07101aa6 65%,#07101a66)}
.hero-layout{display:grid;grid-template-columns:1.45fr 1fr;align-items:start;gap:80px;min-height:850px;padding-block:100px 90px}
.hero-copy h1{max-width:750px}
.hero-lead{margin-top:var(--heading-copy-gap);max-width:670px}
.hero-quote{color:var(--ink);position:relative}
.hero-quote-body{position:relative;padding:36px;background:white;border-radius:20px}
.hero-quote-title{margin-bottom:var(--heading-copy-gap)}
.hero-quote-title span{color:var(--blue)}
.quote-note{text-align:center;margin-top:8px}
.step-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.step-card{border:1px solid var(--rule);border-radius:var(--radius);padding:40px;text-align:center;background:white;color:var(--ink)}
.step-card :is(h3,.process-step-title){margin:28px auto 24px;max-width:340px}
.step-number{color:var(--blue);padding-top:12px}
.photo-collage{position:absolute;inset:0;z-index:-2;overflow:hidden}
.photo-collage{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr;gap:8px;padding:8px}
.photo-collage img{width:100%;height:100%;object-fit:cover}
.quote-cards{display:grid;grid-template-columns:2.08fr 1fr;gap:32px;align-items:stretch}
.quote-main{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);background:var(--accent-surface);color:var(--ink);min-height:550px;display:flex;align-items:center;padding:60px 64px}
.quote-main-copy{position:relative;z-index:1;width:55%;max-width:400px}
.quote-main p:not(.heading-label){margin:24px 0 36px}
.quote-main .button{background:var(--ink);color:white;min-height:60px;padding:20px 30px;gap:16px}
.quote-main .button:hover{background:#3d3d3d}
.quote-phone{aspect-ratio:1514/1039;position:absolute;z-index:0;bottom:0;right:-110px;height:500px;width:auto;max-width:none;pointer-events:none}
.quote-support{border:1px solid var(--rule);border-radius:var(--radius);padding:60px 38px 54px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.quote-support-title{margin-bottom:26px}
.quote-support p:not(.heading-label){max-width:310px}
.accordion-list summary:focus-visible{outline-offset:-5px;border-radius:21px}
.accordion-container{width:min(calc(100% - 2*var(--gutter)),960px);margin-inline:auto}
.accordion-container .section-heading{margin-bottom:64px}
.accordion-list{display:grid;gap:16px}
.accordion-list details{border:1px solid var(--rule);border-radius:22px;overflow:hidden}
.accordion-list summary{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:36px 40px;min-height:116px}
.accordion-plus{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:white;flex-shrink:0}
.accordion-plus svg{width:22px;height:22px}
.accordion-list details[open] .accordion-plus svg{transform:rotate(45deg)}
.accordion-content{padding:0 115px 36px 40px}
#city-results{background:white;border:1px solid var(--rule);border-radius:12px;padding:12px;margin-top:18px;max-height:390px;overflow:auto;position:relative}
.city-result{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px;border-radius:8px;text-decoration:none}
.city-result[aria-selected=true],.city-result:hover{background:var(--pale)}
.city-result[aria-selected=true]{color:var(--blue-dark)}
.city-result span+span{color:var(--muted)}
.search-fallback{padding:10px}
.search-fallback p{margin:16px 0}
.search-fallback a{color:var(--blue-dark)}
.help-card{width:min(calc(100% - 2*var(--gutter)),var(--page));margin-inline:auto;padding:64px;background:var(--card);border-radius:var(--radius)}
.help-wordmark{width:210px;height:auto;margin-bottom:58px}
.help-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.help-layout .actions{margin-top:32px;flex-direction:column}
.help-layout .button{width:100%}
footer{background:var(--ink);color:white;border-top:1px solid #ffffff20}
@media(max-width:1100px){:root{--gutter:36px;--section:90px}
.hero-layout{gap:45px;grid-template-columns:1.35fr 1fr;min-height:780px;padding-block:90px 70px}
.hero-quote-body{padding:26px}
.step-cards{gap:22px}
.step-card{padding:30px 25px}
.help-card{padding:50px}
.help-layout{gap:44px}}
@media(max-width:900px){:root{--gutter:24px;--section:68px;--nav-height:82px}
.section-heading{margin-bottom:36px}
.section-heading p{margin-top:25px}
.section-action{margin-top:32px}
.button{min-height:58px;padding:16px 24px}
.text-link{gap:14px}
.hero-layout{display:block;min-height:0;padding-block:78px 45px}
.hero-copy{text-align:center}
.hero-copy h1{max-width:600px;margin-inline:auto}
.hero-lead{margin:26px auto 0;max-width:570px}
.hero-quote{margin:35px auto 0;max-width:500px}
.hero-quote-body{padding:26px}
.hero-quote-title{text-align:center}
.hero-shade{background:#08121bcf}
.step-cards{grid-template-columns:1fr;max-width:560px;margin-inline:auto;gap:24px}
.step-card{padding:32px}
.step-card :is(h3,.process-step-title),.why-cards .step-card :is(h3,.process-step-title),.process .step-card :is(h3,.process-step-title){min-height:0;max-width:420px;margin:23px auto}
.photo-collage{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr)}
.accordion-container .section-heading{margin-bottom:35px}
.accordion-list{gap:14px}
.accordion-list summary{padding:26px 25px;min-height:100px;gap:20px}
.accordion-plus{width:32px;height:32px}
.accordion-plus svg{width:20px;height:20px}
.accordion-content{padding:0 25px 28px}
.help-card{padding:35px 30px}
.help-wordmark{width:190px;margin-bottom:35px}
.help-layout{display:block}
.help-layout .actions{max-width:430px}}
@media(max-width:480px){:root{--gutter:20px}
.accordion-list summary{padding:23px 22px;gap:15px}
.step-card{padding:30px}
.help-card{padding:34px 26px}}
@media(max-width:360px){.accordion-list summary{padding:22px 18px}}
@media(max-width:900px){.help-layout h2{margin-bottom:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media (min-width:1700px){:root{--page:1440px}
.quote-main{min-height:590px}
.quote-phone{right:-110px}}
@media (max-width:1200px) and (min-width:901px){.quote-main{padding:48px 40px;min-height:520px}
.quote-main-copy{width:57%}
.quote-phone{height:400px;right:-155px}
.quote-support{padding:40px 24px}}
@media (max-width:900px){.quote-cards{grid-template-columns:1fr;max-width:700px;gap:24px}
.quote-main{min-height:510px;padding:48px 40px}
.quote-main-copy{width:51%;max-width:340px}
.quote-main p:not(.heading-label){margin:24px 0 32px}
.quote-phone{height:420px;right:-120px}
.quote-support{padding:45px 32px}
.quote-support-title{margin-bottom:22px}
.quote-support p:not(.heading-label){max-width:380px}}
@media (max-width:700px){.quote-main{display:block;min-height:0;padding:40px 30px 0}
.quote-main-copy{width:100%;max-width:none}
.quote-main .pricing-title{max-width:340px}
.quote-main p:not(.heading-label){max-width:340px;margin:24px 0 28px}
.quote-main .button{min-height:58px;padding:19px 30px}
.quote-phone{position:relative;height:350px;right:auto;bottom:auto;width:auto;margin:12px 0 0 -106px}
.quote-support{padding:36px 28px 40px}}
@media (max-width:360px){.quote-main{padding:34px 24px 0}
.quote-phone{height:305px;margin-left:-98px}
.quote-support{padding-inline:22px}}
.why-cards .step-card{padding:40px 32px 48px}
.why-cards .step-card :is(h3,.process-step-title){margin:28px 0 22px}
@media(max-width:1100px){.why-cards .step-card{padding:32px 24px}}
@media(max-width:900px){.why-cards .step-card :is(h3,.process-step-title){min-height:0;margin-top:24px}}

/* Responsive navigation with PartyBus typography, wordmark and primary pill action. */
.site-notice { position: static; padding: 8px 16px; background: #111111; color: rgba(255,255,255,.88); text-align: center; }
.site-notice .container { width: 100%; min-height: 3em; }
.site-notice a { color: white; text-decoration: underline; text-underline-offset: 2px; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: white;
  color: var(--ink);
  border-bottom: 1px solid var(--rule);
  box-shadow: 0 2px 12px #20202006;
}
.nav-inner {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  min-height: 88px;
  gap: 24px;
  padding-block: 16px;
}
.nav-brand { display: flex; flex: 1 1 310px; align-items: center; min-width: 0; }
.wordmark { width: 200px; height: auto; }
.primary-nav { flex: 0 1 auto; min-width: 0; }
.nav-desktop { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; }
.nav-desktop > li { min-width: 0; }
.nav-menu, .primary-nav > .nav-mobile-call { display: none; }
.primary-nav summary { list-style: none; cursor: pointer; }
.primary-nav summary::-webkit-details-marker { display: none; }
.primary-nav a, .nav-resources > summary {
  display: flex;
  min-width: 0;
  align-items: center;
  min-height: 44px;
  padding: 14px 18px;
  text-decoration: none;
  text-underline-offset: 5px;
}
.nav-resources { position: relative; }
.nav-resources > summary { justify-content: space-between; gap: 8px; }
.nav-resources > summary svg { width: 18px; height: 18px; flex: none; }
.nav-resources[open] > summary svg { transform: rotate(180deg); }
.nav-desktop > li > a, .nav-desktop > li > .nav-resources > summary {
  justify-content: center;
  min-height: 44px;
  height: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  text-align: center;
}
.nav-desktop > li > a:hover { background: var(--pale); }
.nav-desktop > li > .nav-resources[open] > summary { color: var(--blue-dark); background: var(--pale); }
.nav-desktop .nav-resources > ul {
  position: absolute;
  z-index: 1;
  top: calc(100% + 8px);
  right: 0;
  width: min(300px, calc(100vw - 2 * var(--gutter)));
  max-height: calc(100vh - var(--nav-height) - 16px);
  max-height: calc(100dvh - var(--nav-height) - 16px);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--rule);
  border-radius: 16px;
  background: white;
  box-shadow: 0 12px 32px #2020201a;
}
.nav-desktop .nav-resources::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 8px; }
.nav-desktop .nav-resources ul a { border-radius: 8px; }
.nav-resources li + li { border-top: 1px solid var(--rule); }
.nav-resources ul a:hover { background: var(--pale); }
.primary-nav summary:hover { color: var(--blue-dark); }
.primary-nav .button--blue:hover { color: white; }
.primary-nav .button--outline:hover { color: white; }
.primary-nav a:focus-visible, .primary-nav summary:focus-visible { outline-offset: 2px; }
.header-actions { display: flex; flex: 1 1 310px; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 16px; min-width: 0; }
.header-phone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; padding: 12px 20px; border: 2px solid transparent; border-radius: 999px; background: var(--blue); color: white; text-align: center; text-decoration: none; transition: background .15s, color .15s; }
.header-phone:hover { background: var(--blue-dark); color: white; }
.header-actions .button { min-height: 56px; padding: 14px 24px; gap: 16px; max-width: 100%; text-align: center; }
.nav-menu-toggle { display: flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; padding: 10px; border-radius: 50%; }
.nav-menu-toggle svg { display: block; width: 24px; height: 24px; }
.nav-icon-close, .nav-menu[open] .nav-icon-open { display: none; }
.nav-menu[open] .nav-icon-close { display: block; }

@media (min-width: 1025px) and (max-width: 1360px) {
  .nav-inner { gap: 12px; }
  .nav-brand { flex: 0 1 160px; }
  .primary-nav { flex: 1 1 auto; }
  .wordmark { width: 160px; }
  .nav-desktop { gap: 0; }
  .nav-desktop > li > a, .nav-desktop > li > .nav-resources > summary { padding-inline: 8px; }
  .header-actions { flex: 0 1 auto; gap: 12px; }
  .header-actions .button { padding-inline: 16px; gap: 10px; }
}
@media (max-width: 1024px) {
  :root { --nav-height: 73px; }
  .nav-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 72px; gap: 16px; padding-block: 14px; }
  .nav-brand { grid-column: 1; grid-row: 1; }
  .wordmark { width: 180px; }
  .primary-nav { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
  .header-actions, .nav-desktop { display: none; }
  .primary-nav > .nav-mobile-call { display: inline-flex; justify-content: center; width: auto; min-height: 44px; padding: 10px 14px; border: 2px solid transparent; border-radius: 999px; background: var(--blue); color: white; flex: none; text-align: center; }
  .primary-nav > .nav-mobile-call:hover { background: var(--blue-dark); color: white; }
  .nav-menu-toggle:hover { background: var(--pale); color: var(--blue-dark); }
  .nav-menu { display: block; flex: none; }
  .nav-panel {
    position: fixed;
    top: var(--nav-height);
    left: 0;
    right: 0;
    height: calc(100vh - var(--nav-height));
    height: calc(100dvh - var(--nav-height));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 0 env(safe-area-inset-bottom, 0px);
    background: white;
  }
  .nav-panel-list > li { border-bottom: 1px solid var(--rule); }
  .nav-panel-list > li > a, .nav-panel-list > li > .nav-resources > summary { min-height: 60px; padding: 18px 28px; }
  .nav-panel-list .nav-resources > ul { margin: 0; padding: 0; border-top: 1px solid var(--rule); }
  .nav-panel-list .nav-resources ul a { min-height: 52px; padding: 15px 44px; }
  .nav-panel-actions { display: grid; gap: 12px; padding: 24px 20px; }
  .nav-panel-actions .button { justify-content: center; width: 100%; min-height: 56px; padding: 16px 24px; text-align: center; }
  body.has-open-nav, body:has(.nav-menu[open]) { overflow: hidden; }
}
@media (max-width: 480px) {
  .nav-inner { width: calc(100% - 32px); }
  .nav-inner { gap: 8px; }
  .wordmark { width: min(160px, 100%); }
}
@media (max-width: 900px) {
  .site-notice .container { min-height: 7.5em; }
}

.site-footer { background: var(--ink); color: white; padding-block: 64px 112px; }
.footer-intro { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 36px; }
.footer-logo { max-width: 100%; }
.footer-wordmark { width: 280px; max-width: 100%; }
.footer-phone { display: inline-flex; align-items: center; min-height: 44px; }
.footer-navigation { display: grid; gap: 12px; margin-bottom: 24px; }
.footer-link-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 32px; margin: 0; padding: 0; list-style: none; }
.footer-link-row li { min-width: 0; max-width: 100%; }
.footer-link-row a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 7px; text-decoration: none; }
.site-footer a { color: white; font-weight: var(--weight-bold); text-decoration: none; text-underline-offset: 4px; overflow-wrap: anywhere; }
.site-footer a:hover { text-decoration: underline; }
.site-footer :focus-visible { outline: 3px solid white; outline-offset: 4px; }
.footer-privacy { padding-bottom: 24px; }
.footer-disclosure { padding-block: 28px; border-top: 1px solid #ffffff30; color: var(--text-inverse-muted); }
.footer-disclosure p { max-width: none; margin: 0; }
.footer-utility { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding-top: 24px; border-top: 1px solid #ffffff30; }
@media(max-width:1024px) { .site-footer { padding-bottom: calc(var(--mobile-quote-height,88px) + 96px); } }
@media(max-width:600px) {
  .site-footer { padding-top: 48px; }
  .footer-wordmark { width: 230px; }
  .footer-link-row { gap: 8px 24px; }
  .footer-utility { align-items: flex-start; flex-direction: column; }
}

/* Quote and phone actions share one responsive layout across homepage sections. */
main .button {
  min-height: 76px;
  max-width: 100%;
  padding: 20px 34px;
  text-align: center;
}
main .actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); align-items: stretch; width: 100%; gap: 16px; }
main .actions .button { min-width: 0; width: 100%; }
.button > span { min-width: 0; max-width: 100%; }
/* Keep the number in the same inline text flow as Call, including its underline. */
.button .phone-number { display: inline; overflow-wrap: anywhere; }
.hero-quote-body .actions { grid-template-columns: minmax(0, 1fr); margin-bottom: 24px; }
.section-action > .actions, .vehicle-gallery-action > .actions { width: min(100%, 760px); justify-content: center; }
.quote-main .actions, .help-layout .actions { grid-template-columns: minmax(0, 1fr); }
.quote-main .actions .button { flex: none; width: 100%; padding-inline: 22px; }
.quote-main .actions .button--blue { background: var(--blue); color: white; }
.quote-main .actions .button--blue:hover { background: var(--blue-dark); }
.quote-main .actions .button--outline { background: transparent; color: var(--ink); }
.quote-main .actions .button--outline:hover { background: var(--ink); color: white; }
.faqs { background: white; color: var(--ink); }
.faqs .accordion-list details { border-color: #b7b7bd; }
.faqs .accordion-plus { background: var(--blue); color: white; }
.faqs .accordion-list details[open] { background: #f7f7f8; }
@media (max-width: 900px) {
  main .button { min-height: 72px; padding: 18px 26px; }
  main .actions { max-width: 560px; justify-content: center; }
}
@media (max-width: 600px) {
  main .actions { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; }
}
@media (max-width: 480px) {
  main .actions .button { padding-inline: 10px; }
}

/* Quote and phone controls share the after-hero state with Back to Top. */
:root { --mobile-quote-height: 0px; }
.mobile-quote-bar { display: none; }
@media (max-width: 1024px) {
  :root { scroll-padding-bottom: calc(var(--mobile-quote-height) + 16px); }
  .mobile-quote-bar {
    position: fixed;
    z-index: 15;
    inset: auto 0 0;
    display: block;
    color: var(--ink);
    background: white;
    border-top: 1px solid var(--rule);
    box-shadow: 0 -4px 20px #2020200d;
  }
  .mobile-quote-inner {
    max-width: 560px;
    margin-inline: auto;
    padding: 12px max(16px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  }
  .mobile-quote-actions { display: grid; grid-template-columns: 1.5fr 1fr; gap: 8px; }
  .mobile-quote-actions .button { width: 100%; min-width: 0; min-height: 52px; padding: 10px 8px; gap: 8px; text-align: center; }
  .mobile-quote-bar :focus-visible { outline-color: var(--blue-dark); outline-offset: 3px; }
  .has-open-nav .mobile-quote-bar { display: none; }
}

/* Shared bottom-right controls. Mobile stays above the quote bar and device safe area. */
.quick-actions { position: fixed; z-index: 16; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); max-width: calc(100vw - 40px); }
.quick-actions-panel { position: relative; display: grid; gap: 10px; width: 320px; max-width: 100%; overflow-y: auto; overscroll-behavior: contain; margin: 0 0 12px auto; padding: 44px 16px 16px; border: 1px solid var(--rule); border-radius: 20px; background: white; color: var(--ink); box-shadow: 0 8px 36px #20202026; }
.quick-actions-panel .button { min-width: 0; width: 100%; min-height: 54px; padding: 12px 16px; gap: 10px; text-align: center; }
.quick-actions-close { position: absolute; top: 0; right: 2px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: transparent; color: var(--ink); border: 0; border-radius: 50%; }
.quick-actions-close svg { width: 18px; height: 18px; }
.quick-actions-bottom { display: flex; align-items: center; justify-content: end; gap: 10px; }
.back-to-top, .quick-actions-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--rule); border-radius: 999px; box-shadow: 0 4px 18px #20202018; }
.back-to-top { min-height: 53px; padding: 12px 20px; border-color: var(--blue); background: var(--blue); color: white; text-decoration: none; }
.quick-actions .quick-actions-toggle { width: auto; min-width: 0; min-height: 53px; padding: 12px 20px; border-color: var(--blue); background: var(--blue); color: white; font-size: var(--type-mobile-action); }
.quick-actions-toggle svg { width: 24px; height: 24px; flex: none; }
.back-to-top:hover { border-color: var(--blue-dark); background: var(--blue-dark); color: white; }
.back-to-top:focus-visible { outline-color: var(--blue-dark); outline-offset: 3px; }
.quick-actions-toggle:hover { border-color: var(--blue-dark); background: var(--blue-dark); color: white; }
.quick-actions-toggle:focus-visible { outline-color: var(--blue-dark); outline-offset: 3px; }
.has-open-nav .quick-actions { display: none; }
@media(max-width: 1024px) {
  .quick-actions { right: max(16px, env(safe-area-inset-right)); bottom: calc(var(--mobile-quote-height, 0px) + max(12px, env(safe-area-inset-bottom))); max-width: calc(100vw - 32px); }
  .quick-actions-panel, .quick-actions-toggle { display: none; }
}

/* Cookie notice: a compact bar that never covers the page, and the native preferences dialog. */
.cookie-notice { position: fixed; z-index: 17; left: 24px; bottom: 18px; width: min(660px, calc(100vw - 48px)); display: grid; gap: 8px; padding: 10px 12px 12px; border: 1px solid var(--rule); border-top: 3px solid var(--blue); border-radius: 14px; background: white; color: var(--ink); box-shadow: 0 16px 46px #0004; }
.cookie-notice p { margin: 0; }
.cookie-notice p.cookie-notice-eyebrow { margin-bottom: 3px; color: var(--blue-dark); }
.cookie-notice a, .cookie-dialog a { color: var(--blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.cookie-notice-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.cookie-button { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 34px; padding: 7px 12px; border: 2px solid transparent; border-radius: 999px; background: transparent; color: var(--ink); white-space: nowrap; transition: background .15s, color .15s; }
.cookie-button--primary { background: var(--blue); color: white; }
.cookie-button--primary:hover { background: var(--blue-dark); }
.cookie-button--light { border-color: var(--rule); background: white; }
.cookie-button--light:hover { background: var(--pale); }
.cookie-button--outline { border-color: var(--ink); }
.cookie-button--outline:hover { background: var(--ink); color: white; }
.cookie-dialog { position: fixed; inset: 0; width: min(640px, calc(100vw - 32px)); max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 24px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--rule); border-radius: 20px; color: var(--ink); background: white; box-shadow: 0 16px 64px #0004; }
.cookie-dialog::backdrop { background: #0009; }
html:has(.cookie-dialog[open]) { overflow: hidden; }
body:has(.cookie-dialog[open]) { padding-right: var(--scroll-lock-gutter, 0px); }
.cookie-dialog-heading { display: flex; gap: 16px; align-items: start; justify-content: space-between; margin-bottom: 12px; }
.cookie-dialog p { margin: 0; }
.cookie-dialog p + p { margin-top: 12px; }
.cookie-close { display: grid; place-items: center; flex: none; width: 40px; height: 40px; padding: 8px; border: 1px solid var(--rule); border-radius: 50%; background: white; color: var(--ink); }
.cookie-close svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; }
.cookie-gpc, .cookie-save-status { padding: 12px 14px; background: var(--pale); border-radius: 10px; }
.cookie-dialog p.cookie-confirm { margin-top: 12px; }
.cookie-dialog form { margin-top: 8px; }
.cookie-setting { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 16px; padding-block: 16px; border-bottom: 1px solid var(--rule); }
.cookie-dialog p.cookie-setting-title, .cookie-setting label strong { display: block; margin: 0 0 4px; }
.cookie-dialog .cookie-setting-title + p { margin-top: 0; }
.cookie-setting label { cursor: pointer; }
.cookie-setting label span { display: block; }
.cookie-setting input { width: 28px; height: 28px; margin: 0; accent-color: var(--blue); cursor: pointer; }
.cookie-setting input:disabled { cursor: default; }
.cookie-always { padding-block: 2px; color: var(--blue-dark); white-space: nowrap; }
.cookie-scope { padding-block: 16px; }
.cookie-dialog-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; margin-top: 8px; }
.cookie-dialog-actions-main { display: flex; flex-wrap: wrap; gap: 8px; }
.cookie-dialog .cookie-button { min-height: 44px; padding: 10px 18px; }
.cookie-notice :focus-visible, .cookie-dialog :focus-visible { outline: 3px solid var(--blue-dark); outline-offset: 3px; }
.has-open-nav .cookie-notice { display: none; }
@media (max-width: 1024px) {
  .cookie-notice { left: 16px; bottom: 16px; transform: translateY(var(--cookie-notice-lift, 0px)); width: min(620px, calc(100vw - 32px)); max-height: var(--cookie-notice-max-height, calc(100dvh - var(--nav-height) - 220px)); overflow: auto; overscroll-behavior: contain; }
}
@media (max-width: 760px) {
  .cookie-notice { left: 12px; width: calc(100vw - 24px); }
  .cookie-button { padding-inline: 6px; white-space: normal; }
}
@media (max-width: 480px) {
  .cookie-dialog { padding: 20px; }
  .cookie-dialog-heading { gap: 8px; }
  .cookie-setting { gap: 12px; }
  .cookie-setting:has(.cookie-always) { grid-template-columns: 1fr; }
  .cookie-dialog-actions, .cookie-dialog-actions-main { display: grid; grid-template-columns: 1fr; }
}

.quote-dialog { width: min(960px, calc(100% - 40px)); max-width: none; height: calc(100dvh - 40px); max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 0; border-radius: 24px; color: var(--ink); background: white; box-shadow: 0 24px 80px #0004; overflow: auto; overscroll-behavior: contain; }
.quote-dialog:not([open]) { display: none; }
.quote-dialog::backdrop { background: #101722b8; backdrop-filter: blur(4px); }
.quote-dialog-header { position: sticky; top: 0; z-index: 3; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px 32px; background: white; border-bottom: 1px solid #dedee3; }
.quote-dialog-header .quote-dialog-title { margin: 0; }
.quote-dialog-close { flex: 0 0 48px; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--blue); color: white; cursor: pointer; display: grid; place-items: center; }
.quote-dialog-close:hover { background: var(--blue-dark, #084bc7); }
.quote-dialog-body { padding: 24px 32px 32px; }
.quote-dialog-body > p { margin: 0 0 var(--text-gap); }
.quote-load-status { position: absolute; inset: 0 0 auto; margin: 0; padding: 20px; background: #f4f5f7; border-radius: 12px; }
.quote-form-mount { position: relative; min-width: 0; min-height: calc(100dvh - 160px); }
.quote-form-fallback { margin-top: 24px; padding-top: 24px; border-top: 1px solid #dedee3; }
.quote-form-fallback p { margin: 0 0 8px; }
.quote-dialog-body .quote-form-disclosure { margin: 24px 0 0; }
.quote-dialog a { color: var(--blue); text-underline-offset: .15em; }
.quote-form-mount :is(input,select,textarea) { min-height: 48px; max-width: 100%; padding: 10px 12px; border: 1px solid #8d919a; border-radius: 10px; background-color: white; }
.quote-form-mount textarea { min-height: 140px; resize: vertical; }
.quote-form-mount :is(input,select,textarea):focus { outline: 3px solid var(--blue); outline-offset: 2px; box-shadow: none; }
.quote-form-mount [class*="tw-mb-3"] { margin-bottom: 24px; }
.quote-form-mount [class*="tw-grid"] { gap: 20px; }
.quote-form-mount label { margin-bottom: 8px; }
.quote-form-mount button[type="submit"] { width: 100%; min-height: 64px; padding: 16px 24px; border: 0; border-radius: 999px; background: var(--blue); color: white; cursor: pointer; }
.quote-form-mount button[type="submit"]:hover { background: var(--blue-dark, #084bc7); }
.quote-form-mount button:disabled { cursor: wait; }
.quote-form-mount :is(button,input,select,textarea,a):focus-visible, .quote-dialog :is(button,a):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.quote-form-mount button[type="submit"]:focus-visible, .quote-dialog-close:focus-visible { outline-color: var(--ink); }
.quote-form-mount ul { max-height: 240px; overflow-y: auto; background: white; color: var(--ink); }
.quote-form-mount li { padding: 10px 12px; }
.quote-form-mount [role="listbox"] { max-height: 240px; overflow-y: auto; border: 1px solid #8d919a; border-radius: 10px; z-index: 4; }
.quote-form-mount [role="option"][aria-selected="true"] { background: var(--blue); color: white; }
.quote-form-mount [role="option"][aria-selected="true"] span { color: inherit; }
html:has(.quote-dialog[open]) { overflow: hidden; }
body:has(.quote-dialog[open]) { padding-right: var(--scroll-lock-gutter, 0px); }
body:has(.quote-dialog[open]) > :is(.cookie-notice,.quick-actions,.mobile-quote-bar) { visibility: hidden; }
@media (max-width: 640px) {
  .quote-dialog { width: calc(100% - 16px); height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); border-radius: 16px; }
  .quote-dialog-header { gap: 12px; padding: 20px 16px; }
  .quote-dialog-body { padding: 20px 16px; }
  /* The provider stylesheet loads later; keep mobile columns and spans more specific. */
  .quote-dialog .quote-form-mount [class*="tw-grid-cols-2"] { grid-template-columns: minmax(0,1fr); }
  .quote-dialog .quote-form-mount [class*="tw-grid-cols-3"] { grid-template-columns: minmax(0,1fr); }
  .quote-dialog .quote-form-mount [class*="tw-col-span-3"] { grid-column: 1; }
  .quote-dialog .quote-form-mount [class*="tw-col-span-full"] { grid-column: 1 / -1; }
  .quote-dialog .quote-form-mount select { padding: 10px 32px 10px 12px; background-position: right 8px center; background-size: 20px 20px; }
  .quote-form-mount label.tw-sr-only { position: static; width: auto; height: auto; padding: 0; margin: 0 0 8px; overflow: visible; clip: auto; white-space: normal; display: block; }
}

/* Shared phone composition: centered section titles and primary actions. */
@media (max-width: 900px) {
  main section h1,
  main section h2,
  main section .hero-quote-title,
  main section .pricing-title { text-align: center; margin-inline: auto; }
  main section p.section-eyebrow { margin-inline: auto; }
  .about-story-copy > .button {
    display: flex;
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
  }
  main section .actions { justify-content: center; margin-inline: auto; }
  .help-wordmark { margin-inline: auto; }
}

/* PartyBus type system. Component files own layout; this file owns text roles. */
:root {
  --type-breadcrumb: clamp(1.25rem, 1.5vw, 1.375rem);
  --type-breadcrumb-small: .875rem;
  --leading-breadcrumb: 1.2;
  --tracking-breadcrumb: .12em;
  --tracking-breadcrumb-small: .05em;
  /* Owner-approved individual Blog article section size, September 15. */
  --type-article-section: 40pt;
  --type-price-amount: 1.25rem;
  --weight-body: 400;
  --weight-bold: 700;
  --weight-display: 900;
  --type-hero: clamp(4.0625rem, 7.15vw, 6.4375rem);
  --type-section: clamp(3.75rem, 7.2vw, 6.5rem);
  --type-section-dense: var(--type-section);
  --type-split: var(--type-section);
  --type-closing: clamp(3.5rem, 6.3vw, 5.75rem); /* sized so the longest closing word fits its column in the display face */
  --type-display-card: 2.625rem;
  --type-card: 1.625rem;
  --type-question: var(--type-body);
  --type-lead: var(--type-body);
  --type-body: 1.25rem;
  --type-ui: 1rem;
  --type-caption: var(--type-body);
  --type-small: var(--type-body);
  --type-notice: .78125rem;
  --type-action: 1.875rem;
  --type-nav-action: 1.3125rem;
  --type-mobile-action: 1.375rem;
  --type-stat: 6rem;
  --leading-display: .85;
  --leading-card: 1.2;
  --leading-lead: var(--leading-body);
  --leading-body: 1.5;
  --leading-ui: 1.4;
  --tracking-display: -.02em;
  --tracking-card: -.02em;
  --text-inverse-muted: #d6d6d6;
  --text-gap: 1.5rem;
  --heading-copy-gap: 2rem;
  --card-copy-gap: 1.5rem;
  font: var(--weight-body) 100%/var(--leading-body) var(--body);
  font-synthesis: none;
}

/* Body text uses the 400 and 700 instances of the variable body face; no synthesized weights. */
body, button, input { font-family: var(--body); }
.site-notice { font: var(--weight-body) var(--type-notice)/var(--leading-body) var(--body); }
button, input { font-size: var(--type-ui); line-height: var(--leading-ui); }
strong, b { font-weight: var(--weight-bold); }
p:not(.heading-label), .body-copy { font: var(--weight-body) var(--type-body)/var(--leading-body) var(--body); text-align: left; text-wrap: pretty; overflow-wrap: anywhere; }
main p:not(.heading-label):not(.section-eyebrow):not(.carousel-position):not(.mission-availability) { text-align: left; }
p:not(.heading-label) + p:not(.heading-label) { margin-top: var(--text-gap); }
main p:has(+ p):not(.heading-label):not(.section-eyebrow) { margin-bottom: 0; }
main p:not(.heading-label):not(.section-eyebrow) + p:not(.heading-label):not(.section-eyebrow) { margin-top: var(--text-gap); }
p a, .text-link { font-weight: var(--weight-bold); }
h1, h2, h3, .heading-label {
  font-family: var(--display);
  font-weight: var(--weight-display);
  font-size-adjust: none;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.heading-label { text-align: inherit; }
h2 { font-size: var(--type-section); }
h3 { font-size: var(--type-display-card); line-height: 1.05; }

/* Hero and full-width / constrained section titles share named display roles. */
.hero-copy h1 { font-size: var(--type-hero); }
.transportation-services h2 { font-size: var(--type-section-dense); }
.quote-main .pricing-title { font-size: var(--type-display-card); line-height: 1.05; }
.help-layout h2 { font-size: var(--type-closing); }
.hero-quote-title, .step-card :is(h3,.process-step-title), .why-cards .step-card :is(h3,.process-step-title),
.process .step-card :is(h3,.process-step-title), .quote-support-title { font-size: var(--type-display-card); line-height: 1.05; }
.step-card :is(h3,.process-step-title), .why-cards .step-card :is(h3,.process-step-title), .process .step-card :is(h3,.process-step-title), .quote-support-title { margin-bottom: var(--card-copy-gap); }
.step-number { font: var(--weight-display) 7.5rem/1 var(--display); font-size-adjust: none; }

/* All narrative paragraphs share one size, leading and alignment. */
.hero-lead, .section-heading > p:not(.section-eyebrow), .quote-main-copy > p:not(.heading-label):not(.section-eyebrow) {
  font: var(--weight-body) var(--type-lead)/var(--leading-lead) var(--body);
}
.section-heading > p:not(.section-eyebrow) { margin-top: var(--heading-copy-gap); }
.section-heading > p:not(.section-eyebrow) + p { margin-top: var(--text-gap); }
.quote-main-copy > p:not(.heading-label):not(.section-eyebrow) { margin-block: var(--text-gap) 2rem; }
.step-card p:not(.heading-label), .quote-support p:not(.heading-label),
.accordion-content p, .help-layout p, .service-section-intro p,
.service-tile-content p { font: var(--weight-body) var(--type-body)/var(--leading-body) var(--body); }
.service-tile-content p + p { margin-top: var(--text-gap); }

/* Fleet and editorial photo cards use the body face; expandable tiles share display-card type. */
.vehicle-category h3, .rental-guide-copy .rental-guide-title {
  font: var(--weight-bold) var(--type-card)/var(--leading-card) var(--body);
  letter-spacing: var(--tracking-card);
  text-transform: none;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.vehicle-category .vehicle-category-name { font: var(--weight-display) var(--type-split)/.95 var(--display); font-size-adjust: none; letter-spacing: var(--tracking-display); text-transform: uppercase; }
.fleet-arrow { font: var(--weight-body) 1.75rem/1 var(--body); }
.back-to-top { font: var(--weight-bold) var(--type-caption)/var(--leading-ui) var(--body); }
.quick-actions-panel .button { font-size: var(--type-mobile-action); }
.footer-disclosure p { font: var(--weight-body) var(--type-caption)/var(--leading-body) var(--body); }
.footer-navigation a { font: var(--weight-bold) var(--type-caption)/var(--leading-body) var(--body); }
.footer-utility { font: var(--weight-body) var(--type-caption)/var(--leading-body) var(--body); }
.footer-phone { font: var(--weight-bold) var(--type-body)/var(--leading-body) var(--body); }
.footer-privacy a { font: var(--weight-bold) var(--type-caption)/var(--leading-body) var(--body); }
/* Cookie controls: notice text at the site-notice size, dialog text at the UI size, compact display-face buttons. */
.cookie-notice p.cookie-notice-eyebrow { font: var(--weight-bold) .6875rem/1.1 var(--body); letter-spacing: .16em; text-transform: uppercase; }
.cookie-notice p { font: var(--weight-body) var(--type-notice)/1.35 var(--body); text-align: left; }
.cookie-dialog p.cookie-dialog-title { font: var(--weight-display) 2rem/1 var(--display); text-transform: uppercase; letter-spacing: var(--tracking-display); }
.cookie-dialog p, .cookie-setting label span { font: var(--weight-body) var(--type-ui)/var(--leading-body) var(--body); text-align: left; }
.cookie-dialog p.cookie-setting-title, .cookie-setting label strong, .cookie-always { font: var(--weight-bold) var(--type-ui)/var(--leading-ui) var(--body); text-transform: none; letter-spacing: 0; }
.cookie-button { font: var(--weight-display) .9375rem/1 var(--display); letter-spacing: .04em; text-transform: uppercase; }
.cookie-dialog .cookie-button { font-size: 1.0625rem; }
/* Photo shelf headings and copy use the shared display and body roles. */
.card-shelf-heading .photo-shelf-title { font: var(--weight-display) var(--type-section)/var(--leading-display) var(--display); font-size-adjust: none; text-transform: uppercase; letter-spacing: var(--tracking-display); text-wrap: balance; }
.shelf-card .shelf-card-title { font: var(--weight-display) var(--type-display-card)/1.05 var(--display); font-size-adjust: none; text-transform: uppercase; letter-spacing: var(--tracking-display); text-wrap: pretty; overflow-wrap: anywhere; }
.shelf-card p { font: var(--weight-body) var(--type-body)/var(--leading-body) var(--body); }
.service-tile-title { font-size: var(--type-display-card); line-height: 1.05; }
.accordion-list summary h3 { font: var(--weight-bold) var(--type-question)/var(--leading-ui) var(--body); letter-spacing: 0; text-transform: none; text-wrap: pretty; }

/* Quote and telephone buttons share one display role; placement controls the scale. */
.button, .header-phone, .primary-nav > .nav-mobile-call { font: var(--weight-display) var(--type-action)/1.1 var(--display); font-size-adjust: none; text-transform: uppercase; letter-spacing: .01em; }
.header-actions .button, .header-phone, .primary-nav > .nav-mobile-call { font-size: var(--type-nav-action); }
.primary-nav .nav-panel-actions .button { font: var(--weight-display) var(--type-action)/1.1 var(--display); text-transform: uppercase; }
.mobile-quote-actions .button { font-size: var(--type-mobile-action); }
.text-link { font: var(--weight-bold) var(--type-body)/var(--leading-body) var(--body); }
.primary-nav a, .primary-nav summary { font: var(--weight-bold) var(--type-ui)/var(--leading-ui) var(--body); }
/* Long words and enlarged labels must stay inside their available text column. */
.button, .text-link, .primary-nav a, .primary-nav summary,
.city-result, .search-fallback a { overflow-wrap: anywhere; }
.rental-blog-visit { font: var(--weight-bold) var(--type-ui)/1 var(--body); letter-spacing: .035em; text-transform: uppercase; }
.location-search-finder label, .search-fallback strong { font: var(--weight-bold) var(--type-ui)/var(--leading-ui) var(--body); }
.location-search-field input, .city-result { font: var(--weight-body) var(--type-ui)/var(--leading-ui) var(--body); }
.search-fallback p { font: var(--weight-body) var(--type-ui)/var(--leading-body) var(--body); }
.search-fallback a { font: var(--weight-bold) var(--type-ui)/var(--leading-ui) var(--body); }
.vehicle-photo-switch button, .location-search-clear { font: var(--weight-bold) var(--type-caption)/var(--leading-ui) var(--body); }
.city-result span + span { font: var(--weight-body) var(--type-caption)/var(--leading-ui) var(--body); }
.location-search-finder label, .location-search-field input, .city-result, .location-search-directory .text-link,
.search-fallback p, .search-fallback strong, .search-fallback a, .location-search-support { font-size: var(--type-body); }
.location-search-support { font: var(--weight-body) var(--type-body)/var(--leading-body) var(--body); }
.quote-note { font: var(--weight-body) var(--type-small)/var(--leading-body) var(--body); }
.carousel-position { font: var(--weight-bold) var(--type-small)/var(--leading-ui) var(--body); }

/* The additional comparison feature, published service facts and benefits. */
.travel-feature-copy > p { font: var(--weight-body) var(--type-body)/var(--leading-body) var(--body); }
.mission-stats dt { font: var(--weight-bold) var(--type-body)/var(--leading-ui) var(--body); }
.mission-stats dd { font: var(--weight-display) var(--type-stat)/1 var(--display); font-size-adjust: none; text-transform: uppercase; overflow-wrap: anywhere; }
.mission-availability { font-size: var(--type-caption); }
p.mission-availability { text-align: center; }

/* Comparison headers and benefits stay readable, including mobile card labels. */
.booking-comparison h2 { font-size: var(--type-section-dense); }
.comparison-table thead th { font: var(--weight-bold) var(--type-question)/var(--leading-ui) var(--body); overflow-wrap: anywhere; }
.comparison-table tbody th, .comparison-card-title { font: var(--weight-bold) var(--type-body)/var(--leading-body) var(--body); text-transform: none; letter-spacing: 0; text-wrap: pretty; overflow-wrap: anywhere; }
.comparison-results dt { font: var(--weight-bold) var(--type-caption)/var(--leading-ui) var(--body); overflow-wrap: anywhere; }

@media (min-width: 901px) {
  .why-cards .step-card :is(h3,.process-step-title) { min-height: 2.1em; }
  .process .step-card :is(h3,.process-step-title) { min-height: 3.15em; }
}

@media (max-width: 1100px) and (min-width: 901px) {
  :root { --type-hero: 4.75rem; --type-display-card: 2.25rem; --type-card: 1.375rem; }
}
@media (max-width: 900px) {
  :root {
    --type-hero: clamp(3.25rem, 11vw, 4.75rem);
    --type-section: 3rem; /* one step under the 3.375rem hero so section headings sit visibly below the H1 on phones (owner, 2026-09-11) */
    --type-closing: clamp(2.25rem, 12vw, 3rem); /* caps at the phone section size so the closing heading never outgrows the other H2s */
    --type-display-card: 2.25rem;
    --type-card: 1.375rem;
    --type-body: 1.125rem;
    --type-nav-action: 1.125rem;
    --type-stat: 4.5rem;
    --leading-display: .88;
    --heading-copy-gap: 1.5rem;
    --card-copy-gap: 1.25rem;
  }
  .step-number { font-size: 6rem; }
}
@media (max-width: 700px) {
  :root { --type-card: 1.625rem; }
}
@media (max-width: 480px) {
  :root { --type-hero: 3.375rem; }
}
@media (max-width: 360px) {
  :root { --type-hero: 3rem; --type-section: 2.5rem; }
}


/* Quote form shares the same named body, card-heading and action roles. */
.quote-dialog-header .quote-dialog-title { font: var(--weight-display) var(--type-display-card)/var(--leading-card) var(--display); letter-spacing: var(--tracking-card); text-transform: uppercase; }
.quote-dialog-close { font: var(--weight-body) var(--type-action)/1 var(--body); }
.quote-dialog #app :is(p,span,label,input,select,textarea,li), .quote-form-fallback { font: var(--weight-body) var(--type-body)/var(--leading-body) var(--body); text-transform: none; letter-spacing: normal; overflow-wrap: anywhere; }
.quote-dialog #app label { font-weight: var(--weight-bold); }
.quote-dialog #app button[type="submit"] { font: var(--weight-display) var(--type-action)/1.1 var(--display); letter-spacing: var(--tracking-card); text-transform: uppercase; }

/* Approved component variations; sizes are centrally owned, application stays component-scoped. */
:root {
  --weight-semibold: 600;
  --type-badge-caption: .875rem;
  --type-benefit-year-small: 1.5rem;
  --type-benefit-label-small: 1.375rem;
  --type-highlight-caption: clamp(1.375rem, 3.3cqw, 1.5rem);
  --type-viewer-relative: 106.25%;
  --type-viewer-copy: 17px;
  --type-viewer-caption: 14px;
  --type-viewer-heading: 48px;
  --type-viewer-heading-medium: 40px;
  --type-viewer-heading-small: 32px;
}
.about-benefits { --type-benefit: 4rem
}
@media (max-width: 600px) {
 .about-benefits { --type-benefit: 3rem
 }
}
.about-bus-types {
  --type-about-bus-card: 1.125rem
}
.about-impact { --type-about-history-year: clamp(7rem, 15vw, 14rem)
}
.about-statement {
  --type-about-statement: clamp(2.5rem, 4.4vw, 4.75rem)
}

/* One breadcrumb component. Existing page classes are compatibility hooks. */
:is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) {
  --breadcrumb-text: var(--muted);
  --breadcrumb-link: var(--ink);
  margin-bottom: 24px;
  color: var(--breadcrumb-text);
  font: var(--weight-display) var(--type-breadcrumb)/var(--leading-breadcrumb) var(--display);
  text-transform: uppercase;
  letter-spacing: var(--tracking-breadcrumb);
}
:is(.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs) {
  --breadcrumb-text: var(--text-inverse-muted);
  --breadcrumb-link: white;
}
.pricing-breadcrumbs { --breadcrumb-text: var(--pale); margin-bottom: 0; }
:is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) ol {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; min-height: 32px;
}
:is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) li {
  display: inline-flex; align-items: center; gap: 12px;
}
:is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) a {
  display: inline-flex; align-items: center; min-height: 32px; color: var(--breadcrumb-link); text-decoration: none;
}
:is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) a:hover { color: var(--breadcrumb-link); }
:is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.rentals-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) a:focus-visible { outline-color: var(--breadcrumb-link); }
:is(.site-breadcrumbs-separator,.about-breadcrumbs-separator,.services-breadcrumbs-separator,.city-breadcrumbs-separator,.rentals-breadcrumbs-separator,.pricing-breadcrumbs-separator,.contact-breadcrumbs-separator,.blog-breadcrumbs-separator,.post-breadcrumbs-separator) { display: inline-flex; align-items: center; }
@media (min-width: 901px) { .city-breadcrumbs ol, .rentals-breadcrumbs ol { justify-content: flex-start; } }
/* Rentals intentionally retains the larger trail on phones; all other trails compact. */
@media (max-width: 734px) {
  :is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) { margin-bottom: 16px; font-size: var(--type-breadcrumb-small); letter-spacing: var(--tracking-breadcrumb-small); }
  :is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) :is(ol,li) { gap: 4px 8px; }
  :is(.site-breadcrumbs,.about-breadcrumbs,.services-breadcrumbs,.city-breadcrumbs,.pricing-breadcrumbs,.contact-breadcrumbs,.blog-breadcrumbs,.post-breadcrumbs,.legal-breadcrumbs) :is(ol,a) { min-height: 24px; }
}
@media (max-width: 640px) { .pricing-breadcrumbs { margin-bottom: 0; } }
