@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Source+Sans+3:wght@300;400;600&display=swap');
@import url('https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/tabler-icons.min.css');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{cursor:pointer;font-family:inherit;border:none;}

:root{
  --bordeaux:#7B1D2E;
  --bordeaux-h:#9E2438;
  --bordeaux-pale:#F5EAEC;
  --marine:#1B2E4B;
  --marine-h:#243D63;
  --sand:#F7F5F0;
  --white:#FFFFFF;
  --ink:#1a1a18;
  --ink-m:#5a5857;
  --gold:#C8A96E;
  --border-g:rgba(123,29,46,0.15);
  --border-l:rgba(0,0,0,0.08);
  --fd:'Playfair Display',Georgia,serif;
  --fb:'Source Sans 3',system-ui,sans-serif;
}

html{scroll-behavior:smooth;}
body{background:var(--sand);color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}

/* NAV */
.site-nav{display:flex;align-items:center;justify-content:space-between;padding:.85rem 2.5rem;background:var(--marine);border-bottom:3px solid var(--bordeaux);position:sticky;top:0;z-index:200;}
.logo-wrap{display:flex;align-items:center;gap:12px;}
.logo-v{width:40px;height:40px;background:var(--bordeaux);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:20px;color:#fff;font-weight:700;flex-shrink:0;}
.logo-txt{color:#fff;font-size:11px;letter-spacing:.14em;text-transform:uppercase;line-height:1.35;font-weight:600;}
.logo-sub{color:rgba(255,255,255,.35);font-size:9px;letter-spacing:.18em;}
.nav-links{display:flex;gap:1.75rem;align-items:center;}
.nav-links a{color:rgba(255,255,255,.6);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;transition:color .15s;white-space:nowrap;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-cta{background:var(--bordeaux);color:#fff;padding:9px 20px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:opacity .15s;white-space:nowrap;display:inline-block;}
.nav-cta:hover{opacity:.85;}
.nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;}
.nav-burger span{display:block;width:22px;height:1.5px;background:#fff;}

/* BOUTONS */
.btn-bord{display:inline-block;background:var(--bordeaux);color:#fff;padding:11px 26px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:opacity .15s;}
.btn-bord:hover{opacity:.85;}
.btn-ghost{display:inline-block;background:transparent;color:#fff;padding:11px 26px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(255,255,255,.28);transition:border-color .15s,color .15s;}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}
.btn-ghost-dark{display:inline-block;background:transparent;color:var(--marine);padding:10px 22px;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(0,0,0,.2);transition:border-color .15s;}
.btn-ghost-dark:hover{border-color:var(--bordeaux);color:var(--bordeaux);}
.btn-dark{display:inline-block;background:var(--marine);color:#fff;padding:10px 22px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0;transition:opacity .15s;}
.btn-dark:hover{opacity:.8;}

/* LABELS */
.eyebrow{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:.75rem;}
.section-label{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--bordeaux);font-weight:600;margin-bottom:.4rem;}
.section-title{font-family:var(--fd);font-size:28px;font-weight:400;margin-bottom:.4rem;color:var(--marine);line-height:1.2;}
.section-sub{font-size:13px;color:var(--ink-m);margin-bottom:2rem;}
.badge{display:inline-block;font-size:9px;letter-spacing:.1em;padding:3px 9px;background:var(--bordeaux-pale);color:var(--bordeaux);text-transform:uppercase;font-weight:600;}

/* SECTIONS */
.section{padding:3rem 2.5rem;}
.section--white{background:#fff;padding:3rem 2.5rem;}
.section--sand{background:var(--sand);padding:3rem 2.5rem;}
.section--dark{background:var(--marine);color:#fff;padding:3rem 2.5rem;}

/* STATS */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(0,0,0,.12);}
.stat-box{background:var(--bordeaux);color:#fff;padding:2.5rem 2rem;text-align:center;}
.stat-num{font-family:var(--fd);font-size:42px;color:#F0E4C8;font-weight:400;}
.stat-lbl{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-top:8px;}

/* HISTORY */
.history-strip{background:var(--sand);border-top:.5px solid var(--bordeaux-pale);border-bottom:.5px solid var(--bordeaux-pale);padding:2.5rem;display:flex;gap:2.5rem;align-items:center;}
.history-year{font-family:var(--fd);font-size:58px;color:var(--bordeaux-pale);font-weight:400;flex-shrink:0;line-height:1;}
.history-text{font-size:14px;color:var(--ink-m);line-height:1.9;max-width:500px;}
.history-text strong{color:var(--marine);font-weight:600;}

/* FOOTER */
.site-footer{background:var(--marine);color:rgba(255,255,255,.45);padding:3rem 2.5rem 2rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;border-top:3px solid var(--bordeaux);}
.site-footer h4{color:var(--gold);font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px;font-weight:600;}
.site-footer p,.site-footer a{font-size:13px;line-height:2;color:rgba(255,255,255,.4);display:block;transition:color .15s;}
.site-footer a:hover{color:var(--gold);}
.footer-copy{grid-column:1/-1;border-top:.5px solid rgba(255,255,255,.08);padding-top:1.5rem;font-size:11px;text-align:center;color:rgba(255,255,255,.2);}
.footer-social{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.4);font-size:13px;line-height:2;transition:color .15s;}
.footer-social:hover{color:var(--gold);}
.footer-social i{font-size:16px;}

/* SPECTACLE CARD — grille accueil */
.spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5px;background:rgba(123,29,46,.12);}
.spec-card{background:#fff;transition:background .15s;}
.spec-card:hover{background:var(--sand);}
.spec-poster{width:100%;aspect-ratio:3/4;overflow:hidden;background:var(--bordeaux-pale);}
.spec-poster img{width:100%;height:100%;object-fit:cover;object-position:top;}
.spec-body{padding:1rem 1.1rem 1.2rem;}
.spec-date{font-size:10px;letter-spacing:.12em;color:var(--bordeaux);text-transform:uppercase;margin-bottom:6px;font-weight:600;}
.spec-title{font-family:var(--fd);font-size:15px;font-weight:700;margin-bottom:3px;color:var(--marine);line-height:1.3;}
.spec-org{font-size:11px;color:var(--ink-m);}
.spec-resa{font-size:10px;color:var(--ink-m);margin-top:7px;padding-top:7px;border-top:.5px solid rgba(0,0,0,.07);line-height:1.6;}
.spec-resa strong{color:var(--bordeaux);font-weight:600;}
.spec-free{display:inline-block;font-size:9px;letter-spacing:.1em;padding:2px 7px;background:#e8f5e9;color:#2e7d32;text-transform:uppercase;font-weight:600;margin-left:4px;}

/* PROG LIST */
.prog-list{padding:0 2.5rem 2rem;background:#fff;}
.prog-item{display:grid;grid-template-columns:72px 90px 1fr auto;align-items:center;gap:1.5rem;padding:1.25rem 0;border-bottom:.5px solid rgba(0,0,0,.06);}
.prog-item:last-child{border-bottom:none;}
.prog-item:hover{background:var(--sand);margin:0 -2.5rem;padding-left:2.5rem;padding-right:2.5rem;}
.prog-thumb{aspect-ratio:3/4;overflow:hidden;background:var(--bordeaux-pale);flex-shrink:0;}
.prog-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;}
.prog-date-blk{text-align:center;flex-shrink:0;}
.prog-day{font-family:var(--fd);font-size:28px;color:var(--bordeaux);font-weight:400;line-height:1;}
.prog-month{font-size:9px;letter-spacing:.18em;color:var(--ink-m);text-transform:uppercase;margin-top:2px;}
.prog-info h3{font-family:var(--fd);font-size:17px;font-weight:700;color:var(--marine);margin-bottom:3px;line-height:1.25;}
.prog-info p{font-size:12px;color:var(--ink-m);margin-bottom:4px;}
.prog-resa{font-size:10px;color:var(--bordeaux);font-weight:600;line-height:1.6;}
.prog-resa span{font-weight:400;color:var(--ink-m);}
.prog-meta{text-align:right;flex-shrink:0;}
.prog-tag{display:inline-block;font-size:9px;letter-spacing:.08em;padding:3px 9px;background:var(--bordeaux-pale);color:var(--bordeaux);text-transform:uppercase;font-weight:600;}
.prog-time{font-size:11px;color:var(--ink-m);margin-top:5px;}
.prog-free{display:inline-block;font-size:9px;padding:3px 9px;background:#e8f5e9;color:#2e7d32;letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-top:3px;}

/* TIMELINE */
.tl-item{display:flex;gap:1.25rem;margin-bottom:2.25rem;}
.tl-item:last-child{margin-bottom:0;}
.tl-aside{display:flex;flex-direction:column;align-items:center;}
.tl-dot{width:10px;height:10px;background:var(--bordeaux);border-radius:50%;flex-shrink:0;margin-top:5px;}
.tl-line{width:1px;flex:1;background:var(--bordeaux-pale);margin-top:6px;}
.tl-body{display:flex;gap:1.25rem;}
.tl-year{font-family:var(--fd);font-size:13px;color:var(--bordeaux);min-width:80px;padding-top:2px;font-weight:700;flex-shrink:0;}
.tl-desc{font-size:14px;color:var(--ink-m);line-height:1.85;}
.tl-desc strong{color:var(--marine);font-weight:600;}

/* EQUIP */
.equip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.equip-card{background:#fff;border:.5px solid rgba(123,29,46,.1);border-radius:6px;padding:1.25rem;}
.equip-icon{font-size:22px;color:var(--bordeaux);margin-bottom:10px;}
.equip-name{font-size:14px;font-weight:600;color:var(--marine);margin-bottom:4px;}
.equip-detail{font-size:12px;color:var(--ink-m);line-height:1.6;}

/* LOCATION */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;background:#fff;}
.loc-panel{padding:2.5rem;}
.loc-panel:first-child{border-right:.5px solid var(--bordeaux-pale);}
.loc-panel h2{font-family:var(--fd);font-size:22px;font-weight:400;color:var(--marine);margin-bottom:1.5rem;}
.cap-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:.5px solid rgba(0,0,0,.05);}
.cap-row:last-of-type{border-bottom:none;}
.cap-label{font-size:13px;color:var(--ink-m);}
.cap-val{font-size:15px;font-weight:600;color:var(--marine);}
.amen-list li{font-size:13px;color:var(--ink-m);padding:8px 0;border-bottom:.5px solid rgba(0,0,0,.05);display:flex;align-items:center;gap:10px;}
.amen-list li::before{content:'';width:5px;height:5px;background:var(--bordeaux);border-radius:50%;flex-shrink:0;}
.amen-list li:last-child{border-bottom:none;}

/* CONTACTS */
.contacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-top:2rem;}
.contact-block{border-left:3px solid var(--bordeaux);padding-left:1.25rem;}
.contact-block h3{font-size:10px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;margin-bottom:10px;font-weight:600;}
.contact-block p,.contact-block a{font-size:13px;color:rgba(255,255,255,.55);line-height:1.9;display:block;transition:color .15s;}
.contact-block a:hover{color:var(--gold);}

/* INFOS ROWS */
.info-row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:.5px solid rgba(0,0,0,.06);}
.info-row:last-of-type{border-bottom:none;}
.info-row i{font-size:18px;color:var(--bordeaux);flex-shrink:0;margin-top:2px;}
.info-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-m);margin-bottom:3px;font-weight:500;}
.info-value{font-size:14px;color:var(--ink);line-height:1.6;}
.info-value a{transition:color .15s;}
.info-value a:hover{color:var(--bordeaux);}

/* MODAL SPECTACLE */
.modal-overlay{position:fixed;inset:0;background:rgba(10,16,28,.82);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;visibility:hidden;transition:opacity .22s,visibility .22s;}
.modal-overlay.is-open{opacity:1;visibility:visible;}
.modal-box{background:#fff;max-width:780px;width:100%;max-height:90vh;overflow-y:auto;display:grid;grid-template-columns:220px 1fr;position:relative;box-shadow:0 32px 80px rgba(0,0,0,.45);}
.modal-poster{position:sticky;top:0;align-self:start;}
.modal-poster img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;display:block;}
.modal-poster-ph{width:100%;aspect-ratio:3/4;background:var(--bordeaux-pale);display:flex;align-items:center;justify-content:center;color:rgba(123,29,46,.25);font-size:36px;}
.modal-body{padding:2rem 2rem 2.5rem;}
.modal-close{position:absolute;top:12px;right:14px;background:var(--marine);color:#fff;border:none;width:32px;height:32px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;line-height:1;transition:background .15s;}
.modal-close:hover{background:var(--bordeaux);}
.modal-eyebrow{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--bordeaux);font-weight:600;margin-bottom:.5rem;}
.modal-title{font-family:var(--fd);font-size:24px;font-weight:700;color:var(--marine);line-height:1.18;margin-bottom:.2rem;}
.modal-org{font-size:12px;color:var(--ink-m);margin-bottom:1.2rem;}
.modal-date-row{background:var(--sand);border-left:3px solid var(--bordeaux);padding:.65rem 1rem;margin-bottom:1.25rem;font-size:13px;color:var(--marine);font-weight:600;}
.modal-desc{font-size:13.5px;color:var(--ink-m);line-height:1.85;margin-bottom:1.4rem;white-space:pre-line;}
.modal-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem;margin-bottom:1.4rem;}
.modal-meta-item{font-size:12px;line-height:1.55;}
.modal-meta-item strong{display:block;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--bordeaux);font-weight:600;margin-bottom:1px;}
.modal-resa-box{background:var(--marine);color:#fff;padding:1rem 1.25rem;margin-top:.25rem;}
.modal-resa-box p{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:.4rem;}
.modal-resa-box span{font-size:13px;color:rgba(255,255,255,.75);line-height:1.7;display:block;}
.modal-resa-box a{color:var(--gold);text-decoration:underline;}
.spec-card[data-modal],.prog-thumb[data-modal]{cursor:pointer;}
.spec-card[data-modal]:focus-visible,.prog-thumb[data-modal]:focus-visible{outline:2px solid var(--bordeaux);outline-offset:2px;}
@media(max-width:640px){
  .modal-box{grid-template-columns:1fr;max-height:95vh;}
  .modal-poster{position:static;}
  .modal-poster img{aspect-ratio:16/9;object-position:center;}
  .modal-meta-grid{grid-template-columns:1fr;}
}

/* RESPONSIVE */
@media(max-width:900px){
  .nav-links,.nav-cta{display:none;}
  .nav-burger{display:flex;}
  .nav-links.open{display:flex;flex-direction:column;gap:1rem;position:absolute;top:100%;left:0;right:0;background:var(--marine);padding:1.5rem 2rem;border-bottom:3px solid var(--bordeaux);z-index:300;}
  .nav-links.open a{font-size:13px;}
  .site-nav{position:relative;}
  .stats-row{grid-template-columns:1fr;}
  .history-strip{flex-direction:column;gap:1rem;}
  .site-footer{grid-template-columns:1fr 1fr;}
  .loc-grid{grid-template-columns:1fr;}
  .loc-panel:first-child{border-right:none;border-bottom:.5px solid var(--bordeaux-pale);}
}
@media(max-width:640px){
  .section,.section--white,.section--sand,.section--dark{padding:2rem 1.25rem;}
  .site-nav{padding:.85rem 1.25rem;}
  .site-footer{grid-template-columns:1fr;padding:2rem 1.25rem 1.5rem;}
  .prog-item{grid-template-columns:56px 70px 1fr;grid-template-rows:auto auto;}
  .prog-meta{grid-column:2;text-align:left;}
  .spec-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));}
}
