/* Customer inner pages: Ride/Fleet proportions from the selected reference. */
.customer-page { background: #fff; color: #080808; }
.service-hero { padding: 128px 0; }
.ride-layout, .fleet-intro, .page-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: center; }
.page-heading { margin: 0 0 40px; font: 600 56px/1.3 var(--body); letter-spacing: normal; }
.page-lead { margin: 0; font-size: 18px; line-height: 1.5; color: #222; }
.ride-photo { width: 100%; height: 700px; object-fit: cover; object-position: center 65%; border-radius: 10px; }
.page-apps { margin-top: 56px; }
.page-apps .store-links { gap: 16px; }
.page-apps .app-note { margin: 16px 0 0; font-size: 14px; line-height: 1.5; color: #555; }
.fleet-intro { align-items: start; margin-bottom: 96px; }
.fleet-intro .page-heading { margin: 0; font-weight: 500; }
.fleet-intro .page-lead { padding-top: 8px; }
.fleet-photo { display: block; width: 100%; height: auto; border-radius: 10px; }
.page-section { padding: 128px 0; }
.page-section[id], .service-options article[id] { scroll-margin-top: 80px; }
.page-section--soft { background: #f7f7f7; }
.page-section h2 { margin: 0 0 40px; font: 500 40px/1.3 var(--body); letter-spacing: normal; }
.page-section p { margin: 0 0 24px; font-size: 18px; line-height: 1.5; color: #222; }
.page-section p:last-child { margin-bottom: 0; }
.section-centred { text-align: center; margin-bottom: 80px; }
.section-centred h2 { margin-bottom: 40px; }
.service-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 64px 96px; }
.service-options--three { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 64px; }
.service-options h3 { margin: 0 0 24px; font: 500 28px/1.3 var(--body); }
.service-options p { line-height: 1.5; }
.page-split > img { width: 100%; height: auto; border-radius: 10px; }
.page-split > .access-image { height: 600px; object-fit: cover; object-position: center 75%; }
.plain-link { display: inline-block; color: var(--brand); font-size: 18px; line-height: 1.5; text-decoration: underline; text-underline-offset: 5px; }
.plain-link:hover { color: var(--brand-dark); }
.page-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
.action-link { display: inline-flex; justify-content: center; align-items: center; gap: 22px; min-height: 50px; padding: 14px 24px; border-radius: 30px; background: #172c31; color: #fff; font-size: 17px; line-height: 1.25; font-weight: 500; }
.action-link:hover { background: var(--brand-dark); }
.action-link svg { width: 21px; height: 21px; stroke: currentColor; stroke-width: 2; fill: none; flex: 0 0 21px; }
.title-band { padding: 112px 0; text-align: center; background: #172c31; color: white; }
.title-band .page-heading { margin: 0; font-weight: 500; }
.reading-copy { padding: 96px 0 128px; }
.reading-copy section { margin: 0 0 48px; }
.reading-copy section:last-child { margin-bottom: 0; }
.reading-copy h2 { font: 500 28px/1.3 var(--body); margin: 0 0 24px; }
.reading-copy p { margin: 0 0 24px; font-size: 18px; line-height: 1.6; color: #333; }
.reading-copy a, .booking-assistance a, .booking-guidance a { color: var(--brand); text-decoration: underline; text-underline-offset: 4px; }
.booking-heading { padding: 48px 0 32px; }
.booking-heading h1 { font: 500 32px/1.3 var(--body); margin: 0; }
.booking-surface { padding-bottom: 64px; }
.booking-surface #cx_booking { width: 100%; min-height: 110px; margin: 0; }
.booking-assistance { margin: 24px 0 0; font-size: 18px; line-height: 1.5; color: #333; }
.booking-guidance { padding: 64px 0 96px; border-top: 1px solid #ddd; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; }
.booking-guidance h2 { font: 500 28px/1.3 var(--body); margin: 0 0 24px; }
.booking-guidance p { color: #333; font-size: 18px; line-height: 1.5; margin: 0 0 20px; }
.booking-guidance .booking-policy-links { text-align: left; margin: 24px 0 0; }
.missing-page .page-intro { padding: 128px 0; }
@media(max-width:991px) {
 .service-hero, .page-section { padding: 80px 0; }
 .page-heading { font-size: 48px; }
 .ride-layout, .fleet-intro, .page-split { gap: 40px; }
 .ride-photo { height: 620px; }
 .service-options, .service-options--three { gap: 40px; }
 .fleet-intro { margin-bottom: 64px; }
}
@media(max-width:780px) {
 .customer-page .container { padding-inline: 20px; }
 .service-hero, .page-section { padding: 64px 0; }
 .ride-layout, .fleet-intro, .page-split, .booking-guidance { grid-template-columns: minmax(0,1fr); gap: 40px; }
 .page-heading { font-size: clamp(32px, 9vw, 40px); line-height: 1.18; margin-bottom: 28px; text-wrap: balance; }
 .page-lead, .page-section p, .reading-copy p, .booking-guidance p { font-size: 18px; }
 .ride-photo { height: auto; aspect-ratio: 3/4; object-fit: contain; }
 .page-apps { margin-top: 36px; }
 .plain-link { min-height: 44px; display: inline-flex; align-items: center; }
 .page-apps .store-links { gap: 12px; }
 .fleet-intro { margin-bottom: 40px; }
 .fleet-intro .page-lead { padding: 0; }
 .page-section h2 { font-size: 32px; margin-bottom: 28px; }
 .section-centred { margin-bottom: 48px; }
 .service-options, .service-options--three { grid-template-columns: minmax(0,1fr); gap: 40px; }
 .service-options h3 { font-size: 26px; margin-bottom: 20px; }
 .page-split > .access-image { height: auto; }
 .title-band { padding: 64px 0; }
 .title-band .page-heading { font-size: 36px; }
 .reading-copy { padding: 56px 0 64px; }
 .reading-copy h2 { font-size: 26px; }
 .booking-heading { padding-top: 40px; }
 .booking-guidance { padding: 48px 0 64px; }
 .missing-page .page-intro { padding: 80px 0; }
}
@media(max-width:359px) {
 .page-apps .store-links { gap: 8px; }
 .title-band .page-heading { font-size: 32px; }
}

/* Taxi services: concise introduction, service index and photographic features. */
.taxi-page .container { max-width: 1240px; }
.taxi-intro { padding: 64px 0 44px; }
.taxi-intro-grid { display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; gap: 72px; }
.taxi-page .section-label { margin: 0 0 22px; color: var(--brand); font-size: 15px; font-weight: 600; }
.taxi-intro h1 { margin: 0 0 28px; font: 600 clamp(40px,4.2vw,64px)/1.12 var(--body); letter-spacing: -1.6px; }
.taxi-intro h1 span { color: var(--brand); }
.taxi-lead { max-width: 510px; margin: 0 0 30px; font-size: 19px; line-height: 1.6; color: #536167; }
.taxi-intro-photo { margin: 0; }
.taxi-intro-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 70%; border-radius: 6px; }
.taxi-jump { border-top: 1px solid #dce3e4; border-bottom: 1px solid #dce3e4; }
.taxi-jump .container { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; }
.taxi-jump a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 78px; font-size: 17px; font-weight: 500; }
.taxi-jump a span { color: var(--brand); font-size: 22px; }
.taxi-jump a:hover, .taxi-journey-link:hover { color: var(--brand); }
.taxi-everyday { padding: 88px 0; }
.taxi-everyday-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 96px; }
.taxi-page h2 { margin: 0 0 26px; font: 600 clamp(32px,3vw,44px)/1.15 var(--body); letter-spacing: -1px; }
.taxi-journeys article { padding: 27px 0; border-top: 1px solid #dce3e4; }
.taxi-journeys article:first-child { padding-top: 0; border: 0; }
.taxi-journeys article:last-child { padding-bottom: 0; }
.taxi-journeys h3 { margin: 0 0 12px; font: 500 26px/1.25 var(--body); letter-spacing: -.4px; }
.taxi-journeys p, .taxi-feature-copy > p:not(.section-label) { margin: 0; color: #536167; font-size: 18px; line-height: 1.6; }
.taxi-journey-link { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.taxi-journey-link > span { font-size: 25px; color: var(--brand); }
.taxi-feature { padding: 80px 0; }
.taxi-feature--soft { background: #f3f7f7; }
.taxi-feature-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 96px; }
.taxi-feature-grid > img { display: block; width: 100%; height: auto; border-radius: 6px; }
.taxi-feature-grid .taxi-access-photo { max-width: 400px; justify-self: center; }
.taxi-feature-copy { max-width: 500px; }
.taxi-feature-copy > p:not(.section-label) + p { margin-top: 18px; }
.taxi-feature-copy .round-link { margin-top: 28px; }
.taxi-details { list-style: none; padding: 0; margin: 22px 0 0; }
.taxi-details li { padding: 12px 0; border-bottom: 1px solid #d3dfe0; color: #33494e; font-size: 16px; line-height: 1.5; }
.taxi-feature-grid--reverse > img { grid-column: 2; grid-row: 1; }
.taxi-feature-grid--reverse > div { grid-column: 1; grid-row: 1; }
.taxi-page [id] { scroll-margin-top: 0; }
.taxi-page a:focus-visible { outline: 2px solid var(--brand); outline-offset: 5px; }
@media(max-width:1100px) {
 .taxi-intro-grid, .taxi-everyday-grid, .taxi-feature-grid { gap: 40px; }
 .taxi-intro h1 { font-size: 44px; }
}
@media(max-width:780px) {
 .taxi-intro { padding: 44px 0 32px; }
 .taxi-intro-grid, .taxi-everyday-grid, .taxi-feature-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
 .taxi-intro h1 { font-size: clamp(34px,8.6vw,52px); letter-spacing: -1px; margin-bottom: 22px; }
 .taxi-page .section-label { margin-bottom: 18px; }
 .taxi-lead { font-size: 18px; margin-bottom: 22px; }
 .taxi-intro-photo { max-width: 520px; width: 100%; }
 .taxi-jump .container { grid-template-columns: 1fr; gap: 0; }
 .taxi-jump a { min-height: 56px; border-bottom: 1px solid #dce3e4; }
 .taxi-jump a:last-child { border: 0; }
 .taxi-everyday, .taxi-feature { padding: 56px 0; }
 .taxi-page h2 { margin-bottom: 22px; }
 .taxi-everyday h2 { margin-bottom: 0; }
 .taxi-journeys h3 { font-size: 24px; }
 .taxi-feature-grid > img { max-width: 520px; }
 .taxi-feature-grid .taxi-access-photo { max-width: 400px; justify-self: start; }
 .taxi-feature-grid > .taxi-feature-copy { grid-row: 1; grid-column: 1; max-width: none; }
 .taxi-feature-grid > img { grid-row: 2; grid-column: 1; }

 .taxi-page .round-link { font-size: 16px; gap: 16px; }
}
