/* ===== Crown Athletics Club — feuille de style unique, reprise à l'identique de la maquette validée ===== */
* { box-sizing: border-box; }
body { margin: 0; }
.cac-root { font-family: "Work Sans", system-ui, sans-serif; background: #f7f4ee; color: #1c1c1a; }
.cac-root a { color: inherit; text-decoration: none; }
.cac-root a:hover { color: #e2402a; }
.disp { font-family: "Oswald", system-ui, sans-serif; text-transform: uppercase; letter-spacing: 0.02em; }
.serif-accent { font-family: "Lora", Georgia, serif; }

.btn-primary {
  display: inline-flex; align-items: center; gap: 10px;
  background: #d63a26; color: #fff; font-family: "Oswald", sans-serif;
  text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; font-size: 15px;
  padding: 16px 30px; border: none; cursor: pointer;
}
.btn-primary:hover { background: #b92e1c; }
.cac-root a.btn-primary, .cac-root a.btn-primary:hover { color: #fff; }
.btn-primary.small { padding: 12px 22px; font-size: 13px; }

.btn-outline {
  display: inline-flex; align-items: center; gap: 10px;
  background: transparent; color: #14181a; font-family: "Oswald", sans-serif;
  text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; font-size: 14px;
  padding: 14px 26px; border: 1.5px solid #14181a; cursor: pointer;
}
.btn-outline:hover { background: #14181a; color: #fff; }

.crown-nav { display:flex; align-items:center; gap:40px; }
.cac-root .nav-link { font-family: "Oswald", sans-serif; font-size: 16px; font-weight: 600; letter-spacing: 0.06em; color: #ffffff; text-shadow: 0 1px 3px rgba(0,0,0,0.45); }
.cac-root .nav-link.active { color: #ff5a3d; border-bottom: 2px solid #ff5a3d; padding-bottom: 6px; }
.cac-root footer .nav-link { color: #c7c2b3; text-shadow: none; font-size: 14px; }

.eyebrow { font-family: "Oswald", sans-serif; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; color: #d63a26; font-weight: 600; }

/* ---- header band (bandeau photo transparent, commun à toutes les pages) ---- */
.page-hero { position:relative; height:340px; width:100%; overflow:hidden; }
.page-hero.hero-home { height:620px; }
@media (min-width:1440px) { .page-hero.hero-home { height:700px; } }
@media (min-width:1800px) { .page-hero.hero-home { height:820px; } }
.page-hero img.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.page-hero .hero-scrim { position:absolute; inset:0; background:linear-gradient(100deg, rgba(10,12,10,0.85) 0%, rgba(10,12,10,0.5) 55%, rgba(10,12,10,0.25) 100%); }
.page-hero header.site-header { position:absolute; top:0; left:0; right:0; z-index:5; display:flex; align-items:center; justify-content:space-between; padding:26px 56px; background:linear-gradient(to bottom, rgba(45,49,51,0.55) 0%, rgba(45,49,51,0.32) 55%, rgba(45,49,51,0) 100%); }
.page-hero .hero-inner { position:relative; height:100%; display:flex; flex-direction:column; justify-content:center; padding:0 56px; }

/* ---- accueil : feature strip icons ---- */
.feature-strip { background:#fff; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-bottom:1px solid #ece7db; }
.feature-strip .feat { display:flex; gap:20px; align-items:flex-start; padding:40px 48px; border-right:1px solid #ece7db; }
.feature-strip .feat:last-child { border-right:none; }
.feature-strip .feat img { width:60px; height:60px; flex:none; }

/* ---- coureurs vedettes / encadrement (cartes photo pleine largeur avec dégradé) ---- */
.feature-card { position:relative; overflow:hidden; background:#14181a; }
.feature-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feature-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(8,10,9,0.92) 0%, rgba(8,10,9,0.55) 38%, rgba(8,10,9,0.05) 70%); }
.feature-content { position:absolute; left:0; right:0; bottom:0; padding:30px 32px; }
.feature-bar { width:36px; height:3px; background:#d63a26; margin-bottom:14px; }
.feature-name { font-family:"Oswald",sans-serif; color:#fff; font-weight:700; text-transform:uppercase; line-height:1.05; }
.feature-text { color:#e9e5d9; font-size:14px; line-height:1.55; margin-top:10px; max-width:420px; }

.runner-card { background:#fff; border:1px solid #ece7db; overflow:hidden; }

/* ---- presse ---- */
.press-card { display:block; background:#fff; border:1px solid #ece7db; overflow:hidden; transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; }
.press-card:hover { border-color:#d63a26; box-shadow:0 10px 26px rgba(20,24,26,0.1); transform:translateY(-3px); }
.press-card-media { position:relative; height:180px; background:#14181a; overflow:hidden; }
.press-card-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s ease; }
.press-card:hover .press-card-media img { transform:scale(1.06); }
.press-card-fallback { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, #0e3d24, #14181a); }
.press-card-badge { position:absolute; left:14px; bottom:14px; background:#fff; }
.press-card-body { padding:20px 22px 24px; }
.press-read-more { display:inline-block; margin-top:12px; font-size:13px; font-weight:600; color:#d63a26; }
.press-card:hover .press-read-more { color:#b92e1c; }

/* ---- fiche coureur : courses disputées ---- */
.course-card { position:relative; background:#fff; border:1px solid #ece7db; padding:24px 18px 18px; text-align:center; transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; }
.course-card:hover { border-color:#d63a26; box-shadow:0 8px 20px rgba(20,24,26,0.08); transform:translateY(-2px); }
.course-card-badge { position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:#fff; white-space:nowrap; }
.course-card-fallback { width:40px; height:40px; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; background:#f7f4ee; border-radius:50%; }
.runner-card img { width:100%; height:320px; object-fit:cover; display:block; }
.runner-card .runner-body { padding:22px 24px; }

.gallery-cap { position:absolute; left:0; right:0; bottom:0; background:linear-gradient(to top, rgba(10,12,10,0.75), rgba(10,12,10,0)); color:#f4f1e8; font-size:13px; padding:28px 16px 12px; }

/* ---- photos cliquables (galerie d'équipe, coureurs) : effet de survol uniquement quand un lien/article est renseigné ---- */
.has-link { cursor:pointer; }
.has-link img { transition:transform 0.4s ease; }
.has-link:hover img { transform:scale(1.06); }
.team-gallery-photo.has-link .gallery-cap { transition:background 0.3s ease; }
.team-gallery-photo.has-link:hover .gallery-cap { background:linear-gradient(to top, rgba(10,12,10,0.88), rgba(10,12,10,0.15)); }
.gallery-read-more { display:block; font-size:12px; font-weight:600; color:#ff8a6e; margin-top:4px; opacity:0; transform:translateY(4px); transition:opacity 0.25s ease, transform 0.25s ease; }
.has-link:hover .gallery-read-more { opacity:1; transform:translateY(0); }
.feature-card.has-link .feature-overlay { transition:background 0.3s ease; }
.feature-card.has-link:hover .feature-overlay { background:linear-gradient(to top, rgba(8,10,9,0.96) 0%, rgba(8,10,9,0.65) 38%, rgba(8,10,9,0.1) 70%); }
.runner-card.has-link { transition:box-shadow 0.3s ease; }
.runner-card.has-link:hover { box-shadow:0 8px 24px rgba(20,24,26,0.12); }
/* les cartes cliquables restent dans les couleurs de la maquette au survol (au lieu du rouge des liens standard) */
.has-link:hover .gallery-cap { color:#f4f1e8 !important; }
.has-link:hover .feature-name { color:#fff !important; }
.has-link:hover .feature-text { color:#e9e5d9 !important; }
.runner-card.has-link:hover .disp { color:#1c1c1a !important; }

/* ---- palmarès ---- */
.cat-title { font-family:"Oswald",sans-serif; font-size:22px; font-weight:600; text-transform:uppercase; color:#0e3d24; margin: 0 0 22px 0; }
.palm-row { display:flex; gap:24px; padding:16px 0; border-bottom:1px solid #ece7db; }
.palm-row:last-child { border-bottom:none; }
.palm-year { font-family:"Oswald",sans-serif; font-weight:600; font-size:15px; color:#d63a26; width:110px; flex:none; }
.palm-text { font-size:15px; line-height:1.55; color:#33322c; }
.palm-list ul { list-style:none; margin:0; padding:0; }
.palm-list li { font-size:15px; line-height:1.55; color:#33322c; padding:16px 0; border-bottom:1px solid #ece7db; }
.palm-list li:last-child { border-bottom:none; }

.hl-row { display:flex; align-items:center; gap:30px; padding:24px 0; border-bottom:1px solid #ece7db; }
.hl-row:last-child { border-bottom:none; }
.hl-thumb { width:150px; height:130px; flex:none; overflow:hidden; position:relative; }
.hl-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hl-body { flex:1; display:flex; flex-direction:column; gap:6px; }
.hl-tag { font-family:"Oswald",sans-serif; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:#0e3d24; font-weight:600; }
.hl-name { font-family:"Oswald",sans-serif; font-size:26px; font-weight:700; text-transform:uppercase; color:#14181a; line-height:1.1; }
.hl-desc { font-size:15px; line-height:1.55; color:#4a4a45; max-width:640px; }

/* ---- calendrier ---- */
.badge { display:inline-block; font-family:"Oswald",sans-serif; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; padding:4px 10px; border:1px solid #d63a26; color:#d63a26; }
.timeline { position:relative; display:flex; padding:50px 12px 0; }
.timeline::before { content:''; position:absolute; top:5px; left:12px; right:12px; height:2px; background:#dcd6c6; }
.tl-item { position:relative; flex:1; text-align:center; padding:0 8px; }
.tl-dot { width:12px; height:12px; border-radius:50%; background:#d63a26; border:3px solid #f7f4ee; box-shadow:0 0 0 1.5px #d63a26; position:absolute; top:-5px; left:50%; transform:translateX(-50%); }
.tl-date { font-family:"Oswald",sans-serif; font-size:12px; font-weight:600; letter-spacing:0.04em; color:#d63a26; margin-top:22px; }
.tl-name { font-family:"Oswald",sans-serif; font-size:14px; font-weight:600; text-transform:uppercase; margin-top:8px; line-height:1.3; }
.detail-card { background:#fff; border:1px solid #ece7db; padding:26px; }
.result-card { background:#fff; border:1px solid #ece7db; display:flex; align-items:stretch; min-height:200px; }
.result-card img { width:150px; flex:none; align-self:stretch; object-fit:cover; }

/* ---- partenaires ---- */
.partner-band { display:flex; align-items:center; gap:56px; padding:44px 56px; border-bottom:1px solid #ece7db; }
.partner-band:nth-child(even) { background:#fff; }
.partner-logo-box { width:220px; flex:none; display:flex; align-items:center; justify-content:center; }
.partner-desc { flex:1; font-size:16px; color:#4a4a45; line-height:1.6; max-width:640px; }

/* ---- footer ---- */
.site-footer { background:#2d3133; color:#c7c2b3; padding:56px 56px 32px; margin-top:auto; }
.site-footer .footer-top { display:flex; justify-content:space-between; align-items:center; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(244,241,232,0.12); }
.site-footer .social-link { width:38px; height:38px; border:1px solid rgba(244,241,232,0.3); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.site-footer .footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:24px; font-size:13px; }

/* ---- menu mobile (burger) ---- */
.crown-nav-checkbox { display:none; }
.crown-nav-burger { display:none; flex-direction:column; justify-content:center; gap:5px; width:30px; height:30px; cursor:pointer; }
.crown-nav-burger span { display:block; height:2px; width:100%; background:#fff; border-radius:2px; }

@media (max-width: 900px) {
  /* -- navigation -- */
  .site-header { padding:16px 20px !important; }
  .site-header .btn-outline { display:none; }
  .site-header img { height:38px !important; }
  .crown-nav-burger { display:flex; }
  .crown-nav {
    display:none; position:fixed; top:70px; left:0; right:0; z-index:50;
    flex-direction:column; align-items:flex-start; gap:6px; background:#2d3133;
    padding:10px 24px 26px; box-shadow:0 12px 24px rgba(0,0,0,0.35);
    max-height:calc(100vh - 70px); overflow-y:auto;
  }
  .crown-nav-checkbox:checked ~ .crown-nav { display:flex; }
  .crown-nav .nav-link { width:100%; padding:12px 0; border-bottom:1px solid rgba(244,241,232,0.12); }
  .site-footer .footer-top { flex-wrap:wrap; gap:20px; }
  .crown-footer-nav { flex-wrap:wrap; gap:16px !important; row-gap:10px; }
  .site-footer .footer-bottom { flex-direction:column; align-items:flex-start; gap:6px; }

  /* -- hero (accueil + pages intérieures) -- */
  .page-hero { height:auto !important; min-height:420px; }
  .page-hero .hero-inner h1, section.page-hero + * h1 { font-size:30px !important; }
  .hero-inner {
    height:auto !important; position:relative !important;
    justify-content:flex-start !important;
    padding:110px 24px 40px !important;
  }
  .hero-inner p { font-size:15px !important; }

  /* -- toutes les grilles passent en 1 colonne (classes explicites) -- */
  .grid-2col, .grid-3col, .grid-auto, .feature-strip { grid-template-columns:1fr !important; }

  section[style*="padding:56px 56px"], section[style*="padding:80px 56px"], section[style*="padding:70px 56px"],
  section[style*="padding:90px 56px"], section[style*="padding:100px 56px"], section[style*="padding:48px 56px"],
  section[style*="padding:36px 56px"], section[style*="padding:60px 56px"], section[style*="padding:64px 56px"],
  section[style*="padding:20px 56px"], section[style*="padding:0 56px"] { padding-left:20px !important; padding-right:20px !important; }

  /* -- coureurs vedettes : la grande carte perd sa fusion de lignes -- */
  .vedettes-grid {
    grid-template-columns:1fr !important; grid-template-rows:none !important;
    height:auto !important; grid-auto-rows:260px !important;
  }
  .feature-card-big { grid-row:auto !important; }
  .feature-card { height:260px !important; }

  /* -- galerie d'équipe : 4 colonnes -> 2 -- */
  .grid-4col { grid-template-columns:repeat(2, minmax(0,1fr)) !important; }

  /* -- galerie d'équipe (grande photo + 4) : empilée en 1 colonne -- */
  .team-gallery-grid {
    grid-template-columns:1fr !important; grid-template-rows:none !important;
    height:auto !important; grid-auto-rows:220px !important;
  }
  .team-gallery-big { grid-row:auto !important; }

  /* -- faits marquants (palmarès) : photo au-dessus du texte -- */
  .hl-row { flex-direction:column; align-items:flex-start; gap:14px; }
  .hl-thumb { width:100%; height:200px; }

  /* -- résultats calendrier : photo au-dessus du texte -- */
  .result-card { flex-direction:column; min-height:0; }
  .result-card img { width:100%; height:200px; align-self:stretch; }

  /* -- partenaires : bandeau en colonne -- */
  .partner-band { flex-direction:column; align-items:flex-start; gap:20px; padding:32px 20px; }

  /* -- frise du calendrier : verticale plutôt qu'horizontale -- */
  .timeline { flex-direction:column; padding:10px 4px 0; gap:22px; }
  .timeline::before { top:0; bottom:0; left:5px; right:auto; width:2px; height:auto; }
  .tl-item { text-align:left; padding:0 0 0 24px; }
  .tl-dot { top:4px; left:0; transform:none; }
  .tl-date { margin-top:0; }
}

@media (max-width: 520px) {
  .page-hero, section.page-hero { height:auto !important; min-height:300px; }
  h1.disp { font-size:26px !important; }
  .crown-nav { top:62px; max-height:calc(100vh - 62px); }
  .site-header img { height:32px !important; }
}
