/* ===== Refonte section tickets (inspiration cartes + plan de salle) ===== */

/* --- Cartes catégories --- */
.ticket-accordion{gap:14px}
.trow{border-radius:16px;border:1px solid #e5e7eb;border-left:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(15,23,42,.06);transition:box-shadow .18s,border-color .18s}
.trow.available{border-left-color:#e5e7eb}
.trow.open{border-color:#0f172a;box-shadow:0 0 0 1.5px #0f172a,0 10px 28px rgba(15,23,42,.1)}
.trow-header{padding:20px 22px}
.cat-dot{width:13px;height:13px;border-radius:4px;background:var(--c,#94a3b8);display:inline-block;flex-shrink:0}
.trow.sold .cat-dot,.trow.sold-yellow .cat-dot,.trow.sold-orange .cat-dot{opacity:.45}
.trow-name{font-size:1.02rem;letter-spacing:0;text-transform:none;font-weight:800}
.trow-price{font-size:1.3rem}
.trow-chevron{width:38px;height:38px;border-radius:50%;background:#eef1f5;color:#30415d;font-size:1rem;transition:transform .2s,background .2s,color .2s}
.trow-chevron:hover{background:#e2e7ee}
.trow.open .trow-chevron{background:#0f172a;color:#fff;transform:rotate(180deg)}
.trow.flash{box-shadow:0 0 0 3px var(--red),0 10px 28px rgba(15,23,42,.12)}
@media(max-width:600px){
  .trow-header{padding:16px 16px}
  .trow-name{font-size:.95rem}
  .trow-price{font-size:1.15rem}
}

/* --- Plan du stade --- */
.stadium-card{background:#fff;border:1px solid var(--gray);border-radius:16px;padding:30px 18px 22px;margin-top:28px;box-shadow:var(--shadow)}
.stadium-title{text-align:center;font-size:1.35rem;font-weight:900;color:var(--dark);margin-bottom:6px}
.stadium-sub{text-align:center;font-size:.85rem;color:var(--mid-gray);margin-bottom:18px}
.stadium-map{display:block;width:100%;max-width:720px;margin:0 auto;height:auto}
.stadium-map .sec{transition:filter .15s,opacity .15s;cursor:pointer}
.stadium-map .sec:hover{filter:brightness(1.1) saturate(1.15)}
.stadium-map .sec.soldout{cursor:default;opacity:.32}
.stadium-map .sec.soldout:hover{filter:none}
.stadium-map text{pointer-events:none;user-select:none}
.map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.legend-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #e5e7eb;border-radius:999px;padding:8px 16px;font-size:.82rem;font-weight:700;color:var(--dark);background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.legend-chip:hover{border-color:#0f172a}
.legend-chip.soldout{opacity:.5;cursor:default}
.legend-chip.soldout:hover{border-color:#e5e7eb}
.legend-dot{width:12px;height:12px;border-radius:4px;flex-shrink:0}

/* --- Käuferschutz --- */
.protect-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:24px 26px;margin-top:22px}
.protect-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.protect-head .protect-icon{font-size:1.3rem}
.protect-head h3{font-size:1.15rem;font-weight:900;color:var(--dark)}
.protect-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.protect-list li{display:flex;align-items:center;gap:12px;font-size:.95rem;font-weight:600;color:#1f2937}
.protect-list li::before{content:"✓";width:24px;height:24px;border-radius:50%;background:#dcfce7;color:#16a34a;font-weight:900;font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}

/* ===== Icônes SVG ===== */
.icon{width:1.05em;height:1.05em;vertical-align:-.16em;flex-shrink:0}
.info-icon-wrap .icon{width:21px;height:21px}
.trust-icon .icon{width:30px;height:30px}
.official-icon .icon{width:16px;height:16px}
.protect-icon .icon{width:24px;height:24px;color:#16a34a}
.player-photo-fallback .icon{width:40px;height:40px;opacity:.5}
.cart-secure-note{display:flex;align-items:center;justify-content:center;gap:7px}
.faq-email-line .icon,.secure-label .icon{opacity:.9}

/* ===== Barre d'annonce ===== */
.announce-bar{background:linear-gradient(90deg,#eda900,#ffc933 50%,#eda900);color:#06182f;display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 20px}
.announce-bar .icon{width:17px;height:17px}

/* ===== Header ===== */
.site-header{background:linear-gradient(180deg,#001a3d 0%,#013369 100%);border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 4px 24px rgba(0,10,30,.35)}
.header-inner{height:76px}
.nfl-shield{filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}
.logo-site{font-size:1.05rem;font-weight:900;color:#fff;letter-spacing:-.2px;line-height:1.15}
.logo-site span{color:#f5b50a}
.logo-tagline{font-size:.6rem;color:#ffffff80;letter-spacing:1.4px;text-transform:uppercase;margin-top:2px}
.header-nav a{position:relative;padding:8px 2px;color:#ffffffd9}
.header-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.5px;border-radius:3px;background:#f5b50a;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.header-nav a:hover{color:#fff}
.header-nav a:hover::after{transform:scaleX(1)}
.lang-switch{border-radius:999px;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.06)}
.lang-btn{padding:7px 12px}
.cart-btn{border-radius:999px;gap:8px;padding:10px 22px;background:linear-gradient(180deg,#ffc933,#f5a700);box-shadow:0 3px 14px rgba(245,181,10,.35);transition:box-shadow .15s,transform .15s}
.cart-btn:hover{background:linear-gradient(180deg,#ffd45c,#ffb612);box-shadow:0 5px 18px rgba(245,181,10,.5);transform:translateY(-1px)}

/* ===== Boutons & couleurs globales ===== */
.hero-cta,.sticky-cta-btn,.cart-add-btn:not(:disabled){background:linear-gradient(180deg,#e51c1c,#c00909)}
.hero-cta,.sticky-cta-btn{border-radius:12px;box-shadow:0 6px 22px rgba(213,10,10,.38);display:inline-flex;align-items:center;gap:9px;transition:box-shadow .15s,transform .15s}
.hero-cta:hover,.sticky-cta-btn:hover{background:linear-gradient(180deg,#f03030,#d50a0a);box-shadow:0 8px 28px rgba(213,10,10,.5);transform:translateY(-1px)}
.cart-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:12px}
.hero-cta .icon,.sticky-cta-btn .icon,.cart-add-btn .icon{width:19px;height:19px}
.info-icon-wrap{color:var(--navy);background:#eef3fa;border-color:#dbe6f5;border-radius:11px}
.trust-icon{color:#f5b50a}
.trust-divider{background:#f5b50a}
.section-eyebrow{letter-spacing:2.5px}
.logo-site{white-space:nowrap}
@media(max-width:640px){.logo-site{font-size:.9rem}.header-logo{gap:10px}}
.announce-bar{line-height:1.45}

/* ===== Mobile ===== */
.cart-count{font-weight:800}
@media(max-width:640px){
  .announce-bar{font-size:.72rem;padding:8px 12px;gap:7px;line-height:1.4}
  .announce-bar .icon{width:14px;height:14px}
  .header-inner{height:60px;padding:0 12px;gap:8px}
  .nfl-shield{height:34px;width:auto}
  .logo-year,.logo-tagline{display:none}
  .logo-site{font-size:.88rem}
  .header-right{gap:8px}
  .lang-btn{padding:6px 9px;font-size:.66rem}
  .cart-btn{padding:9px 13px;gap:6px}
  .cart-btn .cart-label{display:none}
  .cart-btn .icon{width:17px;height:17px}
  .info-cell{padding:16px 14px;gap:10px}
  .info-icon-wrap{width:38px;height:38px}
  .info-icon-wrap .icon{width:18px;height:18px}
  .info-val{font-size:.85rem}
  .stadium-card{padding:20px 8px 16px;border-radius:14px}
  .stadium-title{font-size:1.1rem}
  .stadium-sub{font-size:.76rem;margin-bottom:10px}
  .legend-chip{padding:6px 11px;font-size:.72rem;gap:6px}
  .map-legend{gap:7px;margin-top:12px}
  .protect-card{padding:18px 16px}
  .protect-list li{font-size:.86rem}
  .hero-cta{font-size:.92rem;padding:13px 18px}
}

/* ===== Header blanc ===== */
.site-header{background:#fff;border-bottom:1px solid #e8eaed;box-shadow:0 2px 18px rgba(15,23,42,.08)}
.logo-site{color:var(--navy)}
.logo-site span{color:#e0a400}
.logo-tagline{color:#8a93a1}
.header-nav a{color:#445063}
.header-nav a:hover{color:var(--navy)}
.secure-label{color:#8a93a1}
.lang-switch{border-color:#e2e6ec;background:#f4f6f9}
.lang-btn{color:#5b6472}
.lang-btn:hover{color:var(--navy)}
.lang-btn.active{background:#f5b50a;color:#06182f}
.nfl-shield{filter:none}
.cart-timer-icon .icon{width:18px;height:18px;vertical-align:-.22em}

/* ===== CTA sticky flottant ===== */
.sticky-cta{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));background:transparent;padding:0;pointer-events:none;transform:translateY(140%);opacity:0;transition:transform .38s cubic-bezier(.2,.8,.3,1),opacity .3s}
.sticky-cta.visible{transform:none;opacity:1}
.sticky-cta-btn{pointer-events:auto;width:100%;max-width:480px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:999px;padding:16px 28px;box-shadow:0 12px 32px rgba(213,10,10,.42),0 3px 10px rgba(0,0,0,.22)}
@media(max-width:640px){.sticky-cta{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom))}.sticky-cta-btn{padding:14px 20px}}

/* ===== Section news ===== */
.news-block-header{border-bottom:1px solid #e8eaed;padding-bottom:14px;margin-bottom:22px;gap:12px}
.news-block-title{letter-spacing:.8px}
.news-pagination{white-space:nowrap;flex-shrink:0;gap:8px}
.news-pag-btn{width:32px;height:32px;transition:border-color .15s,color .15s,opacity .15s}
.news-pag-btn:disabled{opacity:.35;cursor:default;border-color:var(--gray);color:inherit}
.news-card{border:1px solid #e8eaed;border-radius:14px;background:#fff;overflow:hidden;transition:box-shadow .2s,transform .2s,border-color .2s}
.news-card:hover{border-color:#cfd6e0;box-shadow:0 10px 26px rgba(15,23,42,.1);transform:translateY(-2px)}
.news-card-body{padding:14px 16px 16px}
.news-card-cat{color:var(--red);font-weight:800}
.news-card-cat::after{content:"· nfl.com ↗";color:#9aa3af;font-weight:600;letter-spacing:.4px;margin-left:6px;text-transform:none}
.news-all-link{border-bottom:none;background:#fff;border:1px solid #e2e6ec;border-radius:999px;padding:11px 22px;transition:border-color .15s,box-shadow .15s}
.news-all-link:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(15,23,42,.08);color:var(--navy)}
@media(max-width:600px){
  .news-card{flex:0 0 76%}
  .news-cards{padding:2px 2px 10px;scroll-padding-left:2px}
  .news-block-header{margin-bottom:16px;padding-bottom:10px}
  .news-pag-btn{width:30px;height:30px}
}

/* ===== Choix des places ===== */
.seat-together{display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:600;color:#1f2937;margin:4px 2px 14px;cursor:pointer;user-select:none}
.seat-together input{appearance:none;-webkit-appearance:none;width:22px;height:22px;border-radius:7px;border:1.5px solid #c6cdd8;background:#fff;display:grid;place-items:center;cursor:pointer;margin:0;flex-shrink:0;transition:background .15s,border-color .15s}
.seat-together input:checked{background:#0f172a;border-color:#0f172a}
.seat-together input:checked::after{content:"✓";color:#fff;font-size:.72rem;font-weight:900}
.trow-summary{margin-top:4px;margin-bottom:4px;border-radius:10px}
.stadium-map .sec-selected{stroke:#0f172a;stroke-width:2.5px;filter:saturate(1.2)}
.legend-count{background:#0f172a;color:#fff;border-radius:999px;font-size:.66rem;font-weight:800;padding:3px 9px;margin-left:4px}

/* ===== Typographie ===== */
body,button,input,select{font-family:'Inter',-apple-system,'Segoe UI',system-ui,sans-serif}
h1,h2,h3,h4{letter-spacing:-.02em}
.cd-num,.trow-price,.order-bar-total,.trow-summary-price,.cartSubtotal{font-variant-numeric:tabular-nums}
.logo-site{font-size:1.02rem;letter-spacing:-.2px}
@media(max-width:640px){.logo-site{font-size:.9rem}}

/* ===== Sélecteur de catégories (v2) ===== */
.qty-label{color:#374151;letter-spacing:.8px}
.qty-label span{color:var(--red)}
.qty-btn{border-radius:11px;border:1.5px solid #dde2ea;font-weight:700;font-size:1.02rem;transition:border-color .15s,background .15s,color .15s,transform .1s}
.qty-btn:hover:not(.qty-disabled):not(.qty-selected){border-color:#8fa1bd;transform:translateY(-1px)}
.qty-btn.qty-selected{background:#0f172a;border-color:#0f172a;color:#fff;box-shadow:0 4px 12px rgba(15,23,42,.25)}
.trow-selpill{display:inline-flex;align-items:center;gap:6px;background:#0f172a;color:#fff;border-radius:999px;font-size:.78rem;font-weight:800;padding:5px 12px;letter-spacing:.3px}
.trow-features{border-radius:12px}
.trow-features li{padding:10px 14px}

/* ===== Footer ===== */
.site-footer{background:linear-gradient(180deg,#00224f 0%,#001534 100%);border-top:3px solid var(--red)}
.footer-brand-head{display:flex;align-items:center;gap:12px}
.footer-logo{width:36px;height:auto}
.footer-wordmark{color:#fff;font-size:1.02rem;font-weight:800;letter-spacing:-.2px}
.footer-wordmark span{color:#f5b50a}
.footer-mail{display:inline-flex;align-items:center;gap:8px;color:#ffffffb3;font-size:.84rem;font-weight:600;margin-top:16px;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 15px;transition:color .15s,border-color .15s,background .15s}
.footer-mail:hover{color:#fff;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.05)}
.footer-col li a{display:inline-block;transition:color .15s,transform .15s}
.footer-col li a:hover{transform:translateX(2px)}
.footer-payrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.08);padding-top:22px;margin-bottom:22px}
.footer-paylabel{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;color:#ffffff73;margin-right:6px}
.footer-pay-chip{background:#fff;border-radius:6px;padding:5px 9px;display:inline-flex;align-items:center}
.footer-pay-chip img{height:15px;width:auto;display:block}
.footer-bottom{border-top:none;padding-top:0;align-items:center}
.to-top{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,transform .15s}
.to-top:hover{background:var(--red);border-color:var(--red);transform:translateY(-2px)}
.to-top .icon{width:17px;height:17px}
@media(max-width:640px){
  .footer-payrow{gap:6px;padding-top:16px;margin-bottom:16px}
  .footer-pay-chip img{height:13px}
  .footer-bottom{position:relative;padding-right:52px}
  .to-top{position:absolute;right:0;bottom:0}
}

/* Chevron des cartes catégories */
.trow-chevron{width:42px;height:42px;background:#eef1f5;color:#44506a;border:1px solid #e2e6ec}
.trow-chevron .icon{width:19px;height:19px;transition:transform .2s}
.trow-chevron:hover{background:#e3e8ef;color:#0f172a}
.trow.open .trow-chevron{background:#0f172a;color:#fff;border-color:#0f172a}

/* ===== Finitions globales ===== */
::selection{background:var(--navy);color:#fff}
:focus-visible{outline:2.5px solid #f5b50a;outline-offset:2px;border-radius:4px}
section[id],div[id="tickets"]{scroll-margin-top:95px}

/* Scrollspy : lien actif */
.header-nav a.active{color:var(--navy);font-weight:700}
.header-nav a.active::after{transform:scaleX(1)}

/* FAQ */
.faq-items{gap:10px}
.faq-item{border-radius:12px;transition:border-color .2s,box-shadow .2s}
.faq-item:hover{border-color:#cfd6e0}
.faq-item.open{border-color:#0f172a;box-shadow:0 6px 20px rgba(15,23,42,.07)}
.faq-arrow{width:32px;height:32px;border-radius:50%;background:#eef1f5;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#44506a;transition:transform .2s,background .2s,color .2s}
.faq-arrow .icon{width:15px;height:15px}
.faq-item.open .faq-arrow{transform:rotate(180deg);background:#0f172a;color:#fff}

/* Joueurs */
.player-photo{transition:transform .35s ease}
.player-card:hover .player-photo{transform:scale(1.045)}
.player-overlay{background:linear-gradient(to top,rgba(2,10,26,.92) 0%,rgba(2,10,26,.35) 60%,transparent 100%)}

/* Apparition au scroll */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.in{opacity:1;transform:none}

/* Récap de sélection : prix insécable, meilleur alignement */
.trow-summary{align-items:center;gap:16px;padding:14px 18px;border-left-width:4px;border-radius:12px}
.trow-summary-left{min-width:0;flex:1}
.trow-summary-seats{font-size:.95rem}
.trow-summary-cat{margin-top:2px}
.trow-summary-price{white-space:nowrap;flex-shrink:0;font-size:1.25rem}
@media(max-width:640px){
  .trow-summary{padding:12px 14px;gap:12px}
  .trow-summary-seats{font-size:.88rem}
  .trow-summary-cat{font-size:.68rem}
  .trow-summary-price{font-size:1.1rem}
}

/* Seat map v2 */
.stadium-map{filter:drop-shadow(0 10px 24px rgba(15,23,42,.1))}
.stadium-map .sec{transition:filter .15s,opacity .15s}
.stadium-map .sec.cat-hover{filter:brightness(1.12) saturate(1.2)}
.stadium-map .sec-selected{stroke:#0f172a!important;stroke-width:2.5px}

/* ===== Panier : steppers & détails ===== */
.qty-step{display:inline-flex;align-items:center;border:1px solid #dde2ea;border-radius:999px;overflow:hidden}
.qty-step button{width:28px;height:28px;border:none;background:#fff;color:#30415d;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}
.qty-step button:hover:not(:disabled){background:#eef1f5}
.qty-step button:disabled{color:#c3cad4;cursor:default}
.qty-step span{min-width:26px;text-align:center;font-size:.85rem;font-weight:700;color:var(--dark)}
.cart-line-meta{gap:10px}
.cart-line-prices{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.cart-line-unit{font-size:.68rem;color:#9aa3af}
.cart-empty{display:flex;flex-direction:column;align-items:center;gap:12px}
.cart-empty-icon{width:34px;height:34px;color:#c3cad4}
.cart-local-note{margin-top:10px;background:#fff8e6;border:1px solid #f1dfae;color:#8a6d1a;border-radius:9px;padding:10px 14px;font-size:.78rem;text-align:center}

/* ===== Barre de progression ===== */
.site-header{position:sticky}
.scroll-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--red),#f5b50a);transform:scaleX(0);transform-origin:left;pointer-events:none}
