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

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

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

.gas-departures__year-tabs { display: flex; gap: 8px; margin-bottom: 14px; border-bottom: 1px solid rgba(15,28,19,.1); }
.gas-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(--gas-ink-soft); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px;
	font-family: inherit; text-transform: none; letter-spacing: normal; line-height: normal;
}
.gas-departures__year-tab.is-active { color: var(--gas-ink); border-bottom-color: var(--gas-rust); }

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

.gas-departures__month + .gas-departures__month { margin-top: 6px; border-top: 1px dashed rgba(15,28,19,.12); padding-top: 6px; }
.gas-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(--gas-ink);
	font-family: inherit; text-align: left; text-transform: none; letter-spacing: normal; line-height: normal;
}
.gas-departures__month-chevron { transition: transform .3s var(--gas-ease); color: var(--gas-rust-dark); }
.gas-departures__month.is-open .gas-departures__month-chevron { transform: rotate(90deg); }
.gas-departures__month-rows[hidden] { display: none; }

.gas-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);
}
.gas-departure-row:last-child { border-bottom: none; }
.gas-departure-row__dates { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.gas-departure-row__dates strong { font-size: 13.5px; }
.gas-departure-row__status { font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.gas-departure-row__status--available { color: #1a7a34; }
.gas-departure-row__status--limited { color: var(--gas-rust-dark); }
.gas-departure-row__status--sold-out,
.gas-departure-row__status--cancelled { color: #b32d2e; }
.gas-departure-row__action { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.gas-departure-row__price { font-family: 'Fraunces', serif; font-weight: 600; font-size: 14.5px; }
.gas-departure-row__price span { font-size: 11px; font-weight: 400; color: var(--gas-ink-soft); }
.gas-departure-row__book, .gas-departures-card .gas-departure-row__book { padding: 8px 18px; font-size: 12.5px; }

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

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

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

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

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

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

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

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

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

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

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


/* Group-size pricing (travellers stepper) */
.gas-pax { display: grid; gap: 8px; margin-bottom: 18px; padding: 16px 18px; border: 1px solid rgba(15, 28, 19, .12); border-radius: 12px; background: #FBF8F1; }
.gas-pax__label { font-weight: 600; }
.gas-pax__stepper { display: inline-flex; align-items: center; gap: 4px; width: max-content; background: #fff; border: 1px solid rgba(15, 28, 19, .15); border-radius: 999px; padding: 4px; }
.gas-pax__btn { width: 38px; height: 38px; border-radius: 50%; border: 0; background: #F3EEDF; font-size: 20px; line-height: 1; cursor: pointer; color: #123422; }
.gas-pax__btn:hover:not(:disabled) { background: #1D4B2C; color: #fff; }
.gas-pax__btn:disabled { opacity: .35; cursor: default; }
.gas-pax__count { min-width: 36px; text-align: center; font-weight: 700; font-size: 18px; }
.gas-pax__rate { margin: 0; font-size: 14px; color: #3b4a3e; }
.gas-pax__rate [data-gas-pp-rate] { font-weight: 700; color: #123422; }
.gas-pax__already { color: #6b776d; }
.gas-pax__tip { margin: 0; padding: 8px 12px; border-radius: 8px; background: #FDF1DC; color: #7a4a06; font-size: 13.5px; }
.gas-reserve__group-note { margin: 14px 0 0; padding: 12px 14px; border-radius: 10px; background: #E6EDE3; color: #1D4B2C; font-size: 13px; line-height: 1.5; }

/* Offline "Request to book" */
.gas-offline { display: grid; gap: 18px; }
.gas-offline__intro, .gas-offline__done { padding: 18px 20px; border-radius: 14px; background: #FBF8F1; border: 1px solid rgba(15, 28, 19, .1); border-top: 3px solid #F5A524; }
.gas-offline__intro p, .gas-offline__done p { margin: 0; line-height: 1.55; color: #3b4a3e; }
.gas-offline__title { font-weight: 700; font-size: 17px; color: #123422 !important; margin-bottom: 6px !important; }
.gas-offline__done { border-top-color: #1D4B2C; background: #E6EDE3; }
.gas-offline__done:focus { outline: none; }
.gas-offline__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gas-offline__grid label { display: grid; gap: 6px; font-size: 13.5px; font-weight: 600; color: #18241B; }
.gas-offline__grid input, .gas-offline__grid textarea { width: 100%; padding: 12px 14px; border: 1px solid rgba(15, 28, 19, .18); border-radius: 10px; font: inherit; font-weight: 400; background: #fff; box-sizing: border-box; }
.gas-offline__grid input:focus, .gas-offline__grid textarea:focus { outline: 2px solid #F5A524; outline-offset: 1px; }
.gas-offline__full { grid-column: 1 / -1; }
.gas-offline__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 4px; }
.gas-offline .gas-offline__submit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 14px 26px; border: 0; border-radius: 999px; background: #F5A524; color: #18241B; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; transition: background .2s, transform .2s; }
.gas-offline .gas-offline__submit:hover:not(:disabled) { background: #E8961A; transform: translateY(-1px); }
.gas-offline .gas-offline__submit:focus-visible { outline: 3px solid #1D4B2C; outline-offset: 2px; }
.gas-offline .gas-offline__submit:disabled { opacity: .6; cursor: wait; }
.gas-offline__wa { font-weight: 600; color: #1D4B2C; text-decoration: underline; text-underline-offset: 3px; }
.gas-offline__small { margin: 0; font-size: 12.5px; color: #6b776d; }
.gas-offline__error { margin: 0; padding: 10px 14px; border-radius: 10px; background: #FCE8E6; color: #8a1c14; font-size: 14px; }
.gas-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 640px) { .gas-offline__grid { grid-template-columns: 1fr; } .gas-offline__submit { width: 100%; } }
