/* ============================================================
   BLOG & PAGES LOCALES — CSS PARTAGÉ
   Armwrestling Club Strassen · Luxembourg
============================================================ */

/* ===== HERO ===== */
.article-hero,
.local-hero {
  background: var(--black);
  padding: 7rem 4rem 4.5rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
  position: relative;
  overflow: hidden;
}

.article-hero::before,
.local-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 60% at 80% 50%, rgba(192,57,43,.07) 0%, transparent 65%);
  pointer-events: none;
}

.article-tag,
.page-tag {
  font-family: var(--font-display);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.article-tag::before,
.page-tag::before {
  content: '';
  display: block;
  width: 2rem;
  height: 1px;
  background: var(--red);
  flex-shrink: 0;
}

.article-title,
.page-title {
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5.5vw, 5rem);
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1;
  color: var(--white);
  margin-bottom: 1.2rem;
}

.article-title span,
.page-title span {
  color: var(--red);
}

/* ===== BREADCRUMB ===== */
.breadcrumb {
  font-family: var(--font-display);
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(245,240,232,.3);
  margin-bottom: 1.5rem;
}

.breadcrumb a {
  color: rgba(245,240,232,.3);
  text-decoration: none;
  transition: color .2s;
}

.breadcrumb a:hover { color: var(--red); }
.breadcrumb span { margin: 0 .5rem; }

.article-date {
  font-family: var(--font-display);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(245,240,232,.28);
  margin-bottom: 1.2rem;
}

/* ===== CORPS DE L'ARTICLE ===== */
.article-body,
.page-body {
  max-width: 960px;        /* était 780px — plus large */
  margin: 0 auto;
  padding: 4rem 3rem;      /* plus de padding horizontal */
}

/* Titres de section */
.article-body h2,
.page-body h2 {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--white);
  margin: 3.5rem 0 1.2rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255,255,255,.08);
  line-height: 1.1;
}

/* Sous-titres */
.article-body h3,
.page-body h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--red);
  margin: 2.2rem 0 .8rem;
  letter-spacing: .05em;
}

/* Paragraphes — taille et contraste augmentés */
.article-body p,
.page-body p {
  font-size: 1.05rem;       /* était ~1rem */
  color: rgba(245,240,232,.82);  /* était .75 — plus lisible */
  line-height: 2;            /* interligne généreux */
  margin-bottom: 1.6rem;
}

/* Listes */
.article-body ul,
.article-body ol,
.page-body ul,
.page-body ol {
  margin: 0 0 1.8rem 1.8rem;
}

.article-body li,
.page-body li {
  font-size: 1rem;
  color: rgba(245,240,232,.78);
  line-height: 1.9;
  margin-bottom: .5rem;
}

/* Gras dans le texte */
.article-body strong,
.page-body strong {
  color: var(--white);
  font-weight: 600;
}

/* ===== CALLOUT ===== */
.callout {
  background: rgba(192,57,43,.07);
  border-left: 3px solid var(--red);
  padding: 1.6rem 2rem;
  margin: 2.5rem 0;
  border-radius: 0 4px 4px 0;
}

.callout p {
  margin: 0 !important;
  color: rgba(245,240,232,.9) !important;
  font-size: 1rem !important;
  line-height: 1.85 !important;
}

/* ===== CTA BLOCK ===== */
.cta-block {
  background: linear-gradient(135deg, rgba(192,57,43,.12), rgba(10,10,10,.85));
  border: 1px solid rgba(192,57,43,.3);
  padding: 2.5rem 3rem;
  margin: 3.5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.cta-block h3 {
  font-family: var(--font-display);
  font-size: 1.7rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 .5rem !important;
  border: none !important;
  padding: 0 !important;
}

.cta-block p {
  margin: 0 !important;
  font-size: .95rem !important;
  color: rgba(245,240,232,.6) !important;
  line-height: 1.6 !important;
}

/* ===== INFO GRID (guide débutant) ===== */
.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 2px;
  background: rgba(192,57,43,.15);
  border: 1px solid rgba(192,57,43,.2);
  margin: 2.5rem 0;
}

.info-cell {
  background: rgba(10,5,5,.92);
  padding: 1.6rem;
}

.info-cell-label {
  font-family: var(--font-display);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: .5rem;
}

.info-cell-val {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--white);
  text-transform: uppercase;
}

/* ===== TIMELINE ===== */
.timeline { margin: 2.5rem 0; }

.timeline-item {
  display: flex;
  gap: 2rem;
  padding: 1.8rem 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.timeline-week {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 900;
  color: var(--red);
  min-width: 70px;
  line-height: 1;
  padding-top: .2rem;
}

.timeline-content h4 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: .5rem;
  letter-spacing: .05em;
}

.timeline-content p {
  font-size: .95rem !important;
  color: rgba(245,240,232,.65) !important;
  line-height: 1.75 !important;
  margin: 0 !important;
}

/* ===== CHECKLIST ===== */
.checklist {
  background: var(--dark);
  border: 1px solid rgba(255,255,255,.07);
  padding: 2rem 2.5rem;
  margin: 2.5rem 0;
}

.checklist h4 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 1.2rem;
  letter-spacing: .1em;
}

.checklist ul { margin: 0; padding: 0; list-style: none; }

.checklist li {
  padding: .45rem 0 .45rem 1.8rem;
  font-size: .95rem !important;
  color: rgba(245,240,232,.75) !important;
  line-height: 1.7 !important;
  position: relative;
  margin: 0 !important;
}

.checklist li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--red);
  font-weight: 700;
}

/* ===== TABLES ===== */
.weights-table,
.compare-table {
  width: 100%;
  border-collapse: collapse;
  margin: 2.5rem 0;
  font-size: .95rem;
}

.weights-table th,
.compare-table th {
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--red);
  text-align: left;
  padding: .9rem 1.2rem;
  border-bottom: 1px solid rgba(192,57,43,.3);
}

.weights-table td,
.compare-table td {
  color: rgba(245,240,232,.72);
  padding: .9rem 1.2rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
  line-height: 1.6;
}

.compare-table td:first-child {
  color: var(--white);
  font-weight: 500;
  font-family: var(--font-display);
  font-size: .9rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.weights-table tr:hover td,
.compare-table tr:hover td { background: rgba(255,255,255,.02); }

.highlight { color: var(--red) !important; font-weight: 600; }

/* ===== RULE CARDS (règles) ===== */
.rule-card {
  background: var(--dark);
  border: 1px solid rgba(255,255,255,.07);
  padding: 1.8rem 2rem;
  margin-bottom: 2px;
}

.rule-num {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: 900;
  color: rgba(192,57,43,.25);
  line-height: 1;
  float: left;
  margin-right: 1.2rem;
}

.rule-title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: .5rem;
  letter-spacing: .05em;
}

.rule-desc {
  font-size: .95rem;
  color: rgba(245,240,232,.65);
  line-height: 1.75;
  clear: both;
}

/* ===== FOUL GRID (règles) ===== */
.foul-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: rgba(255,255,255,.05);
  margin: 2.5rem 0;
}

.foul-item {
  background: var(--dark);
  padding: 1.3rem 1.6rem;
}

.foul-name {
  font-family: var(--font-display);
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: .4rem;
  letter-spacing: .05em;
}

.foul-desc {
  font-size: .9rem;
  color: rgba(245,240,232,.6);
  line-height: 1.65;
}

/* ===== SPORT CARDS (comparatif) ===== */
.sport-card {
  background: var(--dark);
  border: 1px solid rgba(255,255,255,.07);
  padding: 2rem 2.5rem;
  margin-bottom: 2px;
  transition: border-color .2s;
}

.sport-card:hover { border-color: rgba(192,57,43,.25); }

.sport-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  gap: 1rem;
}

.sport-name {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--white);
}

.sport-tags { display: flex; gap: .5rem; flex-wrap: wrap; }

.sport-tag {
  font-family: var(--font-display);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .25rem .65rem;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(245,240,232,.45);
}

.sport-tag.red {
  border-color: rgba(192,57,43,.4);
  color: var(--red);
}

.sport-desc {
  font-size: .95rem;
  color: rgba(245,240,232,.65);
  line-height: 1.8;
  margin-bottom: 1rem;
}

.sport-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: rgba(255,255,255,.05);
  margin-top: 1rem;
}

.sport-cell { background: var(--black); padding: 1.1rem 1.4rem; }

.sport-cell-label {
  font-family: var(--font-display);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(245,240,232,.3);
  margin-bottom: .3rem;
}

.sport-cell-val {
  font-size: .9rem;
  color: rgba(245,240,232,.7);
  line-height: 1.5;
}

/* ===== EXERCISE CARDS (maison) ===== */
.exercise {
  background: var(--dark);
  border: 1px solid rgba(255,255,255,.07);
  padding: 1.8rem 2rem;
  margin-bottom: 2px;
}

.exercise-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .8rem;
  flex-wrap: wrap;
}

.exercise-name {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--white);
  letter-spacing: .04em;
}

.exercise-badges { display: flex; gap: .4rem; flex-wrap: wrap; }

.exercise-badge {
  font-family: var(--font-display);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .22rem .55rem;
  background: rgba(192,57,43,.12);
  border: 1px solid rgba(192,57,43,.25);
  color: var(--red);
}

.exercise-desc {
  font-size: .95rem;
  color: rgba(245,240,232,.68);
  line-height: 1.8;
  margin-bottom: .8rem;
}

.exercise-sets {
  font-family: var(--font-display);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(245,240,232,.35);
}

/* ===== PROGRAM WEEK ===== */
.program-week {
  background: var(--dark2);
  border: 1px solid rgba(255,255,255,.06);
  margin-bottom: 2px;
}

.program-week-header {
  padding: 1.2rem 1.8rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
}

.program-day {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--white);
  min-width: 90px;
}

.program-focus {
  font-family: var(--font-display);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--red);
}

.program-exercises {
  padding: .9rem 1.8rem;
  font-size: .9rem;
  color: rgba(245,240,232,.55);
  line-height: 1.7;
}

/* ===== ACCESS GRID (pages locales) ===== */
.access-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.07);
  margin: 2.5rem 0;
}

.access-cell { background: var(--dark); padding: 1.6rem 2rem; }

.access-cell-label {
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: .5rem;
}

.access-cell-val {
  font-size: .95rem;
  color: rgba(245,240,232,.8);
  line-height: 1.7;
}

/* ===== NEARBY GRID ===== */
.nearby-section {
  background: var(--dark);
  padding: 2.5rem 3rem;
  margin: 3rem -3rem;
}

.nearby-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 2px;
  background: rgba(255,255,255,.05);
  margin-top: 1.5rem;
}

.nearby-item { background: var(--black); padding: 1.1rem 1.4rem; }

.nearby-name {
  font-family: var(--font-display);
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: .3rem;
}

.nearby-dist {
  font-size: .82rem;
  color: var(--red);
  font-family: var(--font-display);
  font-weight: 700;
}

/* ===== FEATURE GRID (sport de force) ===== */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 2px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.07);
  margin: 2.5rem 0;
}

.feature-cell { background: var(--dark); padding: 2rem 1.8rem; }
.feature-icon { font-size: 1.8rem; margin-bottom: .75rem; }

.feature-title {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 900;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: .5rem;
}

.feature-desc {
  font-size: .9rem;
  color: rgba(245,240,232,.55);
  line-height: 1.75;
}

/* ===== STAT BAND ===== */
.stat-band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: rgba(192,57,43,.2);
  border: 1px solid rgba(192,57,43,.25);
  margin: 2.5rem 0;
}

.stat-band-item {
  background: rgba(10,5,5,.92);
  padding: 2rem 1.5rem;
  text-align: center;
}

.stat-band-num {
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 900;
  color: var(--white);
  line-height: 1;
}

.stat-band-num span { color: var(--red); }

.stat-band-label {
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(245,240,232,.4);
  margin-top: .5rem;
}

/* ===== HERO STATS ROW (local pages) ===== */
.hero-stats-row {
  display: flex;
  gap: 3rem;
  margin-top: 2.5rem;
  flex-wrap: wrap;
}

.hero-stat-num {
  font-family: var(--font-display);
  font-size: 2.8rem;
  font-weight: 900;
  color: var(--white);
  line-height: 1;
}

.hero-stat-num span { color: var(--red); }

.hero-stat-label {
  font-family: var(--font-display);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(245,240,232,.38);
  margin-top: .3rem;
}

/* ===== ARTICLE PHOTO ===== */
.article-photo {
  max-width: 960px;
  margin: 0 auto 0;
  padding: 0;
}

.article-photo img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

.article-photo-caption {
  font-family: var(--font-display);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(245,240,232,.28);
  margin-top: .5rem;
  text-align: right;
}

/* ═══════════════════════════════════════════
   DYNAMIC SECTION BACKGROUNDS — utility classes
   Apply to any section/div wrapper.
═══════════════════════════════════════════ */
.sec.bg-red-glow, .sec.bg-red-walls, .sec.bg-cinema,
.sec.bg-inferno, .sec.bg-danger-x, .sec.bg-motion,
.sec.bg-horizon { position: relative; overflow: hidden; }

.sec.bg-red-glow {
  background:
    radial-gradient(ellipse 85% 55% at 50% -10%, rgba(192,57,43,.2) 0%, transparent 65%),
    radial-gradient(ellipse 30% 25% at 5% 100%, rgba(192,57,43,.06) 0%, transparent 55%),
    var(--black);
}
.sec.bg-red-walls {
  background:
    repeating-linear-gradient(rgba(192,57,43,.025) 1px, transparent 1px 50px),
    repeating-linear-gradient(90deg, rgba(192,57,43,.025) 1px, transparent 1px 50px),
    radial-gradient(ellipse 45% 80% at -8% 50%, rgba(192,57,43,.12) 0%, transparent 60%),
    radial-gradient(ellipse 45% 80% at 108% 50%, rgba(192,57,43,.12) 0%, transparent 60%),
    #0d0508;
}
.sec.bg-cinema {
  background:
    repeating-linear-gradient(-55deg, transparent 0, transparent 44px, rgba(255,255,255,.007) 44px, rgba(255,255,255,.007) 45px),
    radial-gradient(ellipse 75% 55% at 50% 0%, rgba(192,57,43,.22) 0%, transparent 65%),
    radial-gradient(ellipse 35% 25% at 3% 95%, rgba(192,57,43,.07) 0%, transparent 55%),
    #050304;
}
.sec.bg-inferno {
  background:
    repeating-linear-gradient(90deg, transparent 0, transparent 58px, rgba(255,80,0,.015) 58px, rgba(255,80,0,.015) 60px),
    radial-gradient(ellipse 55% 45% at 10% 110%, rgba(200,50,0,.18) 0%, transparent 55%),
    radial-gradient(ellipse 55% 45% at 90% 110%, rgba(200,50,0,.18) 0%, transparent 55%),
    radial-gradient(ellipse 140% 70% at 50% 140%, rgba(255,100,0,.4) 0%, rgba(200,30,0,.25) 22%, rgba(80,0,0,.15) 48%, transparent 68%),
    #020000;
}
.sec.bg-danger-x {
  background:
    radial-gradient(ellipse 110% 110% at 50% 50%, transparent 28%, rgba(100,0,0,.38) 100%),
    radial-gradient(ellipse 70% 40% at 50% 130%, rgba(150,0,0,.28) 0%, transparent 58%),
    repeating-linear-gradient(-45deg, transparent 0, transparent 60px, rgba(192,57,43,.05) 60px, rgba(192,57,43,.05) 62px),
    repeating-linear-gradient(45deg, transparent 0, transparent 60px, rgba(192,57,43,.05) 60px, rgba(192,57,43,.05) 62px),
    #040203;
}
.sec.bg-motion {
  background:
    repeating-linear-gradient(135deg, transparent 0, transparent 50px, rgba(255,255,255,.008) 50px, rgba(255,255,255,.008) 51px),
    linear-gradient(135deg, rgba(192,57,43,.07) 0%, transparent 45%, rgba(180,120,0,.05) 70%, transparent 100%),
    radial-gradient(ellipse 90% 55% at -15% 100%, rgba(192,57,43,.18) 0%, transparent 58%),
    radial-gradient(ellipse 90% 55% at 115% 0%, rgba(150,100,30,.12) 0%, transparent 58%),
    #050407;
}
.sec.bg-horizon {
  background:
    repeating-linear-gradient(0deg, transparent 0, transparent 22px, rgba(255,160,0,.01) 22px, rgba(255,160,0,.01) 23px),
    radial-gradient(ellipse 50% 35% at 8% 100%, rgba(192,57,43,.09) 0%, transparent 55%),
    radial-gradient(ellipse 50% 35% at 92% 100%, rgba(192,57,43,.09) 0%, transparent 55%),
    radial-gradient(ellipse 110% 55% at 50% 125%, rgba(212,160,23,.22) 0%, rgba(180,80,0,.13) 35%, transparent 60%),
    linear-gradient(180deg, #050305 0%, #0a0806 100%);
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
  .article-body, .page-body { padding: 3rem 1.5rem; }
  .article-hero, .local-hero { padding: 6rem 1.5rem 3rem; }
  .foul-grid, .sport-grid, .access-grid { grid-template-columns: 1fr; }
  .stat-band { grid-template-columns: repeat(2, 1fr); }
  .cta-block { flex-direction: column; align-items: flex-start; }
  .nearby-section { margin: 3rem -1.5rem; padding: 2rem 1.5rem; }
  .timeline-item { flex-direction: column; gap: .75rem; }
}
