/* Kanpifi Tickets : styles de base (le thème Kanpifi peut surcharger les variables) */
.kt-plans, .kt-form, .kt-status {
	--kt-accent: var(--kp-accent, #0a7d5a);
	--kt-accent-dark: var(--kp-accent-dark, #075e44);
	--kt-ink: var(--kp-ink, #14211c);
	--kt-muted: var(--kp-muted, #5b6b64);
	--kt-line: var(--kp-line, #dbe5e0);
	--kt-bg: var(--kp-card, #fff);
	--kt-radius: 14px;
	color: var(--kt-ink);
}
.kt-plans { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); margin: 24px 0; }
.kt-plan { background: var(--kt-bg); border: 1px solid var(--kt-line); border-radius: var(--kt-radius); padding: 24px; display: flex; flex-direction: column; gap: 10px; transition: transform .2s, box-shadow .2s; }
.kt-plan:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(10, 60, 45, .1); }
.kt-plan h3 { margin: 0; font-size: 1.15rem; }
.kt-price { font-size: 2rem; font-weight: 800; margin: 0; color: var(--kt-accent); letter-spacing: -.02em; }
.kt-feat { list-style: none; margin: 0 0 8px; padding: 0; color: var(--kt-muted); flex: 1; }
.kt-feat li { padding: 5px 0 5px 22px; position: relative; }
.kt-feat li::before { content: ""; position: absolute; left: 0; top: 11px; width: 10px; height: 6px; border-left: 2px solid var(--kt-accent); border-bottom: 2px solid var(--kt-accent); transform: rotate(-45deg); }
.kt-plan.is-out { opacity: .6; }

.kt-btn { display: inline-block; text-align: center; background: var(--kt-accent); color: #fff !important; border: 0; border-radius: 999px; padding: 12px 24px; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; transition: background .15s; }
.kt-btn:hover { background: var(--kt-accent-dark); }
.kt-btn.is-disabled { background: #b7c4be; cursor: not-allowed; }
.kt-btn-block { display: block; width: 100%; }

.kt-form { max-width: 720px; margin: 24px auto; }
.kt-form-sm { max-width: 440px; }
.kt-step { border: 1px solid var(--kt-line); border-radius: var(--kt-radius); background: var(--kt-bg); padding: 20px; margin: 0 0 18px; }
.kt-step legend { font-weight: 800; padding: 0 8px; display: flex; align-items: center; gap: 8px; }
.kt-step legend span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--kt-accent); color: #fff; font-size: .85rem; }
.kt-form label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: 12px; }
.kt-form input[type=text], .kt-form input[type=email], .kt-form input[type=tel] { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; border: 1px solid var(--kt-line); border-radius: 10px; font: inherit; background: #fff; box-sizing: border-box; }
.kt-form input:focus { outline: 2px solid var(--kt-accent); outline-offset: 1px; }
.kt-grid { display: grid; gap: 0 14px; grid-template-columns: 1fr 1fr; }
.kt-wide { grid-column: 1 / -1; }
@media (max-width: 560px) { .kt-grid { grid-template-columns: 1fr; } }

.kt-choices { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.kt-choice, .kt-method { margin: 0 !important; cursor: pointer; }
.kt-choice input, .kt-method input { position: absolute; opacity: 0; pointer-events: none; }
.kt-choice-body { display: grid; gap: 2px; border: 2px solid var(--kt-line); border-radius: 12px; padding: 14px; background: #fff; transition: border-color .15s, background .15s; }
.kt-choice-body em { font-style: normal; color: var(--kt-muted); font-weight: 500; font-size: .85rem; }
.kt-choice-body b { color: var(--kt-accent); font-size: 1.1rem; }
.kt-choice input:checked + .kt-choice-body { border-color: var(--kt-accent); background: #effaf5; }
.kt-choice input:focus-visible + .kt-choice-body, .kt-method input:focus-visible + span { outline: 2px solid var(--kt-accent); outline-offset: 2px; }
.kt-choice.is-out { opacity: .5; cursor: not-allowed; }

.kt-methods { display: flex; gap: 10px; margin-bottom: 14px; }
.kt-method { flex: 1; }
.kt-method span { display: block; text-align: center; border: 2px solid var(--kt-line); border-radius: 12px; padding: 14px; font-weight: 800; background: #fff; }
.kt-method input:checked + span { border-color: var(--kt-accent); background: #effaf5; color: var(--kt-accent-dark); }

.kt-pay-box { background: #effaf5; border: 1px dashed var(--kt-accent); border-radius: 12px; padding: 14px 16px; margin-bottom: 14px; }
.kt-pay-box[hidden] { display: none; }
.kt-pay-line { margin: 0 0 4px; font-size: 1.05rem; }
.kt-muted { color: var(--kt-muted); font-size: .9rem; margin: 0; }
.kt-center { text-align: center; margin-top: 12px; }
.kt-alert { background: #fdecec; color: #8a1c1c; border: 1px solid #f3c2c2; border-radius: 10px; padding: 12px 14px; margin-bottom: 16px; font-weight: 600; }
.kt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.kt-empty { text-align: center; color: var(--kt-muted); padding: 30px 0; }

.kt-status { max-width: 520px; margin: 24px auto; background: var(--kt-bg); border: 1px solid var(--kt-line); border-radius: var(--kt-radius); padding: 28px; text-align: center; }
.kt-status h3 { margin: 6px 0; font-size: 1.4rem; }
.kt-status.kt-pending h3 { color: #a86a00; }
.kt-status.kt-approved h3 { color: var(--kt-accent); }
.kt-status.kt-rejected h3 { color: #8a1c1c; }
.kt-ref { margin: 0; color: var(--kt-muted); }
.kt-ticket { display: grid; gap: 8px; justify-items: center; margin-top: 18px; padding: 20px; border: 2px dashed var(--kt-accent); border-radius: 14px; background: #effaf5; }
.kt-ticket span { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--kt-muted); }
.kt-ticket code { font-size: 1.7rem; font-weight: 800; letter-spacing: .06em; background: none; color: var(--kt-ink); word-break: break-all; }

/* Boutique */
.kt-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 8px 0 26px; }
.kt-filter { border: 1px solid var(--kp-line, #dbe5e0); background: #fff; color: var(--kp-ink, #14211c); border-radius: 999px; padding: 9px 20px; font: inherit; font-weight: 700; cursor: pointer; transition: background .15s, color .15s; }
.kt-filter:hover { background: #e7f4ee; }
.kt-filter.is-active { background: var(--kp-accent, #0a7d5a); border-color: var(--kp-accent, #0a7d5a); color: #fff; }
.kt-shop { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.kt-product { background: #fff; border: 1px solid var(--kp-line, #dbe5e0); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.kt-product[hidden] { display: none; }
.kt-product:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(10, 60, 45, .1); }
.kt-product-img { position: relative; aspect-ratio: 4 / 3; background: #eaf5f0; display: grid; place-items: center; color: var(--kp-accent, #0a7d5a); }
.kt-product-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kt-product-img svg { width: 64px; height: 64px; opacity: .55; }
.kt-badge { position: absolute; top: 12px; left: 12px; background: var(--kp-sun, #f5b82e); color: #3a2a00; font-weight: 800; font-size: .75rem; padding: 4px 10px; border-radius: 999px; }
.kt-product-body { padding: 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.kt-product-body h3 { margin: 0; font-size: 1.05rem; }
.kt-product-body .kt-btn { margin-top: auto; }
.kt-product-price { margin: 0; font-size: 1.35rem; font-weight: 800; color: var(--kp-accent, #0a7d5a); }
.kt-product-price del { font-size: .9rem; font-weight: 500; color: var(--kp-muted, #5b6b64); margin-left: 6px; }
.kt-product.is-out { opacity: .6; }

/* Bouton de connexion au portail captif */
.kt-connect { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--kt-line); display: grid; gap: 12px; }
.kt-btn-sun { background: var(--kp-sun, #f5b82e); color: #3a2a00 !important; font-size: 1.05rem; padding: 15px 24px; }
.kt-btn-sun:hover { background: #e3a516; }

/* ===== Page Contact & À propos ===== */
.kt-contact { --c-accent: var(--kp-accent, #0a7d5a); --c-ink: var(--kp-ink, #11201a); --c-muted: var(--kp-muted, #5b6b64); --c-line: var(--kp-line, #dbe5e0); display: grid; gap: 28px; color: var(--c-ink); }
.kt-contact h2, .kt-contact h3 { letter-spacing: -.02em; line-height: 1.2; }
.kt-contact > * { animation: kt-rise .6s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(var(--i, 0) * 90ms); }
@keyframes kt-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.kt-cgrid { display: grid; gap: 24px; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); align-items: start; animation: none; }
@media (max-width: 900px) { .kt-cgrid { grid-template-columns: 1fr; } }

.kt-ccard { background: #fff; border: 1px solid var(--c-line); border-radius: 24px; padding: 34px; box-shadow: 0 18px 50px rgba(10, 60, 45, .08); animation: kt-rise .6s both; }
.kt-ccard h2 { margin: 0 0 22px; padding-bottom: 14px; border-bottom: 1px solid var(--c-line); font-size: 1.35rem; }
.kt-citems { display: grid; gap: 26px 32px; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .kt-citems { grid-template-columns: 1fr; } .kt-ccard { padding: 24px; } }
.kt-citem { display: flex; gap: 16px; align-items: flex-start; }
.kt-citem h3 { margin: 0 0 4px; font-size: 1.02rem; }
.kt-citem p { margin: 0; color: var(--c-muted); line-height: 1.55; }
.kt-citem a { color: var(--c-muted); text-decoration: none; transition: color .15s; }
.kt-citem a:hover { color: var(--c-accent); }
.kt-vip { margin-top: 10px !important; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: #8a5a00 !important; background: #fff4d6; padding: 5px 12px; border-radius: 999px; font-size: .85rem; }
.kt-vip svg { width: 15px; height: 15px; fill: currentColor; }

.kt-cicon { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; transition: transform .2s; }
.kt-cicon svg { width: 22px; height: 22px; }
.kt-citem:hover .kt-cicon, .kt-value:hover .kt-cicon { transform: rotate(-6deg) scale(1.06); }
.kt-cicon.is-red { background: #fdecec; color: #e2453c; }
.kt-cicon.is-green { background: #e6f7ee; color: #15a05c; }
.kt-cicon.is-blue { background: #e7f3fd; color: #1479c4; }
.kt-cicon.is-orange { background: #fff0e3; color: #e3650f; }
.kt-link-arrow { display: inline-block; margin-top: 26px; font-weight: 700; color: var(--c-accent); text-decoration: none; }
.kt-link-arrow:hover { text-decoration: underline; }

.kt-chelp { position: relative; overflow: hidden; background: linear-gradient(155deg, #0c1c16 0%, #12362a 100%); color: #fff; border-radius: 24px; padding: 34px 30px; text-align: center; box-shadow: 0 22px 50px rgba(5, 25, 18, .35); animation: kt-rise .6s both; }
.kt-chelp::before, .kt-chelp::after { content: ""; position: absolute; border: 2px solid rgba(255, 255, 255, .07); border-radius: 50%; right: -80px; top: -80px; width: 220px; height: 220px; }
.kt-chelp::after { width: 340px; height: 340px; right: -140px; top: -140px; }
.kt-chelp > * { position: relative; z-index: 1; }
.kt-chelp-icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 18px; background: rgba(245, 184, 46, .16); color: #f5b82e; margin-bottom: 14px; }
.kt-chelp-icon svg { width: 26px; height: 26px; }
.kt-chelp h2 { margin: 0 0 8px; font-size: 1.35rem; }
.kt-chelp p { margin: 0 0 22px; color: #a9c0b6; }

.kt-cbtn { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; border: 0; border-radius: 14px; padding: 15px 20px; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; }
.kt-cbtn svg { width: 18px; height: 18px; flex: none; }
.kt-cbtn:hover { transform: translateY(-2px); }
.kt-cbtn + .kt-cbtn { margin-top: 12px; }
.kt-cbtn-call { background: #ef4444; color: #fff !important; box-shadow: 0 10px 24px rgba(239, 68, 68, .4); }
.kt-cbtn-call:hover { background: #dc2f2f; }
.kt-cbtn-wa { background: rgba(255, 255, 255, .1); color: #fff !important; border: 1px solid rgba(255, 255, 255, .22); }
.kt-cbtn-wa:hover { background: rgba(255, 255, 255, .18); }
.kt-cbtn-send { background: var(--c-accent); color: #fff !important; box-shadow: 0 10px 24px rgba(10, 125, 90, .3); }
.kt-cbtn-send:hover { background: var(--kp-accent-dark, #075e44); }
.kt-cbtn-sun { background: #f5b82e; color: #3a2a00 !important; width: auto; white-space: nowrap; padding-inline: 30px; }

.kt-cformwrap { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); background: #fff; border: 1px solid var(--c-line); border-radius: 24px; padding: 38px; box-shadow: 0 18px 50px rgba(10, 60, 45, .08); }
@media (max-width: 900px) { .kt-cformwrap { grid-template-columns: 1fr; padding: 24px; } }
.kt-cformintro h2 { margin: 0 0 10px; font-size: 1.6rem; }
.kt-cformintro p { color: var(--c-muted); margin: 0 0 16px; }
.kt-cformintro ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.kt-cformintro li { position: relative; padding-left: 26px; color: var(--c-muted); font-size: .95rem; }
.kt-cformintro li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 11px; height: 6px; border-left: 2px solid var(--c-accent); border-bottom: 2px solid var(--c-accent); transform: rotate(-45deg); }
.kt-cf { display: grid; gap: 16px; }
.kt-cf-row { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (max-width: 560px) { .kt-cf-row { grid-template-columns: 1fr; } }
.kt-cf label { display: block; font-weight: 700; font-size: .9rem; }
.kt-cf input[type=text], .kt-cf input[type=email], .kt-cf textarea { display: block; width: 100%; margin-top: 7px; padding: 14px 16px; border: 1.5px solid var(--c-line); border-radius: 14px; font: inherit; background: #f8fbf9; box-sizing: border-box; transition: border-color .15s, box-shadow .15s, background .15s; resize: vertical; }
.kt-cf input:focus, .kt-cf textarea:focus { outline: none; border-color: var(--c-accent); background: #fff; box-shadow: 0 0 0 4px rgba(10, 125, 90, .14); }
.kt-notice-ok { background: #e6f7ee; color: #0b6b3f; border: 1px solid #b9e6cf; border-radius: 12px; padding: 12px 16px; font-weight: 700; }

.kt-about { display: grid; gap: 30px; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; padding: 14px 4px; }
@media (max-width: 900px) { .kt-about { grid-template-columns: 1fr; } }
.kt-eyebrow { display: inline-block; font-weight: 800; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); background: #e7f4ee; padding: 6px 14px; border-radius: 999px; margin-bottom: 14px; }
.kt-about-text h2 { margin: 0 0 14px; font-size: clamp(1.8rem, 3.6vw, 2.5rem); }
.kt-about-text p { color: var(--c-muted); font-size: 1.05rem; line-height: 1.7; margin: 0 0 14px; }
.kt-values { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (max-width: 480px) { .kt-values { grid-template-columns: 1fr; } }
.kt-value { background: #fff; border: 1px solid var(--c-line); border-radius: 20px; padding: 22px; transition: transform .2s, box-shadow .2s; }
.kt-value:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(10, 60, 45, .1); }
.kt-value .kt-cicon { margin-bottom: 14px; }
.kt-value h3 { margin: 0 0 4px; font-size: 1.02rem; }
.kt-value p { margin: 0; color: var(--c-muted); font-size: .92rem; }

.kt-cta { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; background: linear-gradient(120deg, #075e44 0%, #0a7d5a 60%, #12a577 100%); color: #fff; border-radius: 24px; padding: 34px 38px; }
.kt-cta h2 { margin: 0 0 6px; font-size: 1.5rem; }
.kt-cta p { margin: 0; color: #d3f0e4; }
@media (max-width: 640px) { .kt-cta { padding: 26px; } .kt-cbtn-sun { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .kt-contact > *, .kt-ccard, .kt-chelp { animation: none; } .kt-cbtn, .kt-value, .kt-cicon { transition: none; } }

/* Attente de confirmation */
.kt-waiting { display: inline-flex; align-items: center; gap: 12px; margin: 14px 0 6px; padding: 12px 20px; border-radius: 999px; background: #fff4d6; color: #7a5200; font-weight: 700; }
.kt-spinner { width: 18px; height: 18px; border-radius: 50%; border: 3px solid rgba(122, 82, 0, .25); border-top-color: #b57800; animation: kt-spin .9s linear infinite; }
@keyframes kt-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .kt-spinner { animation-duration: 3s; } }
