/* ============================================================
   KAYA — TUNNEL DE PAIEMENT
   En-tete d'etapes, grille, moyens de paiement, attente MoMo,
   confirmation et recapitulatif.
   Depend de base.css et components.css.
   ============================================================ */
/* ============ EN-TÊTE DE TUNNEL ============ */
.payhead{background:var(--basalt);color:var(--kaolin);padding-top:70px}
.payhead-in{padding:22px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.payback{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.6}
.payback:hover{opacity:1}
.steps{display:flex;gap:28px;list-style:none;flex-wrap:wrap}
.steps li{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;opacity:.32;
  display:flex;align-items:center;gap:8px;transition:opacity .5s var(--ease)}
.steps li b{font-family:var(--display);font-size:17px;font-weight:400;color:var(--ochre)}
.steps li.on{opacity:1}
.steps li.done{opacity:.6}

/* ============ GRILLE ============ */
.paywrap{padding-top:clamp(44px,6vw,80px)}
.paygrid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,5vw,80px);align-items:start}
.pane{display:none}
.pane.on{display:block;animation:panein .6s var(--ease)}
@keyframes panein{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.pay-title{font-family:var(--display);font-size:clamp(30px,4.6vw,56px);line-height:1.02;font-weight:400;margin:16px 0 10px}
.pay-note{font-size:14px;font-weight:300;opacity:.7;max-width:52ch;margin-bottom:30px}
.field-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.payrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.err{color:#9B3A2A;font-size:13px;font-weight:500;min-height:20px;margin-top:6px}
.hint{font-size:12px;font-weight:300;opacity:.6;margin-top:14px;line-height:1.6}
.secure{margin-top:26px;font-size:11px;letter-spacing:.06em;opacity:.5;display:flex;align-items:center;gap:8px}

/* ============ MOYENS DE PAIEMENT ============ */
.methods{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:34px}
.method{display:flex;align-items:center;gap:14px;text-align:left;padding:16px 18px;
  border:1px solid rgba(42,38,33,.22);transition:border-color .4s var(--ease),background .4s var(--ease)}
.method:hover{border-color:rgba(42,38,33,.5)}
.method.on{border-color:var(--ochre);background:rgba(199,154,75,.09)}
.m-ico{font-size:20px;opacity:.55;width:24px;text-align:center}
.method.on .m-ico{opacity:1;color:var(--ochre-deep)}
.m-txt b{display:block;font-weight:500;font-size:14px}
.m-txt small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.5}
.mpane{display:none}
.mpane.on{display:block;animation:panein .45s var(--ease)}

.cardwrap{position:relative}
.brand{position:absolute;right:0;bottom:12px;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;color:var(--ochre-deep);opacity:0;transition:opacity .4s}
.brand.on{opacity:1}
.telwrap{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid rgba(42,38,33,.28);
  transition:border-color .4s var(--ease)}
.telwrap:focus-within{border-bottom-color:var(--ochre)}
.telwrap .prefix{font-size:15px;opacity:.5;font-weight:500}
.telwrap input{border:none!important;flex:1}

.bankbox{border:1px solid rgba(42,38,33,.2);padding:22px}
.bankbox div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;
  border-bottom:1px solid rgba(42,38,33,.12);font-size:14px}
.bankbox div:last-child{border-bottom:none}
.bankbox b{font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.5;font-weight:600}
.bankbox span{font-weight:300;text-align:right}

/* ============ ATTENTE MOMO ============ */
.waitbox{text-align:center;padding:clamp(30px,6vw,70px) 0}
.pulse{width:70px;height:70px;border-radius:50%;border:2px solid var(--ochre);margin:0 auto 26px;
  position:relative}
.pulse::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid var(--ochre);
  animation:pulse 1.8s var(--ease) infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.75);opacity:0}}
.countdown{margin:26px 0 6px}
.countdown span{font-family:var(--display);font-size:52px;line-height:1}
.countdown small{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.5;margin-top:6px}

/* ============ CONFIRMATION ============ */
.okmark{width:62px;height:62px;border-radius:50%;background:var(--ochre);color:var(--basalt);
  display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:24px}
.recap{border-top:1px solid rgba(42,38,33,.18);margin-top:26px}
.recap div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;
  border-bottom:1px solid rgba(42,38,33,.12);font-size:14px}
.recap b{font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.5;font-weight:600}
.recap span{font-weight:300;text-align:right}

/* ============ RÉCAPITULATIF ============ */
.summary{background:var(--basalt);color:var(--kaolin);padding:clamp(26px,3.4vw,40px);position:sticky;top:96px}
.summary h3{font-family:var(--display);font-size:27px;font-weight:400;margin-bottom:8px}
.s-dates{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0;
  border-top:1px solid rgba(240,235,225,.16);border-bottom:1px solid rgba(240,235,225,.16);padding:18px 0}
.s-dates b{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ochre);font-weight:600;margin-bottom:6px}
.s-dates span{font-size:15px;font-weight:300}
.s-lines{list-style:none}
.s-lines li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;font-size:14px;font-weight:300;opacity:.8}
.s-lines li b{font-weight:400;white-space:nowrap}
.s-lines li.tot{border-top:1px solid rgba(240,235,225,.16);margin-top:8px;padding-top:16px;opacity:1;font-weight:400}
.s-lines li.tot b{font-family:var(--display);font-size:22px}
.s-lines li.dep{opacity:1;color:var(--ochre)}
.s-lines li.dep b{font-family:var(--display);font-size:26px}
.s-lines li.rest{font-size:12px;opacity:.55}
.s-note{margin-top:22px;padding-top:18px;border-top:1px solid rgba(240,235,225,.16);
  font-size:11px;font-weight:300;opacity:.55;line-height:1.7}

@media (max-width:980px){
  .paygrid{grid-template-columns:1fr}
  .summary{position:relative;top:0;order:-1}
  .field-row3{grid-template-columns:1fr 1fr}
  .field-row3 .field:last-child{grid-column:span 2}
}
@media (max-width:600px){
  .methods{grid-template-columns:1fr}
  .steps{gap:16px}
  .steps li{font-size:10px;letter-spacing:.12em}
}

