
:root{--deep:#102e29;--deep-2:#0a211e;--forest:#3d6650;--wine:#7c3833;--blue:#426478;--gold:#a87424;--paper:#f3e6c3;--paper-light:#fff8df;--ink:#302823;--muted:#6d6259;--line:#b79a6a;--shadow:0 18px 48px rgba(2,18,15,.24);--radius:18px;--container:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--deep-2);color:var(--ink);font-family:Georgia,'Times New Roman',serif;line-height:1.62}img{max-width:100%;height:auto}a{color:inherit}.container{width:min(calc(100% - 32px),var(--container));margin-inline:auto}.skip-link{position:fixed;left:12px;top:-80px;background:#fff;color:#111;padding:10px 14px;z-index:9999;border-radius:8px}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:sticky;top:0;z-index:100;background:rgba(9,31,28,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(228,197,131,.28);box-shadow:0 7px 22px rgba(0,0,0,.18)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:13px;color:white;text-decoration:none;min-width:250px}.brand img{width:72px;height:76px;object-fit:contain}.brand strong{display:block;font-size:1.08rem;letter-spacing:.03em}.brand small{display:block;color:#dfc98f;font-family:Arial,sans-serif;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.main-nav{display:flex;align-items:center;justify-content:flex-end;gap:3px;flex-wrap:wrap}.main-nav a{color:#f5ead0;text-decoration:none;padding:9px 10px;border-radius:999px;font-family:Arial,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.025em}.main-nav a:hover,.main-nav a:focus-visible,.main-nav a.active{background:#d6b66d;color:#182e29}.nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:10px;cursor:pointer}.nav-toggle span:not(.sr-only){display:block;width:24px;height:2px;background:white;margin:4px}
.hero{position:relative;min-height:680px;background-image:linear-gradient(90deg,rgba(2,18,16,.95) 0%,rgba(2,18,16,.66) 44%,rgba(2,18,16,.14) 75%),url('../images/affiche.jpg');background-size:cover;background-position:center;display:grid;align-items:center;color:white;overflow:hidden}.hero:after{content:'';position:absolute;inset:auto 0 0;height:130px;background:linear-gradient(transparent,var(--deep-2))}.hero-content{position:relative;z-index:2;padding-block:92px;max-width:640px}.eyebrow{margin:0 0 9px;font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:800;color:#a87424}.hero .eyebrow,.page-hero .eyebrow{color:#ead18f}.hero h1,.page-hero h1{font-size:clamp(2.8rem,7vw,5.9rem);line-height:.97;margin:.05em 0 .25em;text-wrap:balance}.hero-lead{font-size:clamp(1.08rem,2vw,1.35rem);max-width:560px;color:#f3ead6}.hero-facts{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}.hero-facts span{border:1px solid rgba(238,213,151,.46);background:rgba(7,40,35,.72);padding:8px 13px;border-radius:999px;font-family:Arial,sans-serif;font-weight:700;font-size:.88rem}.button-row{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:10px;text-decoration:none;font-family:Arial,sans-serif;font-weight:800;border:1px solid transparent;transition:.2s transform,.2s background,.2s color}.btn:hover{transform:translateY(-2px)}.btn-primary{background:#d9b75f;color:#172b27}.btn-primary:hover{background:#f2d887}.btn-secondary{border-color:#d9b75f;color:#f8efd8;background:rgba(6,35,31,.64)}.btn-secondary:hover{background:#d9b75f;color:#172b27}.btn-dark{background:var(--deep);color:white}.btn-dark:hover{background:#275248}.btn-outline{border-color:var(--wine);color:var(--wine);background:transparent}.btn-outline:hover{background:var(--wine);color:white}
.page-hero{background:radial-gradient(circle at 78% 25%,rgba(168,116,36,.32),transparent 30%),linear-gradient(125deg,#123d35,#081f1c);color:white;border-bottom:1px solid rgba(224,191,119,.28)}.page-hero__inner{padding:70px 0 58px}.page-hero h1{font-size:clamp(2.4rem,6vw,4.8rem);margin:0}.section{padding:78px 0}.section-light{background:linear-gradient(rgba(255,250,234,.94),rgba(242,226,187,.97)),url('../images/parchment.webp');background-size:auto,600px}.section-dark{background:linear-gradient(145deg,#0b2823,#173e36);color:white}.section-title{text-align:center;max-width:760px;margin:0 auto 38px}.section-title h2{font-size:clamp(2rem,4vw,3.3rem);margin:.1em 0}.section-title p{color:var(--muted);font-size:1.07rem}.section-dark .section-title p{color:#d7d2c4}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:rgba(255,249,230,.94);border:1px solid rgba(133,90,39,.28);border-radius:var(--radius);padding:25px;box-shadow:var(--shadow)}.card h3{margin:.2em 0 .4em;font-size:1.35rem;color:var(--wine)}.card p{margin:.35em 0;color:var(--muted)}.card .card-icon{font-size:2rem}.card a.more{font-family:Arial,sans-serif;font-weight:800;color:var(--forest);text-decoration-thickness:2px}.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}.poster-frame{background:#091d1a;padding:12px;border-radius:20px;box-shadow:0 25px 65px rgba(0,0,0,.35);border:1px solid rgba(220,188,115,.35)}.poster-frame img{display:block;border-radius:11px}.quick-list{display:grid;gap:14px}.quick-item{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:17px;border-radius:14px}.quick-item b{display:block;color:#ecd28d}.quick-item span{font-size:1.45rem}
.parchment-card{background:linear-gradient(rgba(255,249,228,.95),rgba(244,229,193,.97)),url('../images/parchment.webp');background-size:auto,650px;border:1px solid rgba(120,80,39,.38);border-radius:20px;box-shadow:var(--shadow)}.day-nav{display:flex;justify-content:center;gap:12px;margin-bottom:28px;flex-wrap:wrap}.day-block{padding:28px;margin-bottom:32px;scroll-margin-top:110px}.day-header{display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:2px solid rgba(125,55,51,.35);padding-bottom:17px;margin-bottom:24px}.day-header h2{font-size:clamp(1.9rem,4vw,3rem);margin:0;color:var(--wine)}.day-header>span{background:var(--wine);color:white;padding:10px 15px;border-radius:10px;font-family:Arial,sans-serif;font-weight:800;white-space:nowrap}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.schedule-category{min-width:0}.section-heading{display:flex;gap:12px;align-items:center;margin:0 0 12px}.section-heading h3{font-size:1.5rem;margin:0}.section-heading p{margin:0;color:var(--muted);font-style:italic;font-size:.88rem}.round-icon{width:28px;height:28px;border-radius:50%;display:inline-block;box-shadow:inset 0 0 0 7px rgba(255,255,255,.15)}.wine{background:var(--wine)}.forest{background:var(--forest)}.blue{background:var(--blue)}.gold{background:var(--gold)}.table-wrap{overflow-x:auto}.schedule-table,.exhibitor-table{border-collapse:collapse;width:100%;background:rgba(255,255,255,.25)}.schedule-table th,.schedule-table td,.exhibitor-table th,.exhibitor-table td{padding:11px 10px;border-bottom:1px solid rgba(125,99,63,.25);vertical-align:top;text-align:left}.schedule-table th,.exhibitor-table th{font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;color:var(--muted)}.schedule-table td:first-child{width:142px}.schedule-table strong{display:block;line-height:1.35}.schedule-table small{display:block;margin-top:4px;font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}.time-badge{display:inline-block;color:white;font-family:Arial,sans-serif;font-weight:800;font-size:.75rem;padding:6px 8px;border-radius:7px;line-height:1.15}.notice{margin-top:22px;padding:15px 17px;border-left:5px solid var(--gold);background:rgba(255,255,255,.42);border-radius:0 10px 10px 0}.download-panel{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px;margin-bottom:28px}.download-panel h2{margin:.1em 0}.download-panel p{margin:0;color:var(--muted)}
.search-panel{display:flex;gap:14px;align-items:center;margin-bottom:18px}.search-panel label{font-family:Arial,sans-serif;font-weight:800}.search-panel input{flex:1;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fffdf5;font-size:1rem}.exhibitor-table th:nth-child(1){width:27%}.exhibitor-table th:nth-child(3){width:110px}.exhibitor-table td:first-child{font-weight:700;color:var(--wine)}.stand-cell{min-width:92px;height:48px}.table-note{color:var(--muted);font-style:italic}.empty-result{display:none;text-align:center;padding:25px;color:var(--muted)}
.placeholder-map{text-align:center;padding:70px 24px;border:2px dashed rgba(125,55,51,.48);border-radius:18px;background:radial-gradient(circle at center,rgba(255,255,255,.55),rgba(255,255,255,.12))}.placeholder-map .compass{font-size:5rem;color:var(--wine)}.placeholder-map h2{font-size:2.4rem;margin:.2em 0}.status-pill{display:inline-flex;gap:7px;align-items:center;background:#ede0b9;color:#4a3b28;font-family:Arial,sans-serif;font-weight:800;padding:8px 12px;border-radius:999px}.status-pill:before{content:'';width:9px;height:9px;border-radius:50%;background:#ba7c20;box-shadow:0 0 0 5px rgba(186,124,32,.18)}
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.access-card{padding:28px}.access-card h2{color:var(--wine);margin-top:0}.access-card h3{margin-bottom:.25em}.access-card p{color:var(--muted)}.route-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.parking-list{display:grid;gap:13px}.parking-item{border-left:4px solid var(--forest);padding:13px 15px;background:rgba(255,255,255,.42)}.parking-item strong{display:block}.warning{border-left-color:var(--wine)}
.faq-list{display:grid;gap:12px;max-width:900px;margin:auto}.faq-list details{background:rgba(255,250,232,.94);border:1px solid rgba(130,91,47,.34);border-radius:12px;padding:0 18px;box-shadow:0 8px 22px rgba(35,21,9,.08)}.faq-list summary{cursor:pointer;font-weight:700;font-size:1.08rem;padding:17px 34px 17px 0;position:relative;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:0;font-family:Arial,sans-serif;font-size:1.4rem;color:var(--wine)}.faq-list details[open] summary:after{content:'−'}.faq-list details p{margin:0 0 18px;color:var(--muted)}
.partners{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.partner-card{background:white;border-radius:16px;padding:18px;display:grid;place-items:center;min-height:220px;box-shadow:var(--shadow)}.partner-card img{max-height:180px;object-fit:contain}.partner-card figcaption{font-family:Arial,sans-serif;font-weight:800;margin-top:8px;text-align:center}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px}.contact-card{padding:28px}.contact-form{display:grid;gap:14px}.contact-form label{font-family:Arial,sans-serif;font-weight:800}.contact-form input,.contact-form textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fffdf5;font:inherit}.contact-form textarea{min-height:170px;resize:vertical}.form-note{font-size:.85rem;color:var(--muted)}
.site-footer{background:#061b18;color:#eee3cb;border-top:1px solid rgba(224,191,119,.3);padding-top:45px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:28px}.footer-grid h2{font-size:1rem;color:#e5c978}.footer-grid a{color:#eee3cb}.footer-logo{float:left;width:76px;margin-right:12px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.13);padding:20px 0;margin-top:35px;font-family:Arial,sans-serif;font-size:.75rem;color:#bcb5a5}
@media(max-width:1050px){.main-nav{position:fixed;inset:88px 0 auto;background:#092521;padding:20px;display:none;box-shadow:0 20px 30px rgba(0,0,0,.28)}.main-nav.open{display:grid;grid-template-columns:repeat(3,1fr)}.main-nav a{text-align:center;padding:12px}.nav-toggle{display:block}.cards{grid-template-columns:repeat(2,1fr)}.partners{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.brand small{display:none}.brand{min-width:0}.brand img{width:58px;height:62px}.header-inner{min-height:74px}.main-nav{inset:74px 0 auto;grid-template-columns:1fr 1fr!important;max-height:calc(100vh - 74px);overflow:auto}.hero{min-height:630px;background-position:62% center}.hero-content{padding-block:72px}.section{padding:55px 0}.feature-grid,.schedule-grid,.access-grid,.contact-grid{grid-template-columns:1fr}.download-panel,.day-header{align-items:flex-start;flex-direction:column}.day-block{padding:18px}.cards,.partners{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.schedule-table thead,.exhibitor-table thead{display:none}.schedule-table,.schedule-table tbody,.schedule-table tr,.schedule-table td,.exhibitor-table,.exhibitor-table tbody,.exhibitor-table tr,.exhibitor-table td{display:block;width:100%}.schedule-table tr,.exhibitor-table tr{padding:12px 0;border-bottom:1px solid rgba(125,99,63,.25)}.schedule-table td,.exhibitor-table td{border:0;padding:5px 8px}.schedule-table td:before,.exhibitor-table td:before{content:attr(data-label);display:block;font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.07em;font-size:.62rem;color:var(--muted);margin-bottom:3px}.search-panel{align-items:stretch;flex-direction:column}.page-hero__inner{padding:48px 0 42px}}
@media print{.site-header,.site-footer,.day-nav,.download-panel,.btn,.search-panel{display:none!important}body{background:white}.section,.section-light{padding:0;background:white}.parchment-card{box-shadow:none;break-inside:avoid}.page-hero{background:white;color:black;border:0}.page-hero .eyebrow{color:black}.page-hero__inner{padding:0}.page-hero h1{font-size:28pt}.day-block{break-before:page;margin:0;border:0}.schedule-grid{gap:14px}.schedule-table th,.schedule-table td{padding:6px}}


/* Carte d'accès */
.access-map-card{margin-top:28px;padding:26px;overflow:hidden}.access-map-intro{max-width:780px;margin-bottom:18px}.access-map-intro h2{margin:.1em 0;color:var(--wine);font-size:clamp(1.8rem,3vw,2.6rem)}.access-map-intro p{color:var(--muted)}.access-map{height:620px;border:1px solid rgba(86,61,37,.42);border-radius:14px;overflow:hidden;background:#dbe2cf;box-shadow:inset 0 0 0 4px rgba(255,249,228,.55)}.map-error{padding:32px}.map-legend{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:17px;font-family:Arial,sans-serif;font-size:.82rem;font-weight:700;color:var(--muted)}.map-legend span{display:inline-flex;align-items:center;gap:8px}.map-legend i{display:inline-block;width:34px;border-top:5px solid var(--route);border-radius:99px}.map-legend i.dashed{border-top-style:dashed}.festival-map-icon{background:none!important;border:0!important}.festival-map-icon span{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:3px solid #fff;color:#fff;font-family:Arial,sans-serif;font-weight:900;font-size:.82rem;box-shadow:0 4px 13px rgba(0,0,0,.38)}.festival-map-icon .venue-pin{background:var(--wine);font-size:1.2rem}.festival-map-icon .parking-pin.p1{background:var(--gold)}.festival-map-icon .parking-pin.p2{background:var(--blue)}.festival-map-icon .parking-pin.p3{background:var(--forest)}.festival-map-icon .access-pin{background:#6b4c84;font-size:1.1rem}.parking-item p{margin:.35em 0 .55em;color:var(--muted)}.parking-route-link{font-family:Arial,sans-serif;font-weight:800;color:var(--wine);font-size:.85rem}

/* Formulaire bénévoles */
.volunteer-layout{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.35fr);gap:24px;align-items:start}.volunteer-intro{padding:28px;position:sticky;top:112px}.volunteer-intro h2{margin:.1em 0;color:var(--wine);font-size:2rem}.volunteer-intro p{color:var(--muted)}.volunteer-form{padding:28px}.volunteer-form fieldset{border:0;border-top:1px solid rgba(125,99,63,.28);padding:24px 0 8px;margin:0}.volunteer-form fieldset:first-of-type{border-top:0;padding-top:0}.volunteer-form legend{padding:0 10px 0 0;color:var(--wine);font-size:1.35rem;font-weight:700}.form-grid{display:grid;gap:16px}.form-grid.two-cols{grid-template-columns:1fr 1fr}.form-field{display:grid;gap:7px;margin:15px 0}.form-field>span,.form-label{font-family:Arial,sans-serif;font-size:.84rem;font-weight:800;color:var(--ink);margin:12px 0 8px}.form-field input,.form-field textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:9px;background:#fffdf5;color:var(--ink);font:inherit}.form-field textarea{resize:vertical}.form-field input:focus,.form-field textarea:focus{outline:3px solid rgba(168,116,36,.22);border-color:var(--gold)}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin:10px 0}.check-grid label,.consent-field{display:flex;gap:9px;align-items:flex-start;background:rgba(255,255,255,.34);padding:9px 11px;border-radius:8px}.check-grid input,.consent-field input{margin-top:.35em;accent-color:var(--forest)}.consent-field{margin-top:18px;border-left:4px solid var(--gold)}.form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}.form-actions p{margin:0;color:var(--muted);font-size:.82rem}.form-status{padding:13px 15px;border-left:5px solid var(--wine);background:rgba(124,56,51,.1);margin-bottom:20px;border-radius:0 8px 8px 0}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.leaflet-popup-content{font-family:Arial,sans-serif;line-height:1.45}.leaflet-container a{color:#32594f}

@media(max-width:980px){.volunteer-layout{grid-template-columns:1fr}.volunteer-intro{position:static}.access-map{height:520px}}
@media(max-width:760px){.form-grid.two-cols,.check-grid{grid-template-columns:1fr}.volunteer-form,.volunteer-intro,.access-map-card{padding:18px}.access-map{height:470px}.map-legend{display:grid;grid-template-columns:1fr 1fr}}
