/* Shared type system. Loaded after route styles so each page keeps its design
   while sharing a readable, responsive hierarchy. */
@media (min-width:1200px){
  :root{
    --type-hero-h1:clamp(2.5rem,4vw,4.25rem);--type-page-h1:clamp(2.5rem,4vw,4.25rem);
    --type-section-h2:clamp(1.875rem,2.8vw,2.75rem);
    --type-section-h3:clamp(1.375rem,1.8vw,1.625rem);--type-card-title:clamp(1.375rem,1.8vw,1.625rem);
    --type-body-lg:clamp(1rem,1.15vw,1.125rem);--type-body:clamp(1rem,1.1vw,1.125rem);
    --type-small:14px;--type-eyebrow:clamp(.6875rem,.78vw,.8125rem);--type-button:clamp(.875rem,.9vw,1rem);
    --fs-hero:var(--type-hero-h1);--fs-h2:var(--type-section-h2);
    --fs-h3:var(--type-section-h3);--fs-card-title:var(--type-card-title);
    --fs-body:var(--type-body);--fs-small:var(--type-small);
    --fs-eyebrow:var(--type-eyebrow);--fs-button:var(--type-button);--fs-nav:clamp(.875rem,.98vw,1rem);
  }

  /* Navigation, utility copy and shared controls. */
  .utility-bar{font-size:12px}
  .button{font-size:var(--type-button);line-height:1.35}
  .gp-filter,.gp-viewer-controls button{font-size:14px;line-height:1.4}
  .gp-gallery-info p,.gp-card-caption{font-size:13px;line-height:1.5}
  .gp-viewer-figure h3{font-size:20px;line-height:1.3}
  .eyebrow,.fp-eyebrow,.sp-hero-copy .eyebrow,.sp-section-head .eyebrow,
  .about-page .ap-eyebrow,.fq-eyebrow,.contact-page .cp-eyebrow{
    font-size:var(--type-eyebrow);line-height:1.45;letter-spacing:.15em;
  }

  /* Display headings retain the existing Cormorant Garamond family. */
  .hero h1,.fp-hero h1,.sp-hero h1,.about-page .ap-hero h1,
  .fq-hero h1,.contact-page .cp-hero h1,.airport-page main h1{
    font-size:var(--type-page-h1);line-height:1.1;
  }
  /* Keep the homepage's three intentional no-wrap lines inside the hero
     column on smaller desktops; all other page headlines remain 54px. */
  .hero h1{font-size:clamp(50px,3.75vw,62px);line-height:1.1}
  .section-head h2,.featured-content h2,.fp-section-head h2,
  .fp-why .fp-section-head h2,.fp-feature-copy h2,
  .sp-section-head h2,.sp-pricing .sp-section-head h2,.sp-why .sp-section-head h2,
  .about-page .ap-story-copy h2,.about-page .ap-approach-copy h2,
  .about-page .ap-section-head h2,.contact-page .cp-contact-panel>h2,
  .contact-page .cp-quote-head h2,.contact-page .cp-options>h2,
  .airport-page main h2{
    font-size:var(--type-section-h2);line-height:1.2;
  }
  .section-kicker{font-size:22px;line-height:1.3}
  .quote-heading h2{font-size:30px;line-height:1.15}
  .contact-page .cp-hero h2{font-size:28px;line-height:1.15}
  .cta-content h2,.sp-cta-content h2,.fp-cta-content h2,
  .about-page .ap-cta-content h2,.fq-cta-content h2{
    font-size:clamp(1.875rem,2.8vw,2.5rem);line-height:1.2;
  }
  /* Long service closing headings fit their approved narrow black panels. */
  .airport-page .ap-final h2{font-size:clamp(1.875rem,2.6vw,2.375rem);line-height:1.2}

  /* Narrative copy: comfortable line spacing, without changing copy or images. */
  .hero-copy>p:not(.hero-service-line),.head-copy,
  .featured-content>p:not(.eyebrow),.vehicle-option p,
  .cta-content>p,.sp-hero-copy>p:not(.eyebrow),
  .sp-section-head>p:not(.eyebrow),.sp-cta-content>p:not(.eyebrow),
  .fp-hero-copy>p:not(.fp-eyebrow):not(.fp-location),
  .fp-section-head>p:not(.fp-eyebrow),.fp-feature-copy>p:not(.fp-eyebrow),
  .fp-cta-content>p:not(.fp-eyebrow),.about-page .ap-hero-copy>p:not(.ap-eyebrow),
  .about-page .ap-story-copy>p:not(.ap-eyebrow),
  .about-page .ap-approach-copy>p:not(.ap-eyebrow),
  .about-page .ap-section-head>p:not(.ap-eyebrow),
  .about-page .ap-cta-content>p:not(.ap-eyebrow),
  .fq-hero-copy>p:not(.fq-eyebrow),.fq-cta-content>p:not(.fq-eyebrow),
  .contact-page .cp-hero-copy>p:not(.cp-eyebrow),
  .contact-page .cp-quote-head>p:not(.cp-eyebrow),
  .airport-page main p:not(.eyebrow){
    font-size:var(--type-body);line-height:1.65;max-width:min(68ch,100%);
  }
  .hero-service-line,.cta-locations{font-size:14px!important;line-height:1.6}
  .fp-location{font-size:14px;line-height:1.6}
  .trust-item span:last-child,.sp-trust span,.about-page .ap-trust-grid>span{
    font-size:14px;line-height:1.55;
  }

  /* Display card titles vs. compact sans-serif feature labels. */
  .fleet-copy h3,.fleet-card:first-child .fleet-copy h3,.service-copy h3,
  .sp-card-body h3,.fp-card-body h3,.about-page .ap-fleet-body h3{
    font-size:var(--type-card-title);line-height:1.15;
  }
  .fleet-copy p,.service-copy p,.sp-card-body p,.fp-card-body>p,
  .about-page .ap-fleet-body>p{font-size:15px;line-height:1.6}
  .sp-card-body b,.sp-card-body a{font-size:14px;line-height:1.5}
  /* Percentage-only rows clipped longer descriptions after enlarging type.
     Preserve the photo/copy proportion while allowing a complete text row. */
  .sp-service-card{grid-template-rows:minmax(218px,1.27fr) minmax(min-content,1fr)}
  .featured-badge,.fp-card-image>span,.about-page .ap-fleet-image>span{
    font-size:12px;line-height:1.4;
  }
  .price-card h3,.benefit-card h3,.sp-price-grid h3,.sp-benefit-grid h3,
  .fp-benefit-grid h3,.about-page .ap-values h3,
  .about-page .ap-approach-benefits h3{font-size:16px;line-height:1.4}
  .price-card p,.benefit-card p,.sp-price-grid p,.sp-benefit-grid p,
  .fp-benefit-grid p,.about-page .ap-values p,
  .about-page .ap-approach-benefits p{font-size:14px;line-height:1.6}
  .price-card p,.benefit-card p,.sp-price-grid p,.sp-benefit-grid p,
  .fp-benefit-grid p,.about-page .ap-values p{font-size:14px;line-height:1.6}
  .price-card strong,.sp-price-grid strong{font-size:26px;line-height:1.2}
  .price-card strong small,.sp-price-grid strong small{font-size:12px}
  .sp-price-grid .button{font-size:14px}
  .featured-specs span,.fp-perfect span,.about-page .ap-fleet-body li{
    font-size:14px;line-height:1.5;
  }
  .fp-specs>span{font-size:14px;line-height:1.5}
  .vehicle-option h3,.fp-options h3{font-size:18px;line-height:1.4}
  .fp-perfect h3{font-size:14px;line-height:1.5}
  .fp-options p{font-size:15px;line-height:1.6}
  .vehicle-option .button,.fp-options .button,.ap-fleet-body .button{
    font-size:14px;line-height:1.4;
  }
  .airport-card strong{font-size:26px;line-height:1.1}
  .airport-card span{font-size:14px;line-height:1.5}

  /* Service detail cards and real accordion answers. Existing !important
     declarations are matched only where needed to maintain the shared scale. */
  .airport-page .ap-airport-card h3,.airport-page .ap-benefits h3,
  .hourly-page .hp-steps h3{font-size:18px;line-height:1.4}
  .private-page .pp-use-card h3{font-size:18px;line-height:1.45}
  .airport-page .ap-benefits p,.airport-page .ap-airport-card p,
  .hourly-page .hp-steps p{font-size:14px!important;line-height:1.6}
  .airport-page .ap-question h3{font-size:18px;line-height:1.45}
  .airport-page .ap-answer p{font-size:16px!important;line-height:1.65}
  .airport-page .ap-final .ap-region{font-size:12px!important;line-height:1.6}
  .airport-page .ap-final .ap-actions .button{font-size:12px;line-height:1.4}
  .fq-question{font-size:16px;line-height:1.45;letter-spacing:.025em}
  .fq-number{font-size:18px}
  .fq-answer p{font-size:16px;line-height:1.65}
  .fq-cta-content>strong{font-size:13px;line-height:1.5;letter-spacing:.14em}
  .fq-cta-actions .button{font-size:14px}

  /* Forms: readable labels and controls, preserving existing grid structure. */
  .quote-heading p,.form-status,.contact-page .cp-form-status,
  .booking-status{font-size:14px;line-height:1.6}
  .quote-fields label,.contact-page .cp-form label{font-size:13px;line-height:1.5;letter-spacing:.04em}
  .input-shell input,.input-shell select,.contact-page .cp-form input,
  .contact-page .cp-form select,.contact-page .cp-form textarea,
  .booking-form input,.booking-form select,.booking-form textarea{
    font-size:15px;line-height:1.55;
  }
  .contact-page .cp-contact-grid strong,.contact-page .cp-options-grid strong{
    font-size:14px;line-height:1.5;letter-spacing:.06em;
  }
  .contact-page .cp-contact-grid b{font-size:14px;line-height:1.5}
  .contact-page .cp-options-grid b{font-size:18px;line-height:1.5}
  .contact-page .cp-options-grid>a:nth-child(2) b{font-size:16px}
  .booking-dialog h2{font-size:38px;line-height:1.12}
  .booking-dialog>p:not(.eyebrow){font-size:16px;line-height:1.65}
  .booking-form label{font-size:14px;line-height:1.5}

  /* Footer is navigation/supporting copy, not another section heading. */
  .footer h2{font-size:14px;line-height:1.4}
  .footer p,.footer a,.footer a.contact-link{font-size:14px;line-height:1.7}
  .footer-brand p{line-height:1.7}
  .legal,.legal a{font-size:13px;line-height:1.6}
}

/* Tablet: retain the same hierarchy while letting available width control the
   display sizes. Body and control text stay comfortably legible. */
@media (min-width:768px) and (max-width:1199px){
  :root{
    --type-hero-h1:clamp(2.5rem,4vw,3.25rem);--type-page-h1:clamp(2.5rem,4vw,3.25rem);
    --type-section-h2:clamp(1.875rem,2.8vw,2.25rem);--type-section-h3:clamp(1.375rem,2.4vw,1.5rem);
    --type-card-title:clamp(1.25rem,2.2vw,1.5rem);--type-body:1rem;--type-body-lg:1rem;
    --type-small:.875rem;--type-eyebrow:.6875rem;--type-button:.875rem;--fs-nav:.875rem;
    --fs-hero:var(--type-hero-h1);--fs-h2:var(--type-section-h2);--fs-h3:var(--type-section-h3);
    --fs-card-title:var(--type-card-title);--fs-body:var(--type-body);--fs-small:var(--type-small);
    --fs-eyebrow:var(--type-eyebrow);--fs-button:var(--type-button);
  }
  .primary-nav a{font-size:14px}
  .button,.hero-actions .button,.cta-buttons .button{font-size:14px;line-height:1.35}
  .eyebrow,.fp-eyebrow,.sp-hero .eyebrow,.sp-section-head .eyebrow,.about-page .ap-eyebrow,
  .fq-eyebrow,.contact-page .cp-eyebrow{font-size:11px;line-height:1.45;letter-spacing:.15em}
  .hero h1,.home-page .hero h1,.fp-hero h1,.sp-hero h1,.about-page .ap-hero h1,
  .fq-hero h1,.contact-page .cp-hero h1,.gp-hero h1,.legal-page .lp-hero h1{
    font-size:var(--type-page-h1);line-height:1.1;
  }
  .section-head h2,.featured-content h2,.fp-section-head h2,.fp-feature-copy h2,
  .sp-section-head h2,.sp-pricing .sp-section-head h2,.sp-why .sp-section-head h2,
  .about-page .ap-story-copy h2,.about-page .ap-approach-copy h2,.about-page .ap-section-head h2,
  .contact-page .cp-contact-panel>h2,.contact-page .cp-quote-head h2,.contact-page .cp-options>h2,
  .fq-cta-content h2,.cta-content h2,.sp-cta-content h2,.fp-cta-content h2,
  .about-page .ap-cta-content h2,.airport-page main h2{
    font-size:var(--type-section-h2);line-height:1.2;
  }
  .hero-copy>p:not(.hero-service-line),.head-copy,.featured-content>p:not(.eyebrow),.cta-content>p,
  .sp-hero-copy>p:not(.eyebrow),.sp-section-head>p:not(.eyebrow),.sp-cta-content>p:not(.eyebrow),
  .fp-hero-copy>p:not(.fp-eyebrow):not(.fp-location),.fp-section-head>p:not(.fp-eyebrow),
  .fp-feature-copy>p:not(.fp-eyebrow),.about-page .ap-hero-copy>p:not(.ap-eyebrow),
  .about-page .ap-story-copy>p:not(.ap-eyebrow),.about-page .ap-approach-copy>p:not(.ap-eyebrow),
  .about-page .ap-section-head>p:not(.ap-eyebrow),.fq-hero-copy>p:not(.fq-eyebrow),
  .fq-answer p,.airport-page .ap-answer p,.lp-topic p{font-size:16px;line-height:1.7}
  .gp-filter,.gp-gallery-info p,.gp-card-caption,.gp-viewer-figure h3,.gp-viewer-controls button{font-size:14px}
  .gp-gallery-info #gp-count{font-size:14px}
  .fq-question{font-size:15px;line-height:1.45;letter-spacing:.02em}
  .fq-answer p{font-size:16px}
  .fleet-copy h3,.service-copy h3,.sp-card-body h3,.fp-card-body h3,
  .about-page .ap-fleet-body h3,.gp-viewer-figure h3{font-size:20px;line-height:1.3}
  .fleet-copy p,.service-copy p,.sp-card-body p,.fp-card-body>p,
  .about-page .ap-fleet-body>p{font-size:14px;line-height:1.6}
  .price-card h3,.benefit-card h3,.sp-price-grid h3,.sp-benefit-grid h3,
  .fp-benefit-grid h3,.about-page .ap-values h3,.about-page .ap-approach-benefits h3{
    font-size:16px;line-height:1.4;
  }
  .price-card p,.benefit-card p,.sp-price-grid p,.sp-benefit-grid p,
  .fp-benefit-grid p,.about-page .ap-values p,.about-page .ap-approach-benefits p{
    font-size:14px;line-height:1.6;
  }
  .airport-page .ap-airport-card h3,.airport-page .ap-benefits h3,
  .hourly-page .hp-steps h3,.private-page .pp-use-card h3{font-size:17px;line-height:1.4}
  .airport-page .ap-question h3{font-size:16px;line-height:1.45}
  .lp-final-actions .button{font-size:14px;line-height:1.35}
  .footer p,.footer a,.footer a.contact-link{font-size:13px;line-height:1.65}
  .legal-page .lp-topic h2{font-size:clamp(22px,2.3vw,26px);line-height:1.25}
  .legal-page .lp-topic p{font-size:16px;line-height:1.7}
}

/* Mobile: keep display type expressive but bounded, and avoid the 10–13px
   body/caption overrides that made several routes difficult to scan. */
@media (max-width:767px){
  :root{
    --type-hero-h1:clamp(2.25rem,9vw,2.625rem);--type-page-h1:clamp(2.25rem,9vw,2.625rem);
    --type-section-h2:clamp(1.75rem,7.5vw,2rem);--type-section-h3:clamp(1.125rem,5.2vw,1.375rem);
    --type-card-title:clamp(1.125rem,5.2vw,1.375rem);--type-body:1rem;--type-body-lg:1rem;
    --type-small:.875rem;--type-eyebrow:.6875rem;--type-button:.875rem;--fs-nav:.875rem;
    --fs-hero:var(--type-hero-h1);--fs-h2:var(--type-section-h2);--fs-h3:var(--type-section-h3);
    --fs-card-title:var(--type-card-title);--fs-body:var(--type-body);--fs-small:var(--type-small);
    --fs-eyebrow:var(--type-eyebrow);--fs-button:var(--type-button);
  }
  .primary-nav a{font-size:14px;line-height:1.5}
  .button,.hero-actions .button,.cta-buttons .button,.fq-cta-actions .button{font-size:14px;line-height:1.3}
  .eyebrow,.fp-eyebrow,.sp-hero .eyebrow,.sp-section-head .eyebrow,.about-page .ap-eyebrow,
  .fq-eyebrow,.contact-page .cp-eyebrow{font-size:11px;line-height:1.45;letter-spacing:.14em}
  .hero h1,.home-page .hero h1,.fp-hero h1,.sp-hero h1,.about-page .ap-hero h1,
  .fq-hero h1,.contact-page .cp-hero h1,.gp-hero h1,.legal-page .lp-hero h1{
    font-size:var(--type-page-h1);line-height:1.1;letter-spacing:-.01em;
  }
  .section-head h2,.featured-content h2,.fp-section-head h2,.fp-feature-copy h2,
  .sp-section-head h2,.sp-pricing .sp-section-head h2,.sp-why .sp-section-head h2,
  .about-page .ap-story-copy h2,.about-page .ap-approach-copy h2,.about-page .ap-section-head h2,
  .contact-page .cp-contact-panel>h2,.contact-page .cp-quote-head h2,.contact-page .cp-options>h2,
  .fq-cta-content h2,.cta-content h2,.sp-cta-content h2,.fp-cta-content h2,
  .about-page .ap-cta-content h2,.airport-page main h2{
    font-size:var(--type-section-h2);line-height:1.2;letter-spacing:-.01em;
  }
  .hero-copy>p:not(.hero-service-line),.head-copy,.featured-content>p:not(.eyebrow),.cta-content>p,
  .sp-hero-copy>p:not(.eyebrow),.sp-section-head>p:not(.eyebrow),.sp-cta-content>p:not(.eyebrow),
  .fp-hero-copy>p:not(.fp-eyebrow):not(.fp-location),.fp-section-head>p:not(.fp-eyebrow),
  .fp-feature-copy>p:not(.fp-eyebrow),.about-page .ap-hero-copy>p:not(.ap-eyebrow),
  .about-page .ap-story-copy>p:not(.ap-eyebrow),.about-page .ap-approach-copy>p:not(.ap-eyebrow),
  .about-page .ap-section-head>p:not(.ap-eyebrow),.fq-hero-copy>p:not(.fq-eyebrow),.fq-answer p,
  .airport-page .ap-answer p,.lp-topic p{font-size:16px;line-height:1.7}
  .gp-gallery-info p,.gp-card-caption,.gp-viewer-figure h3,.gp-viewer-figure p,
  .gp-viewer-controls button,.gp-no-script{font-size:14px;line-height:1.5}
  .gp-filter{font-size:13px;line-height:1.4}
  .fq-question{font-size:15px;line-height:1.45;letter-spacing:.015em}
  .fq-answer p{font-size:16px}
  .fleet-copy h3,.service-copy h3,.sp-card-body h3,.fp-card-body h3,
  .about-page .ap-fleet-body h3,.gp-viewer-figure h3{font-size:19px;line-height:1.3}
  .fleet-copy p,.service-copy p,.sp-card-body p,.fp-card-body>p,
  .about-page .ap-fleet-body>p{font-size:14px;line-height:1.6}
  .price-card h3,.benefit-card h3,.sp-price-grid h3,.sp-benefit-grid h3,
  .fp-benefit-grid h3,.about-page .ap-values h3,.about-page .ap-approach-benefits h3{
    font-size:16px;line-height:1.4;
  }
  .price-card p,.benefit-card p,.sp-price-grid p,.sp-benefit-grid p,
  .fp-benefit-grid p,.about-page .ap-values p,.about-page .ap-approach-benefits p{
    font-size:14px;line-height:1.6;
  }
  .airport-page .ap-airport-card h3,.airport-page .ap-benefits h3,
  .hourly-page .hp-steps h3,.private-page .pp-use-card h3{font-size:17px;line-height:1.4}
  .airport-page .ap-question h3{font-size:16px;line-height:1.45}
  .lp-final-actions .button{font-size:14px;line-height:1.3}
  .legal-page .eyebrow{font-size:11px;line-height:1.45;letter-spacing:.14em}
  .footer p,.footer a,.footer a.contact-link{font-size:14px;line-height:1.6}
  .legal-page .lp-hero h1{font-size:var(--type-page-h1);line-height:1.1}
  .legal-page .lp-topic h2{font-size:clamp(20px,5.8vw,23px);line-height:1.25}
  .legal-page .lp-topic p{font-size:16px;line-height:1.7}
  .legal-page .lp-final h2{font-size:var(--type-section-h2);line-height:1.2}
}

/* Shared image-banner contrast system, modeled on the Fleet hero. These are
   full-image shade layers (not backgrounds behind individual text elements),
   so image detail remains visible toward the composition's open side. */
:root{
  --photo-shade-left:rgba(5,7,9,.88);
  --photo-shade-mid:rgba(5,7,9,.62);
}
.home-page .hero-overlay,
.fleet-page .fp-hero-shade,
.services-page .sp-hero-overlay,
.about-page .ap-hero-shade,
.contact-page .cp-hero-shade,
.faq-page .fq-hero-shade,
.legal-page .lp-hero-shade,
.services-page .sp-cta-overlay,
.fleet-page .fp-cta-shade,
.about-page .ap-cta-shade,
.faq-page .fq-cta-shade,
.legal-page .lp-final-shade{
  pointer-events:none;
}
.home-page .hero-overlay{
  background:linear-gradient(90deg,rgba(5,7,9,.9) 0%,rgba(5,7,9,.66) 34%,rgba(5,7,9,.16) 58%,transparent 76%);
}
.fleet-page .fp-hero-shade{
  background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.65) 34%,transparent 65%);
}
.services-page .sp-hero-overlay{
  background:linear-gradient(90deg,rgba(5,7,9,.88) 0%,rgba(5,7,9,.62) 35%,rgba(5,7,9,.15) 60%,transparent 78%);
}
.about-page .ap-hero-shade{
  background:linear-gradient(90deg,rgba(5,7,9,.88) 0%,rgba(5,7,9,.62) 34%,rgba(5,7,9,.15) 59%,transparent 78%);
}
.contact-page .cp-hero-shade{
  background:linear-gradient(90deg,rgba(5,7,9,.88) 0%,rgba(5,7,9,.62) 34%,rgba(5,7,9,.15) 59%,transparent 78%);
}
.faq-page .fq-hero-shade{
  background:linear-gradient(90deg,rgba(5,7,9,.88) 0%,rgba(5,7,9,.62) 34%,rgba(5,7,9,.15) 59%,transparent 78%);
}
.legal-page .lp-hero-shade{
  display:block;position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(5,7,9,.84) 0%,rgba(5,7,9,.58) 34%,rgba(5,7,9,.12) 62%,transparent 80%);
}
.legal-page .lp-final-shade{
  display:block;position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(5,7,9,.86) 0%,rgba(5,7,9,.62) 35%,rgba(5,7,9,.16) 62%,transparent 80%);
}
.fleet-page .fp-cta-shade{
  background:linear-gradient(90deg,rgba(7,7,7,.9),rgba(7,7,7,.72) 34%,rgba(7,7,7,.24) 60%,transparent 80%);
}
.services-page .sp-cta-overlay{
  background:linear-gradient(90deg,rgba(7,7,7,.88),rgba(7,7,7,.64) 35%,rgba(7,7,7,.16) 62%,transparent 80%);
}
.about-page .ap-cta-shade{
  background:linear-gradient(90deg,rgba(7,7,7,.88),rgba(7,7,7,.64) 35%,rgba(7,7,7,.16) 62%,transparent 80%);
}
.faq-page .fq-cta-shade{
  background:linear-gradient(180deg,rgba(6,14,20,.72),rgba(6,14,20,.5) 30%,rgba(6,14,20,.16) 62%,rgba(6,14,20,.56));
}

/* Service-detail templates share a photo-backed hero/final pattern but do not
   all ship their own shade node. Add a non-interactive layer over the image. */
.airport-page .ap-hero::before,
.airport-page .ap-final::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(5,7,9,.88) 0%,rgba(5,7,9,.62) 35%,rgba(5,7,9,.16) 62%,transparent 80%);
}
.airport-page .ap-hero-copy,.airport-page .ap-final .ap-copy{position:relative;z-index:1}
.airport-page .ap-final .ap-copy{text-shadow:0 1px 5px rgba(0,0,0,.38)}
.contact-page .cp-closing{position:relative;isolation:isolate}
.contact-page .cp-closing::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,transparent 45%,rgba(4,7,10,.12) 68%,rgba(4,7,10,.55) 100%);
}
.contact-page .cp-closing-actions{z-index:1}

@media(max-width:767px){
  .about-page .ap-hero-shade,.faq-page .fq-hero-shade,.contact-page .cp-hero-shade,
  .legal-page .lp-hero-shade,.legal-page .lp-final-shade{display:block}
  .about-page .ap-hero-shade,.faq-page .fq-hero-shade,.legal-page .lp-hero-shade{
    background:linear-gradient(180deg,rgba(5,7,9,.02) 0%,rgba(5,7,9,.08) 48%,rgba(5,7,9,.58) 78%,rgba(5,7,9,.9) 100%);
  }
  .contact-page .cp-hero-shade{
    background:linear-gradient(180deg,rgba(5,7,9,.02) 0%,rgba(5,7,9,.05) 54%,rgba(5,7,9,.55) 81%,rgba(5,7,9,.9) 100%);
  }
  .legal-page .lp-final-shade{
    background:linear-gradient(180deg,rgba(5,7,9,.34) 0%,rgba(5,7,9,.18) 45%,rgba(5,7,9,.82) 100%);
  }
  .fleet-page .fp-cta-shade,.services-page .sp-cta-overlay,.about-page .ap-cta-shade,.faq-page .fq-cta-shade{
    background:linear-gradient(180deg,rgba(5,7,9,.76) 0%,rgba(5,7,9,.42) 32%,rgba(5,7,9,.08) 58%,rgba(5,7,9,.78) 100%);
  }
  .airport-page .ap-hero::before{
    background:linear-gradient(180deg,rgba(5,7,9,.05) 0%,rgba(5,7,9,.22) 42%,rgba(5,7,9,.8) 100%);
  }
  .airport-page .ap-final::before{
    background:linear-gradient(180deg,rgba(5,7,9,.75) 0%,rgba(5,7,9,.32) 45%,rgba(5,7,9,.82) 100%);
  }
  .contact-page .cp-closing::before{
    background:linear-gradient(180deg,transparent 35%,rgba(4,7,10,.08) 55%,rgba(4,7,10,.7) 100%);
  }
}

/* Mobile-only CTA banner spacing: keep copy off the top edge and action rows
   inside their own photo banner, including phones with a home-indicator inset. */
@media(max-width:767px){
  .home-page .final-cta,
  .fleet-page .fp-final-cta,
  .services-page .sp-final-cta,
  .about-page .ap-final-cta,
  .faq-page .fq-final-cta,
  .legal-page .lp-final,
  .airport-page .ap-final{
    position:relative;
    overflow:hidden;
    box-sizing:border-box;
  }

  .home-page .final-cta .cta-content,
  .fleet-page .fp-cta-content,
  .services-page .sp-cta-content,
  .about-page .ap-cta-content,
  .faq-page .fq-cta-content,
  .legal-page .lp-final-inner,
  .airport-page .ap-final .ap-wide-inner{
    box-sizing:border-box;
    padding-top:clamp(34px, 8vw, 46px) !important;
  }

  .home-page .final-cta .cta-buttons,
  .fleet-page .fp-cta-actions,
  .services-page .sp-cta-content>div,
  .about-page .ap-cta-actions,
  .legal-page .lp-final-actions,
  .airport-page .ap-final .ap-actions{
    left:0;
    right:0;
    bottom:calc(20px + env(safe-area-inset-bottom, 0px));
    width:auto;
    max-width:none;
    box-sizing:border-box;
  }

  .home-page .final-cta .cta-content,
  .fleet-page .fp-cta-content,
  .services-page .sp-cta-content,
  .about-page .ap-cta-content,
  .legal-page .lp-final-inner,
  .airport-page .ap-final .ap-wide-inner{
    padding-bottom:clamp(142px, 38vw, 164px) !important;
  }

  .faq-page .fq-cta-content{padding-bottom:0 !important}
  .faq-page .fq-cta-actions{
    margin-top:auto;
    margin-bottom:calc(20px + env(safe-area-inset-bottom, 0px));
  }

  .contact-page .cp-closing{
    position:relative;
    overflow:hidden;
    box-sizing:border-box;
  }
  .contact-page .cp-closing-actions{
    left:18px;
    right:18px;
    bottom:calc(20px + env(safe-area-inset-bottom, 0px));
    width:auto;
    max-width:none;
    box-sizing:border-box;
  }
}

/* Collapsible mobile footer navigation and centered brand/legal footer. */
@media(min-width:900px){
  .footer .footer-grid{
    width:min(1440px,calc(100% - 96px));
    margin-inline:auto;
    box-sizing:border-box;
    grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1.1fr) minmax(0,1fr);
    gap:0;
  }
  .footer .footer-grid>div{min-width:0;box-sizing:border-box}
  .footer .footer-grid>div:first-child{padding-right:clamp(22px,2.4vw,36px)}
  .footer .footer-grid>div:nth-child(n+2){
    border-left:1px solid rgba(214,168,75,.28);
    padding-left:clamp(22px,2.4vw,36px);
  }
  .footer .footer-brand p{display:block;max-width:270px;margin:8px 0 0;font-size:13px;line-height:1.65}
  .footer .footer-grid>.footer-social-source{display:none!important}
  .footer .footer-brand .footer-social{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    margin-top:16px;
  }
  .footer .footer-brand .footer-social a{
    width:40px;
    height:40px;
    min-height:0;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid var(--gold-dark);
    border-radius:50%;
  }
  .footer .footer-brand .footer-social a>span:not(.icon){display:none}
  .footer .footer-brand .footer-social .icon,
  .footer .footer-brand .footer-social .icon img{width:20px;height:20px}
}
@media(min-width:768px) and (max-width:899px){
  .footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 38px}
  .footer .footer-brand p{display:block;max-width:270px;margin:8px 0 0;font-size:13px;line-height:1.65}
  .footer .footer-grid>.footer-social-source{display:none!important}
  .footer .footer-brand .footer-social{display:flex;flex-direction:row;gap:10px;margin-top:14px}
  .footer .footer-brand .footer-social a>span:not(.icon){display:none}
  .footer .footer-brand .footer-social .icon,
  .footer .footer-brand .footer-social .icon img{width:19px;height:19px}
}
@media(max-width:767px){
  .footer{padding:34px 0 22px}
  .footer .footer-grid{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .footer .footer-grid>.footer-brand{
    order:0;
    width:100%;
    margin:0 0 28px;
    display:flex;
    flex-direction:column;
    align-items:center!important;
    text-align:center!important;
  }
  .footer .footer-brand img{margin-inline:auto}
  .footer .footer-brand p{
    max-width:340px;
    margin:8px auto 0;
    text-align:center;
    font-size:13px;
    line-height:1.6;
  }
  .footer .footer-grid>.footer-accordion-group{
    order:1;
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch!important;
    border-top:1px solid rgba(255,255,255,.2);
  }
  .footer .footer-grid>.footer-accordion-group:nth-child(4){border-bottom:1px solid rgba(255,255,255,.2)}
  .footer .footer-grid>.footer-social-source{display:none!important}
  .footer-accordion-toggle{
    width:100%;
    min-height:64px;
    display:grid;
    grid-template-columns:32px minmax(0,1fr) 24px;
    align-items:center;
    gap:15px;
    padding:12px 4px;
    border:0;
    background:transparent;
    color:var(--ivory);
    text-align:left;
    cursor:pointer;
    font:500 15px/1.4 var(--font-body);
  }
  .footer-accordion-icon,.footer-accordion-icon img{display:block;width:24px;height:24px}
  .footer-accordion-chevron{
    justify-self:center;
    width:13px;
    height:13px;
    border-right:2px solid var(--gold-highlight);
    border-bottom:2px solid var(--gold-highlight);
    transform:translateY(-3px) rotate(45deg);
    transition:transform .18s ease;
  }
  .footer-accordion-toggle[aria-expanded="true"] .footer-accordion-chevron{transform:translateY(3px) rotate(225deg)}
  .footer-accordion-toggle:focus-visible{outline:2px solid var(--gold-highlight);outline-offset:-2px}
  .footer-accordion-panel[hidden]{display:none}
  .footer-accordion-panel:not([hidden]){
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:0 0 14px 60px;
  }
  .footer .footer-accordion-panel a{
    min-height:38px;
    display:flex;
    align-items:center;
    padding:4px 0;
    font-size:13px;
    line-height:1.5;
  }
  .footer .footer-accordion-panel .contact-link{margin:0;gap:9px}
  .footer .footer-accordion-panel .contact-link .icon,
  .footer .footer-accordion-panel .contact-link .icon img{width:18px;height:18px}
  .footer .footer-brand .footer-social{
    display:flex;
    flex-direction:row;
    justify-content:center;
    align-items:center;
    gap:clamp(8px,2.5vw,14px);
    margin-top:22px;
  }
  .footer .footer-brand .footer-social a{
    width:clamp(34px,9vw,40px);
    height:clamp(34px,9vw,40px);
    min-height:0;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid var(--gold-dark);
    border-radius:50%;
  }
  .footer .footer-brand .footer-social a>span:not(.icon){display:none}
  .footer .footer-brand .footer-social .icon,
  .footer .footer-brand .footer-social .icon img{width:16px;height:16px}
  .footer .legal{
    width:calc(100% - 36px);
    margin:26px auto 0;
    padding-top:17px;
    display:flex;
    flex-direction:column;
    align-items:center!important;
    justify-content:center;
    gap:8px;
    text-align:center;
  }
  .footer .legal>span{width:100%;text-align:center}
  .footer .legal>div{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px}
  .footer .legal,
  .footer .legal a{font-size:12.5px;line-height:1.55}
  .footer .legal a{padding-block:2px}
}
