/*
Theme Name: Festival des Hospitaliers
Theme URI: https://festival-des-hospitaliers.com
Author: Atelier Horizon
Description: Thème officiel du Festival des Hospitaliers — Trail Aveyron 2026.
Version: 2.0
License: GNU General Public License v2 or later
Text Domain: festival-hospitaliers
*/

:root {
  --font-display: 'Bebas Neue', Impact, sans-serif;
  --font-body: 'Inter', Arial, sans-serif;
  --black: #0a0a0a;
  --white: #f2f2f0;
  --accent: #c8a84b;
  --accent2: #d4572a;
  --muted: rgba(242,242,240,0.55);
  --border: rgba(242,242,240,0.12);
  --space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;
  --space-16:4rem;--space-20:5rem;
  --radius-sm:.25rem;--radius-md:.5rem;--radius-full:999px;
  --transition:200ms cubic-bezier(0.16,1,0.3,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body);background:var(--black);color:var(--white);line-height:1.6;min-height:100vh;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
button{font:inherit;border:none;cursor:pointer;background:none;}
img{display:block;max-width:100%;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");opacity:.035;pointer-events:none;z-index:1000;}

/* NAVBAR */
.fdh-navbar{position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:1px solid var(--border);background:rgba(10,10,10,0.82);backdrop-filter:blur(18px);}
.fdh-navbar-inner{width:min(1200px,calc(100% - 2rem));margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px;gap:var(--space-6);}
.fdh-logo{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.05em;color:var(--white);white-space:nowrap;flex-shrink:0;}
.fdh-logo span{color:var(--accent);}
.fdh-nav-links{display:flex;align-items:center;list-style:none;gap:0;}
.fdh-nav-links a{display:block;padding:var(--space-2) var(--space-4);font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color var(--transition);}
.fdh-nav-links a:hover,.fdh-nav-links a.current{color:var(--white);}
.fdh-nav-links a.current{border-bottom:2px solid var(--accent);}
.fdh-burger{display:none;flex-direction:column;gap:5px;padding:var(--space-2);color:var(--white);}
.fdh-burger span{display:block;width:24px;height:2px;background:currentColor;border-radius:2px;transition:transform var(--transition),opacity var(--transition);}
.fdh-mobile-menu{display:none;position:fixed;inset:64px 0 0;z-index:99;background:rgba(10,10,10,0.97);backdrop-filter:blur(20px);flex-direction:column;padding:var(--space-8) var(--space-6);gap:var(--space-4);}
.fdh-mobile-menu.open{display:flex;}
.fdh-mobile-menu a{font-size:1.6rem;font-family:var(--font-display);letter-spacing:.06em;color:var(--white);border-bottom:1px solid var(--border);padding-bottom:var(--space-4);transition:color var(--transition);}
.fdh-mobile-menu a:hover{color:var(--accent);}

/* HERO */
.fdh-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:80px var(--space-6) var(--space-10);}
.fdh-hero-bg{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,10,10,0.55) 0%,rgba(10,10,10,0.18) 40%,rgba(10,10,10,0.72) 100%),url('THEME_URI/assets/affiche-hero.jpg') center/cover no-repeat;z-index:0;}
.fdh-hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);}
.fdh-edition{font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(200,168,75,0.4);padding:.3rem 1rem;border-radius:var(--radius-full);}
.fdh-title{font-family:var(--font-display);font-size:clamp(4.5rem,14vw,13rem);line-height:.88;letter-spacing:-.01em;text-transform:uppercase;color:var(--white);text-shadow:0 2px 40px rgba(0,0,0,0.6);}
.fdh-title em{display:block;font-style:normal;color:var(--accent);}
.fdh-dates{font-family:var(--font-display);font-size:clamp(1.6rem,4vw,3.5rem);letter-spacing:.12em;color:var(--white);opacity:.92;}
.fdh-dates span{color:var(--accent2);}
.fdh-subtitle{font-size:.92rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:var(--space-2);}

/* PAGE INTÉRIEURE */
.fdh-page-wrap{padding-top:64px;min-height:100vh;}
.fdh-page-hero{position:relative;height:320px;display:flex;align-items:flex-end;overflow:hidden;}
.fdh-page-hero-bg{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,10,10,0.25),rgba(10,10,10,0.80)),url('THEME_URI/assets/affiche-bandeau.jpg') top center/cover no-repeat;z-index:0;}
.fdh-page-hero-content{position:relative;z-index:1;width:min(1100px,calc(100% - 2rem));margin:0 auto;padding-bottom:var(--space-10);}
.fdh-page-tag{font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-3);}
.fdh-page-title{font-family:var(--font-display);font-size:clamp(3rem,7vw,6rem);line-height:.9;text-transform:uppercase;color:var(--white);}
.fdh-page-body{width:min(1100px,calc(100% - 2rem));margin:0 auto;padding:clamp(var(--space-10),6vw,var(--space-16)) 0;}
.fdh-divider{width:100%;height:1px;background:var(--border);margin-bottom:var(--space-8);}

/* COURSES GRID */
.fdh-courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-8);}
.fdh-course-card{background:rgba(242,242,240,0.04);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-8) var(--space-6);min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-3);}
.fdh-course-label{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);opacity:.7;}
.fdh-course-name{font-family:var(--font-display);font-size:1.6rem;letter-spacing:.04em;color:var(--white);opacity:.4;}
.fdh-empty-block{background:rgba(242,242,240,0.03);border:1px dashed rgba(242,242,240,0.12);border-radius:var(--radius-md);min-height:320px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.85rem;letter-spacing:.06em;}

/* FOOTER */
.fdh-footer{border-top:1px solid var(--border);padding:var(--space-10) var(--space-6);text-align:center;color:var(--muted);font-size:.78rem;letter-spacing:.06em;}
.fdh-footer strong{color:var(--accent);}

@media(max-width:820px){
  .fdh-nav-links{display:none;}
  .fdh-burger{display:flex;}
  .fdh-courses-grid{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .fdh-title{font-size:clamp(3.8rem,18vw,6rem);}
}

/* ══════════════════════════════
   PAGES COURSES DÉTAILLÉES
══════════════════════════════ */

/* Hero tall */
.fdh-page-hero--tall { height: 480px; }
.fdh-page-hero--tall .fdh-page-hero-content { padding-bottom: 2.5rem; }

/* Stats hero */
.fdh-hero-stats {
  display: flex; align-items: center; gap: 0;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  background: rgba(10,10,10,0.55);
  border: 1px solid rgba(242,242,240,0.15);
  border-radius: 0.75rem;
  overflow: hidden;
  backdrop-filter: blur(10px);
}
.fdh-stat {
  display: flex; flex-direction: column; align-items: center;
  padding: 1rem 1.5rem;
  gap: 0.25rem;
}
.fdh-stat-val {
  font-family: var(--font-display);
  font-size: 2rem; line-height: 1;
  color: var(--accent);
}
.fdh-stat-label {
  font-size: 0.65rem; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--muted);
}
.fdh-stat-sep { width: 1px; height: 48px; background: rgba(242,242,240,0.12); }

/* Grille contenu principal + sidebar */
.fdh-content-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 3rem;
  align-items: start;
}
.fdh-content-main { display: flex; flex-direction: column; gap: 2.5rem; }

/* Blocs article */
.fdh-article-block { display: flex; flex-direction: column; gap: 1rem; }
.fdh-article-title {
  font-family: var(--font-display);
  font-size: 2rem; text-transform: uppercase; line-height: 1;
  color: var(--white);
  border-left: 3px solid var(--accent);
  padding-left: 0.75rem;
}
.fdh-article-block p {
  color: rgba(242,242,240,0.8);
  line-height: 1.75; max-width: 70ch;
}

/* Waypoints */
.fdh-waypoints { display: flex; flex-direction: column; gap: 0; }
.fdh-waypoint {
  display: flex; align-items: center; gap: 1.25rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(242,242,240,0.08);
  position: relative;
}
.fdh-waypoint::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--border); border: 2px solid var(--muted);
  flex-shrink: 0;
}
.fdh-waypoint--finish::before { background: var(--accent); border-color: var(--accent); }
.fdh-wp-km {
  font-family: var(--font-display); font-size: 1rem;
  color: var(--accent); min-width: 70px;
}
.fdh-wp-name { color: var(--white); font-size: 0.88rem; }

/* Sidebar */
.fdh-info-card {
  background: rgba(242,242,240,0.04);
  border: 1px solid rgba(242,242,240,0.12);
  border-radius: 0.75rem;
  padding: 1.5rem;
}
.fdh-info-card-title {
  font-family: var(--font-display); font-size: 1.2rem;
  text-transform: uppercase; color: var(--white);
  margin-bottom: 1rem; letter-spacing: 0.05em;
}
.fdh-info-list { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.fdh-info-list li {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.5rem 0; border-bottom: 1px solid rgba(242,242,240,0.07);
  font-size: 0.82rem;
}
.fdh-info-list li span { color: var(--muted); }
.fdh-info-list li strong { color: var(--white); }
.fdh-inscrip-btn {
  display: block; width: 100%; text-align: center;
  margin-top: 1.25rem;
  padding: 0.85rem;
  background: var(--accent); color: var(--black);
  border-radius: 999px;
  font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  transition: background 200ms;
}
.fdh-inscrip-btn:hover { background: #debb60; }

.fdh-other-races { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
.fdh-other-races a {
  display: block; padding: 0.5rem 0;
  border-bottom: 1px solid rgba(242,242,240,0.07);
  color: var(--muted); font-size: 0.82rem;
  transition: color 180ms;
}
.fdh-other-races a:hover { color: var(--accent); }

/* Kids cards */
.fdh-kids-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.fdh-kids-card {
  background: rgba(242,242,240,0.04);
  border: 1px solid rgba(242,242,240,0.12);
  border-radius: 0.5rem;
  padding: 1.25rem 1rem;
  display: flex; flex-direction: column; gap: 0.5rem;
}
.fdh-kids-age { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); }
.fdh-kids-dist { font-family: var(--font-display); font-size: 2rem; color: var(--white); line-height: 1; }
.fdh-kids-card p { font-size: 0.8rem; color: var(--muted); }

@media(max-width:900px) {
  .fdh-content-grid { grid-template-columns: 1fr; }
  .fdh-content-side { order: -1; }
  .fdh-hero-stats { justify-content: center; }
  .fdh-kids-grid { grid-template-columns: 1fr; }
}
@media(max-width:600px) {
  .fdh-stat-sep { display: none; }
  .fdh-stat { padding: 0.75rem 1rem; }
}

/* ══════════════════════════════
   PAGE RÈGLEMENT
══════════════════════════════ */
.fdh-regl-pdf-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  background: rgba(200,168,75,0.1);
  border: 1px solid rgba(200,168,75,0.3);
  border-radius: 0.75rem;
  padding: 1.25rem 1.75rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}
.fdh-regl-pdf-text { display: flex; flex-direction: column; gap: 0.25rem; }
.fdh-regl-pdf-text strong { color: var(--white); font-size: 0.95rem; }
.fdh-regl-pdf-text span { color: var(--muted); font-size: 0.8rem; }
.fdh-regl-pdf-btn {
  padding: 0.75rem 1.5rem;
  background: var(--accent); color: var(--black);
  border-radius: 999px;
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  white-space: nowrap;
  transition: background 200ms;
}
.fdh-regl-pdf-btn:hover { background: #debb60; }

.fdh-regl-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 3rem;
  margin-bottom: 3rem;
}
.fdh-regl-section { display: flex; flex-direction: column; gap: 0.75rem; }
.fdh-regl-title {
  font-family: var(--font-display);
  font-size: 1.3rem; text-transform: uppercase; line-height: 1;
  color: var(--accent);
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(242,242,240,0.1);
}
.fdh-regl-section p { color: rgba(242,242,240,0.75); font-size: 0.85rem; line-height: 1.75; }
.fdh-regl-list {
  list-style: none; display: flex; flex-direction: column; gap: 0.4rem;
}
.fdh-regl-list li {
  color: rgba(242,242,240,0.75); font-size: 0.83rem; line-height: 1.6;
  padding-left: 1rem; position: relative;
}
.fdh-regl-list li::before { content: '→'; position: absolute; left: 0; color: var(--accent); }
.fdh-regl-cta {
  text-align: center; padding: 2.5rem;
  border-top: 1px solid rgba(242,242,240,0.1);
  display: flex; flex-direction: column; align-items: center; gap: 1.25rem;
}
.fdh-regl-cta p { color: var(--muted); font-size: 0.9rem; }

@media(max-width:768px){
  .fdh-regl-grid { grid-template-columns: 1fr; }
  .fdh-regl-pdf-banner { flex-direction: column; align-items: flex-start; }
}

/* ══════════════════════════════
   PAGE CONTACT
══════════════════════════════ */
.fdh-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 3rem;
  align-items: start;
}
.fdh-contact-infos { display: flex; flex-direction: column; gap: 1rem; }

.fdh-contact-card {
  display: flex; align-items: flex-start; gap: 1.25rem;
  background: rgba(242,242,240,0.04);
  border: 1px solid rgba(242,242,240,0.1);
  border-radius: 0.75rem;
  padding: 1.25rem 1.5rem;
  transition: border-color 200ms;
}
.fdh-contact-card:hover { border-color: rgba(200,168,75,0.35); }

.fdh-contact-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(200,168,75,0.1);
  border-radius: 0.5rem;
  color: var(--accent);
}
.fdh-contact-info { display: flex; flex-direction: column; gap: 0.3rem; }
.fdh-contact-label {
  font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--muted);
}
.fdh-contact-info strong { color: var(--white); font-size: 0.88rem; line-height: 1.5; }
.fdh-contact-info a { color: var(--white); transition: color 180ms; }
.fdh-contact-info a:hover { color: var(--accent); }

.fdh-contact-map {
  height: 460px;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid rgba(242,242,240,0.1);
}
.fdh-contact-map iframe { display: block; }

@media(max-width:900px){
  .fdh-contact-grid { grid-template-columns: 1fr; }
  .fdh-contact-map { height: 300px; }
}

/* ══════════════════════════════
   FOOTER ENRICHI
══════════════════════════════ */
.fdh-footer { border-top: 1px solid var(--border); padding: var(--space-10) var(--space-6); }
.fdh-footer-inner {
  width: min(1100px, calc(100% - 2rem)); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 2fr; gap: 2rem 4rem;
  align-items: start;
}
.fdh-footer-brand { display: flex; flex-direction: column; gap: 0.5rem; }
.fdh-footer-logo {
  font-family: var(--font-display); font-size: 1.5rem; letter-spacing: .06em;
  color: var(--white);
}
.fdh-footer-logo span { color: var(--accent); }
.fdh-footer-brand p { font-size: 0.75rem; color: var(--muted); letter-spacing: .05em; }
.fdh-footer-infos { display: flex; flex-direction: column; gap: 0.65rem; }
.fdh-footer-info-item {
  display: flex; align-items: center; gap: 0.65rem;
  font-size: 0.8rem; color: rgba(242,242,240,0.6);
}
.fdh-footer-info-item svg { color: var(--accent); flex-shrink: 0; }
.fdh-footer-info-item a { color: rgba(242,242,240,0.6); transition: color 180ms; }
.fdh-footer-info-item a:hover { color: var(--accent); }
.fdh-footer-copy {
  grid-column: 1 / -1;
  border-top: 1px solid var(--border);
  padding-top: 1.25rem;
  font-size: 0.72rem; color: var(--muted); letter-spacing: .06em; text-align: center;
}
.fdh-footer-copy strong { color: var(--accent); }
@media(max-width:700px){
  .fdh-footer-inner { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ══════════════════════════════
   PAGE RÉSEAUX SOCIAUX
══════════════════════════════ */
.fdh-social-follow-bar {
  display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap;
  margin-bottom: 3rem;
}
.fdh-social-follow-btn {
  display: flex; align-items: center; gap: 0.65rem;
  padding: 0.8rem 1.75rem;
  border-radius: 999px;
  font-size: 0.82rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  transition: opacity 200ms;
}
.fdh-social-follow-btn:hover { opacity: 0.85; }
.fdh-social-follow-btn--insta {
  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  color: #fff;
}
.fdh-social-follow-btn--fb { background: #1877f2; color: #fff; }

.fdh-social-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
.fdh-social-block {
  background: rgba(242,242,240,0.03);
  border: 1px solid rgba(242,242,240,0.1);
  border-radius: 0.75rem;
  overflow: hidden;
}
.fdh-social-block-header {
  display: flex; align-items: center; gap: 1rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid rgba(242,242,240,0.08);
}
.fdh-social-block-icon {
  width: 40px; height: 40px; border-radius: 0.5rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.fdh-social-block-icon--insta {
  background: linear-gradient(135deg, #f09433, #dc2743, #bc1888);
  color: #fff;
}
.fdh-social-block-icon--fb { background: #1877f2; color: #fff; }
.fdh-social-block-name { font-size: 0.88rem; font-weight: 700; color: var(--white); }
.fdh-social-block-handle { font-size: 0.75rem; color: var(--muted); margin-top: 0.1rem; }
.fdh-social-block-link {
  margin-left: auto; font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--accent); white-space: nowrap;
  transition: opacity 180ms;
}
.fdh-social-block-link:hover { opacity: 0.7; }
.fdh-social-embed { padding: 1rem; min-height: 400px; }
.fdh-social-fallback { display: none; text-align: center; padding: 2rem; color: var(--muted); font-size: 0.85rem; }

@media(max-width:800px){
  .fdh-social-grid { grid-template-columns: 1fr; }
}
/* ══════════════════════════════
   PAGE RÉSEAUX SOCIAUX
══════════════════════════════ */
.fdh-social-intro {
  text-align: center; color: var(--muted);
  font-size: 0.95rem; line-height: 1.75;
  max-width: 55ch; margin: 0 auto 3rem;
}
.fdh-social-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  max-width: 860px;
  margin: 0 auto;
}
.fdh-social-card {
  position: relative; display: block;
  border-radius: 1rem; overflow: hidden;
  border: 1px solid rgba(242,242,240,0.1);
  transition: transform 240ms cubic-bezier(.16,1,.3,1), border-color 240ms;
  text-decoration: none;
}
.fdh-social-card:hover { transform: translateY(-4px); border-color: rgba(242,242,240,0.25); }
.fdh-social-card-bg {
  position: absolute; inset: 0; opacity: 0.07;
  transition: opacity 240ms;
}
.fdh-social-card:hover .fdh-social-card-bg { opacity: 0.14; }
.fdh-social-card--insta .fdh-social-card-bg {
  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}
.fdh-social-card--fb .fdh-social-card-bg { background: #1877f2; }
.fdh-social-card-content {
  position: relative;
  display: flex; align-items: center; gap: 1.5rem;
  padding: 2rem 1.75rem;
}
.fdh-social-card-icon { flex-shrink: 0; }
.fdh-social-card--insta .fdh-social-card-icon { color: #e1306c; }
.fdh-social-card--fb .fdh-social-card-icon { color: #1877f2; }
.fdh-social-card-info { flex: 1; display: flex; flex-direction: column; gap: 0.3rem; }
.fdh-social-card-network {
  font-family: var(--font-display);
  font-size: 1.4rem; text-transform: uppercase; letter-spacing: .05em;
  color: var(--white); line-height: 1;
}
.fdh-social-card-handle { font-size: 0.78rem; color: var(--muted); letter-spacing: .04em; }
.fdh-social-card-desc { font-size: 0.82rem; color: rgba(242,242,240,0.55); margin-top: 0.5rem; line-height: 1.5; }
.fdh-social-card-arrow {
  font-size: 1.5rem; color: var(--accent);
  transition: transform 240ms cubic-bezier(.16,1,.3,1);
}
.fdh-social-card:hover .fdh-social-card-arrow { transform: translateX(5px); }

@media(max-width:640px){
  .fdh-social-cards { grid-template-columns: 1fr; }
  .fdh-social-card-content { padding: 1.5rem; }
}

/* ══════════════════════════════
   NINJA FORMS — THÈME FDH
══════════════════════════════ */

/* Conteneur global */
.nf-form-cont,
.nf-form-wrap {
  font-family: var(--font-body) !important;
  color: var(--white) !important;
}

/* Labels */
.nf-form-cont .nf-field-label label,
.nf-form-cont .nf-label-span {
  color: rgba(242,242,240,0.75) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin-bottom: 0.5rem !important;
  display: block !important;
}

/* Champs texte, email, tel, number, url */
.nf-form-cont input[type="text"],
.nf-form-cont input[type="email"],
.nf-form-cont input[type="tel"],
.nf-form-cont input[type="number"],
.nf-form-cont input[type="url"],
.nf-form-cont input[type="date"],
.nf-form-cont input[type="password"],
.nf-form-cont textarea,
.nf-form-cont select {
  background: rgba(242,242,240,0.05) !important;
  border: 1px solid rgba(242,242,240,0.15) !important;
  border-radius: 0.5rem !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  padding: 0.75rem 1rem !important;
  width: 100% !important;
  transition: border-color 200ms, background 200ms !important;
  outline: none !important;
  -webkit-appearance: none !important;
}

/* Focus */
.nf-form-cont input:focus,
.nf-form-cont textarea:focus,
.nf-form-cont select:focus {
  border-color: var(--accent) !important;
  background: rgba(242,242,240,0.08) !important;
  box-shadow: 0 0 0 3px rgba(200,168,75,0.12) !important;
}

/* Placeholder */
.nf-form-cont input::placeholder,
.nf-form-cont textarea::placeholder {
  color: rgba(242,242,240,0.3) !important;
}

/* Textarea */
.nf-form-cont textarea {
  min-height: 130px !important;
  resize: vertical !important;
  line-height: 1.6 !important;
}

/* Select — flèche personnalisée */
.nf-form-cont select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23c8a84b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  padding-right: 2.5rem !important;
  cursor: pointer !important;
}
.nf-form-cont select option {
  background: #1a1a18 !important;
  color: var(--white) !important;
}

/* Checkbox & Radio */
.nf-form-cont input[type="checkbox"],
.nf-form-cont input[type="radio"] {
  width: 18px !important; height: 18px !important;
  accent-color: var(--accent) !important;
  cursor: pointer !important;
}
.nf-form-cont .nf-field-element label {
  color: rgba(242,242,240,0.75) !important;
  font-size: 0.85rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Bouton de soumission */
.nf-form-cont input[type="button"],
.nf-form-cont input[type="submit"],
.nf-form-cont button[type="submit"],
.nf-form-cont .nf-field-element input.ninja-forms-field {
  background: var(--accent) !important;
  color: var(--black) !important;
  border: none !important;
  border-radius: 999px !important;
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  padding: 0.9rem 2.5rem !important;
  cursor: pointer !important;
  transition: background 200ms !important;
  width: auto !important;
}
.nf-form-cont input[type="submit"]:hover,
.nf-form-cont button[type="submit"]:hover {
  background: #debb60 !important;
}

/* Messages d'erreur */
.nf-form-cont .nf-error .ninja-forms-field {
  border-color: #e05252 !important;
  background: rgba(224,82,82,0.06) !important;
}
.nf-form-cont .nf-error-msg,
.nf-form-cont .nf-field-description {
  font-size: 0.75rem !important;
  margin-top: 0.35rem !important;
}
.nf-form-cont .nf-error-msg { color: #e05252 !important; }
.nf-form-cont .nf-field-description { color: var(--muted) !important; }

/* Message de succès */
.nf-response-msg {
  background: rgba(200,168,75,0.1) !important;
  border: 1px solid rgba(200,168,75,0.3) !important;
  border-radius: 0.6rem !important;
  color: var(--accent) !important;
  padding: 1rem 1.25rem !important;
  font-size: 0.88rem !important;
  margin-top: 1rem !important;
}

/* Espacement entre champs */
.nf-form-cont .nf-field-container {
  margin-bottom: 1.25rem !important;
}

/* Layout multi-colonnes Ninja Forms */
.nf-form-cont .three-col .nf-field-container,
.nf-form-cont .two-col-bylabel .nf-field-container {
  padding: 0 0.5rem !important;
}

/* ══════════════════════════════
   PAGES INSCRIPTION
══════════════════════════════ */
.fdh-inscrip-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
}
.fdh-inscrip-form-wrap {
  background: rgba(242,242,240,0.03);
  border: 1px solid rgba(242,242,240,0.1);
  border-radius: 0.75rem;
  padding: 2rem 2.5rem;
}
.fdh-inscrip-form-header { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(242,242,240,0.08); }
.fdh-inscrip-form-title {
  font-family: var(--font-display);
  font-size: 1.4rem; text-transform: uppercase;
  color: var(--white); margin-bottom: 0.5rem;
}
.fdh-inscrip-form-note { font-size: 0.78rem; color: var(--muted); }
.fdh-inscrip-cta-wrap { margin-top: 1.5rem; }
.fdh-inscrip-cta-wrap .fdh-inscrip-btn { width: 100%; text-align: center; }

@media(max-width:900px){
  .fdh-inscrip-layout { grid-template-columns: 1fr; }
}

/* ══════════════════════════════
   FORCE DARK — override WordPress/Gutenberg defaults
══════════════════════════════ */
html, body,
.wp-site-blocks,
.entry-content,
.wp-block-post-content,
#page, #content, #primary, #main,
.site, .site-content,
div[class*="wp-container"] {
  background-color: var(--black) !important;
  color: var(--white) !important;
}

/* Supprimer les marges WordPress par défaut */
.wp-site-blocks > * { margin-block-start: 0 !important; }

/* Assurer que fdh-contact-card hérite bien */
.fdh-contact-card,
.fdh-contact-label,
.fdh-contact-info strong,
.fdh-contact-info a {
  color: inherit;
}
