/* Bombazo Tickets — additions au thème de base (dont main.css est recoloré).
   Tout ce qui n'est pas « la couleur » est ici, numéroté comme dans la présentation : M = marque, A = animation proposée,
   D = affichage amélioré. Comparaison sans les animations ajoutées : ?anim=0 (html.no-anim). prefers-reduced-motion respecté. */

/* ---------- M1 logo : le nom seul, « BombazoTickets » en Outfit 800 ; Bombazo en rouge carmin, Tickets dans la couleur du texte ; aucun signe ---------- */
.brand { gap: 0 }
.brand__w { display: inline-block; letter-spacing: -.03em; line-height: 1 }
.brand em { font-style: normal; color: var(--violet) }
.ftr .brand { margin: 0 }

/* ---------- recherche : suggestions dans la feuille (la vraie recherche interroge le serveur) ---------- */
.tx-so-lab { padding: 18px 0 8px; font: 600 12.5px var(--fb); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-3) }
.tx-so-chips { display: flex; flex-wrap: wrap; gap: 8px }
.tx-so-chips .tx-sr-chip { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--fg) }

/* ---------- D1 plan par tribune : échelle de prix sous chaque tribune (barre = niveau de prix, la moins chère est la plus courte) ---------- */
.zone__bar { display: block; height: 3px; width: var(--w, 40%); max-width: 160px; margin-top: 6px; border-radius: 2px; background: var(--c, var(--bg-4)); opacity: .9 }
.zone.is-hot .zone__bar { opacity: 1 }

/* ---------- D2 blasons : plaques un peu plus présentes dans les listes, logos nets ---------- */
.rw .bd, .mq__it .bd, .aff__top .bd { box-shadow: 0 2px 10px rgba(0, 0, 0, .35) }
.bd img, .lg img { image-rendering: auto }

/* ---------- D3 états officiels : « complet » en rose lisible sur la nuit chaude ---------- */
.dot--full::before { box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 26%, transparent) }

/* ---------- A7 micro-interactions : flèches des boutons, pression des pilules ---------- */
.btn svg, .aff__go svg, .sfake__go svg, .gx__r svg, .zone__p i svg, .tk__go svg { transition: transform .3s var(--ease) }
.btn:hover svg, .sfake:hover .sfake__go svg, .gx__r:hover svg, .zone:hover .zone__p i svg, .tk__main:hover .tk__go svg { transform: translateX(3px) }
.agd button, .tabs button, .qk a, .mq__it, .clb__it, .pc, .mini, .aff__tile { transition: background .25s var(--ease), border-color .25s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease) }
.agd button:active, .tabs button:active, .qk a:active { transform: scale(.96) }
@media (hover: hover) {
  .mini:hover, .pc:hover { transform: translateY(-3px); border-color: var(--violet-l) }
  .mq__it:hover { transform: translateY(-2px) }
  .rw:hover .rw__t, .zone:hover .zone__n { color: var(--violet-x) }
  .rw__t, .zone__n { transition: color .2s }
}

/* ---------- A6 transitions entre pages (fondu, l'en-tête reste en place) ---------- */
@view-transition { navigation: auto }
.hdr { view-transition-name: hdr }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .32s }

@media (prefers-reduced-motion: no-preference) {
  /* ---------- A1 révélation en cascade : dans une section qui entre à l'écran, les lignes et cartes montent une à une ---------- */
  html.js:not(.no-anim) .rv :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile), html.js:not(.no-anim) #une:not(.is-in) .aff__tile { opacity: 0; transform: translateY(14px) }
  html.js:not(.no-anim) .rv.is-in :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile), html.js:not(.no-anim) #une.is-in .aff__tile { opacity: 1; transform: none; transition: opacity .55s var(--ease), transform .7s var(--ease) }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in) :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile):nth-child(2) { transition-delay: .06s }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in) :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile):nth-child(3) { transition-delay: .12s }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in) :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile):nth-child(4) { transition-delay: .18s }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in) :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile):nth-child(5) { transition-delay: .24s }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in) :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile):nth-child(6) { transition-delay: .3s }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in) :is(.rw, .clb__it, .pc, .art, .steps li, .faq details, .aff__tile):nth-child(n+7) { transition-delay: .36s }
  /* les panneaux cachés (jours, compétitions) ne doivent pas rester invisibles quand on les affiche après l'entrée */
  html.js:not(.no-anim) .rv.is-in [role=tabpanel] .rw { transition-delay: 0s }

  /* ---------- A2 : plus de balayage lumineux derrière l'accroche (couleur de marque à plat, sans dégradé) ---------- */
  .hb { position: relative; overflow: hidden }
  .hb__in { position: relative; z-index: 1 }

  /* ---------- A3 photos : elles apparaissent une fois chargées (plus de flash gris), l'affiche principale se dévoile par balayage ---------- */
  html.js:not(.no-anim) :is(.ph, .aff__ph) img:not(.is-ld) { opacity: 0 }
  html.js:not(.no-anim) :is(.ph, .aff__ph) img { transition: opacity .7s var(--ease), transform .8s var(--ease) }
  html.js:not(.no-anim) .aff__main .aff__ph { clip-path: inset(0 100% 0 0); transition: clip-path 1.1s var(--ease) .1s }
  html.js:not(.no-anim) #une.is-in .aff__main .aff__ph { clip-path: inset(0 0 0 0) }
  html.js:not(.no-anim) .fx__ban img { opacity: 0; transition: opacity .8s var(--ease) }
  html.js:not(.no-anim) .fx__ban img.is-ld { opacity: 1 }

  /* ---------- A4 plan du stade : les tribunes se dessinent de la moins chère à la plus chère, la moins chère clignote deux fois ---------- */
  .stade .sg { transition: filter .2s, opacity .55s var(--ease), transform .6s var(--ease); transform-box: fill-box; transform-origin: 50% 50% }
  html.js:not(.no-anim) .stade:not(.is-in) .sg { opacity: 0; transform: scale(.9) }
  .stade.is-in .sg[data-zone="0"] { transition-delay: .05s } .stade.is-in .sg[data-zone="1"] { transition-delay: .17s } .stade.is-in .sg[data-zone="2"] { transition-delay: .29s }
  .stade.is-in .sg[data-zone="3"] { transition-delay: .41s } .stade.is-in .sg--off { transition-delay: .53s }
  html.js:not(.no-anim) .stade.is-in:not(.has-sel) .sg[data-zone="0"] { animation: roar-ping 1.1s ease-in-out 1s 2 }
  @keyframes roar-ping { 50% { filter: brightness(1.55) } }
  html.js:not(.no-anim) .plan__read { animation: fade-in .6s var(--ease) 1.2s both }

  /* ---------- A5 onglets : le panneau choisi monte en cascade ---------- */
  html.js:not(.no-anim) .rws.is-sw > .rw { animation: rise .45s var(--ease) both }
  html.js:not(.no-anim) .rws.is-sw > .rw:nth-child(2) { animation-delay: .05s } html.js:not(.no-anim) .rws.is-sw > .rw:nth-child(3) { animation-delay: .1s }
  html.js:not(.no-anim) .rws.is-sw > .rw:nth-child(4) { animation-delay: .15s } html.js:not(.no-anim) .rws.is-sw > .rw:nth-child(n+5) { animation-delay: .2s }

  /* ---------- A8 blasons : les deux écussons se rejoignent quand la carte apparaît ---------- */
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in, .tk.is-in, .cg.is-in) .bds .bd:first-child { animation: roar-l .55s var(--ease) both }
  html.js:not(.no-anim) :is(.rv.is-in, #une.is-in, .tk.is-in, .cg.is-in) .bds .bd:last-child:not(:first-child) { animation: roar-r .55s var(--ease) both }
  @keyframes roar-l { from { opacity: 0; transform: translateX(-10px) } }
  @keyframes roar-r { from { opacity: 0; transform: translateX(10px) } }

  /* ---------- A9 barre fixe mobile : elle monte à l'ouverture de la fiche (comme la barre ordinateur) ---------- */
  html.js:not(.no-anim) .tx-promo-st { animation: gx-in .6s var(--ease) .25s both }
}

/* ===================================================================== Bombazo Tickets (WordPress theme) — new components */
/* status pills in the event hero (colour = state, as the dots) */
.pill--full { color: var(--full) } .pill--ok { color: var(--ok) } .pill--soon { color: var(--soon) } .pill--neutral { color: var(--fg-2) }
/* official sale: phases, prices */
.off__ph { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14.5px; color: var(--fg-2) }
.off__ph li { padding-left: 14px; position: relative }
.off__ph li::before { content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--fg-3) }
.off__ph b { color: var(--fg); font-weight: 600 }
.off__st { font-weight: 600 } .off__st--open { color: var(--ok) } .off__st--closed { color: var(--fg-3) } .off__st--to-come { color: var(--soon) }
.off__px { margin-top: 10px; font-size: 14.5px; color: var(--fg-2) } .off__px strong { color: var(--fg) }
/* prices by stand without a plan (arenas, unplaced categories) */
.plan--list { grid-template-columns: 1fr }
/* guide card without image, artist card without photo */
.art__ph, .pc__ini { display: grid; place-items: center; width: 100%; height: 100%; font-family: var(--fh); font-weight: 800; letter-spacing: -.02em;
  color: var(--violet-x); background: color-mix(in srgb, var(--violet) 18%, var(--bg-2)) }
.art__ph { font-size: 18px } .pc__ini { font-size: 40px }
.aff__crests { display: grid; place-items: center; width: 100%; height: 100%; background: color-mix(in srgb, var(--violet) 14%, var(--bg-2)) }
.aff__crests .bd { width: 58px; height: 58px } .aff__crests .bd img { width: 40px; height: 40px }
/* search results in the sheet */
.tx-so-res { padding: 6px 0 24px } .tx-so-res .rws { margin-top: 8px } .tx-so-none { padding: 18px 0; color: var(--fg-3) }
.sfake--form { display: flex; align-items: center; gap: 10px } .sfake--form input { flex: 1; min-width: 0; background: none; border: 0; color: var(--fg); font-size: 16px; outline: none }
/* hub intro, index pages */
.prose--lead p:first-child { font-size: 17px; color: var(--fg) }
.pg--wide { max-width: 1192px }
.clb--all { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) }
.arts--all { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-top: 18px }
.mob-only { display: none } @media (max-width: 899px) { .mob-only { display: block; margin-top: 24px } .rail-only { display: none } }
.fx__k a { color: inherit }
.zones.is-capped .zone:nth-child(n+9) { display: none }
.zones__more { display: block; margin: 12px 0 0; background: none; border: 0; padding: 0; cursor: pointer; font: inherit }
.art__ph--logo img { width: 44px; height: 44px; object-fit: contain; background: #fff; border-radius: 50%; padding: 6px }
.art__ph .brand__w { font-size: 15px } .art__ph .brand__w em { font-style: normal; color: var(--violet) }

/* 23/10/2026: photo crest (artist, venue, single-name event without a logo): round thumbnail filling the plate */
.bd--ph { overflow: hidden; background: var(--bg-2) }
.bd--ph img, .bds--md .bd--ph img, .bd--xl.bd--ph img { width: 100%; height: 100%; object-fit: cover; border-radius: 50% }

/* 24/10/2026: guide -> hub card (title and count on two lines, "desde 185 €" spaced) */
.fr__top .fr__t,.fr__top .fr__m{display:block}
.fr__top .fr__t{font-size:19px}
.fr__f .une__p{font:800 22px/1 var(--fh);color:#fff;letter-spacing:-.02em}
.fr__f .une__p small{font:500 13px var(--fb);color:var(--fg-2);margin-right:5px;letter-spacing:0}

/* 24/10/2026: find box above lists (calendar, hubs, index pages) */
.fq{position:relative;display:flex;align-items:center;margin:0 0 10px}
.fq>svg{position:absolute;left:14px;width:18px;height:18px;color:var(--fg-3);pointer-events:none}
.fq input{width:100%;height:48px;padding:0 44px 0 42px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-2);color:var(--fg);font:500 16px var(--fb);-webkit-appearance:none;appearance:none}
.fq input::placeholder{color:var(--fg-3)}
.fq input:focus{outline:none;border-color:var(--violet-x);box-shadow:0 0 0 3px rgba(200,23,60,.25)}
.fq input::-webkit-search-cancel-button{display:none}
.fq__x{position:absolute;right:6px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--fg-2)}
.fq__x svg{width:16px;height:16px}
.fq__none{padding:18px 0;color:var(--fg-2);font-size:15px}
.filters--hub,.filters--idx{position:static;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;padding:0;margin:4px 0 6px}
.filters--hub .filters__row{margin-bottom:10px}
.filters--in .fq{max-width:min(560px,100%)}

/* 24/10/2026: index pages (clubs, concerts, venues, competitions) = a grid on phones too, not a carousel */
@media(max-width:759.98px){
.clb--all{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible;margin:0;padding:0;max-width:100%;scroll-snap-type:none}
.clb--all .clb__it{width:auto;padding:12px 6px 10px}
.clb--all .clb__it b{font-size:13.5px;line-height:1.2;overflow-wrap:anywhere}
}
@media(max-width:359.98px){.clb--all{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 26/10/2026: guides index (/guias/, topic archives) = full-width card grid; WordPress screen-reader text hidden; pagination as chips */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important}
.pg > .arts--all,.pg > .navigation{grid-column:1/-1}
.navigation.pagination{margin:34px 0 8px}
.navigation .nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.navigation .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:1px solid var(--line-2);border-radius:999px;background:rgba(255,255,255,.04);font-size:14px;font-weight:600;color:var(--fg);text-decoration:none}
.navigation .page-numbers.current{background:var(--violet);border-color:var(--violet);color:#fff}
.navigation .page-numbers.dots{border:0;background:none;min-width:0;padding:0 2px;color:var(--fg-3)}
.navigation a.page-numbers:hover{border-color:rgba(255,255,255,.4)}

/* ===================================================================== 27/10/2026 (1.0.14) */
/* page grid: the 2-column grid of .pg (text + 300px rail) is for the standard pages only; index lists, calendar, search and
   guides span the full width (on /futbol/ the group chips fell into the rail column and pushed the list far down) */
@media(min-width:900px){.pg>:not(.artl__rail):not(.prose--art){grid-column:1/-1}}
/* the index grids now use the full width: wider cards so one-word names (Bournemouth, Southampton) are not clipped */
@media(min-width:760px){.clb--all{grid-template-columns:repeat(auto-fill,minmax(184px,1fr))}}

/* guide cards v2: picture, kicker, headline, standfirst, reading time */
.gcs{display:grid;gap:26px}
@media(min-width:640px){.gcs{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}}
@media(min-width:1000px){.gcs{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 26px}.gcs--4{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 22px}}
.gc{display:grid;gap:12px;align-content:start;color:inherit;min-width:0}
.gc .ph{aspect-ratio:16/9;border-radius:16px}
.gc .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gc .ph .art__ph{position:absolute;inset:0}
@media(hover:hover){.gc:hover .ph img{transform:scale(1.035)}.gc:hover .gc__t{color:var(--violet-x)}}
.gc__k{display:flex;align-items:center;gap:8px;font:700 12px/1 var(--fb);letter-spacing:.07em;text-transform:uppercase;color:var(--violet-x)}
.gc__k i{width:6px;height:6px;border-radius:50%;background:var(--violet);flex:none}
.gc__t{display:block;font:800 19px/1.18 var(--fh);letter-spacing:-.015em;color:#fff;text-wrap:balance;transition:color .2s}
.gc__d{font-size:14.5px;line-height:1.5;color:var(--fg-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.gc__m{font-size:12.5px;color:var(--fg-3)}
.gc__b{display:grid;gap:8px;align-content:start;min-width:0}
/* compact row: phone lists, rails */
.gc--row{grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start}
.gc--row .ph{aspect-ratio:1/1;border-radius:14px}
.gc--row .gc__t{font-size:16px}
.gc--row .gc__d{display:none}
.gc--row .gc__b{gap:6px}
/* lead story */
.gc--lead .gc__t{font-size:clamp(25px,6.4vw,38px);line-height:1.08;letter-spacing:-.025em}
.gc--lead .gc__d{font-size:16.5px;-webkit-line-clamp:4;color:var(--fg-2)}
.gc--lead .ph{border-radius:20px}
@media(min-width:900px){.gc--lead{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:34px;align-items:center}.gc--lead .gc__b{gap:12px}}
@media(max-width:639.98px){.gcs--rows{gap:16px}.gcs--rows .gc{grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start}.gcs--rows .gc .ph{aspect-ratio:1/1;border-radius:14px}.gcs--rows .gc__t{font-size:16px}.gcs--rows .gc__d{display:none}.gcs--rows .gc__b{gap:6px}}

/* guides index */
.bl{padding-top:8px}
.bl__head{display:grid;gap:10px;max-width:760px}
.bl__head h1{font-size:clamp(36px,10vw,64px);color:#fff}
.bl__head p{font-size:17px;line-height:1.5;color:var(--fg-2)}
.bl__nav{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:18px var(--gut) 4px;margin-inline:calc(-1 * var(--gut));max-width:calc(100% + 2 * var(--gut))}
.bl__nav::-webkit-scrollbar{display:none}
.bl__nav a{flex:none;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--line-2);border-radius:999px;background:rgba(255,255,255,.04);font-size:14.5px;font-weight:600;color:var(--fg);white-space:nowrap}
.bl__nav a small{font-weight:500;color:var(--fg-3)}
.bl__nav a[aria-current="page"]{background:var(--paper);border-color:var(--paper);color:var(--bg)}
.bl__nav a[aria-current="page"] small{color:var(--bg);opacity:.7}
.bl__top{display:grid;gap:28px;margin-top:26px}
.bl__side{display:grid;gap:20px;align-content:start}
@media(min-width:1000px){.bl__top{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:40px;align-items:start}.bl__top .gc--lead{grid-template-columns:1fr}.bl__side{border-left:1px solid var(--line);padding-left:32px}}
.bl__sec{margin-top:56px}
.bl__sec .sec__h h2{font-size:clamp(23px,5.4vw,30px)}
.bl__sec .sec__h p{font-size:14.5px;color:var(--fg-3);margin-top:4px}
.bl__sec .sec__h>div{display:grid}
.bl .navigation.pagination{margin-top:40px}
@media(min-width:900px){.bl{padding-top:20px}.bl__sec{margin-top:72px}}

/* guide page v2 */
.fx--art .fx__dek{margin-top:12px;max-width:58ch;font-size:clamp(17px,4.4vw,20.5px);line-height:1.45;color:#fff;opacity:.94;text-wrap:pretty}
.fx--art .fx__when{margin-top:14px;font-size:13.5px;color:var(--fg-2)}
.glance{margin:22px 0 4px;max-width:72ch;border:1px solid rgba(200,23,60,.42);border-radius:20px;padding:18px 18px 16px;background:color-mix(in srgb,var(--violet) 9%,var(--bg-2))}
.glance h2{margin:0 0 12px!important;font:800 12.5px/1 var(--fb)!important;letter-spacing:.09em!important;text-transform:uppercase;color:var(--violet-x)!important}
.glance ul{list-style:none!important;padding:0!important;margin:0!important;display:grid;gap:11px}
.glance li{position:relative;padding-left:26px;font-size:16px;line-height:1.45;color:#fff}
.glance li::before{content:"";position:absolute;left:3px;top:.42em;width:11px;height:11px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 4px rgba(200,23,60,.22)}
@media(min-width:900px){.glance{padding:22px 24px 20px;margin-top:28px}.glance li{font-size:16.5px}}
.prose--art .tx-scrollx{margin:20px 0;border-radius:16px}
.prose--art table{font-size:15px}
.prose--art thead th{font:700 13px/1.3 var(--fb);letter-spacing:.03em;text-transform:uppercase;color:var(--fg-2);background:rgba(255,255,255,.06)}
.prose--art tbody tr:nth-child(even) td{background:rgba(255,255,255,.025)}
.prose--art tbody td:first-child{color:#fff;font-weight:600}
.prose--art ol{list-style:none;padding-left:0;counter-reset:st;gap:12px;margin:16px 0}
.prose--art ol>li{counter-increment:st;position:relative;padding-left:42px;min-height:30px}
.prose--art ol>li::before{content:counter(st);position:absolute;left:0;top:-1px;width:30px;height:30px;border-radius:50%;background:rgba(200,23,60,.2);color:var(--violet-x);font:800 14px/30px var(--fh);text-align:center}
.prose--art ul{gap:8px}
.prose--art ul>li::marker{color:var(--violet)}
.prose--art h2{text-wrap:balance}
.prose--art>p:first-child{font-size:1.06em;color:var(--fg)}
.artl__body .faq{max-width:72ch}

/* related blocks (bottom of guides, events, hubs, index pages) */
.rel{margin-top:56px}
.rel .sec__h h2{font-size:clamp(22px,5vw,27px)}
.rel__lead{font-size:14.5px;color:var(--fg-3);margin:-4px 0 14px}
@media(min-width:900px){.rel{margin-top:72px}}

/* search: hub cards, sections */
.srh{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
@media(min-width:640px){.srh{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.srh{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hubc{display:flex;align-items:center;gap:14px;min-height:76px;padding:12px 16px;border:1px solid var(--line-2);border-radius:18px;background:var(--bg-2);color:inherit;transition:border-color .2s}
.hubc:hover{border-color:var(--violet-l)}
.hubc .bd{width:46px;height:46px}.hubc .bd img{width:30px;height:30px}
.hubc b{display:block;font:800 17px/1.15 var(--fh);letter-spacing:-.01em;color:#fff}
.hubc small{display:block;margin-top:3px;font-size:13px;color:var(--fg-3);line-height:1.35}
.hubc__p{margin-left:auto;text-align:right;font:800 16px/1.1 var(--fh);color:#fff;white-space:nowrap}
.hubc__p small{display:block;font:500 11.5px var(--fb);color:var(--fg-3);margin:0 0 2px}
.srs{margin-top:34px}
.srs:first-of-type{margin-top:22px}
.srs .sec__h h2{font-size:21px}
.sr__lab{display:block;padding:12px 4px 2px;font:700 11.5px/1 var(--fb);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.sr__all{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:8px;border-radius:12px;background:rgba(255,255,255,.05);font-weight:700;color:var(--violet-x)}
.tx-so-res .rw,.hdr__res .rw{min-height:60px;padding:9px 6px;border-radius:10px}
.tx-so-res .rw.is-sel,.hdr__res .rw.is-sel{background:rgba(255,255,255,.07)}
/* desktop header: instant results under the search field */
.hdr__search{position:relative}
.hdr__search form{display:flex;align-items:center;gap:10px;width:100%}
.hdr__res{position:absolute;top:calc(100% + 8px);right:-1px;width:min(540px,calc(100vw - 48px));max-height:min(72vh,660px);overflow:auto;overscroll-behavior:contain;padding:6px 10px 10px;border:1px solid var(--line-2);border-radius:18px;background:var(--bg-2);box-shadow:0 22px 60px rgba(0,0,0,.6);z-index:70;text-align:left}
.hdr__res[hidden]{display:none}
.hdr__res .rw__p::after{display:none}

/* 28/10/2026: generic ticket targets of the guides without a subject (sheet rows, in-article block, rail card) */
.bd--ic{background:var(--bg-3);border-color:var(--line-2);color:var(--violet-x)}
.bd--ic svg{width:16px;height:16px}
.row--hub{grid-template-columns:auto minmax(0,1fr) auto}
.row--hub .bd{width:36px;height:36px}
.row--hub .bd img{width:24px;height:24px}
.row--hub .row__p.np svg{width:18px;height:18px;color:var(--fg-3)}
.gfind{margin:30px 0;padding:18px;border:1px solid var(--line-2);border-radius:20px;background:color-mix(in srgb,var(--violet) 7%,var(--bg-2))}
.prose--art .gfind p{margin:0}
.gfind__h{font:800 21px/1.15 var(--fh);letter-spacing:-.02em;color:#fff}
.gfind__l{font-size:14.5px;line-height:1.45;color:var(--fg-2);margin-top:6px!important}
.gfind__g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.gfind__g a{display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--fg);text-decoration:none;min-width:0}
.gfind__g a:hover{border-color:var(--violet-l)}
.gfind__g span{display:flex;flex-direction:column;min-width:0}
.gfind__g b{font:700 14.5px/1.2 var(--fh);color:#fff;overflow-wrap:anywhere}
.gfind__g small{font-size:12.5px;line-height:1.3;color:var(--fg-3);margin-top:2px}
@media(min-width:700px){.gfind__g{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fr__list{display:grid;gap:2px}
.fr__row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);color:var(--fg);text-decoration:none}
.fr__row:last-child{border-bottom:0}
.fr__row:hover b{color:var(--violet-x)}
.fr__row span{display:flex;flex-direction:column;min-width:0}
.fr__row b{font:700 15px/1.2 var(--fh);color:#fff}
.fr__row small{font-size:12.5px;color:var(--fg-3);margin-top:2px}
.fr__row .bd{width:30px;height:30px}
.fr__row .bd img{width:20px;height:20px}
/* index pages: links to the sister lists */
.idx-also{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:26px 0 6px;padding:14px 0;border-top:1px solid var(--line)}
.idx-also span{font-size:13px;font-weight:600;color:var(--fg-3);margin-right:4px}
.idx-also a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line-2);border-radius:999px;font-size:14px;font-weight:600;color:var(--fg);text-decoration:none}
.idx-also a:hover{border-color:var(--violet-l);color:#fff}

/* 31/10/2026 guides v3 : sources officielles en bas d'article */
.srcs{margin:30px 0 8px;max-width:72ch}
.srcs h2{margin:0 0 10px!important;font:800 12.5px/1 var(--fb)!important;letter-spacing:.09em!important;text-transform:uppercase;color:#a1a1aa}
.srcs ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.srcs a{font-size:14px;line-height:1.4;color:#a1a1aa;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}

/* 31/10/2026 guides v3 : plan simple des tribunes ou des zones */
.plan{margin:22px 0 6px;max-width:72ch;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:16px 16px 12px;background:rgba(255,255,255,.03)}
.plan figcaption{font:800 12.5px/1.2 var(--fb);letter-spacing:.09em;text-transform:uppercase;color:#fff;margin:0 0 12px}
.plan svg{display:block;width:100%;height:auto}
.plan__z{stroke:#18181b;stroke-width:4}
.plan__z1{fill:#C8173C}.plan__z2{fill:#A3122F}.plan__z3{fill:#850F27}.plan__z4{fill:#6A0C1F}.plan__z5{fill:#510918}.plan__z6{fill:#3A0611}
.plan__dot{fill:#fff}
.plan__n{font:800 22px/1 var(--fb);fill:#18181b}
.plan__t{font:800 17px/1 var(--fb);fill:#18181b;letter-spacing:.06em;text-transform:uppercase}
.plan__stage{fill:#fafafa}
.plan__pitch{fill:#166534;stroke:#fff;stroke-width:2}
.plan__line{fill:none;stroke:#fff;stroke-width:2}
.plan__key{margin:12px 0 0;padding-left:24px;list-style:decimal;display:grid;gap:7px;font-size:15.5px;line-height:1.45;color:#e4e4e7}
.plan__key li{display:list-item}
.plan__key li::marker{font-weight:800;color:#fff}
.plan__key b{color:#fff;font-weight:700}
.plan__nb{margin:8px 0 0;font-size:13px;color:#a1a1aa}

/* 01/11/2026 (Bombazo) : sous-titre sous le H1 des événements et des hubs (data.subtitle) */
.fx__sub{margin-top:8px;text-align:center;font-size:15px;font-weight:600;line-height:1.4;color:var(--fg-2)}
.fx--solo .fx__sub{text-align:left}
@media(min-width:900px){.fx__sub{text-align:left;font-size:17px}}
