/* B31 Cartes cadeaux — préfixe .b31gc pour ne rien toucher d'autre. */
.b31gc-page, .b31gc-fields, .b31gc-redeem, .b31gc-check {
	--b31gc-ink: #111; --b31gc-paper: #fff; --b31gc-soft: #f3efe8; --b31gc-muted: #6b6b6b; --b31gc-accent: #f39000;
	--b31gc-display: "Big Shoulder Display", "Big Shoulders Display", "Oswald", Impact, sans-serif;
	box-sizing: border-box;
}
.b31gc-page *, .b31gc-fields * { box-sizing: border-box; }
.b31gc-page [hidden], .b31gc-fields [hidden], .b31gc-redeem [hidden] { display: none !important; }

.b31gc-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: 40px; align-items: start; }
.b31gc-col-preview { position: sticky; top: 24px; background: var(--b31gc-soft); padding: 24px; border: 2px solid var(--b31gc-ink); }
.b31gc-preview-label { margin: 0 0 12px; font-family: var(--b31gc-display); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 15px; color: var(--b31gc-muted); }

.b31gc-group { border: 0; border-top: 2px solid var(--b31gc-ink); margin: 0 0 22px; padding: 14px 0 0; min-width: 0; }
.b31gc-group legend { font-family: var(--b31gc-display); font-weight: 800; text-transform: uppercase; font-size: 26px; line-height: 1; padding: 0 10px 0 0; }
.b31gc-group p { margin: 0 0 12px; }
.b31gc-group label { display: block; font-size: 15px; margin-bottom: 4px; }
.b31gc-group input[type=text], .b31gc-group input[type=email], .b31gc-group input[type=date], .b31gc-group input[type=number], .b31gc-group textarea {
	width: 100%; border: 2px solid var(--b31gc-ink); border-radius: 0; padding: 11px 12px; font: inherit; font-size: 17px; background: var(--b31gc-paper); color: var(--b31gc-ink);
}
.b31gc-group input:focus, .b31gc-group textarea:focus { outline: 3px solid var(--b31gc-accent); outline-offset: 0; }

.b31gc-amounts { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 12px; }
.b31gc-pill { margin: 0 !important; cursor: pointer; }
.b31gc-pill input, .b31gc-mode input { position: absolute; opacity: 0; pointer-events: none; }
.b31gc-pill span { display: inline-block; border: 2px solid var(--b31gc-ink); padding: 10px 16px; font-family: var(--b31gc-display); font-weight: 800; font-size: 24px; line-height: 1; text-transform: uppercase; }
.b31gc-pill input:checked + span { background: var(--b31gc-ink); color: var(--b31gc-paper); }
.b31gc-pill input:focus-visible + span, .b31gc-mode input:focus-visible + span { outline: 3px solid var(--b31gc-accent); }
.b31gc-euro { display: flex; align-items: center; gap: 8px; max-width: 200px; }
.b31gc-euro span { font-size: 20px; font-weight: 700; }

.b31gc-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 6px; }
.b31gc-mode { margin: 0 !important; cursor: pointer; }
.b31gc-mode span { display: block; height: 100%; border: 2px solid var(--b31gc-ink); padding: 12px 14px; }
.b31gc-mode strong { display: block; font-family: var(--b31gc-display); font-weight: 800; text-transform: uppercase; font-size: 19px; line-height: 1.1; }
.b31gc-mode small { display: block; font-size: 14px; color: var(--b31gc-muted); margin-top: 4px; }
.b31gc-mode input:checked + span { background: var(--b31gc-ink); color: var(--b31gc-paper); }
.b31gc-mode input:checked + span small { color: #cfcfcf; }

.b31gc-submit { width: 100%; border: 2px solid var(--b31gc-ink); background: var(--b31gc-ink); color: var(--b31gc-paper); font-family: var(--b31gc-display); font-weight: 800; text-transform: uppercase; font-size: 22px; padding: 16px; cursor: pointer; }
.b31gc-submit:hover, .b31gc-submit:focus-visible { background: var(--b31gc-paper); color: var(--b31gc-ink); }
.b31gc-small { font-size: 14px; color: var(--b31gc-muted); margin: 10px 0 0; }

/* Cart / checkout field */
.b31gc-redeem { margin: 18px 0; padding: 14px 16px; border: 2px dashed var(--b31gc-ink); clear: both; }
.b31gc-redeem label, .b31gc-check label { display: block; font-weight: 700; margin-bottom: 6px; }
.b31gc-redeem-row { display: flex; gap: 8px; flex-wrap: wrap; }
.b31gc-redeem-row input { flex: 1 1 180px; min-width: 0; border: 2px solid var(--b31gc-ink); padding: 10px 12px; font: inherit; letter-spacing: .08em; text-transform: uppercase; border-radius: 0; }
.b31gc-redeem-row button { border: 2px solid var(--b31gc-ink); background: var(--b31gc-ink); color: var(--b31gc-paper); padding: 10px 16px; font-weight: 700; cursor: pointer; border-radius: 0; }
.b31gc-redeem-msg { margin: 8px 0 0; font-size: 15px; }
.b31gc-redeem-msg.is-ok { color: #1d7a3a; }
.b31gc-redeem-msg.is-error { color: #b11f1b; }
.b31gc-row .b31gc-code { font-family: "Courier New", monospace; font-size: .9em; }
.b31gc-row .b31gc-left { display: block; font-size: 13px; color: #6b6b6b; }
.b31gc-row .b31gc-remove { font-size: 13px; }
.b31gc-qty { display: inline-block; min-width: 2em; text-align: center; font-weight: 600; }

.b31gc-check { max-width: 480px; }
.b31gc-balance { margin-top: 16px; border: 2px solid #111; padding: 16px; max-width: 480px; }
.b31gc-balance p { margin: 0 0 6px; }
.b31gc-balance-amount { font-family: "Big Shoulder Display", "Big Shoulders Display", Impact, sans-serif; font-weight: 900; font-size: 48px; line-height: 1; }

@media (max-width: 900px) {
	.b31gc-form { grid-template-columns: minmax(0, 1fr); }
	.b31gc-col-preview { position: static; order: -1; }
}
@media (max-width: 520px) {
	.b31gc-modes { grid-template-columns: minmax(0, 1fr); }
	.b31gc-col-preview { padding: 14px; }
}

/* ---------- Bouclier contre les styles du thème (Hello Elementor : boutons et liens roses #c36) ---------- */
.b31gc-page a, .b31gc-page a:hover, .b31gc-redeem a, .b31gc-row a, .b31gc-row a:hover { color: inherit; }
.b31gc-row .b31gc-remove { text-decoration: underline; }
.b31gc-page .b31gc-submit, .b31gc-page .b31gc-submit:focus {
	-webkit-appearance: none; appearance: none; display: block; width: 100%; margin: 0; border-radius: 0; white-space: normal; transition: none;
	border: 2px solid var(--b31gc-ink); background: var(--b31gc-ink); color: var(--b31gc-paper);
	font-family: var(--b31gc-display); font-weight: 800; text-transform: uppercase; font-size: 22px; line-height: 1.1; padding: 16px; text-align: center;
}
.b31gc-page .b31gc-submit:hover, .b31gc-page .b31gc-submit:focus-visible { background: var(--b31gc-accent); border-color: var(--b31gc-accent); color: var(--b31gc-ink); }
.b31gc-redeem .b31gc-redeem-row button, .b31gc-check .b31gc-redeem-row button, .b31gc-redeem .b31gc-redeem-row button:focus, .b31gc-check .b31gc-redeem-row button:focus {
	-webkit-appearance: none; appearance: none; margin: 0; border-radius: 0; white-space: nowrap; transition: none;
	border: 2px solid var(--b31gc-ink); background: var(--b31gc-ink); color: var(--b31gc-paper); padding: 10px 18px; font-weight: 700; font-size: 16px; line-height: 1.2;
}
.b31gc-redeem .b31gc-redeem-row button:hover, .b31gc-check .b31gc-redeem-row button:hover { background: var(--b31gc-accent); border-color: var(--b31gc-accent); color: var(--b31gc-ink); }
.b31gc-redeem .b31gc-redeem-row input, .b31gc-check .b31gc-redeem-row input { border: 2px solid var(--b31gc-ink); border-radius: 0; padding: 10px 12px; width: auto; }
.b31gc-fields .b31gc-group input[type=text], .b31gc-fields .b31gc-group input[type=email], .b31gc-fields .b31gc-group input[type=date], .b31gc-fields .b31gc-group input[type=number], .b31gc-fields .b31gc-group textarea { border-radius: 0; transition: none; }
.b31gc-fields .b31gc-group label { display: block; line-height: 1.3; }
.b31gc-fields .b31gc-pill, .b31gc-fields .b31gc-mode { display: block; }
.b31gc-fields .b31gc-pill { display: inline-block; }
.b31gc-fields .b31gc-pill span:hover { background: var(--b31gc-soft); }
.b31gc-fields .b31gc-pill input:checked + span:hover { background: var(--b31gc-ink); }

/* ---------- Pleine largeur + respiration sous l'en-tête et au-dessus du pied de page ---------- */
html:has(.b31gc-full) { overflow-x: clip; }
.b31gc-page.b31gc-full {
	width: 100vw; max-width: 100vw;
	margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
	padding-left: max(16px, 3vw, calc((100vw - 1760px) / 2));
	padding-right: max(16px, 3vw, calc((100vw - 1760px) / 2));
	padding-top: clamp(32px, 4vw, 64px);
	padding-bottom: clamp(48px, 6vw, 96px);
}
.b31gc-full .b31gc-form { grid-template-columns: minmax(0, 1fr) minmax(380px, 680px); gap: clamp(28px, 4vw, 72px); }
@media (max-width: 900px) {
	.b31gc-full .b31gc-form { grid-template-columns: minmax(0, 1fr); }
}
.b31gc-head { margin: 0 0 clamp(24px, 3vw, 40px); }
.b31gc-title { font-family: var(--b31gc-display); font-weight: 900; text-transform: uppercase; font-size: clamp(40px, 7vw, 84px); line-height: .95; margin: 0 0 14px; color: var(--b31gc-ink); }
.b31gc-title span { display: inline-block; background: var(--b31gc-ink); color: var(--b31gc-paper); padding: 4px 14px 0; }
.b31gc-intro { max-width: 640px; margin: 0; font-size: 20px; }
