/* ─────────────────────────────────────────────────────────────────────────
   Airport Transfers Booking Wizard — Stylesheet
   Scoped to .pca-transfers-wizard so it doesn't leak into theme styles.
   Mobile-first; breakpoints at 600px and 960px.
   ───────────────────────────────────────────────────────────────────────── */

.pca-transfers-wizard {
    --pca-tx-primary: #0f766e;
    --pca-tx-primary-hover: #0d6660;
    --pca-tx-accent: #f97a4a;
    --pca-tx-accent-soft: #fff1ec;
    --pca-tx-success: #059669;
    --pca-tx-success-bg: #ecfdf5;
    --pca-tx-success-border: #a7f3d0;
    --pca-tx-warning: #d97706;
    --pca-tx-warning-bg: #fffbeb;
    --pca-tx-warning-border: #fde68a;
    --pca-tx-danger: #b91c1c;
    --pca-tx-text: #111827;
    --pca-tx-text-muted: #6b7280;
    --pca-tx-border: #e5e7eb;
    --pca-tx-border-strong: #d1d5db;
    --pca-tx-surface: #ffffff;
    --pca-tx-surface-soft: #f9fafb;
    --pca-tx-radius-sm: 6px;
    --pca-tx-radius-md: 10px;
    --pca-tx-radius-lg: 16px;
    --pca-tx-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
    --pca-tx-shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
    --pca-tx-space-1: 4px;
    --pca-tx-space-2: 8px;
    --pca-tx-space-3: 12px;
    --pca-tx-space-4: 16px;
    --pca-tx-space-5: 20px;
    --pca-tx-space-6: 24px;
    --pca-tx-space-8: 32px;
    --pca-tx-font: "Plus Jakarta Sans", "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    max-width: 720px;
    margin: 0 auto;
    padding: var(--pca-tx-space-5) var(--pca-tx-space-4);
    color: var(--pca-tx-text);
    font-family: var(--pca-tx-font);
    font-size: 16px;
    line-height: 1.5;
}
/* Force the wizard font on every descendant so theme defaults don't leak through. */
.pca-transfers-wizard,
.pca-transfers-wizard input,
.pca-transfers-wizard select,
.pca-transfers-wizard textarea,
.pca-transfers-wizard button,
.pca-transfers-wizard .btn,
.pca-trust-strip { font-family: var(--pca-tx-font); }

@media (min-width: 600px) {
    .pca-transfers-wizard { padding: var(--pca-tx-space-8) var(--pca-tx-space-6); }
}

/* Progress bar -------------------------------------------------------- */

.pca-transfers-progress {
    height: 4px;
    background: var(--pca-tx-border);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: var(--pca-tx-space-2);
    position: relative;
}

.pca-transfers-progress-bar {
    height: 100%;
    width: 0%;
    background: var(--pca-tx-primary);
    transition: width 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.pca-transfers-progress-text {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--pca-tx-text-muted);
    margin-bottom: var(--pca-tx-space-5);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Steps shell --------------------------------------------------------- */

.pca-transfers-steps { position: relative; }

.pca-transfer-step {
    animation: pca-fade-in 0.25s ease-out;
}

@keyframes pca-fade-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .pca-transfer-step,
    .pca-transfers-progress-bar { animation: none; transition: none; }
}

.pca-step-header { margin-bottom: var(--pca-tx-space-6); }

.pca-step-title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 var(--pca-tx-space-2);
    color: var(--pca-tx-text);
}

@media (min-width: 600px) {
    .pca-step-title { font-size: 28px; }
}

.pca-step-subtitle {
    margin: 0;
    color: var(--pca-tx-text-muted);
    font-size: 15px;
}

/* Buttons ------------------------------------------------------------- */

.pca-transfers-wizard .btn,
.pca-transfers-wizard .pca-link {
    font-family: inherit;
}

.pca-transfers-wizard .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--pca-tx-space-2);
    padding: 14px 26px;
    border-radius: var(--pca-tx-radius-md);
    border: 1px solid transparent;
    background: var(--pca-tx-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.18s ease, transform 0.1s ease, box-shadow 0.18s ease;
}

.pca-transfers-wizard .btn:hover {
    background: var(--pca-tx-primary-hover);
    box-shadow: 0 4px 12px rgba(15, 118, 110, 0.22);
}
.pca-transfers-wizard .btn:active { transform: scale(0.98); }
.pca-transfers-wizard .btn:disabled,
.pca-transfers-wizard .btn[aria-disabled="true"] {
    background: #e5e7eb;
    color: #9ca3af;
    cursor: not-allowed;
    box-shadow: none;
    opacity: 1;
}
.pca-transfers-wizard .btn:disabled:hover,
.pca-transfers-wizard .btn[aria-disabled="true"]:hover { background: #e5e7eb; box-shadow: none; }
.pca-transfers-wizard .btn:focus-visible { outline: 3px solid rgba(15, 118, 110, 0.4); outline-offset: 2px; }

.pca-transfers-wizard .pca-btn-back {
    background: transparent;
    color: var(--pca-tx-text);
    border-color: var(--pca-tx-border-strong);
}
.pca-transfers-wizard .pca-btn-back:hover { background: var(--pca-tx-surface-soft); }

.pca-transfers-nav {
    display: flex;
    justify-content: space-between;
    gap: var(--pca-tx-space-3);
    margin-top: var(--pca-tx-space-6);
}
.pca-transfers-nav .pca-btn-next { margin-left: auto; }

.pca-transfers-wizard .pca-link {
    background: none;
    border: none;
    color: var(--pca-tx-primary);
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
}

/* Step: Transfer Type ------------------------------------------------- */

.pca-transfer-type-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--pca-tx-space-3);
}
@media (min-width: 600px) {
    .pca-transfer-type-cards { grid-template-columns: 1fr 1fr; }
}

.pca-type-card {
    display: flex;
    align-items: flex-start;
    gap: var(--pca-tx-space-3);
    padding: var(--pca-tx-space-5);
    background: var(--pca-tx-surface);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-lg);
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
    font-family: inherit;
}
.pca-type-card:hover {
    border-color: var(--pca-tx-primary);
    box-shadow: var(--pca-tx-shadow-md);
}
.pca-type-card:focus-visible {
    outline: 3px solid rgba(15, 118, 110, 0.4);
    outline-offset: 2px;
}

.pca-type-card__icon {
    flex: 0 0 auto;
    width: 40px; height: 40px;
    display: grid; place-items: center;
    background: rgba(15, 118, 110, 0.08);
    color: var(--pca-tx-primary);
    border-radius: 50%;
}

.pca-type-card__title {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 600;
}

.pca-type-card__desc {
    margin: 0;
    color: var(--pca-tx-text-muted);
    font-size: 14px;
}

/* Step: Hotel --------------------------------------------------------- */

.pca-hotel-search-wrap { position: relative; }

.pca-hotel-search-input {
    width: 100%;
    padding: 14px 44px 14px 16px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-md);
    font-size: 16px;
    font-family: inherit;
    box-sizing: border-box;
    background: var(--pca-tx-surface);
}
.pca-hotel-search-input:focus {
    outline: none;
    border-color: var(--pca-tx-primary);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}

.pca-hotel-search-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px; height: 32px;
    border: none;
    background: transparent;
    color: var(--pca-tx-text-muted);
    cursor: pointer;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
}
.pca-hotel-search-clear:hover { background: var(--pca-tx-surface-soft); }

.pca-hotel-results {
    position: absolute;
    z-index: 10;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: var(--pca-tx-surface);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    box-shadow: var(--pca-tx-shadow-md);
    max-height: 320px;
    overflow-y: auto;
    display: none;
}

.pca-hotel-result-item {
    padding: 12px 16px;
    border-bottom: 1px solid var(--pca-tx-border);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--pca-tx-space-3);
    outline: none;
}
.pca-hotel-result-item:last-child { border-bottom: 0; }
.pca-hotel-result-item:hover,
.pca-hotel-result-item:focus {
    background: var(--pca-tx-surface-soft);
}

.pca-hotel-result-name { font-weight: 500; }

.pca-hotel-result-label {
    font-size: 12px;
    color: var(--pca-tx-text-muted);
    background: var(--pca-tx-surface-soft);
    padding: 2px 8px;
    border-radius: 999px;
    flex-shrink: 0;
}

.pca-hotel-result-empty,
.pca-hotel-result-error {
    padding: 16px;
    text-align: center;
    color: var(--pca-tx-text-muted);
    font-size: 14px;
}

.pca-hotel-result-error { color: var(--pca-tx-danger); }

.pca-hotel-fallback {
    margin-top: var(--pca-tx-space-4);
    display: flex;
    flex-wrap: wrap;
    gap: var(--pca-tx-space-2);
}

.pca-hotel-fallback-btn {
    padding: 8px 14px;
    background: var(--pca-tx-surface-soft);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    font-size: 14px;
    cursor: pointer;
    color: var(--pca-tx-text);
    font-family: inherit;
}
.pca-hotel-fallback-btn:hover { border-color: var(--pca-tx-primary); }

.pca-hotel-manual-panel {
    margin-top: var(--pca-tx-space-3);
    padding: var(--pca-tx-space-4);
    background: var(--pca-tx-surface-soft);
    border-radius: var(--pca-tx-radius-md);
}

.pca-hotel-manual-panel input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-sm);
    box-sizing: border-box;
    font-family: inherit;
}

.pca-zone-preview {
    margin-top: var(--pca-tx-space-4);
    padding: var(--pca-tx-space-4);
    background: #fff;
    border: 1px solid var(--pca-tx-success-border);
    border-radius: var(--pca-tx-radius-md);
    color: #065f46;
    font-size: 14px;
    display: none;
}

#pca-selected-hotel-name { font-weight: 600; }

/* Step: Date ---------------------------------------------------------- */

.pca-date-input,
.flatpickr-input {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-md);
    font-size: 16px;
    font-family: inherit;
    box-sizing: border-box;
}

/* Step: Flight -------------------------------------------------------- */

.pca-flight-input-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--pca-tx-space-3);
}

.pca-flight-number-input {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-md);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-family: inherit;
    box-sizing: border-box;
}
/* Keep the user's input uppercase (TS398, AA1234) but the placeholder
   should read normally — SHOUTY placeholders look like errors. */
.pca-flight-number-input::placeholder {
    text-transform: none;
    font-weight: 400;
    letter-spacing: normal;
}
.pca-flight-number-input:disabled {
    background: var(--pca-tx-surface-soft);
    color: var(--pca-tx-text-muted);
}

.pca-flight-status { margin-top: var(--pca-tx-space-3); }
.pca-flight-status__msg { display: none; font-size: 14px; }

.pca-flight-status[data-status="found"]    .pca-flight-status__msg--found,
.pca-flight-status[data-status="searching"] .pca-flight-status__msg--searching,
.pca-flight-status[data-status="not-found"] .pca-flight-status__msg--not-found,
.pca-flight-status[data-status="mismatch"]  .pca-flight-status__msg--mismatch {
    display: flex;
    align-items: center;
    gap: var(--pca-tx-space-2);
    padding: 10px 14px;
    border-radius: var(--pca-tx-radius-md);
}

.pca-flight-status__msg--found {
    background: #fff;
    border: 1px solid var(--pca-tx-success-border);
    color: #065f46;
}
.pca-flight-status__msg--mismatch {
    background: var(--pca-tx-warning-bg);
    border: 1px solid var(--pca-tx-warning-border);
    color: #92400e;
}
.pca-flight-status__msg--not-found {
    background: #fff;
    border: 1px solid #99f6e4;
    color: #0f766e;
    align-items: flex-start;
}

/* Live airline detection — sits inside the flight-number input,
   right-aligned, styled as a soft teal "verified" pill. Stronger
   feedback than the legacy text label sitting below the input. */
.pca-flight-input-row {
    position: relative;
}
.pca-flight-airline-logo {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 4px 10px;
    background: #f0fdfa;
    border: 1px solid #99f6e4;
    border-radius: 999px;
    color: #0f766e;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    pointer-events: none;
    max-width: 50%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* Pad the input so typed flight numbers don't slide under the pill. */
.pca-transfers-wizard .pca-flight-number-input {
    padding-right: 140px !important;
}

.pca-flight-unknown-row {
    margin-top: var(--pca-tx-space-3);
    display: flex;
    align-items: center;
    gap: var(--pca-tx-space-2);
    color: var(--pca-tx-text-muted);
    font-size: 14px;
}

.pca-flight-manual-time-wrap {
    margin-top: var(--pca-tx-space-3);
}

/* Step: Passengers ---------------------------------------------------- */

.pca-passenger-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--pca-tx-space-4) 0;
    border-bottom: 1px solid var(--pca-tx-border);
}

.pca-passenger-label {
    font-size: 16px;
    font-weight: 600;
}
.pca-passenger-hint {
    display: block;
    font-weight: 400;
    color: var(--pca-tx-text-muted);
    font-size: 13px;
    margin-top: 2px;
}

.pca-passenger-counter {
    display: flex;
    align-items: center;
    gap: var(--pca-tx-space-3);
}

.pca-passenger-counter button {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 1px solid var(--pca-tx-border-strong);
    background: var(--pca-tx-surface);
    cursor: pointer;
    font-size: 18px;
    display: grid; place-items: center;
}
.pca-passenger-counter button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.pca-passenger-count {
    min-width: 28px;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
}

/* Step: Vehicle ------------------------------------------------------- */

.pca-vehicle-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--pca-tx-space-3);
}
@media (min-width: 600px) {
    .pca-vehicle-cards { grid-template-columns: 1fr 1fr; }
}

.pca-vehicle-card {
    position: relative;
    background: var(--pca-tx-surface);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-lg);
    padding: var(--pca-tx-space-5);
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
    display: flex;
    flex-direction: column;
    gap: var(--pca-tx-space-3);
    font-family: inherit;
    color: inherit;
    width: 100%;
}
.pca-vehicle-card:hover { border-color: var(--pca-tx-primary); box-shadow: var(--pca-tx-shadow-md); }
.pca-vehicle-card.is-selected,
.pca-vehicle-card[aria-pressed="true"] {
    border-color: var(--pca-tx-primary);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.18);
}

.pca-vehicle-card__badge {
    position: absolute;
    top: 12px; right: 12px;
    padding: 4px 10px;
    background: var(--pca-tx-accent);
    color: #fff;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pca-vehicle-card__image {
    width: 80px;
    height: 48px;
    color: var(--pca-tx-primary);
}

.pca-vehicle-card__name {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.pca-vehicle-card__desc {
    margin: 0;
    color: var(--pca-tx-text-muted);
    font-size: 14px;
}

.pca-vehicle-card__features {
    margin: 0;
    padding-left: 18px;
    color: var(--pca-tx-text-muted);
    font-size: 13px;
    line-height: 1.6;
}

.pca-vehicle-card__price-wrap {
    margin-top: auto;
    display: flex;
    align-items: baseline;
    gap: 6px;
}
.pca-vehicle-card__price {
    font-size: 22px;
    font-weight: 700;
    color: var(--pca-tx-text);
}
.pca-vehicle-card__price-label {
    font-size: 13px;
    color: var(--pca-tx-text-muted);
}
.pca-price-loading { color: var(--pca-tx-text-muted); font-weight: 400; }

.pca-vehicle-price-loading,
.pca-vehicle-price-error,
#pca-vehicle-quote-notice {
    margin-top: var(--pca-tx-space-4);
    padding: var(--pca-tx-space-4);
    border-radius: var(--pca-tx-radius-md);
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: var(--pca-tx-space-2);
}
.pca-vehicle-price-loading {
    background: var(--pca-tx-surface-soft);
    color: var(--pca-tx-text-muted);
}
.pca-vehicle-price-error {
    background: rgba(185, 28, 28, 0.06);
    border: 1px solid rgba(185, 28, 28, 0.2);
    color: var(--pca-tx-danger);
}
#pca-vehicle-quote-notice {
    background: var(--pca-tx-warning-bg);
    border: 1px solid var(--pca-tx-warning-border);
    color: #92400e;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--pca-tx-space-3);
}

.pca-spinner {
    width: 18px; height: 18px;
    border: 2px solid var(--pca-tx-border);
    border-top-color: var(--pca-tx-primary);
    border-radius: 50%;
    display: inline-block;
    animation: pca-spin 0.8s linear infinite;
}
@keyframes pca-spin { to { transform: rotate(360deg); } }

/* Activity date field — spinner (top-right) while availability loads, so
   selecting an activity gives immediate feedback during the fetch. */
.pca-transfers-wizard .pca-excursion-card__date-wrap { position: relative; }
.pca-transfers-wizard .pca-excursion-card__date-wrap.is-loading::after {
    content: '';
    position: absolute; top: 2px; right: 2px;
    width: 14px; height: 14px;
    border: 2px solid var(--pca-tx-border);
    border-top-color: var(--pca-tx-primary);
    border-radius: 50%;
    animation: pca-spin 0.8s linear infinite;
    pointer-events: none;
}

/* Step: Excursions ---------------------------------------------------- */

.pca-excursion-list { display: flex; flex-direction: column; gap: var(--pca-tx-space-3); }

.pca-excursion-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--pca-tx-space-4);
    padding: var(--pca-tx-space-4);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    background: var(--pca-tx-surface);
}
.pca-excursion-card.is-selected {
    border-color: var(--pca-tx-primary);
    background: rgba(15, 118, 110, 0.04);
}

.pca-excursion-card__name {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}
.pca-excursion-card__price {
    margin: 0;
    font-size: 14px;
    color: var(--pca-tx-text-muted);
}

.pca-excursion-qty {
    display: flex; align-items: center; gap: var(--pca-tx-space-3);
}
.pca-excursion-qty button {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 1px solid var(--pca-tx-border-strong);
    background: var(--pca-tx-surface);
    cursor: pointer;
    display: grid; place-items: center;
    font-size: 16px;
}

/* Step: Contact ------------------------------------------------------- */

.pca-form-field { margin-bottom: var(--pca-tx-space-4); }
.pca-form-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--pca-tx-text-muted);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.pca-form-field input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-md);
    font-size: 16px;
    font-family: inherit;
    box-sizing: border-box;
}
.pca-form-field input:focus {
    outline: none;
    border-color: var(--pca-tx-primary);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}

/* Step: Review -------------------------------------------------------- */

.pca-review-section {
    background: var(--pca-tx-surface);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    padding: var(--pca-tx-space-5);
    margin-bottom: var(--pca-tx-space-4);
}

.pca-review-section__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--pca-tx-space-3);
}
.pca-review-section__title {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--pca-tx-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: var(--pca-tx-space-2);
}
.pca-edit-btn {
    background: none;
    border: none;
    color: var(--pca-tx-primary);
    font-weight: 600;
    cursor: pointer;
    font-size: 13px;
    padding: 4px 8px;
    border-radius: var(--pca-tx-radius-sm);
    font-family: inherit;
}
.pca-edit-btn:hover { background: rgba(15, 118, 110, 0.08); }

.pca-review-section__dl { margin: 0; }
.pca-review-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: var(--pca-tx-space-3);
    padding: 6px 0;
    border-bottom: 1px solid var(--pca-tx-border);
}
.pca-review-row:last-child { border-bottom: 0; }
.pca-review-row dt {
    color: var(--pca-tx-text-muted);
    font-size: 14px;
}
.pca-review-row dd {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
}

.pca-review-row--price dd { font-weight: 700; }

.pca-review-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: var(--pca-tx-space-5);
    background: var(--pca-tx-surface-soft);
    border-radius: var(--pca-tx-radius-md);
    margin-bottom: var(--pca-tx-space-4);
}
.pca-review-total__label { font-size: 14px; color: var(--pca-tx-text-muted); }
.pca-review-total__value { font-size: 24px; font-weight: 700; color: var(--pca-tx-text); }

.pca-review-submit-wrap { text-align: center; }

/* Rental quote email capture (Task 6) — shown by JS for rental custom-quote
   paths only. Reuses .pca-label / .pca-input / .pca-field-hint styling;
   left-align inside the centered submit wrap so it reads as a form field. */
.pca-transfers-wizard .pca-review-quote-email {
    margin: 0 0 16px;
    text-align: left;
}
.pca-transfers-wizard .pca-review-quote-email .pca-label { margin-bottom: 6px; }

/* Price summary on the review step (T8) — shown above the checkout CTA. */
.pca-review-price {
    margin: 0 0 16px;
    padding: 14px 16px;
    background: var(--pca-lp-surface-soft, #f8fafc);
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    text-align: left;
}
.pca-review-price__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
    color: #374151;
}
.pca-review-price__row + .pca-review-price__row { margin-top: 8px; }
.pca-review-price__row--total {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e5e7eb;
    font-weight: 700;
    color: #111827;
}
.pca-review-price__value--total { font-size: 18px; }

.pca-btn-book-now {
    width: 100%;
    padding: 16px 24px;
    font-size: 17px;
    font-weight: 700;
    background: var(--pca-tx-primary);
    color: #fff;
    border: none;
    border-radius: var(--pca-tx-radius-md);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--pca-tx-space-2);
    font-family: inherit;
}
.pca-btn-book-now:hover { background: var(--pca-tx-primary-hover); }
.pca-btn-book-now:disabled { opacity: 0.55; cursor: not-allowed; }

/* Loading state — .is-submitting (toggled by submit()) reveals the spinner and
   hides the arrow. The spinner MUST be shown via this class, not style.display:
   the base rule below (.pca-btn-book-now__spinner{display:none}) outranks an
   inline style.display='' and kept the spinner permanently hidden. White border
   for contrast on the coloured button; size overrides the base .pca-spinner. */
.pca-btn-book-now__spinner {
    display: none;
    width: 16px; height: 16px;
    margin-left: 8px;
    border-color: rgba(255, 255, 255, 0.45);
    border-top-color: #fff;
}
.pca-btn-book-now.is-submitting { opacity: 0.9; pointer-events: none; }
.pca-btn-book-now.is-submitting .pca-btn-book-now__spinner { display: inline-block; }
.pca-btn-book-now.is-submitting .pca-btn-book-now__arrow { display: none; }

.pca-submit-error {
    margin-top: var(--pca-tx-space-3);
    padding: 10px 14px;
    background: rgba(185, 28, 28, 0.06);
    border: 1px solid rgba(185, 28, 28, 0.2);
    color: var(--pca-tx-danger);
    border-radius: var(--pca-tx-radius-md);
    font-size: 14px;
    display: none;
    align-items: center;
    gap: var(--pca-tx-space-2);
}

.pca-review-reassurance {
    margin-top: var(--pca-tx-space-4);
    color: var(--pca-tx-text-muted);
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--pca-tx-space-1);
}

/* Honeypot — hidden from real users, hidden from CSS-aware bots if they read this. */

#pca-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px; height: 1px;
    opacity: 0; pointer-events: none;
    tabindex: -1;
}

/* ─────────────────────────────────────────────────────────────────────────
   v2 — Airbnb + Apple aesthetic refresh
   ───────────────────────────────────────────────────────────────────────── */

/* Wider canvas + taller titles --------------------------------------------- */

.pca-transfers-wizard {
    --pca-tx-coral: #f97a4a;
    --pca-tx-coral-soft: #fff1ec;
    --pca-tx-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.10), 0 2px 8px rgba(15, 23, 42, 0.06);
    max-width: 760px;
}

/* Specificity bump: theme h2 wins over a single-class selector on staging. */
.pca-transfers-wizard .pca-step-title,
.pca-transfers-wizard h2.pca-step-title {
    font-size: 26px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--pca-tx-text);
}
@media (min-width: 600px) {
    .pca-transfers-wizard .pca-step-title,
    .pca-transfers-wizard h2.pca-step-title { font-size: 32px; }
}
@media (min-width: 960px) {
    .pca-transfers-wizard .pca-step-title,
    .pca-transfers-wizard h2.pca-step-title { font-size: 36px; }
}

.pca-transfers-wizard .pca-step-subtitle {
    font-size: 16px;
    line-height: 1.55;
    max-width: 56ch;
    color: var(--pca-tx-text-muted);
}

/* Hide global chrome while the booking flow is active --------------------- */

body.pca-flow-active .ki-livechat-bubble,
body.pca-flow-active #livechat-compact-container,
body.pca-flow-active iframe[id*="livechat" i],
body.pca-flow-active [class*="LiveChatWidget" i],
body.pca-flow-active #hubspot-messages-iframe-container,
body.pca-flow-active iframe#hubspot-conversations-iframe,
body.pca-flow-active .header-top-promo,
body.pca-flow-active .promo-bar,
body.pca-flow-active .pca-top-bar-notice,
body.pca-flow-active aside.complementary[aria-label="Site notification"] {
    display: none !important;
}

body.pca-flow-active { background: #fafaf9; }

body.pca-flow-active .site-content,
body.pca-flow-active main { background: #fafaf9; }

/* Trust strip ---------------------------------------------------------------
   Lives OUTSIDE .pca-transfers-wizard so the wizard-scoped CSS variables
   don't reach it — every value here is self-contained. Refined Airbnb-style
   pill: hairline border, tinted icon bubbles, careful tracking.
   --------------------------------------------------------------------------- */

aside.pca-trust-strip {
    box-sizing: border-box;
    max-width: 720px;
    margin: 32px auto 24px;
    padding: 18px 22px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 24px;
    background: #ffffff;
    border: 1px solid #ececec;
    border-radius: 999px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    font-family: "Plus Jakarta Sans", "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    list-style: none;
}

@media (max-width: 759px) {
    aside.pca-trust-strip {
        border-radius: 18px;
        padding: 14px 16px;
        gap: 10px 16px;
        margin: 20px 16px 24px;
    }
}

@media (min-width: 760px) {
    aside.pca-trust-strip {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        max-width: 880px;
    }
}

aside.pca-trust-strip .pca-trust-strip__item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.005em;
    color: #4b5563;
}

aside.pca-trust-strip .pca-trust-strip__item span {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: inherit;
    font: inherit;
}

aside.pca-trust-strip .pca-trust-strip__icon {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    padding: 7px;
    border-radius: 999px;
    background: #fff1ec;
    color: #f97a4a;
    transition: transform 0.18s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.18s ease;
}

aside.pca-trust-strip .pca-trust-strip__item:hover .pca-trust-strip__icon {
    transform: scale(1.06);
    background: #ffe4d6;
}

@media (max-width: 759px) {
    aside.pca-trust-strip .pca-trust-strip__item span {
        white-space: normal;
    }
}

/* Step transition motion (additive over existing fade-in) ------------------ */

.pca-transfer-step {
    animation: pca-step-in 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes pca-step-in {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .pca-transfer-step { animation: none; }
}

/* Step: Contact (was missing styles entirely → 162px tiny inputs) --------- */

.pca-contact-form {
    display: grid;
    gap: var(--pca-tx-space-4);
    max-width: 100%;
}
.pca-form-group { display: flex; flex-direction: column; gap: 6px; }

.pca-transfers-wizard .pca-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--pca-tx-text);
    letter-spacing: 0;
    text-transform: none;
    margin: 0;
}
.pca-transfers-wizard .pca-required {
    color: var(--pca-tx-text-muted);
    font-weight: 400;
    margin-left: 2px;
}
.pca-transfers-wizard .pca-input {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-md);
    font-size: 16px;
    font-family: inherit;
    box-sizing: border-box;
    background: var(--pca-tx-surface);
    transition: border-color 0.15s, box-shadow 0.15s;
    -webkit-appearance: none;
}
.pca-transfers-wizard .pca-input:focus {
    outline: none;
    border-color: var(--pca-tx-primary);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}
.pca-transfers-wizard .pca-input::placeholder { color: #9ca3af; }

.pca-transfers-wizard .pca-field-hint {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--pca-tx-text-muted);
    line-height: 1.4;
}

.pca-transfers-wizard .pca-validation-msg {
    display: none;
    margin-top: 4px;
    font-size: 13px;
    color: var(--pca-tx-danger);
}
.pca-transfers-wizard .pca-validation-msg:not(:empty) { display: block; }

.pca-privacy-note {
    margin: var(--pca-tx-space-5) 0 0;
    padding: var(--pca-tx-space-3) var(--pca-tx-space-4);
    background: var(--pca-tx-surface-soft);
    border-radius: var(--pca-tx-radius-md);
    color: var(--pca-tx-text-muted);
    font-size: 13px;
    line-height: 1.5;
    display: flex; align-items: flex-start; gap: 8px;
}
.pca-privacy-note::before {
    content: "\1F512";
    font-size: 14px;
    flex: 0 0 auto;
    line-height: 1.2;
}
.pca-privacy-note a { color: var(--pca-tx-primary); }

/* Hotel zone preview — full visual treatment ------------------------------ */

.pca-zone-preview {
    display: none;
    padding: var(--pca-tx-space-4) var(--pca-tx-space-5);
    flex-direction: column;
    gap: 10px;
}
.pca-zone-preview.is-visible { display: flex; }
.pca-zone-preview__hotel {
    display: flex; align-items: center; gap: 10px;
    font-size: 16px; font-weight: 600; color: #065f46;
}
.pca-zone-preview__icon {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: grid; place-items: center;
    background: rgba(6, 95, 70, 0.1);
    color: var(--pca-tx-success);
    flex: 0 0 auto;
}
.pca-zone-preview__details {
    display: flex; flex-wrap: wrap; align-items: baseline;
    gap: 6px;
    font-size: 14px;
    color: #065f46;
    padding-left: 38px;
}
.pca-zone-preview__zone-label { color: rgba(6, 95, 70, 0.7); }
.pca-zone-preview__zone-value { font-weight: 500; }
.pca-zone-preview__price-from { color: rgba(6, 95, 70, 0.7); }
.pca-zone-preview__price { font-weight: 700; font-size: 16px; }

/* Excursion grid — Airbnb-style cards ------------------------------------- */

.pca-excursion-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--pca-tx-space-4);
}
@media (min-width: 720px) {
    .pca-excursion-grid { grid-template-columns: 1fr 1fr; }
}

.pca-excursion-card {
    /* override the legacy 3-col grid */
    display: flex !important;
    flex-direction: column;
    overflow: hidden;
    padding: 0 !important;
    border-radius: var(--pca-tx-radius-lg) !important;
    background: var(--pca-tx-surface) !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    cursor: pointer;
}
.pca-excursion-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--pca-tx-shadow-lg);
}
.pca-excursion-card.is-selected {
    border-color: var(--pca-tx-primary) !important;
    box-shadow: 0 0 0 2px var(--pca-tx-primary), 0 8px 24px rgba(15, 118, 110, 0.18) !important;
    background: var(--pca-tx-surface) !important;
}

.pca-excursion-card__image {
    width: 100%;
    aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, #e0f2fe 0%, #c7e9f7 50%, #a8d8eb 100%);
    background-size: cover;
    background-position: center;
    position: relative;
    display: grid; place-items: center;
}
.pca-excursion-card__image-placeholder {
    color: #5b9cb8;
    opacity: 0.6;
    width: 56px; height: 56px;
    display: grid; place-items: center;
}
.pca-excursion-card__image-placeholder svg { width: 100%; height: 100%; }

.pca-excursion-card__badge-row {
    position: absolute;
    top: 12px; left: 12px; right: 12px;
    /* Save chip removed (Task 4) — keep the rating chip pinned top-right. */
    display: flex; justify-content: flex-end; gap: 8px;
    pointer-events: none;
}
.pca-excursion-card__chip {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 5px 10px;
    background: rgba(255, 255, 255, 0.95);
    color: var(--pca-tx-text);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.15);
    line-height: 1;
}
.pca-excursion-card__chip--rating { color: #b45309; }

.pca-excursion-card__body {
    padding: var(--pca-tx-space-4) var(--pca-tx-space-5) var(--pca-tx-space-5);
    display: flex; flex-direction: column; gap: 10px;
    flex: 1;
}
.pca-excursion-card__name {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.25;
    color: var(--pca-tx-text);
}
.pca-excursion-card__tagline {
    margin: 0;
    color: var(--pca-tx-text-muted);
    font-size: 14px;
    line-height: 1.45;
}
.pca-excursion-card__meta {
    display: flex; flex-wrap: wrap; gap: 12px;
    font-size: 13px;
    color: var(--pca-tx-text-muted);
}
.pca-excursion-card__meta-item {
    display: inline-flex; align-items: center; gap: 4px;
}
.pca-excursion-card__min-guests { display: none; } /* now shown as a meta chip */

.pca-excursion-card__pricing {
    display: flex; align-items: baseline; gap: 6px;
    margin-top: auto;
    padding-top: 4px;
}
.pca-excursion-card__pricing .pca-price-original {
    font-size: 14px;
    color: var(--pca-tx-text-muted);
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
    text-decoration-color: rgba(107, 114, 128, 0.6);
}
.pca-excursion-card__pricing .pca-price-bundle {
    font-size: 22px;
    font-weight: 700;
    color: var(--pca-tx-text);
}
.pca-excursion-card__pricing .pca-price-label {
    font-size: 13px;
    color: var(--pca-tx-text-muted);
}

.pca-excursion-card__includes {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 4px;
    font-size: 13px;
    color: var(--pca-tx-text-muted);
}
.pca-excursion-card__includes li {
    display: flex; align-items: flex-start; gap: 6px;
    line-height: 1.45;
}
.pca-excursion-card__includes li::before {
    content: "✓";
    color: var(--pca-tx-success);
    font-weight: 700;
    flex: 0 0 auto;
}

.pca-transfers-wizard .pca-btn-add-excursion {
    margin-top: var(--pca-tx-space-3);
    width: 100%;
    padding: 12px 18px;
    background: var(--pca-tx-surface);
    color: var(--pca-tx-primary);
    border: 1.5px solid var(--pca-tx-primary);
    border-radius: var(--pca-tx-radius-md);
    font-weight: 600;
    cursor: pointer;
    font-size: 15px;
    transition: background-color 0.15s, color 0.15s;
}
.pca-transfers-wizard .pca-btn-add-excursion:hover {
    background: var(--pca-tx-primary);
    color: #fff;
}
.pca-transfers-wizard .pca-btn-add-excursion[aria-pressed="true"] {
    background: var(--pca-tx-primary);
    color: #fff;
    border-color: var(--pca-tx-primary);
}

.pca-excursion-skip-wrap {
    margin-top: var(--pca-tx-space-6);
    text-align: center;
}
.pca-transfers-wizard .pca-excursion-skip {
    background: transparent !important;
    border: none !important;
    color: var(--pca-tx-text-muted) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    padding: 10px 16px !important;
    cursor: pointer;
    border-radius: var(--pca-tx-radius-md);
}
.pca-transfers-wizard .pca-excursion-skip:hover {
    background: var(--pca-tx-surface-soft) !important;
    color: var(--pca-tx-text) !important;
}

.pca-excursion-subtotal {
    margin-top: var(--pca-tx-space-5);
    padding: var(--pca-tx-space-4);
    background: var(--pca-tx-coral-soft);
    border: 1px solid rgba(249, 122, 74, 0.3);
    border-radius: var(--pca-tx-radius-md);
    display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
    font-size: 14px;
}
.pca-excursion-subtotal__label { color: var(--pca-tx-text-muted); }
.pca-excursion-subtotal__value { font-weight: 700; font-size: 16px; }
.pca-excursion-subtotal__saving { color: var(--pca-tx-coral); font-weight: 600; }

/* Hotel result item — Airbnb-leaning rhythm ------------------------------- */

.pca-hotel-result-item {
    padding: 14px 16px;
}
.pca-hotel-result-name { font-weight: 500; line-height: 1.3; }

/* Trip type cards — coral "Recommended" pill ------------------------------ */

.pca-type-card {
    position: relative;
    flex-direction: column;
    text-align: center;
    align-items: center !important;
    padding: var(--pca-tx-space-6) var(--pca-tx-space-5) !important;
    gap: var(--pca-tx-space-3) !important;
}
.pca-type-card__icon {
    width: 56px !important;
    height: 56px !important;
}
.pca-type-card__icon svg { width: 28px; height: 28px; }
.pca-type-card__title { font-size: 17px !important; }
.pca-type-card__subtitle,
.pca-type-card__desc {
    margin: 0;
    color: var(--pca-tx-text-muted);
    font-size: 14px;
    line-height: 1.4;
}
.pca-type-card__badge {
    position: absolute;
    top: -10px; left: 50%;
    transform: translateX(-50%);
    padding: 4px 12px;
    background: var(--pca-tx-coral);
    color: #fff;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    box-shadow: 0 2px 6px rgba(249, 122, 74, 0.35);
    white-space: nowrap;
}
.pca-type-card.is-selected,
.pca-type-card[aria-pressed="true"] {
    border-color: var(--pca-tx-primary) !important;
    box-shadow: 0 0 0 2px var(--pca-tx-primary), var(--pca-tx-shadow-md) !important;
}

/* Sticky bottom CTA on mobile --------------------------------------------- */

@media (max-width: 599px) {
    .pca-transfers-wizard { padding-bottom: 96px; }
    .pca-transfers-nav {
        position: sticky;
        bottom: 0;
        margin: var(--pca-tx-space-4) calc(-1 * var(--pca-tx-space-4)) 0;
        padding: var(--pca-tx-space-3) var(--pca-tx-space-4) calc(var(--pca-tx-space-3) + env(safe-area-inset-bottom, 0px));
        background: rgba(255, 255, 255, 0.96);
        backdrop-filter: saturate(180%) blur(12px);
        -webkit-backdrop-filter: saturate(180%) blur(12px);
        border-top: 1px solid var(--pca-tx-border);
        z-index: 5;
    }
    .pca-transfers-nav .btn { padding: 14px 20px; font-size: 16px; }
    .pca-transfers-nav .pca-btn-next { flex: 1; }
}

/* Hotel search input — slightly more breathing room ----------------------- */

.pca-hotel-search-input {
    padding: 16px 44px 16px 44px;
    font-size: 16px;
}
.pca-hotel-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pca-tx-text-muted);
    pointer-events: none;
    display: grid; place-items: center;
}

/* Skip link in flight step → soft-toggle pill ---------------------------- */

.pca-flight-unknown-row {
    margin-top: var(--pca-tx-space-3);
}
.pca-flight-unknown-row label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: 999px;
    font-size: 14px;
    color: var(--pca-tx-text);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    user-select: none;
}
.pca-flight-unknown-row label:hover {
    border-color: var(--pca-tx-primary);
    background: var(--pca-tx-surface-soft);
}
.pca-flight-unknown-row input[type="checkbox"] {
    accent-color: var(--pca-tx-primary);
    width: 16px; height: 16px;
}

/* ─────────────────────────────────────────────────────────────────────────
   v2.1 — review fixes
   ───────────────────────────────────────────────────────────────────────── */

/* #3 Compress global header during the wizard flow. Keep brand mark + cart;
   strip the marketing nav links and "More" so users stay in the booking. */
body.pca-flow-active .traveler-mainnav .menu,
body.pca-flow-active .traveler-mainnav .navbar-nav,
body.pca-flow-active nav.primary,
body.pca-flow-active nav[aria-label="Primary site"] ul,
body.pca-flow-active nav[aria-label="Primary site"] .menu,
body.pca-flow-active .header-nav-menu,
body.pca-flow-active .header-tools .header-search,
body.pca-flow-active .header-cart,
body.pca-flow-active .header-mobile-menu-toggle {
    display: none !important;
}
body.pca-flow-active .site-header,
body.pca-flow-active header.site-header,
body.pca-flow-active .traveler-mainnav {
    border-bottom: 1px solid #e5e7eb;
    box-shadow: none;
    padding: 12px 16px;
}
/* Cart icon in nav: hide during flow so users can't accidentally exit. */
body.pca-flow-active a[href$="/cart/"],
body.pca-flow-active a[href*="/cart"][class*="cart"],
body.pca-flow-active .header-cart-link,
body.pca-flow-active .header-cart-mini,
body.pca-flow-active [aria-label*="cart" i] {
    display: none !important;
}

/* #7 Vehicle PREMIUM badge: align with coral accent (was amber). */
.pca-vehicle-card__badge { background: var(--pca-tx-accent) !important; }

/* #8 Drop the dated underline-link styling on tertiary actions inside the
   wizard. Keep the brand-teal color but make them feel like clean labels. */
.pca-transfers-wizard .pca-link {
    text-decoration: none;
    color: var(--pca-tx-primary);
    font-weight: 600;
    font-size: 14px;
    padding: 6px 4px;
    border-bottom: 1px solid transparent;
    border-radius: 4px;
    transition: background-color 0.15s, border-color 0.15s;
}
.pca-transfers-wizard .pca-link:hover {
    background: rgba(15, 118, 110, 0.06);
    border-bottom-color: var(--pca-tx-primary);
}
.pca-hotel-fallbacks {
    display: flex; flex-wrap: wrap; gap: var(--pca-tx-space-2);
    margin-top: var(--pca-tx-space-4);
}

/* #14 Date input — promote the calendar icon into the field as a leading
   adornment instead of an orphan above. */
.pca-transfers-wizard .pca-form-group.is-date-field,
.pca-transfers-wizard .pca-date-field-wrap,
.pca-transfers-wizard [data-step^="arrival"] .pca-form-group,
.pca-transfers-wizard [data-step^="departure"] .pca-form-group { position: relative; }
.pca-transfers-wizard .pca-date-input { padding-left: 44px; }
.pca-transfers-wizard .pca-date-icon,
.pca-transfers-wizard svg[class*="date"] {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pca-tx-text-muted);
    pointer-events: none;
}

/* #15 Stronger focus rings on every focusable input/button inside the wizard. */
.pca-transfers-wizard *:focus-visible {
    outline: 2px solid var(--pca-tx-primary);
    outline-offset: 2px;
    border-radius: 4px;
}

/* #5 / #19 Sticky mobile CTA: increase wizard's bottom padding to keep the
   last interactive element above the bar; also raise z-index so the trust
   strip never bleeds through. */
@media (max-width: 599px) {
    .pca-transfers-wizard { padding-bottom: 120px; }
    aside.pca-trust-strip {
        position: relative;
        z-index: 0;
        margin-bottom: 110px;
    }
    .pca-transfers-nav { z-index: 20; }
}

/* #12 / #20 Tasteful interaction motion — Add → Added toggle and step-card hover. */
.pca-transfers-wizard .pca-btn-add-excursion {
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.1s ease;
}
.pca-transfers-wizard .pca-btn-add-excursion:active { transform: scale(0.98); }
.pca-excursion-card.is-selected {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}


/* #9 Passengers reference — make the vehicle ranges feel like a tidy card
   instead of a plain text dump. */
.pca-vehicle-ranges {
    margin-top: var(--pca-tx-space-4);
    padding: var(--pca-tx-space-4);
    background: var(--pca-tx-surface-soft);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    font-size: 13px;
    color: var(--pca-tx-text-muted);
}
.pca-vehicle-ranges__title {
    font-size: 12px;
    font-weight: 700;
    color: var(--pca-tx-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
}
.pca-vehicle-ranges__row {
    display: flex; justify-content: space-between; gap: 12px;
    padding: 4px 0;
}
.pca-vehicle-ranges__row strong { color: var(--pca-tx-text); font-weight: 600; }

/* #10 Vehicle icons: ensure Luxury card's icon visually differs (the SVGs
   are already rendered server-side; nudge their color so the badge reads
   "premium feel"). */
.pca-vehicle-card[data-tier*="luxury" i] .pca-vehicle-card__image,
.pca-vehicle-card[data-vehicle-tier*="luxury" i] .pca-vehicle-card__image {
    color: var(--pca-tx-accent);
}

/* #11 Vehicle "$75 total" microcopy: nudge the secondary label to read more
   concrete by toning down its opacity rather than the misleading "total". */
.pca-vehicle-card__price-label { font-size: 12px; opacity: 0.85; }

/* Cart-icon defensive hide (some themes inject it after page load). */
body.pca-flow-active .header-cart,
body.pca-flow-active li.cart,
body.pca-flow-active .menu-item-cart { display: none !important; }

/* Passengers step — vehicle tier preview + capacity guide ----------------- */

.pca-transfers-wizard .pca-passenger-counter {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 24px 0;
    justify-content: center;
}
.pca-transfers-wizard .pca-counter-btn {
    width: 48px; height: 48px;
    border-radius: 50%;
    border: 1px solid var(--pca-tx-border-strong);
    background: var(--pca-tx-surface);
    color: var(--pca-tx-text);
    cursor: pointer;
    display: grid; place-items: center;
    transition: border-color 0.15s, background-color 0.15s, transform 0.1s;
}
.pca-transfers-wizard .pca-counter-btn:hover { border-color: var(--pca-tx-primary); }
.pca-transfers-wizard .pca-counter-btn:active { transform: scale(0.95); }
.pca-transfers-wizard .pca-counter-btn:disabled {
    opacity: 0.4; cursor: not-allowed; border-color: var(--pca-tx-border);
}
.pca-transfers-wizard .pca-counter-value {
    font-size: 32px;
    font-weight: 700;
    min-width: 56px;
    text-align: center;
    color: var(--pca-tx-text);
}

.pca-transfers-wizard .pca-vehicle-tier-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    background: var(--pca-tx-surface-soft);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    margin: 0 auto var(--pca-tx-space-4);
    width: fit-content;
    color: var(--pca-tx-text);
    font-weight: 600;
}
.pca-transfers-wizard .pca-vehicle-tier-icon {
    width: 28px; height: 28px;
    color: var(--pca-tx-primary);
    display: grid; place-items: center;
    background: rgba(15, 118, 110, 0.08);
    border-radius: 50%;
    flex: 0 0 auto;
}

.pca-transfers-wizard .pca-capacity-guide {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    padding: 0;
    background: var(--pca-tx-surface);
    border: 1px solid var(--pca-tx-border);
    border-radius: var(--pca-tx-radius-md);
    overflow: hidden;
    margin-top: var(--pca-tx-space-3);
}
@media (min-width: 600px) {
    .pca-transfers-wizard .pca-capacity-guide { grid-template-columns: repeat(4, 1fr); }
}
.pca-transfers-wizard .pca-capacity-row {
    padding: 12px 16px;
    border-right: 1px solid var(--pca-tx-border);
    border-bottom: 1px solid var(--pca-tx-border);
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: center;
    transition: background-color 0.15s;
}
.pca-transfers-wizard .pca-capacity-row:nth-child(2n) { border-right: 0; }
@media (min-width: 600px) {
    .pca-transfers-wizard .pca-capacity-row:nth-child(2n) { border-right: 1px solid var(--pca-tx-border); }
    .pca-transfers-wizard .pca-capacity-row:last-child { border-right: 0; }
    .pca-transfers-wizard .pca-capacity-row { border-bottom: 0; }
}
.pca-transfers-wizard .pca-capacity-row.is-active {
    background: var(--pca-tx-success-bg);
    color: #065f46;
}
.pca-transfers-wizard .pca-capacity-range {
    font-size: 11px;
    font-weight: 700;
    color: var(--pca-tx-text-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.pca-transfers-wizard .pca-capacity-row.is-active .pca-capacity-range { color: var(--pca-tx-success); }
.pca-transfers-wizard .pca-capacity-vehicle {
    font-size: 14px;
    font-weight: 600;
    color: var(--pca-tx-text);
}
.pca-transfers-wizard .pca-capacity-row.is-active .pca-capacity-vehicle { color: #065f46; }

.pca-transfers-wizard .pca-large-group-link {
    margin-top: var(--pca-tx-space-4);
    text-align: center;
}

/* Excursion per-card date picker (revealed after Add to trip) ------------ */

.pca-excursion-card__date-wrap {
    margin-top: var(--pca-tx-space-3);
    padding-top: var(--pca-tx-space-3);
    border-top: 1px dashed var(--pca-tx-border);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pca-excursion-card__date-wrap .pca-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--pca-tx-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.pca-excursion-card__date-wrap .pca-input,
.pca-excursion-card__date-wrap input.pca-excursion-date,
.pca-excursion-card__date-wrap input.flatpickr-input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--pca-tx-border-strong);
    border-radius: var(--pca-tx-radius-md);
    background: var(--pca-tx-surface);
    font-size: 15px;
    font-family: inherit;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.pca-excursion-card__date-wrap input:focus {
    outline: none;
    border-color: var(--pca-tx-primary);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}
.pca-excursion-card__date-wrap input[disabled] {
    background: var(--pca-tx-surface-soft);
    color: var(--pca-tx-text-muted);
    cursor: progress;
}

/* Flatpickr calendar — pull the brand colors in so calendars don't look stock.
   CRITICAL: the brand tokens are (re)declared on .flatpickr-calendar itself.
   Popover calendars append to <body>, OUTSIDE .pca-transfers-wizard where the
   tokens normally live; without this, `background: var(--pca-tx-primary)` is
   invalid at computed-value time and collapses to transparent while the
   literal `color:#fff` still applies → invisible white-on-white endpoints
   (the audit's "range shows no endpoints / band off-by-one" bug). Same trick
   already exists for .pca-sheet further down. */
.flatpickr-calendar {
    --pca-tx-primary: #0f766e;
    --pca-tx-primary-hover: #0d6660;
}
.flatpickr-calendar.flatpickr-calendar { font-family: inherit; }
/* Selected day + range endpoints: solid filled teal circles, white numeral.
   The .flatpickr-calendar prefix outranks theme-level flatpickr skins
   (stock CSS, flatpickr-pca.css) at equal !important weight. */
.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.endRange,
.flatpickr-calendar .flatpickr-day.selected:focus,
.flatpickr-calendar .flatpickr-day.startRange:focus,
.flatpickr-calendar .flatpickr-day.endRange:focus,
.flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar .flatpickr-day.startRange:hover,
.flatpickr-calendar .flatpickr-day.endRange:hover {
    background: var(--pca-tx-primary) !important;
    border-color: var(--pca-tx-primary) !important;
    color: #fff !important;
    border-radius: 50% !important; /* full circle, not the stock half-pill */
    box-shadow: none !important;   /* kills the stock blue adjacency shadow */
    font-weight: 600;
}
.flatpickr-calendar .flatpickr-day.today { border-color: var(--pca-tx-primary); }
/* Distinct date states: today = outline + dot (selected stays filled teal);
   in-range = soft teal; disabled = muted but still legible (not invisible). */
.flatpickr-calendar .flatpickr-day.today:not(.selected) { position: relative; }
.flatpickr-calendar .flatpickr-day.today:not(.selected)::after {
    content: ""; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px; border-radius: 50%; background: var(--pca-tx-primary);
}
.flatpickr-calendar .flatpickr-day.inRange {
    background: rgba(15, 118, 110, .12) !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: #1f2937 !important;
}
/* Hover must never wash out the day number — nor erase endpoint styling.
   Flatpickr's default `.today:hover` (and range-preview hover) set WHITE text
   on a light hover background, making the number invisible — keep dark text +
   soft teal hover for any day that isn't the actual selected/range endpoint
   (endpoints are excluded via :not and keep their filled-circle rule above). */
.flatpickr-calendar .flatpickr-day:hover:not(.selected):not(.startRange):not(.endRange):not(.flatpickr-disabled),
.flatpickr-calendar .flatpickr-day.today:hover:not(.selected):not(.startRange):not(.endRange),
.flatpickr-calendar .flatpickr-day.nextMonthDay:hover:not(.selected):not(.startRange):not(.endRange),
.flatpickr-calendar .flatpickr-day.prevMonthDay:hover:not(.selected):not(.startRange):not(.endRange) {
    background: rgba(15, 118, 110, .12) !important;
    border-color: transparent !important;
    color: #1f2937 !important;
}
.flatpickr-calendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover {
    color: #94a3b8 !important; /* muted but still legible (was near-invisible #cbd5e1) */
    cursor: not-allowed;
}
/* Range-picking progress line ("Arrival: Jul 11 → now pick departure"),
   injected by step-bindings.js while exactly one of the two dates is picked.
   Body-ink gray (#374151, 10.3:1 on white) — never the muted token. */
.pca-transfers-wizard .pca-date-progress {
    margin: 10px 0 0 !important;
    font-size: 14px !important;
    font-weight: 500;
    color: #374151 !important;
}

/* ╔══════════════════════════════════════════════════════════════════════════
   ║ v3 EDITORIAL MINIMAL OVERRIDE — refined, restrained, type-led.
   ║ - Hairline borders, no elevation, single primary (teal) for CTAs only.
   ║ - Coral retired except for the rating star.
   ║ - Uniform 8px radius across cards/inputs/buttons.
   ║ - Inspired by Linear / Stripe Docs / Vercel: information-first calm.
   ║ Selectors below match the actual template class names.
   ╚══════════════════════════════════════════════════════════════════════════ */

/* — Container rhythm + type ---------------------------------------------- */
.pca-transfers-wizard {
    --pca-tx-radius-sm: 6px;
    --pca-tx-radius-md: 8px;
    --pca-tx-radius-lg: 8px;
    --pca-tx-shadow-sm: none;
    --pca-tx-shadow-md: none;
    --pca-tx-shadow-lg: none;
    max-width: 680px;
    padding: 32px 20px 96px;
    color: #111827;
    letter-spacing: -0.005em;
}
@media (min-width: 600px) {
    .pca-transfers-wizard { padding: 56px 24px 96px; }
}

/* — Step heading --------------------------------------------------------- */
.pca-transfers-wizard .pca-step-header {
    margin-bottom: 28px;
    padding: 0;
    border: 0;
    background: transparent;
}
.pca-transfers-wizard .pca-step-header::before,
.pca-transfers-wizard .pca-step-header::after { display: none !important; }
.pca-transfers-wizard .pca-step-title {
    font-size: 26px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.018em !important;
    color: #111827 !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
}
@media (min-width: 600px) {
    .pca-transfers-wizard .pca-step-title { font-size: 30px !important; }
}
.pca-transfers-wizard .pca-step-subtitle {
    font-size: 15px;
    color: #6b7280;
    margin: 0;
    line-height: 1.5;
}

/* — Progress: hairline rail with teal fill ------------------------------- */
.pca-transfers-wizard .pca-transfers-progress {
    background: #f3f4f6 !important;
    height: 2px !important;
    border-radius: 0 !important;
    margin-bottom: 28px !important;
    overflow: hidden;
    box-shadow: none !important;
}
.pca-transfers-wizard .pca-transfers-progress-bar {
    background: #0f766e !important;
    border-radius: 0 !important;
    height: 100% !important;
    transition: width 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: none !important;
}

/* — Inputs: hairline 8px ------------------------------------------------- */
.pca-transfers-wizard input[type="text"],
.pca-transfers-wizard input[type="email"],
.pca-transfers-wizard input[type="tel"],
.pca-transfers-wizard input[type="search"],
.pca-transfers-wizard input[type="date"],
.pca-transfers-wizard input[type="number"],
.pca-transfers-wizard textarea,
.pca-transfers-wizard select,
.pca-transfers-wizard .pca-input,
.pca-transfers-wizard .pca-hotel-search-input {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 48px !important;
    padding: 0 14px !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    color: #111827 !important;
    box-shadow: none !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.pca-transfers-wizard textarea {
    height: auto !important;
    padding: 12px 14px !important;
    min-height: 96px !important;
}
.pca-transfers-wizard input::placeholder,
.pca-transfers-wizard textarea::placeholder { color: #9ca3af; }
.pca-transfers-wizard input:focus,
.pca-transfers-wizard textarea:focus,
.pca-transfers-wizard select:focus,
.pca-transfers-wizard .pca-input:focus,
.pca-transfers-wizard .pca-hotel-search-input:focus {
    outline: none !important;
    border-color: #0f766e !important;
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12) !important;
}

/* — Hotel search: legacy rules superseded by flex shell at end of file -- */

/* — Date / Flight field wrap: icon inside ------------------------------- */
.pca-transfers-wizard .pca-date-field-wrap,
.pca-transfers-wizard .pca-flight-field-wrap { position: relative; }
.pca-transfers-wizard .pca-date-field-icon,
.pca-transfers-wizard .pca-flight-field-wrap > svg:first-child {
    position: absolute !important;
    left: 14px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 16px !important;
    height: 16px !important;
    color: #6b7280 !important;
    background: transparent !important;
    pointer-events: none;
    margin: 0 !important;
}
.pca-transfers-wizard .pca-date-field-wrap .pca-input,
.pca-transfers-wizard .pca-date-field-wrap input { padding-left: 42px !important; }
.pca-transfers-wizard .pca-date-hint,
.pca-transfers-wizard .pca-field-hint {
    margin-top: 8px !important;
    font-size: 13px !important;
    color: #6b7280 !important;
}

/* — Buttons -------------------------------------------------------------- */
.pca-transfers-wizard .btn,
.pca-transfers-wizard #pca-btn-next,
.pca-transfers-wizard #pca-btn-back,
.pca-transfers-wizard .pca-submit-btn,
.pca-transfers-wizard .pca-btn-book-now {
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-weight: 600 !important;
    letter-spacing: -0.005em !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
    height: 48px !important;
    padding: 0 22px !important;
    font-size: 15px !important;
}
.pca-transfers-wizard #pca-btn-next,
.pca-transfers-wizard .pca-submit-btn,
.pca-transfers-wizard .pca-btn-book-now,
.pca-transfers-wizard .btn--primary {
    background: #0f766e !important;
    color: #ffffff !important;
    border: 1px solid #0f766e !important;
}
.pca-transfers-wizard #pca-btn-next:hover,
.pca-transfers-wizard .pca-submit-btn:hover,
.pca-transfers-wizard .pca-btn-book-now:hover,
.pca-transfers-wizard .btn--primary:hover {
    background: #0d6660 !important;
    border-color: #0d6660 !important;
}
.pca-transfers-wizard #pca-btn-back,
.pca-transfers-wizard .btn--secondary {
    background: #ffffff !important;
    color: #111827 !important;
    border: 1px solid #e5e7eb !important;
}
.pca-transfers-wizard #pca-btn-back:hover,
.pca-transfers-wizard .btn--secondary:hover {
    border-color: #d1d5db !important;
    background: #ffffff !important;
}
.pca-transfers-wizard #pca-btn-next[aria-disabled="true"] {
    background: #f3f4f6 !important;
    color: #9ca3af !important;
    border-color: #f3f4f6 !important;
    cursor: not-allowed;
}

/* — Wizard nav row ------------------------------------------------------- */
.pca-transfers-wizard .pca-transfers-nav {
    margin-top: 32px !important;
    padding-top: 24px !important;
    border-top: 1px solid #f3f4f6 !important;
    background: transparent !important;
    box-shadow: none !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

/* — Trip type cards (.pca-type-card) ------------------------------------ */
.pca-transfers-wizard .pca-transfer-type-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
@media (min-width: 600px) {
    /* 4 type cards (incl. Hotel → Hotel): 2×2 keeps the grid balanced instead
       of a lopsided 3+1 wrap. */
    .pca-transfers-wizard .pca-transfer-type-cards { grid-template-columns: repeat(2, 1fr); }
}
.pca-transfers-wizard .pca-type-card {
    position: relative !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 22px 20px !important;
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    cursor: pointer !important;
    transition: border-color 0.15s ease, background-color 0.15s ease !important;
}
/* Interactive states: hover = teal border + faint tint; selected = teal border
   + mint fill; keyboard focus = visible teal ring. */
.pca-transfers-wizard .pca-type-card:hover {
    border-color: var(--pca-tx-primary) !important;
    background: #fafffe !important;
}
.pca-transfers-wizard .pca-type-card:focus-visible {
    outline: 3px solid rgba(15, 118, 110, 0.45) !important;
    outline-offset: 2px !important;
}
.pca-transfers-wizard .pca-type-card[aria-pressed="true"] {
    border-color: #0f766e !important;
    background: #f0fdfa !important;
    box-shadow: none !important;
}
.pca-transfers-wizard .pca-type-card__badge {
    position: absolute !important;
    top: 14px !important;
    right: 16px !important;
    background: transparent !important;
    color: #0f766e !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    line-height: 1 !important;
}
.pca-transfers-wizard .pca-type-card__icon {
    background: transparent !important;
    color: #0f766e !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 0 4px !important;
    display: inline-flex;
}
.pca-transfers-wizard .pca-type-card__icon svg {
    width: 24px !important;
    height: 24px !important;
    stroke-width: 1.6 !important;
}
.pca-transfers-wizard .pca-type-card__title {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    letter-spacing: -0.01em !important;
    margin: 0 !important;
    text-align: left !important;
}
.pca-transfers-wizard .pca-type-card__subtitle {
    font-size: 13px !important;
    color: #6b7280 !important;
    margin: 0 !important;
    text-align: left !important;
}

/* — Hotel results dropdown ---------------------------------------------- */
.pca-transfers-wizard .pca-hotel-dropdown {
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    margin-top: 8px !important;
    overflow: hidden !important;
    box-shadow: none !important;
    background: #ffffff !important;
}
.pca-transfers-wizard .pca-hotel-result-item {
    padding: 14px 16px !important;
    border-bottom: 1px solid #f3f4f6 !important;
    background: #ffffff !important;
    transition: background-color 0.12s ease !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
}
.pca-transfers-wizard .pca-hotel-result-item:last-child { border-bottom: 0 !important; }
.pca-transfers-wizard .pca-hotel-result-item:hover { background: #f9fafb !important; }
.pca-transfers-wizard .pca-hotel-result-name {
    font-weight: 500 !important;
    color: #111827 !important;
    font-size: 14px !important;
}
.pca-transfers-wizard .pca-hotel-result-badge {
    color: #0f766e !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* — Hotel fallback links: subdued underlined links ---------------------- */
.pca-transfers-wizard .pca-hotel-fallbacks {
    margin-top: 14px !important;
    display: flex !important;
    flex-wrap: wrap;
    gap: 20px !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}
.pca-transfers-wizard .pca-link,
.pca-transfers-wizard .pca-hotel-fallback-airbnb,
.pca-transfers-wizard .pca-hotel-fallback-unknown,
.pca-transfers-wizard .pca-excursion-skip,
.pca-transfers-wizard .pca-large-group-link {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    color: #0f766e !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    cursor: pointer;
    height: auto !important;
}
.pca-transfers-wizard .pca-link:hover,
.pca-transfers-wizard .pca-hotel-fallback-airbnb:hover,
.pca-transfers-wizard .pca-hotel-fallback-unknown:hover { color: #0d6660 !important; }

/* — Vehicle cards ------------------------------------------------------- */
.pca-transfers-wizard .pca-vehicle-card {
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 24px !important;
    background: #ffffff !important;
    text-align: left !important;
}
.pca-transfers-wizard .pca-vehicle-card:hover {
    border-color: #d1d5db !important;
    box-shadow: none !important;
    transform: none !important;
}
.pca-transfers-wizard .pca-vehicle-card[aria-pressed="true"] {
    border-color: #0f766e !important;
    background: #f0fdfa !important;
    box-shadow: none !important;
}
.pca-transfers-wizard .pca-vehicle-card__badge {
    background: transparent !important;
    color: #6b7280 !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    top: 16px !important;
    right: 18px !important;
    position: absolute;
}
.pca-transfers-wizard .pca-vehicle-card__name {
    font-size: 17px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
}
.pca-transfers-wizard .pca-vehicle-card__price {
    font-size: 22px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    letter-spacing: -0.015em !important;
}
.pca-transfers-wizard .pca-vehicle-card__price-label {
    font-size: 12px !important;
    color: #6b7280 !important;
    font-weight: 500 !important;
}
.pca-transfers-wizard .pca-vehicle-card__features {
    color: #4b5563 !important;
    font-size: 13px !important;
}
.pca-transfers-wizard .pca-vehicle-card__features li::before {
    color: #0f766e !important;
}

/* — Capacity guide ------------------------------------------------------ */
.pca-transfers-wizard .pca-capacity-guide {
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 16px !important;
}
.pca-transfers-wizard .pca-capacity-row {
    background: transparent !important;
    border-bottom: 1px solid #e5e7eb !important;
    padding: 10px 0 !important;
}
.pca-transfers-wizard .pca-capacity-row:last-child { border-bottom: 0 !important; }

/* — Excursion cards ----------------------------------------------------- */
.pca-transfers-wizard .pca-excursion-grid {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 14px;
}
@media (min-width: 600px) {
    .pca-transfers-wizard .pca-excursion-grid { grid-template-columns: repeat(2, 1fr); }
}
.pca-transfers-wizard .pca-excursion-card {
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    background: #ffffff !important;
    overflow: hidden !important;
    transform: none !important;
    transition: border-color 0.15s ease !important;
}
.pca-transfers-wizard .pca-excursion-card:hover {
    border-color: #d1d5db !important;
    box-shadow: none !important;
    transform: none !important;
}
.pca-transfers-wizard .pca-excursion-card.is-selected {
    border-color: #0f766e !important;
    box-shadow: none !important;
    transform: none !important;
}
.pca-transfers-wizard .pca-excursion-card__image {
    border-radius: 0 !important;
    border-bottom: 1px solid #e5e7eb !important;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    width: 100%;
}
.pca-transfers-wizard .pca-excursion-card__body { padding: 18px !important; }
.pca-transfers-wizard .pca-excursion-card__name {
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    color: #111827 !important;
    margin: 0 0 4px !important;
}
.pca-transfers-wizard .pca-excursion-card__tagline {
    font-size: 13px !important;
    color: #6b7280 !important;
    line-height: 1.45 !important;
    margin: 0 0 12px !important;
}

/* Rating chip — neutral, coral STAR only -------------------------------- */
.pca-transfers-wizard .pca-excursion-card__chip--rating {
    background: #ffffff !important;
    color: #111827 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 999px !important;
    padding: 3px 10px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}
.pca-transfers-wizard .pca-excursion-card__chip--rating svg,
.pca-transfers-wizard .pca-excursion-card__chip--rating::before {
    color: #f97a4a !important;
}

.pca-transfers-wizard .pca-excursion-card__pricing { margin-top: 10px !important; }
.pca-transfers-wizard .pca-price-bundle {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    letter-spacing: -0.015em !important;
}
.pca-transfers-wizard .pca-price-original {
    font-size: 13px !important;
    color: #9ca3af !important;
    text-decoration: line-through;
}
.pca-transfers-wizard .pca-price-label {
    font-size: 12px !important;
    color: #6b7280 !important;
}

/* Add / Added button ---------------------------------------------------- */
.pca-transfers-wizard .pca-btn-add-excursion {
    background: #ffffff !important;
    color: #0f766e !important;
    border: 1px solid #0f766e !important;
    border-radius: 8px !important;
    height: 36px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    transform: none !important;
}
.pca-transfers-wizard .pca-btn-add-excursion:hover {
    background: #f0fdfa !important;
    transform: none !important;
}
.pca-transfers-wizard .pca-btn-add-excursion[aria-pressed="true"] {
    background: #0f766e !important;
    color: #ffffff !important;
}

/* Subtotal block -------------------------------------------------------- */
.pca-transfers-wizard .pca-excursion-subtotal {
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    padding: 14px 16px !important;
    box-shadow: none !important;
    color: #111827 !important;
    margin-top: 16px !important;
}
.pca-transfers-wizard .pca-excursion-subtotal__saving {
    color: #0f766e !important;
    font-weight: 600 !important;
}

/* — Passenger counter --------------------------------------------------- */
.pca-transfers-wizard .pca-passenger-counter {
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    overflow: hidden;
    background: #ffffff !important;
    display: inline-flex !important;
    align-items: center;
}
.pca-transfers-wizard .pca-counter-btn {
    background: #ffffff !important;
    color: #111827 !important;
    border: 0 !important;
    width: 40px !important;
    height: 40px !important;
    box-shadow: none !important;
    font-size: 18px !important;
}
.pca-transfers-wizard .pca-counter-btn:hover { background: #f9fafb !important; }
.pca-transfers-wizard .pca-counter-value {
    min-width: 40px !important;
    text-align: center !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    border-left: 1px solid #e5e7eb !important;
    border-right: 1px solid #e5e7eb !important;
    height: 40px;
    line-height: 40px;
    padding: 0 8px;
}

/* — Contact form -------------------------------------------------------- */
.pca-transfers-wizard .pca-form-group {
    margin-bottom: 16px !important;
}
.pca-transfers-wizard .pca-label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #374151 !important;
    margin-bottom: 6px !important;
    letter-spacing: -0.005em;
}
.pca-transfers-wizard .pca-required {
    color: #b91c1c !important;
    margin-left: 2px;
}
.pca-transfers-wizard .pca-checkbox-label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 14px !important;
    color: #374151 !important;
}
.pca-transfers-wizard .pca-checkbox {
    width: 16px !important;
    height: 16px !important;
    accent-color: #0f766e !important;
}
.pca-transfers-wizard .pca-privacy-note {
    font-size: 12px !important;
    color: #6b7280 !important;
    line-height: 1.5 !important;
    margin-top: 8px !important;
}

/* — Review section ------------------------------------------------------ */
.pca-transfers-wizard .pca-review-section {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 18px !important;
    margin-bottom: 12px !important;
}
.pca-transfers-wizard .pca-review-section__title,
.pca-transfers-wizard .pca-review-section h3 {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: #6b7280 !important;
    margin: 0 0 12px !important;
}
.pca-transfers-wizard .pca-review-row {
    display: flex !important;
    justify-content: space-between !important;
    padding: 8px 0 !important;
    font-size: 14px !important;
    color: #4b5563 !important;
    border-bottom: 1px solid #f3f4f6 !important;
    align-items: baseline;
}
.pca-transfers-wizard .pca-review-row:last-child { border-bottom: 0 !important; }
.pca-transfers-wizard .pca-review-row--price,
.pca-transfers-wizard .pca-review-row--total {
    font-weight: 600 !important;
    color: #111827 !important;
    font-size: 16px !important;
    padding-top: 12px !important;
    border-top: 1px solid #e5e7eb !important;
}
.pca-transfers-wizard .pca-review-row--saving {
    color: #0f766e !important;
}
/* Excursion card UX feedback: summary chip + counter bump animation ----- */
.pca-transfers-wizard .pca-excursion-card__summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px;
    padding: 6px 12px;
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: -0.005em;
    line-height: 1.3;
    animation: pca-summary-in 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes pca-summary-in {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.pca-transfers-wizard .counter-display.is-bumped {
    animation: pca-bump 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    color: #0f766e;
}
@keyframes pca-bump {
    0%   { transform: scale(1);   color: #0f766e; }
    40%  { transform: scale(1.18); color: #0f766e; }
    100% { transform: scale(1);   color: #111827; }
}

/* "Added — Remove" CTA gets a clearer affordance when active */
.pca-transfers-wizard .pca-btn-add-excursion[aria-pressed="true"] {
    background: #0f766e !important;
    color: #ffffff !important;
    border-color: #0f766e !important;
    transition: background-color 0.18s ease;
}
.pca-transfers-wizard .pca-btn-add-excursion[aria-pressed="true"]:hover {
    background: #b91c1c !important;
    border-color: #b91c1c !important;
}

/* Excursion card inline panel: date + time + guest counters */
.pca-transfers-wizard .pca-excursion-card__panel {
    margin-top: 14px;
    padding: 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pca-transfers-wizard .pca-excursion-card__panel .pca-label {
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6b7280;
}
.pca-transfers-wizard .pca-excursion-card__guests {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 4px 12px;
}
.pca-transfers-wizard .counter-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f3f4f6;
}
.pca-transfers-wizard .counter-row:last-child { border-bottom: 0; }
.pca-transfers-wizard .counter-info { min-width: 0; }
.pca-transfers-wizard .counter-label {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    letter-spacing: -0.005em;
}
.pca-transfers-wizard .counter-sublabel {
    font-size: 12px;
    color: #6b7280;
    margin-top: 1px;
}
.pca-transfers-wizard .counter-controls {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.pca-transfers-wizard .counter-btn {
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #ffffff;
    color: #111827;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.12s ease, background-color 0.12s ease;
}
.pca-transfers-wizard .counter-btn:hover { border-color: #0f766e; }
.pca-transfers-wizard .counter-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.pca-transfers-wizard .counter-display {
    display: inline-block;
    min-width: 28px;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: #111827;
}
.pca-transfers-wizard select.pca-input,
.pca-transfers-wizard select.pca-excursion-time {
    background-color: #ffffff !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'><path fill='%236b7280' d='M6 8L0 0h12z'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    padding-right: 38px !important;
    cursor: pointer;
}

.pca-transfers-wizard .pca-btn-book-now {
    width: 100%;
    height: 52px !important;
    font-size: 16px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.pca-transfers-wizard .pca-btn-book-now__arrow { transition: transform 0.18s ease; }
.pca-transfers-wizard .pca-btn-book-now:hover .pca-btn-book-now__arrow { transform: translateX(3px); }
.pca-transfers-wizard .pca-review-excursion-list {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
}
.pca-transfers-wizard .pca-review-excursion-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0;
    font-size: 14px;
    color: #4b5563 !important;
    border-bottom: 1px solid #f3f4f6;
}
.pca-transfers-wizard .pca-review-excursion-item:last-child { border-bottom: 0; }
.pca-transfers-wizard .pca-review-excursion-item__label { color: #111827; font-weight: 500; }
.pca-transfers-wizard .pca-review-excursion-item__price { color: #111827; font-weight: 600; white-space: nowrap; }
.pca-transfers-wizard .pca-review-excursion-item--loading { color: #9ca3af !important; font-style: italic; }
.pca-transfers-wizard .pca-review-excursion-item--error { color: #b91c1c !important; }
.pca-transfers-wizard .pca-review-row--saving .pca-review-saving-value { color: #0f766e !important; font-weight: 600; }

.pca-transfers-wizard .pca-edit-btn {
    background: transparent !important;
    border: 0 !important;
    color: #0f766e !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 3px !important;
    padding: 0 !important;
    cursor: pointer;
    box-shadow: none !important;
}

/* — Sticky mobile CTA --------------------------------------------------- */
@media (max-width: 599px) {
    .pca-sticky-cta,
    .pca-transfers-mobile-cta,
    [class*="sticky-cta" i] {
        background: #ffffff !important;
        border-top: 1px solid #e5e7eb !important;
        box-shadow: none !important;
        padding: 12px 16px !important;
    }
}

/* — Trust strip: muted hairline pill, no coral bubbles ------------------ */
aside.pca-trust-strip {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 14px 18px !important;
    margin: 24px auto !important;
    max-width: 720px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px 24px !important;
}
@media (min-width: 760px) {
    aside.pca-trust-strip {
        display: flex !important;
        justify-content: space-between !important;
        gap: 24px !important;
        max-width: 880px !important;
    }
}
aside.pca-trust-strip .pca-trust-strip__icon {
    background: transparent !important;
    color: #6b7280 !important;
    width: 18px !important;
    height: 18px !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
aside.pca-trust-strip .pca-trust-strip__item {
    color: #4b5563 !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    gap: 8px !important;
}
aside.pca-trust-strip .pca-trust-strip__item:hover .pca-trust-strip__icon {
    transform: none !important;
    color: #0f766e !important;
    background: transparent !important;
}
@media (max-width: 759px) {
    aside.pca-trust-strip {
        padding: 12px 14px !important;
        margin: 16px 16px 24px !important;
    }
    aside.pca-trust-strip .pca-trust-strip__item span {
        font-size: 12px !important;
        white-space: normal !important;
    }
}

/* — Empty / large-group CTAs ------------------------------------------- */
.pca-transfers-wizard .pca-large-group-cta {
    background: #f9fafb !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    padding: 16px !important;
    box-shadow: none !important;
}
.pca-transfers-wizard .pca-large-group-cta__message {
    font-size: 13px !important;
    color: #4b5563 !important;
    margin: 0 0 8px !important;
}

/* — Final focus rings --------------------------------------------------- */
.pca-transfers-wizard *:focus-visible {
    outline: 2px solid #0f766e !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}

/* ╔══════════════════════════════════════════════════════════════════════════
   ║ LANDING PAGE — CRO sections wrapping the wizard
   ║ Hero (with wizard right-rail), trust strip, comparison, how-it-works,
   ║ reviews, FAQ accordion, final CTA. Editorial-minimal, info-dense.
   ║ All scoped under .pca-lp so it can't leak into other WP pages.
   ╚══════════════════════════════════════════════════════════════════════════ */

.pca-lp {
    --pca-lp-text:        #111827;
    --pca-lp-text-soft:   #4b5563;
    --pca-lp-text-muted:  #6b7280;
    --pca-lp-border:      #e5e7eb;
    --pca-lp-border-soft: #f3f4f6;
    --pca-lp-surface:     #ffffff;
    --pca-lp-surface-soft:#fafaf9;
    --pca-lp-primary:     #0f766e;
    --pca-lp-primary-soft:#f0fdfa;
    --pca-lp-accent-star: #f97a4a;
    --pca-lp-font:        "Plus Jakarta Sans", "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    font-family: var(--pca-lp-font);
    color: var(--pca-lp-text);
    letter-spacing: -0.005em;
}
.pca-lp * { box-sizing: border-box; }

/* — Generic section ----------------------------------------------------- */
.pca-lp-section { padding: 56px 20px; background: var(--pca-lp-surface); }
.pca-lp-section--soft { background: var(--pca-lp-surface-soft); }
@media (min-width: 768px) { .pca-lp-section { padding: 88px 24px; } }

.pca-lp-section__inner { max-width: 1120px; margin: 0 auto; }
.pca-lp-section__inner--narrow { max-width: 720px; }
.pca-lp-section__head { margin-bottom: 36px; max-width: 720px; }
.pca-lp-section__eyebrow,
.pca-lp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pca-lp-primary);
    margin-bottom: 14px;
}
.pca-lp-eyebrow__dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pca-lp-primary);
    box-shadow: 0 0 0 4px rgba(15,118,110,.12);
}
.pca-lp-h1, .pca-lp-h2 {
    font-family: var(--pca-lp-font);
    font-weight: 700;
    color: var(--pca-lp-text);
    letter-spacing: -0.025em;
    margin: 0;
}
.pca-lp-h1 { font-size: 38px; line-height: 1.05; }
.pca-lp-h2 { font-size: 28px; line-height: 1.15; }
@media (min-width: 768px) {
    .pca-lp-h1 { font-size: 56px; letter-spacing: -0.03em; }
    .pca-lp-h2 { font-size: 36px; }
}
.pca-lp-section__sub {
    margin: 12px 0 0;
    color: var(--pca-lp-text-soft);
    font-size: 17px;
    line-height: 1.55;
    max-width: 56ch;
}

/* — HERO (centered, single focal point) -------------------------------- */
.pca-lp-hero {
    background:
        radial-gradient(900px 500px at 90% 0%, rgba(15,118,110,.06) 0%, transparent 60%),
        radial-gradient(700px 400px at 0% 100%, rgba(249,122,74,.04) 0%, transparent 60%),
        var(--pca-lp-surface);
    border-bottom: 1px solid var(--pca-lp-border-soft);
    padding: 64px 20px 56px;
    text-align: center;
}
@media (min-width: 768px) {
    .pca-lp-hero { padding: 96px 24px 80px; }
}
.pca-lp-hero__inner {
    max-width: 720px;
    margin: 0 auto;
}
.pca-lp-hero .pca-lp-eyebrow,
.pca-lp-hero .pca-lp-h1 {
    margin-left: auto;
    margin-right: auto;
}
.pca-lp-sub {
    margin: 16px auto 28px;
    font-size: 18px;
    line-height: 1.5;
    color: var(--pca-lp-text-soft);
    max-width: 56ch;
}
@media (min-width: 768px) { .pca-lp-sub { font-size: 20px; } }

.pca-lp-hero__cta-row {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 0 auto 32px;
}
@media (min-width: 600px) {
    .pca-lp-hero__cta-row { flex-direction: row; gap: 16px; }
}
.pca-lp-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--pca-lp-primary);
    color: #fff !important;
    padding: 16px 32px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 17px;
    letter-spacing: -0.005em;
    text-decoration: none !important;
    transition: background-color 0.15s ease, transform 0.1s ease;
}
.pca-lp-cta:hover { background: #0d6660; color: #fff !important; }
.pca-lp-cta:active { transform: scale(0.98); }
.pca-lp-cta svg { transition: transform 0.18s ease; }
.pca-lp-cta:hover svg { transform: translateY(2px); }
.pca-lp-cta-meta {
    font-size: 13.5px;
    color: var(--pca-lp-text-muted);
    font-weight: 500;
}

.pca-lp-hero__rating {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 14px;
    color: var(--pca-lp-text-soft);
    justify-content: center;
}
.pca-lp-hero__rating strong { color: var(--pca-lp-text); font-weight: 700; font-size: 15px; }
.pca-lp-hero__rating-meta { color: var(--pca-lp-text-muted); }
.pca-lp-stars { color: var(--pca-lp-accent-star); letter-spacing: 1px; font-size: 14px; }

/* — Wizard section: centered card, full attention --------------------- */
.pca-lp-wizard-section {
    padding: 0 20px 64px;
    background: var(--pca-lp-surface);
    margin-top: -32px;
    position: relative;
    z-index: 2;
}
@media (min-width: 768px) {
    .pca-lp-wizard-section { padding: 0 24px 96px; margin-top: -56px; }
}
.pca-lp-wizard-section__inner {
    max-width: 760px;
    margin: 0 auto;
    background: var(--pca-lp-surface);
    border: 1px solid var(--pca-lp-border);
    border-radius: 16px;
    padding: 4px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.pca-lp-wizard-section__inner .pca-transfers-wizard {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 32px 28px !important;
}
@media (max-width: 599px) {
    .pca-lp-wizard-section { padding: 0 16px 48px; margin-top: -32px; }
    .pca-lp-wizard-section__inner { border-radius: 12px; }
    .pca-lp-wizard-section__inner .pca-transfers-wizard { padding: 24px 18px !important; }
}

/* — Trust strip: edge-to-edge band, hairline above + below ------------- */
.pca-lp aside.pca-trust-strip {
    max-width: 1120px !important;
    margin: 0 auto !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 1px solid var(--pca-lp-border-soft) !important;
    border-bottom: 1px solid var(--pca-lp-border-soft) !important;
    padding: 18px 24px !important;
    background: var(--pca-lp-surface) !important;
}

/* — Comparison table --------------------------------------------------- */
.pca-lp-compare {
    border: 1px solid var(--pca-lp-border);
    border-radius: 12px;
    overflow: hidden;
    background: var(--pca-lp-surface);
    margin-top: 8px;
}
.pca-lp-compare__row {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    align-items: center;
    padding: 16px 18px;
    border-bottom: 1px solid var(--pca-lp-border-soft);
    font-size: 14px;
    color: var(--pca-lp-text-soft);
}
.pca-lp-compare__row:last-child { border-bottom: 0; }
.pca-lp-compare__row [role="rowheader"] { color: var(--pca-lp-text); font-weight: 500; }
.pca-lp-compare__us { color: var(--pca-lp-text); font-weight: 600; }
.pca-lp-compare__them { color: var(--pca-lp-text-muted); }
.pca-lp-compare__row--head {
    background: var(--pca-lp-surface-soft);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pca-lp-text-muted);
    padding: 14px 18px;
}
.pca-lp-compare__brand {
    color: var(--pca-lp-primary);
    letter-spacing: 0.08em;
}
.pca-lp-yes { color: var(--pca-lp-primary); }
.pca-lp-no { color: var(--pca-lp-text-muted); }
@media (max-width: 599px) {
    .pca-lp-compare__row { grid-template-columns: 1.5fr 1fr 1fr; padding: 14px 12px; font-size: 13px; }
    .pca-lp-compare__row--head { font-size: 10px; padding: 12px 12px; }
}

/* — How-it-works steps ------------------------------------------------- */
.pca-lp-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr;
    counter-reset: pca-step;
}
@media (min-width: 768px) {
    .pca-lp-steps { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}
.pca-lp-step {
    background: var(--pca-lp-surface);
    border: 1px solid var(--pca-lp-border);
    border-radius: 12px;
    padding: 24px 22px;
    position: relative;
}
.pca-lp-step__num {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--pca-lp-primary);
    margin-bottom: 14px;
}
.pca-lp-step__title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 8px;
    color: var(--pca-lp-text);
    letter-spacing: -0.01em;
}
.pca-lp-step__body {
    margin: 0;
    color: var(--pca-lp-text-soft);
    font-size: 14.5px;
    line-height: 1.55;
}

/* — Reviews ------------------------------------------------------------ */
.pca-lp-reviews {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
@media (min-width: 768px) { .pca-lp-reviews { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.pca-lp-review {
    background: var(--pca-lp-surface);
    border: 1px solid var(--pca-lp-border);
    border-radius: 12px;
    padding: 24px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pca-lp-review__stars {
    color: var(--pca-lp-accent-star);
    letter-spacing: 2px;
    font-size: 14px;
}
.pca-lp-review__body {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--pca-lp-text);
    font-weight: 500;
    letter-spacing: -0.005em;
}
.pca-lp-review__attr {
    margin: auto 0 0;
    font-size: 13px;
    color: var(--pca-lp-text-muted);
}
.pca-lp-review__attr strong { color: var(--pca-lp-text); font-weight: 600; }
.pca-lp-review__src { color: var(--pca-lp-primary); font-weight: 500; }

/* — FAQ accordion ------------------------------------------------------ */
.pca-lp-faq {
    border: 1px solid var(--pca-lp-border);
    border-radius: 12px;
    background: var(--pca-lp-surface);
    overflow: hidden;
}
.pca-lp-faq__item { border-bottom: 1px solid var(--pca-lp-border-soft); }
.pca-lp-faq__item:last-child { border-bottom: 0; }
.pca-lp-faq__item summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 22px;
    font-size: 16px;
    font-weight: 600;
    color: var(--pca-lp-text);
    letter-spacing: -0.01em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    transition: background-color 0.12s ease;
}
.pca-lp-faq__item summary:hover { background: var(--pca-lp-surface-soft); }
.pca-lp-faq__item summary::-webkit-details-marker { display: none; }
.pca-lp-faq__item summary::after {
    content: "";
    width: 12px;
    height: 12px;
    border-right: 1.5px solid var(--pca-lp-text-muted);
    border-bottom: 1.5px solid var(--pca-lp-text-muted);
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform 0.18s ease;
    flex: 0 0 auto;
}
.pca-lp-faq__item[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.pca-lp-faq__item p {
    margin: 0;
    padding: 0 22px 22px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--pca-lp-text-soft);
}

/* — Final CTA band ----------------------------------------------------- */
.pca-lp-final {
    background: linear-gradient(180deg, var(--pca-lp-surface-soft) 0%, var(--pca-lp-surface) 100%);
    border-top: 1px solid var(--pca-lp-border-soft);
    padding: 64px 20px 88px;
    text-align: center;
}
.pca-lp-final__inner { max-width: 640px; margin: 0 auto; }
.pca-lp-final__title {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0;
    color: var(--pca-lp-text);
}
@media (min-width: 768px) { .pca-lp-final__title { font-size: 40px; } }
.pca-lp-final__sub {
    margin: 14px auto 28px;
    color: var(--pca-lp-text-soft);
    font-size: 17px;
    line-height: 1.5;
    max-width: 48ch;
}
.pca-lp-final__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--pca-lp-primary);
    color: #fff !important;
    padding: 14px 28px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 16px;
    text-decoration: none !important;
    letter-spacing: -0.005em;
    transition: background-color 0.15s ease;
}
.pca-lp-final__cta:hover { background: #0d6660; color: #fff !important; }
.pca-lp-final__hint {
    margin: 18px 0 0;
    font-size: 14px;
    color: var(--pca-lp-text-muted);
}
.pca-lp-final__wa {
    color: var(--pca-lp-primary) !important;
    font-weight: 600;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    margin-left: 4px;
}




/* ╔══════════════════════════════════════════════════════════════════════════
   ║ Wave 1 / CRO polish — UX fixes from the audit walk-through.
   ╚══════════════════════════════════════════════════════════════════════════ */

/* W1#1 — Continue button ghost state when canAdvance() is false.
   NOTE: no pointer-events:none here — the JS click path must keep firing on
   the aria-disabled button (a11y: focusable + announces the #pca-nav-hint
   reason; goNext() itself no-ops while canAdvance() is false). */
.pca-transfers-wizard #pca-btn-next[aria-disabled="true"] {
    background: #f3f4f6 !important;
    color: #9ca3af !important;
    border-color: #f3f4f6 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* W1#2 — Hotel-search skeleton rows: 3 shimmering bars while query loads. */
.pca-transfers-wizard .pca-hotel-result-item--skeleton {
    pointer-events: none;
    cursor: default;
    background: #ffffff !important;
}
.pca-transfers-wizard .pca-skeleton-bar {
    display: block;
    height: 12px;
    border-radius: 4px;
    background: linear-gradient(90deg, #f3f4f6 0%, #e5e7eb 50%, #f3f4f6 100%);
    background-size: 200% 100%;
    animation: pca-shimmer 1.2s ease-in-out infinite;
}
.pca-transfers-wizard .pca-skeleton-bar--name { width: 60%; margin-bottom: 6px; }
.pca-transfers-wizard .pca-skeleton-bar--meta { width: 40%; height: 10px; }
@keyframes pca-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* W1#3 — superseded by flex shell at end of file. */

/* W1#4 — Tighten passenger stepper: collapse to ~200px, group tightly. */
.pca-transfers-wizard .pca-passenger-counter {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: auto !important;
    margin: 16px auto !important;
    padding: 8px 14px !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}
.pca-transfers-wizard .pca-counter-btn {
    width: 36px !important;
    height: 36px !important;
    border-radius: 999px !important;
    border: 1px solid #e5e7eb !important;
    background: #ffffff !important;
    color: #111827 !important;
    box-shadow: none !important;
    transition: border-color 0.12s ease, color 0.12s ease;
}
.pca-transfers-wizard .pca-counter-btn:hover {
    border-color: #0f766e !important;
    color: #0f766e !important;
}
.pca-transfers-wizard .pca-counter-value {
    min-width: 32px !important;
    text-align: center !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #111827 !important;
    border: 0 !important;
    height: auto !important;
    line-height: 1 !important;
    padding: 0 !important;
}

/* W1#5 — Vehicle price loading skeleton (cards stay laid out, prices ghost). */
.pca-transfers-wizard .pca-vehicle-cards.is-loading .pca-vehicle-card__price,
.pca-transfers-wizard .pca-vehicle-cards.is-loading .pca-vehicle-card__price-label {
    color: transparent !important;
    background: linear-gradient(90deg, #f3f4f6 0%, #e5e7eb 50%, #f3f4f6 100%);
    background-size: 200% 100%;
    border-radius: 4px;
    animation: pca-shimmer 1.2s ease-in-out infinite;
    display: inline-block;
    min-width: 80px;
    height: 22px;
}
.pca-transfers-wizard .pca-vehicle-cards.is-loading .pca-vehicle-card__price-label {
    height: 12px;
    min-width: 60px;
    margin-top: 4px;
}
.pca-transfers-wizard .pca-vehicle-cards.is-loading .pca-vehicle-card {
    pointer-events: none;
    opacity: 0.85;
}

/* W1#6 — Excursion grid: cards keep natural height when one expands its panel. */
.pca-transfers-wizard .pca-excursion-grid {
    align-items: start !important;
}

/* W1#7 — RECOMMENDED chip on Roundtrip card: soft teal pill (was bare eyebrow). */
.pca-transfers-wizard .pca-type-card__badge {
    background: #f0fdfa !important;
    color: #0f766e !important;
    border: 1px solid #99f6e4 !important;
    padding: 4px 10px !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    line-height: 1 !important;
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;          /* override the centered .pca-type-card__badge base rule */
    transform: none !important;
}

/* CRO-B — "Saved vs Viator" pill (rendered by pricing-display.js). */
.pca-transfers-wizard .pca-savings-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 10px auto 0;
    padding: 6px 12px;
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
}

/* CRO-D — Excursion scarcity nudge under date input. */
.pca-transfers-wizard .pca-excursion-scarcity {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: #b45309;
    letter-spacing: -0.005em;
}

/* CRO-E — Excursion skip + browse-all fork. */
.pca-transfers-wizard .pca-excursion-skip-wrap {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}
.pca-transfers-wizard .pca-excursion-skip-sep { color: #d1d5db; }

/* CRO-G — Mobile sticky CTA fork: room for [Skip] [Continue]. */
@media (max-width: 599px) {
    .pca-transfers-wizard .pca-transfers-nav {
        justify-content: space-between !important;
        gap: 8px !important;
    }
    .pca-transfers-wizard #pca-btn-back,
    .pca-transfers-wizard #pca-btn-next {
        flex: 1 1 0;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Hotel search field — flex shell
   Reason: cascade wars with broad input rules kept losing the
   padding-left battle, causing icon/text collision. Restructuring as
   a flex container with the icon in its own slot makes collision
   architecturally impossible.
   ────────────────────────────────────────────────────────────────────── */

.pca-transfers-wizard .pca-hotel-search-wrap {
    position: relative;                        /* typeahead anchor */
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 48px !important;
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 10px !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.pca-transfers-wizard .pca-hotel-search-wrap:focus-within {
    border-color: #0f766e !important;
    box-shadow:
        0 0 0 3px rgba(15, 118, 110, 0.14),
        0 1px 2px rgba(17, 24, 39, 0.04) !important;
}

.pca-transfers-wizard .pca-hotel-search-icon {
    flex: 0 0 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #9ca3af !important;
    pointer-events: none;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    width: 44px !important;
    height: auto !important;
}

.pca-transfers-wizard .pca-hotel-search-icon svg {
    width: 18px !important;
    height: 18px !important;
    display: block !important;
    flex: none !important;
}

.pca-transfers-wizard .pca-hotel-search-wrap:focus-within .pca-hotel-search-icon {
    color: #0f766e !important;
}

.pca-transfers-wizard input.pca-hotel-search-input {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    height: 100% !important;
    padding: 0 4px 0 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    color: #111827 !important;
    outline: none !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.pca-transfers-wizard input.pca-hotel-search-input::placeholder {
    color: #9ca3af !important;
    font-weight: 400 !important;
}

.pca-transfers-wizard input.pca-hotel-search-input:focus {
    outline: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

.pca-transfers-wizard .pca-hotel-search-clear {
    flex: 0 0 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 100% !important;
    background: transparent !important;
    border: 0 !important;
    color: #9ca3af !important;
    cursor: pointer;
    padding: 0 !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: color 0.12s ease !important;
}

.pca-transfers-wizard .pca-hotel-search-clear:hover {
    color: #111827 !important;
    background: transparent !important;
}

.pca-transfers-wizard .pca-hotel-search-clear svg {
    width: 14px !important;
    height: 14px !important;
    display: block !important;
}

/* ──────────────────────────────────────────────────────────────────────
   UX pass: mobile fold, step transitions, sticky CTAs, summary pill
   ────────────────────────────────────────────────────────────────────── */

/* — Step transitions: gentle fade-slide when a step becomes visible — */
.pca-transfers-wizard .pca-transfer-step {
    animation: pca-step-in 0.32s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes pca-step-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* — Promote escape-hatch links to outlined buttons — */
.pca-transfers-wizard .pca-hotel-escape-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
}
.pca-transfers-wizard .pca-hotel-escape-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #0f766e !important;
    background: #f0fdfa !important;
    border: 1px solid #99f6e4 !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.15s ease, border-color 0.15s ease !important;
}
.pca-transfers-wizard .pca-hotel-escape-btn:hover {
    background: #ccfbf1 !important;
    border-color: #5eead4 !important;
}
.pca-transfers-wizard .pca-hotel-escape-btn svg {
    width: 14px !important;
    height: 14px !important;
}

/* — Zone reassurance microcopy — */
.pca-transfers-wizard .pca-zone-reassurance {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 13px;
    color: #475569;
    line-height: 1.45;
}
.pca-transfers-wizard .pca-zone-reassurance svg {
    color: #0f766e;
    flex: 0 0 16px;
    margin-top: 2px;
}

/* — Mobile pass: collapse hero, sticky CTA bar, sticky summary pill — */
@media (max-width: 767px) {
    /* Compress hero on mobile so wizard is closer to fold */
    .pca-lp-hero.pca-lp-hero--centered {
        padding-top: 24px !important;
        padding-bottom: 16px !important;
    }
    .pca-lp-h1 {
        font-size: 28px !important;
        line-height: 1.1 !important;
    }
    .pca-lp-sub {
        font-size: 14px !important;
        margin: 8px 0 14px !important;
    }
    .pca-lp-hero__cta-row {
        gap: 6px !important;
    }
    .pca-lp-cta--primary {
        padding: 12px 20px !important;
        font-size: 15px !important;
    }
    .pca-lp-hero__rating {
        margin-top: 10px !important;
        font-size: 12px !important;
    }

    /* Sticky bottom CTA bar — Back/Continue always reachable */
    .pca-transfers-wizard .pca-transfers-nav {
        position: sticky !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 40 !important;
        background: #ffffff !important;
        padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
        margin: 16px -16px -16px !important;
        border-top: 1px solid #e5e7eb !important;
        box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.06) !important;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Hotel step — "resolved" state
   When a hotel is selected (placeId, pickupId, or manual entry), collapse
   the search input + reassurance + escape buttons and elevate the
   selected-hotel card as the single focal element.
   ────────────────────────────────────────────────────────────────────── */

.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-hotel-search-wrap,
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-zone-reassurance,
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-hotel-escape-row,
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-hotel-not-listed,
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-hotel-manual-panel,
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-hotel-quickpicks,
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-hotel-dropdown {
    display: none !important;
}

.pca-transfer-step[data-step="hotel"].pca-hotel-resolved #pca-zone-preview {
    margin-top: 4px;
}

/* Quick-pick resort chips — tap-to-select shortcut below the hotel search.
   Hidden once a hotel is resolved or while the search dropdown is open. */
.pca-transfers-wizard .pca-hotel-quickpicks { margin-top: 14px; }
.pca-transfer-step[data-step="hotel"].pca-hotel-searching .pca-hotel-quickpicks { display: none; }
.pca-transfers-wizard .pca-hotel-quickpicks__label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--pca-tx-text-muted);
    margin-bottom: 8px;
}
.pca-transfers-wizard .pca-hotel-quickpicks__row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.pca-transfers-wizard .pca-hotel-chip {
    min-height: 40px;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid var(--pca-tx-border, #d1d5db);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pca-tx-text, #1f2937);
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.pca-transfers-wizard .pca-hotel-chip:hover,
.pca-transfers-wizard .pca-hotel-chip:focus-visible {
    background: #f0fdfa;
    border-color: #99f6e4;
    color: #0f766e;
}

/* Demoted "Change hotel" link inside the preview card. */
.pca-zone-preview__change {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    padding: 4px 0;
    font-size: 13px;
    font-weight: 500;
    color: #6b7280;
    background: none;
    border: 0;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.15s ease;
}
.pca-zone-preview__change:hover { color: #0f766e; }
.pca-zone-preview__change svg { flex: 0 0 14px; }

/* Keep the heading even when a hotel is resolved so the step reads as an
   intentional booking step (the card below confirms the answer). Just tighten
   the gap to the selected card. */
.pca-transfer-step[data-step="hotel"].pca-hotel-resolved .pca-step-header {
    margin-bottom: 16px !important;
}

/* ──────────────────────────────────────────────────────────────────────
   Stepper — labeled breadcrumbs above the progress bar.
   Booking.com / Stripe Checkout pattern: roadmap visibility beats the
   abstract "Step 4 of 8" counter. Labels collapse for grouped steps
   (date, flight) so the row stays single-line on most viewports.
   ────────────────────────────────────────────────────────────────────── */
.pca-transfers-wizard .pca-stepper {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.pca-transfers-wizard .pca-stepper::-webkit-scrollbar { display: none; }

.pca-transfers-wizard .pca-stepper__item {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 6px 4px;
    font-family: "Plus Jakarta Sans", "Manrope", -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #c5cad1;
    white-space: nowrap;
    transition: color 0.18s ease;
}

.pca-transfers-wizard .pca-stepper__item + .pca-stepper__item::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 1px;
    margin: 0 10px;
    background: #e5e7eb;
}

.pca-transfers-wizard .pca-stepper__item--done {
    color: #6b7280;
}

.pca-transfers-wizard .pca-stepper__item--current {
    color: #0f766e;
}

.pca-transfers-wizard .pca-stepper__item--current::after {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0f766e;
    margin-left: 8px;
}

@media (max-width: 640px) {
    .pca-transfers-wizard .pca-stepper {
        margin-bottom: 10px;
        padding-bottom: 4px;
    }
    .pca-transfers-wizard .pca-stepper__item {
        font-size: 10px;
        padding: 4px 2px;
    }
    .pca-transfers-wizard .pca-stepper__item + .pca-stepper__item::before {
        width: 12px;
        margin: 0 6px;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Mobile: compact transfer-type cards
   The vertical-stacked, large-icon-centered desktop layout pushes the
   next step way below the fold. On phones, switch to a horizontal row
   (icon left, title + subtitle right) so all three options fit in a
   single quick-scan column.
   ────────────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .pca-transfers-wizard .pca-transfer-type-cards {
        gap: 8px !important;
    }

    .pca-transfers-wizard .pca-type-card {
        flex-direction: row !important;
        align-items: center !important;
        text-align: left !important;
        gap: 14px !important;
        padding: 12px 14px !important;
    }

    .pca-transfers-wizard .pca-type-card__icon {
        width: 40px !important;
        height: 40px !important;
        flex: 0 0 40px !important;
    }
    .pca-transfers-wizard .pca-type-card__icon svg {
        width: 22px !important;
        height: 22px !important;
    }

    .pca-transfers-wizard .pca-type-card__title {
        font-size: 15px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
    }
    .pca-transfers-wizard .pca-type-card__subtitle {
        font-size: 12px !important;
        line-height: 1.25 !important;
        margin: 2px 0 0 !important;
        color: #6b7280 !important;
    }

    /* Recommended badge on the roundtrip card — collapse to a small chip
       in the top-right of the row. Reset desktop's centering rules
       (left:50% + translateX) which would otherwise win the cascade. */
    .pca-transfers-wizard .pca-type-card__badge {
        position: absolute !important;
        top: 8px !important;
        right: 10px !important;
        left: auto !important;
        transform: none !important;
        font-size: 9px !important;
        padding: 2px 6px !important;
        line-height: 1.4 !important;
    }
}

/* Pencil icon on Edit buttons in the review step — inline-flex so the
   icon sits flush next to the label without disturbing layout. */
.pca-transfers-wizard .pca-edit-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}
.pca-transfers-wizard .pca-edit-btn__icon {
    flex: 0 0 14px;
    opacity: 0.85;
}

/* Running-total chip in the sticky bottom nav.
   Sits between Back and Continue, fades in once a quote exists. */
.pca-transfers-wizard .pca-transfers-nav {
    align-items: center;
}
.pca-transfers-wizard .pca-nav-total {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    margin: 0 auto;
    padding: 6px 12px;
    background: #f0fdfa;
    border: 1px solid #99f6e4;
    border-radius: 999px;
    font-family: "Plus Jakarta Sans", "Manrope", -apple-system, BlinkMacSystemFont, sans-serif;
    color: #0f766e;
    line-height: 1.2;
    animation: pca-nav-total-in 0.22s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.pca-transfers-wizard .pca-nav-total[hidden] { display: none; }

.pca-transfers-wizard .pca-nav-total__label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.75;
}
.pca-transfers-wizard .pca-nav-total__amount {
    font-size: 16px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

@keyframes pca-nav-total-in {
    from { opacity: 0; transform: translateY(2px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 640px) {
    .pca-transfers-wizard .pca-nav-total {
        padding: 4px 10px;
    }
    .pca-transfers-wizard .pca-nav-total__amount { font-size: 14px; }
}

/* ──────────────────────────────────────────────────────────────────────
   Inline calendar on mobile.
   When flatpickr is initialized with inline:true (see step-bindings.js
   on viewports ≤ 640px), the calendar renders directly in the page.
   We hide the underlying date input + its icon wrap because the
   calendar itself IS the UI now.
   ────────────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    /* Hide the icon + inputs but keep the wrap as a container — flatpickr
       inline mode appends the calendar as a child of the wrap. */
    .pca-transfers-wizard .pca-date-field-wrap > .pca-date-field-icon,
    .pca-transfers-wizard .pca-date-field-wrap > input {
        display: none !important;
    }
    .pca-transfers-wizard .pca-date-field-wrap {
        background: none !important;
        border: 0 !important;
        padding: 0 !important;
    }

    /* When flatpickr renders inline, give the calendar a card look that
       matches the rest of the wizard (rounded, subtle border, no popup
       shadow needed since it's not floating). */
    .pca-transfers-wizard .flatpickr-calendar.inline {
        width: 100% !important;
        max-width: 100% !important;
        margin: 8px auto 4px !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 12px !important;
        box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    }

    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-days,
    .pca-transfers-wizard .flatpickr-calendar.inline .dayContainer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Month header: static "Month Year" centered, with prev/next arrows on the
       sides. Flatpickr otherwise absolutely-positions the month and renders the
       year as a boxed numeric input that collided with theme input styles. */
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-months {
        display: flex !important;
        align-items: center !important;
        padding: 8px 4px 2px !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-month {
        flex: 1 1 auto !important;
        height: auto !important;
        overflow: visible !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-current-month {
        position: static !important;
        left: auto !important;
        width: 100% !important;
        height: auto !important;
        padding: 4px 0 !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 600 !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-current-month .cur-month { margin: 0 !important; font-weight: 600 !important; }
    /* Year as plain text (no box, no spinner) sitting next to the month. */
    .pca-transfers-wizard .flatpickr-calendar.inline .numInputWrapper { width: auto !important; display: inline-block !important; }
    .pca-transfers-wizard .flatpickr-calendar.inline .numInputWrapper span.arrowUp,
    .pca-transfers-wizard .flatpickr-calendar.inline .numInputWrapper span.arrowDown { display: none !important; }
    .pca-transfers-wizard .flatpickr-calendar.inline .numInput.cur-year {
        padding: 0 0 0 4px !important;
        margin: 0 !important;
        width: 3.4em !important;
        text-align: left !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        box-sizing: content-box !important;
        -webkit-appearance: none !important;
        appearance: none !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-prev-month,
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-next-month {
        position: static !important;
        flex: 0 0 auto !important;
        height: auto !important;
        padding: 4px 8px !important;
        line-height: 0 !important;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Inline calendar on DESKTOP (UX audit T3).
   The old desktop popover appended to <body>, where it overflowed the
   hero card / trust bar and lost the brand CSS vars. step-bindings.js
   now initializes desktop pickers with inline:true too: the altInput
   stays visible as the readable date readout ABOVE the grid (the wrap
   gets .pca-date-inline from JS), and the calendar renders as a capped,
   centered card inside the date step — nothing floats over page chrome
   and the footer CTA stays pinned below the card. The wizard column has
   room (680px inside the ~760px .pca-lp hero card). Mirrors the mobile
   block above; scoped ≥641px so mobile is untouched. Also applies inside
   the desktop edit dialog (it carries the .pca-transfers-wizard class).
   ────────────────────────────────────────────────────────────────────── */
@media (min-width: 641px) {
    /* Icon pins to the readout row, not the midline of the now-tall wrap. */
    .pca-transfers-wizard .pca-date-field-wrap.pca-date-inline > .pca-date-field-icon {
        top: 16px !important;
        transform: none !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline {
        width: 100% !important;
        max-width: 400px !important;
        margin: 14px auto 0 !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 12px !important;
        box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
        padding: 6px 8px 10px;
        box-sizing: border-box;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-days,
    .pca-transfers-wizard .flatpickr-calendar.inline .dayContainer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    /* Month header: static "Month Year" centered, prev/next arrows on the
       sides (same treatment as the mobile block above). */
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-months {
        display: flex !important;
        align-items: center !important;
        padding: 8px 4px 2px !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-month {
        flex: 1 1 auto !important;
        height: auto !important;
        overflow: visible !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-current-month {
        position: static !important;
        left: auto !important;
        width: 100% !important;
        height: auto !important;
        padding: 4px 0 !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 600 !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-current-month .cur-month { margin: 0 !important; font-weight: 600 !important; }
    /* Year as plain text (no box, no spinner) sitting next to the month. */
    .pca-transfers-wizard .flatpickr-calendar.inline .numInputWrapper { width: auto !important; display: inline-block !important; }
    .pca-transfers-wizard .flatpickr-calendar.inline .numInputWrapper span.arrowUp,
    .pca-transfers-wizard .flatpickr-calendar.inline .numInputWrapper span.arrowDown { display: none !important; }
    .pca-transfers-wizard .flatpickr-calendar.inline .numInput.cur-year {
        padding: 0 0 0 4px !important;
        margin: 0 !important;
        width: 3.4em !important;
        text-align: left !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        box-sizing: content-box !important;
        -webkit-appearance: none !important;
        appearance: none !important;
    }
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-prev-month,
    .pca-transfers-wizard .flatpickr-calendar.inline .flatpickr-next-month {
        position: static !important;
        flex: 0 0 auto !important;
        height: auto !important;
        padding: 4px 8px !important;
        line-height: 0 !important;
    }
}

/* Quote-required notice on the vehicle step. Shown when the hotel
   can't be priced live (manual entry / "I'll decide later") instead
   of leaving the vehicle cards stuck on "—". */
.pca-transfers-wizard .pca-vehicle-quote-notice {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    margin: 12px 0;
    background: #f0fdfa;
    border: 1px solid #99f6e4;
    border-radius: 12px;
    color: #134e4a;
    text-align: left;
}
.pca-transfers-wizard .pca-vehicle-quote-notice__icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ccfbf1;
    border-radius: 50%;
    color: #0f766e;
}
.pca-transfers-wizard .pca-vehicle-quote-notice__title {
    margin: 0 0 4px;
    font-family: "Plus Jakarta Sans", "Manrope", -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #0f766e;
}
.pca-transfers-wizard .pca-vehicle-quote-notice__text {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.4;
    color: #134e4a;
}

/* Tour minimum-guests inline warning on excursion cards. */
.pca-transfers-wizard .pca-excursion-card__min-warning {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 0;
    padding: 6px 10px;
    background: #fef3c7;
    border: 1px solid #fde68a;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #92400e;
}

/* Mobile: compact vehicle cards.
   Desktop layout stacks SVG · body · price block (~286px tall).
   On mobile we go horizontal: small SVG left, name+price right, drop
   the description and shrink the features list to inline chips so
   each card lands ~180-200px instead. */
@media (max-width: 640px) {
    .pca-transfers-wizard .pca-vehicle-card {
        display: grid !important;
        grid-template-columns: 56px 1fr auto !important;
        grid-template-rows: auto auto auto !important;
        gap: 6px 12px !important;
        align-items: start !important;
        padding: 14px 14px !important;
    }

    .pca-transfers-wizard .pca-vehicle-card__image {
        grid-row: 1 / span 2 !important;
        grid-column: 1 !important;
        width: 56px !important;
        height: 36px !important;
        align-self: center;
    }
    .pca-transfers-wizard .pca-vehicle-card__image svg {
        width: 56px !important;
        height: 36px !important;
    }

    .pca-transfers-wizard .pca-vehicle-card__body {
        grid-row: 1 / span 2 !important;
        grid-column: 2 !important;
        min-width: 0;
    }
    .pca-transfers-wizard .pca-vehicle-card__name {
        font-size: 15px !important;
        margin: 0 !important;
        line-height: 1.2 !important;
    }
    .pca-transfers-wizard .pca-vehicle-card__desc {
        font-size: 12px !important;
        margin: 2px 0 0 !important;
        line-height: 1.3 !important;
        color: #6b7280 !important;
    }
    /* Convert features list to inline chips, max 2 visible */
    .pca-transfers-wizard .pca-vehicle-card__features {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px 6px !important;
        margin: 6px 0 0 !important;
        padding: 0 !important;
        list-style: none !important;
        max-height: 18px !important;
        overflow: hidden !important;
    }
    .pca-transfers-wizard .pca-vehicle-card__features li {
        display: inline !important;
        padding: 0 !important;
        font-size: 11px !important;
        font-weight: 500 !important;
        color: #6b7280 !important;
    }
    .pca-transfers-wizard .pca-vehicle-card__features li::before {
        content: none !important;
    }
    .pca-transfers-wizard .pca-vehicle-card__features li:not(:last-child)::after {
        content: " · ";
        color: #d1d5db;
    }

    .pca-transfers-wizard .pca-vehicle-card__price-wrap {
        grid-row: 1 / span 2 !important;
        grid-column: 3 !important;
        text-align: right !important;
        align-self: center;
        white-space: nowrap;
    }
    .pca-transfers-wizard .pca-vehicle-card__price {
        font-size: 18px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        display: block !important;
    }
    .pca-transfers-wizard .pca-vehicle-card__price-label {
        font-size: 10px !important;
        line-height: 1.2 !important;
        margin-top: 2px !important;
        display: block;
    }

    /* Premium badge on Luxury card — pin to top-right corner */
    .pca-transfers-wizard .pca-vehicle-card__badge {
        top: 8px !important;
        right: 8px !important;
        padding: 2px 8px !important;
        font-size: 9px !important;
    }
}

/* "Edit booking" state — when the panel has been collapsed but the
   selection is still committed. Use the outlined look (same as the
   pristine "Add to trip") so it's clearly secondary to the solid-teal
   "Confirm booking" state. */
.pca-transfers-wizard .pca-excursion-card.is-selected:not(.is-open) .pca-btn-add-excursion {
    background: transparent !important;
    color: #0f766e !important;
    border: 1.5px solid #99f6e4 !important;
}
.pca-transfers-wizard .pca-excursion-card.is-selected:not(.is-open) .pca-btn-add-excursion:hover {
    background: #f0fdfa !important;
    color: #0f766e !important;
}

/* Demoted "× Remove from trip" link. Smaller, muted, sits below the
   primary button. */
.pca-btn-remove-excursion {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 8px auto 0;
    padding: 4px 8px;
    background: none;
    border: 0;
    color: #9ca3af;
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
    align-self: center;
    transition: color 0.15s ease;
}
.pca-btn-remove-excursion:hover { color: #ef4444; }
.pca-btn-remove-excursion svg { flex: 0 0 12px; }

/* ─────────────────────────────────────────────────────────────────────
   Mobile bottom-sheet redesign (≤640px). Hides the inline step wizard and
   shows the Airbnb-style summary card; each row opens an offcanvas sheet.
   Desktop is unaffected (everything here is inside the media query, except
   the .pca-sheet offcanvas styling which only applies to JS-created sheets).
   ───────────────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  /* Hide the whole inline wizard section on mobile. The booking is LAUNCHED as
     a bottom sheet from the hero "Get my price" CTA (mobile-sheets.js); the
     summary card lives hidden in here and is relocated into the summary sheet. */
  .pca-lp-wizard-section { display: none !important; }

  .pca-msheet-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 14px;
    padding: 14px; box-shadow: 0 4px 16px rgba(15, 23, 42, .06);
  }
  .pca-msheet-toggle { display: flex; gap: 6px; background: #f1f5f9; border-radius: 999px; padding: 4px; margin-bottom: 12px; }
  .pca-msheet-toggle__btn { flex: 1; border: 0; background: transparent; padding: 8px 10px; border-radius: 999px; font-weight: 600; font-size: 14px; color: #475569; cursor: pointer; }
  .pca-msheet-toggle__btn.is-active { background: #fff; color: #0f172a; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }

  .pca-msheet-rows { list-style: none; margin: 0; padding: 0; }
  .pca-msheet-row {
    width: 100%; display: flex; align-items: center; gap: 10px; background: none;
    border: 0; border-bottom: 1px solid #eef2f7; padding: 14px 2px; text-align: left; cursor: pointer;
  }
  .pca-msheet-rows li:last-child .pca-msheet-row { border-bottom: 0; }
  .pca-msheet-row__label { flex: 0 0 72px; font-size: 13px; color: #6b7280; }
  .pca-msheet-row__value { flex: 1 1 auto; font-size: 15px; font-weight: 600; color: #111827; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pca-msheet-row__value.is-empty { font-weight: 500; color: #9ca3af; }
  .pca-msheet-row__chev { color: #9ca3af; flex: 0 0 auto; }

  .pca-msheet-cta {
    width: 100%; margin-top: 14px; padding: 16px; border: 0; border-radius: 10px;
    font-size: 17px; font-weight: 700; color: #fff; background: var(--pca-tx-primary); cursor: pointer;
  }
  .pca-msheet-cta:disabled { opacity: .5; cursor: not-allowed; }
}

/* Offcanvas sheet — Airbnb styling. Self-contained positioning/transform so it
   does NOT depend on the theme's (split, partial) Bootstrap offcanvas CSS —
   that bundle is missing the `.offcanvas.show { transform:none }` rule, which
   left sheets transformed off-screen. Bootstrap JS still toggles show/hiding. */
/* Design tokens needed by sheet CHROME (footer Save button, etc.) which lives
   OUTSIDE the inner .pca-transfers-wizard scope wrapper — so var(--pca-tx-*)
   resolves there too (otherwise the Save button renders white-on-transparent). */
.pca-sheet { --pca-tx-primary: #0f766e; --pca-tx-primary-hover: #0d6660; }
.pca-sheet.offcanvas-bottom {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1050;
  width: 100%; max-width: 100%; height: auto;
  /* A taller, intentional booking surface — not a small drawer. Content sizes
     between min/max; the body scrolls when a step (e.g. the calendar) is tall. */
  min-height: 78vh; min-height: 78dvh;
  max-height: 88vh; max-height: 88dvh; /* dvh accounts for iOS Safari chrome */
  margin: 0; background: #fff; background-clip: padding-box; outline: 0;
  transform: translateY(100%);
  transition: transform .3s ease-in-out;
  visibility: hidden;
  border-top-left-radius: 18px; border-top-right-radius: 18px;
  display: flex; flex-direction: column;
}
.pca-sheet.offcanvas-bottom.show,
.pca-sheet.offcanvas-bottom.showing { transform: translateY(0); visibility: visible; }
.pca-sheet.offcanvas-bottom.hiding { transform: translateY(100%); visibility: visible; }
/* Short viewports (≈360×700): use more of the screen so nothing clips. */
@media (max-height: 740px) {
  .pca-sheet.offcanvas-bottom { min-height: 84vh; min-height: 84dvh; max-height: 92vh; max-height: 92dvh; }
}
/* Self-managed dim backdrop (mobile-sheets.js) — the theme's split Bootstrap
   doesn't create an offcanvas backdrop on this page. Sits just under the sheet
   (z 1049 < sheet 1050); tap to close. */
.pca-sheet-backdrop { position: fixed; inset: 0; z-index: 1049; background: #000; opacity: 0; transition: opacity .3s ease-in-out; }
.pca-sheet-backdrop.is-on { opacity: .5; }
.pca-sheet__handle { width: 40px; height: 4px; border-radius: 999px; background: #d1d5db; margin: 12px auto 2px; }
.pca-sheet .offcanvas-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 20px 6px; }
.pca-sheet__title { font-size: 18px; font-weight: 700; margin: 0; }
/* Body is the only scroll area; flex:1 + min-height:0 lets it shrink so the
   sticky footer is always visible and never overlaps the last calendar row.
   Generous bottom padding (+ safe-area) keeps the last row clear of the footer. */
.pca-sheet .offcanvas-body { flex: 1 1 auto; min-height: 0; padding: 12px 20px calc(28px + env(safe-area-inset-bottom)); overflow-y: auto; -webkit-overflow-scrolling: touch; }
/* The relocated step DOM is wrapped in a .pca-transfers-wizard scope so the
   wizard's .pca-transfers-wizard-scoped rules + CSS variables apply inside the
   sheet. Strip the wizard CONTAINER's base layout so it doesn't bleed in. */
.pca-sheet .pca-transfers-wizard { max-width: none !important; padding: 0 !important; background: transparent !important; box-shadow: none !important; }
.pca-sheet__footer { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 14px 20px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid #eef2f7; }
/* Secondary (Back/Cancel) = light text button so it doesn't compete with the
   primary; primary (Continue/Confirm/Save) = full teal, takes the width. */
.pca-sheet__cancel { flex: 0 0 auto; padding: 15px 12px; border: 0; background: none; color: #6b7280; font-weight: 600; font-size: 15px; cursor: pointer; }
.pca-sheet__save { flex: 1 1 auto; padding: 16px 18px; border: 0; background: var(--pca-tx-primary); color: #fff; border-radius: 12px; font-weight: 700; font-size: 16px; cursor: pointer; }
.pca-sheet__save:disabled { opacity: .45; cursor: not-allowed; }
.pca-sheet__progress { font-size: 15px; font-weight: 600; letter-spacing: .02em; color: #6b7280; }
/* Per-vehicle clarifier under the review total. */
.pca-transfers-wizard .pca-review-price__note { margin: 6px 0 0; font-size: 12px; color: #6b7280; text-align: right; }
/* "Reserve now, pay later" reassurance directly under the Book Now CTA. */
.pca-transfers-wizard .pca-btn-book-now__caption { margin: 10px 0 0; text-align: center; font-size: 13px; line-height: 1.4; color: #6b7280; }

/* ── Screen-by-screen UX polish (P13) ──────────────────────────────────────── */
/* Hotel: "Selected hotel" label + pickup helper inside the green card; tighter. */
.pca-transfers-wizard .pca-zone-preview { padding: 16px 18px !important; }
.pca-transfers-wizard .pca-zone-preview__hotel-text { display: inline-flex; flex-direction: column; gap: 2px; }
.pca-transfers-wizard .pca-zone-preview__label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(6, 95, 70, .7); }
.pca-transfers-wizard .pca-zone-preview__helper { margin: 10px 0 0; font-size: 13px; line-height: 1.4; color: #15803d; opacity: .9; }
/* Flight: stacked "Flight found" label + parsed details + benefit note. */
.pca-transfers-wizard .pca-flight-status__msg--found,
.pca-transfers-wizard .pca-flight-status__msg--not-found { flex-direction: column !important; align-items: flex-start !important; gap: 3px !important; }
.pca-transfers-wizard .pca-flight-found-head { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-weight: 700; width: 100%; }
.pca-transfers-wizard .pca-flight-found-head__label { display: inline-flex; align-items: center; gap: 6px; }
.pca-transfers-wizard .pca-flight-found-note { font-size: 13px; line-height: 1.4; color: #15803d; opacity: .85; }
/* State B: API has no schedule for a real flight number (e.g. Arajet) — reframe
   "not-found" as a confirm-and-ask, and visually join the manual time field to it. */
.pca-transfers-wizard .pca-flight-confirm-note { font-size: 13px; line-height: 1.4; color: #0f766e; opacity: .9; }
.pca-transfers-wizard .pca-flight-ref { font-weight: 700; }
.pca-transfers-wizard .pca-transfer-step.pca-step--state-b .pca-manual-time-wrap {
    margin-top: 8px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #99f6e4;
    border-radius: var(--pca-tx-radius-md);
}

/* ── Flight step: confirmed / mismatch / friendly toggle (Batch 2) ─────────── */
/* Mismatch = calm caution: amber TEXT + border, no heavy fill; top-aligned. */
.pca-transfers-wizard .pca-flight-status__msg--mismatch {
    background: #fff !important;
    border: 1px solid var(--pca-tx-warning-border) !important;
    color: #92400e !important;
    align-items: flex-start;
}
/* Found = confirmed "selected" state: collapse the editable field into the card. */
.pca-transfer-step.pca-flight-confirmed .pca-flight-field-wrap > .pca-label,
.pca-transfer-step.pca-flight-confirmed .pca-flight-input-row { display: none !important; }
.pca-transfer-step.pca-flight-confirmed .pca-flight-status { margin-top: 0 !important; }
.pca-transfers-wizard .pca-flight-found-edit {
    border: 0; background: none; padding: 0; margin-left: auto;
    color: var(--pca-tx-primary); font-weight: 700; font-size: 13px;
    text-decoration: underline; cursor: pointer;
}
/* Friendly "Don't have your flight number?" toggle switch. */
.pca-transfers-wizard .pca-flight-unknown-wrap { margin-top: 16px; }
.pca-transfers-wizard .pca-flight-unknown-toggle {
    display: flex; align-items: center; gap: 12px; cursor: pointer;
    font-size: 15px; color: var(--pca-tx-text, #1f2937);
}
.pca-transfers-wizard .pca-flight-unknown-checkbox {
    -webkit-appearance: none; appearance: none; margin: 0; flex: 0 0 auto;
    width: 44px; height: 26px; border-radius: 999px; background: #cbd5e1;
    position: relative; cursor: pointer; transition: background .2s;
}
.pca-transfers-wizard .pca-flight-unknown-checkbox::after {
    content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px;
    border-radius: 50%; background: #fff; transition: transform .2s;
    box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.pca-transfers-wizard .pca-flight-unknown-checkbox:checked { background: var(--pca-tx-primary); }
.pca-transfers-wizard .pca-flight-unknown-checkbox:checked::after { transform: translateX(18px); }
.pca-transfers-wizard .pca-flight-unknown-wrap .pca-field-hint { margin-top: 8px; }

/* ── Desktop edit overlay (Batch 3) — edit a field from Review in place ─────── */
.pca-edit-overlay {
    position: fixed; inset: 0; z-index: 100000; display: none;
    align-items: center; justify-content: center; padding: 24px;
    background: rgba(15, 23, 42, .5);
}
.pca-edit-overlay.is-open { display: flex; }
body.pca-edit-lock { overflow: hidden; }
.pca-edit-dialog {
    width: 100%; max-width: 560px; max-height: 90vh;
    display: flex; flex-direction: column;
    background: #fff; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
    overflow: hidden;
}
.pca-edit-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; padding: 18px 22px 6px; }
.pca-edit-dialog__title { margin: 0; font-size: 20px; font-weight: 700; color: #111827; }
.pca-edit-dialog__close { border: 0; background: none; font-size: 26px; line-height: 1; color: #6b7280; cursor: pointer; padding: 0 4px; }
.pca-edit-dialog__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 6px 22px 20px; }
/* The relocated step shows (its PHP inline display:none is overridden in JS);
   hide its own header so it doesn't duplicate the overlay title. */
.pca-edit-dialog__body .pca-transfer-step { display: block !important; }
.pca-edit-dialog__body .pca-step-header { display: none !important; }
/* Hide the "next step" hint — out of context when editing a single field. */
.pca-edit-dialog__body .pca-date-hint { display: none !important; }
.pca-edit-dialog__footer { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 14px 22px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid #eef2f7; }
.pca-edit-dialog__cancel { flex: 0 0 auto; padding: 14px 14px; border: 0; background: none; color: #6b7280; font-weight: 600; font-size: 15px; cursor: pointer; }
.pca-edit-dialog__save { flex: 1 1 auto; padding: 15px 18px; border: 0; background: var(--pca-tx-primary); color: #fff; border-radius: 12px; font-weight: 700; font-size: 16px; cursor: pointer; }
.pca-edit-dialog__save:disabled { opacity: .45; cursor: not-allowed; }
/* Flatpickr popups append to <body>; lift them above the overlay (z 100000) so
   the date picker is usable inside the edit dialog. Harmless elsewhere (the
   calendar only renders while open). */
.flatpickr-calendar { z-index: 100001 !important; }
/* Passengers: larger, more deliberate stepper; muted disabled minus at the floor. */
.pca-transfers-wizard .pca-passenger-counter { gap: 18px !important; padding: 12px 20px !important; }
.pca-transfers-wizard .pca-counter-value { font-size: 30px !important; min-width: 52px !important; }
.pca-transfers-wizard .pca-counter-btn { width: 52px !important; height: 52px !important; }
.pca-transfers-wizard .pca-counter-btn:disabled { opacity: .35 !important; cursor: not-allowed !important; }
.pca-transfers-wizard .pca-large-group-link { margin-top: 16px !important; }
/* Review: make the total the visual anchor before the CTA. */
.pca-transfers-wizard .pca-review-price__row--total .pca-review-price__value--total { font-size: 26px !important; font-weight: 800 !important; color: #111827 !important; }
/* Review: comfortable ≥44px edit/skip touch targets inside the mobile sheet. */
.pca-sheet .pca-edit-btn { min-height: 44px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; }
.pca-sheet .pca-review-missing { min-height: 44px; display: inline-flex; align-items: center; }
/* The summary card, when relocated into the summary sheet, drops its standalone
   card chrome (the sheet provides the container). */
.pca-sheet .pca-msheet-card { border: 0; box-shadow: none; padding: 0; }
/* ── Spacious sheet type scale (mobile-only; scoped to .pca-sheet so the
   desktop inline wizard is completely untouched). Applies the SAME header /
   spacing system to every relocated step. ─────────────────────────────────── */
.pca-sheet .pca-step-header { margin-bottom: 24px !important; }
.pca-sheet .pca-step-title { font-size: clamp(30px, 8vw, 36px) !important; line-height: 1.12 !important; }
.pca-sheet .pca-step-subtitle { font-size: 18px !important; line-height: 1.45 !important; }
/* Transfer-type option cards: taller, roomier, label over description. */
.pca-sheet .pca-msheet-typechooser .pca-transfer-type-cards { gap: 12px !important; margin-top: 16px !important; }
.pca-sheet .pca-msheet-typechooser .pca-type-card {
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 4px !important;
  min-height: 68px !important;
  padding: 14px 18px !important;
  border-radius: 12px !important;
}
.pca-sheet .pca-msheet-typechooser .pca-type-card__title { font-size: 19px !important; line-height: 1.2 !important; }
.pca-sheet .pca-msheet-typechooser .pca-type-card__subtitle { font-size: 16px !important; line-height: 1.3 !important; }
/* Summary-hub rows: a touch more comfortable to match the taller sheet. */
.pca-sheet .pca-msheet-row { padding: 16px 4px !important; }
.pca-sheet .pca-msheet-row__value { font-size: 16px !important; }
/* "Flight details missing — add" actionable hint in the review sheet. */
.pca-review-missing { border: 0; background: none; padding: 0; color: #b45309; font-weight: 600; font-size: inherit; text-decoration: underline; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .pca-sheet.offcanvas { transition: none !important; } }

/* ── iOS input auto-zoom guard ────────────────────────────────────────────
   Mobile Safari force-zooms the viewport when a focused text control's
   font-size is under 16px, yanking the user out of the flow. Every
   focus-receiving control in the wizard (and inside the offcanvas sheets,
   where step nodes are relocated) must render at ≥16px on phones. We fix
   the CONTROL font size — never viewport maximum-scale, which would break
   pinch-zoom accessibility. Checkboxes/radios excluded (no zoom trigger). */
@media (max-width: 640px) {
    /* Selectors intentionally mirror (or exceed) the specificity of every
       font-size !important rule earlier in this file — this block is last,
       so at equal specificity the cascade resolves to 16px. */
    .pca-transfers-wizard input:not([type="checkbox"]):not([type="radio"]),
    .pca-transfers-wizard select,
    .pca-transfers-wizard textarea,
    .pca-transfers-wizard input.pca-input,
    .pca-transfers-wizard select.pca-input,
    .pca-transfers-wizard select.pca-select,
    .pca-transfers-wizard select.pca-excursion-time,
    .pca-transfers-wizard input.pca-hotel-search-input,
    .pca-transfers-wizard input.pca-date-picker,
    .pca-sheet input:not([type="checkbox"]):not([type="radio"]),
    .pca-sheet select,
    .pca-sheet textarea,
    .pca-sheet input.pca-input,
    .pca-sheet select.pca-input,
    .pca-sheet select.pca-select,
    .pca-sheet select.pca-excursion-time,
    .pca-sheet input.pca-hotel-search-input,
    .pca-sheet input.pca-date-picker,
    .pca-transfers-wizard .flatpickr-calendar .numInput,
    .pca-transfers-wizard .flatpickr-calendar.inline .numInput.cur-year,
    .pca-sheet .flatpickr-calendar .numInput,
    .pca-sheet .flatpickr-calendar.inline .numInput.cur-year {
        font-size: 16px !important;
    }
}

/* ── Bundle & Save — Ask-first screen (Task 4) ────────────────────────────── */
.pca-transfers-wizard .pca-bundle-ask {
    margin: 24px 0 20px;
    padding: 24px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
}
.pca-transfers-wizard .pca-bundle-ask__q {
    font-size: 18px;
    font-weight: 700;
    color: #111827;
    margin: 0 0 16px;
    line-height: 1.4;
}
.pca-transfers-wizard .pca-bundle-ask__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
/* Yes button — reuses primary/teal token from the type-card era */
.pca-transfers-wizard .pca-bundle-ask__yes {
    flex: 1 1 auto;
    min-width: 160px;
    padding: 12px 20px;
    background: #0891b2;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    border: 2px solid #0891b2;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    line-height: 1.3;
}
.pca-transfers-wizard .pca-bundle-ask__yes:hover,
.pca-transfers-wizard .pca-bundle-ask__yes:focus-visible {
    background: #0e7490;
    border-color: #0e7490;
    outline: none;
}
/* No button — equal-weight sibling of Yes (Task 4 audit): same size and
   prominence, different treatment (strong outline vs. teal solid). */
.pca-transfers-wizard .pca-bundle-ask__no {
    flex: 1 1 auto;
    min-width: 160px;
    padding: 12px 20px;
    background: #fff;
    color: #111827;
    font-size: 15px;
    font-weight: 600;
    border: 2px solid #111827;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    line-height: 1.3;
}
.pca-transfers-wizard .pca-bundle-ask__no:hover,
.pca-transfers-wizard .pca-bundle-ask__no:focus-visible {
    background: #f3f4f6;
    border-color: #000;
    outline: none;
}
/* Live savings line */
.pca-transfers-wizard .pca-bundle-savings {
    font-size: 15px;
    font-weight: 600;
    color: #067647;
    margin-top: 8px;
    padding: 0;
}
/* Mobile: stack buttons full-width */
@media (max-width: 480px) {
    .pca-transfers-wizard .pca-bundle-ask__yes,
    .pca-transfers-wizard .pca-bundle-ask__no {
        min-width: 100%;
    }
}

/* ── Airbnb / Rental accommodation mode ─────────────────────────── */
.pca-transfers-wizard .pca-acc-toggle { display: flex; gap: 0; border: 1px solid #d8dee6; border-radius: 10px; overflow: hidden; margin: 0 0 10px; }
.pca-transfers-wizard .pca-acc-toggle__btn { flex: 1; padding: 10px 12px; font-size: 16px; background: #fff; border: 0; cursor: pointer; color: #35424f; }
.pca-transfers-wizard .pca-acc-toggle__btn.is-active { background: #0a7d62; color: #fff; font-weight: 600; }
.pca-transfers-wizard .pca-rental-hint { font-size: 13px; color: #5b6b7b; margin: 0 0 8px; cursor: pointer; text-decoration: underline; }
.pca-transfers-wizard .pca-rental-panel .pca-input { font-size: 16px; } /* iOS: never <16px */
.pca-transfers-wizard .pca-rental-url-badge { display: inline-block; font-size: 12px; color: #0a7d62; background: #e7f6f1; border-radius: 6px; padding: 2px 8px; margin: 6px 0 0; }
.pca-transfers-wizard .pca-rental-url-error { font-size: 13px; color: #b3261e; margin: 6px 0 0; }
.pca-transfers-wizard .pca-rental-help { font-size: 12px; color: #5b6b7b; margin: 4px 0 14px; }
.pca-transfers-wizard .pca-rental-cant-find { background: none; border: 0; color: #5b6b7b; font-size: 13px; text-decoration: underline; cursor: pointer; padding: 8px 0 0; }

/* Rental area results — mirror the LIVE hotel dropdown look (see
   .pca-transfers-wizard .pca-hotel-dropdown, ~line 2116). Scoped by ID instead
   of reusing that class: the resolved-state rule (.pca-hotel-resolved
   .pca-hotel-dropdown { display:none !important }) would permanently hide
   re-searches once an area (placeId) is picked. The markup's base
   .pca-hotel-results class is absolute-positioned + hidden; this puts the box
   back in flow like the live dropdown (JS toggles inline display). */
.pca-transfers-wizard #pca-rental-area-results {
    position: static;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-top: 8px;
    overflow: hidden;
    box-shadow: none;
    background: #ffffff;
    max-height: 320px;
    overflow-y: auto;
}
.pca-transfers-wizard #pca-rental-area-results .pca-hotel-result {
    display: block;
    width: 100%;
    text-align: left;
    padding: 14px 16px;
    border: 0;
    border-bottom: 1px solid #f3f4f6;
    background: #ffffff;
    font-size: 14px;
    font-weight: 500;
    color: #111827;
    cursor: pointer;
    transition: background-color 0.12s ease;
}
.pca-transfers-wizard #pca-rental-area-results .pca-hotel-result:last-child { border-bottom: 0; }
.pca-transfers-wizard #pca-rental-area-results .pca-hotel-result:hover,
.pca-transfers-wizard #pca-rental-area-results .pca-hotel-result:focus-visible { background: #f9fafb; }


/* ╔══════════════════════════════════════════════════════════════════════════
   ║ UX-audit T1 — CTA & label state machine (hint, flight skip, confirm pop).
   ╚══════════════════════════════════════════════════════════════════════════ */

/* Disabled-CTA reason line — quiet, sits just below the nav row. Element is
   created by wizard-orchestrator.js (ensureNavHint) and toggled via [hidden]
   whenever #pca-btn-next is aria-disabled. */
.pca-transfers-wizard .pca-nav-hint {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.4;
    color: #6b7280;
    text-align: right;
}
.pca-transfers-wizard .pca-nav-hint[hidden] { display: none; }

/* Desktop "Skip — add flight later" — text-style escape on both flight steps.
   flight-lookup.js hides it the moment a flight is typed/confirmed or the
   "don't know" toggle is on. */
.pca-transfers-wizard .pca-flight-skip {
    display: inline-block;
    margin-top: 16px;
    padding: 4px 2px;
    background: none;
    border: 0;
    font-size: 14px;
    font-weight: 500;
    color: #6b7280;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: color 0.12s ease;
}
.pca-transfers-wizard .pca-flight-skip:hover,
.pca-transfers-wizard .pca-flight-skip:focus-visible { color: #111827; }
/* ≤640px the bottom-sheet flow owns skipping ("Skip for now" footer button)
   and gating (sheet footers disable their own primary button), so both the
   desktop skip and the desktop nav hint stay out of the sheet UI. */
@media (max-width: 640px) {
    .pca-transfers-wizard .pca-flight-skip,
    .pca-transfers-wizard .pca-nav-hint { display: none !important; }
}

/* P3 — one-time "checked in" pop when a flight confirms. Runs once per
   confirm because .pca-flight-confirmed is (re)added at that moment. */
.pca-transfers-wizard .pca-flight-confirmed .pca-flight-status__msg--found {
    animation: pca-flight-checkin 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes pca-flight-checkin {
    0%   { opacity: 0; transform: translateY(6px) scale(0.985); }
    100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .pca-transfers-wizard .pca-flight-confirmed .pca-flight-status__msg--found {
        animation: none;
    }
}

/* ╔══════════════════════════════════════════════════════════════════════════
   ║ UX-audit T2 — accommodation step: rental panel reorder + confirmed-area
   ║ card. Rendered only when the rentals flag is on (panel markup is gated).
   ╚══════════════════════════════════════════════════════════════════════════ */

/* Expectation line directly under the area search field — sets up both the
   instant-price and the quote outcomes before either happens. */
.pca-transfers-wizard .pca-rental-expectation {
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: #5b6b7b;
}

/* Confirmed-area card — same green confirmation language as the selected-
   hotel card. rental-mode.js shows it ONLY when /price resolved the picked
   area to an instant-priced zone (rentalResolution === 'resolved_zone'). */
.pca-transfers-wizard .pca-rental-area-confirm {
    margin-top: 10px;
    padding: 12px 14px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: #065f46;
}

/* Link-field block — second in the panel; T5 lifts it into its own mobile
   sheet, so it gets a stable wrapper id instead of loose siblings. */
.pca-transfers-wizard #pca-rental-link-panel {
    margin-top: 18px;
}

/* ──────────────────────────────────────────────────────────────────────
   "My hotel isn't listed" fallback link (hotel step)
   Quiet text link below the quick-picks — same understated family as the
   old escape buttons. Opens the manual address panel (hotel-search.js).
   Hidden in rental mode (rental-mode.js) and once a hotel is resolved
   (.pca-hotel-resolved hide list above).
   ────────────────────────────────────────────────────────────────────── */
.pca-transfers-wizard .pca-hotel-not-listed {
    display: inline-block;
    margin-top: 12px;
    padding: 4px 0;
    background: none;
    border: none;
    font-size: 13px;
    color: var(--pca-tx-text-muted, #6b7280);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.pca-transfers-wizard .pca-hotel-not-listed:hover,
.pca-transfers-wizard .pca-hotel-not-listed:focus-visible {
    color: var(--pca-tx-text, #1f2937);
}

/* ── T5: mobile two-sheet rental split ──────────────────────────────
   The listing-link panel (#pca-rental-link-panel) renders inline inside the
   hotel step on desktop (area + link together). On mobile it is relocated into
   its own "rentalLink" sheet. Two rules make that work:
   1. The panel's heading is the sheet title — hidden everywhere except inside
      the rentalLink sheet.
   2. When the whole hotel step node is relocated into the hotel sheet (sheet 1),
      hide the link panel there so sheet 1 shows only area search + "can't find". */
.pca-transfers-wizard .pca-rental-link-heading { display: none; }
#pca-sheet-rentalLink .pca-rental-link-heading { display: block; margin: 0 0 12px; }
#pca-sheet-hotel #pca-rental-link-panel { display: none !important; }

/* ── T5: hub row progress cues + tap-target sizing ────────────────── */
.pca-transfers-wizard .pca-msheet-row,
.pca-msheet-card .pca-msheet-row { min-height: 44px; }
/* Completed row: quiet green check after the label. */
.pca-msheet-row.is-complete .pca-msheet-row__label::after {
  content: ' ✓'; color: #0a7d62; font-weight: 700;
}
/* Next incomplete row: accent left-rail + faint tint so "what's next" reads
   instantly. */
.pca-msheet-row.is-next {
  background: rgba(10, 125, 98, .06);
  box-shadow: inset 3px 0 0 #0a7d62;
}
/* Step-of-N cue: small, legible, muted. */
.pca-sheet__progress { font-size: 12px; font-weight: 600; color: #5c6b73; letter-spacing: .02em; }

/* ── T6: review screen ─────────────────────────────────────────────── */
/* Errored total → tappable retry (pairs with s.priceError). */
.pca-transfers-wizard .pca-review-price--retry { color: #b3261e; text-decoration: underline; font-size: 15px; }
/* EXP reprise link — quiet, single. */
.pca-transfers-wizard .pca-review-add-tour {
  display: block; width: 100%; background: none; border: 1px dashed #b6c2cb;
  border-radius: 10px; padding: 10px; margin: 10px 0 0; color: #0a7d62;
  font-size: 14px; font-weight: 600; cursor: pointer;
}
.pca-transfers-wizard .pca-review-add-tour:hover { background: rgba(10, 125, 98, .05); }
/* Green quote-sent confirmation (replaces the price/CTA area on send). */
.pca-transfers-wizard .pca-review-quote-sent {
  background: #e7f6f1; border: 1px solid #0a7d62; border-radius: 12px;
  padding: 16px; margin: 4px 0 0; text-align: center;
}
.pca-transfers-wizard .pca-review-quote-sent__msg { color: #0a5c48; font-weight: 600; margin: 0 0 12px; font-size: 15px; }
.pca-transfers-wizard .pca-review-quote-sent__wa {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px;
  border: 2px solid #25d366; border-radius: 999px; color: #128c4a;
  font-weight: 700; text-decoration: none; background: #fff;
}
.pca-transfers-wizard .pca-btn-book-now.is-done { opacity: .85; }
/* Desktop two-column review: details left, sticky price + CTA right. */
@media (min-width: 1024px) {
  .pca-transfers-wizard .pca-transfer-step[data-step="review"][style*="block"] {
    display: grid !important; grid-template-columns: 1fr 360px; gap: 28px; align-items: start;
  }
  .pca-transfers-wizard .pca-transfer-step[data-step="review"] > .pca-step-header { grid-column: 1; }
  .pca-transfers-wizard .pca-transfer-step[data-step="review"] > .pca-review-section { grid-column: 1; }
  .pca-transfers-wizard .pca-transfer-step[data-step="review"] > .pca-review-submit-wrap {
    grid-column: 2; grid-row: 1 / 999; position: sticky; top: 16px;
  }
}
/* Mobile review (in a sheet): price summary + CTA first, detail sections below
   (folded from T5 mobile-review-density). */
@media (max-width: 640px) {
  .pca-sheet .pca-transfer-step[data-step="review"][style*="block"] { display: flex !important; flex-direction: column; }
  .pca-sheet .pca-transfer-step[data-step="review"] > .pca-step-header { order: 0; }
  .pca-sheet .pca-transfer-step[data-step="review"] > .pca-review-submit-wrap { order: 1; }
  .pca-sheet .pca-transfer-step[data-step="review"] > .pca-review-section { order: 2; }
}

/* ── Route page: summary card (hub + spoke) + hero CTA ─────────────────── */
.pca-lp-route-summary {
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
    border: 1px solid var(--pca-lp-border);
    border-radius: 12px;
    background: var(--pca-lp-surface);
    overflow: hidden;
}
.pca-lp-route-summary__item {
    display: flex;
    gap: 12px;
    align-items: baseline;
    padding: 13px 20px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--pca-lp-text-soft);
    border-bottom: 1px solid var(--pca-lp-border-soft);
}
.pca-lp-route-summary__item:last-child { border-bottom: 0; }
.pca-lp-route-summary__label {
    flex: 0 0 92px;
    font-weight: 600;
    color: var(--pca-lp-text);
}
.pca-lp-route-summary__price strong { color: var(--pca-lp-primary); }
/* Reassurance rows inside the summary card: green check + trust line. */
.pca-lp-route-summary__reassure {
    align-items: center;
    color: var(--pca-lp-text);
    font-weight: 500;
}
.pca-lp-route-summary__reassure svg { flex: 0 0 auto; color: #16a34a; }

/* Prefill note above the wizard (spoke pages): "{hotel} is already selected…". */
.pca-lp-route-prefill { padding-bottom: 0; }
.pca-lp-route-prefill__note {
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--pca-lp-text-soft);
}

/* Anchor CTA that jumps to the wizard; reuses .pca-lp-cta visual. */
.pca-lp-route-cta { margin: 24px 0 4px; display: flex; }
@media (max-width: 599px) {
    .pca-lp-route-cta .pca-lp-cta { width: 100%; justify-content: center; }
}
/* Keep the wizard clear of any sticky header when the CTA anchor-jumps to it. */
#pca-transfers-wizard { scroll-margin-top: 20px; }
