
/* BBR V2 — Billetterie uniquement. Styles isolés pour ne pas toucher au reste du site. */
#checkout.bbr-checkout-v2 {
  --bbr-gold: #d7a02c; --bbr-lightgold:#ffce66; --bbr-orange:#ff8000;
  box-sizing:border-box; display:block; width:100%; max-width:none; margin:0;
  padding:clamp(22px,3.5vw,54px) clamp(12px,3.8vw,72px);
  background:#030708; color:#f7f7f7; position:relative; isolation:isolate; overflow:hidden;
  font-family:'Montserrat',Arial,sans-serif;
}
#checkout.bbr-checkout-v2 *, #checkout.bbr-checkout-v2 *::before, #checkout.bbr-checkout-v2 *::after { box-sizing:border-box; }
#checkout.bbr-checkout-v2::before {
  content:""; position:absolute; inset:0; z-index:-1; opacity:.8; pointer-events:none;
  background:radial-gradient(ellipse 36% 70% at -10% 80%,#17281b 0%,transparent 75%),
             radial-gradient(ellipse 40% 70% at 106% 16%,#172319 0%,transparent 73%),
             repeating-conic-gradient(from 12deg at 0% 100%,transparent 0deg 12deg,#091810 12.2deg 13deg,transparent 13.2deg 23deg);
}
#checkout .bbr-booking-panel {
  width:100%; max-width:1840px; min-height:365px; margin:0 auto; display:grid;
  grid-template-columns:minmax(0,40%) minmax(0,41%) minmax(0,19%);
  background:rgba(2,4,5,.96); border:2px solid #bd891f; border-radius:23px;
  box-shadow:0 0 0 1px rgba(255,190,65,.1),0 20px 65px rgba(0,0,0,.65);
  overflow:hidden;
}
#checkout .bbr-booking-brand { min-width:0; display:grid; grid-template-columns:43% 57%; background:linear-gradient(105deg,#1b1006,#050807 75%); }
#checkout .bbr-booking-visual { position:relative; overflow:hidden; min-height:365px; background:#0d0a06 url('/bbr-checkout/bbr-cocktails-affiche.jpg') center/cover no-repeat; }
#checkout .bbr-booking-visual::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 72%,rgba(0,0,0,.62)); }
#checkout .bbr-booking-visual video { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:center; }
#checkout .bbr-booking-copy { padding:23px 18px 20px 4px; min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
#checkout .bbr-booking-title {
  margin:0 auto auto 0; color:var(--bbr-lightgold); font-family:'Permanent Marker','Pacifico',cursive;
  font-weight:400; font-style:normal; font-size:clamp(27px,2.45vw,48px); line-height:1.05;
  letter-spacing:-.5px; text-shadow:0 3px 12px rgba(209,136,15,.3); transform:rotate(-4deg);
}
#checkout .bbr-booking-title span { display:inline-block; margin-left:10px; }
#checkout .bbr-booking-intro { margin:17px 0 13px; color:#e2e2e2; font-size:clamp(12px,1.05vw,17px); line-height:1.45; }
#checkout .bbr-fedapay-logo { display:flex; align-items:center; justify-content:center; width:fit-content; max-width:95%; padding:8px 10px; background:#fff; border-radius:6px; }
#checkout .bbr-fedapay-logo img { display:block; width:min(100%,195px); max-height:52px; object-fit:contain; }
#checkout .bbr-payment-logos { display:flex; flex-wrap:nowrap; gap:7px; margin-top:15px; width:100%; }
#checkout .bbr-payment-logo { display:flex; flex:0 1 53px; width:53px; height:47px; min-width:0; align-items:center; justify-content:center; overflow:hidden; border-radius:6px; border:1px solid #334047; background:#101820; }
#checkout .bbr-payment-logo img { display:block; width:100%; height:100%; object-fit:contain; }
#checkout .bbr-payment-logo--wave { background:#21c0ef; }
#checkout .bbr-payment-logo--mtn { background:#050505; }
#checkout .bbr-booking-form-area { position:relative; display:flex; align-items:center; min-width:0; padding:23px 26px; }
#checkout .bbr-booking-form-area::before, #checkout .bbr-booking-assurances::before { content:""; position:absolute; left:0; top:22px; bottom:22px; width:1px; background:linear-gradient(180deg,transparent,#c39028 12%,#c39028 87%,transparent); }
#checkout .bbr-booking-form-area form { display:block; width:100%; margin:0; padding:0; background:none; border:0; box-shadow:none; }
#checkout .bbr-booking-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 15px; }
#checkout .bbr-booking-field { display:flex; flex-direction:column; align-items:stretch; gap:7px; min-width:0; margin:0; color:#f3f3f3; font-size:13px; font-weight:600; line-height:1.25; }
#checkout .bbr-booking-field b { color:#ff8a00; }
#checkout .bbr-booking-field--wide { grid-column:1/-1; }
#checkout .bbr-booking-field input, #checkout .bbr-booking-field select, #checkout .bbr-phone-control {
  width:100%; min-width:0; height:47px; padding:0 13px; margin:0;
  border:1.5px solid #3a484f; border-radius:9px; background:linear-gradient(110deg,#0b1217,#081015);
  color:#f5f6f7; font-family:inherit; font-size:14px; font-weight:500; box-shadow:none; outline:none;
}
#checkout .bbr-booking-field input::placeholder { color:#a8b5bf; opacity:1; }
#checkout .bbr-booking-field input:focus, #checkout .bbr-booking-field select:focus, #checkout .bbr-phone-control:focus-within { border-color:var(--bbr-lightgold); box-shadow:0 0 0 2px rgba(255,202,88,.12); }
#checkout .bbr-booking-field select { appearance:auto; cursor:pointer; }
#checkout .bbr-booking-field select option { background:#0b1217; color:#fff; }
#checkout .bbr-phone-control { display:flex; align-items:center; overflow:hidden; padding:0; }
#checkout .bbr-phone-flag { display:flex; align-items:center; justify-content:center; height:58%; padding:0 10px; border-right:1px solid #34434b; font-size:20px; }
#checkout .bbr-phone-control input { border:0; border-radius:0; background:transparent; height:100%; padding:0 10px; box-shadow:none; }
#checkout .bbr-booking-submit {
  display:block; width:100%; min-height:57px; margin:18px 0 0; padding:11px 13px;
  border:0; border-radius:40px; background:linear-gradient(90deg,#ff9a12,#ff7200);
  color:#fff; font-family:inherit; font-size:clamp(13px,1.1vw,18px); font-weight:800;
  text-transform:uppercase; text-align:center; cursor:pointer;
  box-shadow:0 5px 20px rgba(255,120,0,.22); transition:filter .15s ease;
}
#checkout .bbr-booking-submit:hover:not(:disabled) { filter:brightness(1.12); }
#checkout .bbr-booking-submit:disabled { opacity:.55; cursor:not-allowed; }
#checkout .bbr-booking-submit span { margin-left:7px; font-size:1.3em; vertical-align:-1px; }
#checkout #msg { margin-top:9px; color:#ffce66; font-size:13px; }
#checkout .bbr-booking-assurances { position:relative; display:flex; flex-direction:column; justify-content:space-evenly; gap:12px; padding:22px 15px 22px 23px; }
#checkout .bbr-assurance { display:flex; align-items:center; gap:12px; color:#eee; font-size:clamp(11px,.87vw,14px); line-height:1.4; }
#checkout .bbr-assurance-icon { flex:0 0 34px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(130deg,#fff1a0,#efbc40); box-shadow:0 2px 10px rgba(255,193,52,.15); }
#checkout .bbr-assurance-icon svg { width:20px; height:20px; fill:none; stroke:#13130f; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
@media(max-width:1320px) {
  #checkout .bbr-booking-panel { grid-template-columns:minmax(0,39%) minmax(0,41%) minmax(0,20%); }
  #checkout .bbr-booking-copy { padding-right:10px; }
  #checkout .bbr-payment-logos { gap:4px; }
  #checkout .bbr-payment-logo { flex-basis:45px; height:40px; }
  #checkout .bbr-booking-form-area { padding:19px; }
  #checkout .bbr-booking-assurances { padding-left:15px; padding-right:9px; }
  #checkout .bbr-assurance { gap:8px; }
}
@media(max-width:1050px) {
  #checkout .bbr-booking-panel { grid-template-columns:1fr 1fr; }
  #checkout .bbr-booking-brand { grid-column:1/2; }
  #checkout .bbr-booking-form-area { grid-column:2/3; }
  #checkout .bbr-booking-assurances { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:17px 20px; border-top:1px solid rgba(201,152,43,.55); }
  #checkout .bbr-booking-assurances::before { display:none; }
  #checkout .bbr-booking-visual { min-height:350px; }
  #checkout .bbr-assurance { font-size:12px; }
}
@media(max-width:730px) {
  #checkout.bbr-checkout-v2 { padding:22px 12px; }
  #checkout .bbr-booking-panel { display:block; border-radius:18px; }
  #checkout .bbr-booking-brand { min-height:285px; grid-template-columns:42% 58%; }
  #checkout .bbr-booking-visual { min-height:300px; }
  #checkout .bbr-booking-copy { padding:20px 11px 17px 3px; }
  #checkout .bbr-booking-title { font-size:clamp(23px,6vw,39px); }
  #checkout .bbr-booking-intro { margin:16px 0 10px; font-size:12px; }
  #checkout .bbr-fedapay-logo { padding:6px 7px; }
  #checkout .bbr-payment-logos { flex-wrap:wrap; gap:5px; margin-top:11px; }
  #checkout .bbr-payment-logo { flex:0 0 42px; width:42px; height:36px; }
  #checkout .bbr-booking-form-area { padding:21px 15px; }
  #checkout .bbr-booking-form-area::before { display:none; }
  #checkout .bbr-booking-assurances { grid-template-columns:repeat(2,minmax(0,1fr)); padding:18px 15px; }
}
@media(max-width:400px) {
  #checkout .bbr-booking-title { font-size:23px; }
  #checkout .bbr-booking-field { font-size:12px; }
  #checkout .bbr-booking-form-grid { gap:12px 9px; }
  #checkout .bbr-booking-field input, #checkout .bbr-booking-field select, #checkout .bbr-phone-control { height:43px; padding-left:8px; padding-right:8px; font-size:12px; }
  #checkout .bbr-phone-control { padding:0; }
  #checkout .bbr-phone-flag { padding:0 6px; font-size:17px; }
  #checkout .bbr-phone-control input { padding:0 6px; }
  #checkout .bbr-booking-submit { font-size:12px; min-height:50px; }
  #checkout .bbr-assurance { font-size:11px; }
  #checkout .bbr-assurance-icon { width:29px; height:29px; flex-basis:29px; }
}
@media(prefers-reduced-motion:reduce) {
  #checkout .bbr-booking-submit { transition:none; }
}

/* BBR — champ téléphone international, noir et doré */
#checkout .bbr-phone-control { overflow:visible; }
#checkout .bbr-phone-control .iti { display:block; width:100%; height:100%; flex:1; min-width:0; }
#checkout .bbr-phone-control .iti input { width:100%; height:100%; border:0; padding:0 10px 0 62px !important; background:transparent; box-shadow:none; }
#checkout .bbr-phone-control .iti__country-container { height:100%; }
#checkout .bbr-phone-control .iti__selected-country-primary { padding:0 9px; background:transparent; }
#checkout .bbr-phone-control .iti__selected-country-primary:hover { background:rgba(255,206,102,.08); }
#checkout .bbr-phone-fallback-flag[hidden] { display:none !important; }
body .iti__dropdown-content { background:#10191e; border:1px solid #b98b2c; color:#fff; box-shadow:0 12px 35px rgba(0,0,0,.6); }
body .iti__country.iti__highlight, body .iti__country:hover { background:#2b2c26; }
body .iti__search-input { background:#121d23; color:#fff; }
