:root{
  --cream:#f5eee5;
  --cream-2:#fffaf3;
  --paper:#fffdf8;
  --ink:#211b17;
  --muted:#746e67;
  --olive:#69754a;
  --olive-dark:#4e5936;
  --olive-soft:#a9ae82;
  --gold:#c9a45e;
  --gold-dark:#a17b38;
  --orange:#c97831;
  --line:#ded4c6;
  --sold:#686660;
  --disabled:#aaa69e;
  --shadow:0 18px 50px rgba(57,43,25,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:var(--cream-2);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{max-width:100%}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,250,243,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(91,78,62,.12)}
.header-inner{max-width:1320px;height:82px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:42px}
.brand{min-width:180px;display:flex;flex-direction:column;align-items:flex-start;line-height:1;color:#17120f}
.brand-script,.footer-brand .brand-script{font-family:"Snell Roundhand","Segoe Script","Brush Script MT",cursive;font-size:32px;font-weight:800;letter-spacing:-1.5px}
.brand small,.footer-brand small{font-family:Georgia,serif;font-size:8px;letter-spacing:.09em;margin-top:3px}
nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:14px;font-weight:650}
nav a{position:relative;padding:30px 0 27px}
nav a::after{content:"";position:absolute;left:0;right:0;bottom:20px;height:2px;background:var(--olive);transform:scaleX(0);transition:.2s}
nav a:hover::after,nav a.active::after{transform:scaleX(1)}
.header-cta{background:var(--olive);color:#fff;padding:11px 19px;border-radius:999px;font-size:13px;font-weight:800;box-shadow:0 7px 18px rgba(83,97,55,.18)}
.event-hero{position:relative;overflow:hidden;background:var(--cream);border-bottom:1px solid var(--line)}
.hero-pattern{position:absolute;inset:0;opacity:.13;background-image:radial-gradient(circle at 15% 18%,transparent 0 68px,rgba(105,117,74,.6) 69px 71px,transparent 72px),radial-gradient(circle at 83% 32%,transparent 0 98px,rgba(105,117,74,.45) 99px 101px,transparent 102px);background-size:360px 300px;pointer-events:none}
.event-wrap{position:relative;max-width:1240px;margin:auto;padding:28px 24px 58px}
.back{display:inline-flex;align-items:center;gap:8px;color:var(--olive-dark);font-size:13px;font-weight:750;margin-bottom:22px}
.event-grid{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:64px;align-items:center}
.poster-card{margin:0;border-radius:20px;overflow:hidden;background:#ddd;box-shadow:0 24px 70px rgba(45,34,20,.2);transform:rotate(-.5deg);border:7px solid rgba(255,255,255,.78)}
.poster-img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#fff}
.event-info{max-width:650px}
.eyebrow{display:inline-block;font-size:11px;letter-spacing:.22em;font-weight:900;color:var(--olive-dark);text-transform:uppercase}
.event-type{margin:16px 0 5px;font-size:12px;font-weight:900;letter-spacing:.14em;color:#8d6b3d}
.event-info h1,.booking-head h2{font-family:Georgia,"Times New Roman",serif;line-height:.95;letter-spacing:-.04em}
.event-info h1{margin:0;font-size:clamp(50px,6vw,84px);font-weight:500}
.event-info h1 span{font-family:"Snell Roundhand","Segoe Script","Brush Script MT",cursive;font-size:.83em;color:var(--olive-dark);font-weight:700;letter-spacing:-.03em}
.lead{font-family:Georgia,serif;font-size:18px;line-height:1.65;color:#554b43;max-width:610px;margin:24px 0 28px}
.event-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 28px}
.meta-card{background:rgba(255,253,248,.7);border:1px solid rgba(123,108,86,.16);border-radius:15px;padding:16px;display:flex;gap:12px;min-height:108px}
.meta-card:nth-child(3){grid-column:1/-1;min-height:auto}
.meta-icon{width:28px;height:28px;flex:0 0 28px;border-radius:50%;display:grid;place-items:center;background:#e4ddcc;color:var(--olive-dark);font-weight:900}
.meta-card small{display:block;color:#8a8179;font-size:9px;letter-spacing:.13em;font-weight:900;margin-bottom:3px}
.meta-card strong,.meta-card span:not(.meta-icon){display:block}
.meta-card strong{font-size:14px}.meta-card span:not(.meta-icon){font-size:12px;color:#716961;margin-top:3px}
.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;background:var(--olive);color:#fff;padding:15px 24px;border-radius:999px;font-weight:850;font-size:14px;box-shadow:0 10px 24px rgba(74,88,45,.18);transition:.18s transform,.18s background}
.primary-btn:hover{background:var(--olive-dark);transform:translateY(-1px)}
.primary-btn span{font-size:18px}.microcopy{font-size:11px;color:#776e66;margin:12px 0 0}
.intro-strip{max-width:1120px;margin:-22px auto 0;position:relative;z-index:5;display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.intro-strip div{padding:20px 24px;display:flex;align-items:center;gap:13px;border-right:1px solid var(--line);font-family:Georgia,serif;font-size:14px}.intro-strip div:last-child{border-right:0}.intro-strip strong{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:var(--olive);color:#fff;font:800 12px Inter,sans-serif}
.booking-section{max-width:1320px;margin:auto;padding:78px 24px 70px}
.booking-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.booking-head h2{font-size:clamp(38px,5vw,58px);font-weight:500;margin:7px 0 8px}.booking-head p{margin:0;max-width:720px;color:var(--muted)}
.booking-note{border:1px solid #cfc6b6;border-radius:999px;padding:9px 14px;font-size:12px;color:#6b625a;white-space:nowrap;background:#fffdf9}
.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.map-card{background:#2a2925;border:1px solid #34332e;border-radius:20px;box-shadow:0 20px 55px rgba(43,34,24,.14);padding:22px 20px 28px;overflow:auto;color:#fff}
.stage-wrap{max-width:760px;margin:0 auto 25px;height:118px;border-radius:130px 130px 18px 18px;background:radial-gradient(circle at 18% 0%,rgba(201,164,94,.28),transparent 25%),radial-gradient(circle at 50% 0%,rgba(201,164,94,.34),transparent 25%),radial-gradient(circle at 82% 0%,rgba(201,164,94,.28),transparent 25%),linear-gradient(180deg,#171714,#25241f);border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 -20px 40px rgba(0,0,0,.18)}
.stage-wrap span{font-family:Georgia,serif;font-size:26px;letter-spacing:.08em}.stage-wrap small{font-size:10px;color:#bdb7aa;letter-spacing:.08em;margin-top:6px}
.seat-map{display:grid;gap:10px;padding:8px 18px 20px;min-width:720px;width:760px;max-width:100%;margin:0 auto}
.seat-row{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:10px}
.row-label{color:#cbc4b3;font-size:12px;font-weight:900;text-align:center}
.seats{display:flex;justify-content:center;align-items:center;gap:7px;width:max-content;min-width:0;margin:0 auto;transform:none}
.seat{position:relative;width:27px;height:24px;border-radius:7px 7px 5px 5px;border:1px solid #8e9b68;background:var(--olive);box-shadow:inset 0 -5px 0 rgba(0,0,0,.16);cursor:pointer;transition:.12s transform,.12s box-shadow,.12s background}
.seat:hover:not(.sold):not(.disabled):not(.reserved){transform:translateY(-2px);box-shadow:0 0 0 2px rgba(215,226,174,.28),0 0 18px rgba(160,177,104,.32)}
.seat.selected{background:var(--gold);border-color:#ffe7a9;box-shadow:0 0 0 2px rgba(255,245,210,.75),0 0 18px rgba(213,176,90,.58)}
.seat.reserved{background:var(--orange);border-color:#e49b5c;cursor:not-allowed}
.seat.sold{background:var(--sold);border-color:#817e77;cursor:not-allowed}.seat.disabled{background:var(--disabled);border-color:#c2beb5;cursor:not-allowed}
.seat.pmr{font-size:14px;color:white;display:grid;place-items:center;background:#596449}.pmr-space{width:170px}.entrance{width:160px;margin:8px auto 0;text-align:center;border-top:18px solid #171714;padding-top:8px;color:#cfc8b7;font-weight:850;font-size:18px}.entrance span{display:block;font-size:10px;letter-spacing:.12em;margin-top:3px}
.booking-sidebar{display:grid;gap:14px}.selection-card,.legend-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 12px 35px rgba(63,50,32,.07)}.sticky-card{position:sticky;top:104px}.selection-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line);font-family:Georgia,serif;font-size:20px}.selection-count{font:800 10px Inter,sans-serif;letter-spacing:.05em;background:#ece8db;color:#5f6945;border-radius:999px;padding:7px 9px}
.selection-list{padding:16px 0 3px;max-height:270px;overflow:auto}.empty-selection{color:#918980;font-size:13px;padding:5px 0 12px}.selection-item{display:grid;grid-template-columns:18px 1fr auto 20px;gap:9px;align-items:start;margin-bottom:14px}.swatch{width:16px;height:16px;border-radius:4px;background:var(--gold);border:1px solid #ad873e;margin-top:2px}.selection-item .seat-code{font-weight:900;font-size:13px}.selection-item small{color:#918980;font-size:11px}.ticket-type-select{display:block;width:100%;margin-top:8px;padding:8px 10px;border:1px solid #d9cfbf;border-radius:10px;background:#fffdf8;color:#3b342c;font-size:12px;font-weight:600}
.ticket-type-select:focus{outline:none;border-color:#98a46b;box-shadow:0 0 0 3px rgba(105,117,74,.12)}
.selection-item .price{font-weight:800;font-size:12px}.remove{color:#958e85;cursor:pointer;font-size:18px;line-height:1}
.total{border-top:1px solid var(--line);padding-top:16px;margin-top:8px;display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.total b:last-child{color:var(--olive-dark);font-family:Georgia,serif;font-size:28px;letter-spacing:-.02em;text-transform:none}
.timer{border-top:1px solid var(--line);margin-top:14px;padding-top:14px;display:flex;gap:9px;color:#6e675f;font-size:12px;line-height:1.55}.timer-icon{color:var(--gold-dark);font-size:18px}.continue{width:100%;margin-top:17px;padding:15px 17px;border:0;border-radius:999px;background:var(--olive);color:white;font-weight:900;cursor:pointer;display:flex;justify-content:center;gap:14px;transition:.18s}.continue:hover{background:var(--olive-dark);transform:translateY(-1px)}.continue:disabled{opacity:.7;cursor:wait}.clear{display:block;text-align:center;margin-top:12px;color:#7c746a;text-decoration:underline;font-size:11px}.secure-line{margin-top:15px;text-align:center;color:#777067;font-size:10px}.secure-line span{color:var(--olive);font-weight:900}
.legend-card h3{font-family:Georgia,serif;margin:0 0 14px;font-size:20px}.legend{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;font-size:11px}.legend-row{display:flex;gap:8px;align-items:center}.legend .box{width:15px;height:15px;border-radius:4px;border:1px solid rgba(0,0,0,.12)}.legend .free{background:var(--olive)}.legend .selected-box{background:var(--gold)}.legend .reserved-box{background:var(--orange)}.legend .sold-box{background:var(--sold)}.legend .disabled-box{background:var(--disabled)}

.site-footer{border-top:1px solid var(--line);background:#eee7dc}.footer-inner{max-width:1240px;margin:auto;padding:28px 24px;display:grid;grid-template-columns:240px 1fr 260px;gap:40px;align-items:center}.footer-brand{display:flex;flex-direction:column}.footer-inner>div:nth-child(2){font-size:12px;color:#716960}.footer-inner>div:nth-child(2) strong{color:#342d28}.footer-claim{font-family:"Snell Roundhand","Segoe Script","Brush Script MT",cursive;font-size:22px;transform:rotate(-3deg);text-align:right}.footer-bottom{background:var(--olive-dark);color:#e9ebdf;font-size:10px;padding:9px 24px;text-align:center}
.notice{position:fixed;right:22px;bottom:22px;max-width:420px;background:#24231f;color:#fff;border:1px solid rgba(255,255,255,.12);padding:13px 16px;border-radius:12px;display:none;z-index:150;box-shadow:0 12px 35px rgba(0,0,0,.25);font-size:13px}.mobile-booking-bar{display:none}
.seat[data-seat]::after{content:attr(data-number);position:absolute;left:50%;bottom:calc(100% + 7px);transform:translateX(-50%) translateY(4px);min-width:26px;padding:4px 7px;border-radius:6px;background:#fffdf8;color:#222;font-size:11px;line-height:1;font-weight:900;opacity:0;pointer-events:none;transition:.12s;z-index:25;box-shadow:0 5px 14px rgba(0,0,0,.35)}
.seat[data-seat]::before{content:"";position:absolute;left:50%;bottom:calc(100% + 2px);transform:translateX(-50%);border:5px solid transparent;border-top-color:#fffdf8;opacity:0;pointer-events:none;transition:.12s;z-index:24}.seat[data-seat]:hover::after,.seat[data-seat]:hover::before,.seat[data-seat]:focus-visible::after,.seat[data-seat]:focus-visible::before{opacity:1}.seat[data-seat]:hover::after,.seat[data-seat]:focus-visible::after{transform:translateX(-50%) translateY(0)}
.seat.orphan-warning{animation:orphanPulse .5s ease 2}@keyframes orphanPulse{0%,100%{box-shadow:0 0 0 0 rgba(226,104,67,0)}50%{box-shadow:0 0 0 4px rgba(226,104,67,.65),0 0 20px rgba(226,104,67,.35)}}
@media(max-width:1050px){.header-inner{gap:20px}.brand{min-width:150px}nav{gap:16px}.event-grid{grid-template-columns:340px 1fr;gap:36px}.booking-grid{grid-template-columns:1fr}.sticky-card{position:relative;top:auto}.booking-sidebar{grid-template-columns:1fr 1fr}.booking-help{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:780px){html{scroll-padding-top:70px}.site-header{position:sticky}.header-inner{height:68px;padding:0 15px}.brand{min-width:0}.brand-script{font-size:25px}.brand small{font-size:6px}.header-cta{margin-left:auto;padding:9px 14px}nav{display:none}.event-wrap{padding:17px 15px 42px}.back{margin-bottom:15px}.event-grid{grid-template-columns:1fr;gap:28px}.poster-card{max-width:430px;margin:auto;transform:none}.event-info h1{font-size:49px}.lead{font-size:16px}.event-meta{grid-template-columns:1fr}.meta-card:nth-child(3){grid-column:auto}.intro-strip{margin:-18px 12px 0;grid-template-columns:1fr}.intro-strip div{border-right:0;border-bottom:1px solid var(--line);padding:14px 17px}.intro-strip div:last-child{border-bottom:0}.booking-section{padding:56px 10px 95px}.booking-head{display:block;padding:0 6px}.booking-note{display:inline-block;margin-top:14px}.booking-grid{display:block}.map-card{border-radius:16px;padding:15px 8px 20px}.seat-map{min-width:700px;width:700px;margin:0 auto}.booking-sidebar{display:block}.selection-card,.legend-card{margin-top:13px}.booking-help{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr;text-align:center;gap:20px}.footer-brand{align-items:center}.footer-claim{text-align:center}.mobile-booking-bar{position:fixed;left:10px;right:10px;bottom:10px;z-index:120;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#25251f;color:white;border:1px solid rgba(255,255,255,.12);border-radius:15px;padding:10px 11px 10px 15px;box-shadow:0 14px 36px rgba(0,0,0,.28)}.mobile-booking-bar>div{display:flex;flex-direction:column}.mobile-booking-bar span{font-size:9px;color:#c9c5bb}.mobile-booking-bar strong{font-family:Georgia,serif;font-size:18px}.mobile-booking-bar a{background:var(--olive);padding:10px 13px;border-radius:999px;font-size:11px;font-weight:850}.notice{left:12px;right:12px;bottom:78px;max-width:none}}
@media(max-width:430px){.event-info h1{font-size:43px}.event-info h1 span{font-size:.8em}.primary-btn{width:100%}.legend{grid-template-columns:1fr}.booking-head h2{font-size:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* Présentation du spectacle + formule dîner */
.show-description{padding:62px 24px;background:#fffaf5;color:#1e1713}
.show-description-inner{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.8fr);gap:42px;align-items:start}
.show-description .show-copy h2,.dinner-card h2{font-family:Georgia,serif;line-height:1.08}
.show-description .show-copy h2{font-size:clamp(32px,4vw,52px);margin:8px 0 22px}
.show-description .show-copy>p{font-size:18px;line-height:1.72;margin:0 0 16px}
.first-part{margin-top:32px;padding:26px 28px;border-left:4px solid #6f7a43;background:#f5ece5;border-radius:0 14px 14px 0}
.first-part>span{font-size:12px;font-weight:800;letter-spacing:.14em;color:#6f7a43}
.first-part h3{font:700 30px/1.1 Georgia,serif;margin:6px 0 10px}
.first-part p{font-size:16px;line-height:1.65;margin:0}
.dinner-card{background:#f5ece5;border:1px solid #d8cec6;border-radius:20px;padding:30px}
.dinner-card h2{font-size:34px;margin:7px 0 22px}
.price-line{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 0;border-top:1px solid #d8cec6}
.price-line div{display:flex;flex-direction:column;gap:3px}.price-line small{color:#72685f}.price-line b{font-size:25px;white-space:nowrap}
.price-line.featured{color:#586234}
.dinner-card>p{font-size:15px;line-height:1.6;margin:20px 0}
.arrival-alert{padding:17px 18px;background:#fffaf5;border-radius:12px;text-align:center}
.arrival-alert strong,.arrival-alert span{display:block}.arrival-alert strong{font-size:16px}.arrival-alert span{margin-top:4px;font-size:14px;color:#72685f}
@media(max-width:850px){.show-description-inner{grid-template-columns:1fr}.show-description{padding:42px 20px}}


/* =========================================================
   PLAN DE SALLE — VERSION THÉÂTRE / SIÈGES ROUGES
   Le nombre et les numéros de sièges restent strictement identiques.
   ========================================================= */

.map-card{
  background:
    radial-gradient(circle at 50% 0%, rgba(198,139,69,.12), transparent 28%),
    linear-gradient(180deg,#211f1b 0%,#292722 42%,#24231f 100%) !important;
}

.stage-wrap{
  position:relative;
  overflow:hidden;
  max-width:760px;
  border-radius:105px 105px 18px 18px !important;
  background:
    radial-gradient(circle at 50% -18%,rgba(220,169,93,.25),transparent 44%),
    linear-gradient(180deg,#151310 0%,#25211c 100%) !important;
  box-shadow:
    inset 0 -24px 42px rgba(0,0,0,.36),
    0 10px 25px rgba(0,0,0,.20) !important;
}

.stage-wrap::before,
.stage-wrap::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:72px;
  background:
    linear-gradient(90deg,#571015,#8f1721 48%,#4b0c12);
  opacity:.92;
  pointer-events:none;
}
.stage-wrap::before{
  left:0;
  clip-path:polygon(0 0,100% 0,70% 100%,0 100%);
}
.stage-wrap::after{
  right:0;
  clip-path:polygon(0 0,100% 0,100% 100%,30% 100%);
}

.stage-wrap span,
.stage-wrap small{
  position:relative;
  z-index:2;
}

.seat-map{
  gap:12px !important;
  padding-top:12px !important;
}

.seat-row{
  min-height:31px;
}

/* Rangées alignées horizontalement : les allées gauche/droite restent droites */
.seats{
  transform:none !important;
}

/* Forme plus proche d'un fauteuil de salle */
.seat{
  width:28px !important;
  height:25px !important;
  border-radius:7px 7px 5px 5px !important;
  transform:translateY(var(--seat-curve,0px));
  background:
    linear-gradient(180deg,#c51f2d 0%,#9b1520 62%,#751019 100%) !important;
  border:1px solid #d44a55 !important;
  box-shadow:
    inset 0 -5px 0 rgba(54,4,8,.34),
    inset 0 2px 0 rgba(255,255,255,.10),
    0 2px 4px rgba(0,0,0,.28) !important;
}

/* petit dossier visuel */
.seat::after{
  content:attr(data-number);
}

/* conserver le tooltip existant uniquement au survol */
.seat[data-seat]::after{
  background:#fffdf8 !important;
  color:#222 !important;
}

/* survol sans casser la courbure */
.seat:hover:not(.sold):not(.disabled):not(.reserved){
  transform:translateY(calc(var(--seat-curve,0px) - 2px)) !important;
  box-shadow:
    0 0 0 2px rgba(255,220,220,.22),
    0 0 18px rgba(197,31,45,.32),
    inset 0 -5px 0 rgba(54,4,8,.34) !important;
}

/* sélection : doré, bien distinct du rouge */
.seat.selected{
  background:
    linear-gradient(180deg,#e8bd68 0%,#c69642 65%,#9f742e 100%) !important;
  border-color:#ffe0a0 !important;
  box-shadow:
    0 0 0 2px rgba(255,239,195,.70),
    0 0 18px rgba(213,176,90,.56),
    inset 0 -5px 0 rgba(104,69,19,.24) !important;
}

/* réservé temporairement */
.seat.reserved{
  background:
    linear-gradient(180deg,#e18a38 0%,#c26d24 100%) !important;
  border-color:#f0a861 !important;
  cursor:not-allowed;
}

/* vendu */
.seat.sold{
  background:
    linear-gradient(180deg,#6f6d68 0%,#52504c 100%) !important;
  border-color:#87847e !important;
  cursor:not-allowed;
}

/* non disponible */
.seat.disabled{
  background:
    linear-gradient(180deg,#b9b6af 0%,#97938c 100%) !important;
  border-color:#cac6bf !important;
  cursor:not-allowed;
}

/* PMR conserve le bleu pour être immédiatement identifiable */
.seat.pmr{
  background:linear-gradient(180deg,#3f78c9 0%,#24549a 100%) !important;
  border-color:#77a7e8 !important;
  transform:none !important;
  box-shadow:inset 0 -4px 0 rgba(0,0,0,.22),0 2px 4px rgba(0,0,0,.25) !important;
}

/* lettres de rangée plus lisibles */
.row-label{
  color:#e7dfcf !important;
  font-family:Georgia,serif;
  font-size:12px !important;
  letter-spacing:.04em;
}

/* légère ambiance d'allée sans modifier la géométrie des sièges */
.seat-map{
  position:relative;
}
.seat-map::before,
.seat-map::after{
  content:"";
  position:absolute;
  top:4px;
  bottom:26px;
  width:7px;
  border-radius:8px;
  background:linear-gradient(180deg,
    rgba(219,167,88,.10),
    rgba(219,167,88,.38) 45%,
    rgba(219,167,88,.11));
  box-shadow:0 0 12px rgba(219,167,88,.13);
  pointer-events:none;
}
.seat-map::before{left:54px}
.seat-map::after{right:54px}

/* légende adaptée aux couleurs */
.box.free{
  background:#a91622 !important;
  border-color:#cf4350 !important;
}
.box.selected-box{
  background:#c99a45 !important;
  border-color:#e7bb65 !important;
}
.box.reserved-box{
  background:#cc752b !important;
  border-color:#e49b5c !important;
}
.box.sold-box{
  background:#686660 !important;
}
.box.disabled-box{
  background:#aaa69e !important;
}

@media(max-width:780px){
  .seat-map::before{left:48px}
  .seat-map::after{right:48px}
}

/* Message de réservation placé près de "Votre sélection" */
.selection-notice{
  display:none;
  margin:14px 0 2px;
  padding:12px 14px;
  border-radius:11px;
  background:#fff3dd;
  border:1px solid #e8c98d;
  color:#65491f;
  font-size:12px;
  line-height:1.45;
  font-weight:650;
}
.selection-notice:empty{display:none!important}


/* Les deux blocs de droite restent visibles ensemble sur desktop */
.booking-sidebar{
  position:sticky !important;
  top:92px !important;
  align-self:start !important;
  z-index:4 !important;
  max-height:calc(100vh - 112px);
  overflow:auto;
  padding-right:2px;
}
.booking-sidebar .sticky-card{
  position:relative !important;
  top:auto !important;
}
.selection-card{
  max-height:none !important;
  overflow:visible !important;
}
.legend-card{
  position:relative !important;
  z-index:1 !important;
  margin-top:14px !important;
}
@media(max-width:1050px){
  .booking-sidebar{
    position:relative !important;
    top:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* Logo officiel La Morhette dans la billetterie */
.site-header .brand-logo-img{
  display:block;
  height:58px;
  width:auto;
  max-width:250px;
  object-fit:contain;
}
@media(max-width:780px){
  .site-header .brand-logo-img{height:46px;max-width:205px}
}


/* Confirmation des formules de billets */
body.modal-open{overflow:hidden}
.ticket-confirm-modal[hidden]{display:none!important}
.ticket-confirm-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:18px}
.ticket-confirm-backdrop{position:absolute;inset:0;background:rgba(20,18,15,.62);backdrop-filter:blur(4px)}
.ticket-confirm-dialog{position:relative;z-index:1;width:min(520px,100%);background:#fffaf5;border:1px solid #d8cec6;border-radius:22px;padding:26px;box-shadow:0 28px 80px rgba(0,0,0,.28);color:#1e1713}
.ticket-confirm-x{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:27px;line-height:1;color:#72685f;cursor:pointer}
.ticket-confirm-kicker{display:block;padding-right:30px;color:#6f7a43;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.ticket-confirm-dialog h3{font:700 30px/1.12 Georgia,serif;margin:7px 32px 16px 0}
.ticket-confirm-body{font-size:14px;line-height:1.55;color:#514a44}
.ticket-confirm-body p{margin:10px 0}
.modal-intro{font-size:15px;color:#29241f}
.ticket-summary-box{margin:18px 0 10px;border:1px solid #ddd3c9;border-radius:14px;overflow:hidden;background:#fff}
.summary-row{display:flex;justify-content:space-between;gap:18px;padding:13px 15px;border-bottom:1px solid #eee5dc}
.summary-row:last-child{border-bottom:0}.summary-row.meal{background:#f5f1e5}
.summary-row span{font-weight:700}.summary-row strong{white-space:nowrap;color:#44512d}
.summary-total{display:flex;justify-content:space-between;align-items:center;padding:12px 2px 4px;font-size:15px}.summary-total strong{font:700 25px/1 Georgia,serif;color:#586234}
.modal-warning{margin-top:15px!important;padding:12px 14px;border-radius:11px;background:#fff3dd;border:1px solid #e8c98d;color:#65491f!important;font-weight:650}
.ticket-confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}
.modal-btn{border:0;border-radius:999px;padding:12px 17px;font-weight:800;font-size:13px;cursor:pointer}
.modal-btn.secondary{background:#eee9e2;color:#4f4841}.modal-btn.secondary:hover{background:#e4ddd4}
.modal-btn.primary{background:#6f7a43;color:white;box-shadow:0 7px 18px rgba(88,98,52,.18)}.modal-btn.primary:hover{background:#586234}
@media(max-width:600px){.ticket-confirm-dialog{padding:22px 18px}.ticket-confirm-dialog h3{font-size:25px}.ticket-confirm-actions{display:grid;grid-template-columns:1fr}.modal-btn{width:100%}.summary-row{align-items:flex-start;flex-direction:column;gap:4px}.summary-row strong{white-space:normal}}

.footer-bottom a{color:inherit;text-decoration:underline;text-underline-offset:2px}.footer-bottom a:hover{opacity:.8}

.spectacle-site-credit{
  text-align:center;
  padding:10px 16px 14px;
  font-size:11px;
  color:#d7d1c8;
  background:#53603b;
  border-top:1px solid rgba(255,255,255,.12);
}
