/* ============================================================
   RETURN Africa — Specials & Offers (booking widget + offers grid)
   Uses brand.css tokens; accent follows the selected property
   via [data-ra-accent] on the widget root.
   ============================================================ */

/* ---- Section inside the booking widget ---- */
.ra-nbw-specials {
    margin: 14px 0 6px;
    border: 1px solid var(--ra-line, #E8DED5);
    border-radius: var(--ra-radius, 8px);
    background: var(--ra-surface, #faf7f4);
    overflow: hidden;
}
.ra-nbw-specials-head {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 11px 14px;
    background: var(--ra-pearl-blush, #E8DED5);
    border: none;
    font-family: inherit;
    font-size: var(--ra-fs-sm, 0.85rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ra-ink, #302A25);
    cursor: pointer;
    text-align: left;
}
.ra-nbw-specials-head .ra-nbw-icon { color: var(--ra-accent, #6E380F); flex-shrink: 0; }
.ra-nbw-specials-heading { flex: 0 0 auto; }
.ra-nbw-specials-count { flex: 1; font-weight: 600; color: var(--ra-muted, #8a7d70); }
.ra-nbw-specials-chev { display: inline-flex; color: var(--ra-muted, #8a7d70); transition: transform .2s ease; transform: rotate(180deg); }
.ra-nbw-specials.is-collapsed .ra-nbw-specials-chev { transform: none; }
.ra-nbw-specials.is-collapsed .ra-nbw-specials-list { display: none; }

.ra-nbw-specials-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    padding: 14px;
}

/* ---- Offer card (shared by widget + grid) ---- */
.ra-nbw-offer {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 14px 12px;
    background: #fff;
    border: 1px solid var(--ra-line, #E8DED5);
    border-radius: var(--ra-radius, 8px);
    font-size: var(--ra-fs-sm, 0.85rem);
    color: var(--ra-ink, #302A25);
    line-height: var(--ra-lh, 1.55);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.ra-nbw-offer.is-applied {
    border-color: var(--ra-accent, #6E722E);
    box-shadow: inset 0 0 0 1px var(--ra-accent, #6E722E);
}
.ra-nbw-offer.is-highlight { box-shadow: 0 0 0 3px var(--ra-accent-tint, #f5ece2), inset 0 0 0 1px var(--ra-accent, #6E722E); }

.ra-nbw-offer-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ra-nbw-offer-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--ra-accent, #6E722E);
    color: var(--ra-accent-contrast, #e8ded5);
    font-size: var(--ra-fs-xs, 0.72rem);
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.ra-nbw-offer-market {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    border: 1px solid var(--ra-rodeo-dust, #C7B3A3);
    color: var(--ra-ink-soft, #5b5148);
    font-size: var(--ra-fs-xs, 0.72rem);
    font-weight: 600;
}
.ra-nbw-offer-title {
    margin: 2px 0 0;
    font-family: var(--ra-font-serif, Georgia, serif);
    font-size: var(--ra-fs-lg, 1.1rem);
    font-weight: 600;
    line-height: 1.3;
    color: var(--ra-ink, #302A25);
}
.ra-nbw-offer-props { margin: 0; font-size: var(--ra-fs-xs, .72rem); text-transform: uppercase; letter-spacing: .05em; color: var(--ra-muted, #8a7d70); }
.ra-nbw-offer-price { margin: 0; }
.ra-nbw-offer-price s { color: var(--ra-muted, #8a7d70); }
.ra-nbw-offer-price strong { font-size: var(--ra-fs-base, .95rem); color: var(--ra-accent-2, #6E380F); }
.ra-nbw-offer-price small { color: var(--ra-ink-soft, #5b5148); }
.ra-nbw-offer-summary { margin: 0; color: var(--ra-ink-soft, #5b5148); }

.ra-nbw-offer-meta { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.ra-nbw-offer-meta li { display: flex; align-items: center; gap: 6px; margin: 0; color: var(--ra-ink-soft, #5b5148); font-size: .8rem; }
.ra-nbw-offer-meta .ra-nbw-icon { color: var(--ra-accent, #6E380F); flex-shrink: 0; }

.ra-nbw-offer-status {
    margin-top: 4px;
    padding: 7px 10px;
    border-radius: var(--ra-radius-sm, 4px);
    font-size: .8rem;
    line-height: 1.45;
}
.ra-nbw-offer-status--ok    { background: var(--ra-accent-tint, #f5ece2); color: var(--ra-accent-deep, #4D4C27); font-weight: 600; }
.ra-nbw-offer-status--nudge { background: #fbf3e4; color: #63380f; }
.ra-nbw-offer-status--info  { background: var(--ra-surface, #faf7f4); color: var(--ra-ink-soft, #5b5148); }

.ra-nbw-offer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 4px; }
.ra-nbw-offer-btn {
    padding: 6px 12px;
    border: 1.5px solid var(--ra-accent, #6E722E);
    border-radius: var(--ra-radius-sm, 4px);
    background: #fff;
    color: var(--ra-accent-deep, #4D4C27);
    font-family: inherit;
    font-size: .8rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.ra-nbw-offer-btn:hover,
.ra-nbw-offer-btn:focus-visible { background: var(--ra-accent, #6E722E); color: var(--ra-accent-contrast, #e8ded5); }
.ra-nbw-offer-link {
    padding: 0;
    border: 0;
    background: none;
    font-family: inherit;
    font-size: .78rem;
    color: var(--ra-ink-soft, #5b5148);
    text-decoration: underline;
    cursor: pointer;
}
.ra-nbw-offer-applied-tag { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; font-weight: 700; color: var(--ra-accent, #6E722E); }
.ra-nbw-offer-terms { font-size: .76rem; color: var(--ra-ink-soft, #5b5148); line-height: 1.5; border-top: 1px dashed var(--ra-line, #E8DED5); padding-top: 8px; }
.ra-nbw-offer-terms[hidden] { display: none; }
.ra-nbw-offer-terms p { margin: 0 0 6px; }

/* ---- "Applied" confirmation above Book Now ---- */
.ra-nbw-special-applied {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 10px 0 8px;
    padding: 9px 12px;
    border-left: 3px solid var(--ra-accent, #6E722E);
    border-radius: var(--ra-radius-sm, 4px);
    background: var(--ra-accent-tint, #f5ece2);
    font-size: .85rem;
    color: var(--ra-ink, #302A25);
    line-height: 1.45;
}
.ra-nbw-special-applied-ico { color: var(--ra-accent, #6E722E); display: inline-flex; margin-top: 1px; }
.ra-nbw-special-applied-note { display: block; font-weight: 400; color: var(--ra-ink-soft, #5b5148); font-size: .8rem; }

/* ---- [nightsbridge_specials] grid ---- */
.ra-nbw-specials-grid {
    display: grid;
    grid-template-columns: repeat(var(--sp-cols, 3), minmax(0, 1fr));
    gap: 20px;
}
.ra-nbw-offer--card { padding: 0; overflow: hidden; }
.ra-nbw-offer-img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ra-pearl-blush, #E8DED5); }
.ra-nbw-offer-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ra-nbw-offer-body { display: flex; flex-direction: column; gap: 6px; padding: 16px; flex: 1; }
.ra-nbw-offer-terms-d summary { cursor: pointer; font-size: .78rem; color: var(--ra-ink-soft, #5b5148); text-decoration: underline; }
.ra-nbw-offer-terms-d[open] summary { margin-bottom: 6px; }
.ra-nbw-offer-cta { margin-top: auto; text-align: center; text-decoration: none; }
.ra-nbw-specials-none { font-style: italic; color: var(--ra-muted, #8a7d70); }

@media (max-width: 900px) {
    .ra-nbw-specials-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .ra-nbw-specials-grid { grid-template-columns: 1fr; }
    .ra-nbw-specials-list { grid-template-columns: 1fr; padding: 10px; }
}

/* ---- Deep-link prompt before a country is chosen ---- */
.ra-nbw-specials-prompt { margin: 0; font-size: .85rem; color: var(--ra-ink-soft, #5b5148); font-style: italic; grid-column: 1 / -1; }

/* ---- Compact cards (Journey legs) ---- */
.ra-nbw-offer.is-compact { padding: 11px 12px 10px; gap: 5px; }
.ra-nbw-offer.is-compact .ra-nbw-offer-title { font-size: var(--ra-fs-base, .95rem); }

/* ---- Journey builder: per-leg offers ---- */
.ra-nbw-journey-specials {
    margin: 12px 0 4px;
    border: 1px solid var(--ra-line, #E8DED5);
    border-radius: var(--ra-radius, 8px);
    background: var(--ra-surface, #faf7f4);
    overflow: hidden;
}
.ra-nbw-journey-specials-head {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 12px;
    background: var(--ra-pearl-blush, #E8DED5);
    font-size: var(--ra-fs-xs, .72rem); font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ra-ink, #302A25);
}
.ra-nbw-journey-specials-head .ra-nbw-icon { color: var(--ra-accent, #6E380F); }
.ra-nbw-journey-specials .ra-nbw-specials-list { padding: 10px; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ra-nbw-journey-specials .ra-nbw-special-applied { margin: 0 10px 10px; }
.ra-nbw-journey-leg--minimized .ra-nbw-journey-specials { display: none !important; }
.ra-nbw-journey-summary-offer {
    display: inline-flex; align-items: center; gap: 4px; margin-left: 8px;
    padding: 1px 8px; border-radius: 999px;
    background: var(--ra-accent, #6E722E); color: var(--ra-accent-contrast, #e8ded5);
    font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; vertical-align: middle;
}

/* ---- Offers page country picker ---- */
.ra-nbw-specials-page { display: flex; flex-direction: column; gap: 18px; }
.ra-nbw-specials-picker { display: flex; flex-direction: column; gap: 6px; max-width: 420px; }
.ra-nbw-specials-picker label {
    font-size: var(--ra-fs-xs, .72rem); font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ra-ink, #302A25);
}
.ra-nbw-specials-picker select { width: 100%; padding: 10px 12px; border: 1px solid var(--ra-rodeo-dust, #C7B3A3); border-radius: var(--ra-radius-sm, 4px); background: #fff; font: inherit; }
.ra-nbw-specials-picker-note { margin: 0; font-size: .8rem; color: var(--ra-ink-soft, #5b5148); }
.ra-nbw-specials-page-prompt { margin: 0; font-style: italic; color: var(--ra-muted, #8a7d70); }
.ra-nbw-specials-page [hidden] { display: none !important; }

/* ---- Added value line ---- */
.ra-nbw-offer-value { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-weight: 600; color: var(--ra-accent-deep, #4D4C27); }
.ra-nbw-offer-value .ra-nbw-icon { color: var(--ra-accent-2, #6E380F); flex-shrink: 0; margin-top: 2px; }
/* "What the guest gets" is written to read mid-sentence ("…applied: first child stays free");
   capitalise it where it stands alone on a card. */
.ra-nbw-offer-value span::first-letter,
p.ra-nbw-offer-value::first-letter { text-transform: uppercase; }
