/* ============================================================
   TC PORTOIS — css/style.css v4.0
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Barlow+Condensed:wght@400;600;700&family=Barlow:wght@400;500;600&display=swap');

:root {
  --bleu:           #1e90ff;
  --bleu-dim:       rgba(30,144,255,0.15);
  --bleu-border:    rgba(30,144,255,0.2);
  --blanc:          #ffffff;
  --fond:           #0a0c10;
  --fond-card:      rgba(255,255,255,0.02);
  --fond-card-hover:rgba(255,255,255,0.04);
  --bordure:        rgba(255,255,255,0.07);
  --bordure-bleu:   rgba(30,144,255,0.18);
  --texte:          rgba(255,255,255,0.85);
  --texte-dim:      rgba(255,255,255,0.5);
  --texte-ghost:    rgba(255,255,255,0.22);
  --rouge-live:     #e62020;
  --radius:         3px;
  --nav-h:          64px;
  --font-title:     'Bebas Neue', sans-serif;
  --font-cond:      'Barlow Condensed', sans-serif;
  --font-body:      'Barlow', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--fond); color: var(--texte); font-family: var(--font-body); font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { cursor: pointer; font-family: inherit; }
ul { list-style: none; }

@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes sponsors-scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse-ring { 0%{transform:scale(1);opacity:.6} 100%{transform:scale(2.2);opacity:0} }
@keyframes heroAccent { 0%,100%{transform:scaleY(1) translateY(0);opacity:.4} 50%{transform:scaleY(1.06) translateY(-8px);opacity:.6} }

/* ── NAVIGATION ── */
.tcp-nav { position:sticky;top:0;z-index:1000;height:var(--nav-h);background:rgba(10,12,16,0.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--bordure);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;gap:1.5rem; }
.tcp-logo { display:flex;align-items:center;gap:.75rem;text-decoration:none;flex-shrink:0;margin-right:auto; }
.tcp-logo .custom-logo-link { display:flex;align-items:center;margin:0!important;padding:0!important; }
.tcp-logo .custom-logo-link img, .tcp-logo .custom-logo { width:38px!important;height:38px!important;max-width:38px!important;object-fit:contain!important;display:block!important;margin:0!important; }
.site-branding { display:none!important; }
.tcp-nav > * { flex-shrink:0; }
.tcp-logo img { width:38px;height:38px;object-fit:contain; }
.tcp-logo > div { display:flex;flex-direction:column;line-height:1.1; }
.tcp-logo-text { font-family:var(--font-title);font-size:20px;color:var(--blanc);letter-spacing:.5px; }
.tcp-logo-sub { font-family:var(--font-cond);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--bleu);font-weight:600; }
.tcp-nav-links { display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0; }
.tcp-nav-link { font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--texte-dim);padding:.55rem .85rem;border-radius:var(--radius);transition:color .2s,background .2s;white-space:nowrap; }
.tcp-nav-link:hover, .tcp-nav-link.active { color:var(--blanc);background:rgba(255,255,255,0.05); }
.tcp-nav-cta { background:var(--bleu);color:var(--blanc)!important;border-radius:var(--radius);padding:.5rem 1.1rem;transition:opacity .2s; }
.tcp-nav-cta:hover { opacity:.85;background:var(--bleu)!important; }
.tcp-live-btn { display:none;align-items:center;gap:6px;background:rgba(230,32,32,0.12);border:1px solid rgba(230,32,32,0.35);color:#e62020;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;padding:.45rem .9rem;border-radius:var(--radius);cursor:pointer; }
body.live-active .tcp-live-btn { display:flex; }
.live-dot { width:7px;height:7px;border-radius:50%;background:var(--rouge-live);animation:blink 1s infinite;flex-shrink:0; }
.tcp-hamburger { display:none;flex-direction:column;gap:5px;background:none;border:none;padding:6px;cursor:pointer; }
.tcp-hamburger span { display:block;width:22px;height:2px;background:var(--blanc);border-radius:2px;transition:transform .3s,opacity .3s; }

/* ── HERO ── */
.tcp-hero { position:relative;min-height:calc(100vh - var(--nav-h));display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:5rem 2.5rem 3rem; }
.tcp-hero-bg { position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 60% 50%,rgba(30,144,255,0.07) 0%,transparent 70%),radial-gradient(ellipse 40% 50% at 20% 80%,rgba(30,144,255,0.04) 0%,transparent 60%),linear-gradient(180deg,#0a0c10 0%,#0d1117 100%);z-index:0; }
.tcp-hero-grid { position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.025) 1px,transparent 1px);background-size:60px 60px;z-index:0;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 100%); }
.tcp-hero-accent { position:absolute;right:0;top:0;width:45%;height:100%;background:linear-gradient(135deg,transparent 0%,rgba(30,144,255,0.04) 50%,transparent 100%);border-left:1px solid rgba(30,144,255,0.06);z-index:0;animation:heroAccent 7s ease-in-out infinite; }

/* Hero inner — texte gauche + logo droite */
.tcp-hero-inner { position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:3rem;width:100%;flex:1;min-height:calc(60vh - var(--nav-h)); }
.tcp-hero-content { flex:1;min-width:280px;max-width:680px;animation:fadeUp .8s ease both; }
.tcp-hero-logo-zone { flex:0 0 auto;display:flex;align-items:center;justify-content:center;align-self:center;animation:fadeUp .9s .2s ease both;padding:2rem; }
.tcp-hero-logo-img { max-width:480px;max-height:480px;width:100%;height:auto;object-fit:contain;opacity:.95;filter:drop-shadow(0 0 60px rgba(30,144,255,0.25));transition:opacity .3s,filter .3s; }
.tcp-hero-logo-img:hover { opacity:1;filter:drop-shadow(0 0 80px rgba(30,144,255,0.45)); }

.tcp-hero-badge { display:inline-flex;align-items:center;gap:8px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--bleu);background:var(--bleu-dim);border:1px solid var(--bleu-border);padding:5px 14px;border-radius:2px;margin-bottom:1.8rem; }
.tcp-hero-badge .dot { width:6px;height:6px;border-radius:50%;background:var(--bleu);position:relative; }
.tcp-hero-badge .dot::after { content:'';position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--bleu);animation:pulse-ring 2s ease-out infinite; }
.tcp-hero-title { font-family:var(--font-title);font-size:clamp(64px,9vw,120px);line-height:.92;letter-spacing:1px;color:var(--blanc);margin-bottom:1.5rem; }
.tcp-hero-title em { font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--bleu); }
.tcp-hero-sub { font-size:16px;color:var(--texte-dim);max-width:520px;line-height:1.7;margin-bottom:2.2rem;animation:fadeUp .9s .15s ease both; }
.tcp-hero-actions { display:flex;gap:1rem;flex-wrap:wrap;animation:fadeUp .9s .3s ease both; }
.tcp-hero-stats { position:relative;z-index:1;display:flex;align-items:center;gap:2.5rem;margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--bordure);animation:fadeUp .9s .45s ease both; }
.tcp-stat-num { font-family:var(--font-title);font-size:42px;color:var(--blanc);line-height:1; }
.tcp-stat-label { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--texte-ghost);margin-top:2px; }
.tcp-stat-div { width:1px;height:40px;background:var(--bordure); }

/* ── TICKER ── */
.tcp-ticker { overflow:hidden;white-space:nowrap;background:rgba(30,144,255,0.06);border-top:1px solid var(--bordure-bleu);border-bottom:1px solid var(--bordure-bleu);padding:.6rem 0; }
.tcp-ticker-inner { display:inline-flex;gap:0;animation:ticker 30s linear infinite; }
.tcp-ticker-inner:hover { animation-play-state:paused; }
.tcp-ticker-item { font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--bleu);padding:0 3rem; }

/* ── BOUTONS ── */
.tcp-btn { display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-cond);font-weight:700;font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:13px 30px;border-radius:var(--radius);border:none;cursor:pointer;text-decoration:none;transition:opacity .2s,transform .15s;white-space:nowrap; }
.tcp-btn:hover { opacity:.88;transform:translateY(-1px); }
.tcp-btn-primary { background:var(--bleu);color:#fff; }
.tcp-btn-outline { border:1px solid rgba(255,255,255,0.25);color:var(--blanc);background:transparent; }
.tcp-btn-outline:hover { border-color:rgba(255,255,255,.5);opacity:1; }
.tcp-btn-white { background:#fff;color:#0a0c10; }

/* ── SECTIONS ── */
.tcp-section { padding:5rem 2.5rem;max-width:1400px;margin:0 auto;width:100%; }
.tcp-section-label { font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--bleu);margin-bottom:.6rem;display:block; }
.tcp-section-title { font-family:var(--font-title);font-size:clamp(38px,5vw,56px);color:var(--blanc);letter-spacing:1px;line-height:1;margin-bottom:.8rem; }
.tcp-section-sub { color:var(--texte-dim);font-size:15px;max-width:540px;margin-bottom:3rem; }

/* ── PAGE HEADER ── */
.tcp-page-header { padding:5rem 2.5rem 3.5rem;border-bottom:1px solid var(--bordure);background:radial-gradient(ellipse 50% 80% at 80% 50%,rgba(30,144,255,0.05) 0%,transparent 70%),#0d1117; }
.tcp-page-label { font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--bleu);margin-bottom:.6rem;display:block; }
.tcp-page-title { font-family:var(--font-title);font-size:clamp(52px,7vw,90px);color:var(--blanc);letter-spacing:2px;line-height:.95;margin-bottom:.8rem; }
.tcp-page-sub { color:var(--texte-dim);font-size:15px; }

/* ── CARTES ── */
.tcp-card-grid { display:grid;gap:1px;background:var(--bordure);border:1px solid var(--bordure); }
.tcp-card-grid-3 { grid-template-columns:repeat(3,1fr); }
.tcp-card-grid-4 { grid-template-columns:repeat(4,1fr); }
.tcp-card { background:var(--fond-card);padding:2.5rem 2rem;transition:background .25s;position:relative;overflow:hidden;display:block;color:inherit; }
.tcp-card::before { content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--bleu);transform:scaleX(0);transform-origin:left;transition:transform .3s ease; }
.tcp-card:hover { background:var(--fond-card-hover); }
.tcp-card:hover::before { transform:scaleX(1); }
.tcp-card-num { font-family:var(--font-title);font-size:52px;color:rgba(30,144,255,0.2);line-height:1;margin-bottom:.6rem; }
.tcp-card-title { font-family:var(--font-title);font-size:24px;color:var(--blanc);letter-spacing:.5px;margin-bottom:.8rem; }
.tcp-card-desc { font-size:13px;color:var(--texte-dim);line-height:1.6; }
.tcp-card-arrow { display:block;margin-top:1.5rem;color:var(--bleu);font-size:18px;transition:transform .2s; }
.tcp-card:hover .tcp-card-arrow { transform:translateX(5px); }

/* ── NEWS ── */
.tcp-news-grid-3 { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bordure);border:1px solid var(--bordure); }
.tcp-news-card { background:var(--fond-card);display:flex;flex-direction:column;transition:background .2s;overflow:hidden; }
.tcp-news-card:hover { background:rgba(255,255,255,0.035); }
.tcp-news-thumb { height:200px;background:linear-gradient(135deg,#0f1e30,#1a2535);position:relative;overflow:hidden; }
.tcp-news-thumb img { width:100%;height:100%;object-fit:cover;transition:transform .4s ease; }
.tcp-news-card:hover .tcp-news-thumb img { transform:scale(1.04); }
.tcp-news-body { padding:1.4rem 1.6rem 1rem;flex:1; }
.tcp-news-date { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--texte-ghost);margin-bottom:.5rem; }
.tcp-news-title { font-family:var(--font-cond);font-size:17px;font-weight:700;color:var(--blanc);line-height:1.35; }
.tcp-news-footer { padding:.8rem 1.6rem 1.2rem;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--bordure);margin-top:auto; }
.tcp-news-footer a { font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--bleu);transition:opacity .2s; }
.tcp-news-footer a:hover { opacity:.7; }
.tcp-news-read-more { font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--bleu);transition:opacity .2s; }
.tcp-news-read-more:hover { opacity:.7; }

/* ── STAGES ── */
.tcp-stages-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;background:var(--bordure);border:1px solid var(--bordure); }
.tcp-stage-card { background:var(--fond-card);display:flex;flex-direction:column;transition:background .2s; }
.tcp-stage-card:hover { background:var(--fond-card-hover); }
.tcp-stage-thumb { height:160px;background:linear-gradient(135deg,#0f1e30,#1a2535);position:relative; }
.tcp-stage-thumb img { width:100%;height:100%;object-fit:cover; }
.tcp-stage-body { padding:1.5rem;flex:1; }
.tcp-stage-dates { display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem; }
.tcp-stage-date-pill { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--texte-ghost);background:rgba(255,255,255,0.04);border:1px solid var(--bordure);padding:2px 8px;border-radius:2px; }
.tcp-stage-title { font-family:var(--font-cond);font-size:19px;font-weight:700;color:var(--blanc);line-height:1.25;margin-bottom:.6rem; }
.tcp-stage-desc { font-size:13px;color:var(--texte-dim);line-height:1.6;margin-bottom:1rem; }
.tcp-stage-prix { font-family:var(--font-title);font-size:32px;color:var(--bleu);line-height:1; }
.tcp-stage-footer { padding:1rem 1.5rem;border-top:1px solid var(--bordure);display:flex;align-items:center;justify-content:space-between;gap:1rem; }

/* ── FILTRES ── */
.tcp-shop-toolbar { display:flex;align-items:center;justify-content:space-between;padding:1rem 2.5rem;border-bottom:1px solid var(--bordure);gap:1rem;flex-wrap:wrap; }
.tcp-filter-tabs { display:flex;gap:.4rem;flex-wrap:wrap; }
.tcp-filter-tab, .tcp-cat-chip { font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--texte-dim);background:none;border:1px solid var(--bordure);padding:6px 14px;border-radius:var(--radius);cursor:pointer;transition:all .2s; }
.tcp-filter-tab:hover, .tcp-cat-chip:hover { color:var(--blanc);border-color:rgba(255,255,255,0.2); }
.tcp-filter-tab.active, .tcp-cat-chip.active { background:var(--bleu);border-color:var(--bleu);color:#fff; }

/* ── BOUTIQUE ── */
.tcp-products-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--bordure);border:1px solid var(--bordure);padding:2rem 2.5rem; }
.tcp-product { background:var(--fond-card);border:1px solid var(--bordure);transition:background .2s,border-color .2s;overflow:hidden; }
.tcp-product:hover { background:var(--fond-card-hover);border-color:var(--bordure-bleu); }
.tcp-product-thumb { height:220px;background:linear-gradient(135deg,#0f1e30,#1a2535);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden; }
.tcp-product-overlay { position:absolute;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s; }
.tcp-product:hover .tcp-product-overlay { opacity:1; }
.tcp-add-btn { font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:var(--bleu);color:#fff;border:none;padding:10px 20px;cursor:pointer;border-radius:var(--radius); }
.tcp-product-body { padding:1.2rem; }
.tcp-product-cat { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--texte-ghost);margin-bottom:.4rem; }
.tcp-product-name { font-family:var(--font-cond);font-size:16px;font-weight:700;color:var(--blanc);line-height:1.25;margin-bottom:.6rem; }
.tcp-price { font-family:var(--font-title);font-size:26px;color:var(--blanc); }
.tcp-price-promo { color:var(--bleu); }
.tcp-price-old { font-size:14px;color:var(--texte-ghost);text-decoration:line-through;margin-left:.5rem; }
.tcp-sizes { display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.7rem; }
.tcp-size { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--texte-dim);background:rgba(255,255,255,0.04);border:1px solid var(--bordure);padding:2px 7px;border-radius:2px;cursor:pointer;transition:all .15s; }
.tcp-size:hover { background:var(--bleu);color:#fff;border-color:var(--bleu); }
.tcp-cart-btn { display:flex;align-items:center;gap:.5rem;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blanc);background:rgba(255,255,255,0.06);border:1px solid var(--bordure);padding:8px 16px;border-radius:var(--radius);transition:background .2s;text-decoration:none; }
.tcp-cart-btn:hover { background:rgba(255,255,255,0.1);color:var(--blanc); }
.tcp-cart-count { background:var(--bleu);color:#fff;font-size:9px;min-width:16px;height:16px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 4px; }
.tcp-badge-new { background:rgba(30,144,255,0.15);color:var(--bleu); }
.tcp-badge-exclu { background:rgba(139,92,246,0.15);color:#8b5cf6; }
.tcp-badge-promo { background:rgba(230,32,32,0.15);color:#e62020; }

/* ── BADGES ── */
.tcp-badge { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:3px 9px;border-radius:2px;display:inline-block; }
.tcp-badge-blue { background:rgba(30,144,255,0.15);color:#1e90ff; }
.tcp-badge-amber { background:rgba(186,117,23,0.15);color:#e09020; }
.tcp-badge-green { background:rgba(34,197,94,0.15);color:#22c55e; }
.tcp-badge-red { background:rgba(230,32,32,0.15);color:#e62020; }
.tcp-badge-purple { background:rgba(139,92,246,0.15);color:#8b5cf6; }

/* ── CONTACT ── */
.tcp-contact-grid { display:grid;grid-template-columns:1fr 1fr;gap:4rem; }
.tcp-contact-item { padding:1.2rem 0;border-bottom:1px solid var(--bordure); }
.tcp-contact-item-label { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--texte-ghost);margin-bottom:.4rem; }
.tcp-contact-item-value { font-size:14px;color:var(--texte);line-height:1.6; }
.tcp-form-group { display:flex;flex-direction:column; }
.tcp-form-label { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--texte-ghost);margin-bottom:.45rem; }
.tcp-form-input, .tcp-form-textarea { background:rgba(255,255,255,0.04);border:1px solid var(--bordure);color:var(--blanc);font-family:var(--font-body);font-size:14px;padding:.75rem 1rem;border-radius:var(--radius);outline:none;transition:border-color .2s;width:100%; }
.tcp-form-input::placeholder, .tcp-form-textarea::placeholder { color:var(--texte-ghost); }
.tcp-form-input:focus, .tcp-form-textarea:focus { border-color:var(--bleu);background:rgba(30,144,255,0.04); }
.tcp-form-textarea { height:130px;resize:vertical; }
select.tcp-form-input { appearance:none;cursor:pointer; }
select.tcp-form-input option { background:#0d1117;color:var(--blanc); }

/* ── CTA BAND ── */
.tcp-cta-band { display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:3.5rem 2.5rem;background:linear-gradient(135deg,#0f1e30 0%,#152840 100%);border-top:1px solid var(--bordure-bleu);border-bottom:1px solid var(--bordure-bleu);flex-wrap:wrap; }
.tcp-cta-band h2 { font-family:var(--font-title);font-size:clamp(28px,4vw,42px);color:var(--blanc);line-height:1;letter-spacing:.5px; }
.tcp-cta-band p { color:var(--texte-dim);font-size:13px;margin-top:.3rem; }

/* ── PARTENAIRES ── */
.tcp-sponsors-ticker-wrap { display:flex;align-items:center;gap:1.5rem;padding:1.4rem 2rem;border-bottom:1px solid var(--bordure);border-top:1px solid var(--bordure);background:rgba(255,255,255,0.02);overflow:hidden;min-height:110px; }
.tcp-sponsors-label { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--texte-ghost);flex-shrink:0;white-space:nowrap;padding-right:1.2rem;border-right:1px solid var(--bordure); }
.tcp-sponsors-ticker { overflow:hidden;flex:1;position:relative; }
.tcp-sponsors-ticker::before, .tcp-sponsors-ticker::after { content:'';position:absolute;top:0;bottom:0;width:50px;z-index:2;pointer-events:none; }
.tcp-sponsors-ticker::before { left:0;background:linear-gradient(to right,#0a0c10,transparent); }
.tcp-sponsors-ticker::after { right:0;background:linear-gradient(to left,#0a0c10,transparent); }
.tcp-sponsors-ticker-inner { display:flex;align-items:center;gap:4.5rem;animation:sponsors-scroll 25s linear infinite;width:max-content; }
.tcp-sponsors-ticker-inner:hover { animation-play-state:paused; }
.tcp-sponsor-item { display:flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none;transition:opacity .25s; }
a.tcp-sponsor-item:hover { opacity:1!important; }
.tcp-sponsor-logo { height:64px;width:auto;max-width:180px;object-fit:contain;display:block;opacity:.75;transition:opacity .25s; }
a.tcp-sponsor-item:hover .tcp-sponsor-logo { opacity:1; }
.tcp-sponsor-pill { font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--texte-dim);background:rgba(255,255,255,0.04);border:1px solid var(--bordure);padding:8px 18px;border-radius:2px;white-space:nowrap;transition:color .2s,border-color .2s; }
a.tcp-sponsor-item:hover .tcp-sponsor-pill { color:var(--blanc);border-color:rgba(255,255,255,0.25); }

/* ── FOOTER ── */
.tcp-footer { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding:4rem 2.5rem;border-top:1px solid var(--bordure);background:#080a0e; }
.tcp-footer-brand p { font-size:13px;color:var(--texte-ghost);line-height:1.65;margin:1rem 0 1.5rem;max-width:280px; }
.tcp-footer-socials { display:flex;gap:.6rem; }
.tcp-footer-socials a { width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid var(--bordure);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--texte-dim);transition:all .2s;font-weight:700; }
.tcp-footer-socials a:hover { background:var(--bleu);border-color:var(--bleu);color:#fff; }
.tcp-footer-col h4 { font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--texte-ghost);margin-bottom:1.2rem; }
.tcp-footer-col ul { display:flex;flex-direction:column;gap:.6rem; }
.tcp-footer-col li a { font-size:13px;color:var(--texte-dim);transition:color .2s; }
.tcp-footer-col li a:hover { color:var(--blanc); }
.tcp-footer-bottom {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:1.2rem 2.5rem;
  border-top:1px solid var(--bordure);
  background:#080a0e;
  gap:1rem;
}
.tcp-footer-bottom p { font-family:var(--font-cond);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--texte-ghost);margin:0; }
.tcp-footer-bottom .tcp-footer-dev { text-align:center;color:var(--texte-ghost); }
.tcp-footer-bottom > div { display:flex;gap:1.5rem;justify-content:flex-end; }
.tcp-footer-bottom a { font-family:var(--font-cond);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--texte-ghost);transition:color .2s; }
.tcp-footer-bottom a:hover { color:var(--blanc); }

/* ── CONTACT FORM 7 ── */
.wpcf7 { width:100%; }
.wpcf7-form { display:flex;flex-direction:column;gap:0; }
.wpcf7-form p { margin:0 0 1rem 0!important;display:flex;flex-direction:column; }
.wpcf7-form label { font-family:var(--font-cond)!important;font-size:10px!important;font-weight:700!important;letter-spacing:2px!important;text-transform:uppercase!important;color:var(--texte-ghost)!important;margin-bottom:.45rem!important;display:block!important; }
.wpcf7-form input[type="text"],.wpcf7-form input[type="email"],.wpcf7-form input[type="tel"],.wpcf7-form textarea,.wpcf7-form select { background:rgba(255,255,255,0.04)!important;border:1px solid var(--bordure)!important;color:var(--blanc)!important;font-family:var(--font-body)!important;font-size:14px!important;padding:.75rem 1rem!important;border-radius:var(--radius)!important;outline:none!important;width:100%!important;transition:border-color .2s!important;box-sizing:border-box!important; }
.wpcf7-form input::placeholder,.wpcf7-form textarea::placeholder { color:var(--texte-ghost)!important; }
.wpcf7-form input:focus,.wpcf7-form textarea:focus,.wpcf7-form select:focus { border-color:var(--bleu)!important;background:rgba(30,144,255,0.04)!important; }
.wpcf7-form textarea { height:130px!important;resize:vertical!important; }
.wpcf7-form input[type="submit"] { font-family:var(--font-cond)!important;font-size:12px!important;font-weight:700!important;letter-spacing:2px!important;text-transform:uppercase!important;background:var(--bleu)!important;color:#fff!important;border:none!important;padding:14px 30px!important;border-radius:var(--radius)!important;cursor:pointer!important;width:100%!important;transition:opacity .2s!important;margin-top:.5rem!important; }
.wpcf7-not-valid-tip { font-size:11px!important;color:#e62020!important;margin-top:.3rem!important; }
.wpcf7-not-valid { border-color:rgba(230,32,32,0.4)!important; }
.wpcf7-response-output { font-family:var(--font-cond)!important;font-size:12px!important;font-weight:700!important;letter-spacing:1.5px!important;text-transform:uppercase!important;padding:1rem 1.2rem!important;border-radius:var(--radius)!important;margin-top:1rem!important;border:none!important; }
.wpcf7-mail-sent-ok { background:rgba(34,197,94,0.08)!important;border:1px solid rgba(34,197,94,0.25)!important;color:#22c55e!important; }
.wpcf7-mail-sent-ng,.wpcf7-aborted { background:rgba(230,32,32,0.07)!important;border:1px solid rgba(230,32,32,0.2)!important;color:#e62020!important; }
.wpcf7-validation-errors { background:rgba(186,117,23,0.08)!important;border:1px solid rgba(186,117,23,0.2)!important;color:#e09020!important; }

/* ── ARTICLE SINGLE ── */
.tcp-single-header { padding:4rem 2.5rem 2.5rem;border-bottom:1px solid var(--bordure);max-width:800px;margin:0 auto;width:100%; }
.tcp-single-body { max-width:800px;margin:0 auto;padding:3rem 2.5rem;width:100%; }
.tcp-single-meta { display:flex;align-items:center;gap:.75rem;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--texte-ghost);margin-bottom:2rem;flex-wrap:wrap; }
.tcp-article-content h2 { font-family:var(--font-title);font-size:32px;color:var(--blanc);margin:2rem 0 .8rem;letter-spacing:.5px; }
.tcp-article-content h3 { font-family:var(--font-cond);font-size:18px;font-weight:700;color:var(--blanc);margin:1.5rem 0 .6rem; }
.tcp-article-content p { color:var(--texte-dim);font-size:15px;line-height:1.75;margin-bottom:1rem; }
.tcp-article-content ul,.tcp-article-content ol { padding-left:1.5rem;margin-bottom:1rem; }
.tcp-article-content li { color:var(--texte-dim);font-size:15px;line-height:1.7;margin-bottom:.3rem;list-style:disc; }
.tcp-article-content a { color:var(--bleu);text-decoration:underline; }
.tcp-article-content blockquote { border-left:3px solid var(--bleu);padding:1rem 1.5rem;background:rgba(30,144,255,0.05);margin:1.5rem 0;font-style:italic;color:var(--texte-dim); }

/* ── LIVE ── */
.tcp-live-page { padding:2.5rem;display:flex;flex-direction:column;align-items:center; }

/* ── SCROLL REVEAL ── */
.tcp-reveal { opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease; }
.tcp-reveal.revealed { opacity:1;transform:translateY(0); }

/* ── PAGE CLUB — équipes tabs ── */
.tcp-eq-tab { transition:background .2s,border-color .2s; }
.tcp-eq-tab:hover { background:rgba(30,144,255,0.06)!important; }
#tcp-eq-detail { min-height:200px; }

/* ── RESPONSIVE ── */
@media (max-width:1024px) {
  .tcp-card-grid-4 { grid-template-columns:repeat(2,1fr); }
  .tcp-footer { grid-template-columns:1fr 1fr;gap:2rem; }
  .tcp-contact-grid { gap:2rem; }
  .tcp-hero-logo-img { max-width:340px;max-height:340px; }
}

@media (max-width:900px) {
  .tcp-hero-inner { flex-direction:column;align-items:flex-start;gap:2rem; }
  .tcp-hero-logo-zone { display:none; }
}

@media (max-width:768px) {
  :root { --nav-h:58px; }
  .tcp-nav-links { display:none; }
  .tcp-nav-links.open { display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:rgba(10,12,16,0.97);backdrop-filter:blur(20px);border-bottom:1px solid var(--bordure);padding:1.5rem;gap:.4rem;z-index:999; }
  .tcp-hamburger { display:flex; }
  .tcp-hero { padding:3rem 1.5rem 2rem;min-height:auto; }
  .tcp-hero-stats { gap:1.5rem;margin-top:2.5rem; }
  .tcp-section { padding:3rem 1.5rem; }
  .tcp-page-header { padding:3rem 1.5rem 2rem; }
  .tcp-shop-toolbar { padding:1rem 1.5rem; }
  .tcp-card-grid-3,.tcp-card-grid-4,.tcp-news-grid-3 { grid-template-columns:1fr; }
  .tcp-contact-grid { grid-template-columns:1fr; }
  .tcp-footer { grid-template-columns:1fr;padding:2.5rem 1.5rem; }
  .tcp-footer-bottom { grid-template-columns:1fr;padding:1rem 1.5rem;text-align:center; }
  .tcp-footer-bottom > div { justify-content:center; }
  .tcp-cta-band { padding:2rem 1.5rem;flex-direction:column;text-align:center; }
  .tcp-sponsors-ticker-wrap { padding:1rem 1.2rem;gap:1rem;min-height:76px; }
  .tcp-sponsor-logo { height:44px;max-width:130px; }
  .tcp-sponsors-ticker-inner { gap:2.5rem;animation-duration:18s; }
  .tcp-single-header,.tcp-single-body { padding-left:1.5rem;padding-right:1.5rem; }
  .tcp-live-page { padding:1.5rem; }
  .tcp-products-grid { padding:1.5rem; }
}

@media (max-width:480px) {
  .tcp-hero-title { font-size:52px; }
  .tcp-page-title { font-size:48px; }
  .tcp-hero-actions { flex-direction:column; }
  .tcp-hero-actions .tcp-btn { width:100%;justify-content:center; }
}

/* ================================================================
   ÉVÉNEMENTS — The Events Calendar
   ================================================================ */
.tcp-events-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1px;
  background: var(--bordure);
  border: 1px solid var(--bordure);
}

.tcp-event-card {
  background: var(--fond-card);
  display: flex;
  flex-direction: column;
  transition: background .2s;
  overflow: hidden;
}
.tcp-event-card:hover { background: var(--fond-card-hover); }

/* Vignette */
.tcp-event-thumb {
  height: 160px;
  background: linear-gradient(135deg, #0f1e30, #1a2535);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Bloc date (quand pas de photo) */
.tcp-event-date-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.tcp-event-day {
  font-family: var(--font-title);
  font-size: 56px;
  color: var(--blanc);
  line-height: 1;
}
.tcp-event-month {
  font-family: var(--font-cond);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--bleu);
  text-transform: uppercase;
}
.tcp-event-year {
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--texte-ghost);
  letter-spacing: 2px;
}

/* Date en overlay sur photo */
.tcp-event-date-overlay {
  position: absolute;
  bottom: 10px;
  left: 10px;
  background: rgba(10,12,16,0.85);
  backdrop-filter: blur(8px);
  padding: 6px 12px;
  border-radius: 2px;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.tcp-event-date-overlay .tcp-event-day   { font-size: 22px; }
.tcp-event-date-overlay .tcp-event-month { font-size: 11px; }

/* Corps */
.tcp-event-body {
  padding: 1.3rem 1.5rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.tcp-event-title {
  font-family: var(--font-cond);
  font-size: 18px;
  font-weight: 700;
  color: var(--blanc);
  line-height: 1.3;
  margin: 0 0 .4rem;
}

.tcp-event-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--font-cond);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
  color: var(--texte-dim);
}
.tcp-event-meta-icon { font-size: 13px; }

.tcp-event-excerpt {
  font-size: 12px;
  color: var(--texte-ghost);
  line-height: 1.55;
  margin-top: .4rem;
}

/* Footer */
.tcp-event-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1.5rem 1.2rem;
  border-top: 1px solid var(--bordure);
  margin-top: auto;
}

/* Responsive */
@media (max-width: 768px) {
  .tcp-events-grid { grid-template-columns: 1fr; }
}

/* ── Pages légales ── */
.tcp-legal-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 3rem 2.5rem 6rem;
}
.tcp-legal-intro {
  font-size: 15px;
  color: var(--texte-dim);
  line-height: 1.8;
  padding: 1.5rem;
  background: rgba(30,144,255,.05);
  border-left: 3px solid var(--bleu);
  margin-bottom: 3rem;
}
.tcp-legal-section {
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--bordure);
}
.tcp-legal-section:last-child { border-bottom: none; }
.tcp-legal-section h2 {
  font-family: var(--font-title);
  font-size: 22px;
  color: var(--blanc);
  margin: 0 0 1rem;
  letter-spacing: .5px;
}
.tcp-legal-section p {
  font-size: 14px;
  color: var(--texte-dim);
  line-height: 1.8;
  margin-bottom: .8rem;
}
.tcp-legal-section ul {
  padding-left: 1.5rem;
  margin: .5rem 0 .8rem;
}
.tcp-legal-section ul li {
  font-size: 14px;
  color: var(--texte-dim);
  line-height: 1.8;
  margin-bottom: .3rem;
}
.tcp-legal-section ul li strong { color: var(--blanc); }
.tcp-legal-section a { color: var(--bleu); }
.tcp-legal-section a:hover { color: #fff; }
@media(max-width:600px) { .tcp-legal-wrap { padding:2rem 1rem 4rem; } }

/* ── Formulaire inscription événement (CF7) ── */
.tcp-event-form-wrap {
  margin-top: 3rem;
  padding: 2rem;
  background: rgba(30,144,255,.05);
  border: 1px solid rgba(30,144,255,.2);
  border-radius: var(--radius);
}
.tcp-event-form-title {
  font-family: var(--font-title);
  font-size: 28px;
  color: var(--blanc);
  margin: 0 0 .5rem;
}
.tcp-event-form-sub {
  font-size: 13px;
  color: var(--texte-dim);
  margin: 0 0 1.5rem;
  line-height: 1.6;
}

/* Styliser CF7 aux couleurs du thème */
.tcp-event-form-wrap .wpcf7-form p { margin-bottom: 1rem; }
.tcp-event-form-wrap .wpcf7-form label {
  font-family: var(--font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--texte-dim);
  display: block;
  margin-bottom: .4rem;
}
.tcp-event-form-wrap .wpcf7-form input[type="text"],
.tcp-event-form-wrap .wpcf7-form input[type="email"],
.tcp-event-form-wrap .wpcf7-form input[type="tel"],
.tcp-event-form-wrap .wpcf7-form input[type="number"],
.tcp-event-form-wrap .wpcf7-form select,
.tcp-event-form-wrap .wpcf7-form textarea {
  width: 100%;
  background: var(--fond-card);
  border: 1px solid var(--bordure);
  color: var(--blanc);
  padding: 12px 16px;
  font-family: var(--font-cond);
  font-size: 14px;
  border-radius: 0;
  transition: border-color .2s;
}
.tcp-event-form-wrap .wpcf7-form input:focus,
.tcp-event-form-wrap .wpcf7-form select:focus,
.tcp-event-form-wrap .wpcf7-form textarea:focus {
  border-color: var(--bleu);
  outline: none;
}
.tcp-event-form-wrap .wpcf7-form textarea { min-height: 100px; resize: vertical; }
.tcp-event-form-wrap .wpcf7-form select { appearance: auto; cursor: pointer; }
.tcp-event-form-wrap .wpcf7-form input[type="submit"] {
  background: var(--bleu) !important;
  color: #fff !important;
  font-family: var(--font-cond) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  padding: 14px 32px !important;
  border: none !important;
  cursor: pointer !important;
  transition: background .2s !important;
  border-radius: 0 !important;
  margin-top: .5rem !important;
}
.tcp-event-form-wrap .wpcf7-form input[type="submit"]:hover { background: #1677d4 !important; }
.tcp-event-form-wrap .wpcf7-response-output {
  margin-top: 1rem;
  padding: .8rem 1rem;
  border-radius: 0;
  font-family: var(--font-cond);
  font-size: 13px;
}
.tcp-event-form-wrap .wpcf7-mail-sent-ok { background: rgba(34,197,94,.1); border-color: #22c55e !important; color: #22c55e; }
.tcp-event-form-wrap .wpcf7-validation-errors { background: rgba(230,32,32,.1); border-color: #e62020 !important; color: #e62020; }
