/* =====================================================================================
   Megaphone : restyle sombre de la boutique pretix (CAP-9, story 5).
   Identité : DESIGN.md de megaphone-web (fond « affiche » texturé, zone de lecture voilée,
   encres craie et lilas, peinture jaune réservée aux actions billetterie, aucun arrondi).
   Chargée par le signal global_html_head sur les pages publiques uniquement (jamais /control).
   Couleurs de base et police : réglages natifs de l'organisateur (commande megaphone_branding,
   --pretix-* du thème) ; ce fichier couvre le reste par des sélecteurs Bootstrap / pretix.
   Texte d'information ≥ 14 px ; contrastes AA mesurés sur le rendu (README).
   Le pied « powered by pretix » n'est jamais masqué.
   ===================================================================================== */

/* ---- Polices (OFL 1.1, auto-hébergées, voir fonts/OFL.txt) ---- */
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/FiraSans-Regular.83ed06c8752c.woff2") format("woff2"), url("fonts/FiraSans-Regular.8a8828468dbb.ttf") format("truetype"); }
@font-face { font-family: "Fira Sans"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/FiraSans-Italic.eb2cc864c669.woff2") format("woff2"), url("fonts/FiraSans-Italic.45bf96bdc575.ttf") format("truetype"); }
@font-face { font-family: "Fira Sans"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/FiraSans-Bold.c9ff5d6d0bc5.woff2") format("woff2"), url("fonts/FiraSans-Bold.eca2c47a78c3.ttf") format("truetype"); }
@font-face { font-family: "Fira Sans"; font-style: italic; font-weight: 700; font-display: swap;
  src: url("fonts/FiraSans-BoldItalic.131ba1655500.woff2") format("woff2"), url("fonts/FiraSans-BoldItalic.3ae367c983e9.ttf") format("truetype"); }
@font-face { font-family: "Fira Sans Condensed"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("fonts/FiraSansCondensed-SemiBold.1793e6368523.woff2") format("woff2"), url("fonts/FiraSansCondensed-SemiBold.b7bf47dd2251.ttf") format("truetype"); }
@font-face { font-family: "Fira Sans Condensed"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("fonts/FiraSansCondensed-ExtraBold.ff24d472b084.woff2") format("woff2"), url("fonts/FiraSansCondensed-ExtraBold.5b8f576d3297.ttf") format("truetype"); }

/* ---- Jetons ---- */
:root {
  --mg-nuit: #131017;
  --mg-sol: #1A161C;
  --mg-craie: #F4F1EA;
  --mg-lilas: #C9C2D6;
  --mg-lilas-clair: #E4DFEA;
  --mg-encre: #0E0B12;
  --mg-erreur: #E2665E;
  --mg-succes: #6FBF73;
  --mg-violet: #4C2D7F;
  --mg-violet-carte: #3E246C;
  --mg-jaune: #F5D423;
  --mg-orange: #E5701F;
  --mg-orange-clair: #F29A4A;
  /* zone de lecture : voile nuit 90 % sur le fond affiche */
  --mg-lecture: rgba(19, 16, 23, .9);
  --mg-surface: #1F1A24;
  --mg-champ: #241E2A;
  --mg-bord: #8C849C;
  --mg-filet: rgba(201, 194, 214, .22);
  --mg-ui: "Fira Sans Condensed", "Arial Narrow", "Fira Sans", Arial, sans-serif;
  --mg-texte: "Fira Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --pretix-font-family-sans-serif: var(--mg-texte);
  color-scheme: dark;
}

/* ---- Fond « affiche » : sol marbré + grain, éclaboussures denses en haut puis calmées ---- */
html {
  background: var(--mg-sol);
}
body {
  position: relative;
  min-height: 100vh;
  background:
    radial-gradient(130% 40% at 25% 0%, rgba(28, 46, 30, .55), transparent 100%),
    radial-gradient(120% 50% at 60% 100%, rgba(48, 26, 30, .45), transparent 100%),
    url("img/texture-sol.c55894677fcc.webp") 0 0 / 390px 540px repeat,
    var(--mg-sol);
  color: var(--mg-craie);
  font-family: var(--mg-texte);
  font-size: 1rem;
  line-height: 1.5;
}
body::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 900px;
  z-index: 0;
  pointer-events: none;
  background: url("img/texture-eclaboussures.53f502f619f8.webp") 0 0 / 390px 540px repeat;
  -webkit-mask-image: linear-gradient(#000 0, #000 45%, transparent 100%);
  mask-image: linear-gradient(#000 0, #000 45%, transparent 100%);
  opacity: .8;
}
body > header, body > .container, body > .main-box, body > nav {
  position: relative;
  z-index: 1;
}

/* Zone de lecture : tout le contenu repose sur un voile nuit (DESIGN › zone-lecture). */
.main-box {
  background: var(--mg-lecture);
  color: var(--mg-craie);
  border: 0;
  border-radius: 0;
  padding-top: 8px;
  padding-bottom: 8px;
}
@media (min-width: 768px) {
  .main-box {
    margin-top: 24px;
    margin-bottom: 40px;
    padding-left: 32px;
    padding-right: 32px;
  }
}

::selection {
  background: var(--mg-jaune);
  color: var(--mg-encre);
}

/* ---- Texte ---- */
p, li, dd, dt, td, th, label, .form-control, .help-block, legend {
  font-size: 1rem;
}
small, .small, .help-block, .text-muted, .info-row p, footer, .price small, .price .text-muted {
  font-size: max(.875rem, 14px);
}
.text-muted, .help-block, h1 small, h2 small, h3 small, h4 small, .h1 small, .h2 small, .h3 small {
  color: var(--mg-lilas);
}
.text-success { color: var(--mg-succes); }
.text-danger { color: var(--mg-erreur); }
.text-warning { color: var(--mg-orange-clair); }
.text-info, .text-primary { color: var(--mg-lilas-clair); }
hr { border-top-color: var(--mg-filet); }
blockquote { border-left-color: var(--mg-violet); }
code, pre, kbd {
  background: var(--mg-surface);
  color: var(--mg-craie);
  border-color: var(--mg-filet);
}

/* Liens : lilas clair souligné (le jaune est réservé aux actions) */
a, .btn-link {
  color: var(--mg-lilas-clair);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
a:hover, a:focus, .btn-link:hover, .btn-link:focus {
  color: var(--mg-craie);
  text-decoration-color: var(--mg-orange);
}
.page-header-links a, .page-header-links > div.header-part a {
  color: var(--mg-lilas-clair);
}

/* Focus : double contour nuit + jaune (DESIGN › bouton-prends-ta-place) */
a:focus-visible, .btn:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--mg-jaune);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--mg-nuit);
}

/* ---- Titres ---- */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--mg-craie);
  font-family: var(--mg-ui);
  font-weight: 800;
  letter-spacing: .01em;
}
h1, .h1, h2.content-header {
  text-transform: uppercase;
  font-size: 2.25rem;
  line-height: 1.05;
}
h4, .h4 {
  font-weight: 600;
  font-size: 1.25rem;
}
h5, .h5, h6, .h6 {
  font-size: max(.875rem, 14px);
}
/* Titres de section : jaune, incliné, souligné orange peint sous la ligne de base */
.front-page > h2, .front-page > h3, aside.front-page h2, .item-category > h3:not(.sr-only),
.cart-row-header h3, .checkout-flow-header h2, main#content > h2:not(.content-header),
main#content > h3, .panel-group + h2, .page-header h2 {
  display: inline-block;
  position: relative;
  color: var(--mg-jaune);
  text-transform: uppercase;
  transform: rotate(-2deg);
  transform-origin: 0 100%;
  padding: 0 6px 10px;
  background: url("img/pinceau-orange.a49b98704477.svg") left bottom / calc(100% + 24px) 14px no-repeat;
}
main#content h2.sr-only, main#content h3.sr-only, h2.sr-only, h3.sr-only {
  background: none;
  padding: 0;
  transform: none;
}
.item-category h3, .item-category .h3 {
  color: var(--mg-jaune);
  text-transform: uppercase;
}
.page-header {
  border-bottom: 1px solid var(--mg-filet);
}
.page-header .event-logo, .page-header .organizer-logo {
  max-height: 72px;
  width: auto;
}
.info-row p {
  color: var(--mg-lilas-clair);
}
.info-row-icon, .info-row-icon .fa {
  color: var(--mg-orange);
}

/* ---- Boutons ---- */
.btn {
  border-radius: 0;
  font-family: var(--mg-ui);
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 1rem;
  min-height: 44px;
}
.btn-sm, .btn-xs {
  min-height: 32px;
  font-size: max(.875rem, 14px);
}
/* Peinture jaune : actions billetterie (ajouter au panier, continuer, payer, télécharger) */
.btn-primary, .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active,
.btn-primary:active:hover, .btn-primary:active:focus, .open > .dropdown-toggle.btn-primary,
.btn-success, .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active {
  color: var(--mg-encre);
  border: 0;
  background:
    url("img/pinceau-jaune.6752835924e1.svg") center / 100% 100% no-repeat,
    linear-gradient(var(--mg-jaune), var(--mg-jaune)) center / calc(100% - 18px) calc(100% - 10px) no-repeat;
  background-color: transparent;
  text-decoration: none;
  box-shadow: none;
}
.btn-primary:hover, .btn-success:hover {
  filter: brightness(1.06);
}
.btn-primary[disabled], .btn-primary.disabled, .btn-success[disabled], .btn-success.disabled {
  opacity: .55;
}
.btn-default, .btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active,
.btn-default:active:hover, .open > .dropdown-toggle.btn-default, .btn-info, .btn-warning {
  color: var(--mg-craie);
  background: transparent;
  border: 2px solid var(--mg-lilas);
  text-decoration: none;
  box-shadow: none;
}
.btn-default:hover, .btn-default:focus, .btn-info:hover, .btn-warning:hover {
  background: rgba(244, 241, 234, .08);
  border-color: var(--mg-craie);
}
.btn-danger, .btn-danger:hover, .btn-danger:focus, .btn-danger:active {
  color: var(--mg-erreur);
  background: transparent;
  border: 2px solid var(--mg-erreur);
  text-decoration: none;
}
.btn-danger:hover { background: rgba(226, 102, 94, .12); }
.btn-link { font-family: var(--mg-texte); font-weight: 400; text-transform: none; letter-spacing: 0; }
.input-item-count-group .btn, .input-item-count-dec, .input-item-count-inc {
  min-height: 0;
  border-width: 1px;
  border-color: var(--mg-bord);
  font-family: var(--mg-texte);
}

/* ---- Formulaires ---- */
.form-control, select.form-control, textarea.form-control, input[type="text"], input[type="email"],
input[type="number"], input[type="tel"], input[type="password"], input[type="date"], select, textarea {
  background-color: var(--mg-champ);
  color: var(--mg-craie);
  border: 1px solid var(--mg-bord);
  border-radius: 0;
  box-shadow: none;
}
.form-control:focus, select:focus, textarea:focus, input:focus {
  border-color: var(--mg-jaune);
  box-shadow: none;
}
.form-control::placeholder, input::placeholder, textarea::placeholder {
  color: var(--mg-lilas);
  opacity: .85;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
  background-color: var(--mg-surface);
  color: var(--mg-lilas);
}
option, optgroup {
  background: var(--mg-nuit);
  color: var(--mg-craie);
}
input[type="checkbox"], input[type="radio"] {
  accent-color: var(--mg-jaune);
}
label, .control-label, legend {
  color: var(--mg-craie);
}
.label-required {
  color: var(--mg-lilas);
  font-size: max(.875rem, 14px);
}
legend {
  border-bottom-color: var(--mg-filet);
  font-family: var(--mg-ui);
  font-weight: 800;
}
.input-group-addon {
  background: var(--mg-surface);
  color: var(--mg-craie);
  border-color: var(--mg-bord);
  border-radius: 0;
}
.has-error .form-control, .has-error .input-group-addon { border-color: var(--mg-erreur); }
.has-error .help-block, .has-error .control-label, .has-error .checkbox, .has-error .radio,
.has-error label, .errorlist, .form-errors { color: var(--mg-erreur); }
.has-success .form-control { border-color: var(--mg-succes); }

/* ---- Panneaux, encarts, tableaux ---- */
.panel, .well, .thumbnail, .list-group-item, .nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus, .dropdown-menu, .popover, details.panel {
  background-color: var(--mg-surface);
  color: var(--mg-craie);
  border-color: var(--mg-filet);
  border-radius: 0;
  box-shadow: none;
}
.panel .panel-heading, .panel-default .panel-heading, .panel-primary .panel-heading,
.panel-success .panel-heading, .panel-info .panel-heading, .panel-warning .panel-heading,
.panel-danger .panel-heading, details.panel > summary,
.panel-default > legend > .panel-heading, .panel-default > .accordion-radio > .panel-heading,
fieldset.accordion-panel > legend > .panel-heading {
  background-color: var(--mg-violet);
  color: var(--mg-craie);
  border-color: var(--mg-violet);
  border-radius: 0;
}
.panel-heading .panel-title, .panel-heading a, .panel-heading .text-muted, .panel-heading small {
  color: var(--mg-craie);
}
.panel-danger > .panel-heading { border-left: 6px solid var(--mg-erreur); }
.panel-success > .panel-heading { border-left: 6px solid var(--mg-succes); }
.panel-warning > .panel-heading { border-left: 6px solid var(--mg-orange); }
.panel-default > .accordion-radio + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .panel-body {
  border-top-color: var(--mg-filet);
}
.panel-footer {
  background-color: var(--mg-nuit);
  border-top-color: var(--mg-filet);
  color: var(--mg-craie);
}
.panel-primary, .panel-danger, .panel-success, .panel-warning, .panel-info, .panel-default {
  border-color: var(--mg-filet);
}
.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
  background-color: var(--mg-violet);
  border-color: var(--mg-violet);
  color: var(--mg-craie);
}
.dropdown-menu > li > a { color: var(--mg-craie); text-decoration: none; }
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { background: var(--mg-violet); color: var(--mg-craie); }
.nav-tabs { border-bottom-color: var(--mg-filet); }
.nav-tabs > li > a { color: var(--mg-lilas-clair); border-radius: 0; text-decoration: none; }
.nav-tabs > li > a:hover { background: var(--mg-surface); border-color: var(--mg-filet); }

.table, .table > thead > tr > th, .table > tbody > tr > td, .table > tbody > tr > th,
.table > tfoot > tr > td, .table > thead > tr > td {
  color: var(--mg-craie);
  border-color: var(--mg-filet);
}
.table > thead > tr > th {
  color: var(--mg-lilas-clair);
  font-family: var(--mg-ui);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  border-bottom-width: 1px;
}
.table-striped > tbody > tr:nth-of-type(odd) { background-color: rgba(244, 241, 234, .04); }
.table-hover > tbody > tr:hover, .table > tbody > tr.active > td { background-color: rgba(244, 241, 234, .07); }

/* Alertes : fond surface, filet coloré, texte craie */
.alert, .alert-info, .alert-success, .alert-warning, .alert-danger, .alert-primary, .alert-legal {
  background-color: var(--mg-surface);
  color: var(--mg-craie);
  border: 1px solid var(--mg-filet);
  border-left: 6px solid var(--mg-lilas);
  border-radius: 0;
}
.alert-success { border-left-color: var(--mg-succes); }
.alert-warning { border-left-color: var(--mg-orange); }
.alert-danger { border-left-color: var(--mg-erreur); }
.alert-primary { border-left-color: var(--mg-jaune); }
.alert a, .alert .alert-link { color: var(--mg-lilas-clair); }
.alert h4, .alert strong { color: var(--mg-craie); }

/* Étiquettes et badges : texte encre sur couleur claire */
.label, .badge {
  border-radius: 0;
  font-family: var(--mg-ui);
  font-weight: 600;
  font-size: max(.875rem, 14px);
  letter-spacing: .04em;
}
.label-success, .badge-success { background-color: var(--mg-succes); color: var(--mg-encre); }
.label-danger, .badge-danger { background-color: var(--mg-erreur); color: var(--mg-encre); }
.label-warning, .badge-warning { background-color: var(--mg-orange-clair); color: var(--mg-encre); }
.label-info, .label-default, .label-primary, .badge {
  background-color: var(--mg-lilas);
  color: var(--mg-encre);
}

/* ---- Boutique : produits, panier, tunnel ---- */
.product-row, .cart-row, .item-category .product-row + .product-row {
  border-color: var(--mg-filet);
}
.product-row .price, .cart-row .price, .cart-row .totalprice, .cart .total, .cart-row.total {
  color: var(--mg-craie);
}
.product-row h4, .product-row .h4 {
  color: var(--mg-craie);
}
.product-description, .product-description p {
  color: var(--mg-lilas-clair);
}
.availability-box .text-muted, .availability-box small { color: var(--mg-lilas); }
.cart-row.total, .cart-row .totalprice { font-weight: 700; }
.cart-icon-details, .cart-icon-details .fa, .cart-icon { color: var(--mg-lilas-clair); }

/* Étapes du tunnel de commande */
.checkout-flow .checkout-step::before, .checkout-flow .checkout-step::after {
  background: #3A3342;
}
.checkout-flow .checkout-step.step-done::before, .checkout-flow .checkout-step.step-done::after,
.checkout-flow .checkout-step.step-current::before {
  background: var(--mg-jaune);
}
.checkout-flow .checkout-step .checkout-step-icon {
  background: var(--mg-surface);
  border-color: var(--mg-bord);
  color: var(--mg-lilas);
}
.checkout-flow .checkout-step.step-done .checkout-step-icon,
.checkout-flow .checkout-step.step-current .checkout-step-icon {
  background: var(--mg-jaune);
  border-color: var(--mg-jaune);
  color: var(--mg-encre);
}
.checkout-flow .checkout-step .checkout-step-label, .checkout-flow .checkout-step a .checkout-step-label,
.checkout-flow .checkout-step.step-done .checkout-step-label a {
  color: var(--mg-lilas-clair);
}
.checkout-flow .checkout-step.step-current .checkout-step-label { color: var(--mg-craie); }
.checkout-flow a, .checkout-flow a:hover { text-decoration: none; }

/* Aperçu replié du panier : fondu vers la surface sombre */
.sneak-peek-trigger {
  background: linear-gradient(0deg, rgba(31, 26, 36, .96) 44%, rgba(31, 26, 36, 0) 100%);
}

/* Calendrier et listes d'événements (page organisateur) */
.table-calendar h3, .week-calendar h3, .day-calendar h3, .table-calendar th, .calendar th {
  color: var(--mg-lilas-clair);
  border-color: var(--mg-filet);
}
.week-calendar h3 { background-color: var(--mg-surface); }
.table-calendar td, .table-calendar th { border-color: var(--mg-filet); }
.table-calendar .day:nth-child(even), .week-calendar .weekday:nth-child(even), .tick {
  background-color: rgba(244, 241, 234, .04);
}
.table-calendar .day-label, .table-calendar a.day-label {
  --status-text-color: var(--mg-craie);
  color: var(--mg-craie);
  font-size: max(.875rem, 14px);
}
.table-calendar .no-events .day-label { color: var(--mg-lilas); }
.calendar-container .calendar-empty, .event-list .calendar-empty, .day-row-name {
  background: rgba(19, 16, 23, .92);
  color: var(--mg-craie);
}
.ticks li { border-bottom-color: var(--mg-filet); }
.table-calendar a.event, .week-calendar a.event, .day-calendar a.event {
  --status-bg-color: var(--mg-violet-carte);
  --status-text-color: var(--mg-craie);
  --status-border-color: var(--mg-lilas);
  font-size: max(.875rem, 14px);
  border-radius: 0;
}
.table-calendar a.event.available, .week-calendar a.event.available, .day-calendar a.event.available {
  --status-bg-color: var(--mg-violet-carte);
  --status-text-color: var(--mg-craie);
  --status-border-color: var(--mg-succes);
}
.table-calendar a.event.waitinglist, .week-calendar a.event.waitinglist, .day-calendar a.event.waitinglist {
  --status-bg-color: var(--mg-violet-carte);
  --status-text-color: var(--mg-craie);
  --status-border-color: var(--mg-orange);
}
.table-calendar a.event.reserved, .table-calendar a.event.soldout, .week-calendar a.event.reserved,
.week-calendar a.event.soldout, .day-calendar a.event.reserved, .day-calendar a.event.soldout {
  --status-bg-color: var(--mg-violet-carte);
  --status-text-color: var(--mg-craie);
  --status-border-color: var(--mg-erreur);
}
.table-calendar a.event.continued, .table-calendar a.event.over, .week-calendar a.event.continued,
.week-calendar a.event.over, .day-calendar a.event.continued, .day-calendar a.event.over {
  --status-bg-color: var(--mg-surface);
  --status-text-color: var(--mg-lilas);
  --status-border-color: var(--mg-bord);
}
.day-calendar .current-time-bar, .day-calendar .current-time-bar time {
  background: var(--mg-jaune);
  color: var(--mg-encre);
  outline-color: var(--mg-nuit);
}
.event-list a:not(.btn) { color: var(--mg-craie); }
.alternating-rows .row:nth-child(even) {
  background-color: rgba(244, 241, 234, .04);
}
.full-width-list > li + li, .full-width-list > .row + .row {
  border-top-color: var(--mg-filet);
}

/* Boîtes de dialogue */
.modal-card, dialog.modal-card, .modal-content, #ajaxerr .modal-card {
  background: var(--mg-nuit);
  color: var(--mg-craie);
  border: 1px solid var(--mg-filet);
  border-radius: 0;
}
dialog.modal-card .modal-card-icon, .modal-wrapper .modal-card .modal-card-icon, .modal-card-icon {
  background: var(--mg-violet);
  color: var(--mg-craie);
}
.modal-card .modal-card-icon .fa, .modal-card .big-icon { color: var(--mg-craie); }
dialog::backdrop, .modal-wrapper { background: rgba(9, 7, 12, .74); }

/* ---- Pied de page : lilas sur la zone de lecture ; « powered by pretix » toujours visible ---- */
footer, footer nav, footer li {
  color: var(--mg-lilas);
}
footer a, footer a:hover, footer a:focus {
  color: var(--mg-lilas-clair);
}

/* Contraste forcé : couleurs système */
@media (forced-colors: active) {
  body::before { display: none; }
  .btn-primary, .btn-success { background: ButtonFace; color: ButtonText; border: 1px solid ButtonText; }
}
