/* ===============================
   COFRAC 2026 - CSS COMPLET
   Home + Book now + mobile
   =============================== */

:root {
  --menu-width: 220px;
  --content-gap: 24px;
  --brand: #00a1b0;
  --brand-dark: #0055a4;
  --text: #252525;
}

/* Base */
html,
body,
form#aspnetForm {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  min-height: 100% !important;
  overflow-x: hidden !important;
  font-family: "Roboto", Arial, sans-serif !important;
  color: var(--text);
  background: #fff !important;
}

/* Layout principal : menu + contenu */
#ctl00_Main_bodyDiv {
  display: grid !important;
  grid-template-columns: var(--menu-width) minmax(0, 1fr) !important;
  width: 100% !important;
  min-height: 100vh !important;
  background: #fff !important;
}

/* Menu gauche */
#ctl00_Main_bodyDiv > header,
header,
#ctl00_Main_headerDiv {
  grid-column: 1 !important;
  position: sticky !important;
  top: 0 !important;
  width: var(--menu-width) !important;
  max-width: var(--menu-width) !important;
  min-width: var(--menu-width) !important;
  height: 100vh !important;
  min-height: 100vh !important;
  background: var(--brand) !important;
  z-index: 1000 !important;
}

/* Cache date / lieu / logo vide */
#ctl00_Main_headerDiv .date,
#ctl00_Main_headerDiv .logo,
header .date,
header .logo {
  display: none !important;
}

/* Navigation */
#menu {
  width: 100% !important;
  padding-top: 120px !important;
  margin: 0 !important;
}

#menu ul {
  margin: 0 !important;
  padding: 0 !important;
}

#menu li,
#menu li.list-inline-item {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#menu a {
  display: block !important;
  padding: 10px 8px !important;
  color: #fff !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
}

#menu a:hover,
#menu a:focus,
#menu li.active a,
#menu .MainMenuItem a {
  background: var(--brand-dark) !important;
  color: #fff !important;
}

/* Zone contenu */
#ctl00_Main_bodyDiv > main,
main {
  grid-column: 2 !important;
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 24px !important;
  box-sizing: border-box !important;
  background: #fff !important;
}

/* Supprime les centrages Bootstrap / Key4 */
#ctl00_Main_main,
#containerDivC,
#ctl00_Main_ctl16_Content,
#ctl00_Main_TicketPanel,
#ctl00_Main_UpdPnl,
#ctl00_Main_UpdPnl article,
#ctl00_Main_UpdPnl article > .container,
main .container,
.registration,
.registrationticket,
.registration.profile.registrationticket,
#registration,
.InnerTicketPnl {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  text-align: left !important;
}

/* Neutralise les wrappers Home */
.layouttop,
.layoutinner,
.ContentBlock,
.ContentBlockInner,
.ContentBlockInner p,
.CONTENT_BLOCK {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

/* Tables de layout générées */
table[id*="Layout"],
table[id*="TblTicket"],
.TblTckt,
.TblSubSection,
.TblTitreRubriqueBo {
  width: 100% !important;
  max-width: 100% !important;
  border-collapse: collapse !important;
}

/* Image Home + image Book now */
.ContentBlockInner img,
#ctl00_Main_TcktFront_IT_LBL14056 img,
.registrationticket img {
  display: block !important;
  width: 80% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 0 32px 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
}

/* Supprime les tailles inline gênantes */
#ctl00_Main_TcktFront_IT_LBL14056 p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Cache le faux titre Home dans Book now */
#ctl00_Main_TcktFront_lbl_RU_1543,
.RCRub1,
#ctl00_Main_TcktFront_br_TblTicket_RU_14056 {
  display: none !important;
}

/* Titres */
.TitreRubriqueV2 {
  color: var(--brand) !important;
  font-size: clamp(2rem, 3vw, 2.8rem) !important;
  line-height: 1.15 !important;
  margin: 28px 0 18px 0 !important;
  padding: 0 !important;
  font-weight: 400 !important;
}

/* Formulaire */
label:not(.custom-control-label):not(.switch-control-label) {
  color: var(--text) !important;
}

.form-control,
input.form-control,
textarea.form-control,
select.form-control {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Labels formulaire */
.lblc {
  vertical-align: top !important;
  padding-right: 16px !important;
}

/* Boutons */
.btn.btn-warning,
#ctl00_Main_TcktFront_BtnSave,
#ctl00_Main_TcktFront_BtnCancel {
  background: var(--brand-dark) !important;
  border-color: var(--brand-dark) !important;
  color: #fff !important;
}

.ContainerSpanButtons {
  display: block !important;
  margin: 24px 0 48px 0 !important;
  padding: 0 !important;
}

/* Ancien tableau registration inutile */
.tableRegistration,
#ctl00_mainTableRegistration {
  width: 100% !important;
  max-width: 100% !important;
}

/* Règle existante conservée */
#ctl00_Main_TcktFront_lbl_RU_1543 {
  display: none !important;
}

/* Mobile */
@media (max-width: 991px) {
  #ctl00_Main_bodyDiv {
    display: block !important;
  }

  #ctl00_Main_bodyDiv > header,
  header,
  #ctl00_Main_headerDiv {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: auto !important;
  }

  #menu {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  #menu a {
    padding: 10px 16px !important;
  }

  #ctl00_Main_bodyDiv > main,
  main {
    padding: 16px !important;
  }

  .TblTckt tr,
  .TblTckt td {
    display: block !important;
    width: 100% !important;
  }

  .lblc,
  .lblc span {
    width: 100% !important;
    display: block !important;
    padding-right: 0 !important;
    margin-bottom: 6px !important;
  }

  .TitreRubriqueV2 {
    font-size: 1.8rem !important;
  }

  .ContainerSpanButtons input {
    width: 100% !important;
    margin: 6px 0 !important;
  }
}
