/**
 * 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 {
	--nhb-ink: #0F1C13;
	--nhb-forest: #124922;
	--nhb-parchment: #F5F1E4;
	--nhb-parchment-2: #EFE6CE;
	--nhb-rust: #ffb236;
	--nhb-rust-dark: #E89A1E;
	--nhb-gold-soft: #FFD68A;
	--nhb-white: #FFFDF7;
	--nhb-ink-soft: rgba(15, 28, 19, 0.7);
	--nhb-shadow: 0 30px 60px -20px rgba(15, 28, 19, 0.35);
	--nhb-ease: cubic-bezier(.16, .84, .44, 1);
	--nhb-radius: 14px;
}

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


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

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

.nhb-form-row { margin-bottom: 18px; }
.nhb-form-row--split { display: flex; gap: 16px; }
.nhb-form-row--split label { flex: 1; }
.nhb-form-row label { display: block; }
.nhb-form-row label > span { display: block; font-size: 12.5px; font-weight: 600; margin-bottom: 6px; color: var(--nhb-ink-soft); }
.nhb-form-row input[type="text"],
.nhb-form-row input[type="email"],
.nhb-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(--nhb-parchment);
}
.nhb-phone-field { display: flex; gap: 6px; }
.nhb-phone-field__code { border-radius: 8px; border: 1px solid rgba(15,28,19,.18); background: var(--nhb-parchment); font-size: 13px; padding: 0 6px; }
.nhb-phone-field__number { flex: 1; }

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

.nhb-reserve__installment-label { display: block; font-size: 12.5px; font-weight: 600; margin-bottom: 8px; color: var(--nhb-ink-soft); }
.nhb-reserve__installment-options { display: flex; flex-wrap: wrap; gap: 10px; }
.nhb-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(--nhb-ease), background .25s var(--nhb-ease);
}
.nhb-reserve__installment-option:has(input:checked) { border-color: var(--nhb-rust); background: rgba(255,178,54,.12); }
.nhb-reserve__installment-option input { margin-right: 8px; }
.nhb-reserve__installment-option small { color: var(--nhb-ink-soft); }

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

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

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

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

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

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