/* 2S NU-002 UX 1.2.0 */

.s2-nu002-opening-validation-hidden,
.s2-nu002-native-static-hidden,
.s2-nu002-native-ticket-hidden,
.s2-nu002-ticket-original-hidden {
  display: none !important;
}

.s2-nu002-capacity-fixed {
  color: #10253f !important;
  font-weight: 800 !important;
}

/* ------------------------------------------------------------------
   Information de réservation : rendu public avant sélection
   ------------------------------------------------------------------ */
.s2-nu002-static-modules {
  width: 100%;
  margin: 16px 0 4px;
}

.s2-nu002-static-modules__grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}

.s2-nu002-static-module {
  overflow: hidden;
  min-width: 0;
  border: 1px solid #dce6ed;
  border-radius: 12px;
  background: #f8fafc;
}

.s2-nu002-static-module__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px 10px;
  border-bottom: 1px solid #e5edf2;
  background: #fff;
}

.s2-nu002-static-module__top > span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(0,159,227,.10);
  color: #007fb6;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .035em;
}

.s2-nu002-static-module__top strong {
  color: #10253f;
  font-size: .96rem;
  white-space: nowrap;
}

.s2-nu002-static-module__when {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 14px;
  color: #65778a;
  font-size: .88rem;
}

.s2-nu002-static-module__when strong {
  color: #10253f;
}

.s2-nu002-static-modules__foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 12px;
}

.s2-nu002-static-modules__foot > div {
  padding: 12px 14px;
  border: 1px solid #dce6ed;
  border-radius: 10px;
  background: #f5f8fa;
}

.s2-nu002-static-modules__foot span,
.s2-nu002-live-field > span,
.s2-nu002-ticket-group__summary span {
  display: block;
  margin-bottom: 5px;
  color: #6b7e91;
  font-size: .69rem;
  font-weight: 850;
  letter-spacing: .035em;
}

.s2-nu002-static-modules__foot strong {
  color: #10253f;
  font-size: .93rem;
}

/* ------------------------------------------------------------------
   Live configurator : replaces cramped native ticket table visually
   ------------------------------------------------------------------ */
.s2-nu002-live-configurator {
  box-sizing: border-box;
  width: 100%;
  margin: 16px 0 20px;
  padding: 16px;
  border: 1px solid #d9e5ed;
  border-radius: 14px;
  background: #f8fbfd;
}

.s2-nu002-live-configurator__intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.s2-nu002-live-configurator__intro > div:first-child {
  display: grid;
  gap: 3px;
}

.s2-nu002-live-configurator__intro > div:first-child > span {
  color: #009fe3;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .055em;
}

.s2-nu002-live-configurator__intro strong {
  color: #10253f;
}

.s2-nu002-live-configurator__price {
  display: grid;
  gap: 2px;
  text-align: right;
  color: #607286;
  font-size: .82rem;
}

.s2-nu002-live-configurator__price strong {
  color: #f1841a;
  font-size: 1rem;
}

.s2-nu002-live-configurator__hint {
  margin: 10px 0 14px;
  color: #64768a;
  font-size: .82rem;
  line-height: 1.4;
}

.s2-nu002-live-configurator__grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}

.s2-nu002-live-module {
  overflow: hidden;
  min-width: 0;
  border: 1px solid #dce6ed;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(16,37,63,.035);
}

.s2-nu002-live-module__head {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 13px 10px;
}

.s2-nu002-live-module__badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(0,159,227,.10);
  color: #007fb6;
  font-size: .70rem;
  font-weight: 900;
}

.s2-nu002-live-module__date {
  min-width: 0;
  display: grid;
  gap: 2px;
  color: #66798c;
  font-size: .82rem;
}

.s2-nu002-live-module__date strong {
  color: #10253f;
  font-size: .87rem;
}

.s2-nu002-live-module__availability {
  padding: 7px 13px;
  border-top: 1px solid #edf2f5;
  border-bottom: 1px solid #edf2f5;
  background: #f8fafc;
  color: #617488;
  font-size: .78rem;
}

.s2-nu002-live-module__fields {
  display: grid;
  grid-template-columns: .9fr 1.15fr .9fr;
}

.s2-nu002-live-field {
  min-width: 0;
  padding: 11px 12px 12px;
}

.s2-nu002-live-field + .s2-nu002-live-field {
  border-left: 1px solid #edf2f5;
}

.s2-nu002-live-field strong {
  color: #10253f;
  font-size: .90rem;
  white-space: nowrap;
}

.s2-nu002-config-select {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 7px 32px 7px 10px !important;
  border: 1px solid #cfdce6 !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #10253f !important;
  font: inherit !important;
  font-weight: 750 !important;
}

.s2-nu002-config-select:focus {
  border-color: #009fe3 !important;
  outline: 2px solid rgba(0,159,227,.17) !important;
  outline-offset: 1px !important;
}

/* Sidebar ------------------------------------------------------------ */
.s2-nu002-sidebar { overflow: hidden; }

/* Tickets client grouped -------------------------------------------- */
.s2-nu002-ticket-group {
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #d9e4ec !important;
  border-radius: 16px !important;
  background: #fff;
  box-shadow: 0 8px 22px rgba(16,37,63,.055) !important;
}
.s2-nu002-ticket-group::before {content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#009fe3;}
.s2-nu002-ticket-group__head {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px 23px;border-bottom:1px solid #e5edf3;}
.s2-nu002-ticket-group__eyebrow {margin-bottom:5px;color:#009fe3;font-size:.72rem;font-weight:900;letter-spacing:.055em;}
.s2-nu002-ticket-group h3 {margin:0;color:#10253f;font-size:1.08rem;line-height:1.25;}
.s2-nu002-ticket-group__status {flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#fff2d9;color:#9a5a00;font-size:.72rem;font-weight:800;}
.s2-nu002-ticket-group__summary {display:grid;grid-template-columns:1.2fr .8fr 1.2fr 1fr;gap:1px;background:#e8eef3;}
.s2-nu002-ticket-group__summary > div {min-width:0;padding:13px 15px;background:#fff;}
.s2-nu002-ticket-group__summary strong {display:block;color:#10253f;font-size:.82rem;line-height:1.35;overflow-wrap:anywhere;}
.s2-nu002-ticket-group__pricing {display:flex;align-items:baseline;gap:12px;padding:13px 20px 13px 23px;border-top:1px solid #edf2f5;color:#607286;font-size:.82rem;}
.s2-nu002-ticket-group__pricing strong {color:#10253f;font-size:.92rem;}
.s2-nu002-ticket-group__pricing small {color:#718398;}
.s2-nu002-ticket-group__action {float:right;margin:0 18px 16px 0 !important;border-radius:9px !important;font-weight:800 !important;}

/* ------------------------------------------------------------------
   Responsive: smartphone is a first-class layout, not a squeezed table
   ------------------------------------------------------------------ */
@media (max-width: 760px) {
  .s2-nu002-static-modules__grid,
  .s2-nu002-live-configurator__grid,
  .s2-nu002-static-modules__foot {
    grid-template-columns: 1fr;
  }

  .s2-nu002-static-module__when {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .s2-nu002-live-configurator {
    margin: 12px 0 16px;
    padding: 12px;
    border-radius: 12px;
  }

  .s2-nu002-live-configurator__intro {
    flex-direction: column;
    gap: 8px;
  }

  .s2-nu002-live-configurator__price {
    text-align: left;
  }

  .s2-nu002-live-module__head {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .s2-nu002-live-module__fields {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "price total"
      "qty qty";
  }

  .s2-nu002-live-field + .s2-nu002-live-field {
    border-left: 0;
  }

  .s2-nu002-live-field--price {grid-area:price;border-right:1px solid #edf2f5;}
  .s2-nu002-live-field--total {grid-area:total;}
  .s2-nu002-live-field--qty {grid-area:qty;border-top:1px solid #edf2f5;}

  .s2-nu002-config-select {
    min-height: 46px !important;
    font-size: 1rem !important;
  }

  .s2-nu002-ticket-group__summary {grid-template-columns:1fr 1fr;}
  .s2-nu002-ticket-group__pricing {align-items:flex-start;flex-direction:column;gap:3px;}
}

@media (max-width: 430px) {
  .s2-nu002-live-configurator {padding: 10px;}
  .s2-nu002-live-module__head,
  .s2-nu002-live-module__availability,
  .s2-nu002-live-field {padding-left: 11px;padding-right: 11px;}
  .s2-nu002-ticket-group__head {flex-direction:column;}
  .s2-nu002-ticket-group__summary {grid-template-columns:1fr;}
}


/* 1.2.1 — éviter toute compaction résiduelle du bloc public ----------- */

.s2-nu002-static-ready .s2-nu002-static-modules {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
}

.s2-nu002-static-ready .s2-nu002-static-modules__grid {
  width: 100% !important;
}

.s2-nu002-static-ready .s2-nu002-static-module {
  width: 100% !important;
}

@media (min-width: 761px) {
  .s2-nu002-static-modules__grid {
    grid-template-columns: repeat(2, minmax(320px,1fr)) !important;
  }
}
