/**
 * Departures & Bookings — frontend styling.
 * Palette matches New Horizon's existing tour template (single-tour.php)
 * so this reads as part of the same site, not a bolted-on module.
 */
:root {
	--rrb-ink: #0F1C13;
	--rrb-forest: #124922;
	--rrb-parchment: #F5F1E4;
	--rrb-parchment-2: #EFE6CE;
	--rrb-rust: #ffb236;
	--rrb-rust-dark: #E89A1E;
	--rrb-gold-soft: #FFD68A;
	--rrb-white: #FFFDF7;
	--rrb-ink-soft: rgba(15, 28, 19, 0.7);
	--rrb-shadow: 0 30px 60px -20px rgba(15, 28, 19, 0.35);
	--rrb-ease: cubic-bezier(.16, .84, .44, 1);
	--rrb-radius: 14px;
}

.rrb-btn {
	all: unset;
	box-sizing: border-box;
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 26px; background: var(--rrb-rust); color: var(--rrb-ink);
	border-radius: 100px; font-weight: 600; font-size: 14.5px; border: 1px solid var(--rrb-rust);
	cursor: pointer; transition: all .35s var(--rrb-ease); text-decoration: none; white-space: nowrap;
	font-family: inherit; text-align: center; text-transform: none; letter-spacing: normal; line-height: normal;
}
.rrb-btn:hover { background: var(--rrb-ink); border-color: var(--rrb-ink); color: var(--rrb-white); }
.rrb-btn--outline { background: transparent; color: var(--rrb-ink); border-color: rgba(15, 28, 19, .25); }
.rrb-btn--outline:hover { background: var(--rrb-ink); color: var(--rrb-white); }
.rrb-btn--block { width: 100%; }
.rrb-btn[aria-disabled="true"] { opacity: .5; pointer-events: none; }

/* ------------------------------------------------------------------ *
 * Departure Dates module (single-tour.php sidebar)
 * ------------------------------------------------------------------ */
.rrb-departures-card {
	background: var(--rrb-white); border-radius: var(--rrb-radius); padding: 26px; margin-bottom: 20px;
	box-shadow: var(--rrb-shadow); font-family: 'Inter', sans-serif; color: var(--rrb-ink);
}
.rrb-departures-card__title { font-family: 'Fraunces', serif; font-size: 20px; font-weight: 600; margin: 0 0 4px; }
.rrb-departures-card__from-label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rrb-ink-soft); margin: 12px 0 2px; }
.rrb-departures-card__from-price { font-family: 'Fraunces', serif; font-size: 26px; font-weight: 600; margin: 0 0 16px; }
.rrb-departures-card__from-price span { font-size: 13px; font-weight: 400; color: var(--rrb-ink-soft); }

.rrb-departures__year-tabs { display: flex; gap: 8px; margin-bottom: 14px; border-bottom: 1px solid rgba(15,28,19,.1); }
.rrb-departures__year-tab {
	all: unset;
	box-sizing: border-box;
	display: inline-block;
	background: none; border: none; border-radius: 0; padding: 8px 4px; font-size: 13.5px; font-weight: 600;
	color: var(--rrb-ink-soft); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px;
	font-family: inherit; text-transform: none; letter-spacing: normal; line-height: normal;
}
.rrb-departures__year-tab.is-active { color: var(--rrb-ink); border-bottom-color: var(--rrb-rust); }

.rrb-departures__year-panel[hidden] { display: none; }

.rrb-departures__month + .rrb-departures__month { margin-top: 6px; border-top: 1px dashed rgba(15,28,19,.12); padding-top: 6px; }
.rrb-departures__month-toggle {
	all: unset;
	box-sizing: border-box;
	width: 100%; display: flex; justify-content: space-between; align-items: center;
	background: none; border: none; border-radius: 0; padding: 10px 2px; font-size: 13.5px; font-weight: 600; cursor: pointer; color: var(--rrb-ink);
	font-family: inherit; text-align: left; text-transform: none; letter-spacing: normal; line-height: normal;
}
.rrb-departures__month-chevron { transition: transform .3s var(--rrb-ease); color: var(--rrb-rust-dark); }
.rrb-departures__month.is-open .rrb-departures__month-chevron { transform: rotate(90deg); }
.rrb-departures__month-rows[hidden] { display: none; }

.rrb-departure-row {
	display: flex; justify-content: space-between; align-items: center; gap: 10px;
	padding: 12px 2px; border-bottom: 1px solid rgba(15,28,19,.06);
}
.rrb-departure-row:last-child { border-bottom: none; }
.rrb-departure-row__dates { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.rrb-departure-row__dates strong { font-size: 13.5px; }
.rrb-departure-row__status { font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.rrb-departure-row__status--available { color: #1a7a34; }
.rrb-departure-row__status--limited { color: var(--rrb-rust-dark); }
.rrb-departure-row__status--sold-out,
.rrb-departure-row__status--cancelled { color: #b32d2e; }
.rrb-departure-row__action { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.rrb-departure-row__price { font-family: 'Fraunces', serif; font-weight: 600; font-size: 14.5px; }
.rrb-departure-row__price span { font-size: 11px; font-weight: 400; color: var(--rrb-ink-soft); }
.rrb-departure-row__book { padding: 8px 18px; font-size: 12.5px; }

/* ------------------------------------------------------------------ *
 * /reserve/ checkout page
 * ------------------------------------------------------------------ */
.rrb-reserve { font-family: 'Inter', sans-serif; background: var(--rrb-parchment); color: var(--rrb-ink); padding: 60px 20px 90px; }
.rrb-reserve__wrap { max-width: 1080px; margin: 0 auto; }
.rrb-reserve__layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 860px) { .rrb-reserve__layout { grid-template-columns: 1fr; } }

.rrb-reserve__form-col { background: var(--rrb-white); border-radius: var(--rrb-radius); padding: 36px; box-shadow: var(--rrb-shadow); }
.rrb-reserve__form-heading { font-family: 'Fraunces', serif; font-size: 24px; margin: 0 0 20px; }

.rrb-form-row { margin-bottom: 18px; }
.rrb-form-row--split { display: flex; gap: 16px; }
.rrb-form-row--split label { flex: 1; }
.rrb-form-row label { display: block; }
.rrb-form-row label > span { display: block; font-size: 12.5px; font-weight: 600; margin-bottom: 6px; color: var(--rrb-ink-soft); }
.rrb-form-row input[type="text"],
.rrb-form-row input[type="email"],
.rrb-form-row input[type="tel"] {
	width: 100%; padding: 12px 14px; border: 1px solid rgba(15,28,19,.18); border-radius: 8px;
	font-family: inherit; font-size: 14.5px; background: var(--rrb-parchment);
}
.rrb-phone-field { display: flex; gap: 6px; }
.rrb-phone-field__code { border-radius: 8px; border: 1px solid rgba(15,28,19,.18); background: var(--rrb-parchment); font-size: 13px; padding: 0 6px; }
.rrb-phone-field__number { flex: 1; }

.rrb-hp-field { position: absolute; left: -9999px; }

.rrb-reserve__installment-label { display: block; font-size: 12.5px; font-weight: 600; margin-bottom: 8px; color: var(--rrb-ink-soft); }
.rrb-reserve__installment-options { display: flex; flex-wrap: wrap; gap: 10px; }
.rrb-reserve__installment-option {
	border: 1px solid rgba(15,28,19,.18); border-radius: 10px; padding: 10px 16px; cursor: pointer;
	font-size: 13px; transition: border-color .25s var(--rrb-ease), background .25s var(--rrb-ease);
}
.rrb-reserve__installment-option:has(input:checked) { border-color: var(--rrb-rust); background: rgba(255,178,54,.12); }
.rrb-reserve__installment-option input { margin-right: 8px; }
.rrb-reserve__installment-option small { color: var(--rrb-ink-soft); }

.rrb-reserve__stripe-note { font-size: 12px; color: var(--rrb-ink-soft); text-align: center; margin-top: 12px; }
.rrb-form-message { padding: 10px 14px; border-radius: 8px; font-size: 13.5px; margin: 0 0 16px; }
.rrb-form-message[hidden] { display: none; }
.rrb-form-message.is-error { background: #fbe3e3; color: #8a2424; }
.rrb-form-message.is-loading { background: #eef6fc; color: #2b6cb0; }

.rrb-reserve__submit { margin-top: 6px; }
.rrb-reserve__submit[aria-busy="true"] { opacity: .7; pointer-events: none; }

.rrb-reserve__summary { background: var(--rrb-ink); color: var(--rrb-white); border-radius: var(--rrb-radius); padding: 30px; }
.rrb-reserve__summary-header h2 { font-family: 'Fraunces', serif; font-size: 20px; margin: 0 0 4px; }
.rrb-reserve__dates { font-size: 13px; color: rgba(255,253,247,.7); margin: 0 0 18px; }
.rrb-reserve__line { display: flex; justify-content: space-between; font-size: 14px; padding: 10px 0; border-bottom: 1px dashed rgba(255,253,247,.2); }
.rrb-reserve__total { display: flex; justify-content: space-between; font-family: 'Fraunces', serif; font-size: 19px; font-weight: 600; padding: 16px 0 4px; }
.rrb-reserve__policy-link { display: inline-block; margin-top: 16px; font-size: 12.5px; color: var(--rrb-gold-soft); text-decoration: underline; }

.rrb-reserve__notice { background: var(--rrb-white); border-radius: var(--rrb-radius); padding: 36px; text-align: center; box-shadow: var(--rrb-shadow); max-width: 640px; margin: 0 auto; }
.rrb-reserve__notice h2 { font-family: 'Fraunces', serif; font-size: 24px; margin: 0 0 12px; }
.rrb-reserve__notice p { color: var(--rrb-ink-soft); margin: 0 0 20px; line-height: 1.6; }
.rrb-reserve__notice--success { border-top: 4px solid #1a7a34; }
.rrb-reserve__notice--warning { border-top: 4px solid var(--rrb-rust-dark); }
.rrb-reserve__notice--error { border-top: 4px solid #b32d2e; }

.rrb-receipt { border: 1px solid rgba(15,28,19,.12); border-radius: 10px; padding: 24px; text-align: left; margin: 20px 0; }
.rrb-receipt__brand { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.rrb-receipt__brand-name { font-family: 'Fraunces', serif; font-size: 16px; }
.rrb-receipt__label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--rrb-ink-soft); }
.rrb-receipt__meta { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--rrb-ink-soft); margin-bottom: 16px; }
.rrb-receipt__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rrb-receipt__table th { text-align: left; color: var(--rrb-ink-soft); font-weight: 500; padding: 6px 0; width: 40%; }
.rrb-receipt__table td { text-align: right; padding: 6px 0; }
.rrb-receipt__total-row th, .rrb-receipt__total-row td { border-top: 1px solid rgba(15,28,19,.12); padding-top: 12px; font-weight: 700; font-family: 'Fraunces', serif; font-size: 16px; }
.rrb-receipt__footer { font-size: 12px; color: var(--rrb-ink-soft); text-align: center; margin-top: 18px; }

@media print {
	body * { visibility: hidden; }
	#rrb-receipt, #rrb-receipt * { visibility: visible; }
	#rrb-receipt { position: absolute; left: 0; top: 0; width: 100%; }
}
