/* Réveillon v2 : une seule palette (nuit, or, crème) et des tailles de texte lisibles (≥ .8rem pour l'utile). */
.nyv2 { --navy:#081e31; --ink:#173844; --muted:#4f5f67; --gold:#dbc07b; --gold-text:#7a5b1c; --gold-line:#d5bf84; --cream:#fffaf0; --card:#fff; --line:#ded7cc; --ok:#2f6a45; --wrap:min(1180px,calc(100% - 48px)); }
.nyv2 .eyebrow { color:var(--gold-text); font-size:.78rem; }
.nyv2 [hidden] { display:none!important; }
.v2-preview { background:#eae3d5; padding:7px 18px; text-align:center; font-size:.78rem; color:#35434b; }
.v2-preview a { margin-left:16px; font-weight:700; }
.v2-nav { display:flex; align-items:center; gap:26px; margin-left:auto; font-size:.92rem; font-weight:750; }
.v2-nav a:not(.button) { text-decoration:none; color:var(--ink); }
.v2-nav a:not(.button):hover { text-decoration:underline; text-underline-offset:5px; }
.v2-nav .button { min-height:44px; padding:10px 22px; }
.nyv2 .button.primary,.nyv2 .ny-btn:not(.secondary) { color:#102b3c; background:linear-gradient(120deg,#f4e2af,#dfbc66); box-shadow:0 4px 14px #8b64151a; }
.nyv2 .button.primary:hover,.nyv2 .ny-btn:not(.secondary):hover { background:#f4e2af; }
.nyv2 .button.secondary { color:var(--ink); border-color:#315967; background:transparent; }
.v2-link { font-weight:750; color:inherit; text-underline-offset:5px; }
.v2-section { width:var(--wrap); margin:80px auto; scroll-margin-top:130px; }
.v2-heading { max-width:720px; margin-bottom:34px; }
.v2-heading h2,.v2-menu h2 { font-size:clamp(1.9rem,3vw,2.9rem); letter-spacing:-.035em; line-height:1.12; margin:10px 0 14px; color:var(--ink); }
.v2-heading>p:not(.eyebrow) { color:var(--muted); font-size:1.02rem; line-height:1.6; margin:0; }

/* Hero */
.v2-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); color:#fff; background:radial-gradient(ellipse at 13% 0%,#9c783025,transparent 55%),var(--navy); overflow:hidden; }
/* La gouttière extérieure ne doit pas consommer la largeur utile du texte. */
.v2-hero-copy { position:relative; z-index:2; min-width:0; max-width:680px; margin-left:max(24px,calc((100vw - 1180px)/2)); padding:60px 40px 60px 0; }
.v2-hero .eyebrow { color:var(--gold); }
.v2-hero h1 { font-size:clamp(2.3rem,3.6vw,3.8rem); letter-spacing:-.045em; line-height:1.1; margin:18px 0; }
.v2-hero h1 em { color:var(--gold); font-style:normal; }
.v2-lead { max-width:520px; font-size:1.08rem; line-height:1.6; color:#e1e5e9; margin:0 0 26px; }
.v2-offers { display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:520px; }
.v2-offer { display:flex; flex-direction:column; padding:16px 18px; border:1px solid #dbc07b66; border-radius:12px; background:#ffffff0d; color:#fff; text-decoration:none; transition:border-color .15s,background .15s; }
.v2-offer:hover { border-color:var(--gold); background:#ffffff17; }
.v2-offer span { font-size:.88rem; font-weight:700; color:#e1e5e9; }
.v2-offer strong { font-size:2rem; line-height:1.15; letter-spacing:-.03em; color:var(--gold); }
.v2-offer small { font-size:.8rem; color:#c3ccd3; }
.v2-included { max-width:520px; margin:18px 0 0; font-size:.95rem; line-height:1.55; color:#e8edf0; }
.v2-included span { color:var(--gold); padding-right:4px; }
.v2-included strong { color:#f1dfa9; font-weight:700; }
.v2-hero-actions { display:flex; align-items:center; gap:26px; flex-wrap:wrap; margin-top:30px; }
.v2-hero-actions .button { min-height:50px; padding:12px 24px; font-size:1rem; }
.v2-hero-media { position:relative; margin:0; min-height:480px; }
.v2-hero-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% center; }
.v2-hero-media::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,var(--navy),transparent 35%),linear-gradient(0deg,#081e31aa,transparent 55%); }
.v2-year { position:absolute; z-index:2; right:28px; bottom:22px; font-size:clamp(4.5rem,9vw,8.5rem); font-weight:850; letter-spacing:-.055em; line-height:1; color:#f5dfa4; text-shadow:0 5px 30px #0009; }

/* Ce qui vous attend */
.v2-moments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin:0; list-style:none; }
.v2-moment { display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.v2-moment-visual { height:220px; background:var(--navy); }
.v2-moment-visual img { display:block; width:100%; height:100%; object-fit:cover; }
.v2-moment-copy { padding:22px 24px 26px; }
.v2-moment-copy h3 { margin:10px 0; font-size:1.5rem; color:var(--ink); letter-spacing:-.025em; line-height:1.15; }
.v2-moment-copy p:not(.v2-tag) { color:var(--muted); font-size:.95rem; line-height:1.6; margin:0 0 12px; }
.v2-moment-copy .v2-link { font-size:.9rem; color:var(--gold-text); }
.v2-moment-party { border-color:#cbb16b; background:var(--cream); }
.v2-tag { display:inline-block; margin:0; padding:4px 9px; border-radius:20px; font-size:.75rem; font-weight:800; color:var(--gold-text); background:#f5ecd5; }
.v2-tag-all { color:#1f4f60; background:#e6eff1; }
.v2-tag-gift { color:var(--ok); background:#e5f0e6; }


/* Menu */
.v2-menu { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; padding:80px max(24px,calc((100vw - 1180px)/2)); background:var(--navy); color:#fff; scroll-margin-top:110px; }
.v2-menu-intro { align-self:start; position:sticky; top:150px; }
.v2-menu .eyebrow { color:var(--gold); }
.v2-menu h2 { color:#fff; }
.v2-menu-intro>p:not(.eyebrow) { color:#d6dfe5; max-width:420px; line-height:1.65; font-size:1rem; }
.v2-services { display:grid; grid-template-columns:1fr 1fr; gap:24px; border-block:1px solid #dbc07b66; margin:26px 0; padding:18px 0; }
.v2-services dt { color:var(--gold); font-weight:800; }
.v2-services dd { margin:0; font-size:1.25rem; font-weight:750; }
.v2-services dd.v2-services-for { margin-top:6px; font-size:.85rem; font-weight:400; color:#c3ccd3; line-height:1.45; }
.v2-menu-intro .v2-limited { font-size:.92rem!important; color:#f1dfa9!important; margin-bottom:26px; }
.v2-menu-card { padding:40px clamp(22px,3vw,48px); border:1px solid var(--gold); background:#fffdf8; border-radius:10px; color:#102b45; box-shadow:0 15px 60px #0003; }
.v2-menu-caption { text-align:center; letter-spacing:.12em; text-transform:uppercase; font-size:.75rem; color:var(--gold-text); margin:0; }
.v2-menu-card h3 { font-family:Georgia,serif; font-style:italic; font-size:2.1rem; line-height:1.2; text-align:center; font-weight:500; margin:16px 0 26px; }
.v2-course+.v2-course { border-top:1px solid #d9c38d; margin-top:22px; padding-top:6px; }
.v2-course h4 { font-size:.8rem; text-transform:uppercase; letter-spacing:.14em; color:#7a5414; margin:16px 0 12px; }
.v2-course ul { padding-left:18px; margin:0; }
.v2-course li { padding-left:5px; margin:6px 0; font-size:.97rem; line-height:1.5; }
.v2-course li::marker { color:#ad852d; }

/* Réservation */
.v2-book-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:32px; align-items:start; }
#nyBooking { min-width:0; counter-reset:step; }
.v2-hint { margin:0 0 22px; padding:13px 16px; background:#f7efd9; border-left:3px solid #ac8230; color:#5b4413; font-size:.95rem; font-weight:600; border-radius:0 8px 8px 0; }
.v2-step { margin:0 0 26px; min-width:0; border:0; padding:0; }
.v2-step legend { counter-increment:step; display:flex; align-items:center; gap:10px; font-size:1.1rem; font-weight:800; margin-bottom:16px; color:var(--ink); padding:0; }
/* Numérotation automatique : seules les étapes visibles comptent (pas de « 3 » qui saute). */
.v2-step legend::before { content:counter(step); display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#e8eef0; color:var(--ink); font-size:.85rem; }
.v2-step.is-next legend::before { background:var(--gold); }
.v2-panel { padding:22px; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.v2-panel legend { float:left; width:100%; }
.v2-panel legend+* { clear:both; }
.v2-panel.is-next { border-color:#c5a65b; background:#fffdf7; box-shadow:0 0 0 1px #c5a65b33; }

.v2-sessions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.v2-session { position:relative; display:flex; flex-direction:column; padding:12px; border:2px solid var(--line); border-radius:13px; background:var(--card); cursor:pointer; min-width:0; transition:border-color .15s,box-shadow .15s; }
.v2-session>input { position:absolute; z-index:1; right:20px; top:20px; width:22px; height:22px; margin:0; accent-color:#8a641e; box-shadow:0 0 0 4px #fff; border-radius:50%; }
.v2-session>img { display:block; width:100%; height:auto; aspect-ratio:300/430; object-fit:contain; border-radius:6px; background:#f6f1e9; }
.v2-session-info { display:flex; flex-direction:column; flex:1; padding:14px 4px 2px; }
.v2-session-time { color:var(--muted); font-size:.85rem; }
.v2-session-time strong { color:var(--ink); font-size:1.5rem; letter-spacing:-.02em; margin-right:2px; }
.v2-session-title { font-size:1.05rem; font-weight:800; line-height:1.25; color:var(--ink); margin:8px 0 6px; }
.v2-session-pitch { font-size:.88rem; line-height:1.45; color:#3b4a51; font-style:italic; }
.v2-session-cast { font-size:.8rem; line-height:1.4; color:var(--muted); margin-top:8px; }
.v2-session-meal { font-size:.82rem; line-height:1.4; color:var(--gold-text); margin:10px 0 14px; font-weight:650; }
.v2-session-select { margin-top:auto; padding-top:10px; border-top:1px solid #e8e0d1; font-size:.88rem; color:var(--gold-text); font-weight:800; }
.v2-chosen { display:none; }
.v2-session:hover { border-color:#b49755; box-shadow:0 7px 22px #8b641512; }
.v2-session:has(input:checked) { border-color:#9a772a; background:var(--cream); box-shadow:0 0 0 1px #9a772a; }
.v2-session:has(input:checked) .v2-chosen { display:inline; }
.v2-session:has(input:checked) .v2-idle { display:none; }
.v2-session:focus-within,.v2-choice:focus-within { outline:3px solid #caa44a; outline-offset:3px; }

.v2-formulas { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#nyMealOptions { display:grid; gap:10px; }
.v2-choice { display:flex; align-items:flex-start; gap:12px; padding:16px; border:2px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; }
.v2-choice>input { width:20px; height:20px; margin-top:3px; flex-shrink:0; accent-color:#8a641e; }
.v2-choice strong { display:block; font-size:1.05rem; color:var(--ink); }
.v2-choice small { display:block; font-size:.85rem; color:var(--muted); line-height:1.45; }
.v2-choice small.is-low { color:#9a4a12; font-weight:700; }
.v2-choice-sub { display:block; font-size:.92rem; color:var(--ink); margin:2px 0 4px; }
.v2-choice:has(input:checked) { border-color:#947124; background:#fff9e9; }
.v2-choice:has(input:disabled) { opacity:.6; cursor:not-allowed; }
.v2-price { display:block; font-weight:800; font-size:1.7rem; color:var(--ink); margin:6px 0; }
.v2-price small { display:inline; font-weight:500; font-size:.85rem; }
.v2-step-note { margin:0 0 14px; font-size:.92rem; color:var(--muted); }
.v2-menu-peek { margin-top:16px; font-size:.88rem; color:#3b4a51; }
.v2-menu-peek summary { cursor:pointer; color:var(--gold-text); font-weight:750; }
.v2-menu-peek p { margin:10px 0 0; line-height:1.55; }
.v2-qty { display:inline-flex; align-items:stretch; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; }
.v2-qty input { width:70px; border:0; border-inline:1px solid var(--line); text-align:center; font:inherit; font-size:1.2rem; font-weight:800; color:var(--ink); -moz-appearance:textfield; }
.v2-qty input::-webkit-inner-spin-button,.v2-qty input::-webkit-outer-spin-button { -webkit-appearance:none; }
.v2-qty-btn { width:50px; min-height:50px; border:0; background:#f7f3ec; font-size:1.4rem; color:var(--ink); cursor:pointer; }
.v2-qty-btn:hover { background:#efe6d3; }
.ny-btn { display:inline-flex; justify-content:center; align-items:center; min-height:48px; border:0; border-radius:8px; padding:12px 20px; font:inherit; font-size:.95rem; font-weight:750; cursor:pointer; text-decoration:none; }
.ny-btn.secondary { background:#e8eef0; color:var(--ink); }
.ny-btn:disabled { opacity:.5; cursor:not-allowed; }
.ny-btn:focus-visible { outline:3px solid #caa44a; outline-offset:3px; }
.v2-submit { min-height:54px; padding:14px 28px; font-size:1.02rem; }
.v2-error { color:#9a2525; font-size:.92rem; }
.v2-success { color:var(--ok); font-size:.9rem; }
.v2-small { font-size:.82rem; color:var(--muted); }

.v2-cart { position:sticky; top:136px; padding:0; border:1px solid var(--gold-line); border-radius:14px; background:#fffdf7; box-shadow:0 12px 30px #17384410; max-height:calc(100dvh - 160px); overflow-y:auto; scrollbar-width:thin; scroll-margin-top:120px; }
.v2-cart>h3 { margin:0; padding:14px 22px; font-size:.8rem; font-weight:850; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); background:var(--navy); border-radius:13px 13px 0 0; }
#nySummary { padding:20px 22px 22px; }
.v2-cart-empty { color:var(--muted); font-size:.95rem; line-height:1.5; margin:0 0 6px; }
/* 1. Le spectacle choisi, repère principal */
.v2-cart-show { display:grid; grid-template-columns:56px 1fr; gap:14px; align-items:center; padding-bottom:18px; border-bottom:1px solid #e6dcc5; }
.v2-cart-show img { width:56px; height:80px; object-fit:cover; border-radius:5px; box-shadow:0 4px 12px #081e3122; }
.v2-cart-show strong { display:block; font-size:1.08rem; line-height:1.25; color:var(--ink); margin-bottom:4px; }
.v2-cart-show span { display:block; font-size:.88rem; color:var(--muted); }
/* 2. Lignes façon ticket : libellé à gauche, montant à droite */
.v2-cart-lines { list-style:none; margin:0; padding:0; }
.v2-cart-lines li { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px dashed #e6dcc5; }
.v2-line-label { font-weight:750; color:var(--ink); font-size:.98rem; line-height:1.35; }
.v2-line-label small { display:block; font-weight:400; font-size:.85rem; color:var(--muted); margin-top:3px; }
.v2-line-label small.v2-line-meal { color:var(--gold-text); font-weight:600; }
.v2-line-price { flex-shrink:0; font-weight:800; font-size:1.05rem; color:var(--ink); white-space:nowrap; }
.v2-cart-lines li.is-gift .v2-line-label { font-weight:600; font-size:.9rem; }
.v2-cart-lines li.is-gift .v2-line-price { color:var(--ok); background:#e5f0e6; font-size:.78rem; padding:3px 8px; border-radius:5px; }
.v2-cart-lines li.is-todo .v2-line-label { color:#9a7a33; }
/* 3. Total, le chiffre le plus visible */
.v2-total { display:flex; justify-content:space-between; align-items:baseline; margin:16px 0 0; padding:14px 16px; background:#f7efd9; border-radius:10px; }
.v2-total span { font-weight:800; color:var(--ink); }
.v2-total strong { color:var(--ink); font-size:1.8rem; letter-spacing:-.02em; line-height:1; }
/* 4. Ce qu'il reste à faire */
.v2-cart-todo { margin:12px 0 0; font-size:.88rem; color:#8a5a12; }
.v2-cart-ready { margin:12px 0 0; font-size:.88rem; color:var(--ok); font-weight:700; }

/* Barre panier mobile */
.v2-bar { position:fixed; z-index:60; left:0; right:0; bottom:0; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:var(--navy); color:#fff; box-shadow:0 -8px 24px #081e3133; }
.v2-bar strong { display:block; font-size:1.25rem; color:var(--gold); }
.v2-bar small { display:block; font-size:.82rem; color:#c3ccd3; }
.v2-bar .button { min-height:44px; padding:10px 18px; }

/* Infos pratiques */
.v2-infos-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.v2-info-card { padding:28px; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.v2-info-card h3 { margin:0 0 18px; font-size:1.3rem; line-height:1.3; color:var(--ink); }
.v2-info-card>p { color:var(--muted); font-size:.95rem; }
.v2-access { list-style:none; padding:0; margin:0 0 16px; display:grid; gap:12px; font-size:.95rem; line-height:1.4; }
.v2-access li { display:flex; align-items:center; gap:12px; }
.v2-badge { flex-shrink:0; display:inline-grid; place-items:center; min-width:42px; height:28px; padding:0 6px; border-radius:6px; background:#e6eff1; color:#1f4f60; font-size:.78rem; font-weight:850; }
.v2-badge-bus { background:#f5ecd5; color:var(--gold-text); }
.v2-badge-car { background:#eee; color:#444; }
.v2-faq details { border-bottom:1px solid var(--line); padding:16px 0; }
.v2-faq details:first-child { border-top:1px solid var(--line); }
.v2-faq summary { cursor:pointer; font-weight:750; font-size:1rem; color:var(--ink); list-style-position:outside; }
.v2-faq p { margin:10px 0 0; color:var(--muted); line-height:1.6; font-size:.95rem; }

.v2-admin { font-size:.9rem; }
.v2-admin details { border:1px solid var(--line); padding:20px; border-radius:10px; }
.v2-admin summary { cursor:pointer; font-weight:750; }
.v2-admin fieldset { border:1px solid var(--line); padding:18px; margin:16px 0; border-radius:10px; }
.v2-admin legend { font-weight:750; }
.v2-admin label { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:10px 0; }
.v2-admin input { width:85px; padding:9px; }
.v2-admin .ny-btn { margin:8px 10px 0 0; }

@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} .v2-session,.v2-offer{transition:none;} }
@media(max-width:1000px){
  .v2-book-layout { grid-template-columns:1fr; }
  .v2-cart { position:static; max-height:none; overflow:visible; }
  .v2-moments { gap:16px; }
  .v2-menu { gap:40px; }
}
@media(max-width:760px){
  .nyv2 { --wrap:calc(100% - 32px); }
  .v2-preview a { display:inline-block; margin:3px 8px 0; }
  .nyv2 .site-header { height:74px; padding:8px 16px; gap:10px; }
  .nyv2 .brand img { height:58px; }
  .v2-nav { gap:14px; font-size:.85rem; }
  .v2-nav a[href="#infos"] { display:none; }
  .v2-nav .button { padding:8px 14px; min-height:40px; }
  .v2-hero { grid-template-columns:1fr; }
  .v2-hero-copy { margin-left:0; padding:34px 20px 30px; }
  .v2-hero h1 { font-size:2.35rem; }
  .v2-lead { font-size:1rem; }
  .v2-offer { padding:14px; }
  .v2-offer strong { font-size:1.7rem; }
  .v2-hero-actions { gap:18px; }
  .v2-hero-actions .button { width:100%; }
  .v2-hero-media { min-height:0; height:200px; order:-1; }
  .v2-hero-media::before { background:linear-gradient(0deg,var(--navy),transparent 60%); }
  .v2-year { font-size:4.5rem; right:16px; bottom:8px; }
  .v2-section { margin:56px auto; scroll-margin-top:90px; }
  .v2-moments { grid-template-columns:1fr; }
  .v2-moment { display:grid; grid-template-columns:110px minmax(0,1fr); }
  .v2-moment-visual { height:auto; min-height:100%; }
  .v2-moment-copy { padding:16px 18px; }
  .v2-moment-copy h3 { font-size:1.2rem; margin:8px 0 6px; }
  .v2-moment-copy p:not(.v2-tag) { font-size:.9rem; margin-bottom:6px; }
  .v2-menu { grid-template-columns:1fr; padding:52px 20px; gap:28px; scroll-margin-top:80px; }
  .v2-menu-intro { position:static; }
  .v2-menu-card { padding:26px 22px; }
  .v2-menu-card h3 { font-size:1.75rem; }
  .v2-services { gap:16px; }
  .v2-sessions { grid-template-columns:1fr; gap:12px; }
  .v2-session { display:grid; grid-template-columns:104px minmax(0,1fr); gap:14px; padding:12px; }
  .v2-session>img { width:104px; }
  .v2-session>input { right:auto; left:20px; top:20px; width:20px; height:20px; }
  .v2-session-info { padding:0; }
  .v2-session-time strong { font-size:1.3rem; }
  .v2-session-title { font-size:1rem; margin:4px 0; }
  .v2-session-pitch { font-size:.84rem; }
  .v2-session-cast { display:none; }
  .v2-session-meal { margin:8px 0 10px; }
  .v2-panel { padding:16px; }
  .v2-formulas { grid-template-columns:1fr; gap:12px; }
  .v2-submit { width:100%; }
  .v2-infos-grid { grid-template-columns:1fr; }
  .v2-info-card { padding:22px; }
  body.nyv2 { padding-bottom:env(safe-area-inset-bottom); }
}
@media(max-width:360px){ .v2-nav a[href="#soiree"] { display:none; } .v2-offers { grid-template-columns:1fr; } }
.nyv2 .button>span[aria-hidden] { margin-left:8px; }
.v2-session,.v2-choice { font-weight:400; margin:0; }
@media(max-width:1000px){ .v2-book { padding-bottom:84px; } }
/* Visuels : mention obligatoire pour les images générées */
.v2-hero-media,.v2-moment-visual,.v2-buffet { position:relative; margin:0; }
.v2-moment-poster img { object-position:50% 30%; }
.v2-buffet { margin:6px 0 26px; border-radius:12px; overflow:hidden; box-shadow:0 12px 40px #0006; }
.v2-buffet img { display:block; width:100%; height:auto; }

/* Images d'illustration : un astérisque discret, la mention complète une seule fois en bas de page */
.v2-illu { position:absolute; z-index:3; right:8px; bottom:6px; color:#fff; font-size:1rem; font-weight:700; line-height:1; text-shadow:0 1px 4px #000b; pointer-events:none; }
.v2-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.v2-footnote { margin-top:-40px; font-size:.8rem; color:var(--muted); }

/* Déroulé : frise horaire de 18 h à la nuit */
.v2-timeline { --label:230px; --hours:7; margin-top:36px; padding:28px 30px 30px; border:1px solid var(--gold-line); border-radius:16px; background:var(--cream); }
.v2-timeline-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 24px; margin-bottom:22px; }
.v2-timeline h3 { margin:0; font-size:1.25rem; color:var(--ink); }
.v2-timeline-legend { display:flex; flex-wrap:wrap; gap:8px 18px; list-style:none; margin:0; padding:0; font-size:.85rem; font-weight:700; color:var(--ink); }
.v2-timeline-legend li { display:flex; align-items:center; gap:7px; }
.v2-timeline-legend li::before { content:""; width:22px; height:12px; border-radius:4px; }
.v2-timeline-legend small { font-weight:400; color:var(--muted); }
.v2-timeline-legend .is-show::before { background:var(--ink); }
.v2-timeline-legend .is-meal::before { background:#f6e7bd; border:1.5px dashed #b48a32; }
.v2-timeline-legend .is-dj::before { background:linear-gradient(90deg,#c9a24b,#f1dca0); }
.v2-axis { position:relative; height:22px; margin-left:calc(var(--label) + 20px); font-size:.78rem; font-weight:750; color:var(--gold-text); }
.v2-axis span { position:absolute; left:calc(var(--at) / var(--hours) * 100%); transform:translateX(-50%); white-space:nowrap; }
.v2-axis span:first-child { transform:none; }
.v2-tl { list-style:none; margin:0; padding:0; }
.v2-tl-row { display:grid; grid-template-columns:var(--label) minmax(0,1fr); gap:20px; align-items:center; padding:12px 0; border-top:1px solid #eadfc4; }
.v2-tl-show { display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:center; }
.v2-tl-show img { width:44px; height:63px; object-fit:cover; border-radius:5px; box-shadow:0 3px 10px #081e3122; }
.v2-tl-show strong { display:block; font-size:1.35rem; letter-spacing:-.02em; color:var(--ink); line-height:1.1; }
.v2-tl-show span { display:block; font-size:.88rem; line-height:1.3; color:var(--muted); margin-top:2px; }
.v2-tl-track { position:relative; height:62px; list-style:none; margin:0; padding:0; border-radius:8px;
  background:repeating-linear-gradient(90deg,#e6d9b9 0 1px,transparent 1px calc(100% / var(--hours))); }
.v2-tl-ev { position:absolute; top:6px; bottom:6px; left:calc(var(--from) / var(--hours) * 100%); width:calc((var(--to) - var(--from)) / var(--hours) * 100% - 3px);
  display:flex; flex-direction:column; justify-content:center; padding:0 10px; border-radius:7px; overflow:hidden; white-space:nowrap; font-size:.8rem; line-height:1.3; }
.v2-tl-ev b { font-size:.9rem; }
.v2-tl-ev time,.v2-tl-long { display:none; }
.v2-tl-ev.is-show { background:var(--ink); color:#fff; }
.v2-tl-ev.is-show small { color:#c9d6dc; }
.v2-tl-ev.is-meal { background:#f6e7bd; border:1.5px dashed #b48a32; color:#5f4512; }
.v2-tl-ev.is-meal small { display:none; }
.v2-tl-ev.is-meal time { display:block; }
.v2-tl-ev.is-alt { background:#fbf1d6; }
.v2-tl-ev.is-dj { background:linear-gradient(90deg,#c9a24b,#f1dca0 70%,#fffaf000); color:#3b2a06; }
.v2-tl-ev.is-dj b::before { content:"✦ "; }

/* Parcours : étapes globales */
.v2-progress { display:flex; gap:6px; list-style:none; margin:0 0 26px; padding:0; counter-reset:phase; }
.v2-progress li { counter-increment:phase; flex:1; display:flex; align-items:center; gap:8px; padding:10px 0 0; border-top:4px solid #e3ddd1; font-size:.85rem; font-weight:750; color:var(--muted); }
.v2-progress li::before { content:counter(phase); display:inline-grid; place-items:center; flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#e8eef0; font-size:.75rem; color:var(--ink); }
.v2-progress li.is-done { border-color:#b8975a; color:var(--ink); }
.v2-progress li.is-done::before { content:"✓"; background:#e5d4a6; }
.v2-progress li[aria-current] { border-color:var(--gold); color:var(--ink); }
.v2-progress li[aria-current]::before { background:var(--gold); }
.v2-book-main { min-width:0; }
.v2-checkout { padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--card); scroll-margin-top:130px; }
.v2-checkout h3 { margin:6px 0 8px; font-size:1.35rem; color:var(--ink); letter-spacing:-.02em; }
.v2-checkout-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.v2-back { border:0; background:none; padding:6px 0; font:inherit; font-size:.9rem; font-weight:750; color:var(--gold-text); cursor:pointer; }
.v2-back:hover { text-decoration:underline; }
.v2-timer { margin:0; padding:5px 10px; border-radius:20px; background:#f2eee6; font-size:.82rem; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.v2-timer.is-low { background:#fbe3d3; color:#8a3a0c; }
.v2-timer:empty { display:none; }
.v2-seat-tools { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 20px; margin:14px 0; }
.v2-seat-legend { display:flex; flex-wrap:wrap; gap:6px 14px; list-style:none; margin:0; padding:0; font-size:.8rem; color:var(--muted); }
.v2-seat-legend li { display:flex; align-items:center; gap:6px; }
.v2-seat-legend i { width:14px; height:13px; border-radius:3px; }
.v2-seat-legend .is-or,.v2-seat.is-or { --seat:#d9b25c; }
.v2-seat-legend .is-p1,.v2-seat.is-p1 { --seat:#7fa3b0; }
.v2-seat-legend i.is-or,.v2-seat-legend i.is-p1 { background:var(--seat); }
.v2-seat-legend .is-mine { background:var(--navy); }
.v2-seat-legend .is-taken { background:#d6d2cb; }
.v2-plan { overflow-x:auto; border-radius:12px; background:#f7f4ee; padding:14px 10px 10px; }
.v2-plan svg { display:block; width:100%; min-width:520px; height:auto; margin:0 auto; max-width:620px; }
.v2-seat rect { fill:var(--seat); transition:fill .12s; }
.v2-seat { cursor:pointer; outline:none; }
.v2-seat text { font-size:10px; font-weight:700; fill:#fff; pointer-events:none; text-anchor:middle; }
.v2-seat:hover rect,.v2-seat:focus-visible rect { fill:var(--ink); }
.v2-seat:focus-visible rect { stroke:#caa44a; stroke-width:3; }
.v2-seat.is-mine rect { fill:var(--navy); stroke:var(--gold); stroke-width:2; }
.v2-seat.is-mine text { fill:var(--gold); }
.v2-seat.is-taken,.v2-seat.is-pmr { cursor:not-allowed; }
.v2-seat.is-taken rect,.v2-seat.is-pmr rect { fill:#dcd8d0; }
.v2-seat.is-taken text { fill:#b7b2a8; }
.v2-seat.is-pmr text { fill:#6c7a80; }
.v2-plan .v2-row-label { font-size:11px; font-weight:800; fill:#9a8a66; text-anchor:middle; }
.v2-plan .v2-stage { fill:var(--navy); }
.v2-plan .v2-stage-label { fill:var(--gold); font-size:13px; font-weight:800; letter-spacing:.2em; text-anchor:middle; }
.v2-seat-foot { position:sticky; bottom:0; display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin:14px -24px -24px; padding:14px 24px; background:#fffdf7; border-top:1px solid var(--line); border-radius:0 0 14px 14px; }
.v2-seat-foot p { margin:0; font-size:.95rem; color:var(--ink); }
.v2-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; margin:18px 0; }
.v2-fields label { display:flex; flex-direction:column; gap:6px; margin:0; font-size:.9rem; font-weight:750; color:var(--ink); }
.v2-fields small { font-weight:400; color:var(--muted); }
.v2-fields input,.v2-fields textarea { font:inherit; font-size:1rem; font-weight:400; padding:12px 13px; border:1px solid #cfc7b9; border-radius:8px; background:#fff; color:var(--ink); }
.v2-fields input:focus,.v2-fields textarea:focus { outline:3px solid #caa44a55; border-color:#b08a3a; }
.v2-field-wide { grid-column:1 / -1; }
.v2-pay { min-width:260px; }
.v2-done { border-color:var(--gold-line); background:var(--cream); outline:none; }
.v2-done-badge { display:inline-flex; align-items:center; gap:8px; margin:0; padding:6px 12px; border-radius:20px; background:#e5f0e6; color:var(--ok); font-weight:800; font-size:.88rem; }
.v2-done h3 { font-size:1.7rem; margin:14px 0 6px; }
.v2-done-ref { font-size:1rem; color:var(--muted); margin:0 0 20px; }
.v2-done-ref strong { color:var(--ink); font-size:1.15rem; letter-spacing:.04em; }
.v2-done dl { display:grid; grid-template-columns:150px 1fr; gap:10px 18px; margin:0 0 22px; padding:18px 20px; border-radius:12px; background:#fff; border:1px solid var(--line); }
.v2-done dt { font-size:.85rem; font-weight:750; color:var(--gold-text); }
.v2-done dd { margin:0; color:var(--ink); }
.v2-done ol { margin:0 0 22px; padding-left:20px; line-height:1.7; color:var(--ink); }
.v2-cart-seats { display:block; margin-top:6px; font-size:.85rem; font-weight:700; color:var(--ink)!important; }
.v2-cart-history { padding:0 22px 20px; font-size:.85rem; color:var(--muted); }
.v2-cart-history p { margin:12px 0 4px; font-weight:750; color:var(--ink); }
.v2-cart-history li { display:flex; justify-content:space-between; gap:10px; padding:4px 0; }
.v2-cart-history ul { list-style:none; margin:0; padding:0; }
.v2-cart-history button { border:0; background:none; padding:0; font:inherit; color:var(--gold-text); text-decoration:underline; cursor:pointer; }

@media(max-width:1000px){ .v2-timeline { --label:190px; } }
@media(max-width:760px){
  .v2-illu { right:5px; bottom:3px; font-size:.9rem; }
  .v2-footnote { margin-top:-24px; }
  .v2-timeline { padding:20px 16px; }
  .v2-axis { display:none; }
  .v2-tl-row { grid-template-columns:1fr; gap:10px; padding:16px 0; }
  .v2-tl-track { height:auto; display:grid; gap:6px; background:none; }
  .v2-tl-ev { position:static; width:auto; display:grid; grid-template-columns:60px 1fr; align-items:baseline; gap:0 10px; padding:9px 12px; white-space:normal; -webkit-mask-image:none!important; mask-image:none!important; }
  .v2-tl-ev time { display:block; grid-row:span 2; font-weight:800; font-size:.9rem; }
  .v2-tl-short { display:none; }
  .v2-tl-long { display:inline; }
  .v2-tl-ev small,.v2-tl-ev.is-meal small { display:block; grid-column:2; }
  .v2-tl-ev.is-dj { background:linear-gradient(90deg,#d6b462,#f6e7bd); }
  .v2-progress { gap:4px; }
  .v2-progress li { font-size:0; gap:0; justify-content:center; }
  .v2-progress li[aria-current] { font-size:.8rem; gap:6px; flex:2.4; justify-content:flex-start; }
  .v2-checkout { padding:18px 16px; }
  .v2-seat-foot { margin:14px -16px -18px; padding:12px 16px; }
  .v2-seat-foot .ny-btn { width:100%; }
  .v2-seat-tools .ny-btn { width:100%; }
  .v2-fields { grid-template-columns:1fr; }
  .v2-pay { width:100%; min-width:0; }
  .v2-done dl { grid-template-columns:1fr; gap:2px; }
  .v2-done dd { margin-bottom:10px; }
}
.v2-plan-swipe { display:none; margin:0 0 8px; text-align:center; font-size:.8rem; font-weight:700; color:var(--gold-text); }
@media(max-width:600px){ .v2-plan-swipe { display:block; } }

.v2-consent { display:flex!important; flex-direction:row!important; align-items:flex-start; gap:10px; font-weight:500; }
.v2-consent input { width:18px!important; height:18px; padding:0!important; margin-top:2px; flex:0 0 auto; }

/* Retour en arrière, panier vidé, compte client */
.v2-progress li.is-link { cursor:pointer; }
.v2-progress li.is-link:hover, .v2-progress li.is-link:focus-visible { text-decoration:underline; outline-offset:3px; }
.v2-cart-reset { display:block; margin:12px auto 0; padding:6px 10px; border:0; background:none; color:var(--muted); font:inherit; font-size:.85rem; text-decoration:underline; cursor:pointer; }
.v2-cart-reset:hover { color:var(--ink); }
.v2-resume { margin:0 0 16px; padding:12px 14px; border-radius:10px; background:#fff4d6; color:#5f4512; font-weight:600; }
.v2-account { margin:0 0 18px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:#fffdf7; color:var(--ink); }
.v2-account p { margin:0; line-height:1.5; }
.v2-account p + p { margin-top:4px; }
.v2-account-toggle { padding:0; border:0; background:none; font:inherit; font-weight:700; color:var(--gold-text); cursor:pointer; text-align:left; }
.v2-account-toggle::before { content:"▸ "; }
.v2-account-toggle[aria-expanded="true"]::before { content:"▾ "; }
.v2-account-login[hidden] { display:none; }
.v2-account-login { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; align-items:end; }
.v2-account-login label { display:flex; flex-direction:column; gap:6px; font-size:.9rem; font-weight:750; }
.v2-account-login input { font:inherit; font-weight:400; padding:10px 12px; border:1px solid #cfc7b9; border-radius:8px; }
.v2-account-login a { align-self:center; color:var(--muted); font-size:.85rem; }
.v2-account-login .v2-error { grid-column:1 / -1; margin:0; }
.v2-link-btn { padding:0; border:0; background:none; color:var(--gold-text); font:inherit; font-weight:700; text-decoration:underline; cursor:pointer; }
.v2-fields input[readonly] { background:#f6f3ec; color:var(--muted); }
@media (max-width:600px) { .v2-account-login { grid-template-columns:1fr; } }
