@font-face {
  font-family: "Cinzel";
  src: url("../fonts/Cinzel-Black.ttf") format("truetype");
  font-weight: 900; font-display: swap;
}
@font-face {
  font-family: "League Gothic";
  src: url("../fonts/LeagueGothic-Regular.ttf") format("truetype");
  font-weight: 400; font-display: swap;
}
:root {
  --eg-brown-dark: #2B1804;
  --eg-brown: #775218;
  --eg-green: #556B2B;
  --eg-yellow: #D7A623;
}
.eg-serif { font-family: "Cinzel", serif; }
.eg-condensed { font-family: "League Gothic", "Poppins", sans-serif; text-transform: uppercase; }
.eg-cta {
  display:inline-block; background: var(--eg-yellow); color:#fff; font-family:"League Gothic",sans-serif;
  text-transform:uppercase; letter-spacing:.03em; padding:14px 28px; border-radius:6px; text-decoration:none;
}
.eg-cta:hover { filter:brightness(0.95); color:#fff; }

.eg-section { position:relative; overflow:hidden; background:var(--eg-brown); color:#fff; padding:60px 0; }
.eg-section::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0.5;
  background-image:url("../images/escape/Escape game background.svg");
  background-repeat:no-repeat; background-position:right -130px center; background-size:auto 135%; }
.eg-section__inner { position:relative; z-index:1; max-width:1200px; margin:0 auto; display:flex; gap:40px; align-items:center; padding:0 20px; }
.eg-section__poster img { max-width:320px; width:100%; height:auto; display:block; }
.eg-section__content { flex:1; }
.eg-section__label { display:flex; align-items:center; gap:18px; text-transform:uppercase;
  font-weight:900; font-size:38px; line-height:44px; margin:0 0 16px; text-shadow:1px 1px 3px rgba(0,0,0,0.4); }
.eg-section__label::before, .eg-section__label::after { content:""; flex:1; height:2px; background:#fff; }
.eg-section__title { font-size:34px; line-height:1.05; margin:0 0 20px; color:#fff; text-shadow:2px 2px 4px rgba(0,0,0,0.5); }
.eg-section__desc { margin-bottom:24px; line-height:1.6; font-family:"Montserrat",sans-serif; font-weight:300; }
a.btn-eg-yellow, a.btn-eg-yellow:link, a.btn-eg-yellow:visited { display:block; width:100%; text-align:center; background-color:#D7A623 !important; border-color:#D7A623 !important; color:#fff !important; box-shadow:none !important; }
a.btn-eg-yellow:hover, a.btn-eg-yellow:focus { background-color:#b8891a !important; border-color:#b8891a !important; color:#fff !important; box-shadow:#8f6a14 0 4px 0 0, rgba(0,0,0,0.4) 0 6px 6px 0 !important; }
@media (max-width:768px){
  .eg-section__inner{ flex-direction:column; }
  .eg-section__poster img{ max-width:220px; }
  /* Sous 768px : SVG de fond très estompé pour garder le texte lisible */
  .eg-section::after{ opacity:0.15; }
}

.eg-modal { position:fixed; inset:0; z-index:9999; background:#1F4D26;
  display:flex; flex-direction:column; font-family:"Montserrat",sans-serif; }
.eg-modal__logo { text-align:center; padding:24px 0; }
.eg-modal__logo img { height:60px; }
.eg-modal__split { flex:1; display:flex; }
.eg-half { position:relative; flex:1 1 50%; background-size:cover; background-position:center;
  transition:flex-basis .5s ease; display:flex; align-items:center; justify-content:center; }
.eg-half::before { content:""; position:absolute; inset:0; background:rgba(31,77,38,0.78); }
.eg-modal__split:hover .eg-half { flex-basis:40%; }
.eg-modal__split .eg-half:hover { flex-basis:60%; }
.eg-half__inner { position:relative; z-index:1; text-align:center; color:#fff; padding:20px; }
.eg-half__label { display:flex; align-items:center; justify-content:center; gap:24px;
  text-transform:uppercase; font-weight:700; font-size:28px; line-height:44px;
  text-shadow:1px 1px 3px rgba(0,0,0,0.4); margin:0 0 16px; transition:font-size .4s ease; }
.eg-half__label::before, .eg-half__label::after { content:""; width:148px; height:2px; background:#fff; flex:0 0 auto; transition:width .4s ease; }
.eg-half__title { font-weight:300; font-size:50px; line-height:58px; margin:0 0 28px; transition:font-size .4s ease, line-height .4s ease; }
/* Le côté NON survolé réduit ses textes pour laisser la place au côté qui grossit */
.eg-modal__split:hover .eg-half:not(:hover) .eg-half__title { font-size:32px; line-height:38px; }
.eg-modal__split:hover .eg-half:not(:hover) .eg-half__label { font-size:20px; }
.eg-modal__split:hover .eg-half:not(:hover) .eg-half__label::before,
.eg-modal__split:hover .eg-half:not(:hover) .eg-half__label::after { width:80px; }
@media (max-width:1024px){ .eg-half__label{ font-size:22px; gap:14px; } .eg-half__label::before,.eg-half__label::after{ width:70px; } .eg-half__title{ font-size:36px; line-height:42px; } }
@media (max-width:768px){
  .eg-modal__split{ flex-direction:column; }
  .eg-modal__logo{ padding:10px 0; }
  .eg-modal__logo img{ height:38px; }
  .eg-half__inner{ padding:10px; }
  .eg-half__label{ font-size:15px; gap:8px; line-height:20px; margin:0 0 6px; }
  .eg-half__label::before,.eg-half__label::after{ width:32px; height:2px; }
  .eg-half__title{ font-size:20px; line-height:24px; margin:0 0 12px; }
  .eg-modal__split:hover .eg-half:not(:hover) .eg-half__title{ font-size:20px; line-height:24px; }
  .eg-modal__split:hover .eg-half:not(:hover) .eg-half__label{ font-size:15px; }
}

/* Boutons "carte" de la barre utilitaire (billetterie + escape game) */
.nav-cta-group { display:flex; gap:0; align-items:stretch; align-self:stretch; }
/* Footer : barre de raccourcis en vert sur la page Escape Game uniquement */
.shortcuts--green { background:#556B2B !important; }
/* Picto footer Escape Game : blanc, devient orange au survol comme les autres liens */
.eg-footer-picto path { fill:#fff; transition:fill .2s ease; }
.shortcuts a:hover .eg-footer-picto path { fill:#F5A623 !important; }
.nav-cta { position:relative; overflow:hidden; display:flex; align-items:center; gap:14px;
  min-width:250px; padding:10px 22px; color:#fff; text-decoration:none; align-self:stretch;
  font-family:"Montserrat",sans-serif; }
.nav-cta:hover { color:#fff; }
.nav-cta--billetterie { background-color:#FF9932; transition:background-color .3s ease; }
.nav-cta--billetterie:hover { background-color:#f08a1e; }
.nav-cta--escape { background-color:#775218; transition:background-color .3s ease; }
.nav-cta--escape:hover { background-color:#5b3e11; }
.nav-cta__deco { position:absolute; right:-8px; top:50%; transform:translateY(-50%) rotate(0deg);
  height:150%; width:auto; z-index:0; pointer-events:none; transition:transform .5s ease; }
.nav-cta--escape .nav-cta__deco { height:210%; right:-45px; }
.nav-cta:hover .nav-cta__deco { transform:translateY(-50%) rotate(12deg); }
.nav-cta--escape:hover .nav-cta__deco { transform:translateY(-50%) rotate(12deg) scale(1.05); }
.nav-cta__icon { position:relative; z-index:1; flex:0 0 auto; width:46px; height:46px;
  border:2px solid #fff; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:22px; color:#fff; }
.nav-cta__label { position:relative; z-index:1; font-size:18px; font-weight:400; line-height:1.15; color:#fff; }

.eg-hero { position:relative; background-size:cover; background-position:center; text-align:center; color:#fff; padding:50px 20px 60px; }
.eg-hero::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(85,107,43,0.6), rgba(101,96,34,0.2)); }
.eg-hero > * { position:relative; z-index:1; }
.eg-hero__logo { width:128px; height:174px; object-fit:contain; margin-bottom:16px; }
.eg-hero__title { font-size:44px; margin:0 0 12px; color:#fff; line-height:1.05; text-shadow:2px 2px 4px rgba(0,0,0,0.5); }
.eg-hero__subtitle { display:flex; align-items:center; justify-content:center; gap:16px; font-size:22px; letter-spacing:.1em;
  max-width:900px; margin:0 auto 30px; text-transform:uppercase; text-shadow:1px 1px 3px rgba(0,0,0,0.4); }
.eg-hero__subtitle::before, .eg-hero__subtitle::after { content:""; flex:1; height:2px; background:#fff; }
.eg-video { position:relative; max-width:860px; margin:0 auto; height:0; padding-bottom:min(56.25%, 483px); }
.eg-video iframe, .eg-video video { position:absolute; inset:0; width:100%; height:100%; }
.eg-video video { object-fit:cover; background:#000; }
.eg-theme { background:var(--eg-brown-dark); color:#fff; padding:60px 20px; text-align:center; }
.eg-theme__title { display:flex; align-items:center; justify-content:center; gap:20px; font-size:30px; margin:0 auto 44px; max-width:1050px; color:#fff; }
.eg-theme__title::before, .eg-theme__title::after { content:""; flex:1; height:2px; background:#fff; }
.eg-pictos { max-width:1050px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:30px 24px; text-align:left; }
.eg-picto { display:flex; gap:16px; align-items:center; }
/* Largeur réglée thème par thème dans l'admin (1, 2 ou 4 colonnes) */
.eg-picto--span2 { grid-column:span 2; }
.eg-picto--span4 { grid-column:1 / -1; }
/* Les thèmes à texte sont alignés en haut, l'icône restant au niveau du libellé */
.eg-picto--text { align-items:flex-start; }
.eg-picto__ring { flex:0 0 auto; width:62px; height:62px; border:2px solid #fff; border-radius:50%;
  display:flex; align-items:center; justify-content:center; }
.eg-picto__ring img { width:32px; height:32px; object-fit:contain; }
/* Icône de thème recolorée en jaune quelle que soit la couleur du SVG uploadé */
.eg-picto__icon { display:block; width:32px; height:32px; background-color:var(--eg-yellow);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center;
  -webkit-mask-size:contain; mask-size:contain; }
.eg-picto__label { color:#fff; font-family:"Cinzel",serif; font-weight:900; font-size:18px; line-height:1; margin:0; text-transform:uppercase; }
.eg-picto__text { color:#fff; font-family:"Montserrat",sans-serif; font-weight:300; font-size:14px; line-height:1.4; }
.eg-picto__text p { margin:0 0 4px; }
/* Mises en forme saisies dans l'éditeur du back-office */
.eg-picto__text ul, .eg-picto__text ol { margin:0 0 4px; padding-left:18px; list-style:disc outside; }
.eg-picto__text ol { list-style:decimal outside; }
.eg-picto__text li { margin:0 0 2px; }
.eg-picto__text strong, .eg-picto__text b { font-weight:700; }
.eg-picto__text a { color:var(--eg-yellow); text-decoration:underline; }
.eg-picto__text > :last-child { margin-bottom:0; }
.eg-stars img { width:20px; height:20px; }
.eg-eludice { background:var(--eg-brown-dark); color:#fff; text-align:center; padding:50px 20px; }
.eg-eludice__title { display:flex; align-items:center; justify-content:center; gap:20px; max-width:1050px; margin:0 auto; }
.eg-eludice__title::before, .eg-eludice__title::after { content:""; flex:1; height:2px; background:#fff; }
.eg-eludice img { height:90px; margin-top:20px; }
@media (max-width:900px){ .eg-pictos{ grid-template-columns:1fr 1fr; } .eg-picto--span2, .eg-picto--span4{ grid-column:1 / -1; } }
@media (max-width:600px){ .eg-pictos{ grid-template-columns:1fr; } .eg-picto--span2, .eg-picto--span4{ grid-column:auto; } }
/* Rotation continue du picto Escape Game au survol (comme les autres icônes du footer) */
@keyframes eg-footer-wobble {
  0% { transform:translate(-50%,-50%) rotate(-8deg); }
  50% { transform:translate(-50%,-50%) rotate(4deg); }
  100% { transform:translate(-50%,-50%) rotate(-8deg); }
}
.shortcuts a:hover .eg-footer-picto { animation:eg-footer-wobble 1s ease-in-out infinite; }
