/* ═══════════════════════════════════════════
   WPBS OVERRIDES — WP Booking System styling
   Based on actual WPBS markup (.wpbs-date, not .wpbs-day)
   ═══════════════════════════════════════════ */

/* ── Wrapper ── */
.wpbs-calendars-wrapper {
	font-family: var(--f-body);
}

/* ── Calendar Container ── */
.wpbs-calendar {
	background: var(--paper) !important;
	border: 1px solid var(--line);
	padding: 24px;
}

/* ── Month Header ── */
.wpbs-calendar-header-navigation {
	font-family: var(--f-display) !important;
	color: var(--sea) !important;
	font-weight: 400 !important;
}

.wpbs-select-container select {
	font-family: var(--f-display) !important;
	font-size: 16px !important;
	font-style: italic !important;
	color: var(--sea) !important;
	font-weight: 400 !important;
	border: 1px solid var(--line) !important;
	border-radius: 6px !important;
	padding: 6px 10px !important;
	background: var(--paper) !important;
	min-height: auto !important;
	height: auto !important;
}

/* ── Navigation Arrows ── */
.wpbs-calendar .wpbs-prev,
.wpbs-calendar .wpbs-next {
	appearance: none;
	background: transparent !important;
	border: 1px solid var(--line) !important;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 14px;
	color: var(--ink) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all .2s;
}

.wpbs-calendar .wpbs-prev:hover,
.wpbs-calendar .wpbs-next:hover {
	background: var(--coral) !important;
	border-color: var(--coral) !important;
	color: var(--paper) !important;
}

/* ── Day Names (thead) ── */
.wpbs-calendar thead th {
	font-family: var(--f-mono);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-mute) !important;
	font-weight: 600;
}

/* ── Day Cells ── */
.wpbs-date {
	border-radius: 6px;
	cursor: pointer;
	transition: all .15s;
}

.wpbs-date .wpbs-date-number {
	color: var(--ink) !important;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}

/* Available days (legend-item-1) */
.wpbs-date.wpbs-legend-item-1 .wpbs-date-number {
	color: var(--ink) !important;
}

.wpbs-date.wpbs-legend-item-1:hover {
	background: var(--coral) !important;
}

.wpbs-date.wpbs-legend-item-1:hover .wpbs-date-number {
	color: var(--paper) !important;
}

/* Booked / unavailable days (legend-item-2) */
.wpbs-date.wpbs-legend-item-2 {
	background: var(--bg-deep) !important;
	cursor: not-allowed;
}

.wpbs-date.wpbs-legend-item-2 .wpbs-date-number {
	color: var(--ink-mute) !important;
	text-decoration: line-through;
	text-decoration-color: rgba(0,0,0,.2);
}

/* Selected */
.wpbs-date.wpbs-selected {
	background: var(--sea) !important;
}

.wpbs-date.wpbs-selected .wpbs-date-number {
	color: var(--paper) !important;
}

/* In range */
.wpbs-date.wpbs-in-range {
	background: rgba(27,90,107,.18) !important;
}

/* Past days */
.wpbs-date.wpbs-past .wpbs-date-number {
	color: var(--ink-mute) !important;
}

/* Gap days (empty cells) */
.wpbs-date.wpbs-gap {
	cursor: default;
}

/* ── Legend ── */
.wpbs-legend {
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: .08em;
}

.wpbs-legend-item-name {
	color: var(--ink-soft) !important;
}

.wpbs-legend-item-icon {
	width: 12px;
	height: 12px;
	border-radius: 3px;
}

/* ── Form Elements ── */
.wpbs-form-field-input input[type="text"],
.wpbs-form-field-input input[type="email"],
.wpbs-form-field-input input[type="tel"],
.wpbs-form-field-input input[type="number"],
.wpbs-form-field-input textarea,
.wpbs-form-field-input select {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--line) !important;
	padding: 14px 0 !important;
	font-family: var(--f-body) !important;
	font-size: 16px !important;
	color: var(--ink) !important;
	outline: none !important;
	transition: border-color .2s;
	width: 100% !important;
	box-sizing: border-box;
	min-height: 48px !important;
	border-radius: 0 !important;
}

.wpbs-form-field-input textarea {
	min-height: 100px !important;
	resize: vertical;
}

.wpbs-form-field-input input:focus,
.wpbs-form-field-input textarea:focus,
.wpbs-form-field-input select:focus {
	border-color: var(--coral) !important;
}

.wpbs-form-field-label label,
.wpbs-form-field-label span {
	font-family: var(--f-mono) !important;
	font-size: 10px !important;
	letter-spacing: .18em !important;
	text-transform: uppercase !important;
	color: var(--ink-mute) !important;
	font-weight: 600 !important;
}

.wpbs-field-required-asterisk {
	color: var(--coral) !important;
}

/* ── Dark background context (booking section) ── */
.book .wpbs-form-field-input input[type="text"],
.book .wpbs-form-field-input input[type="email"],
.book .wpbs-form-field-input input[type="tel"],
.book .wpbs-form-field-input input[type="number"],
.book .wpbs-form-field-input textarea,
.book .wpbs-form-field-input select {
	border-bottom-color: rgba(255,255,255,.25) !important;
	color: var(--paper) !important;
}

.book .wpbs-form-field-label label,
.book .wpbs-form-field-label span {
	color: rgba(251,248,240,.55) !important;
}

/* ── Pricing table ── */
.wpbs-pricing-table {
	font-family: var(--f-body) !important;
	font-size: 14px !important;
}

.book .wpbs-pricing-table,
.book .wpbs-pricing-table td,
.book .wpbs-pricing-table th {
	color: var(--paper) !important;
}

.wpbs-line-item-total td {
	font-weight: 700 !important;
}

/* ── Payment method radios ── */
.wpbs-payment-method-label {
	font-family: var(--f-body) !important;
	font-size: 14px !important;
}

.book .wpbs-payment-method-label {
	color: var(--paper) !important;
}

.wpbs-payment-method-description {
	font-size: 12px !important;
	color: var(--ink-mute) !important;
}

.book .wpbs-payment-method-description {
	color: rgba(251,248,240,.45) !important;
}

/* Submit button */
.wpbs-form-submit-button button,
.wpbs-form-submit-button input[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 16px 36px !important;
	border-radius: 999px !important;
	font-family: var(--f-body) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	background: var(--coral) !important;
	color: var(--paper) !important;
	border: 2px solid var(--coral) !important;
	cursor: pointer !important;
	transition: transform .25s ease, background .25s ease, border-color .25s ease !important;
	min-height: auto !important;
	min-width: 200px !important;
	box-shadow: 0 4px 16px rgba(228,97,82,.25) !important;
}

.wpbs-form-submit-button button:hover,
.wpbs-form-submit-button input[type="submit"]:hover {
	background: var(--paper) !important;
	color: var(--ink) !important;
	border-color: var(--paper) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 6px 24px rgba(228,97,82,.35) !important;
}

/* ── Responsive ── */
@media (max-width: 760px) {
	.wpbs-calendar {
		padding: 12px !important;
	}

	.wpbs-date .wpbs-date-number {
		font-size: 11px !important;
	}

	.wpbs-calendar thead th {
		font-size: 9px !important;
		letter-spacing: .08em !important;
	}

	.wpbs-form-submit-button button,
	.wpbs-form-submit-button input[type="submit"] {
		min-width: auto !important;
		width: 100% !important;
	}
}

@media (max-width: 480px) {
	.wpbs-calendar {
		padding: 8px !important;
	}

	.wpbs-prev,
	.wpbs-next {
		width: 28px !important;
		height: 28px !important;
		font-size: 12px !important;
	}

	.wpbs-select-container select {
		font-size: 14px !important;
	}
}
