/* ═══════════════════════════════════════════
   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);
	overflow: visible !important;
}

.book-calendar {
	overflow: visible;
}

/* ── 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,
.wpbs-date.wpbs-is-past .wpbs-date-number {
	color: var(--ink-mute) !important;
}

.wpbs-date.wpbs-is-past {
	opacity: .35 !important;
	pointer-events: none !important;
	cursor: default !important;
}

.wpbs-date.wpbs-is-past .wpbs-legend-item-icon div {
	background-color: #ccc !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;
	display: flex !important;
	align-items: center !important;
	gap: 20px !important;
	width: auto !important;
	max-width: 100% !important;
	margin-top: 16px !important;
	padding: 12px 18px !important;
	float: none !important;
	position: static !important;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 8px;
}

/* Force legend below calendar, not side */
.wpbs-calendars-wrapper.wpbs-legend-position-side {
	display: block !important;
}

.wpbs-calendars-wrapper.wpbs-legend-position-side .wpbs-legend {
	float: none !important;
	width: auto !important;
	position: static !important;
}

.wpbs-legend-item {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	white-space: nowrap !important;
}

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

.wpbs-legend-item-icon {
	width: 20px !important;
	height: 20px !important;
	border-radius: 5px !important;
	border: 1px solid rgba(255,255,255,.15) !important;
	flex-shrink: 0 !important;
}

/* Legend on dark background */
.book .wpbs-legend-item-name {
	color: rgba(251,248,240,.7) !important;
}

/* ── Form Layout ── */
.wpbs-main-wrapper,
.wpbs-container,
.wpbs-calendars-wrapper,
.wpbs-form,
.wpbs-form-container,
.wpbs-form-fields {
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Remove WPBS title (redundant with our own headings) */
.wpbs-container > h2 {
	display: none !important;
}

.wpbs-form-field {
	max-width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 8px 0 !important;
}

/* Side-by-side fields (Prénom / Nom) via CSS Grid */
.book .wpbs-form-fields,
.wpbs-form-fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 0 24px !important;
}

/* Left/right fields each take one column */
.wpbs-form-field.wpbs-field-layout-left {
	grid-column: 1 !important;
}

.wpbs-form-field.wpbs-field-layout-right {
	grid-column: 2 !important;
}

/* All other fields span full width */
.wpbs-form-field.wpbs-field-layout-default,
.wpbs-form-field-total,
.wpbs-form-field-payment_method,
.wpbs-form-field-product_field {
	grid-column: 1 / -1 !important;
}


/* ── 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: 1px solid rgba(255,255,255,.3) !important;
	color: var(--paper) !important;
}

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

.book .wpbs-form-field-input input::placeholder,
.book .wpbs-form-field-input textarea::placeholder {
	color: rgba(251,248,240,.3) !important;
}

.book .wpbs-form-field-label label,
.book .wpbs-form-field-label span {
	color: rgba(251,248,240,.6) !important;
	margin-bottom: 4px !important;
	display: block !important;
}

/* ── Pricing table ── */
.wpbs-total-price {
	background: rgba(255,255,255,.06) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
	border-radius: 12px !important;
	padding: 24px 28px !important;
	margin-top: 8px !important;
}

.wpbs-pricing-table {
	font-family: var(--f-body) !important;
	font-size: 15px !important;
	width: 100% !important;
	border-collapse: collapse !important;
}

.wpbs-pricing-table thead th {
	font-family: var(--f-mono) !important;
	font-size: 10px !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	padding-bottom: 12px !important;
	border-bottom: 1px solid rgba(255,255,255,.1) !important;
}

.wpbs-pricing-table td {
	padding: 10px 0 !important;
}

.wpbs-pricing-table tr + tr td {
	border-top: 1px solid rgba(255,255,255,.06) !important;
}

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

.book .wpbs-pricing-table .wpbs-price {
	color: var(--paper) !important;
	font-variant-numeric: tabular-nums !important;
}

.wpbs-line-item-total td {
	font-weight: 700 !important;
	padding-top: 14px !important;
	border-top: 1px solid rgba(255,255,255,.2) !important;
}

.wpbs-line-item-total .wpbs-price {
	color: #FFC9B5 !important;
	font-size: 20px !important;
	font-weight: 700 !important;
}

/* Acompte / Paiement final */
.wpbs-line-item-part-payments td {
	font-size: 13px !important;
	color: rgba(251,248,240,.55) !important;
}

.wpbs-line-item-part-payments .wpbs-price {
	color: rgba(251,248,240,.7) !important;
	font-size: 13px !important;
}

/* Hide the "× 15  0,00€" empty extra line */
.wpbs-pricing-table-extra[data-price="0"] {
	display: none !important;
}

/* Hide test "aaa" label */
.wpbs-form-field-total .wpbs-form-field-label span:empty,
.wpbs-form-field-total .wpbs-form-field-label {
	display: none !important;
}

/* Hide original total + payment in form (mirrored to sidebar via JS) */
.book .wpbs-form-container .wpbs-form-field-total,
.book .wpbs-form-container .wpbs-form-field-payment_method {
	position: absolute !important;
	left: -9999px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	height: 0 !important;
	overflow: hidden !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;
}

/* ── Sidebar Mirror (pricing recap) ── */
.book-sidebar-heading {
	font-family: var(--f-mono);
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(251,248,240,.55);
	font-weight: 600;
	margin-bottom: 20px;
}

.book-sidebar-total .wpbs-total-price {
	background: rgba(255,255,255,.06) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
	border-radius: 12px !important;
	padding: 24px 28px !important;
}

.book-sidebar-payment {
	margin-top: 24px;
}

/* Original submit stays in form (hidden) so WPBS can use it; clone in sidebar is visible */
.book .wpbs-form-container .wpbs-form-submit-button {
	position: absolute !important;
	left: -9999px !important;
	height: 0 !important;
	overflow: hidden !important;
}

.book-sidebar-submit .wpbs-form-submit-button {
	position: static !important;
	left: auto !important;
	height: auto !important;
	overflow: visible !important;
	margin-top: 28px !important;
}

/* ── Checkout / Payment Confirmation ── */
.book .wpbs-checkout,
.book .wpbs-payment-confirmation {
	background: var(--paper) !important;
	border-radius: 12px !important;
	padding: 32px !important;
	color: var(--ink) !important;
}

/* Hide re-rendered form fields on confirmation page */
.book .wpbs-payment-confirmation .wpbs-form-container .wpbs-form-fields,
.book .wpbs-payment-confirmation .wpbs-form-container .wpbs-form-submit-button {
	display: none !important;
}

/* Hide duplicate pricing table in confirmation (already in sidebar) */
.book .wpbs-payment-confirmation-inner > .wpbs-pricing-table {
	display: none !important;
}

/* Confirmation headings */
.book .wpbs-payment-confirmation > h2 {
	font-family: var(--f-display) !important;
	color: var(--ink) !important;
	font-size: 28px !important;
	margin-bottom: 20px !important;
}

.book .wpbs-payment-confirmation h4 {
	font-family: var(--f-mono) !important;
	font-size: 11px !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--ink-mute) !important;
	font-weight: 600 !important;
	margin-bottom: 12px !important;
}

.book .wpbs-payment-confirmation h4 a {
	color: var(--coral) !important;
	font-family: var(--f-mono) !important;
	font-size: 10px !important;
	text-decoration: none !important;
	margin-left: 12px !important;
}

.book .wpbs-payment-confirmation h4 a svg {
	width: 12px !important;
	height: 12px !important;
	vertical-align: -1px !important;
	margin-right: 4px !important;
}

/* Amount billed */
.book .wpbs-amount-billed {
	margin: 24px 0 !important;
	padding: 20px 0 !important;
	border-top: 1px solid var(--line) !important;
}

.book .wpbs-amount-billed-heading {
	font-family: var(--f-mono) !important;
	font-size: 10px !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--ink-mute) !important;
	font-weight: 600 !important;
	margin-bottom: 4px !important;
}

.book .wpbs-amount-billed-amount {
	font-family: var(--f-display) !important;
	font-size: 32px !important;
	color: var(--coral) !important;
	font-weight: 500 !important;
}

/* Stripe card button */
.book #wpbs-stripe-card-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !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;
	min-width: 200px !important;
	margin-top: 20px !important;
	box-shadow: 0 4px 16px rgba(228,97,82,.25) !important;
	transition: transform .25s ease, background .25s ease !important;
}

.book #wpbs-stripe-card-button:hover {
	background: var(--ink) !important;
	border-color: var(--ink) !important;
	transform: translateY(-2px) !important;
}

/* Test mode notice */
.book .wpbs-payment-test-mode-enabled {
	font-size: 12px !important;
	color: var(--ink-mute) !important;
	font-style: italic !important;
	margin: 12px 0 !important;
}

/* Powered by Stripe */
.book .wpbs-stripe-powered-by {
	margin-top: 16px !important;
	opacity: .4 !important;
}

/* ── Success / Post-payment confirmation ── */

/* Hide calendar + legend + sidebar when confirmation message is shown */
.book .wpbs-disable-selection {
	display: none !important;
}

.book .wpbs-disable-selection ~ .wpbs-legend {
	display: none !important;
}

/* When confirmation is shown, hide the sidebar and make full width */
.book:has(.wpbs-form-confirmation-message) .book-sidebar {
	display: none !important;
}

.book:has(.wpbs-form-confirmation-message) .book-grid {
	grid-template-columns: 1fr !important;
	max-width: 640px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Success message card */
.book .wpbs-form-confirmation-message {
	background: rgba(255,255,255,.06) !important;
	border: 1px solid rgba(255,255,255,.12) !important;
	border-radius: 16px !important;
	padding: 48px 40px !important;
	text-align: center !important;
	margin-top: 20px !important;
}

.book .wpbs-form-confirmation-message::before {
	content: "✓";
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(168,213,221,.15);
	color: #A8D5DD;
	font-size: 28px;
	font-weight: 700;
	margin: 0 auto 24px;
}

.book .wpbs-form-confirmation-message p:first-of-type {
	font-family: var(--f-display) !important;
	font-size: 28px !important;
	font-style: italic !important;
	color: var(--paper) !important;
	margin-bottom: 12px !important;
	line-height: 1.2 !important;
}

.book .wpbs-form-confirmation-message p:last-of-type {
	font-size: 15px !important;
	color: rgba(251,248,240,.55) !important;
	line-height: 1.6 !important;
}

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

.book .wpbs-checkout .wpbs-pricing-table .wpbs-price {
	color: var(--ink) !important;
}

.book .wpbs-checkout .wpbs-line-item-total .wpbs-price {
	color: var(--coral) !important;
}

.book .wpbs-checkout .wpbs-pricing-table tr + tr td {
	border-color: var(--line) !important;
}

.book .wpbs-checkout .wpbs-line-item-total td {
	border-color: var(--line) !important;
}

.book .wpbs-checkout .wpbs-line-item-part-payments td {
	color: var(--ink-mute) !important;
}

.book .wpbs-checkout .wpbs-line-item-part-payments .wpbs-price {
	color: var(--ink-soft) !important;
}

/* Stripe form on dark bg */
.book .wpbs-stripe-form,
.book .wpbs-payment-form {
	margin-top: 24px !important;
}

.book .wpbs-checkout button[type="submit"],
.book .wpbs-payment-confirmation button[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !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;
	min-width: 200px !important;
	box-shadow: 0 4px 16px rgba(228,97,82,.25) !important;
	transition: transform .25s ease, background .25s ease !important;
}

.book .wpbs-checkout button[type="submit"]:hover,
.book .wpbs-payment-confirmation button[type="submit"]:hover {
	background: var(--paper) !important;
	color: var(--ink) !important;
	border-color: var(--paper) !important;
	transform: translateY(-2px) !important;
}

/* ── Responsive ── */
@media (max-width: 600px) {
	.wpbs-form-fields {
		grid-template-columns: 1fr !important;
	}

	.wpbs-form-field.wpbs-field-layout-left,
	.wpbs-form-field.wpbs-field-layout-right {
		grid-column: 1 !important;
	}
}

@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;
	}
}
