/*
Theme Name: Focus Gabès
Author: Focus Gabès
Description: Thème officiel Focus Gabès v3
Version: 3.0
*/

/* ============================================
   VARIABLES
============================================ */
:root {
  --night:     #0D1B2A;
  --ocean:     #1B4F72;
  --ocean-md:  #2874A6;
  --terra:     #C0392B;
  --terra-lt:  #E74C3C;
  --gold:      #D4AC0D;
  --cream:     #F5F0E8;
  --cream-dk:  #E8DDD0;
  --linen:     #FAF8F4;
  --white:     #FFFFFF;
  --ink:       #0D1B2A;
  --ink-mid:   #3D5166;
  --border:    rgba(27,79,114,0.12);

  --ff-head:  'Cormorant Garamond', Georgia, serif;
  --ff-body:  'Plus Jakarta Sans', system-ui, sans-serif;
  --ff-mono:  'JetBrains Mono', monospace;

  --r-sm:  8px;
  --r-md:  14px;
  --r-lg:  20px;
  --r-xl:  32px;
  --r-pill:9999px;

  --glass-bg:  rgba(255,255,255,0.10);
  --glass-lt:  rgba(255,255,255,0.18);
  --glass-bdr: rgba(255,255,255,0.22);
  --blur:      blur(16px);

  --max-w: 1200px;
  --shadow: 0 8px 32px rgba(13,27,42,0.12);
  --shadow-lg: 0 20px 60px rgba(13,27,42,0.18);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ff-body);font-size:16px;line-height:1.7;color:var(--ink);background:var(--linen)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

.container{max-width:var(--max-w);margin:0 auto;padding:0 28px}

/* ============================================
   TYPO
============================================ */
h1,h2,h3,h4{font-family:var(--ff-head);font-weight:700;line-height:1.15;letter-spacing:-0.01em}
h1{font-size:clamp(2.4rem,5.5vw,4.4rem)}
h2{font-size:clamp(1.7rem,3vw,2.6rem)}
h3{font-size:1.25rem}

.label{font-family:var(--ff-mono);font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--terra);display:block;margin-bottom:.8rem}
.divider{width:40px;height:3px;background:var(--terra);border-radius:var(--r-pill);margin:14px 0 22px}

/* ============================================
   BOUTONS
============================================ */
.btn{display:inline-flex;align-items:center;gap:6px;padding:11px 26px;font-family:var(--ff-body);font-size:.87rem;font-weight:600;letter-spacing:.03em;border-radius:var(--r-pill);border:2px solid transparent;cursor:pointer;transition:all .22s ease}
.btn-primary{background:var(--ocean);color:var(--white);border-color:var(--ocean)}
.btn-primary:hover{background:var(--ocean-md);border-color:var(--ocean-md)}
.btn-terra{background:var(--terra);color:var(--white);border-color:var(--terra)}
.btn-terra:hover{background:var(--terra-lt);border-color:var(--terra-lt)}
.btn-outline{background:transparent;color:var(--ocean);border-color:var(--ocean)}
.btn-outline:hover{background:var(--ocean);color:var(--white)}
.btn-glass{background:var(--glass-bg);color:var(--white);border:1.5px solid var(--glass-bdr);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}
.btn-glass:hover{background:var(--glass-lt)}

/* ============================================
   NAVIGATION — pill flottante transparente
============================================ */
.site-header{
  position:fixed;top:20px;left:50%;transform:translateX(-50%);
  z-index:200;
  width:calc(100% - 48px);max-width:1100px;
}
.nav-pill{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 20px;
  background:rgba(13,27,42,0.55);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:var(--r-pill);
  transition:background .3s;
}
.nav-pill.scrolled{background:rgba(13,27,42,0.88)}

.site-logo{font-family:var(--ff-head);font-size:1.3rem;font-weight:700;color:var(--white);letter-spacing:-.01em}
.site-logo span{color:#E8A87C}

#main-menu{display:flex;list-style:none;gap:2px;align-items:center}
#main-menu li a{display:block;padding:7px 13px;font-size:.84rem;font-weight:500;color:rgba(255,255,255,.75);border-radius:var(--r-pill);transition:all .18s}
#main-menu li a:hover,#main-menu li.current-menu-item>a{color:var(--white);background:rgba(255,255,255,.12)}

/* Dropdown */
#main-menu li{position:relative}
#main-menu li ul{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:rgba(13,27,42,.92);backdrop-filter:var(--blur);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);min-width:190px;list-style:none;padding:8px;box-shadow:var(--shadow-lg)}
#main-menu li:hover>ul{display:block}
#main-menu li ul li a{padding:8px 14px;font-size:.83rem;border-radius:var(--r-sm);color:rgba(255,255,255,.75)}

.nav-newsletter-btn{margin-left:8px;padding:8px 18px;font-size:.83rem;font-weight:700;background:var(--terra);color:var(--white);border:none;border-radius:var(--r-pill);cursor:pointer;transition:background .2s;font-family:var(--ff-body);white-space:nowrap}
.nav-newsletter-btn:hover{background:var(--terra-lt)}

.hamburger{display:none;background:none;border:none;cursor:pointer;padding:4px}
.hamburger span{display:block;width:22px;height:2px;background:var(--white);margin:5px 0;border-radius:2px;transition:all .3s}

/* ============================================
   HERO — vidéo YouTube plein écran
============================================ */
.hero{position:relative;width:100%;height:100vh;min-height:600px;overflow:hidden;display:flex;align-items:center;justify-content:center}

/* Iframe YouTube en fond */
.hero-video-wrap{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero-video-wrap iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:177.78vh;min-width:100%;height:56.25vw;min-height:100%}

/* Overlay sombre pour lisibilité */
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,rgba(13,27,42,.72) 0%,rgba(13,27,42,.45) 60%,rgba(13,27,42,.6) 100%)}

.hero-content{position:relative;z-index:2;text-align:center;color:var(--white);max-width:780px;padding:20px}
.hero-eyebrow{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#E8A87C;margin-bottom:1.2rem}
.hero h1{color:var(--white);margin-bottom:1.2rem;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.hero-lead{font-size:1.08rem;color:rgba(255,255,255,.8);line-height:1.8;margin-bottom:2rem;max-width:580px;margin-left:auto;margin-right:auto}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* Scroll indicator */
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,.5);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;animation:bounce 2s infinite}
.hero-scroll::before{content:'';width:1px;height:40px;background:rgba(255,255,255,.3)}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}

/* ============================================
   SECTIONS COMMUNES
============================================ */
.section{padding:88px 0}
.section-white{background:var(--white)}
.section-cream{background:var(--cream)}
.section-dark{background:var(--night);color:var(--white)}
.section-ocean{background:var(--ocean);color:var(--white)}

.section-header{margin-bottom:52px}
.section-header p{font-size:1rem;color:var(--ink-mid);max-width:560px;margin-top:12px;line-height:1.75}
.section-dark .section-header p,.section-ocean .section-header p{color:rgba(255,255,255,.68)}
.section-dark .label,.section-ocean .label{color:#E8A87C}

/* ============================================
   CARDS
============================================ */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}

.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}

.card-image{aspect-ratio:16/9;overflow:hidden;background:var(--cream-dk)}
.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-image img{transform:scale(1.05)}
.card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;background:var(--cream)}

.card-body{padding:24px}
.card-tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);margin-bottom:8px}
.card-body h3{font-size:1.1rem;margin-bottom:8px}
.card-body p{font-size:.9rem;color:var(--ink-mid);line-height:1.65}
.read-more{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:600;color:var(--ocean);margin-top:14px;transition:gap .18s}
.read-more:hover{gap:10px}

/* Glass card (sections sombres) */
.glass-card{background:var(--glass-bg);border:1px solid var(--glass-bdr);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-radius:var(--r-lg);padding:36px;transition:background .22s}
.glass-card:hover{background:var(--glass-lt)}
.glass-card h3{color:var(--white);font-size:1.4rem;margin-bottom:10px}
.glass-card p{color:rgba(255,255,255,.65);font-size:.91rem;margin-bottom:22px;line-height:1.7}

/* ============================================
   FILTRES
============================================ */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px}
.filter-btn{padding:8px 20px;font-size:.83rem;font-weight:500;border:1.5px solid var(--border);border-radius:var(--r-pill);background:var(--white);cursor:pointer;transition:all .18s;color:var(--ink-mid)}
.filter-btn:hover,.filter-btn.active{background:var(--ocean);color:var(--white);border-color:var(--ocean)}

/* ============================================
   PAGE HERO (pages intérieures)
============================================ */
.page-hero{background:linear-gradient(135deg,var(--night) 0%,var(--ocean) 100%);padding:120px 0 72px;color:var(--white);position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(192,57,43,.16) 0%,transparent 70%);top:-120px;right:-80px;pointer-events:none}
.page-hero .label{color:#E8A87C}
.page-hero h1{color:var(--white);font-size:clamp(2rem,4vw,3rem)}
.page-hero p{color:rgba(255,255,255,.72);margin-top:12px;max-width:540px;font-size:1rem}

/* ============================================
   FESTIVALS
============================================ */
.festival-card{background:var(--white);border-radius:var(--r-xl);overflow:hidden;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);margin-bottom:32px;box-shadow:var(--shadow)}
.festival-card:nth-child(even){direction:rtl}
.festival-card:nth-child(even)>*{direction:ltr}
.festival-cover{aspect-ratio:4/3;background:var(--cream);overflow:hidden;position:relative}
.festival-cover img{width:100%;height:100%;object-fit:cover}
.festival-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--ff-head);font-size:1rem;color:var(--ink-mid);background:var(--cream-dk);padding:24px;text-align:center}
.festival-info{padding:48px 44px;display:flex;flex-direction:column;justify-content:center}
.festival-name{font-size:2rem;margin-bottom:12px}
.festival-desc{color:var(--ink-mid);margin-bottom:24px;line-height:1.75}
.editions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.edition-badge{padding:4px 14px;border:1.5px solid var(--border);border-radius:var(--r-pill);font-size:.79rem;font-weight:500;color:var(--ink-mid)}

/* ============================================
   ÉQUIPE
============================================ */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.team-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:transform .24s,box-shadow .24s}
.team-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.team-photo{aspect-ratio:1/1;background:var(--cream);overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:var(--ff-head);font-size:2.8rem;color:var(--cream-dk)}
.team-photo img{width:100%;height:100%;object-fit:cover}
.team-body{padding:20px}
.team-name{font-size:1.05rem;margin-bottom:4px}
.team-role{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--terra);margin-bottom:10px}
.team-bio{font-size:.86rem;color:var(--ink-mid);line-height:1.65}

/* ============================================
   RAPPORTS PDF
============================================ */
.rapport-year{margin-bottom:48px}
.rapport-year-title{font-family:var(--ff-head);font-size:1.6rem;color:var(--ocean);margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--cream-dk);display:flex;align-items:center;gap:14px}
.rapport-year-title small{font-family:var(--ff-mono);font-size:.7rem;color:var(--terra);letter-spacing:.1em;text-transform:uppercase;font-weight:400}
.docs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.doc-item{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-lg);transition:border-color .18s,transform .18s;text-decoration:none;color:inherit}
.doc-item:hover{border-color:var(--ocean);transform:translateX(4px)}
.doc-icon{width:44px;height:44px;background:var(--cream);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.doc-info{flex:1}
.doc-info strong{display:block;font-size:.9rem}
.doc-info span{font-size:.78rem;color:var(--ink-mid)}
.doc-dl{font-size:.8rem;font-weight:700;color:var(--ocean);white-space:nowrap}

/* ============================================
   CONTACT
============================================ */
.contact-wrap{display:grid;grid-template-columns:1fr 1.5fr;gap:64px;align-items:start}
.contact-details{list-style:none}
.contact-details li{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;font-size:.92rem}
.contact-details li strong{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ocean);display:block;margin-bottom:2px}
.contact-icon{width:38px;height:38px;background:var(--cream);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}
.social-links{display:flex;gap:10px;margin-top:24px}
.social-link{width:38px;height:38px;border:1.5px solid var(--border);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:.88rem;color:var(--ink-mid);transition:all .18s}
.social-link:hover{background:var(--ocean);color:var(--white);border-color:var(--ocean)}

.cf .form-group{margin-bottom:16px}
.cf label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-mid);margin-bottom:6px;letter-spacing:.02em}
.cf input,.cf textarea,.cf select{width:100%;padding:11px 14px;border:1.5px solid var(--cream-dk);border-radius:var(--r-md);font-family:var(--ff-body);font-size:.92rem;background:var(--white);color:var(--ink);transition:border-color .18s}
.cf input:focus,.cf textarea:focus{outline:none;border-color:var(--ocean)}
.cf textarea{resize:vertical;min-height:130px}

/* ============================================
   POPUP NEWSLETTER
============================================ */
.nl-overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(10,18,28,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center}
.nl-overlay.active{display:flex}
.nl-box{position:relative;width:90%;max-width:500px;background:rgba(13,27,42,.88);border:1px solid var(--glass-bdr);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-radius:var(--r-xl);padding:48px 44px;color:var(--white);box-shadow:0 40px 100px rgba(0,0,0,.5);animation:popIn .35s cubic-bezier(.34,1.56,.64,1) both}
@keyframes popIn{from{opacity:0;transform:translateY(28px) scale(.95)}to{opacity:1;transform:none}}
.nl-close{position:absolute;top:16px;right:20px;background:none;border:none;color:rgba(255,255,255,.4);font-size:1.5rem;cursor:pointer;line-height:1;transition:color .18s}
.nl-close:hover{color:var(--white)}
.nl-box .label{color:#E8A87C}
.nl-box h2{font-family:var(--ff-head);font-size:2rem;color:var(--white);margin-bottom:10px}
.nl-box p{font-size:.9rem;color:rgba(255,255,255,.62);margin-bottom:26px;line-height:1.65}
.nl-form{display:flex;flex-direction:column;gap:10px}
.nl-form input{width:100%;padding:12px 16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);color:var(--white);font-family:var(--ff-body);font-size:.91rem;transition:border-color .2s,background .2s}
.nl-form input::placeholder{color:rgba(255,255,255,.33)}
.nl-form input:focus{outline:none;border-color:#E8A87C;background:rgba(255,255,255,.13)}
.nl-form button{padding:13px;background:var(--terra);color:var(--white);border:none;border-radius:var(--r-md);font-family:var(--ff-body);font-size:.92rem;font-weight:700;cursor:pointer;transition:background .2s}
.nl-form button:hover{background:var(--terra-lt)}
.nl-consent{font-size:.72rem;color:rgba(255,255,255,.32);margin-top:10px;line-height:1.5}
.nl-success{display:none;text-align:center;padding:16px 0}
.nl-success .check{font-size:2.4rem;margin-bottom:12px}

/* ============================================
   VALEURS
============================================ */
.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2px}
.value-item{padding:40px 32px;background:var(--white)}
.value-item:nth-child(even){background:var(--linen)}
.value-icon{width:48px;height:48px;background:var(--cream);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:16px}
.value-item h3{font-size:1.05rem;margin-bottom:8px}
.value-item p{font-size:.88rem;color:var(--ink-mid)}

/* ============================================
   PARTENAIRES
============================================ */
.partners-wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center}
.partner-badge{padding:10px 22px;border:1.5px solid var(--border);border-radius:var(--r-pill);font-size:.84rem;font-weight:500;color:var(--ink-mid);background:var(--white);transition:border-color .2s}
.partner-badge:hover{border-color:var(--ocean);color:var(--ocean)}

/* ============================================
   DOCS À TÉLÉCHARGER (À propos)
============================================ */

/* ============================================
   FOOTER
============================================ */
.site-footer{background:var(--night);color:rgba(255,255,255,.6);padding:64px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
.footer-logo{font-family:var(--ff-head);font-size:1.3rem;font-weight:700;color:var(--white);display:block;margin-bottom:12px}
.footer-logo span{color:#E8A87C}
.footer-brand p{font-size:.88rem;line-height:1.75}
.footer-col h4{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--white);margin-bottom:16px}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:10px}
.footer-col ul li a{font-size:.87rem;transition:color .18s}
.footer-col ul li a:hover{color:#E8A87C}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding-top:24px;display:flex;justify-content:space-between;align-items:center;font-size:.81rem}
.footer-socials{display:flex;gap:14px}
.footer-socials a{font-size:.87rem;transition:color .18s}
.footer-socials a:hover{color:#E8A87C}

/* ============================================
   UTILITAIRES
============================================ */
.tc{text-align:center}
.mt2{margin-top:16px}.mt3{margin-top:24px}.mt4{margin-top:36px}
.mb2{margin-bottom:16px}.mb3{margin-bottom:24px}

/* ============================================
   ENTRY CONTENT (articles/pages simples)
============================================ */
.entry-content h2{margin:2rem 0 1rem}
.entry-content p{margin-bottom:1.2rem;color:var(--ink-mid)}
.entry-content ul{padding-left:1.5rem;margin-bottom:1.2rem}
.entry-content ul li{margin-bottom:.5rem;color:var(--ink-mid)}

/* ============================================
   RESPONSIVE
============================================ */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr}
  .festival-card{grid-template-columns:1fr}
  .festival-card:nth-child(even){direction:ltr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contact-wrap{grid-template-columns:1fr}
}
@media(max-width:700px){
  .site-header{top:12px;width:calc(100% - 24px)}
  #main-menu{display:none;flex-direction:column;position:absolute;top:calc(100% + 10px);left:0;right:0;background:rgba(13,27,42,.96);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:16px;list-style:none}
  #main-menu.open{display:flex}
  .hamburger{display:block}
  .nav-newsletter-btn{display:none}
  .section{padding:60px 0}
  .footer-grid{grid-template-columns:1fr}
  .festival-info{padding:28px 24px}
  .nl-box{padding:36px 24px}
}

/* ============================================
   FIX DROPDOWN — espace de survol continu
============================================ */
#main-menu > li > ul {
  display: none;
  padding-top: 8px;
  margin-top: -8px; /* pont invisible entre item et sous-menu */
}
#main-menu > li:hover > ul {
  display: block;
}

/* ============================================
   DROPDOWN FIX — pont invisible + délai JS
============================================ */
#main-menu > li { position: relative; }
#main-menu > li > ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding-top: 12px; /* pont invisible */
  margin-top: 0;
  z-index: 300;
}
#main-menu > li > ul > li > a {
  white-space: nowrap;
}

/* ============================================
   RESPONSIVE MOBILE COMPLET
============================================ */
@media (max-width: 768px) {
  /* Nav mobile */
  .site-header { top: 10px; width: calc(100% - 20px); }
  .nav-pill { padding: 8px 14px; }
  .site-logo { font-size: 1.1rem; }
  #main-menu {
    display: none !important;
    flex-direction: column;
    position: fixed;
    top: 70px; left: 10px; right: 10px;
    background: rgba(13,27,42,0.98);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 16px;
    padding: 20px;
    list-style: none;
    gap: 4px;
    z-index: 500;
    max-height: calc(100vh - 90px);
    overflow-y: auto;
  }
  #main-menu.open { display: flex !important; }
  #main-menu li a { padding: 10px 14px; font-size: .92rem; border-radius: 8px; }
  #main-menu li ul {
    position: static !important;
    transform: none !important;
    display: block !important;
    background: rgba(255,255,255,0.06);
    border-radius: 8px;
    padding: 6px;
    margin-top: 4px;
    margin-left: 12px;
  }
  .nav-newsletter-btn { display: none; }
  .hamburger { display: block; }

  /* Hero mobile */
  .hero { height: 100svh; min-height: 500px; }
  .hero-content { padding: 16px; }
  .hero h1 { font-size: clamp(1.8rem, 7vw, 2.8rem); }
  .hero-lead { font-size: .92rem; }
  .hero-actions { flex-direction: column; align-items: center; }
  .hero-actions .btn { width: 100%; max-width: 280px; text-align: center; }

  /* Sections mobile */
  .section { padding: 48px 0; }
  .container { padding: 0 16px; }

  /* Grilles mobile */
  .cards-grid { grid-template-columns: 1fr; }
  .team-grid  { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .values-grid { grid-template-columns: 1fr 1fr; }
  .docs-grid { grid-template-columns: 1fr; }
  .partners-wrap { gap: 10px; }
  .partner-badge { font-size: .78rem; padding: 8px 14px; }

  /* Festival mobile */
  .festival-card { grid-template-columns: 1fr; direction: ltr !important; }
  .festival-info { padding: 24px 20px; }
  .festival-name { font-size: 1.5rem; }

  /* Contact mobile */
  .contact-wrap { grid-template-columns: 1fr; gap: 32px; }

  /* Footer mobile */
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }

  /* Rapport mobile */
  .rapport-year-title { font-size: 1.2rem; flex-wrap: wrap; gap: 8px; }

  /* Sections 2-colonnes → 1 sur mobile */
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:1fr 1fr"] {
    display: block !important;
  }
  [style*="grid-template-columns: 1fr 1fr"] > *,
  [style*="grid-template-columns:1fr 1fr"] > * {
    margin-bottom: 24px;
  }
}

@media (max-width: 480px) {
  .team-grid { grid-template-columns: 1fr; }
  .values-grid { grid-template-columns: 1fr; }
  .stat-card { padding: 20px 16px; }
  .nl-box { padding: 28px 18px; }
  .hero h1 { font-size: 1.8rem; }
}

/* Fix article "Hello World" masqué */
.site main, .site-content, article.hentry { display: block; }

/* Fix boutons tactiles mobile */
@media (hover: none) {
  .btn:active { opacity: .85; transform: scale(.98); }
}

/* Scroll smooth sur iOS */
html { -webkit-overflow-scrolling: touch; }

/* Fix vidéo mobile */
@media (max-width: 768px) {
  .hero-video-wrap { opacity: .7; }
}

/* ============================================================
   CONTACT FORM 7 — Intégration design Focus Gabès
============================================================ */

/* Reset CF7 */
.wpcf7 { width: 100%; }
.wpcf7 br { display: none; }
.wpcf7 .wpcf7-form { display: flex; flex-direction: column; gap: 0; }

/* Labels */
.wpcf7 label,
.wpcf7 .wpcf7-form label {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ink-dark);
  margin-bottom: 6px;
  margin-top: 18px;
}

/* Inputs, textarea, select */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  background: var(--linen);
  font-family: var(--ff-body);
  font-size: .92rem;
  color: var(--ink-dark);
  transition: border-color .2s, box-shadow .2s;
  outline: none;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: var(--ocean);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(26,111,163,.1);
}

.wpcf7 textarea {
  resize: vertical;
  min-height: 130px;
}

.wpcf7 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 fill='%23666' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}

/* Bouton submit */
.wpcf7 input[type="submit"] {
  width: 100%;
  margin-top: 22px;
  padding: 14px 28px;
  background: var(--ocean);
  color: #fff;
  border: none;
  border-radius: var(--r-pill);
  font-family: var(--ff-body);
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .03em;
  cursor: pointer;
  transition: background .2s, transform .15s;
}

.wpcf7 input[type="submit"]:hover {
  background: var(--night);
  transform: translateY(-1px);
}

.wpcf7 input[type="submit"]:active {
  transform: scale(.98);
}

/* Messages de validation */
.wpcf7 .wpcf7-not-valid-tip {
  font-size: .78rem;
  color: #c0392b;
  margin-top: 4px;
  display: block;
}

.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid {
  border-color: #c0392b;
  background: #fdf2f2;
}

/* Message de succès */
.wpcf7 .wpcf7-response-output {
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: var(--r-md);
  font-size: .88rem;
  border: none !important;
}

.wpcf7 .wpcf7-mail-sent-ok {
  background: #eafaf1;
  color: #1e8449;
  border-left: 3px solid #27ae60 !important;
}

.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-spam-blocked {
  background: #fdf2f2;
  color: #c0392b;
  border-left: 3px solid #e74c3c !important;
}

/* Spinner */
.wpcf7 .wpcf7-spinner {
  margin-left: 10px;
  vertical-align: middle;
}

/* Checkbox / Radio */
.wpcf7 .wpcf7-checkbox label,
.wpcf7 .wpcf7-radio label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .88rem;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  margin-top: 8px;
  cursor: pointer;
}

.wpcf7 .wpcf7-checkbox input[type="checkbox"],
.wpcf7 .wpcf7-radio input[type="radio"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--ocean);
}

/* Mobile */
@media (max-width: 600px) {
  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 textarea,
  .wpcf7 select {
    font-size: 1rem; /* évite le zoom iOS */
  }
}
