/* ================================================
   MARION RACONTE — styles-v2.css
   Modernisation 2026 — TOUTES LES PAGES
   ================================================ */

:root {
  --petrole:   #062B2D;
  --petrole2:  #031819;
  --turquoise: #2EC4C7;
  --orange:    #F77F00;
  --corail:    #FF6F61;
  --or:        #D4A017;
  --creme:     #F5F3EE;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Outfit','Arial Narrow',sans-serif;
  background: var(--petrole2);
  color: var(--creme);
  overflow-x: hidden;
}
body::before {
  content: ""; position: fixed; inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 80%  0%, rgba(247,127,0,.11)  0%, transparent 60%),
    radial-gradient(ellipse 50% 50% at 10% 80%, rgba(46,196,199,.08) 0%, transparent 55%),
    radial-gradient(ellipse 40% 40% at 50% 50%, rgba(212,160,23,.04) 0%, transparent 70%);
  z-index: 0; pointer-events: none;
}
body::after {
  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='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-size: 200px 200px; opacity: .35; z-index: 0; pointer-events: none;
}

/* TYPO */
h1,h2,h3 { font-family:'Fraunces','Georgia',serif; text-wrap:balance; }
p { text-wrap:pretty; }

/* NAV */
header { position:fixed; top:0; width:100%; z-index:1000; padding:0 32px; backdrop-filter:blur(20px); background:rgba(3,24,25,.58); }
nav { max-width:1200px; margin:auto; padding:18px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; border-bottom:1px solid rgba(245,243,238,.07); }
.burger { display:none !important; }
.burger-close { display:none !important; }
.logo { font-family:'Fraunces','Georgia',serif; font-size:1.45rem; font-weight:700; letter-spacing:-.01em; text-decoration:none; color:var(--creme); flex-shrink:0; }
.logo .m { color:var(--orange); font-style:italic; }
.logo .r { color:var(--turquoise); }
nav ul { display:flex !important; flex-wrap:wrap; gap:8px 20px; list-style:none; align-items:center; }
nav a { color:rgba(245,243,238,.58); text-decoration:none; font-size:clamp(.6rem,.9vw,.74rem); font-weight:600; text-transform:uppercase; letter-spacing:2px; transition:color .25s; white-space:nowrap; }
nav a:hover { color:var(--creme); }
nav a.active { color:var(--orange); }
nav a:focus-visible { outline:2px solid var(--orange); outline-offset:4px; border-radius:4px; }

/* BOUTONS */
.btn { display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border-radius:999px; font-size:.87rem; font-weight:700; text-decoration:none; letter-spacing:.4px; transition:all .3s; min-height:50px; font-family:'Outfit','Arial Narrow',sans-serif; }
.btn:focus-visible { outline:2px solid var(--orange); outline-offset:4px; }
.btn-primary { background:var(--orange); color:#fff; }
.btn-primary:hover { background:var(--corail); transform:translateY(-3px); box-shadow:0 14px 38px rgba(247,127,0,.32); }
.btn-secondary { border:1px solid rgba(245,243,238,.20); color:rgba(245,243,238,.80); background:transparent; }
.btn-secondary:hover { border-color:rgba(245,243,238,.45); color:var(--creme); transform:translateY(-3px); }

/* LABEL */
.label { display:inline-flex; align-items:center; gap:10px; margin-bottom:20px; }
.label-line { width:24px; height:1px; background:var(--orange); flex-shrink:0; }
.label-or { background:var(--or); }
.label-text { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:4px; color:var(--orange); }
.label-or-text { color:var(--or); }

/* H2 */
h2 { font-size:clamp(2.2rem,4vw,3.8rem); line-height:.93; font-weight:700; letter-spacing:-.03em; }
h2 em { display:block; font-style:italic; font-weight:300; color:var(--turquoise); }

/* VIDEO LINKS */
.video-link { position:absolute; bottom:24px; left:24px; display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:999px; background:rgba(3,24,25,.75); backdrop-filter:blur(14px); border:1px solid rgba(245,243,238,.12); color:var(--creme); text-decoration:none; font-weight:700; font-size:.88rem; transition:all .3s; z-index:2; white-space:nowrap; }
.video-link:hover { background:var(--orange); transform:translateY(-2px); }
.mini-video-link { display:inline-flex; align-items:center; gap:8px; margin-top:20px; padding:9px 16px; border-radius:999px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); color:var(--creme); text-decoration:none; font-size:.85rem; font-weight:700; transition:all .3s; }
.mini-video-link:hover { background:var(--orange); transform:translateY(-2px); }

/* SCENE IMAGE BASE */
.scene-image { border-radius:28px; overflow:hidden; position:relative; border:1px solid rgba(245,243,238,.08); box-shadow:0 40px 100px rgba(0,0,0,.55); background-size:cover; background-position:center; }
.scene-image::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.01) 3px,rgba(255,255,255,.01) 4px); pointer-events:none; z-index:1; }

/* CARDS GRID GÉNÉRIQUE */
.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.g-card { border-radius:22px; border:1px solid rgba(245,243,238,.08); padding:32px 28px; background:rgba(255,255,255,.03); position:relative; overflow:hidden; transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease; }
.g-card:hover { transform:translateY(-5px); border-color:rgba(245,243,238,.16); box-shadow:0 28px 64px rgba(0,0,0,.28); }
.g-card::before { content:""; position:absolute; top:-40px; right:-40px; width:110px; height:110px; border-radius:50%; background:var(--orange); opacity:.04; pointer-events:none; }
.g-card h3 { font-family:'Fraunces','Georgia',serif; font-size:1.28rem; font-weight:700; color:var(--turquoise); margin-bottom:12px; line-height:1.1; }
.g-card p { font-size:.91rem; line-height:1.8; color:rgba(245,243,238,.50); font-weight:300; }

/* PAGE INNER GRIDS — remplace les styles inline */
.page-grid-hero { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.page-grid-2col { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }

/* SECTION CONTENU */
.content-section { position:relative; z-index:1; max-width:1120px; margin:0 auto; padding:80px 40px; }
.section-header { margin-bottom:52px; max-width:760px; }
.section-header h2 { margin-bottom:18px; }
.section-header p { font-size:.97rem; line-height:1.82; color:rgba(245,243,238,.50); font-weight:300; margin-bottom:12px; }
.section-header p:last-child { margin-bottom:0; }
.section-header strong { color:rgba(245,243,238,.80); font-weight:600; }
.section-header .page-btns { margin-top:28px; }

/* PRO BAND */
.pro-band { border-radius:24px; padding:48px 44px; background:linear-gradient(135deg,rgba(247,127,0,.90),rgba(255,111,97,.85)); box-shadow:0 24px 60px rgba(247,127,0,.18); max-width:680px; margin:0 auto; position:relative; overflow:hidden; }
.pro-band::before { content:""; position:absolute; top:-40px; right:-40px; width:200px; height:200px; border-radius:50%; background:rgba(255,255,255,.07); pointer-events:none; }
.pro-band .label { color:rgba(255,255,255,.70); }
.pro-band .label-line { background:rgba(255,255,255,.50); }
.pro-band .label-text { color:rgba(255,255,255,.70); }
.pro-band h2 { font-size:clamp(1.8rem,3.5vw,3rem); color:#fff; margin-bottom:14px; letter-spacing:-.02em; }
.pro-band h2 em { color:rgba(255,255,255,.78); }
.pro-band p { font-size:.97rem; line-height:1.7; color:rgba(255,255,255,.78); max-width:500px; }
.pro-band .btn-secondary { border-color:rgba(255,255,255,.40); color:#fff; margin-top:28px; }
.pro-band .btn-secondary:hover { border-color:#fff; background:rgba(255,255,255,.12); transform:translateY(-3px); }

/* BIG TEXT SPECTACLE */
.big-text { font-family:'Fraunces','Georgia',serif; font-size:clamp(2.2rem,4.5vw,4.5rem); line-height:.93; letter-spacing:-.03em; font-weight:700; margin-bottom:22px; }
.big-text span { color:var(--orange); }
.show-tag { display:inline-flex; align-items:center; gap:8px; padding:7px 16px; border-radius:999px; margin-bottom:26px; background:rgba(212,160,23,.12); border:1px solid rgba(212,160,23,.22); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--or); }

/* CONTACT DETAILS */
.contact-details { display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.contact-detail-row { display:flex; align-items:center; gap:14px; padding:13px 17px; border-radius:13px; border:1px solid rgba(245,243,238,.08); background:rgba(255,255,255,.03); transition:border-color .25s; }
.contact-detail-row:hover { border-color:rgba(245,243,238,.16); }
.contact-detail-icon { font-size:.95rem; flex-shrink:0; width:20px; text-align:center; }
.contact-detail-label { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:rgba(245,243,238,.34); display:block; margin-bottom:2px; }
.contact-detail-value { font-size:.9rem; color:rgba(245,243,238,.72); }

.contact-form { background:rgba(255,255,255,.04); border:1px solid rgba(245,243,238,.09); border-radius:24px; padding:38px; }
.form-group { margin-bottom:14px; }
.form-group input, .form-group textarea { width:100%; background:rgba(255,255,255,.05); color:var(--creme); border:1px solid rgba(245,243,238,.10); border-radius:13px; padding:15px 17px; font-size:.94rem; font-family:'Outfit','Arial Narrow',sans-serif; outline:none; transition:border-color .25s,box-shadow .25s; resize:none; }
.form-group input::placeholder, .form-group textarea::placeholder { color:rgba(245,243,238,.28); }
.form-group input:focus, .form-group textarea:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(247,127,0,.10); }
.form-group textarea { min-height:155px; }
.form-notice { font-size:.75rem; color:rgba(245,243,238,.28); line-height:1.6; margin-top:14px; margin-bottom:18px; }

/* MENTIONS LÉGALES */
.mentions-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:52px; }
.mentions-card { border-radius:20px; border:1px solid rgba(245,243,238,.08); padding:26px 24px; background:rgba(255,255,255,.03); }
.mentions-card h3 { font-family:'Fraunces','Georgia',serif; font-size:1.08rem; font-weight:700; color:var(--turquoise); margin-bottom:12px; }
.mentions-card p { font-size:.87rem; line-height:1.82; color:rgba(245,243,238,.48); font-weight:300; margin-bottom:10px; }
.mentions-card p:last-child { margin-bottom:0; }
.mentions-card a { color:var(--turquoise); text-decoration:none; }
.mentions-card a:hover { color:var(--orange); }

/* INDEX HERO */
.hero { position:relative; z-index:1; min-height:100vh; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:0; padding:0 40px; max-width:1200px; margin:auto; }
.hero-left { padding:140px 60px 80px 0; display:flex; flex-direction:column; position:relative; z-index:2; min-width:0; }
.hero-left > * { opacity:0; transform:translateY(18px); animation:fadeUp .7s ease forwards; }
.kicker       { animation-delay:.10s; }
.hero-left h1 { animation-delay:.25s; }
.hero-desc    { animation-delay:.40s; }
.btns         { animation-delay:.55s; }
.hero-stats   { animation-delay:.70s; }
.scroll-hint  { animation-delay:.85s; }

.kicker { display:inline-flex; align-items:center; gap:10px; margin-bottom:36px; }
.kicker-line { width:32px; height:1px; background:var(--or); flex-shrink:0; }
.kicker-text { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:4px; color:var(--or); }

h1 { font-size:clamp(4rem,7vw,8rem); line-height:.90; font-weight:700; letter-spacing:-.03em; margin-bottom:32px; }
h1 .line-plain  { color:var(--creme); display:block; }
h1 .line-accent { color:var(--orange); font-style:italic; font-weight:300; display:block; }
h1 .line-outline { -webkit-text-stroke:1.5px rgba(245,243,238,.35); color:transparent; display:block; }

.hero-desc { font-size:1.05rem; line-height:1.8; color:rgba(245,243,238,.65); max-width:420px; margin-bottom:48px; font-weight:300; }
.hero-desc strong { color:rgba(245,243,238,.9); font-weight:600; }
.btns { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }

.hero-stats { display:flex; gap:36px; margin-top:56px; padding-top:36px; border-top:1px solid rgba(245,243,238,.08); }
.stat-num { font-family:'Fraunces','Georgia',serif; font-size:1.9rem; font-weight:700; color:var(--creme); line-height:1; display:block; }
.stat-accent { color:var(--orange); }
.stat-label { font-size:.7rem; text-transform:uppercase; letter-spacing:2px; color:rgba(245,243,238,.4); margin-top:4px; display:block; }

.scroll-hint { display:flex; align-items:center; gap:12px; margin-top:48px; color:rgba(245,243,238,.3); font-size:.68rem; text-transform:uppercase; letter-spacing:2.5px; }
.scroll-line { width:40px; height:1px; background:rgba(245,243,238,.2); position:relative; overflow:hidden; }
.scroll-line::after { content:""; position:absolute; left:-100%; top:0; width:100%; height:100%; background:var(--orange); animation:scrollMove 2s ease-in-out infinite; }

.hero-right { padding:120px 0 60px; position:relative; height:100vh; display:flex; align-items:center; z-index:2; min-width:0; }
.hero-separator { position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:40%; background:linear-gradient(to bottom,transparent,rgba(245,243,238,.10),transparent); }

.hero-card { width:100%; height:min(76vh,680px); border-radius:24px; position:relative; overflow:hidden; display:flex; align-items:flex-end; border:1px solid rgba(245,243,238,.08); box-shadow:0 0 0 1px rgba(245,243,238,.04),0 40px 100px rgba(0,0,0,.60); opacity:0; transform:translateX(20px) scale(.98); animation:slideIn .8s ease .3s forwards; }
.hero-card-accueil { background:linear-gradient(160deg,rgba(6,43,45,.20) 0%,rgba(3,24,25,.92) 100%),url("images/Marion-Cinema-ecran.webp") center/cover no-repeat; }
.hero-card::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.012) 3px,rgba(255,255,255,.012) 4px); pointer-events:none; z-index:1; }
.hero-card::after { content:""; position:absolute; top:-30%; left:50%; transform:translateX(-50%); width:60%; height:80%; background:radial-gradient(ellipse at center top,rgba(247,127,0,.12) 0%,transparent 65%); pointer-events:none; z-index:1; }

.card-badge { position:absolute; top:24px; left:24px; display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:999px; background:rgba(3,24,25,.70); border:1px solid rgba(245,243,238,.10); backdrop-filter:blur(12px); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--turquoise); z-index:2; }
.badge-dot { width:6px; height:6px; border-radius:50%; background:var(--turquoise); animation:pulse 2s infinite; }
.card-content { position:absolute; bottom:0; left:0; right:0; padding:32px; background:linear-gradient(to top,rgba(3,24,25,.95) 0%,rgba(3,24,25,.70) 60%,transparent 100%); z-index:2; }
.card-title { font-family:'Fraunces','Georgia',serif; font-size:1.6rem; font-weight:700; color:var(--creme); line-height:1.15; margin-bottom:10px; }
.card-sub { font-size:.9rem; color:rgba(245,243,238,.55); line-height:1.6; font-weight:300; }

/* INDEX DEUX ENTRÉES */
.section-acces { position:relative; z-index:1; max-width:1120px; margin:0 auto; padding:80px 40px; }
.section-intro { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:60px; }
.intro-right { font-size:.97rem; line-height:1.85; color:rgba(245,243,238,.50); font-weight:300; padding-bottom:6px; }
.access-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.access-card { border-radius:28px; border:1px solid rgba(245,243,238,.08); padding:44px 40px 40px; position:relative; overflow:hidden; display:flex; flex-direction:column; transition:transform .4s ease,border-color .4s ease,box-shadow .4s ease; }
.access-card:hover { transform:translateY(-6px); }
.card-standup { background:radial-gradient(ellipse 80% 60% at 100% 0%,rgba(247,127,0,.11) 0%,transparent 55%),rgba(255,255,255,.03); }
.card-standup:hover { border-color:rgba(247,127,0,.28); box-shadow:0 40px 100px rgba(247,127,0,.11); }
.card-association { background:radial-gradient(ellipse 80% 60% at 0% 100%,rgba(46,196,199,.09) 0%,transparent 55%),rgba(255,255,255,.03); }
.card-association:hover { border-color:rgba(46,196,199,.24); box-shadow:0 40px 100px rgba(46,196,199,.08); }
.card-num { position:absolute; top:28px; right:32px; font-family:'Fraunces','Georgia',serif; font-size:5.5rem; font-weight:700; line-height:1; letter-spacing:-.05em; pointer-events:none; user-select:none; }
.card-standup .card-num { color:rgba(247,127,0,.07); }
.card-association .card-num { color:rgba(46,196,199,.06); }
.card-tag { display:inline-flex; align-items:center; gap:7px; padding:6px 14px; border-radius:999px; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:32px; width:fit-content; }
.tag-standup { background:rgba(247,127,0,.12); border:1px solid rgba(247,127,0,.20); color:var(--orange); }
.tag-asso    { background:rgba(46,196,199,.10); border:1px solid rgba(46,196,199,.18); color:var(--turquoise); }
.tag-dot { width:5px; height:5px; border-radius:50%; }
.tag-standup .tag-dot { background:var(--orange); }
.tag-asso .tag-dot { background:var(--turquoise); }
.card-logo-wrap { margin-bottom:28px; min-height:60px; display:flex; align-items:center; }
.card-logo { max-height:56px; width:auto; object-fit:contain; filter:drop-shadow(0 4px 16px rgba(0,0,0,.25)); }
.logo-standup { max-width:210px; }
.logo-association { max-width:86px; }
.card-title-main { font-family:'Fraunces','Georgia',serif; font-size:2rem; font-weight:700; line-height:1.05; letter-spacing:-.02em; margin-bottom:14px; }
.card-title-main span { display:block; font-style:italic; font-weight:300; }
.card-standup .card-title-main span { color:var(--orange); }
.card-association .card-title-main span { color:var(--turquoise); }
.card-desc { font-size:.93rem; line-height:1.8; color:rgba(245,243,238,.52); font-weight:300; flex:1; margin-bottom:36px; }
.card-desc strong { color:rgba(245,243,238,.84); font-weight:600; }
.card-sep { width:100%; height:1px; margin-bottom:28px; }
.card-standup .card-sep { background:linear-gradient(to right,rgba(247,127,0,.20),transparent); }
.card-association .card-sep { background:linear-gradient(to right,rgba(46,196,199,.18),transparent); }
.card-btn { display:inline-flex; align-items:center; gap:10px; padding:13px 24px; border-radius:999px; font-size:.84rem; font-weight:700; text-decoration:none; letter-spacing:.4px; transition:all .3s; width:fit-content; }
.card-btn:focus-visible { outline:2px solid var(--orange); outline-offset:4px; }
.btn-orange { background:var(--orange); color:#fff; }
.btn-orange:hover { background:var(--corail); transform:translateX(4px); box-shadow:0 12px 32px rgba(247,127,0,.28); }
.btn-teal { background:transparent; color:var(--turquoise); border:1px solid rgba(46,196,199,.30); }
.btn-teal:hover { background:rgba(46,196,199,.10); transform:translateX(4px); border-color:rgba(46,196,199,.55); }
.btn-arrow { transition:transform .3s; }
.card-btn:hover .btn-arrow { transform:translateX(4px); }

/* INDEX UNIVERS */
.section-univers { position:relative; z-index:1; max-width:1120px; margin:0 auto; padding:60px 40px 90px; }
.section-head { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:64px; }
.head-right p { font-size:.97rem; line-height:1.85; color:rgba(245,243,238,.52); font-weight:300; margin-bottom:14px; }
.head-right p:last-child { margin-bottom:0; }
.head-right strong { color:rgba(245,243,238,.82); font-weight:600; }
.section-head h2 em { color:var(--or); }
.pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:20px; }
.pillar { border-radius:22px; border:1px solid rgba(245,243,238,.07); padding:30px 26px 26px; position:relative; overflow:hidden; transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease; background:rgba(255,255,255,.025); }
.pillar:hover { transform:translateY(-5px); }
.pillar-rire:hover      { border-color:rgba(247,127,0,.26);  box-shadow:0 28px 64px rgba(247,127,0,.09); }
.pillar-collectif:hover { border-color:rgba(46,196,199,.22); box-shadow:0 28px 64px rgba(46,196,199,.07); }
.pillar-visuel:hover    { border-color:rgba(212,160,23,.22); box-shadow:0 28px 64px rgba(212,160,23,.07); }
.pillar-bg { position:absolute; top:-30px; right:-30px; width:120px; height:120px; border-radius:50%; opacity:.07; pointer-events:none; }
.pillar-rire .pillar-bg      { background:var(--orange); }
.pillar-collectif .pillar-bg { background:var(--turquoise); }
.pillar-visuel .pillar-bg    { background:var(--or); }
.pillar-icon { width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; font-size:1.2rem; }
.pillar-rire .pillar-icon      { background:rgba(247,127,0,.12);  border:1px solid rgba(247,127,0,.20); }
.pillar-collectif .pillar-icon { background:rgba(46,196,199,.10); border:1px solid rgba(46,196,199,.18); }
.pillar-visuel .pillar-icon    { background:rgba(212,160,23,.10); border:1px solid rgba(212,160,23,.18); }
.pillar-title { font-family:'Fraunces','Georgia',serif; font-size:1.3rem; font-weight:700; letter-spacing:-.01em; margin-bottom:10px; line-height:1.1; }
.pillar-rire .pillar-title      { color:var(--orange); }
.pillar-collectif .pillar-title { color:var(--turquoise); }
.pillar-visuel .pillar-title    { color:var(--or); }
.pillar-desc { font-size:.87rem; line-height:1.75; color:rgba(245,243,238,.46); font-weight:300; }
.bottom-band { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; padding:34px 38px; border-radius:20px; border:1px solid rgba(245,243,238,.07); background:rgba(255,255,255,.02); position:relative; overflow:hidden; }
.bottom-band::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(to bottom,var(--orange),var(--or)); border-radius:99px 0 0 99px; }
.geo-label { font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:3px; color:rgba(245,243,238,.34); margin-bottom:7px; }
.geo-text { font-family:'Fraunces','Georgia',serif; font-size:1.5rem; font-weight:700; letter-spacing:-.02em; line-height:1.1; }
.geo-text span { color:var(--orange); }
.geo-sub { font-size:.84rem; color:rgba(245,243,238,.38); margin-top:5px; font-weight:300; }
.bottom-btns { display:flex; gap:12px; flex-shrink:0; flex-wrap:wrap; justify-content:flex-end; }

/* FOOTER */
.footer-wrap { position:relative; z-index:1; overflow:hidden; }
.footer-wrap::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 70% 80% at 50% 120%,rgba(46,196,199,.06) 0%,transparent 60%),radial-gradient(ellipse 40% 50% at 10% 50%,rgba(247,127,0,.04) 0%,transparent 55%); pointer-events:none; }
.footer-top-line { height:1px; background:linear-gradient(to right,transparent,rgba(245,243,238,.08) 20%,rgba(245,243,238,.08) 80%,transparent); }
footer { position:relative; z-index:1; max-width:1120px; margin:0 auto; padding:60px 40px 100px; width:100%; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:56px; margin-bottom:52px; }
.footer-logo { font-family:'Fraunces','Georgia',serif; font-size:1.55rem; font-weight:700; letter-spacing:-.01em; margin-bottom:16px; text-decoration:none; display:inline-block; color:var(--creme); }
.footer-logo .m { color:var(--orange); font-style:italic; }
.footer-logo .r { color:var(--turquoise); }
.footer-tagline { font-size:.88rem; line-height:1.8; color:rgba(245,243,238,.40); font-weight:300; max-width:270px; margin-bottom:24px; }
.footer-tags { display:flex; flex-wrap:wrap; gap:7px; }
.ftag { padding:5px 11px; border-radius:999px; font-size:.67rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; border:1px solid rgba(245,243,238,.10); color:rgba(245,243,238,.38); background:rgba(255,255,255,.03); transition:all .25s; }
.ftag:hover { color:rgba(245,243,238,.78); border-color:rgba(245,243,238,.20); }
.footer-nav-title { font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:3px; color:rgba(245,243,238,.26); margin-bottom:18px; }
.footer-nav-list { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-nav-list a { font-size:.9rem; color:rgba(245,243,238,.48); text-decoration:none; font-weight:400; transition:all .25s; display:inline-flex; align-items:center; gap:6px; }
.footer-nav-list a::before { content:""; display:inline-block; width:0; height:1px; background:var(--orange); transition:width .25s; flex-shrink:0; }
.footer-nav-list a:hover { color:var(--creme); }
.footer-nav-list a:hover::before { width:14px; }
.footer-nav-list a:focus-visible { outline:2px solid var(--orange); outline-offset:4px; border-radius:4px; }
.footer-wordmark-wrap { position:relative; height:0; overflow:visible; pointer-events:none; user-select:none; }
.footer-wordmark-top,.footer-wordmark-bottom { font-family:'Fraunces','Georgia',serif; font-size:clamp(3.8rem,9vw,8rem); font-weight:700; letter-spacing:-.04em; line-height:.92; color:rgba(245,243,238,.022); text-align:center; pointer-events:none; user-select:none; display:block; position:absolute; left:0; right:0; z-index:0; }
.footer-wordmark-top    { bottom:0; }
.footer-wordmark-bottom { top:-.70em; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:26px; border-top:1px solid rgba(245,243,238,.06); flex-wrap:wrap; position:relative; z-index:1; }
.footer-legal-group { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.footer-legal-group p,.footer-legal-group a { font-size:.74rem; color:rgba(245,243,238,.26); text-decoration:none; letter-spacing:.3px; transition:color .25s; }
.footer-legal-group a:hover { color:var(--orange); }
.footer-legal-sep { width:1px; height:11px; background:rgba(245,243,238,.14); flex-shrink:0; }
.footer-credit { font-size:.71rem; color:rgba(245,243,238,.20); text-align:right; line-height:1.6; letter-spacing:.3px; }
.footer-credit span { color:rgba(245,243,238,.36); }

/* ANIMATIONS */
@keyframes fadeUp   { to { opacity:1; transform:translateY(0); } }
@keyframes slideIn  { to { opacity:1; transform:translateX(0) scale(1); } }
@keyframes pulse    { 0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.8);} }
@keyframes scrollMove { 0%{left:-100%;}100%{left:100%;} }

@media (prefers-reduced-motion:reduce) {
  .hero-left > *,.hero-card { animation:none; opacity:1; transform:none; }
  .badge-dot { animation:none; }
  .scroll-line::after { animation:none; }
}

/* RESPONSIVE 980px */
@media (max-width:980px) {
  header { padding:0 16px; }
  nav { padding:14px 0; gap:10px; }
  nav ul { gap:6px 14px; }
  nav a { font-size:clamp(.58rem,1.8vw,.72rem); letter-spacing:1.5px; }
  .logo { font-size:1.2rem; }
  .hero { grid-template-columns:1fr; padding:0 22px; min-height:auto; }
  .hero-left { padding:160px 0 40px; }
  .hero-right { height:auto; padding:0 0 56px; }
  .hero-separator { display:none; }
  .hero-card { height:min(55vw,420px); }
  h1 { font-size:clamp(3rem,10vw,4.5rem); letter-spacing:-.02em; }
  h2 { font-size:clamp(2rem,7vw,3.2rem); }
  .section-intro,.section-head { grid-template-columns:1fr; gap:22px; margin-bottom:40px; }
  .access-grid { grid-template-columns:1fr; }
  .access-card { padding:34px 28px 32px; }
  .card-num { font-size:4rem; }
  .cards-grid { grid-template-columns:1fr; gap:14px; }
  .pillars { grid-template-columns:1fr; gap:12px; }
  .bottom-band { grid-template-columns:1fr; gap:22px; padding:26px 22px; }
  .bottom-btns { justify-content:flex-start; flex-direction:column; }
  .bottom-btns .btn { width:100%; justify-content:center; }
  .content-section { padding:60px 22px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px; }
  .footer-brand { grid-column:1/-1; }
  .footer-wordmark-top,.footer-wordmark-bottom { font-size:clamp(3.5rem,16vw,6.5rem); }
  footer { padding:44px 22px 80px; }
  .mentions-grid { grid-template-columns:1fr; }
  .pro-band { padding:36px 28px; }
  .section-acces,.section-univers { padding-left:22px; padding-right:22px; }
  .two-col { grid-template-columns:1fr; gap:32px; }
  .page-hero-inner { grid-template-columns:1fr !important; gap:32px; }
  .page-grid-hero { grid-template-columns:1fr; gap:32px; }
  .page-grid-2col { grid-template-columns:1fr; gap:32px; }

  /* Pages internes : images hero mobile */
  .standup-image,
  .association-image,
  .contact-image,
  .pro-image,
  .spectacle-image { min-height:260px !important; border-radius:18px; }

  /* Boutons pages internes */
  .page-hero-inner .btn { width:100%; justify-content:center; }
  .page-hero-inner div[style*="display:flex"] { flex-direction:column; }
}

/* RESPONSIVE 640px */
@media (max-width:640px) {
  .page-hero-inner div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; gap:24px !important; }
  header { padding:0 12px; }
  nav ul { gap:5px 10px; }
  nav a { font-size:clamp(.55rem,2.2vw,.68rem); letter-spacing:1px; }
  .logo { font-size:1.05rem; }
  .hero-left { padding-top:200px; }
  h1 { font-size:clamp(2.4rem,12vw,3.8rem); line-height:.92; }
  h2 { font-size:clamp(1.9rem,9vw,2.8rem); }
  .big-text { font-size:clamp(1.9rem,9vw,3rem); }
  .btns,.page-btns { flex-direction:column; }
  .btns .btn,.page-btns .btn { width:100%; justify-content:center; }
  .hero-stats { display:grid; grid-template-columns:1fr 1fr; gap:22px 20px; }
  .access-card { padding:26px 20px 24px; border-radius:20px; }
  .card-title-main { font-size:1.7rem; }
  .contact-form { padding:28px 20px; border-radius:20px; }
  .footer-grid { grid-template-columns:1fr; gap:26px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:14px; }
  .footer-credit { text-align:left; }
  .footer-wordmark-top,.footer-wordmark-bottom { font-size:clamp(2.8rem,17vw,4.5rem); }
  footer { padding:36px 16px 70px; }
  .content-section { padding:48px 16px; }
  .section-acces,.section-univers { padding-left:16px; padding-right:16px; }
  .pro-band { padding:28px 20px; border-radius:18px; }
}




/* ============================================================
   AGENDA auto-nettoyant
   ============================================================ */
.agenda-list { display:flex; flex-direction:column; border:1px solid rgba(245,243,238,.06); border-radius:16px; overflow:hidden; }
.agenda-list > * + * { border-top:1px solid rgba(245,243,238,.06); }
.agenda-month { padding:10px 26px 8px; background:rgba(255,255,255,.015); }
.agenda-month span { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:rgba(245,243,238,.25); }
.agenda-row { display:flex; align-items:center; gap:20px; padding:18px 26px; background:rgba(255,255,255,.02); }
.agenda-row.is-asso { background:rgba(247,127,0,.03); }
.agenda-date { flex-shrink:0; width:48px; text-align:center; }
.agenda-dow { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:rgba(245,243,238,.30); margin:0; }
.agenda-day { font-family:'Fraunces','Georgia',serif; font-size:1.6rem; font-weight:700; color:var(--orange); margin:0; line-height:1; }
.agenda-divider { width:1px; height:32px; background:rgba(245,243,238,.07); flex-shrink:0; }
.agenda-info { flex:1; min-width:0; }
.agenda-titre { font-size:.95rem; font-weight:600; color:rgba(245,243,238,.88); margin:0 0 2px; }
.agenda-lieu { font-size:.82rem; color:rgba(245,243,238,.38); font-weight:300; margin:0; }
.agenda-badge { margin-left:auto; font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--orange); background:rgba(247,127,0,.10); border:1px solid rgba(247,127,0,.20); padding:4px 10px; border-radius:6px; white-space:nowrap; flex-shrink:0; }
.agenda-empty { padding:30px 26px; text-align:center; font-size:.9rem; color:rgba(245,243,238,.45); font-weight:300; }
/* Ligne agenda cliquable + mise en avant CiaoMila (One Woman Show) */
a.agenda-row { text-decoration:none; color:inherit; transition:background .25s; }
a.agenda-row:hover { background:rgba(247,127,0,.06); }
.agenda-row.is-ciaomila { background:linear-gradient(90deg, rgba(46,196,199,.06), rgba(247,127,0,.06)); border-left:3px solid var(--orange); }
.agenda-row.is-ciaomila .agenda-titre { color:var(--creme); }
.agenda-row.is-ciaomila .agenda-day { color:var(--orange); }

/* AGENDA — flux CSV : période, rôle, heure, statuts */
.agenda-date.is-periode { width:auto; min-width:64px; }
.agenda-periode { font-family:'Fraunces','Georgia',serif; font-size:.95rem; font-weight:700; color:var(--turquoise); margin:0; line-height:1.2; white-space:nowrap; }
.agenda-heure { font-size:.82rem; font-weight:300; color:rgba(245,243,238,.40); }
.agenda-role { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--turquoise); margin:4px 0 0; }
.agenda-row.is-periode .agenda-role { color:rgba(245,243,238,.30); }
.agenda-row.is-annule { opacity:.5; }
.agenda-row.is-annule .agenda-titre { text-decoration:line-through; }
.badge-complet { color:var(--turquoise); background:rgba(46,196,199,.10); border-color:rgba(46,196,199,.22); }
.badge-annule { color:rgba(245,243,238,.45); background:rgba(245,243,238,.05); border-color:rgba(245,243,238,.12); }

/* (cartes unifiées sur le rendu .agenda-row — plus de style .agenda-carte) */
.agenda-badge.badge-ciaomila { color:#fff; background:var(--orange); border-color:var(--orange); }

/* ============================================================
   FORMULAIRE — labels + select (inerte tant que le <form> n'est pas pose)
   ============================================================ */
.form-group label { display:block; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:rgba(245,243,238,.42); margin-bottom:7px; }
.form-group label .req { color:var(--orange); }
.form-group select {
  width:100%; background:rgba(255,255,255,.05); color:var(--creme);
  border:1px solid rgba(245,243,238,.10); border-radius:13px; padding:15px 17px; padding-right:44px;
  font-size:.94rem; font-family:'Outfit','Arial Narrow',sans-serif; outline:none; cursor:pointer;
  transition:border-color .25s,box-shadow .25s; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F3EE' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:18px;
}
.form-group select:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(247,127,0,.10); }
.form-group select option { background:#0a2a2c; color:var(--creme); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:640px){ .form-row { grid-template-columns:1fr; } }

/* ── Agenda : réorganisation sur téléphone (portrait) ─────────────────────
   Sur écran étroit, la rangée date|info|badge écrasait la colonne du milieu
   (titres cassés mot à mot, badge flottant). On passe en lignes empilées :
   le badge descend sous l'info, qui récupère toute la largeur. */
@media (max-width:560px){
  .agenda-row{ flex-wrap:wrap; align-items:flex-start; column-gap:14px; row-gap:10px; padding:16px 18px; }
  .agenda-divider{ display:none; }
  .agenda-date{ width:auto; min-width:46px; text-align:left; padding-top:2px; }
  .agenda-info{ flex:1 1 60%; }
  /* le badge quitte la colonne de droite et passe sous le titre, aligné avec l'info */
  .agenda-badge{ order:3; margin-left:60px; align-self:flex-start; }
  /* dates « période » : période sur sa ligne, info pleine largeur, badge dessous
     (même organisation que les rangées à date fixe) */
  .agenda-date.is-periode{ flex:1 1 100%; min-width:0; }
  .agenda-row.is-periode .agenda-info{ flex:1 1 100%; }
  .agenda-row.is-periode .agenda-badge{ margin-left:0; }
}
