/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.13.8.1786913375
Updated: 2026-08-16 22:49:35

*/

:root{
  --bg:#ffffff;
  --bg-panel:#f7f4ec;
  --ink:#111111;
  --ink-dim:#444444;
  --ink-faint:#6d6d6d;
  --accent:#111111;
  --accent-dim:#5c5c5c;
  --line:rgba(17,17,17,0.12);
  --line-strong:rgba(17,17,17,0.22);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16.5px;
  line-height:1.6;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}

::selection{background:var(--accent); color:var(--bg);}

.mono{font-family:'IBM Plex Mono',monospace;}
.display{font-family:'Fraunces',serif;}

a{color:inherit; text-decoration:none;}
a:focus-visible, button:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){.wrap{padding:0 20px;}}

/* grain overlay, très discret */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:200; opacity:0.025; mix-blend-mode:multiply;
}

/* NAV */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:12px 0;
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
  display:block;
}
.site-header .wrap{
  background:rgba(255,255,255,0.96);
  border:1px solid var(--line);
  box-shadow:0 8px 30px rgba(0,0,0,0.06);
  border-radius:999px;
  padding:12px 18px;
}
.site-header.scrolled{
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(6px);
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
nav.wrap{display:flex; align-items:center; justify-content:space-between; position:relative; width:100%;}
.brand{
  font-family:'Fraunces',serif; font-weight:600; font-size:16px; letter-spacing:0.04em;
  text-transform:uppercase; display:flex; align-items:baseline; gap:10px;
  position:relative; z-index:2;
}
.brand .num{color:var(--accent); font-family:'IBM Plex Mono',monospace; font-size:12px;}
.nav-links{
  display:flex; gap:18px; align-items:flex-start; position:fixed; top:82px; right:12px; left:auto;
  width:min(320px, calc(100vw - 24px)); padding:20px 20px 24px;
  background:rgba(255,255,255,0.98); border:1px solid var(--line); border-radius:20px;
  box-shadow:0 12px 30px rgba(0,0,0,0.10); flex-direction:column; justify-content:flex-start; z-index:90;
  opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-8px); transition:all .25s ease;
  overflow:hidden;
}
.nav-links.open{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);
}
.nav-group{display:flex; flex-direction:column; gap:10px; width:100%; padding-bottom:14px; border-bottom:1px solid var(--line);}
.nav-group:last-child{border-bottom:none;}
.nav-group h3{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:4px;}
.nav-links a{
  font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-dim); position:relative; padding:4px 0;
}
.nav-links a:hover{color:var(--ink);}
.nav-actions{display:flex; align-items:center; gap:10px; margin-left:auto; position:relative; z-index:95;}
.social-link{
  display:flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--line-strong); border-radius:50%; color:var(--ink); transition:all .25s ease;
}
.social-link:hover{border-color:var(--accent); color:var(--accent);}
.social-link svg{width:18px; height:18px; fill:currentColor;}
.nav-toggle{
  display:flex; align-items:center; justify-content:center; background:none; border:1px solid var(--line-strong); color:var(--ink); width:42px; height:42px; border-radius:50%; cursor:pointer; position:relative; z-index:95; transition:all .25s ease;
}
.nav-toggle:hover{border-color:var(--accent); color:var(--accent);}
.nav-toggle[aria-expanded="true"]{background:var(--ink); color:var(--bg); border-color:var(--ink);}
@media (min-width:901px){
  .nav-links{top:90px; right:24px; width:min(360px, calc(100vw - 48px)); padding:24px 24px 28px;}
}

/* HERO */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:center;
  padding:110px 0 70px;
  background:var(--bg);
  overflow:hidden;
  isolation:isolate;
}
.hero-backdrop{
  position:absolute; inset:0; background-image:url('https://images.unsplash.com/photo-1516035069371-29a1b244cc32?auto=format&fit=crop&w=1600&q=80');
  background-size:cover; background-position:center; filter:brightness(0.72) contrast(1.05);
  z-index:-2;
}
.hero::before{
  content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.28) 55%, rgba(0,0,0,0.35) 100%); z-index:-1;
}
.hero-eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--accent); margin-bottom:26px; display:flex; align-items:center; gap:12px;
}
.hero-eyebrow .dash{width:28px; height:1px; background:var(--accent);}
h1.hero-title{
  font-family:'Fraunces',serif; font-weight:500; font-style:italic;
  font-size:clamp(52px, 9vw, 128px); line-height:0.92; letter-spacing:-0.01em;
  color:#ffffff; max-width:900px;
}
.hero-years{
  font-family:'IBM Plex Mono',monospace; font-size:clamp(16px,2.4vw,22px); letter-spacing:0.22em;
  color:rgba(255,255,255,0.86); margin-top:28px; display:flex; align-items:center; gap:16px;
}
.hero-years .line{flex:0 0 60px; height:1px; background:rgba(255,255,255,0.7);}
.hero-sub{
  margin-top:34px; max-width:520px; font-size:17px; color:rgba(255,255,255,0.85); font-weight:400;
}
.hero-dateline{
  margin-top:30px; font-size:clamp(18px,2.6vw,26px); letter-spacing:0.03em; color:#ffffff;
}
.hero-dateline .dash-sep{color:rgba(255,255,255,0.9); margin:0 6px;}
.hero-tags{
  margin-top:14px; font-size:12px; letter-spacing:0.06em; color:rgba(255,255,255,0.75); text-transform:uppercase;
}
.hero-cta{margin-top:28px; display:flex; gap:16px; flex-wrap:wrap;}
.btn{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  padding:15px 28px; border-radius:1px; transition:all .3s ease; display:inline-block;
}
.btn-primary{background:#ffffff; color:#111111;}
.btn-primary:hover{background:#f2f2f2; color:#111111;}
.btn-ghost{border:1px solid rgba(255,255,255,0.6); color:#ffffff; background:rgba(255,255,255,0.08);}
.btn-ghost:hover{border-color:#ffffff; color:#ffffff; background:rgba(255,255,255,0.16);}

/* aperture */
.aperture-wrap{
  position:absolute; right:-40px; top:50%; transform:translateY(-50%);
  width:min(46vw,520px); opacity:0.8; pointer-events:none;
}
@media (max-width:900px){.aperture-wrap{opacity:0.3; width:70vw; right:-15vw;}}
.aperture{width:100%; height:auto; overflow:visible;}
.blade{
  fill:var(--accent-dim); transform-origin:100px 100px;
  transition:transform 1s cubic-bezier(.16,1,.3,1), opacity .7s ease;
  opacity:0;
}
.blade.closed{transform:scale(0.25) rotate(var(--rot)) translateY(0);}
.aperture-wrap.in-view .blade{opacity:0.8; transform:rotate(var(--rot)) scale(1);}
.aperture-wrap.in-view .blade{transition-delay:calc(var(--i) * 55ms);}
.aperture-ring{fill:none; stroke:var(--line); stroke-width:1;}

.scroll-cue{
  position:absolute; bottom:36px; left:32px; font-family:'IBM Plex Mono',monospace; font-size:11px;
  color:var(--ink-faint); letter-spacing:0.1em; display:flex; align-items:center; gap:10px;
}
.scroll-cue .bar{width:1px; height:34px; background:var(--line-strong);}

/* SECTION SCAFFOLDING */
.site-section{padding:130px 0; position:relative; border-top:1px solid var(--line);}
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:64px; flex-wrap:wrap;
}
.fstop{
  font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent); letter-spacing:0.1em;
  display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.fstop .line{width:20px; height:1px; background:var(--accent);}
h2.section-title{
  font-family:'Fraunces',serif; font-weight:500; font-size:clamp(32px,4.2vw,52px); letter-spacing:-0.01em;
}
.section-note{max-width:340px; color:var(--ink-dim); font-size:14.5px;}

/* EDITO */
.edito-grid{display:grid; grid-template-columns:280px 1fr; gap:60px;}
@media (max-width:800px){.edito-grid{grid-template-columns:1fr; gap:24px;}}
.edito-body p{color:var(--ink-dim); font-size:16px; margin-bottom:16px; max-width:640px;}
.edito-body p:first-child{color:var(--ink); font-family:'Fraunces',serif; font-style:italic; font-size:20px; line-height:1.5;}
.edito-body .edito-more{display:none;}
.edito-body.expanded .edito-more{display:block;}
.edito-toggle{
  background:none; border:none; color:var(--accent); font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  cursor:pointer; padding:6px 0; border-bottom:1px solid var(--accent-dim); margin-top:6px;
}
.edito-toggle:hover{color:var(--ink);}

/* CONCEPT */
.concept-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:70px; align-items:start;}
@media (max-width:800px){.concept-grid{grid-template-columns:1fr; gap:36px;}}
.concept-lead{
  font-family:'Fraunces',serif; font-style:italic; font-weight:400;
  font-size:clamp(22px,2.6vw,30px); line-height:1.42; color:var(--ink);
}
.concept-body p{color:var(--ink-dim); margin-bottom:18px; font-size:15.5px;}
.concept-body p strong{color:var(--ink); font-weight:500;}

/* PROGRAMME — filmstrip */
.filmstrip{display:flex; flex-direction:column; gap:2px;}
.frame{
  display:grid; grid-template-columns:120px 1fr 200px; gap:28px; align-items:center;
  padding:28px 24px; border-top:1px solid var(--line); position:relative;
  transition:background .3s ease;
}
.frame:hover{background:var(--bg-panel);}
.frame:last-child{border-bottom:1px solid var(--line);}
.frame::before, .frame::after{
  content:''; position:absolute; left:8px; width:6px; height:6px; border-radius:50%;
  background:var(--bg); border:1px solid var(--line-strong);
}
.frame::before{top:8px;} .frame::after{bottom:8px;}
.frame-date{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent); padding-left:14px;}
.frame-date span{display:block; color:var(--ink-faint); font-size:11px; margin-top:4px;}
.frame-body h3{font-family:'Fraunces',serif; font-weight:500; font-size:20px; margin-bottom:6px;}
.frame-body p{color:var(--ink-dim); font-size:14px; max-width:520px;}
.frame-time{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-faint); text-align:right; text-transform:uppercase;}
@media (max-width:700px){
  .frame{grid-template-columns:1fr; gap:8px; padding:24px 16px 24px 26px;}
  .frame-time{text-align:left;}
}

.program-section{margin-top:64px; padding:36px; border:1px solid var(--line); background:var(--bg-panel); border-radius:2px;}
.program-section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:24px; flex-wrap:wrap;}
.program-section-head h3{font-family:'Fraunces',serif; font-size:24px; font-weight:500;}
.program-section-head p{max-width:420px; color:var(--ink-dim); font-size:14px;}
.carousel-shell{display:flex; flex-direction:column; gap:16px;}
.carousel-track{display:flex; transition:transform .35s ease;}
.carousel-card{flex:0 0 100%; display:grid; grid-template-columns:minmax(220px, 320px) 1fr; gap:24px; align-items:stretch; background:var(--bg); border:1px solid var(--line); padding:24px; min-height:270px;}
.carousel-media{position:relative; overflow:hidden; background:linear-gradient(135deg,#1d1d1d 0%,#6d6d6d 100%); min-height:220px; display:flex; align-items:flex-end; padding:16px;}
.carousel-media::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,0.25) 100%);} 
.carousel-badge{position:relative; z-index:1; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em; padding:6px 10px; background:rgba(255,255,255,0.85); color:var(--ink);}
.carousel-content{display:flex; flex-direction:column; justify-content:center; gap:10px;}
.carousel-content h4{font-family:'Fraunces',serif; font-size:22px; font-weight:500;}
.carousel-content p{color:var(--ink-dim); font-size:14px;}
.carousel-meta{display:grid; gap:8px; margin-top:8px;}
.carousel-meta-item{display:flex; flex-direction:column; gap:2px; border-top:1px solid var(--line); padding-top:8px;}
.carousel-meta-item span{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-faint);} 
.carousel-meta-item strong{font-size:14px; color:var(--ink); font-weight:600;}
.carousel-controls{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.carousel-btn{border:1px solid var(--line-strong); background:var(--bg); color:var(--ink); width:40px; height:40px; cursor:pointer; border-radius:50%; transition:all .25s ease;}
.carousel-btn:hover{border-color:var(--accent); color:var(--accent);}
.carousel-dots{display:flex; gap:8px; justify-content:center; flex:1;}
.carousel-dot{width:10px; height:10px; border-radius:50%; border:1px solid var(--line-strong); background:none; cursor:pointer;}
.carousel-dot.active{background:var(--accent); border-color:var(--accent);} 
.map-section{margin-top:64px;}
.map-card{border:1px solid var(--line); background:var(--bg-panel); padding:28px; border-radius:2px;}
.map-layout{display:grid; grid-template-columns:1.2fr 0.8fr; gap:24px; align-items:start; margin-top:20px;}
.map-visual{position:relative; background:var(--bg); border:1px solid var(--line); padding:16px; min-height:360px;}
.festival-map{width:100%; height:auto; display:block;}
.festival-map rect, .festival-map path, .festival-map circle{fill:var(--bg-panel); stroke:var(--line-strong); stroke-width:2;}
.festival-map path:nth-of-type(2){fill:none; stroke:var(--accent); stroke-width:2;}
.map-markers{position:absolute; inset:0;}
.map-marker{position:absolute; width:38px; height:38px; border-radius:50%; border:none; background:var(--accent); color:var(--bg); font-family:'IBM Plex Mono',monospace; font-size:12px; cursor:pointer; transform:translate(-50%, -50%); box-shadow:0 4px 16px rgba(0,0,0,0.15);}
.map-marker.active{outline:2px solid var(--ink); outline-offset:3px;}
.map-details{background:var(--bg); border:1px solid var(--line); padding:24px; min-height:360px; display:flex; flex-direction:column; gap:14px;}
.map-details h4{font-family:'Fraunces',serif; font-size:22px; font-weight:500;}
.map-details p{color:var(--ink-dim); font-size:14px;}
.map-details .detail-pill{font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent);}
.map-placeholder{color:var(--ink-faint);}
@media (max-width:900px){.carousel-card{grid-template-columns:1fr;}.map-layout{grid-template-columns:1fr;}.program-section{padding:24px;}}
@media (max-width:560px){.program-section{padding:20px;}.carousel-card{padding:18px;}.map-details{min-height:auto;}}
/* INFOS PRATIQUES */
.infos-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:50px;}
@media (max-width:800px){.infos-grid{grid-template-columns:1fr; gap:40px;}}
.infos-block .fstop{margin-bottom:14px;}
.infos-block h3{font-family:'Fraunces',serif; font-size:22px; font-weight:500; margin-bottom:16px;}
.infos-block ul{list-style:none;}
.infos-block li{
  display:flex; justify-content:space-between; padding:12px 0; border-top:1px solid var(--line); font-size:14.5px; color:var(--ink-dim);
  gap:16px;
}
.infos-block li:last-child{border-bottom:1px solid var(--line);}
.infos-block li span:first-child{color:var(--ink);}
.infos-block li span:last-child{font-family:'IBM Plex Mono',monospace; font-size:12.5px; text-align:right; color:var(--ink-faint);}

/* ABOUT / NEWSLETTER / PARTENAIRES */
.about-grid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:24px;}
.about-card{background:var(--bg-panel); border:1px solid var(--line); padding:28px; border-radius:2px; display:flex; flex-direction:column; gap:12px;}
.about-card h3{font-family:'Fraunces',serif; font-size:22px; font-weight:500;}
.about-card p{color:var(--ink-dim); font-size:14.5px;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr;}}

.newsletter-box{
  display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap;
  background:var(--bg-panel); border:1px solid var(--line); padding:48px; border-radius:2px;
}
.newsletter-form{display:flex; gap:12px; flex-wrap:wrap; align-items:flex-start;}
.newsletter-form input{
  background:var(--bg); border:1px solid var(--line-strong); color:var(--ink); padding:15px 18px;
  font-size:13px; min-width:240px; border-radius:1px;
}
.newsletter-form input:focus{outline:none; border-color:var(--accent);}
.newsletter-form input::placeholder{color:var(--ink-faint);}
.newsletter-msg{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-dim); width:100%; margin-top:4px;}
.partners-row{
  display:flex; flex-wrap:wrap; gap:14px 40px; padding-top:26px; border-top:1px solid var(--line);
}
.partners-row span{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.05em; color:var(--ink-faint); text-transform:uppercase;}

/* FOOTER */
.site-footer{padding:80px 0 40px; border-top:1px solid var(--line);}
.footer-top{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:40px; padding-bottom:60px;}
.footer-title{font-family:'Fraunces',serif; font-style:italic; font-size:clamp(28px,4vw,42px); max-width:480px;}
.footer-contact{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
.footer-contact a{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink-dim); border-bottom:1px solid transparent;}
.footer-contact a:hover{color:var(--accent); border-color:var(--accent);}
.footer-bottom{
  display:flex; justify-content:space-between; padding-top:26px; border-top:1px solid var(--line);
  font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-faint); flex-wrap:wrap; gap:12px;
}

.tickets-grid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:24px;}
.ticket-card{
  background:var(--bg-panel); border:1px solid var(--line); padding:28px; border-radius:2px;
  display:flex; flex-direction:column; gap:16px;
}
.ticket-card.featured{border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent);}
.ticket-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px;}
.ticket-head h3{font-family:'Fraunces',serif; font-size:22px; font-weight:500;}
.ticket-price{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent);}
.ticket-card p{color:var(--ink-dim);}
.ticket-card ul{list-style:none; display:flex; flex-direction:column; gap:8px; margin-top:4px;}
.ticket-card li{padding-left:14px; position:relative; color:var(--ink); font-size:14px;}
.ticket-card li::before{content:'•'; position:absolute; left:0; color:var(--accent);}
.agenda-shell{border:1px solid var(--line); background:var(--bg-panel); padding:16px; border-radius:2px;}
.agenda-grid{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px;}
.agenda-day{border:1px solid var(--line); background:var(--bg); padding:14px; min-height:150px; display:flex; flex-direction:column; gap:12px;}
.agenda-day-head{display:flex; flex-direction:column; gap:2px; border-bottom:1px solid var(--line); padding-bottom:10px;}
.agenda-weekday{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint);}
.agenda-day strong{font-family:'Fraunces',serif; font-size:24px; line-height:1; color:var(--ink);}
.agenda-month{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; color:var(--ink-dim);}
.agenda-day-body{display:flex; flex-direction:column; gap:8px;}
.agenda-event{font-size:13px; color:var(--ink-dim); padding-left:10px; border-left:2px solid var(--accent);}
.agenda-event strong{display:block; color:var(--ink); font-size:13px; margin-bottom:2px; font-weight:600;}
.agenda-empty{font-size:13px; color:var(--ink-faint);}
@media (max-width:900px){.tickets-grid{grid-template-columns:1fr;}.agenda-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}}
@media (max-width:560px){.agenda-grid{grid-template-columns:1fr;}}

.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in-view{opacity:1; transform:translateY(0);}