/* KIFF. Members & Events — formulaire d'inscription, comparaison avec l'adhésion et « Ma cotisation ».
   Sobre : police et couleur de texte héritées du thème ; une seule couleur d'accent, modifiable par le thème :
   .kme-registration { --kme-accent: #0b6e4f; } */
.kme-registration {
	--kme-accent: #1d4f91;
	--kme-line: rgba(0, 0, 0, .14);
	--kme-soft: rgba(0, 0, 0, .035);
	--kme-muted: rgba(0, 0, 0, .62);
	--kme-radius: 8px;
	max-width: 46rem;
	line-height: 1.45;
}
.kme-registration *, .kme-registration *::before, .kme-registration *::after { box-sizing: border-box; }
.kme-registration .kme-choice__title { margin: 1.5em 0 .6em; font-size: 1.25em; }
.kme-registration .kme-info { padding: .8em 1em; border: 1px solid var(--kme-line); border-radius: var(--kme-radius); background: var(--kme-soft); }

/* Étapes */
.kme-choice { margin: 0; }
.kme-step { border: 0; padding: 0; margin: 0 0 1.4em; min-width: 0; }
.kme-step > legend { font-weight: 600; font-size: 1.05em; padding: 0; margin-bottom: .6em; display: flex; align-items: center; gap: .5em; }
.kme-step__num { display: inline-flex; align-items: center; justify-content: center; width: 1.7em; height: 1.7em; border-radius: 50%; background: var(--kme-accent); color: #fff; font-size: .85em; }
.kme-options { display: grid; gap: .5em; }

/* Options (journées, tarifs) : grandes zones cliquables */
.kme-option {
	display: flex; flex-wrap: wrap; align-items: center; gap: .25em .75em;
	padding: .8em 1em; min-height: 3em; margin: 0;
	border: 1px solid var(--kme-line); border-radius: var(--kme-radius); background: #fff;
	cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.kme-option:hover { border-color: var(--kme-accent); }
.kme-option.is-checked { border-color: var(--kme-accent); box-shadow: inset 0 0 0 1px var(--kme-accent); background: color-mix(in srgb, var(--kme-accent) 5%, #fff); }
.kme-option.is-disabled { cursor: not-allowed; opacity: .55; background: var(--kme-soft); }
.kme-option input { margin: 0; width: 1.15em; height: 1.15em; accent-color: var(--kme-accent); flex: none; }
.kme-option__main { font-weight: 600; }
.kme-option__meta { color: var(--kme-muted); }
.kme-option__price { margin-left: auto; font-weight: 600; white-space: nowrap; }
.kme-tag { font-size: .8em; padding: .1em .55em; border-radius: 99px; background: rgba(0, 0, 0, .08); }
.kme-link { background: none; border: 0; padding: .4em 0; margin-top: .3em; color: var(--kme-accent); text-decoration: underline; cursor: pointer; font: inherit; }

/* Certification et justificatif, sous le tarif choisi */
.kme-rate__extra { margin: .4em 0 .2em 2.2em; padding: .8em 1em; border-left: 3px solid var(--kme-accent); background: var(--kme-soft); border-radius: 0 var(--kme-radius) var(--kme-radius) 0; display: grid; gap: .6em; }
.kme-rate__extra[hidden] { display: none; }
.kme-certify { display: flex; gap: .5em; align-items: flex-start; margin: 0; cursor: pointer; }
.kme-certify input { margin-top: .25em; }
.kme-proof { display: grid; gap: .3em; }
.kme-proof__label { font-weight: 600; }
.kme-proof__note { color: var(--kme-muted); }
.kme-proof input[type="file"] { max-width: 100%; }
.kme-proof small { color: var(--kme-muted); }

/* Montant à payer */
.kme-summary { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .2em 1em; padding: 1em 1.1em; border-radius: var(--kme-radius); border: 1px solid var(--kme-line); background: var(--kme-soft); margin: 0 0 1em; }
.kme-summary__label { font-weight: 600; }
.kme-summary__amount { font-size: 1.5em; text-align: right; }
.kme-summary__detail { grid-column: 1 / -1; color: var(--kme-muted); font-size: .92em; }
.kme-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5em 1em; }
.kme-actions small { color: var(--kme-muted); }
.kme-registration .kme-submit { background: var(--kme-accent); color: #fff; border: 1px solid var(--kme-accent); padding: .75em 1.4em; border-radius: var(--kme-radius); font-weight: 600; font-size: 1em; line-height: 1.3; text-decoration: none; cursor: pointer; }
.kme-choice__notices { margin-bottom: 1em; }

/* Adhésion sur la page d'un événement : message discret, puis comparaison après le choix du tarif (0.9.7) */
.kme-teaser { margin: 0 0 1.2em; padding: .55em .9em; border-left: 3px solid var(--kme-accent); background: var(--kme-soft); border-radius: 0 var(--kme-radius) var(--kme-radius) 0; font-size: .95em; }
.kme-teaser a { color: var(--kme-accent); }
.kme-compare { border: 1px solid var(--kme-line); border-radius: var(--kme-radius); padding: 1em 1.1em; margin: 0 0 1.2em; background: #fff; scroll-margin-top: 2em; }
.kme-compare[hidden] { display: none; }
.kme-compare p { margin: 0 0 .6em; }
.kme-compare__title { font-weight: 600; font-size: 1.05em; }
.kme-compare__msg { font-weight: 600; color: var(--kme-accent); }
.kme-compare__msg[hidden] { display: none; }
.kme-compare__rows { list-style: none; margin: 0 0 .8em; padding: 0; display: grid; gap: .4em; }
.kme-compare__rows li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .2em 1em; padding: .5em .8em; border-radius: var(--kme-radius); background: var(--kme-soft); }
.kme-compare__rows li.is-member { background: color-mix(in srgb, var(--kme-accent) 9%, #fff); }
.kme-compare__rows small { color: var(--kme-muted); font-size: .88em; }
.kme-compare__note { font-size: .9em; color: var(--kme-muted); }
.kme-compare__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5em 1em; margin: .8em 0 0 !important; }
.kme-compare__actions span { color: var(--kme-muted); }
.kme-benefits { margin: 0 0 .6em; padding: 0; list-style: none; display: grid; gap: .25em; }
.kme-benefits li { padding-left: 1.4em; position: relative; }
.kme-benefits li::before { content: "✓"; position: absolute; left: 0; color: var(--kme-accent); font-weight: 700; }
.kme-conditions { font-size: .88em; color: var(--kme-muted); }

/* Ma cotisation (0.9.7) : une carte principale, informations et historique en second plan */
.kme-card { --kme-accent: #1d4f91; --kme-line: rgba(0, 0, 0, .14); --kme-soft: rgba(0, 0, 0, .035); --kme-muted: rgba(0, 0, 0, .62); --kme-radius: 8px; max-width: 46rem; line-height: 1.45; }
.kme-card *, .kme-card *::before, .kme-card *::after { box-sizing: border-box; }
.kme-card__main { border: 1px solid var(--kme-line); border-radius: var(--kme-radius); padding: 1.2em 1.3em; margin: 0 0 1.2em; background: #fff; }
.kme-card__main p { margin: 0 0 .6em; }
.kme-card__eyebrow { font-size: .9em; color: var(--kme-muted); text-transform: none; }
.kme-card__title { font-size: 1.3em; font-weight: 700; margin: 0 0 .2em !important; }
.kme-card__amount { font-size: 2em; font-weight: 700; line-height: 1.1; margin: .2em 0 .1em !important; }
.kme-card__amount small { font-size: .45em; font-weight: 400; color: var(--kme-muted); }
.kme-card__sub { color: var(--kme-muted); font-size: .92em; }
.kme-card__badge { display: inline-block; font-size: .8em; padding: .15em .7em; border-radius: 99px; background: #d7f0df; color: #135c2b; font-weight: 600; vertical-align: middle; }
.kme-card__badge.is-pending { background: #fdf1d0; color: #6b4d00; }
.kme-card__note { font-size: .92em; padding: .5em .8em; border-left: 3px solid var(--kme-accent); background: var(--kme-soft); border-radius: 0 var(--kme-radius) var(--kme-radius) 0; }
.kme-card__types { list-style: none; margin: .4em 0 .8em; padding: 0; display: flex; flex-wrap: wrap; gap: .5em; }
.kme-card__types li { flex: 1 1 10em; padding: .5em .8em; border-radius: var(--kme-radius); background: var(--kme-soft); display: flex; flex-direction: column; }
.kme-card__types li span { font-size: .9em; color: var(--kme-muted); }
.kme-card__types li strong { font-size: 1.15em; }
.kme-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5em 1em; margin: 1em 0 0 !important; }
.kme-card .kme-card__cta, .kme-registration .kme-compare__cta { background: var(--kme-accent); color: #fff; border: 1px solid var(--kme-accent); padding: .75em 1.4em; border-radius: var(--kme-radius); font-weight: 600; font-size: 1em; line-height: 1.3; text-decoration: none; cursor: pointer; }
.kme-card__form .kme-field { display: grid; gap: .2em; margin: 0 0 .7em; }
.kme-card__form .kme-field input { max-width: 20em; }
.kme-card__form .kme-field small { color: var(--kme-muted); }
.kme-card details { border: 1px solid var(--kme-line); border-radius: var(--kme-radius); padding: .6em 1em; margin: 0 0 .8em; }
.kme-card details > summary { cursor: pointer; font-weight: 600; }
.kme-card details[open] > summary { margin-bottom: .6em; }
.kme-card table { width: 100%; border-collapse: collapse; font-size: .92em; }
.kme-card th, .kme-card td { text-align: left; padding: .4em .5em; border-bottom: 1px solid var(--kme-line); }
.kme-return { padding: .7em 1em; border: 1px solid var(--kme-accent); border-radius: var(--kme-radius); margin: 0 0 1em; background: color-mix(in srgb, var(--kme-accent) 5%, #fff); }

/* Mes inscriptions, tarifs publics */
.kme-mine ul, .kme-public-rates { list-style: none; margin: 0 0 1em; padding: 0; display: grid; gap: .5em; }
.kme-mine li, .kme-public-rates li { padding: .7em 1em; border: 1px solid var(--kme-line); border-radius: var(--kme-radius); display: flex; flex-wrap: wrap; gap: .3em .7em; align-items: center; }
.kme-public-rates small { color: var(--kme-muted); }
.kme-mine__actions { width: 100%; font-size: .92em; }
.kme-status { font-size: .8em; padding: .15em .6em; border-radius: 99px; background: rgba(0, 0, 0, .08); }
.kme-status--confirmed { background: #d7f0df; color: #135c2b; }
.kme-status--pending { background: #fdf1d0; color: #6b4d00; }
.kme-status--conflict, .kme-status--failed, .kme-status--expired { background: #fbe0de; color: #8a1f17; }
.kme-login { display: flex; flex-wrap: wrap; gap: .5em 1em; align-items: center; }

@media (max-width: 600px) {
	.kme-rate__extra { margin-left: 0; }
	.kme-actions, .kme-compare__actions, .kme-card__actions { flex-direction: column; align-items: stretch; text-align: center; }
	.kme-registration .kme-submit, .kme-registration .kme-compare__cta, .kme-card .kme-card__cta { width: 100%; text-align: center; }
	.kme-option__price { flex: 0 1 calc(100% - 2em); margin-left: 1.9em; white-space: normal; }
}

/* Early Bird (0.9.8) : prix normal barré, prix réduit mis en avant, échéance */
.kme-registration del { opacity: .6; font-weight: 400; text-decoration-thickness: 1px; }
.kme-registration ins.kme-early-price { text-decoration: none; color: var(--kme-accent); font-weight: 700; }
.kme-early-note { margin: 0 0 .7em; padding: .45em .8em; border-radius: var(--kme-radius); background: color-mix(in srgb, var(--kme-accent) 8%, #fff); font-size: .93em; }
.kme-early-note strong { color: var(--kme-accent); }
.kme-option__price:has(del) { white-space: normal; text-align: right; flex: 1 1 auto; }
.kme-option__price del, .kme-option__price ins { white-space: nowrap; }
@media (max-width: 600px) { .kme-option__price:has(del) { text-align: left; flex: 0 1 calc(100% - 2em); } }
