.cdp-wrap{
  --cdp-ink:#201C42;
  --cdp-cream:#FAF8F5;
  --cdp-yellow:#F9CB4D;
  --cdp-coral:#F9557A;
  --cdp-orange:#F5804D;
  --cdp-turquoise:#16BFC4;
  --cdp-body:#55556B;
  max-width:720px;
  margin:0 auto;
  font-family:inherit;
  color:var(--cdp-body);
}

.cdp-card{
  background:var(--cdp-cream);
  border:3px solid var(--cdp-ink);
  border-radius:24px;
  box-shadow:8px 8px 0 var(--cdp-ink);
  padding:30px 28px;
  margin-bottom:22px;
}
.cdp-card--slim{padding:24px 28px;}
.cdp-card--notice{text-align:center;}
.cdp-card--error{border-color:var(--cdp-coral);box-shadow:8px 8px 0 var(--cdp-coral);}

.cdp-badge{
  display:inline-block;
  background:var(--cdp-ink);
  color:var(--cdp-cream);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  padding:7px 18px;
  border-radius:999px;
  margin-bottom:14px;
}
.cdp-badge--ok{background:var(--cdp-turquoise);color:#06333A;}

.cdp-card__title{
  margin:0 0 12px;
  color:var(--cdp-ink);
  font-size:clamp(1.5rem,3.6vw,2.1rem);
  line-height:1.15;
  font-weight:800;
}
.cdp-card__text{margin:0 0 18px;font-size:1rem;line-height:1.65;}

.cdp-recap{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0;
  padding-top:16px;
  border-top:1px solid rgba(32,28,66,.14);
}
.cdp-recap div{
  flex:1 1 150px;
  background:#fff;
  border-radius:14px;
  padding:12px 14px;
}
.cdp-recap dt{
  margin:0 0 3px;
  font-size:.72rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--cdp-body);
}
.cdp-recap dd{
  margin:0;
  color:var(--cdp-ink);
  font-size:1.05rem;
  font-weight:700;
}

.cdp-choices{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;
  margin-bottom:22px;
}
.cdp-choice{display:block;cursor:pointer;}
.cdp-choice input{position:absolute;opacity:0;width:0;height:0;}

.cdp-choice__inner{
  display:block;
  height:100%;
  background:var(--cdp-cream);
  border:3px solid var(--cdp-ink);
  border-radius:22px;
  box-shadow:6px 6px 0 var(--cdp-ink);
  padding:24px 22px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.cdp-choice:hover .cdp-choice__inner{transform:translate(-2px,-2px);box-shadow:9px 9px 0 var(--cdp-ink);}
.cdp-choice input:focus-visible + .cdp-choice__inner{outline:3px solid var(--cdp-turquoise);outline-offset:3px;}
.cdp-choice input:checked + .cdp-choice__inner{
  background:#fff;
  box-shadow:6px 6px 0 var(--cdp-yellow);
  transform:translate(-2px,-2px);
}

.cdp-choice__tag{
  display:inline-block;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  padding:5px 13px;
  border-radius:999px;
  margin-bottom:12px;
}
.cdp-choice__tag--turquoise{background:var(--cdp-turquoise);color:#06333A;}
.cdp-choice__tag--coral{background:var(--cdp-coral);color:#fff;}

.cdp-choice__title{
  display:block;
  color:var(--cdp-ink);
  font-size:1.25rem;
  font-weight:800;
  line-height:1.2;
  margin-bottom:9px;
}
.cdp-choice__text{display:block;font-size:.92rem;line-height:1.55;}

.cdp-label{
  display:block;
  color:var(--cdp-ink);
  font-weight:700;
  font-size:.95rem;
  margin-bottom:8px;
}
.cdp-textarea{
  width:100%;
  border:2px solid rgba(32,28,66,.2);
  border-radius:14px;
  padding:12px 14px;
  font:inherit;
  font-size:.95rem;
  color:var(--cdp-ink);
  background:#fff;
  resize:vertical;
}
.cdp-textarea:focus{border-color:var(--cdp-turquoise);outline:none;}

.cdp-deadline{margin:14px 0 0;font-size:.88rem;color:var(--cdp-body);}

.cdp-submit{
  display:block;
  width:100%;
  margin-top:18px;
  background:var(--cdp-yellow);
  color:var(--cdp-ink);
  border:none;
  border-radius:999px;
  padding:16px 28px;
  font:inherit;
  font-size:1.05rem;
  font-weight:800;
  cursor:pointer;
  transition:transform .15s ease, filter .15s ease;
}
.cdp-submit:hover{transform:translateY(-2px);filter:brightness(1.05);}
.cdp-submit:active{transform:translateY(0);}

.cdp-change{margin-top:18px;padding-top:16px;border-top:1px solid rgba(32,28,66,.14);}
.cdp-change__text{margin:0;font-size:.92rem;}
.cdp-link{
  background:none;
  border:none;
  padding:0;
  font:inherit;
  font-weight:700;
  color:var(--cdp-coral);
  text-decoration:underline;
  cursor:pointer;
}

@media(max-width:600px){
  .cdp-card{padding:24px 20px;border-radius:20px;box-shadow:5px 5px 0 var(--cdp-ink);}
  .cdp-choice__inner{padding:20px 18px;box-shadow:5px 5px 0 var(--cdp-ink);}
}

.cdp-alert{
  background:#FDE9EE;
  border:2px solid var(--cdp-coral);
  border-radius:16px;
  padding:14px 18px;
  margin-bottom:20px;
  color:#8E1F3C;
  font-weight:600;
}

.cdp-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.cdp-tickets{margin-bottom:12px;}
.cdp-ticket-row{display:flex;gap:10px;align-items:center;margin-bottom:10px;}
.cdp-ticket-row .cdp-input{flex:1;}
.cdp-remove{
  flex:0 0 auto;
  width:38px;height:38px;
  border:2px solid rgba(32,28,66,.2);
  background:#fff;
  border-radius:50%;
  color:var(--cdp-ink);
  font-size:1.2rem;
  line-height:1;
  cursor:pointer;
}
.cdp-remove:hover{border-color:var(--cdp-coral);color:var(--cdp-coral);}

.cdp-add{
  background:transparent;
  border:2px dashed rgba(32,28,66,.3);
  border-radius:999px;
  padding:10px 20px;
  font:inherit;
  font-size:.9rem;
  font-weight:700;
  color:var(--cdp-ink);
  cursor:pointer;
}
.cdp-add:hover{border-color:var(--cdp-turquoise);color:#06565A;}

.cdp-fields{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  margin-bottom:16px;
}
.cdp-field--full{grid-column:1/-1;}
.cdp-input{
  width:100%;
  border:2px solid rgba(32,28,66,.2);
  border-radius:14px;
  padding:12px 14px;
  font:inherit;
  font-size:.95rem;
  color:var(--cdp-ink);
  background:#fff;
}
.cdp-input:focus{border-color:var(--cdp-turquoise);outline:none;}
.cdp-optional{
  font-weight:500;
  font-size:.78rem;
  color:var(--cdp-body);
  opacity:.75;
  margin-left:6px;
}
.cdp-legal{margin:14px 0 0;font-size:.82rem;opacity:.85;}
.cdp-back{color:var(--cdp-coral);font-weight:700;}

.cdp-hint{
  margin:14px 0 0;
  padding:12px 14px;
  background:rgba(22,191,196,.1);
  border-radius:12px;
  font-size:.86rem;
  line-height:1.55;
}

/* --- Aide « où trouver mon code » --- */
.cdp-help{
  margin:0 0 16px;
  border:2px solid var(--cdp-ink);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}

.cdp-help__summary{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
  font-weight:700;
  font-size:.94rem;
  color:var(--cdp-ink);
}
.cdp-help__summary::-webkit-details-marker{display:none;}
.cdp-help__summary:hover{background:rgba(249,203,77,.16);}
.cdp-help__summary:focus-visible{outline:3px solid var(--cdp-turquoise);outline-offset:-3px;}

.cdp-help__icon{
  flex:0 0 auto;
  width:26px;height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--cdp-ink);
  border-radius:50%;
  background:var(--cdp-yellow);
  font-size:.82rem;
  font-weight:800;
  font-style:italic;
}
.cdp-help__label{flex:1;}
.cdp-help__chevron{
  flex:0 0 auto;
  width:9px;height:9px;
  border-right:2.5px solid var(--cdp-ink);
  border-bottom:2.5px solid var(--cdp-ink);
  transform:rotate(45deg);
  margin-right:4px;
  transition:transform .2s ease;
}
.cdp-help[open] .cdp-help__chevron{transform:rotate(-135deg);}

.cdp-help__body{
  padding:0 16px 16px;
  border-top:2px solid rgba(32,28,66,.12);
}
.cdp-help__body img{
  display:block;
  width:100%;
  height:auto;
  margin-top:14px;
  border-radius:12px;
  border:1px solid rgba(32,28,66,.12);
}
.cdp-help__legend{
  margin:10px 0 0;
  text-align:center;
  font-size:.85rem;
  font-weight:600;
  color:var(--cdp-body);
}

/* --- Consentement --- */
.cdp-consent{
  display:flex;
  align-items:flex-start;
  gap:11px;
  margin-top:18px;
  padding:14px 16px;
  background:#fff;
  border:2px solid rgba(32,28,66,.18);
  border-radius:14px;
  cursor:pointer;
}
.cdp-consent:hover{border-color:var(--cdp-turquoise);}
.cdp-consent input{
  flex:0 0 auto;
  width:20px;height:20px;
  margin-top:1px;
  accent-color:var(--cdp-turquoise);
  cursor:pointer;
}
.cdp-consent__text{font-size:.9rem;line-height:1.55;color:var(--cdp-body);}
.cdp-consent__text a{color:var(--cdp-coral);font-weight:700;}

/* --- Type de réservation --- */
.cdp-radios{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:6px;
}
.cdp-radio{
  display:flex;
  align-items:center;
  gap:10px;
  flex:1 1 220px;
  padding:14px 16px;
  background:#fff;
  border:2px solid rgba(32,28,66,.18);
  border-radius:14px;
  font-size:.93rem;
  font-weight:600;
  color:var(--cdp-ink);
  cursor:pointer;
}
.cdp-radio input{
  width:19px;height:19px;
  accent-color:var(--cdp-turquoise);
  cursor:pointer;
}
.cdp-radio:hover{border-color:var(--cdp-turquoise);}
.cdp-radio:has(input:checked){border-color:var(--cdp-ink);background:var(--cdp-cream);}
.cdp-org{margin-top:16px;}
.cdp-org[hidden]{display:none;}
