/* ==========================================================================
   Tournoi de Béhourd — Le Prieuré de Champdieu
   Feuille de style — thème médiéval sombre
   ========================================================================== */

:root{
  --stone-950:#120f0b;
  --stone-900:#1b1712;
  --stone-800:#25201a;
  --stone-700:#342c22;
  --stone-600:#453a2c;

  --gold:#c9a227;
  --gold-light:#e8c766;
  --gold-dark:#8a6b16;

  --wine:#7a2020;
  --wine-light:#9c3030;
  --wine-dark:#4d1414;

  --parchment:#efe6cd;
  --parchment-dark:#ddd0a6;

  --text:#f3ead8;
  --text-muted:#c9bd9f;
  --text-on-parchment:#2c2416;

  --radius:6px;
  --shadow-lg:0 20px 50px rgba(0,0,0,.45);
  --shadow-sm:0 6px 16px rgba(0,0,0,.3);

  --font-display:'Cinzel', serif;
  --font-hero:'Cinzel Decorative', var(--font-display);
  --font-menu:'Marcellus', var(--font-display);
  --font-body:'Spectral', Georgia, serif;

  --container-width:1180px;
}

/* ----- Reset ----- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--stone-950);
  color:var(--text);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;line-height:1.2;font-weight:700;}
p{margin:0 0 1em;}
svg{width:1.4em;height:1.4em;flex-shrink:0;}
button{font-family:inherit;cursor:pointer;}
em{color:var(--gold-light);font-style:normal;font-size:.75em;}

.container{
  width:100%;
  max-width:var(--container-width);
  margin:0 auto;
  padding:0 24px;
}
.container-narrow{max-width:800px;}

/* stone texture used behind dark sections */
.texture-stone{
  background-image:
    radial-gradient(ellipse at 20% 20%, rgba(255,255,255,.03), transparent 60%),
    radial-gradient(ellipse at 80% 60%, rgba(255,255,255,.025), transparent 55%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.015) 0 2px, transparent 2px 6px);
}

/* ----- Buttons ----- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:.7em 1.6em;
  border-radius:var(--radius);
  font-family:var(--font-display);
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:700;
  border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.btn-primary{
  background:linear-gradient(180deg, var(--wine-light), var(--wine));
  color:var(--text);
  border-color:var(--gold-dark);
  box-shadow:var(--shadow-sm);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.btn-outline{
  background:transparent;
  color:var(--gold-light);
  border-color:var(--gold);
}
.btn-outline:hover{background:rgba(201,162,39,.12);transform:translateY(-2px);}
.btn-lg{padding:.9em 2em;font-size:.9rem;}

/* ----- Top announcement bar ----- */
.topbar{
  background:var(--stone-950);
  color:var(--parchment-dark);
  text-align:center;
  font-size:.8rem;
  letter-spacing:.03em;
  padding:.5em 1em;
  border-bottom:1px solid var(--stone-700);
}
.topbar a{color:var(--gold-light);text-decoration:underline;text-underline-offset:3px;}
.topbar-sep{margin:0 .6em;opacity:.5;}

/* ----- Header ----- */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(18,15,11,.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--stone-700);
}
.header-inner{
  display:flex;
  align-items:center;
  gap:24px;
  padding:14px 24px;
}
.logo{display:flex;align-items:center;gap:12px;color:var(--gold-light);}
.logo-icon{width:34px;height:34px;color:var(--gold);}
.logo-text{font-family:var(--font-menu);font-weight:400;letter-spacing:.02em;line-height:1.2;font-size:1.15rem;}
.logo-text small{display:block;font-family:var(--font-body);font-weight:400;letter-spacing:0;color:var(--text-muted);font-size:.7rem;}

.main-nav{
  display:flex;
  gap:26px;
  margin-left:auto;
  font-family:var(--font-menu);
  font-weight:400;
  font-size:.95rem;
  letter-spacing:.02em;
  text-transform:none;
}
.main-nav a{
  position:relative;
  padding:6px 0;
  color:var(--text-muted);
  transition:color .15s ease;
}
.main-nav a:hover{color:var(--gold-light);}
.main-nav a::after{
  content:'';
  position:absolute;
  left:0;right:0;bottom:0;
  height:2px;
  background:var(--gold);
  transform:scaleX(0);
  transition:transform .2s ease;
}
.main-nav a:hover::after{transform:scaleX(1);}

.nav-cta{margin-left:8px;}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:34px;height:34px;
  background:transparent;
  border:none;
  padding:0;
}
.nav-toggle span{
  display:block;width:100%;height:2px;
  background:var(--gold-light);
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ----- Hero ----- */
.hero{
  position:relative;
  overflow:hidden;
  padding:110px 0 90px;
  background:
    linear-gradient(180deg, rgba(18,15,11,.55) 0%, rgba(20,17,13,.8) 55%, var(--stone-950) 100%),
    url('../assets/hero/hero-behourd.webp') center 30% / cover no-repeat,
    radial-gradient(ellipse 900px 500px at 50% -10%, rgba(122,32,32,.35), transparent 60%),
    linear-gradient(180deg, var(--stone-950) 0%, var(--stone-900) 60%, var(--stone-950) 100%);
  text-align:center;
}
.hero-texture{
  position:absolute;inset:0;
  opacity:.5;
  background-image:
    repeating-linear-gradient(115deg, rgba(255,255,255,.025) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(25deg, rgba(0,0,0,.2) 0 2px, transparent 2px 7px);
  mix-blend-mode:overlay;
  pointer-events:none;
}
.hero-inner{position:relative;z-index:1;max-width:820px;}
.eyebrow{
  font-family:var(--font-display);
  color:var(--gold-light);
  letter-spacing:.15em;
  text-transform:uppercase;
  font-size:.8rem;
  margin-bottom:1.2em;
}
.hero-title{
  font-family:var(--font-hero);
  font-size:clamp(2.3rem, 5vw, 4rem);
  color:var(--text);
  text-shadow:0 4px 24px rgba(0,0,0,.6);
}
.hero-title span{color:var(--gold-light);}
.hero-subtitle{
  color:var(--text-muted);
  font-size:1.15rem;
  max-width:640px;
  margin:0 auto 2em;
}
.br-desktop{display:inline;}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:28px;
  margin-bottom:2.2em;
  font-family:var(--font-display);
  font-size:.85rem;
  letter-spacing:.03em;
  color:var(--parchment-dark);
}
.hero-meta-item{display:flex;align-items:center;gap:.5em;}
.hero-meta-item svg{color:var(--gold);}
.hero-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:3em;
}

.countdown{
  display:flex;
  justify-content:center;
  gap:14px;
}
.countdown-item{
  background:rgba(255,255,255,.04);
  border:1px solid var(--stone-600);
  border-radius:var(--radius);
  padding:12px 16px;
  min-width:74px;
}
.countdown-item span{
  display:block;
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:700;
  color:var(--gold-light);
}
.countdown-item small{
  display:block;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin-top:.2em;
}

.scroll-cue{
  position:absolute;
  bottom:24px;left:50%;
  transform:translateX(-50%);
  color:var(--gold);
  opacity:.7;
  animation:bob 2.2s ease-in-out infinite;
}
@keyframes bob{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,8px);}}

/* ----- Sections ----- */
.section{padding:96px 0;}
.section-alt{
  background:var(--stone-900);
  border-top:1px solid var(--stone-700);
  border-bottom:1px solid var(--stone-700);
}
.section-kicker{
  font-family:var(--font-display);
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  margin-bottom:.8em;
}
.section-title{font-size:clamp(1.8rem,3.4vw,2.6rem);}
.section-lead{
  color:var(--text-muted);
  max-width:720px;
  font-size:1.1rem;
  margin-bottom:2.4em;
}

/* ----- Événement (texte + photo) ----- */
.evenement-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:48px;
  align-items:center;
}
.evenement-text .section-lead{margin-bottom:0;}
.evenement-photo{
  margin:0;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--stone-700);
  box-shadow:var(--shadow-sm);
  background:var(--stone-900);
}
.evenement-photo img{
  width:100%;
  aspect-ratio:4/3.2;
  object-fit:cover;
  display:block;
}
.evenement-photo figcaption{
  padding:.6em .9em;
  font-size:.78rem;
  color:var(--text-muted);
}
.evenement-photo figcaption a{color:var(--gold-light);text-decoration:underline;text-underline-offset:2px;}
.evenement-photo.img-error{display:none;}

.full-span{grid-column:1 / -1;margin-top:16px;}

/* ----- Feature grid ----- */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:24px;
}
.feature-card{
  background:var(--stone-900);
  border:1px solid var(--stone-700);
  border-radius:var(--radius);
  padding:28px 24px;
  transition:transform .18s ease, border-color .18s ease;
}
.feature-card:hover{transform:translateY(-4px);border-color:var(--gold-dark);}
.feature-icon{
  width:52px;height:52px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:rgba(201,162,39,.1);
  color:var(--gold-light);
  margin-bottom:1em;
}
.feature-card h3{font-size:1.1rem;color:var(--parchment);}
.feature-card p{color:var(--text-muted);font-size:.98rem;margin:0;}

/* ----- Timeline / Programme ----- */
.timeline{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:40px;
}
.timeline-day-title{
  color:var(--gold-light);
  font-size:1.3rem;
  border-bottom:2px solid var(--stone-700);
  padding-bottom:.4em;
  margin-bottom:1em;
}
.timeline-list{position:relative;padding-left:26px;border-left:2px solid var(--stone-700);}
.timeline-list li{
  display:flex;
  gap:16px;
  position:relative;
  padding-bottom:1.6em;
}
.timeline-list li:last-child{padding-bottom:0;}
.timeline-list li::before{
  content:'';
  position:absolute;
  left:-32px;
  top:6px;
  width:11px;height:11px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px var(--stone-950);
}
.timeline-list .time{
  flex:0 0 auto;
  font-family:var(--font-display);
  color:var(--gold-light);
  font-size:.85rem;
  min-width:52px;
}
.timeline-list strong{color:var(--parchment);font-family:var(--font-display);font-size:1rem;font-weight:700;}
.timeline-list p{color:var(--text-muted);margin:.3em 0 0;font-size:.96rem;}

/* ----- Lieu ----- */
.lieu-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:56px;
  align-items:center;
}
.lieu-text p{color:var(--text-muted);}
.lieu-infos{margin:1.6em 0 2em;display:flex;flex-direction:column;gap:.6em;}
.lieu-infos li{color:var(--text-muted);font-size:.98rem;}
.lieu-infos strong{color:var(--parchment);}
.lieu-map{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--stone-700);
  box-shadow:var(--shadow-sm);
  aspect-ratio:4/3.4;
}
.lieu-map iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05);}

/* ----- Pricing ----- */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:24px;
}
.price-card{
  position:relative;
  background:var(--stone-950);
  border:1px solid var(--stone-700);
  border-radius:var(--radius);
  padding:32px 26px;
  text-align:center;
}
.price-card h3{color:var(--parchment);font-size:1.15rem;}
.price-tag{
  font-family:var(--font-display);
  font-size:2rem;
  color:var(--gold-light);
  margin:.2em 0 1em;
}
.price-tag span{display:block;font-size:.55rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-body);margin-top:.4em;}
.price-card ul{margin-bottom:1.6em;display:flex;flex-direction:column;gap:.5em;}
.price-card li{color:var(--text-muted);font-size:.92rem;}
.price-card .btn{width:100%;}
.price-card-highlight{
  border-color:var(--gold);
  background:linear-gradient(180deg, rgba(201,162,39,.08), var(--stone-950));
  transform:scale(1.03);
}
.price-badge{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--gold);
  color:var(--stone-950);
  font-family:var(--font-display);
  font-size:.65rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:.35em .9em;
  border-radius:999px;
  font-weight:700;
}
.pricing-note{margin-top:2em;color:var(--text-muted);font-size:.9rem;}
.pricing-note code{background:var(--stone-800);padding:.15em .4em;border-radius:4px;font-size:.85em;}

/* ----- Galerie ----- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.gallery-item{
  position:relative;
  aspect-ratio:4/3;
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.55);
  font-family:var(--font-display);
  font-size:.85rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  border:1px dashed var(--stone-600);
  background-size:cover;
  background-position:center;
}
.gallery-item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item span{
  position:relative;
  z-index:0;
  pointer-events:none;
}
.gallery-item img ~ span{display:none;}
.ph-1{background:linear-gradient(135deg,#3a2f1f,#211b12);}
.ph-2{background:linear-gradient(135deg,#4d1e1e,#231010);}
.ph-3{background:linear-gradient(135deg,#2c2c2c,#141414);}
.ph-4{background:linear-gradient(135deg,#5c4419,#26200f);}
.ph-5{background:linear-gradient(135deg,#332a22,#171310);}
.ph-6{background:linear-gradient(135deg,#452323,#1c1010);}

/* ----- Accordion / FAQ ----- */
.accordion-item{border-bottom:1px solid var(--stone-700);}
.accordion-trigger{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  background:transparent;
  border:none;
  color:var(--parchment);
  font-family:var(--font-display);
  font-size:1.02rem;
  text-align:left;
  padding:1.3em 0;
}
.accordion-icon{position:relative;width:16px;height:16px;flex-shrink:0;}
.accordion-icon::before,.accordion-icon::after{
  content:'';position:absolute;background:var(--gold-light);
  transition:transform .2s ease;
}
.accordion-icon::before{width:16px;height:2px;top:7px;left:0;}
.accordion-icon::after{width:2px;height:16px;top:0;left:7px;}
.accordion-trigger[aria-expanded="true"] .accordion-icon::after{transform:rotate(90deg);opacity:0;}
.accordion-panel{
  max-height:0;
  overflow:hidden;
  transition:max-height .25s ease;
}
.accordion-panel p{color:var(--text-muted);padding-bottom:1.3em;margin:0;}

/* ----- Contact ----- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
}
.contact-infos{display:flex;flex-direction:column;gap:.9em;margin:1.6em 0;}
.contact-infos li{display:flex;align-items:center;gap:.7em;color:var(--text-muted);}
.contact-infos svg{color:var(--gold);}
.social-links{display:flex;gap:14px;}
.social-links a{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--stone-700);
  border-radius:50%;
  color:var(--gold-light);
  transition:background-color .15s ease, transform .15s ease;
}
.social-links a:hover{background:rgba(201,162,39,.12);transform:translateY(-2px);}

.contact-form{
  display:flex;
  flex-direction:column;
  gap:16px;
  background:var(--stone-900);
  border:1px solid var(--stone-700);
  border-radius:var(--radius);
  padding:28px;
}
.contact-form label{
  display:flex;flex-direction:column;gap:.4em;
  font-family:var(--font-display);
  font-size:.78rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--text-muted);
}
.contact-form input,.contact-form textarea{
  font-family:var(--font-body);
  font-size:1rem;
  background:var(--stone-950);
  border:1px solid var(--stone-600);
  border-radius:4px;
  padding:.7em .9em;
  color:var(--text);
  resize:vertical;
}
.contact-form input:focus,.contact-form textarea:focus{
  outline:none;
  border-color:var(--gold);
}
.contact-form button{align-self:flex-start;}

/* ----- Sponsors ----- */
.sponsors-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:18px;
}
.sponsor-logo{
  aspect-ratio:3/2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.5em;
  text-align:center;
  padding:12px;
  border:1px dashed var(--stone-600);
  border-radius:var(--radius);
  background:var(--stone-950);
  color:var(--text-muted);
  font-family:var(--font-display);
  font-size:.72rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:border-color .18s ease, color .18s ease;
}
.sponsor-logo svg{
  width:28px;height:28px;
  color:var(--gold);
  flex-shrink:0;
  transition:color .18s ease;
}
.sponsor-logo:hover{border-color:var(--gold-dark);color:var(--gold-light);}
.sponsor-logo:hover svg{color:var(--gold-light);}
.sponsor-logo img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  filter:grayscale(1) brightness(1.4);
  opacity:.85;
  transition:filter .18s ease, opacity .18s ease;
}
.sponsor-logo:hover img{filter:grayscale(0) brightness(1);opacity:1;}
.sponsors-cta{
  margin-top:2em;
  color:var(--text-muted);
  font-size:.98rem;
}
.sponsors-cta a{color:var(--gold-light);text-decoration:underline;text-underline-offset:3px;}

/* ----- Footer ----- */
.site-footer{
  background:var(--stone-950);
  border-top:1px solid var(--stone-700);
  padding-top:56px;
}
.footer-inner{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:24px;
  padding-bottom:36px;
}
.footer-logo{font-size:1.05rem;color:var(--gold-light);}
.footer-inner p{color:var(--text-muted);font-size:.9rem;margin-top:.4em;}
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  font-family:var(--font-menu);
  font-weight:400;
  font-size:.9rem;
  letter-spacing:.02em;
  color:var(--text-muted);
}
.footer-nav a:hover{color:var(--gold-light);}
.footer-bottom{
  border-top:1px solid var(--stone-800);
  padding:20px 24px;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:8px;
  font-size:.8rem;
  color:var(--text-muted);
}

/* ----- Back to top ----- */
.back-to-top{
  position:fixed;
  right:20px;bottom:20px;
  width:44px;height:44px;
  border-radius:50%;
  background:var(--wine);
  border:1px solid var(--gold-dark);
  color:var(--text);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-sm);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:90;
}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top svg{width:18px;height:18px;}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:900px){
  .lieu-grid,.contact-grid{grid-template-columns:1fr;}
  .lieu-map{order:-1;}
}

@media (max-width:760px){
  body{font-size:16.5px;}
  .main-nav{
    position:fixed;
    top:64px;left:0;right:0;
    flex-direction:column;
    background:var(--stone-950);
    border-bottom:1px solid var(--stone-700);
    padding:16px 24px 24px;
    gap:4px;
    transform:translateY(-8px);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  }
  .main-nav.is-open{opacity:1;visibility:visible;transform:translateY(0);}
  .main-nav a{padding:12px 0;border-bottom:1px solid var(--stone-800);}
  .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .br-desktop{display:none;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .countdown-item{min-width:60px;padding:10px 12px;}
  .countdown-item span{font-size:1.25rem;}
}

@media (max-width:480px){
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .hero{padding:90px 0 70px;}
}
