/**
 * Cart, HOLD countdown and separated booking flow styles (M3).
 *
 * Kept deliberately small: it extends the main abm-frontend design language.
 */

/* Cart chip (shortcode abm_cart). */
.abm-cart-chip {
	display: inline-block;
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 90;
	background: #1f6f5f;
	color: #fff;
	border-radius: 999px;
	padding: .5rem .9rem;
	box-shadow: 0 4px 16px rgba(0, 0, 0, .22);
}

.abm-cart-chip a {
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.abm-cart-chip .abm-cart-count {
	display: inline-block;
	min-width: 1.3rem;
	margin-left: .35rem;
	padding: 0 .35rem;
	border-radius: 999px;
	background: #ffc857;
	color: #123;
	font-size: .78rem;
	text-align: center;
}

.abm-cart-chip .abm-cart-clear {
	margin-left: .5rem;
	border: 0;
	background: transparent;
	color: #fff;
	font-size: 1.05rem;
	line-height: 1;
	cursor: pointer;
}

/* Add-to-cart panel inside the property booking form. */
 .abm-cart-field {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: center;
	padding: .6rem 0;
	min-width: 0;
}

/* Les messages et suggestions de dates doivent occuper toute la largeur
   du panneau, plutôt que de se placer dans une colonne étroite à côté du bouton. */
.abm-cart-field > .abm-cart-add-note,
.abm-cart-field > .abm-cart-alternatives {
	box-sizing: border-box;
	flex: 0 0 100%;
	width: 100%;
	min-width: 0;
}
.abm-cart-field > .abm-cart-alternatives {
	max-width: 100%;
}
.abm-cart-alternative-card {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.abm-cart-alternative-body {
	min-width: 0;
	overflow-wrap: anywhere;
}
.abm-cart-alternative-body strong {
	white-space: normal;
	overflow-wrap: anywhere;
}

.abm-cart-field[hidden] {
	display: none;
}

.abm-cart-add-note {
	font-size: .9rem;
	color: #1f6f5f;
}

/* Checkout wizard */
.abm-checkout {
	max-width: 860px;
	margin: 0 auto;
}

.abm-checkout-title {
	margin: 0 0 1rem;
	font-size: 1.4rem;
}

.abm-checkout-steps {
	margin-bottom: 1.4rem;
}

.abm-checkout-steps ol {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.abm-checkout-steps li {
	display: flex;
	align-items: center;
	gap: .4rem;
	padding: .45rem .85rem;
	border-radius: 999px;
	background: #eef2f1;
	color: #68748a;
	font-size: .85rem;
	font-weight: 600;
}

.abm-checkout-steps li span {
	display: inline-grid;
	place-items: center;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: #cfd8d5;
	color: #fff;
	font-size: .78rem;
}

.abm-checkout-steps li.is-active,
.abm-checkout-steps li.is-active span {
	background: #1f6f5f;
	color: #fff;
}

.abm-checkout-pane {
	animation: abm-checkout-fade .2s ease-out;
}

@keyframes abm-checkout-fade {
	from { opacity: .35; transform: translateY(4px); }
	to   { opacity: 1; transform: none; }
}

.abm-checkout-summary-card {
	background: #f4f7f6;
	border: 1px solid #e2e9e7;
	border-radius: 10px;
	padding: .8rem 1rem;
	margin-bottom: 1rem;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.25rem;
	align-items: center;
}

.abm-checkout-property {
	font-weight: 700;
}

.abm-checkout-dates,
.abm-checkout-expiry {
	color: #4c5866;
	font-size: .92rem;
}

.abm-checkout-expiry strong {
	color: #b45309;
	font-variant-numeric: tabular-nums;
}

.abm-checkout-rooms {
	border: 1px solid #e2e9e7;
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 1rem;
}

.abm-checkout-room-row {
	display: grid;
	grid-template-columns: 1fr auto auto auto;
	gap: .75rem;
	align-items: center;
	padding: .8rem 1rem;
	border-bottom: 1px solid #eef2f1;
}

.abm-checkout-room-row:last-child {
	border-bottom: 0;
}

.abm-checkout-room-name {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	font-size: .85rem;
	color: #68748a;
}

.abm-checkout-qty {
	width: 4.4rem;
	padding: .35rem .45rem;
	border: 1px solid #cfd8d5;
	border-radius: 8px;
}

.abm-checkout-money {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.abm-checkout-remove {
	border: 0;
	background: transparent;
	color: #b45309;
	cursor: pointer;
	text-decoration: underline;
}

.abm-checkout-add-room {
	border: 1px dashed #cfd8d5;
	border-radius: 10px;
	padding: .6rem 1rem;
	margin-bottom: 1rem;
}

.abm-checkout-add-room summary {
	cursor: pointer;
	font-weight: 600;
	margin-bottom: .55rem;
}

.abm-checkout-add-room select,
.abm-checkout-add-layout input {
	padding: .4rem .5rem;
	border: 1px solid #cfd8d5;
	border-radius: 8px;
	margin-right: .6rem;
	margin-bottom: .5rem;
	max-width: 100%;
}

.abm-checkout-totals {
	border-top: 1px solid #e2e9e7;
	margin-top: .6rem;
	padding-top: .6rem;
}

.abm-checkout-total-row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .25rem 0;
}

.abm-checkout-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .75rem;
	margin-top: 1.1rem;
}

.abm-checkout-link {
	border: 0;
	background: transparent;
	color: #68748a;
	text-decoration: underline;
	cursor: pointer;
}

.abm-checkout-guests {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: .9rem;
}

.abm-checkout-guest {
	display: flex;
	align-items: center;
	gap: .7rem;
	font-weight: 600;
}

.abm-checkout-stepper {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border: 1px solid #cfd8d5;
	border-radius: 999px;
	padding: .2rem .4rem;
}

.abm-checkout-stepper button {
	border: 0;
	background: transparent;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	color: #1f6f5f;
	width: 1.6rem;
	height: 1.6rem;
}

.abm-checkout-stepper strong {
	min-width: 1.6rem;
	text-align: center;
}

.abm-checkout-participants .abm-participant-row {
	display: grid;
	grid-template-columns: auto 1fr 1fr;
	gap: .5rem;
	align-items: center;
	padding: .45rem 0;
}

.abm-checkout-participants .abm-participant-row input {
	padding: .4rem .5rem;
	border: 1px solid #cfd8d5;
	border-radius: 8px;
	width: 100%;
}

.abm-checkout-service-card input {
	accent-color: #1f6f5f;
}

.abm-checkout-payment {
	margin-bottom: .8rem;
}

.abm-checkout-success {
	text-align: center;
	padding: 1.25rem;
}

.abm-checkout-success h3 {
	color: #1f6f5f;
}

.abm-checkout-success ul {
	list-style: none;
	padding: 0;
	margin: .8rem 0;
}

.abm-checkout-success .abm-button {
	display: inline-block;
	margin-top: .6rem;
}

.abm-checkout-busy {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: grid;
	place-items: center;
	background: rgba(255, 255, 255, .78);
	color: #1f2937;
	font-weight: 600;
}

.abm-checkout-empty {
	background: #f4f7f6;
	border: 1px dashed #cfd8d5;
	border-radius: 10px;
	padding: 2rem;
	text-align: center;
	color: #4c5866;
}

@media (max-width: 640px) {
	.abm-checkout-room-row {
		grid-template-columns: 1fr auto;
	}
}
/* 1.0.8 — separated booking journey */
.abm-checkout-steps-6 li.is-active,
.abm-checkout-steps-6 li.is-active span { background: #1f6f5f; color: #fff; }

.abm-checkout-help { margin: .35rem 0 1rem; color: #68748a; }
.abm-checkout-guests-line { margin-top: .35rem; color: #52606d; }

.abm-room-choice-list {
	border: 0;
	padding: 0;
	margin: 1rem 0;
	display: grid;
	gap: .65rem;
}
.abm-room-choice-list legend { font-weight: 700; margin-bottom: .45rem; }
.abm-room-choice {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: .75rem;
	align-items: center;
	padding: .85rem 1rem;
	border: 1px solid #dfe7e4;
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
}
.abm-room-choice.is-selected { border-color: #1f6f5f; box-shadow: 0 0 0 2px rgba(31,111,95,.1); }
.abm-room-choice input { margin: 0; }
.abm-room-choice-body { display: grid; gap: .15rem; }
.abm-room-choice-body small,
.abm-room-choice-price small { color: #68748a; }
.abm-room-choice-price { text-align: right; display: grid; gap: .15rem; }

.abm-global-summary { display: grid; gap: .9rem; }
.abm-summary-section { border: 1px solid #e3e9e7; border-radius: 14px; padding: 1rem; background: #fff; }
.abm-summary-section h4 { margin: 0 0 .55rem; }
.abm-summary-section p { margin: 0; color: #52606d; }
.abm-summary-row { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; }
.abm-summary-coupon { margin: 0; }
.abm-checkout-total-row.is-grand-total { font-size: 1.15rem; padding-top: .75rem; margin-top: .35rem; border-top: 1px solid #dfe7e4; }
.abm-booking-confirmation { text-align: center; padding: 2rem 1rem; }
.abm-confirmation-icon { display: grid; place-items: center; width: 4rem; height: 4rem; margin: 0 auto 1rem; border-radius: 50%; background: #e8f4ef; color: #1f6f5f; font-size: 2rem; font-weight: 700; }
.abm-booking-confirmation ul { text-align: left; max-width: 32rem; margin: 1rem auto; }

@media (max-width: 640px) {
	.abm-checkout-steps-6 ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.abm-room-choice { grid-template-columns: auto 1fr; }
	.abm-room-choice-price { grid-column: 2; text-align: left; }
	.abm-summary-row { align-items: flex-start; }
}

/* ------------------------------------------------------------------
 * 1.0.34 — L'attribut HTML « hidden » doit toujours l'emporter.
 * Les règles « display: grid / flex / inline-block » ci-dessus écrasaient
 * la feuille de style du navigateur : le voile « busy » restait affiché
 * plein écran après le premier chargement et interceptait tous les clics
 * (« tout bloque »). Le panier flottant et la note d'ajout étaient
 * également visibles alors qu'ils devaient être masqués.
 * ------------------------------------------------------------------ */
.abm-checkout-busy[hidden],
.abm-checkout-empty[hidden],
.abm-cart-chip[hidden],
.abm-cart-field[hidden],
.abm-cart-add-note[hidden],
.abm-mobile-operator[hidden],
[data-abm-checkout] [hidden] {
	display: none !important;
}

.abm-checkout-busy:not([hidden]) {
	pointer-events: auto;
}

.abm-cart-add-note.is-error {
	color: #b42318;
	font-weight: 600;
}

.abm-cart-add-note.is-error::before {
	content: "⚠ ";
}

.abm-checkout-next-steps {
	margin: 1rem 0;
	padding: 1rem 1.1rem;
	border-radius: 10px;
	background: #eef6f4;
	border: 1px solid #cfe3de;
	text-align: left;
}

.abm-checkout-next-steps p {
	margin: 0 0 .5rem;
}

.abm-checkout-error {
	margin: .75rem 0;
}


/* -------------------------------------------------------------------------
 * 1.0.39 — Professional booking journey UI
 * A restrained, card-based checkout from Options through Confirmation.
 * ------------------------------------------------------------------------- */
.abm-checkout {
	box-sizing: border-box;
	max-width: 1040px;
	margin: 0 auto;
	padding: 8px 0 42px;
	color: var(--abm-ink, #15211f);
}

.abm-checkout *,
.abm-checkout *::before,
.abm-checkout *::after { box-sizing: border-box; }

.abm-checkout-title {
	margin: 0 0 22px;
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.15;
	color: var(--abm-ink, #15211f);
}

.abm-checkout-steps {
	margin: 0 0 20px;
}

.abm-checkout-steps ol {
	position: relative;
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.abm-checkout-steps li {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-width: 0;
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 12px;
	background: #fff;
	color: var(--abm-muted, #66736f);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}

.abm-checkout-steps li span {
	flex: 0 0 auto;
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #edf1f0;
	color: #65726e;
	font-size: 11px;
	font-weight: 800;
}

.abm-checkout-steps li.is-active {
	border-color: var(--abm-primary, #0D47A1);
	background: var(--abm-primary-soft, #EAF2FF);
	color: var(--abm-primary-dark, #08306B);
	box-shadow: 0 2px 8px rgba(13, 71, 161, .08);
}

.abm-checkout-steps li.is-active span {
	background: var(--abm-primary, #0D47A1);
	color: #fff;
}

.abm-checkout-pane {
	min-height: 120px;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(15, 35, 31, .06);
	animation: abm-checkout-fade .2s ease-out;
}

.abm-checkout-pane > h3,
.abm-checkout-pane .abm-checkout-services > h3,
.abm-global-summary > h3 {
	margin: 0 0 6px;
	color: var(--abm-ink, #15211f);
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -.015em;
}

.abm-checkout-help {
	margin: 0 0 18px;
	color: var(--abm-muted, #66736f);
	font-size: 13px;
	line-height: 1.55;
}

/* Stay context card */
.abm-checkout-summary-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin: 0 0 20px;
	padding: 16px 18px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 14px;
	background: #f8faf9;
}

.abm-checkout-summary-main { min-width: 0; }
.abm-checkout-summary-kicker {
	margin-bottom: 4px;
	color: var(--abm-muted, #66736f);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}
.abm-checkout-property {
	overflow: hidden;
	color: var(--abm-ink, #15211f);
	font-size: 16px;
	font-weight: 800;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.abm-checkout-dates {
	margin-top: 4px;
	color: var(--abm-muted, #66736f);
	font-size: 12px;
}
.abm-checkout-summary-meta {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
}
.abm-checkout-meta-item,
.abm-checkout-expiry {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 6px 10px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 999px;
	background: #fff;
	color: #52605d;
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}
.abm-checkout-expiry { border-color: #f0dfbf; background: #fffaf0; color: #8a5a08; }
.abm-checkout-expiry strong { margin-left: 4px; font-variant-numeric: tabular-nums; color: #7a4e00; }

/* Options / services */
.abm-checkout-services { width: 100%; }
.abm-service-selector {
	margin: 0;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 14px;
	overflow: hidden;
}
.abm-service-selector > summary {
	padding: 15px 17px;
	background: #f8faf9;
	color: var(--abm-ink, #15211f);
	font-size: 14px;
	font-weight: 800;
}
.abm-service-list { gap: 10px; padding: 12px; }
.abm-service-card {
	min-height: 72px;
	border-color: var(--abm-line, #e3e9e7);
	border-radius: 12px;
	background: #fff;
	padding: 12px 14px;
	transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.abm-service-card:hover { border-color: #cbd7d3; box-shadow: 0 4px 14px rgba(15,35,31,.05); }
.abm-service-card:has(input[type="checkbox"]:checked) { border-color: var(--abm-primary, #0D47A1); background: #fbfdff; box-shadow: 0 0 0 2px rgba(13,71,161,.06); }
.abm-service-card > input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--abm-primary, #0D47A1); }
.abm-service-card strong { color: var(--abm-ink, #15211f); font-size: 13px; }
.abm-service-card small { color: var(--abm-muted, #66736f); font-size: 11px; line-height: 1.35; }
.abm-service-card > b { color: var(--abm-ink, #15211f); font-size: 13px; white-space: nowrap; }
.abm-service-card [type="number"] {
	min-height: 38px;
	width: 62px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 9px;
	padding: 7px 8px;
}

/* Form fields */
.abm-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0 0 20px;
}
.abm-form-grid label,
.abm-message-field { display: grid; gap: 6px; }
.abm-form-grid label > span,
.abm-message-field > span {
	color: #596763;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .02em;
}
.abm-form-grid input,
.abm-message-field textarea,
.abm-mobile-operator select,
.abm-coupon-row input {
	width: 100%;
	min-height: 44px;
	border: 1px solid #d6dfdc;
	border-radius: 10px;
	background: #fff;
	color: var(--abm-ink, #15211f);
	font: inherit;
	font-size: 14px;
	padding: 9px 12px;
	box-shadow: none;
}
.abm-form-grid input:focus,
.abm-message-field textarea:focus,
.abm-mobile-operator select:focus,
.abm-coupon-row input:focus {
	border-color: var(--abm-primary, #0D47A1);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(13,71,161,.09);
}
.abm-message-field { margin-top: 2px; }
.abm-message-field textarea { min-height: 94px; resize: vertical; }

/* Participants */
.abm-checkout-participants { margin-bottom: 18px; }
.abm-checkout-participants .abm-participant-row {
	grid-template-columns: 145px repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-bottom: 8px;
	padding: 11px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 12px;
	background: #fafcfb;
}
.abm-checkout-participants .abm-participant-row > strong { font-size: 12px; color: var(--abm-ink, #15211f); }
.abm-checkout-participants .abm-participant-row input { min-height: 40px; border-radius: 9px; border-color: #d6dfdc; padding: 8px 10px; }

/* Recap cards */
.abm-global-summary { display: grid; gap: 12px; }
.abm-summary-section {
	margin: 0;
	padding: 17px 18px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 14px;
	background: #fff;
}
.abm-summary-section h4 {
	margin: 0 0 12px;
	color: var(--abm-ink, #15211f);
	font-size: 14px;
	font-weight: 800;
}
.abm-summary-section p { margin: 0; color: #5b6965; font-size: 13px; }
.abm-summary-row {
	min-height: 38px;
	align-items: center;
	padding: 8px 0;
	border-bottom: 1px solid #eef2f1;
	font-size: 13px;
	color: #4d5b57;
}
.abm-summary-row:last-child { border-bottom: 0; padding-bottom: 0; }
.abm-summary-row strong { color: var(--abm-ink, #15211f); font-size: 13px; white-space: nowrap; }

.abm-coupon-box {
	margin: 0;
	padding: 16px 18px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 14px;
	background: #f8faf9;
}
.abm-coupon-box label { display: block; margin-bottom: 7px; color: var(--abm-ink, #15211f); font-size: 12px; font-weight: 800; }
.abm-coupon-row { display: flex; gap: 8px; }
.abm-coupon-row input { flex: 1 1 auto; min-width: 0; }
.abm-coupon-row .abm-button { flex: 0 0 auto; min-height: 44px; padding: 9px 18px; }
.abm-coupon-message { margin: 7px 0 0; color: var(--abm-success, #137a43); font-size: 11px; }

.abm-checkout-totals {
	margin: 2px 0 0;
	padding: 4px 18px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 14px;
	background: #fff;
}
.abm-checkout-total-row {
	min-height: 42px;
	align-items: center;
	padding: 9px 0;
	border-bottom: 1px solid #eef2f1;
	color: #5b6965;
	font-size: 13px;
}
.abm-checkout-total-row strong { color: var(--abm-ink, #15211f); font-size: 13px; white-space: nowrap; }
.abm-checkout-total-row:last-child { border-bottom: 0; }
.abm-checkout-total-row.is-grand-total {
	margin: 4px -18px 0;
	padding: 14px 18px;
	border-top: 1px solid #dfe7e4;
	border-bottom: 0;
	border-radius: 0 0 14px 14px;
	background: var(--abm-primary-soft, #EAF2FF);
	color: var(--abm-primary-dark, #08306B);
	font-size: 15px;
	font-weight: 800;
}
.abm-checkout-total-row.is-grand-total strong { color: var(--abm-primary-dark, #08306B); font-size: 18px; }

/* Payment */
.abm-checkout-payment { margin: 0 0 14px; }
.abm-payment-methods {
	padding: 16px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 14px;
	background: #fff;
}
.abm-payment-methods legend { color: var(--abm-ink, #15211f); font-size: 15px; font-weight: 800; }
.abm-payment-methods > p { margin: 4px 0 12px; color: var(--abm-muted, #66736f); }
.abm-payment-choice {
	min-height: 58px;
	margin: 0 0 8px;
	padding: 11px 13px;
	border-radius: 11px;
	background: #fff;
}
.abm-payment-choice:last-of-type { margin-bottom: 0; }
.abm-payment-choice:hover { border-color: #cbd7d3; }
.abm-payment-choice:has(input:checked) { border-color: var(--abm-primary, #0D47A1); background: var(--abm-primary-soft, #EAF2FF); box-shadow: 0 0 0 2px rgba(13,71,161,.05); }
.abm-mobile-operator { margin: 10px 0 0; padding: 12px; border: 1px solid var(--abm-line, #e3e9e7); border-radius: 11px; background: #f8faf9; }
.abm-mobile-operator label { display: grid; gap: 6px; }
.abm-mobile-operator label > span { margin: 0; color: #596763; font-size: 11px; font-weight: 800; text-transform: none; }

.abm-terms {
	align-items: flex-start;
	margin: 16px 0 0;
	padding: 12px 14px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 11px;
	background: #fafcfb;
	color: #596763;
	font-size: 11px;
	line-height: 1.5;
}
.abm-terms input { width: 17px; height: 17px; margin-top: 1px; accent-color: var(--abm-primary, #0D47A1); }

/* Navigation */
.abm-checkout-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid #eef2f1;
}
.abm-checkout-actions .abm-button {
	min-width: 210px;
	min-height: 46px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 800;
}
.abm-checkout-link {
	min-height: 42px;
	padding: 8px 4px;
	border: 0;
	background: transparent;
	color: #66736f;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}
.abm-checkout-link:hover { color: var(--abm-primary, #0D47A1); text-decoration: underline; }

/* Confirmation */
.abm-booking-confirmation {
	max-width: 680px;
	margin: 4px auto;
	padding: 30px 22px;
	text-align: center;
}
.abm-confirmation-icon {
	width: 58px;
	height: 58px;
	margin: 0 auto 15px;
	border: 1px solid #bfe6d1;
	background: #edf9f2;
	color: var(--abm-success, #137a43);
	font-size: 25px;
	box-shadow: 0 6px 18px rgba(19,122,67,.08);
}
.abm-booking-confirmation h3 { margin: 0 0 8px; color: var(--abm-ink, #15211f); font-size: 24px; }
.abm-booking-confirmation > p { margin: 6px 0; color: #5b6965; font-size: 13px; }
.abm-booking-confirmation > p strong { color: var(--abm-ink, #15211f); }
.abm-checkout-next-steps {
	margin: 18px auto;
	padding: 13px 15px;
	border: 1px solid #d9e6f5;
	border-radius: 12px;
	background: #f7faff;
	color: #3f556f;
	font-size: 12px;
	line-height: 1.55;
	text-align: left;
}
.abm-checkout-next-steps p { margin: 0; }
.abm-booking-confirmation ul {
	max-width: 500px;
	margin: 14px auto;
	padding: 0;
	list-style: none;
	text-align: left;
}
.abm-booking-confirmation li {
	padding: 10px 12px;
	border: 1px solid var(--abm-line, #e3e9e7);
	border-radius: 10px;
	margin-bottom: 7px;
	background: #fafcfb;
	font-size: 12px;
}
.abm-booking-confirmation li a { color: var(--abm-primary, #0D47A1); font-weight: 800; }
.abm-booking-confirmation .abm-button { min-width: 210px; min-height: 44px; border-radius: 10px; }

.abm-checkout-empty {
	margin-top: 14px;
	padding: 34px 20px;
	border: 1px dashed #cbd7d3;
	border-radius: 14px;
	background: #f8faf9;
	color: #596763;
	text-align: center;
}

@media (max-width: 800px) {
	.abm-checkout-steps ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.abm-checkout-summary-card { align-items: flex-start; flex-direction: column; }
	.abm-checkout-summary-meta { justify-content: flex-start; }
	.abm-checkout-participants .abm-participant-row { grid-template-columns: 1fr 1fr; }
	.abm-checkout-participants .abm-participant-row > strong { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
	.abm-checkout { padding-bottom: 28px; }
	.abm-checkout-title { margin-bottom: 16px; font-size: 24px; }
	.abm-checkout-steps ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.abm-checkout-steps li { justify-content: flex-start; text-align: left; }
	.abm-checkout-pane { padding: 16px; border-radius: 14px; }
	.abm-form-grid { grid-template-columns: 1fr; gap: 11px; }
	.abm-service-card { grid-template-columns: auto minmax(0, 1fr) 58px; }
	.abm-service-card > b { grid-column: 2; }
	.abm-coupon-row { flex-direction: column; }
	.abm-coupon-row .abm-button { width: 100%; }
	.abm-checkout-actions { gap: 10px; }
	.abm-checkout-actions .abm-button { min-width: 0; flex: 1 1 auto; }
	.abm-checkout-link { flex: 0 0 auto; }
	.abm-checkout-total-row.is-grand-total strong { font-size: 16px; }
}

/* Moyens de paiement : état vide quand aucune passerelle n'est configurée */
.abm-payment-empty { padding: 14px 16px; border: 1px dashed #cbd7d3; border-radius: 12px; background: #f7faf9; color: #4a5a55; font-size: .95em; margin: 0; }
.abm-payment-choice[hidden] { display: none !important; }
