.results-header.hotel-hero{background:linear-gradient(rgba(0,0,0,.28),rgba(0,0,0,.12)),url('/images/backgrounds/tct-landing-hotel.svg') center/cover no-repeat;color:#fff;padding:104px 0 88px;min-height:340px}
.results-header.hotel-hero .eyebrow.text-brand{color:#ffd9c9}
.results-header.hotel-hero h1,.results-header.hotel-hero p{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.hotel-results-page{grid-template-columns:270px minmax(0,1fr);gap:24px;background:#f6f8f7;padding:28px 24px 64px;border-radius:18px}.hotel-search-filters{background:#fff;border-radius:16px;box-shadow:none;padding:20px}.hotel-search-filters h3{font-size:22px;color:#1a2923}.hotel-search-filters .filter-heading{font-size:15px;text-transform:none;letter-spacing:0;color:#21332b}.hotel-results-page .result-list{gap:16px}.hotel-results-page .result-card{grid-template-columns:280px minmax(0,1fr) 205px;min-height:255px;border:1px solid #dce4df;border-radius:15px;box-shadow:0 2px 5px rgba(28,53,43,.04);overflow:hidden;transition:box-shadow .2s,transform .2s}.hotel-results-page .result-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(28,53,43,.1)}.hotel-results-page .result-card>img{height:255px}.hotel-results-page .result-info{padding:22px 24px;justify-content:flex-start}.hotel-results-page .rating{order:1;color:#e68027;font-size:17px;letter-spacing:2px}.hotel-results-page .result-info h2{order:2;margin:5px 0;font-size:21px;letter-spacing:-.3px}.hotel-results-page .location{order:3;margin:0;color:#69766f}.hotel-results-page .chips{order:4;margin-top:16px}.hotel-results-page .chips span{background:#eef7f2;color:#26754d;font-weight:600}.hotel-results-page .result-price{padding:20px;background:#fbfcfb;align-items:flex-end;text-align:right}.hotel-results-page .result-price p{font-size:12px}.hotel-results-page .result-price strong{font-size:21px;color:#e05234}.hotel-results-page .result-price small{margin-top:2px}.hotel-results-page .result-price .btn{margin-top:18px;min-width:142px;padding:12px;text-align:center}.results-header{padding-bottom:30px}.hotel-results-search{margin-top:22px}@media(max-width:850px){.hotel-results-page{padding:18px}.hotel-results-page .result-card{grid-template-columns:190px minmax(0,1fr)}.hotel-results-page .result-price{grid-column:1/-1;align-items:center;text-align:left}.hotel-results-page .result-price .btn{margin-left:auto}}@media(max-width:540px){.hotel-results-page .result-card{display:block}.hotel-results-page .result-card>img{height:220px}.hotel-results-page .result-price{display:flex;flex-direction:row;gap:8px}.hotel-results-page .result-price .btn{margin-top:0}}.home-country-sections{padding-bottom:55px}.home-country-group+.home-country-group{margin-top:62px}
.hotel-availability-map-card{padding:18px;background:#fff;border:1px solid #dce4df;border-radius:14px;overflow:hidden}.hotel-availability-map-card>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 4px 14px}.hotel-availability-map-card h2{margin:0;font-size:19px}.hotel-availability-map-card p{margin:0;color:#69766f;font-size:13px}.hotel-availability-map-card #hotel-availability-map{height:365px;border-radius:10px;background:#e7efea}.hotel-map-marker-wrap{background:transparent;border:0}.hotel-map-marker{display:grid;place-items:center;width:34px;height:34px;border:3px solid #fff;border-radius:50%;background:#e05234;color:#fff;box-shadow:0 3px 8px rgba(0,0,0,.25);font-size:18px;font-weight:800}.hotel-map-popup{display:flex;flex-direction:column;gap:5px;min-width:165px}.hotel-map-popup strong{font-size:14px;line-height:1.3}.hotel-map-popup span{color:#e05234;font-weight:750}.hotel-map-popup a{margin-top:3px;color:#0d5b55;font-weight:750}@media(max-width:540px){.hotel-availability-map-card #hotel-availability-map{height:290px}.hotel-availability-map-card>div:first-child{display:block}.hotel-availability-map-card>div:first-child p{margin-top:5px}}


/* Map viewport filter: hide cards outside the visible map area (composes with sidebar filters). */
.hotel-result.is-outside-map{display:none!important}
.hotel-map-area-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}
.hotel-map-area-count{font-size:14px;font-weight:700;color:#1a2923}
.hotel-map-area-reset{appearance:none;border:1px solid var(--brand,#e8643b);background:#fff;color:var(--brand,#e8643b);font-weight:700;font-size:13px;padding:8px 16px;border-radius:9px;cursor:pointer}
.hotel-map-area-reset:hover{background:#fff1ed}

/* ── Ferry Booking: Booking Contact Section ───────────────────────────── */
.booking-contact-section {
    border: 1.5px solid #e2ebe6;
    border-radius: 14px;
    padding: 20px 22px 18px;
    margin-bottom: 22px;
    background: #fafcfb;
}

.booking-section-legend {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
    color: #1a2923;
    padding: 0 6px;
}

.booking-section-icon {
    font-size: 17px;
    line-height: 1;
}

.booking-section-desc {
    margin: 4px 0 14px;
    font-size: 13px;
    color: #69766f;
    line-height: 1.5;
}

/* ── Ferry Booking: Passenger List Section ────────────────────────────── */
.passenger-list-section {
    margin-bottom: 22px;
}

.passenger-list-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.passenger-list-title {
    font-size: 17px;
    font-weight: 700;
    color: #1a2923;
    margin: 0;
    flex: 1;
}

.passenger-count-badge {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand, #e8643b);
    background: #fff1ed;
    border-radius: 20px;
    padding: 3px 10px;
    white-space: nowrap;
}

/* Individual passenger card */
.passenger-card {
    border: 1.5px solid #e2ebe6;
    border-radius: 14px;
    padding: 16px 18px 14px;
    margin-bottom: 14px;
    background: #fff;
}

.passenger-card:last-of-type {
    margin-bottom: 0;
}

.passenger-card-legend {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #1a2923;
    padding: 0 6px;
}

.passenger-primary-badge {
    font-size: 11px;
    font-weight: 700;
    color: #0d6b53;
    background: #e6f7f1;
    border-radius: 12px;
    padding: 2px 8px;
    letter-spacing: .02em;
}

.passenger-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--brand, #e8643b);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    flex-shrink: 0;
}

/* Name row: Title (narrow) + First Name + Last Name */
.passenger-row {
    display: grid;
    grid-template-columns: 90px 1fr 1fr;
    gap: 10px;
    margin-top: 12px;
    align-items: end;
}

.passenger-docs-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 10px;
}

/* Field label inside passenger card */
.passenger-card .field-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #4a5561;
    margin-bottom: 5px;
}

.passenger-card label {
    display: flex;
    flex-direction: column;
}

.passenger-card input,
.passenger-card select {
    padding: 9px 11px;
    border: 1.5px solid #d5ddd8;
    border-radius: 9px;
    font-size: 14px;
    color: #1a2923;
    background: #fff;
    transition: border-color .15s;
    width: 100%;
    box-sizing: border-box;
}

.passenger-card input:focus,
.passenger-card select:focus {
    border-color: var(--brand, #e8643b);
    outline: none;
    box-shadow: 0 0 0 3px rgba(232, 100, 59, .1);
}

.passenger-title-select {
    background-color: #f9faf9;
}

.required-star {
    color: var(--brand, #e8643b);
    font-size: 13px;
}

/* Promo code spacing */
.promo-code-label {
    margin-top: 6px;
    margin-bottom: 4px;
}

/* Responsive: stack Title below first name/last name on narrow screens */
@media (max-width: 540px) {
    .passenger-row {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
    }

    .passenger-title-field {
        grid-column: 1 / -1;
        max-width: 120px;
    }
}

@media(max-width:640px){.results-header.hotel-hero{padding:52px 0 44px;min-height:0}}
