/*
 * Perching Bar — Booking Flow CSS
 * Charte graphique : Bodoni Moda + Josefin Sans + Open Sans
 * Palette : #111111 · #f2ede6 · #fdfaf7 · #e8e0d5
 * Technique slider : translateX sur .pb-slider-track (6 screens × 100%)
 */

/* ─── Google Fonts ─────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Josefin+Sans:wght@300;400;600;700&family=Open+Sans:wght@300;400;500;600&display=swap');

/* ─── Variables ────────────────────────────────────────────────────────────── */
:root {
    --pb-cream:       #f2ede6;
    --pb-cream-l:     #fdfaf7;
    --pb-beige:       #e8e0d5;
    --pb-beige-d:     #d5c9bb;
    --pb-dark:        #111111;
    --pb-dark-mid:    #2a2a2a;
    --pb-text:        #1a1a1a;
    --pb-muted:       #666666;
    --pb-muted-l:     #999999;
    --pb-gold:        #c49b2a;
    --pb-gold-l:      #d4ab3a;
    --pb-forest:      #1e4d2b;
    --pb-forest-l:    #2d6b3e;
    --pb-orange:      #b45309;
    --pb-red:         #c0392b;

    --pb-font-serif:  'Bodoni Moda', Georgia, 'Times New Roman', serif;
    --pb-font-label:  'Josefin Sans', Helvetica, Arial, sans-serif;
    --pb-font-body:   'Open Sans', Arial, sans-serif;

    --pb-radius-sm:   4px;
    --pb-radius:      6px;
    --pb-radius-lg:   10px;
    --pb-shadow:      0 2px 20px rgba(0,0,0,.06);
    --pb-shadow-lg:   0 8px 48px rgba(0,0,0,.12);
}

/* ─── Flow wrapper ─────────────────────────────────────────────────────────── */
.pb-flow {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0;
    font-family: var(--pb-font-body);
    background: var(--pb-cream);
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
}

.pb-screen-inner {
    max-width: 980px;
    margin: 0 auto;
    padding: 2.5rem 2.5rem 3rem;
}
@media (max-width: 768px) {
    .pb-screen-inner { padding: 1.5rem 1.25rem 2rem; }
}
@media (max-width: 480px) {
    .pb-screen-inner { padding: 1.25rem 1rem 1.75rem; }
}

/* ─── Progress bar — style éditorial numéroté ─────────────────────────────── */
.pb-progress {
    display: flex;
    align-items: center;
    padding: 1.5rem 2.5rem 1.25rem;
    gap: 0;
    background: var(--pb-dark);
    border-bottom: none;
}
.pb-progress-dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: transparent;
    border: 1.5px solid rgba(255,255,255,.25);
    color: rgba(255,255,255,.35);
    font-family: var(--pb-font-label);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .05em;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .35s;
    flex-shrink: 0;
    counter-increment: pb-step;
}
.pb-progress-dot.done {
    background: rgba(255,255,255,.15);
    border-color: rgba(255,255,255,.5);
    color: rgba(255,255,255,.75);
}
.pb-progress-dot.done::after {
    content: '✓';
    font-size: .7rem;
}
.pb-progress-dot.active {
    background: var(--pb-gold);
    border-color: var(--pb-gold);
    color: #fff;
    transform: scale(1.15);
    box-shadow: 0 0 0 4px rgba(196,155,42,.22);
}
.pb-progress-dot.clickable {
    cursor: pointer;
}
.pb-progress-dot.clickable:hover {
    transform: scale(1.1);
    border-color: rgba(255,255,255,.8);
    color: #fff;
}
.pb-progress-dot.active.clickable:hover { transform: scale(1.15); }
.pb-progress-line {
    flex: 1;
    height: 1px;
    background: rgba(255,255,255,.15);
    transition: background .35s;
}
.pb-progress-line.done { background: rgba(255,255,255,.4); }

/* Labels des dots (1–6) */
.pb-progress-dot[data-screen="1"]::before { content: '01'; }
.pb-progress-dot[data-screen="2"]::before { content: '02'; }
.pb-progress-dot[data-screen="3"]::before { content: '03'; }
.pb-progress-dot[data-screen="4"]::before { content: '04'; }
.pb-progress-dot[data-screen="5"]::before { content: '05'; }
.pb-progress-dot[data-screen="6"]::before { content: '06'; }
.pb-progress-dot.done::before { content: ''; }

/* ─── SLIDER ───────────────────────────────────────────────────────────────── */
.pb-slider {
    overflow: hidden !important;
    width: 100% !important;
    position: relative;
    /* Fix iOS Safari: will-change:transform sur l'enfant peut faire échapper overflow:hidden */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}
.pb-slider-track {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: 600% !important;
    transition: transform .48s cubic-bezier(.4, 0, .2, 1) !important;
    will-change: transform;
    transform: translateX(0%);
}
.pb-screen {
    width: calc(100% / 6) !important;
    flex-shrink: 0 !important;
    min-height: 540px;
    box-sizing: border-box !important;
    display: block !important;
    visibility: visible !important;
}

/* ─── Eyebrow label — style homepage ──────────────────────────────────────── */
.pb-eyebrow {
    font-family: var(--pb-font-label);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--pb-muted);
    margin-bottom: .6rem;
    display: block;
}

/* ─── Header d'écran ───────────────────────────────────────────────────────── */
.pb-screen-header {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--pb-beige);
}
.pb-screen-header h2 {
    font-family: var(--pb-font-serif);
    font-size: 2rem;
    font-weight: 500;
    color: var(--pb-dark);
    margin: 0 0 .4rem;
    line-height: 1.2;
    letter-spacing: -.01em;
}
.pb-screen-header p {
    font-family: var(--pb-font-body);
    color: var(--pb-muted);
    margin: 0;
    font-size: .9rem;
    font-weight: 300;
}
@media (max-width: 768px) {
    .pb-screen-header h2 { font-size: 1.55rem; }
}

/* ─── Bouton retour ────────────────────────────────────────────────────────── */
.pb-back {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--pb-muted);
    font-family: var(--pb-font-label);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .5rem 0;
    margin-bottom: 1.25rem;
    transition: color .2s;
}
.pb-back:hover { color: var(--pb-dark); }
.pb-back:focus-visible { outline: 2px solid var(--pb-gold); outline-offset: 3px; border-radius: 2px; }

/* ─── ÉCRAN 1 : Formules ───────────────────────────────────────────────────── */

/* Tabs filtres */
.pb-cats {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}
.pb-cat-btn {
    padding: .42rem 1.1rem;
    border-radius: 2px;
    border: 1px solid var(--pb-beige-d);
    background: transparent;
    color: var(--pb-muted);
    font-family: var(--pb-font-label);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
}
.pb-cat-btn:hover { border-color: var(--pb-dark); color: var(--pb-dark); }
.pb-cat-btn.active {
    background: var(--pb-dark);
    color: var(--pb-cream);
    border-color: var(--pb-dark);
}
.pb-cat-btn:focus-visible { outline: 2px solid var(--pb-gold); outline-offset: 2px; }

/* Grille de cards */
/* ─── ÉCRAN 1 : Carousel 3D ────────────────────────────────────────────────── */

#pb-screen-1 .pb-screen-inner--s1 {
    padding-bottom: 1.25rem;
}

.pb-carousel-outer {
    width: 100%;
    overflow: hidden;
    padding: 20px 0 44px;
}
.pb-carousel-scene {
    perspective: 1400px;
    perspective-origin: 50% 50%;
}
.pb-carousel-track {
    position: relative;
    height: 460px; /* ajusté dynamiquement par JS */
    transition: height .4s ease;
    display: flex;
    touch-action: pan-y;    /* mobile : scroll vertical OK, swipe horizontal géré par JS */
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
    cursor: grab;
}
.pb-carousel-track:active { cursor: grabbing; }

/* ── Carte ── */
.pb-c-card {
    position: absolute;
    width: 320px;
    min-height: 380px;
    background: var(--pb-cream-l);
    border: 1px solid var(--pb-beige);
    padding: 34px 30px 30px;
    display: flex;
    flex-direction: column;
    user-select: none;
    transition:
        transform .65s cubic-bezier(.25,.46,.45,.94),
        opacity .55s ease,
        box-shadow .4s ease;
    will-change: transform, opacity;
}

/* Positions 3D */
.pb-c-card[data-pos="-3"],
.pb-c-card[data-pos="3"]  {
    transform: translateX(0) translateZ(-600px) scale(.44);
    opacity: 0;
    pointer-events: none;
}
.pb-c-card[data-pos="-2"] {
    transform: translateX(-400px) translateZ(-240px) rotateY(48deg) scale(.67);
    opacity: .18;
    pointer-events: none;
}
.pb-c-card[data-pos="2"] {
    transform: translateX(400px) translateZ(-240px) rotateY(-48deg) scale(.67);
    opacity: .18;
    pointer-events: none;
}
.pb-c-card[data-pos="-1"] {
    transform: translateX(-268px) translateZ(-105px) rotateY(26deg) scale(.83);
    opacity: .32;
    cursor: pointer;
}
.pb-c-card[data-pos="1"] {
    transform: translateX(268px) translateZ(-105px) rotateY(-26deg) scale(.83);
    opacity: .32;
    cursor: pointer;
}
.pb-c-card[data-pos="0"] {
    transform: translateX(var(--drag-offset, 0px)) translateZ(0) rotateY(0) scale(1);
    opacity: 1;
    cursor: grab;
    box-shadow: 0 32px 80px rgba(0,0,0,.13), 0 8px 24px rgba(0,0,0,.06);
    pointer-events: all;
    cursor: default;
}

/* Variante sombre (By Night) */
.pb-c-card--dark {
    background: var(--pb-dark);
    border-color: #252525;
}
.pb-c-card--dark .pb-c-title,
.pb-c-card--dark .pb-c-price  { color: var(--pb-cream); }
.pb-c-card--dark .pb-c-tagline { color: #777; }
.pb-c-card--dark .pb-c-features li { color: #aaa; }
.pb-c-card--dark .pb-c-footer  { border-color: #252525; }
.pb-c-card--dark .pb-c-badge   { color: var(--pb-gold); border-color: var(--pb-gold); }
.pb-c-card--dark .pb-c-cta     { background: var(--pb-cream); color: var(--pb-dark); }
.pb-c-card--dark .pb-c-cta:hover { background: var(--pb-gold); color: #fff; }

/* Carte désactivée */
.pb-c-card--disabled { opacity: .5; }
.pb-c-card--disabled[data-pos="0"] { opacity: .65; cursor: default; }

/* Perching Adventure — bordure rouge + CTA spécifique */
.pb-c-card[data-category="adventure"] {
  border: 2px solid #c0392b !important;
  box-shadow: 0 0 0 1px rgba(192,57,43,0.25);
}
.pb-c-card[data-category="adventure"] .pb-c-cta--unavailable {
  background: rgba(192,57,43,0.08);
  color: #c0392b;
  border: 1px solid rgba(192,57,43,0.4);
  font-weight: 600;
  letter-spacing: .02em;
}

/* État de drag actif sur la carte centrale */
.pb-c-card[data-pos="0"].pb-c-dragging {
    cursor: grabbing;
    transition: none !important;   /* transition OFF pendant le drag = fluide */
    user-select: none;
}
/* Indicateurs discrets : flèches gauche/droite sur la carte centrale */
.pb-c-card[data-pos="0"]::after {
    content: '← →';
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--pb-font-label);
    font-size: 9px;
    letter-spacing: .18em;
    color: var(--pb-muted-l);
    opacity: 0;
    transition: opacity 200ms ease;
    pointer-events: none;
}
.pb-c-card[data-pos="0"]:hover::after {
    opacity: 1;
}

/* Carte walk-in (sans réservation) */
.pb-c-card--walkin {
    background: var(--pb-cream);
    border: 1.5px dashed var(--pb-beige-d);
}
.pb-c-card--walkin .pb-c-price { font-size: 2.6rem; }
.pb-c-card--walkin .pb-c-footer { flex-direction: column; gap: 14px; align-items: flex-start; }

/* ── Contenu carte ── */
.pb-c-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 22px;
}
.pb-c-badge {
    font-family: var(--pb-font-label);
    font-size: 9px;
    letter-spacing: .22em;
    text-transform: uppercase;
    padding: 5px 11px;
    border: 1px solid var(--pb-beige);
    color: #8a7a6a;
}
.pb-c-badge--night      { color: #7a8898; border-color: #7a8898; }
.pb-c-badge--restaurant { color: #8a6a5a; border-color: #b89a84; }
.pb-c-badge--adventure  { color: #5a7a68; border-color: #8aaa98; }
.pb-c-badge--walkin     { color: var(--pb-muted); border-color: var(--pb-beige-d); }

.pb-c-icon     { opacity: .18; flex-shrink: 0; }
.pb-c-icon svg { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }

.pb-c-tagline {
    font-family: var(--pb-font-body);
    font-size: 10.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--pb-muted-l);
    margin-bottom: 6px;
}
.pb-c-title {
    font-family: var(--pb-font-serif);
    font-size: 1.45rem;
    font-weight: 400;
    line-height: 1.22;
    color: var(--pb-dark);
    margin-bottom: 18px;
}
.pb-c-title em { font-style: italic; }

.pb-c-features {
    list-style: none;
    padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 6px;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
.pb-c-features li {
    font-family: var(--pb-font-body);
    font-size: 12px;
    color: #555;
    padding-left: 15px;
    position: relative;
    line-height: 1.5;
    font-weight: 600 !important;
}
.pb-c-features li::before {
    content: '—';
    position: absolute; left: 0;
    color: var(--pb-gold);
    font-size: 10px;
}

.pb-c-footer {
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid var(--pb-beige);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.pb-c-price {
    font-family: var(--pb-font-serif);
    font-size: 2rem;
    font-weight: 400;
    color: var(--pb-dark);
    line-height: 1;
}
.pb-c-price sub {
    font-family: var(--pb-font-label);
    font-size: 11px;
    font-weight: 400;
    color: var(--pb-muted);
    vertical-align: baseline;
    margin-left: 2px;
}
.pb-c-cta {
    font-family: var(--pb-font-label);
    font-size: 9.5px;
    letter-spacing: .18em;
    text-transform: uppercase;
    padding: 11px 18px;
    background: var(--pb-dark);
    color: var(--pb-cream);
    border: none;
    cursor: pointer;
    transition: background .2s;
}
.pb-c-cta:hover           { background: var(--pb-gold); }
.pb-c-cta--unavailable    { background: var(--pb-beige); color: var(--pb-muted); cursor: default; }
.pb-c-cta--unavailable:hover { background: var(--pb-beige); }
.pb-c-cta--walkin         { background: transparent; border: 1px solid var(--pb-beige-d); color: var(--pb-muted); }
.pb-c-cta--walkin:hover   { background: var(--pb-beige); }

/* ── Navigation carousel ── */
.pb-carousel-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 20px 0 12px;
}
.pb-carousel-btn {
    width: 44px; height: 44px;
    border: 1px solid var(--pb-beige-d);
    background: transparent;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: all .2s;
    color: var(--pb-dark);
    flex-shrink: 0;
}
.pb-carousel-btn:hover { background: var(--pb-dark); border-color: var(--pb-dark); color: var(--pb-cream); }
.pb-carousel-btn svg   { width: 15px; height: 15px; }

.pb-carousel-dots { display: flex; gap: 6px; align-items: center; }
.pb-c-dot {
    width: 6px; height: 6px;
    background: var(--pb-beige);
    border-radius: 3px;
    border: none;
    cursor: pointer;
    transition: all .3s ease;
    padding: 0;
}
.pb-c-dot.active { background: var(--pb-gold); width: 20px; }

/* ─── ÉCRAN 2 : Calendrier ─────────────────────────────────────────────────── */
.pb-bigcal {
    background: var(--pb-cream-l);
    border: 1px solid var(--pb-beige);
    border-radius: 0;
    overflow: hidden;
    width: 100%; /* Fix mobile: explicite pour éviter expansion hors conteneur */
    box-sizing: border-box;
}
.pb-bigcal-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    background: var(--pb-dark);
    color: var(--pb-cream);
}
.pb-bigcal-nav button {
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.2);
    color: var(--pb-cream);
    width: 32px; height: 32px;
    border-radius: 2px;
    font-size: 1rem;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s;
    font-family: var(--pb-font-body);
}
.pb-bigcal-nav button:hover { background: rgba(255,255,255,.2); }
.pb-bigcal-label {
    font-family: var(--pb-font-serif);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .02em;
    text-transform: capitalize;
}

.pb-bigcal-dow {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: var(--pb-beige);
    padding: .5rem 0;
    text-align: center;
}
.pb-bigcal-dow span {
    font-family: var(--pb-font-label);
    font-size: .62rem;
    font-weight: 600;
    color: var(--pb-muted);
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pb-bigcal-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    padding: .6rem;
    gap: .25rem;
}
.pb-bigcal-day {
    aspect-ratio: 1;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--pb-font-body);
    font-size: .85rem;
    font-weight: 400;
    border-radius: 2px;
    cursor: default;
    transition: all .15s;
    min-width: 0; /* Fix mobile: permet aux cellules grid de rétrécir sous la taille du contenu */
}
.pb-bigcal-day.empty     { background: transparent; }

/* ── Fermé (lundi) ────────────────────────────────────────────────────────── */
.pb-bigcal-day.past,
.pb-bigcal-day.closed    { color: var(--pb-beige-d); }

/* ── Ouvert (ven–dim) ─────────────────────────────────────────────────────── */
.pb-bigcal-day.open {
    position: relative;
    color: var(--pb-forest);
    background: rgba(30,77,43,.07);
    cursor: pointer;
    font-weight: 600;
}
.pb-bigcal-day.open:hover { background: var(--pb-forest); color: #fff; }

/* ── Privatif (mar–jeu) ───────────────────────────────────────────────────── */
.pb-bigcal-day.excl {
    position: relative;
    color: #92400e;
    background: rgba(251,191,36,.12);
    border: 1px solid rgba(196,155,42,.45);
    cursor: pointer;
    font-weight: 600;
}
.pb-bigcal-day.excl:hover { background: rgba(196,155,42,.28); }

/* ── Jours fériés (traités comme ouvert) ─────────────────────────────────── */
.pb-bigcal-day.holiday {
    position: relative;
    color: var(--pb-forest);
    background: rgba(30,77,43,.07);
    border: 1px solid rgba(59,130,246,.3);
    cursor: pointer;
    font-weight: 600;
}
.pb-bigcal-day.holiday:hover { background: var(--pb-forest); color: #fff; }

/* ── Last-minute (appel obligatoire) ─────────────────────────────────────── */
.pb-bigcal-day.last-minute {
    position: relative;
    background: rgba(239,68,68,.08);
    color: #9ca3af;
    cursor: pointer;
    aspect-ratio: auto;
    min-height: 52px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 4px 2px;
}
.pb-bigcal-day.last-minute:hover {
    background: rgba(239,68,68,.18);
}
.pb-cal-lm-hint {
    display: block;
    font-size: 11px;
    line-height: 1.2;
    color: #ef4444;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
.pb-cal-day-num {
    display: block;
    font-size: .85rem;
    line-height: 1;
    color: #9ca3af;
}

/* Tooltip téléphone au survol (desktop) */
.pb-bigcal-day.last-minute[data-phone]:hover::after {
    content: attr(data-phone);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: #1a1a1a;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    padding: 5px 10px;
    border-radius: 6px;
    pointer-events: none;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.pb-bigcal-day.last-minute[data-phone]:hover::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: #1a1a1a;
    z-index: 100;
}

.pb-bigcal-day.today    { outline: 1px solid var(--pb-gold); outline-offset: -2px; }
.pb-bigcal-day.selected {
    background: var(--pb-dark) !important;
    color: var(--pb-cream) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.2);
}

/* ── Badges sur les jours ────────────────────────────────────────────────── */
.pb-cal-badge {
    position: absolute;
    top: -4px; right: -4px;
    font-size: 9px;
    line-height: 1;
    pointer-events: none;
}

/* ── Notice jour exclusif / last-minute ──────────────────────────────────── */
.pb-excl-notice {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    border-radius: 10px;
    padding: 16px 18px;
    margin-top: 14px;
    animation: pbFadeIn .2s ease;
}
.pb-excl-notice--excl {
    background: #FFFBEB;
    border: 1px solid #FCD34D;
}
.pb-excl-notice--lm {
    background: #FEF2F2;
    border: 1px solid #FCA5A5;
}
.pb-excl-notice-icon { font-size: 24px; flex-shrink: 0; margin-top: 2px; }
.pb-excl-notice-body { flex: 1; }
.pb-excl-notice-body strong { font-size: 15px; color: #1a2e1a; display: block; margin-bottom: 6px; }
.pb-excl-notice-body p { font-size: 13px; color: #374151; margin: 0 0 8px; }
.pb-excl-notice-min {
    font-size: 13px;
    color: #92400E;
    background: rgba(251,191,36,.2);
    border-radius: 5px;
    padding: 5px 10px;
    margin-bottom: 6px;
    display: inline-block;
}
.pb-excl-notice-deadline { font-size: 12px; color: #6b7280; margin-bottom: 8px; }
.pb-excl-notice-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.pb-excl-notice-actions .pb-btn-back {
    background: transparent;
    border: 1px solid #d1d5db;
    color: #374151;
    padding: 7px 14px;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    font-family: inherit;
}
.pb-excl-notice-actions .pb-btn-back:hover { background: #f3f4f6; }
.pb-excl-notice-actions .pb-btn-primary {
    background: var(--pb-forest, #2d6a2d);
    color: #fff;
    border: none;
    padding: 7px 14px;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    font-weight: 600;
    font-family: inherit;
}
.pb-excl-notice-actions .pb-btn-primary:hover { background: var(--pb-dark, #1a2e1a); }

.pb-bigcal-legend {
    display: flex; gap: 1rem; flex-wrap: wrap;
    justify-content: center;
    padding: .75rem 1rem;
    border-top: 1px solid var(--pb-beige);
    font-family: var(--pb-font-label);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--pb-muted);
}
.pb-leg-item { display: flex; align-items: center; gap: .35rem; }
.pb-leg-item::before { content: ''; width: 8px; height: 8px; border-radius: 2px; }
.pb-leg-open::before        { background: rgba(30,77,43,.2); }
.pb-leg-excl::before        { background: rgba(196,155,42,.45); }
.pb-leg-closed-leg::before  { background: var(--pb-beige); }
/* Legacy classes (conservées pour compatibilité) */
.pb-leg-available::before  { background: rgba(30,77,43,.15); }
.pb-leg-limited::before    { background: rgba(180,83,9,.15); }
.pb-leg-full::before       { background: var(--pb-beige); }

/* ─── Bandeau contextuel écran 2 (formules) ────────────────────────────────── */
.pb-day-banner {
    display: flex;
    gap: 12px;
    align-items: center;
    border-radius: 8px;
    padding: 14px 18px;
    margin: 0 0 1.25rem;
    animation: pbFadeIn .25s ease;
}
.pb-day-banner--open {
    background: rgba(30,77,43,.06);
    border: 1px solid rgba(30,77,43,.18);
}
.pb-day-banner--excl {
    background: #FFFBEB;
    border: 1px solid #FCD34D;
}
.pb-day-banner-icon {
    font-size: 20px;
    flex-shrink: 0;
    line-height: 1;
}
.pb-day-banner-body { flex: 1; }
.pb-day-banner-body strong {
    display: block;
    font-family: var(--pb-font-label);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.pb-day-banner--open  .pb-day-banner-body strong { color: var(--pb-forest); }
.pb-day-banner--excl  .pb-day-banner-body strong { color: #92400e; }
.pb-day-banner-body p {
    font-size: .8rem;
    color: var(--pb-muted);
    margin: 0;
    line-height: 1.5;
}
.pb-day-banner--excl .pb-day-banner-body p { color: #78350f; }

/* ═══════════════════════════════════════════════════════════════════════════
   Guided Path v2 — Layout split 2 colonnes (style carte carousel)
   ═══════════════════════════════════════════════════════════════════════════ */
#pb-guided-path {
    padding: .5rem 0 1.5rem;
    animation: pbFadeIn .28s ease;
}
/* ── Split layout ── */
.pb-gp-split {
    display: flex;
    gap: 16px;
    align-items: stretch;
}
/* ── Colonnes (style pb-c-card) ── */
.pb-gp-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: var(--pb-cream-l);
    border: 1.5px solid var(--pb-beige);
    border-radius: var(--pb-radius-lg);
    box-shadow: var(--pb-shadow);
    padding: 22px 20px;
    position: relative;
    animation: pbFadeIn .3s ease;
}
.pb-gp-col--excl { border-top: 3px solid var(--pb-gold); }
.pb-gp-col--open { border-top: 3px solid var(--pb-forest); flex: 0 0 36%; }
/* ── Badge (style pb-c-badge) ── */
.pb-gp-col-badge {
    font-family: var(--pb-font-label);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
    border: 1px solid;
    border-radius: 2px;
    display: inline-block;
    padding: 2px 7px;
    margin-bottom: 12px;
    width: fit-content;
}
.pb-gp-col-badge--excl { color: #8a6a3a; border-color: var(--pb-gold); }
.pb-gp-col-badge--open  { color: var(--pb-forest); border-color: var(--pb-forest); }
/* ── Titre jour (style pb-c-title) ── */
.pb-gp-col-days {
    font-family: var(--pb-font-serif);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--pb-dark);
    line-height: 1.15;
    margin-bottom: 9px;
}
.pb-gp-col-days--open { color: var(--pb-forest); }
/* ── Tagline (style pb-c-tagline) ── */
.pb-gp-col-tagline {
    font-family: var(--pb-font-body);
    font-size: 13px;
    color: var(--pb-muted);
    line-height: 1.6;
    margin: 0 0 12px;
    font-weight: 300;
}
/* ── Séparateur (style pb-c-footer border) ── */
.pb-gp-col-divider {
    border: none;
    border-top: 1px solid var(--pb-beige);
    margin: 0 -20px 14px;
}
/* ── Label question ── */
.pb-gp-col-question {
    font-family: var(--pb-font-label);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--pb-muted);
    margin-bottom: 8px;
}
/* ── Choices : feature list cliquables (style pb-c-features) ── */
.pb-gp-col-choices { display: flex; flex-direction: column; flex: 1; }
.pb-gp-choice {
    display: flex;
    align-items: center;
    gap: 10px;
    background: none;
    border: none;
    border-bottom: 1px solid var(--pb-beige);
    padding: 11px 0;
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: padding-left .15s;
}
.pb-gp-choice:first-child { border-top: 1px solid var(--pb-beige); }
.pb-gp-choice:hover { padding-left: 6px; }
.pb-gp-choice::before {
    content: '—';
    font-family: var(--pb-font-body);
    color: var(--pb-gold);
    font-size: .85rem;
    flex-shrink: 0;
}
.pb-gp-choice-label {
    font-family: var(--pb-font-serif);
    font-size: 1.05rem;
    color: var(--pb-dark);
    flex: 1;
    line-height: 1.2;
}
.pb-gp-choice-meta {
    font-family: var(--pb-font-body);
    font-size: .78rem;
    color: var(--pb-muted);
    white-space: nowrap;
    font-weight: 300;
}
.pb-gp-choice-arrow { color: var(--pb-muted-l); font-size: .8rem; flex-shrink: 0; }
/* ── Features jours ouverts (style pb-c-features) ── */
.pb-gp-open-features {
    list-style: none;
    padding: 0; margin: 0 0 16px;
    display: flex; flex-direction: column; gap: 8px;
    flex: 1;
}
.pb-gp-open-features li {
    font-family: var(--pb-font-body);
    font-size: 14px;
    color: var(--pb-text);
    font-weight: 300;
    padding-left: 16px;
    position: relative;
}
.pb-gp-open-features li::before {
    content: '—';
    position: absolute; left: 0;
    color: var(--pb-forest); font-size: .8rem;
}
/* ── Prix jours ouverts (style pb-c-price) ── */
.pb-gp-open-price {
    font-family: var(--pb-font-serif);
    font-size: 1.9rem;
    font-weight: 500;
    color: var(--pb-forest);
    line-height: 1;
    margin-bottom: 16px;
}
.pb-gp-open-price small {
    font-size: .55em;
    font-family: var(--pb-font-label);
    color: var(--pb-muted);
    font-weight: 300;
}
/* ── CTA jours ouverts (style pb-c-cta) ── */
.pb-gp-other-day {
    display: block;
    width: 100%;
    padding: 11px 16px;
    background: var(--pb-forest);
    color: #fff;
    font-family: var(--pb-font-label);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    border: none;
    border-radius: var(--pb-radius);
    cursor: pointer;
    transition: background .18s;
    text-align: center;
    margin-top: auto;
}
.pb-gp-other-day:hover { background: var(--pb-forest-l); }
/* ── Lien retour ── */
.pb-gp-back-link {
    background: none; border: none; cursor: pointer;
    font-family: var(--pb-font-label);
    font-size: .62rem; font-weight: 700;
    letter-spacing: .08em; text-transform: uppercase;
    color: var(--pb-muted); padding: 0; margin-bottom: 14px;
    transition: color .15s; display: block;
}
.pb-gp-back-link:hover { color: var(--pb-text); }
/* ── Cartes produits step 2 (feature list) ── */
.pb-gp-col-products { display: flex; flex-direction: column; }
.pb-gp-pcard {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 0;
    border-bottom: 1px solid var(--pb-beige);
    cursor: pointer;
    transition: padding-left .15s;
}
.pb-gp-pcard:first-child { border-top: 1px solid var(--pb-beige); }
.pb-gp-pcard:hover { padding-left: 6px; }
.pb-gp-pcard::before {
    content: '—'; font-family: var(--pb-font-body);
    color: var(--pb-gold); font-size: .85rem; flex-shrink: 0;
}
.pb-gp-pcard-info { flex: 1; min-width: 0; }
.pb-gp-pcard-name {
    font-family: var(--pb-font-serif);
    font-size: 1.1rem; color: var(--pb-dark);
    margin-bottom: 2px; line-height: 1.2;
}
.pb-gp-pcard-tagline { font-size: .78rem; color: var(--pb-muted); font-weight: 300; }
.pb-gp-pcard-features {
    list-style: none; margin: 7px 0 0; padding: 0;
    display: flex; flex-direction: column; gap: 3px;
}
.pb-gp-pcard-features li { font-size: .78rem; color: var(--pb-muted); font-weight: 300; }
.pb-gp-pcard-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.pb-gp-pcard-price {
    font-family: var(--pb-font-serif);
    font-size: 1.3rem; color: var(--pb-dark);
    text-align: right; line-height: 1.1;
}
.pb-gp-pcard-price small {
    display: block; font-family: var(--pb-font-label);
    font-size: .56rem; color: var(--pb-muted); font-weight: 300;
}
.pb-gp-pcard-arrow { color: var(--pb-muted-l); font-size: .85rem; }
/* ── Compteur groupe ── */
.pb-gp-group-wrap { display: flex; flex-direction: column; gap: 14px; }
.pb-gp-counter { display: flex; align-items: center; gap: 14px; }
.pb-gp-count-btn {
    width: 40px; height: 40px; border-radius: 50%;
    border: 1.5px solid var(--pb-beige);
    background: var(--pb-cream-l);
    font-size: 1.2rem; cursor: pointer; color: var(--pb-dark);
    display: flex; align-items: center; justify-content: center;
    transition: border-color .18s, background .18s; line-height: 1;
}
.pb-gp-count-btn:hover:not(:disabled) { border-color: var(--pb-forest); background: rgba(30,77,43,.08); }
.pb-gp-count-btn:disabled { opacity: .3; cursor: not-allowed; }
.pb-gp-count-val {
    font-family: var(--pb-font-serif); font-size: 1.8rem;
    color: var(--pb-dark); min-width: 2rem; text-align: center;
}

/* ── Aperçu prix groupe ── */
.pb-gp-price-preview {
    background: rgba(30,77,43,.05);
    border-radius: var(--pb-radius);
    padding: 12px 14px; text-align: center;
}
.pb-gp-pp-formula {
    font-family: var(--pb-font-label); font-size: .62rem;
    letter-spacing: .1em; text-transform: uppercase;
    color: var(--pb-muted); margin-bottom: 4px;
}
.pb-gp-pp-total { font-family: var(--pb-font-serif); font-size: 1.7rem; color: var(--pb-forest); }
.pb-gp-pp-detail { font-size: .7rem; color: var(--pb-muted); margin-top: 2px; }
/* ── Forfait fixe groupe ── */
.pb-gp-forfait-card {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 0;
    border-bottom: 1px solid var(--pb-beige);
    border-top: 1px solid var(--pb-beige);
}
.pb-gp-forfait-card::before {
    content: '—'; font-family: var(--pb-font-body);
    color: var(--pb-gold); font-size: .85rem; flex-shrink: 0;
}
.pb-gp-forfait-info { flex: 1; min-width: 0; }
.pb-gp-forfait-title {
    font-family: var(--pb-font-serif);
    font-size: 1.1rem; color: var(--pb-dark);
    margin-bottom: 2px; line-height: 1.2;
}
.pb-gp-forfait-detail {
    font-size: .78rem; color: var(--pb-muted); font-weight: 300;
}
.pb-gp-forfait-price {
    font-family: var(--pb-font-serif);
    font-size: 1.3rem; color: var(--pb-dark);
    text-align: right; line-height: 1.1; flex-shrink: 0;
}
.pb-gp-forfait-price strong {
    display: block;
    font-family: var(--pb-font-serif);
    font-size: 1.3rem;
    color: var(--pb-forest);
    font-weight: 600;
}
.pb-gp-forfait-price small {
    display: block; font-family: var(--pb-font-label);
    font-size: .56rem; color: var(--pb-muted); font-weight: 300;
}
/* ── Responsive ── */
@media (max-width: 620px) {
    .pb-gp-split { flex-direction: column; }
    .pb-gp-col--open { flex: unset; }
    .pb-gp-col-days { font-size: 1.3rem; }
}

/* Loading */
.pb-loading {
    display: flex; align-items: center; justify-content: center; gap: .75rem;
    padding: 2.5rem; color: var(--pb-muted);
    font-family: var(--pb-font-label);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.pb-spinner {
    width: 18px; height: 18px;
    border: 2px solid var(--pb-beige);
    border-top-color: var(--pb-dark);
    border-radius: 50%;
    animation: pbSpin 1s linear infinite;
    flex-shrink: 0;
}
@keyframes pbSpin { to { transform: rotate(360deg); } }

/* ─── ÉCRAN 3 : Créneaux ───────────────────────────────────────────────────── */
.pb-slots-label {
    font-family: var(--pb-font-body);
    font-size: .82rem;
    color: var(--pb-muted);
    font-style: italic;
    font-weight: 300;
    margin-bottom: 1.25rem;
}
.pb-slots-section-title {
    font-family: var(--pb-font-label);
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .15em;
    color: var(--pb-muted);
    margin: 1.5rem 0 .65rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--pb-beige);
}
.pb-slots-section-title:first-child { margin-top: 0; }

.pb-slot-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
    gap: .4rem;
    margin-bottom: .35rem;
}
.pb-slot-pill {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: .65rem .25rem;
    border-radius: 0;
    border: 1px solid var(--pb-beige);
    background: var(--pb-cream-l);
    text-align: center;
    transition: all .15s;
    cursor: default;
}
.pb-slot-pill[data-time] { cursor: pointer; }
.pb-slot-pill[data-time]:hover {
    border-color: var(--pb-dark);
    background: var(--pb-cream);
}
.pb-slot-pill.selected {
    background: var(--pb-dark) !important;
    border-color: var(--pb-dark) !important;
    color: #fff !important;
}
.pb-slot-pill.selected .pb-slot-time,
.pb-slot-pill.selected .pb-slot-avail { color: var(--pb-cream); }
.pb-slot-pill.full { opacity: .35; cursor: not-allowed; }
.pb-slot-pill.group_blocked { background: #fef2f2; border-color: #ef4444; cursor: not-allowed; }
.pb-slot-pill.group_blocked .pb-slot-time,
.pb-slot-pill.group_blocked .pb-slot-avail { color: #dc2626; }
.pb-slot-pill.limited .pb-slot-avail { color: var(--pb-orange); }
.pb-slot-pill:focus-visible { outline: 2px solid var(--pb-gold); outline-offset: 1px; }

.pb-slot-time  {
    font-family: var(--pb-font-serif);
    font-size: .9rem;
    font-weight: 500;
    color: var(--pb-dark);
    line-height: 1;
}
.pb-slot-avail {
    font-family: var(--pb-font-label);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--pb-muted);
    margin-top: .25rem;
    line-height: 1;
}

.pb-no-slots {
    text-align: center;
    padding: 2.5rem 1rem;
    color: var(--pb-muted);
    font-family: var(--pb-font-body);
    font-weight: 300;
}
.pb-no-slots p { margin: 0 0 1rem; }

/* ─── Notice danger ────────────────────────────────────────────────────────── */
.pb-notice-danger {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    background: #fff5f5;
    border: 1px solid #f5c6c6;
    border-left: 3px solid var(--pb-red);
    border-radius: 0;
    padding: 1rem 1.1rem;
    margin-bottom: .75rem;
}
.pb-notice-danger .pb-notice-icon {
    font-size: 1.2rem;
    line-height: 1;
    flex-shrink: 0;
}
.pb-notice-danger div {
    display: flex; flex-direction: column; gap: .15rem;
}
.pb-notice-danger strong {
    font-family: var(--pb-font-label);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pb-red);
    display: block;
}
.pb-notice-danger span {
    font-family: var(--pb-font-body);
    font-size: .8rem;
    font-weight: 300;
    color: #7f1d1d;
}

/* ─── ÉCRAN 4 : Groupe ─────────────────────────────────────────────────────── */
.pb-group-wrap { display: flex; flex-direction: column; gap: 1px; background: var(--pb-beige); border: 1px solid var(--pb-beige); }
.pb-group-row {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--pb-cream-l);
    padding: 1.15rem 1.5rem;
}
.pb-group-row-info strong {
    font-family: var(--pb-font-serif);
    font-weight: 500;
    display: block;
    font-size: 1rem;
    color: var(--pb-dark);
    margin-bottom: .15rem;
}
.pb-group-row-info span {
    font-family: var(--pb-font-body);
    font-size: .75rem;
    color: var(--pb-muted);
    font-weight: 300;
}

.pb-counter { display: flex; align-items: center; gap: .65rem; }
.pb-counter-btn {
    width: 32px; height: 32px;
    border-radius: 2px;
    border: 1px solid var(--pb-beige-d);
    background: var(--pb-cream);
    color: var(--pb-dark);
    font-size: 1rem;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all .15s;
    font-family: var(--pb-font-body);
}
.pb-counter-btn:hover { border-color: var(--pb-dark); background: var(--pb-dark); color: var(--pb-cream); }
.pb-counter-btn:focus-visible { outline: 2px solid var(--pb-gold); outline-offset: 2px; }
.pb-counter-val {
    min-width: 28px;
    text-align: center;
    font-family: var(--pb-font-serif);
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--pb-dark);
}

.pb-age-notice {
    background: rgba(180,83,9,.06);
    border: 1px solid rgba(180,83,9,.2);
    border-left: 3px solid var(--pb-orange);
    padding: .85rem 1rem;
    font-family: var(--pb-font-body);
    font-size: .8rem;
    font-weight: 300;
    color: #92400e;
    border-radius: 0;
}
.pb-capacity-bar {
    height: 3px;
    background: var(--pb-beige);
    overflow: hidden;
    border-radius: 0;
    margin: 0 1.5rem;
}
.pb-capacity-fill { height: 100%; background: var(--pb-forest); transition: width .3s, background .3s; }
.pb-capacity-label {
    font-family: var(--pb-font-label);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pb-muted);
    margin: .4rem 1.5rem 0;
    text-align: right;
}

.pb-group-footer {
    margin-top: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.15rem 1.5rem;
    background: var(--pb-dark);
}
.pb-subtotal {
    font-family: var(--pb-font-label);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
}
.pb-subtotal strong {
    font-family: var(--pb-font-serif);
    color: var(--pb-cream);
    font-size: 1.35rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    display: block;
    margin-top: .1rem;
}

/* ─── Boutons ──────────────────────────────────────────────────────────────── */
.pb-btn-next,
.pb-btn-cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .7rem 1.75rem;
    border-radius: 0;
    font-family: var(--pb-font-label);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: all .2s;
}
.pb-btn-next {
    background: var(--pb-dark);
    color: var(--pb-cream);
}
.pb-btn-next:hover { background: var(--pb-dark-mid); transform: translateY(-1px); }

.pb-btn-cta {
    background: var(--pb-dark);
    color: var(--pb-cream);
    width: 100%;
    justify-content: center;
    font-size: .75rem;
    padding: 1.1rem;
}
.pb-btn-cta:hover { background: var(--pb-dark-mid); transform: translateY(-1px); }
.pb-btn-cta:disabled { opacity: .45; cursor: default; transform: none; }

/* Bouton "next" dans le footer sombre */
.pb-group-footer .pb-btn-next {
    background: var(--pb-gold);
    color: #fff;
    padding: .65rem 1.5rem;
}
.pb-group-footer .pb-btn-next:hover { background: var(--pb-gold-l); }

.pb-btn-next:focus-visible,
.pb-btn-cta:focus-visible { outline: 2px solid var(--pb-gold); outline-offset: 3px; }

/* ─── ÉCRAN 5 : Options ────────────────────────────────────────────────────── */
.pb-options-wrap {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--pb-beige);
    border: 1px solid var(--pb-beige);
}
.pb-option-row {
    display: flex; align-items: center; gap: 1rem;
    background: var(--pb-cream-l);
    padding: 1.1rem 1.5rem;
    cursor: pointer;
    transition: background .15s;
}
.pb-option-row:hover { background: var(--pb-cream); }
.pb-option-row.checked { background: var(--pb-dark); }
.pb-option-row.checked .pb-option-body strong { color: var(--pb-cream); }
.pb-option-row.checked .pb-option-body span { color: rgba(255,255,255,.55); }
.pb-option-row.checked .pb-option-price { color: var(--pb-gold); }
.pb-option-row:focus-visible { outline: 2px solid var(--pb-gold); outline-offset: -2px; }

.pb-option-icon { font-size: 1.25rem; flex-shrink: 0; }
.pb-option-body { flex: 1; min-width: 0; }
.pb-option-body strong {
    font-family: var(--pb-font-serif);
    display: block;
    font-size: .95rem;
    font-weight: 500;
    color: var(--pb-dark);
    margin-bottom: .15rem;
}
.pb-option-body span {
    font-family: var(--pb-font-body);
    font-size: .75rem;
    font-weight: 300;
    color: var(--pb-muted);
}
.pb-option-price {
    font-family: var(--pb-font-label);
    font-weight: 700;
    font-size: .72rem;
    letter-spacing: .05em;
    color: var(--pb-dark);
    flex-shrink: 0;
    text-transform: uppercase;
}
.pb-option-check {
    width: 20px; height: 20px;
    border-radius: 2px;
    border: 1.5px solid var(--pb-beige-d);
    display: flex; align-items: center; justify-content: center;
    transition: all .15s; flex-shrink: 0;
}
.pb-option-row.checked .pb-option-check { background: var(--pb-gold); border-color: var(--pb-gold); }
.pb-option-row.checked .pb-option-check::after { content: '✓'; color: #fff; font-size: .72rem; font-weight: 700; }
.pb-options-footer { margin-top: 1.75rem; text-align: right; }

/* ─── ÉCRAN 5 : Add-on Finger Foods ────────────────────────────────────────── */
.pb-s5-body { margin-top: 1rem; }

.pb-addon-card {
    background: var(--pb-cream-l);
    border: 1.5px solid var(--pb-beige);
    border-radius: var(--pb-radius-lg);
    padding: 22px 20px 18px;
    box-shadow: var(--pb-shadow);
    transition: border-color .2s, box-shadow .2s;
}
.pb-addon-card--on {
    border-color: var(--pb-gold);
    box-shadow: 0 2px 16px rgba(191,155,96,.18);
}
.pb-addon-badge {
    display: inline-block;
    font-family: 'Josefin Sans', sans-serif;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pb-gold);
    border: 1px solid var(--pb-gold);
    border-radius: 3px;
    padding: 2px 8px;
    margin-bottom: 10px;
}
.pb-addon-title-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 6px;
}
.pb-addon-name {
    font-family: 'Bodoni Moda', serif;
    font-size: 1.35rem;
    font-weight: 400;
    color: var(--pb-dark);
    margin: 0;
}
.pb-addon-unitprice {
    font-family: 'Bodoni Moda', serif;
    font-size: 1.1rem;
    color: var(--pb-forest);
    white-space: nowrap;
}
.pb-addon-per { font-size: .78rem; color: var(--pb-muted); }
.pb-addon-tagline {
    font-size: .9rem;
    color: var(--pb-dark);
    line-height: 1.5;
    margin: 0 0 4px;
}
.pb-addon-note {
    font-size: .78rem;
    color: var(--pb-muted);
    font-style: italic;
    margin: 0 0 16px;
}

/* Toggle switch */
.pb-addon-toggle-row {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    margin-bottom: 0;
    padding: 12px 0 4px;
    border-top: 1px solid var(--pb-beige);
}
.pb-toggle-input { display: none; }
.pb-toggle-track {
    position: relative;
    width: 44px;
    height: 24px;
    background: var(--pb-beige);
    border-radius: 12px;
    flex-shrink: 0;
    transition: background .2s;
}
.pb-toggle-track--on { background: var(--pb-gold); }
.pb-toggle-thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(0,0,0,.2);
    transition: transform .2s;
}
.pb-toggle-track--on .pb-toggle-thumb { transform: translateX(20px); }
.pb-addon-toggle-label {
    font-size: .88rem;
    color: var(--pb-dark);
    font-family: 'Open Sans', sans-serif;
}

/* Finger foods detail */
.pb-ff-detail {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed var(--pb-beige);
}
.pb-ff-min {
    font-size: .8rem;
    color: var(--pb-muted);
    margin: 0 0 10px;
    font-style: italic;
}
.pb-ff-counter {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 10px;
}
.pb-ff-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid var(--pb-gold);
    background: transparent;
    color: var(--pb-gold);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, color .15s;
    display: flex; align-items: center; justify-content: center;
}
.pb-ff-btn:hover { background: var(--pb-gold); color: #fff; }
.pb-ff-qty-wrap {
    font-family: 'Bodoni Moda', serif;
    font-size: 1.3rem;
    color: var(--pb-dark);
}
.pb-ff-unit { font-size: .85rem; color: var(--pb-muted); }
.pb-ff-subtotal {
    font-size: .9rem;
    color: var(--pb-dark);
}
.pb-ff-subtotal strong {
    font-family: 'Bodoni Moda', serif;
    font-size: 1.15rem;
    color: var(--pb-forest);
}

/* ─── ÉCRAN 6 : Récap ──────────────────────────────────────────────────────── */
.pb-recap-wrap {
    background: var(--pb-cream-l);
    border: 1px solid var(--pb-beige);
    border-radius: 0;
    overflow: hidden;
    margin-bottom: 1.75rem;
}
.pb-recap-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--pb-beige);
    font-size: .85rem;
}
.pb-recap-row span {
    font-family: var(--pb-font-label);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--pb-muted);
}
.pb-recap-row strong {
    font-family: var(--pb-font-serif);
    font-weight: 500;
    font-size: .95rem;
    color: var(--pb-dark);
    text-align: right;
    max-width: 60%;
}
.pb-recap-detail {
    border-top: 1px solid var(--pb-beige);
    padding: .75rem 1.5rem .4rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    background: var(--pb-cream);
}
.pb-recap-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--pb-font-body);
    font-size: .8rem;
    font-weight: 300;
    color: var(--pb-muted);
    gap: .5rem;
}
.pb-recap-line span:first-child { flex: 1; }
.pb-recap-line span:last-child { text-align: right; white-space: nowrap; }
.pb-recap-line strong { color: var(--pb-dark); font-weight: 600; }
.pb-recap-total {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1.1rem 1.5rem;
    background: var(--pb-dark);
}
.pb-recap-total span {
    font-family: var(--pb-font-label);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
}
.pb-recap-total strong {
    font-family: var(--pb-font-serif);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--pb-cream);
}
.pb-recap-note {
    text-align: center;
    font-family: var(--pb-font-label);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--pb-muted);
    margin-bottom: 1rem;
}

/* (styles ancienne grille supprimés — carousel 3D actif) */

/* ─── Message panier ───────────────────────────────────────────────────────── */
.pb-cart-msg {
    margin-top: 1rem;
    padding: .85rem 1.25rem;
    border-radius: 0;
    font-family: var(--pb-font-label);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    text-align: center;
}
.pb-cart-msg.success { background: rgba(30,77,43,.07); color: var(--pb-forest); border: 1px solid rgba(30,77,43,.18); }
.pb-cart-msg.error   { background: rgba(192,57,43,.06); color: var(--pb-red); border: 1px solid rgba(192,57,43,.18); }

/* ─── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .pb-c-card { width: 285px; min-height: 360px; padding: 28px 24px; }
    .pb-c-card[data-pos="-1"] { transform: translateX(-218px) translateZ(-88px) rotateY(22deg) scale(.82); opacity: .28; }
    .pb-c-card[data-pos="1"]  { transform: translateX(218px)  translateZ(-88px) rotateY(-22deg) scale(.82); opacity: .28; }
    .pb-c-card[data-pos="-2"] { transform: translateX(-360px) translateZ(-200px) rotateY(44deg) scale(.62); opacity: .14; }
    .pb-c-card[data-pos="2"]  { transform: translateX(360px)  translateZ(-200px) rotateY(-44deg) scale(.62); opacity: .14; }
}
@media (max-width: 768px) {
    .pb-progress { padding: 1rem 1.25rem .85rem; }
    .pb-progress-dot { width: 24px; height: 24px; font-size: .55rem; }
}
@media (max-width: 600px) {
    .pb-carousel-outer { padding: 14px 0 28px; }
    .pb-carousel-scene { perspective: none; }
    .pb-c-card { width: calc(100vw - 40px); max-width: 310px; min-height: 340px; padding: 26px 22px; }
    .pb-c-card[data-pos="-3"],
    .pb-c-card[data-pos="3"]  { opacity: 0; transform: translateX(0) scale(.4); pointer-events: none; }
    .pb-c-card[data-pos="-2"] { transform: translateX(-115%) scale(.88); opacity: .12; pointer-events: none; }
    .pb-c-card[data-pos="2"]  { transform: translateX(115%)  scale(.88); opacity: .12; pointer-events: none; }
    .pb-c-card[data-pos="-1"] { transform: translateX(-108%) scale(.92); opacity: .25; }
    .pb-c-card[data-pos="1"]  { transform: translateX(108%)  scale(.92); opacity: .25; }
    .pb-c-card[data-pos="0"]  { transform: translateX(var(--drag-offset, 0px)) scale(1); opacity: 1; }
}
@media (max-width: 520px) {
    .pb-slot-grid { grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); }
    .pb-screen-header h2 { font-size: 1.3rem; }
    .pb-group-footer { flex-direction: column; gap: 1rem; align-items: flex-start; }
    .pb-group-footer .pb-btn-next { width: 100%; justify-content: center; }
    .pb-recap-row strong { max-width: 55%; }
}

/* ─── Reduced motion ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .pb-slider-track { transition: none !important; }
    .pb-c-card, .pb-slot-pill, .pb-bigcal-day { transition: none; }
}

/* ─── Divi overrides — masquer sections superflues ─────────────────────────── */

/* Section "Disponibilités du moment" (calendriers Mars/Avril) */
body.page-id-34 .et_pb_section_2 { display: none !important; }

/* Section "Expérience nature / Bar & Cocktails / Réservation sécurisée" */
body.page-id-34 .et_pb_section_3 { display: none !important; }

/* EN booking page — same sections */
body.page-id-11479 .et_pb_section_2 { display: none !important; }
body.page-id-11479 .et_pb_section_3 { display: none !important; }

/* ─── Pages réservation : zéro scroll horizontal ─────────────────────────── */
body.page-id-34,
body.page-id-11479 {
    overflow-x: hidden !important;
}

/* ─── Pages réservation : pleine largeur, zéro espace haut/bas ─────────────── */
body.page-id-34 .et_pb_section_0,
body.page-id-11479 .et_pb_section_0 {
    padding: 0 !important;
    margin: 0 !important;
}

body.page-id-34 .et_pb_section_0 .et_pb_row,
body.page-id-11479 .et_pb_section_0 .et_pb_row {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

body.page-id-34 .et_pb_section_0 .et_pb_column,
body.page-id-11479 .et_pb_section_0 .et_pb_column {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}

body.page-id-34 .et_pb_section_0 .et_pb_code_inner,
body.page-id-11479 .et_pb_section_0 .et_pb_code_inner {
    padding: 0 !important;
    margin: 0 !important;
}

/* Titre H2 Divi résiduel "📅 Réservez votre créneau" */
#pb-booking .et_pb_text_1 { display: none !important; }

/* ─── Wizard PLEINE LARGEUR 100% ────────────────────────────────────────────── */

/* Supprimer les paddings de la section Divi */
#pb-booking {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Cacher la colonne sidebar (1/3) */
#pb-booking .et_pb_column_1_3 { display: none !important; }

/* Étendre la colonne wizard à 100% */
#pb-booking .et_pb_column_2_3 {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Row sans max-width — vraiment 100% */
#pb-booking .et_pb_row {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
}

/* Supprimer les paddings Divi parasites autour du wizard */
#pb-booking .et_pb_code_inner,
#pb-booking .et_pb_code_0 {
    padding: 0 !important;
    margin: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   WooCommerce Cart & Checkout — Perching Bar — Redesign complet
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Background + reset global ─────────────────────────────────────────── */
body.woocommerce-cart,
body.woocommerce-checkout {
    background: var(--pb-cream) !important;
}

/* ── Masquer widgets footer blog ────────────────────────────────────────── */
body.woocommerce-cart .et_pb_footer_area,
body.woocommerce-checkout .et_pb_footer_area,
body.woocommerce-cart .et_pb_footer_container,
body.woocommerce-checkout .et_pb_footer_container,
body.woocommerce-cart .et_pb_widget_area,
body.woocommerce-checkout .et_pb_widget_area,
body.woocommerce-cart .footer-widget,
body.woocommerce-checkout .footer-widget,
body.woocommerce-cart #sidebar,
body.woocommerce-cart .et_pb_sidebar_area,
body.woocommerce-cart .widget_search,
body.woocommerce-cart .widget_recent_entries,
body.woocommerce-cart .widget_recent_comments,
body.woocommerce-cart .widget_archives,
body.woocommerce-cart .widget_categories,
body.woocommerce-checkout #sidebar,
body.woocommerce-checkout .widget_search,
body.woocommerce-checkout .widget_recent_entries,
body.woocommerce-checkout .widget_recent_comments,
body.woocommerce-checkout .widget_archives,
body.woocommerce-checkout .widget_categories,
body.woocommerce-cart #et_pb_footer_top,
body.woocommerce-checkout #et_pb_footer_top,
body.woocommerce-cart #et_pb_footer_bottom .container > .et_pb_row,
body.woocommerce-checkout #et_pb_footer_bottom .container > .et_pb_row {
    display: none !important;
}

/* ── Pleine largeur — casser TOUTES les contraintes Divi ───────────────── */
body.woocommerce-cart,
body.woocommerce-checkout {
    overflow-x: hidden;
}
body.woocommerce-cart .et_pb_section,
body.woocommerce-checkout .et_pb_section {
    padding: 0 !important;
}
body.woocommerce-cart .et_pb_row,
body.woocommerce-checkout .et_pb_row {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 auto !important;
}
body.woocommerce-cart .et_pb_column,
body.woocommerce-checkout .et_pb_column {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-cart .et_pb_code_inner,
body.woocommerce-checkout .et_pb_code_inner {
    max-width: none !important;
    padding: 0 !important;
}
/* Containers Divi standard */
body.woocommerce-cart .container,
body.woocommerce-checkout .container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
}
body.woocommerce-cart #main-content,
body.woocommerce-checkout #main-content {
    width: 100% !important;
    max-width: none !important;
}
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-cart .et_pb_post_content,
body.woocommerce-checkout .et_pb_post_content {
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
}
/* Wrapper article Divi */
body.woocommerce-cart article,
body.woocommerce-checkout article {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-cart .et_post_meta_wrapper,
body.woocommerce-checkout .et_post_meta_wrapper {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.woocommerce-cart .entry,
body.woocommerce-checkout .entry {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
}

/* ── Couleurs liens — écraser les defaults Divi/WC ─────────────────────── */
body.woocommerce-cart a,
body.woocommerce-checkout a {
    color: var(--pb-dark) !important;
    text-decoration: none !important;
}
body.woocommerce-cart a:hover,
body.woocommerce-checkout a:hover {
    color: var(--pb-gold) !important;
}
/* Méta texte — pas de couleur orange/teal WC */
body.woocommerce-cart .wc-block-components-product-metadata *,
body.woocommerce-checkout .wc-block-components-product-metadata * {
    color: var(--pb-muted) !important;
}

/* ── Titre de page ──────────────────────────────────────────────────────── */
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title {
    display: none !important;
}

/* ── Wrapper bloc WC — casser alignwide + contraintes Gutenberg ─────────── */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
body.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide,
body.woocommerce-cart .wp-block-woocommerce-cart.alignfull,
body.woocommerce-checkout .wp-block-woocommerce-checkout.alignfull {
    font-family: var(--pb-font-body) !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
}
/* #left-area et article : pleine largeur */
body.woocommerce-cart #left-area,
body.woocommerce-checkout #left-area {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
}
body.woocommerce-cart article,
body.woocommerce-checkout article {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ── Layout checkout — outer wrapper UNIQUEMENT (pas le sidebar-layout) ─── */
/* IMPORTANT: wc-block-components-sidebar-layout a AUSSI la classe wc-block-checkout
   → utiliser :not() pour éviter le double ::before + double padding */
body.woocommerce-checkout .wc-block-checkout:not(.wc-block-components-sidebar-layout) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 0 !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 3rem 2.5rem 4rem !important;
}
@media (max-width: 768px) {
    body.woocommerce-checkout .wc-block-checkout:not(.wc-block-components-sidebar-layout) {
        padding: 1.5rem 1.25rem 3rem !important;
    }
}
/* Inner sidebar-layout : reset, laisse WC Blocks gérer la 2 colonnes */
body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout {
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
    flex: 1 1 100% !important;
}
/* SUPPRIMER ::before sur l'inner sidebar-layout */
body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout::before,
body.woocommerce-checkout .wc-block-components-sidebar-layout::before {
    content: none !important;
    display: none !important;
}

/* ── En-tête de section cart ─────────────────────────────────────────────── */
body.woocommerce-cart .wc-block-cart {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 3rem 2.5rem 4rem !important;
}
@media (max-width: 768px) {
    body.woocommerce-cart .wc-block-cart {
        padding: 1.5rem 1.25rem 3rem !important;
    }
}

/* ── Layout WC Blocks — flex wrap pour title pleine largeur ────────────── */
/* WC Blocks cart utilise display:flex — on garde flex + ::before full width */
body.woocommerce-cart .wc-block-cart {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 2.5rem !important;
}
/* ::before devient un flex item de 100% de largeur */
body.woocommerce-cart .wc-block-cart::before {
    flex: 0 0 100% !important;
    order: -1 !important;
    width: 100% !important;
}
/* Items block → colonne gauche flexible */
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wp-block-woocommerce-cart-items-block {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 360px) !important;
}
/* Totals block → colonne droite fixe */
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
    flex: 0 0 320px !important;
    width: 320px !important;
    max-width: 320px !important;
}
@media (max-width: 900px) {
    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wp-block-woocommerce-cart-items-block {
        max-width: 100% !important;
    }
    body.woocommerce-cart .wc-block-cart__sidebar,
    body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Titre éditorial injecté via ::before */
body.woocommerce-cart .wc-block-cart::before {
    content: 'Votre réservation';
    display: block;
    font-family: var(--pb-font-serif) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 400 !important;
    font-style: italic;
    color: var(--pb-dark) !important;
    margin-bottom: 2.5rem !important;
    padding-bottom: 1.5rem !important;
    border-bottom: 1px solid var(--pb-beige) !important;
}
/* Titre checkout — UNIQUEMENT sur l'outer wrapper, pas sur sidebar-layout */
body.woocommerce-checkout .wc-block-checkout:not(.wc-block-components-sidebar-layout)::before {
    content: 'Finaliser la commande';
    display: block;
    flex: 0 0 100% !important;
    order: -1 !important;
    width: 100% !important;
    font-family: var(--pb-font-serif) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 400 !important;
    font-style: italic;
    color: var(--pb-dark) !important;
    margin-bottom: 2.5rem !important;
    padding-bottom: 1.5rem !important;
    border-bottom: 1px solid var(--pb-beige) !important;
}
html[lang="en-US"] body.woocommerce-checkout .wc-block-checkout:not(.wc-block-components-sidebar-layout)::before,
html[lang="en"] body.woocommerce-checkout .wc-block-checkout:not(.wc-block-components-sidebar-layout)::before {
    content: 'Checkout';
}

/* ── Layout 2 colonnes cart ─────────────────────────────────────────────── */
.wc-block-cart__main,
.wp-block-woocommerce-cart-items-block {
    background: var(--pb-cream-l) !important;
    border: 1px solid var(--pb-beige) !important;
}
.wc-block-cart__sidebar,
.wp-block-woocommerce-cart-totals-block {
    background: var(--pb-cream-l) !important;
    border: 1px solid var(--pb-beige) !important;
}

/* ── Header tableau produits ────────────────────────────────────────────── */
.wc-block-cart-items .wc-block-cart-items__header,
.wc-block-components-order-summary__header {
    background: var(--pb-dark) !important;
    color: var(--pb-cream) !important;
    font-family: var(--pb-font-label) !important;
    font-size: .6rem !important;
    font-weight: 700 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    padding: 1rem 1.5rem !important;
    border: none !important;
}
.wc-block-cart-items__header .wc-block-cart-items__header-image { display: none !important; }

/* ── Tableau produits — colonnes ────────────────────────────────────────── */
/* Contraindre la colonne image (1ère TD de la table) */
.wc-block-cart-items table { width: 100% !important; table-layout: fixed !important; }
.wc-block-cart-items__row td:first-child {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    padding: 1.5rem 1rem 1.5rem 1.5rem !important;
    vertical-align: middle !important;
}
.wc-block-cart-items__row td:last-child {
    width: 80px !important;
    min-width: 80px !important;
    text-align: right !important;
    vertical-align: top !important;
    padding: 1.5rem 1.5rem 1.5rem 0 !important;
}
.wc-block-cart-items__row td:nth-child(2) {
    padding: 1.5rem 1rem !important;
    vertical-align: top !important;
}

/* ── Ligne produit ──────────────────────────────────────────────────────── */
.wc-block-cart-items__row {
    border: none !important;
    border-bottom: 1px solid var(--pb-beige) !important;
    background: transparent !important;
}
.wc-block-cart-items__row:last-child { border-bottom: none !important; }

/* Image produit */
.wc-block-components-product-image {
    width: 72px !important;
    height: 72px !important;
    flex-shrink: 0 !important;
    background: var(--pb-beige) !important;
    border: 1px solid var(--pb-beige-d) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}
.wc-block-components-product-image a {
    display: block !important;
    width: 72px !important;
    height: 72px !important;
}
.wc-block-components-product-image img {
    width: 72px !important;
    height: 72px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    border: none !important;
    display: block !important;
}
/* Placeholder si pas d'image */
.wc-block-components-product-image svg {
    width: 28px !important;
    height: 28px !important;
    opacity: .2 !important;
}

/* Nom du produit */
.wc-block-components-product-name,
.wc-block-components-product-name a {
    font-family: var(--pb-font-serif) !important;
    font-size: 1.1rem !important;
    font-weight: 400 !important;
    color: var(--pb-dark) !important;
    text-decoration: none !important;
    line-height: 1.3 !important;
}
.wc-block-components-product-name a:hover { color: var(--pb-gold) !important; }

/* Méta produit (Date, Heure, Groupe) */
.wc-block-components-product-metadata,
.wc-block-components-product-metadata dl {
    margin: .5rem 0 0 !important;
}
.wc-block-components-product-metadata dd,
.wc-block-components-product-metadata dt,
.wc-block-components-product-metadata p,
.cart-item-meta {
    font-family: var(--pb-font-body) !important;
    font-size: .75rem !important;
    color: var(--pb-muted) !important;
    font-weight: 300 !important;
    line-height: 1.5 !important;
}
.wc-block-components-product-metadata dt { display: none !important; }
.wc-block-components-product-metadata dd { margin: 0 !important; padding: 0 !important; }

/* Prix — supprimer TOUTES les couleurs WC orange/vert/teal */
.wc-block-components-product-price,
.wc-block-components-product-price *,
.wc-block-components-product-price del,
.wc-block-components-product-price del .amount,
.wc-block-components-product-price del .wc-block-components-formatted-money-amount,
.wc-block-components-product-price ins,
.wc-block-components-product-price ins .amount,
.wc-block-components-product-price ins .wc-block-components-formatted-money-amount,
.woocommerce-Price-amount.amount,
body.woocommerce-cart .price,
body.woocommerce-cart .amount {
    color: var(--pb-muted) !important;
}

/* Prix unitaire */
.wc-block-components-product-price .wc-block-components-formatted-money-amount {
    font-family: var(--pb-font-label) !important;
    font-size: .72rem !important;
    font-weight: 400 !important;
    letter-spacing: .04em !important;
    color: var(--pb-muted) !important;
}

/* Quantité */
.wc-block-components-quantity-selector {
    border: 1px solid var(--pb-beige-d) !important;
    border-radius: 0 !important;
    background: var(--pb-cream) !important;
    height: 40px !important;
    gap: 0 !important;
}
.wc-block-components-quantity-selector__button {
    background: transparent !important;
    color: var(--pb-dark) !important;
    border: none !important;
    width: 36px !important;
    height: 38px !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    transition: background .15s !important;
}
.wc-block-components-quantity-selector__button:hover {
    background: var(--pb-dark) !important;
    color: var(--pb-cream) !important;
}
.wc-block-components-quantity-selector__input {
    font-family: var(--pb-font-serif) !important;
    font-size: .9rem !important;
    color: var(--pb-dark) !important;
    border: none !important;
    background: transparent !important;
    text-align: center !important;
    width: 44px !important;
    border-left: 1px solid var(--pb-beige-d) !important;
    border-right: 1px solid var(--pb-beige-d) !important;
    padding: 0 !important;
}

/* Prix total de la ligne */
.wc-block-cart-items__row .wc-block-components-product-price {
    text-align: right !important;
}
.wc-block-cart-items__row .wc-block-components-product-price .wc-block-components-formatted-money-amount {
    font-family: var(--pb-font-serif) !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: var(--pb-dark) !important;
    letter-spacing: 0 !important;
}

/* Supprimer item */
.wc-block-components-product-remove-button button,
.wc-block-cart-item__remove-link {
    color: var(--pb-muted) !important;
    background: transparent !important;
    border: none !important;
    opacity: .45 !important;
    transition: opacity .15s !important;
    cursor: pointer !important;
}
.wc-block-components-product-remove-button button:hover,
.wc-block-cart-item__remove-link:hover {
    color: var(--pb-red) !important;
    opacity: 1 !important;
}
.wc-block-components-product-remove-button svg { width: 16px !important; height: 16px !important; }

/* ── Sidebar totaux ──────────────────────────────────────────────────────── */
.wc-block-components-totals-wrapper {
    background: transparent !important;
    border: none !important;
    padding: 1.5rem !important;
}

/* Titre "TOTAL PANIER" */
.wc-block-cart__totals-title,
.wc-block-components-totals-wrapper h2 {
    font-family: var(--pb-font-label) !important;
    font-size: .6rem !important;
    font-weight: 700 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    color: var(--pb-muted-l) !important;
    margin-bottom: 1.5rem !important;
    padding-bottom: 1rem !important;
    border-bottom: 1px solid var(--pb-beige) !important;
}

/* Lignes TVA / sous-total */
.wc-block-components-totals-item {
    font-family: var(--pb-font-body) !important;
    font-size: .82rem !important;
    color: var(--pb-muted) !important;
    border: none !important;
    border-bottom: 1px solid var(--pb-beige) !important;
    padding: .85rem 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}
.wc-block-components-totals-item__label {
    font-family: var(--pb-font-label) !important;
    font-size: .62rem !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    color: var(--pb-muted) !important;
}
.wc-block-components-totals-item__value {
    font-family: var(--pb-font-serif) !important;
    font-size: .95rem !important;
    font-weight: 400 !important;
    color: var(--pb-dark) !important;
}

/* Total estimé — bloc foncé */
.wc-block-components-totals-footer-item {
    background: var(--pb-dark) !important;
    padding: 1.25rem 1.5rem !important;
    margin: 1rem -1.5rem 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-family: var(--pb-font-label) !important;
    font-size: .6rem !important;
    font-weight: 700 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,.45) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
    font-family: var(--pb-font-serif) !important;
    font-size: 1.8rem !important;
    font-weight: 400 !important;
    color: var(--pb-cream) !important;
}

/* ── Coupon ──────────────────────────────────────────────────────────────── */
.wc-block-components-panel__button,
.wc-block-components-totals-coupon__button {
    font-family: var(--pb-font-label) !important;
    font-size: .62rem !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: var(--pb-muted) !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    opacity: .7 !important;
}
.wc-block-components-panel__button:hover,
.wc-block-components-totals-coupon__button:hover { opacity: 1 !important; }

/* ── Bouton Valider la commande ─────────────────────────────────────────── */
.wc-block-cart__submit-button,
.wc-block-components-button.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block a,
.wp-block-woocommerce-proceed-to-checkout-block button {
    background: var(--pb-dark) !important;
    color: var(--pb-cream) !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: var(--pb-font-label) !important;
    font-size: .68rem !important;
    font-weight: 700 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    padding: 1.1rem 1.5rem !important;
    width: 100% !important;
    text-align: center !important;
    text-decoration: none !important;
    display: block !important;
    transition: background .2s, letter-spacing .2s !important;
    box-shadow: none !important;
    margin-top: 1.25rem !important;
}
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover,
.wp-block-woocommerce-proceed-to-checkout-block button:hover {
    background: var(--pb-gold) !important;
    color: var(--pb-dark) !important;
    letter-spacing: .24em !important;
}

/* ── Stripe Express "Payer avec Link" — masquer ─────────────────────────── */
.wc-block-components-express-payment {
    display: none !important;
}

/* ── Checkout — formulaire ──────────────────────────────────────────────── */
.wc-block-components-text-input,
.wc-block-components-select {
    margin-bottom: 1rem !important;
}
.wc-block-components-text-input input,
.wc-block-components-select select,
.wc-block-components-form .wc-block-components-text-input input {
    background: var(--pb-cream-l) !important;
    border: 1px solid var(--pb-beige-d) !important;
    border-radius: 0 !important;
    font-family: var(--pb-font-body) !important;
    font-size: .9rem !important;
    color: var(--pb-dark) !important;
    padding: .85rem 1rem !important;
    height: auto !important;
    box-shadow: none !important;
    transition: border-color .2s !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select select:focus {
    border-color: var(--pb-dark) !important;
    outline: none !important;
    box-shadow: none !important;
    background: #fff !important;
}
.wc-block-components-text-input label,
.wc-block-components-form label {
    font-family: var(--pb-font-label) !important;
    font-size: .58rem !important;
    font-weight: 600 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    color: var(--pb-muted) !important;
    margin-bottom: .4rem !important;
}

/* Titres de section checkout */
.wc-block-components-checkout-step__title,
.wc-block-checkout__contact-fields > h2,
.wc-block-checkout__billing-fields > h2,
.wc-block-checkout__payment-method > h2 {
    font-family: var(--pb-font-label) !important;
    font-size: .62rem !important;
    font-weight: 700 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    color: var(--pb-muted-l) !important;
    margin-bottom: 1.25rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid var(--pb-beige) !important;
}

/* Récap commande dans checkout */
.wc-block-components-order-summary__header {
    font-family: var(--pb-font-label) !important;
    font-size: .6rem !important;
    font-weight: 700 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
}
.wc-block-order-summary-item__description {
    font-family: var(--pb-font-body) !important;
    font-size: .75rem !important;
    color: var(--pb-muted) !important;
    font-weight: 300 !important;
}

/* Bouton Passer la commande */
.wc-block-components-checkout-place-order-button {
    background: var(--pb-dark) !important;
    color: var(--pb-cream) !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: var(--pb-font-label) !important;
    font-size: .68rem !important;
    font-weight: 700 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    padding: 1.1rem 2rem !important;
    transition: background .2s !important;
    box-shadow: none !important;
    width: 100% !important;
}
.wc-block-components-checkout-place-order-button:hover { background: var(--pb-gold) !important; }

/* Paiement Stripe — style propre */
.wc-block-components-radio-control-accordion-option {
    border: 1px solid var(--pb-beige-d) !important;
    border-radius: 0 !important;
    background: var(--pb-cream-l) !important;
    margin-bottom: .5rem !important;
}
.wc-block-components-radio-control-accordion-option__title {
    font-family: var(--pb-font-label) !important;
    font-size: .68rem !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: var(--pb-dark) !important;
}

/* Notice / alertes */
.wc-block-components-notice-banner {
    border-radius: 0 !important;
    border-left: 3px solid var(--pb-gold) !important;
    background: rgba(196,155,42,.06) !important;
    font-family: var(--pb-font-body) !important;
    font-size: .82rem !important;
}

/* Responsive cart */
@media (max-width: 768px) {
    body.woocommerce-cart .wc-block-cart,
    body.woocommerce-checkout .wc-block-checkout {
        padding: 1.25rem 1rem 2.5rem !important;
    }
    .wc-block-cart-items__row { padding: 1rem !important; }
    .wc-block-components-product-image { width: 56px !important; height: 56px !important; }
    .wc-block-components-totals-footer-item { margin: 1rem -1rem 0 !important; padding: 1rem !important; }
}

/* ─── Modale Adultes Uniquement ─────────────────────────────────────────────── */

#pb-adult-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(10, 8, 5, 0.78);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    opacity: 0;
    transition: opacity 320ms ease-out;
}
#pb-adult-overlay.pb-visible {
    opacity: 1;
}
#pb-adult-overlay.pb-closing {
    opacity: 0;
    transition: opacity 220ms ease-in;
}

#pb-adult-modal {
    background: var(--pb-cream-l);
    border-radius: var(--pb-radius-lg);
    border-top: 3px solid var(--pb-gold);
    box-shadow: 0 24px 80px rgba(0,0,0,.35), 0 4px 16px rgba(0,0,0,.15);
    max-width: 540px;
    width: 100%;
    padding: 3rem 3rem 2.5rem;
    text-align: center;
    transform: scale(0.94) translateY(8px);
    transition: transform 320ms cubic-bezier(0.34, 1.12, 0.64, 1), opacity 320ms ease-out;
    opacity: 0;
    position: relative;
}
#pb-adult-overlay.pb-visible #pb-adult-modal {
    transform: scale(1) translateY(0);
    opacity: 1;
}

/* Badge 18+ */
.pb-adult-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 1.5px solid var(--pb-gold);
    color: var(--pb-gold);
    font-family: var(--pb-font-label);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    background: transparent;
}

/* Séparateur décoratif */
.pb-adult-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1.5rem auto;
    max-width: 200px;
    color: var(--pb-beige-d);
}
.pb-adult-divider::before,
.pb-adult-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--pb-beige-d);
}
.pb-adult-divider-gem {
    width: 5px;
    height: 5px;
    background: var(--pb-gold);
    transform: rotate(45deg);
    flex-shrink: 0;
}

/* Titre */
.pb-adult-title {
    font-family: var(--pb-font-serif);
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    font-weight: 400;
    font-style: italic;
    color: var(--pb-dark);
    line-height: 1.25;
    margin: 0 0 1.25rem;
}

/* Texte */
.pb-adult-text {
    font-family: var(--pb-font-body);
    font-size: .925rem;
    color: var(--pb-muted);
    line-height: 1.7;
    margin: 0 0 .75rem;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}
.pb-adult-text strong {
    color: var(--pb-dark-mid);
    font-weight: 600;
}

/* Encart règle */
.pb-adult-rule {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: var(--pb-beige);
    border-left: 2px solid var(--pb-gold);
    border-radius: 0 var(--pb-radius-sm) var(--pb-radius-sm) 0;
    padding: .6rem 1rem;
    margin: 0 auto 1.75rem;
    font-family: var(--pb-font-label);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pb-dark-mid);
}

/* Bouton CTA */
.pb-adult-btn {
    display: inline-block;
    background: var(--pb-dark);
    color: var(--pb-cream-l);
    font-family: var(--pb-font-label);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    border: none;
    border-radius: var(--pb-radius-sm);
    padding: 1rem 2.5rem;
    cursor: pointer;
    transition: background 200ms ease, transform 150ms ease, box-shadow 200ms ease;
    width: 100%;
    max-width: 340px;
    box-shadow: 0 2px 12px rgba(0,0,0,.12);
}
.pb-adult-btn:hover {
    background: var(--pb-dark-mid);
    transform: translateY(-1px);
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
}
.pb-adult-btn:active {
    transform: translateY(0);
}
.pb-adult-btn:focus-visible {
    outline: 2px solid var(--pb-gold);
    outline-offset: 3px;
}

/* Note de bas */
.pb-adult-note {
    margin-top: 1.25rem;
    font-family: var(--pb-font-body);
    font-size: .78rem;
    color: var(--pb-muted-l);
    line-height: 1.5;
}

/* Responsive */
@media (max-width: 560px) {
    #pb-adult-modal {
        padding: 2rem 1.5rem 2rem;
    }
    .pb-adult-title {
        font-size: 1.4rem;
    }
}

/* ─── Hint swipe mobile ─────────────────────────────────────────────────────── */

@keyframes pb-sh-overlay-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes pb-sh-overlay-out {
    from { opacity: 1; }
    to   { opacity: 0; }
}
@keyframes pb-sh-in {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(.82); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes pb-sh-out {
    0%   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(.9); }
}
/* Flèches gauche-droite qui bougent */
@keyframes pb-sh-arrow-l {
    0%, 100% { transform: translateX(0); opacity: .5; }
    40%      { transform: translateX(-10px); opacity: 1; }
}
@keyframes pb-sh-arrow-r {
    0%, 100% { transform: translateX(0); opacity: .5; }
    40%      { transform: translateX(10px); opacity: 1; }
}
/* Main qui oscille */
@keyframes pb-sh-hand {
    0%   { transform: translateX(0); }
    25%  { transform: translateX(-16px); }
    60%  { transform: translateX(16px); }
    82%  { transform: translateX(-8px); }
    100% { transform: translateX(0); }
}

/* Overlay de fond */
#pb-swipe-overlay {
    position: fixed;
    inset: 0;
    z-index: 99997;
    background: rgba(10, 8, 5, .55);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    animation: pb-sh-overlay-in 350ms ease-out forwards;
}
#pb-swipe-overlay.pb-swipe-out {
    animation: pb-sh-overlay-out 400ms ease-in forwards;
}
#pb-swipe-overlay.pb-swipe-out #pb-swipe-hint {
    animation: pb-sh-out 380ms ease-in forwards;
}

#pb-swipe-hint {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 99998;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    background: rgba(10, 8, 5, .92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: #f2ede6;
    border-radius: 24px;
    padding: 2.25rem 2.5rem 2rem;
    cursor: pointer;
    width: min(80vw, 300px);
    box-shadow: 0 20px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.07);
    animation: pb-sh-in 420ms cubic-bezier(.34,1.1,.64,1) forwards;
    text-align: center;
}
#pb-swipe-hint.pb-swipe-out {
    animation: pb-sh-out 380ms ease-in forwards;
}

/* Zone icône : flèches + main */
.pb-swipe-icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    width: 100%;
}
.pb-sh-arrow-left {
    animation: pb-sh-arrow-l 1.4s ease-in-out 400ms infinite;
}
.pb-sh-arrow-right {
    animation: pb-sh-arrow-r 1.4s ease-in-out 400ms infinite;
}
.pb-sh-hand-wrap {
    animation: pb-sh-hand 1.4s ease-in-out 400ms infinite;
}
.pb-swipe-icon-wrap svg {
    display: block;
    overflow: visible;
    color: #f2ede6;
}

/* Texte */
.pb-swipe-label {
    font-family: var(--pb-font-label);
    font-size: .88rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(242, 237, 230, .95);
    line-height: 1.4;
}
.pb-swipe-sublabel {
    display: block;
    font-family: var(--pb-font-body);
    font-size: .75rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: rgba(242, 237, 230, .5);
    margin-top: .3rem;
}

/* Desktop : jamais affiché */
@media (min-width: 768px) {
    #pb-swipe-overlay,
    #pb-swipe-hint { display: none !important; }
}

/* ─── Header Divi — Charte Perching Bar ─────────────────────────────────────── */

/* Fond & structure */
#main-header,
#main-header.et-fixed-header,
.et_header_style_left #main-header,
.et_header_style_centered #main-header {
    background-color: #111111 !important;
    border-bottom: 1px solid rgba(196, 155, 42, .22) !important;
    box-shadow: 0 1px 24px rgba(0,0,0,.35) !important;
}

/* Logo texte (si pas d'image logo) */
#logo,
.et-fixed-header #logo {
    font-family: var(--pb-font-serif) !important;
    font-weight: 400 !important;
    font-style: italic !important;
    color: #f2ede6 !important;
    letter-spacing: .04em !important;
}

/* Liens de navigation */
#top-menu > li > a,
#top-menu > li > a:visited,
.et-fixed-header #top-menu > li > a {
    font-family: var(--pb-font-label) !important;
    font-size: .72rem !important;
    font-weight: 600 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    color: rgba(242, 237, 230, .72) !important;
    transition: color .22s ease !important;
    padding: 0 .75rem !important;
}

/* Hover + page active */
#top-menu > li > a:hover,
#top-menu > li.current-menu-item > a,
#top-menu > li.current_page_item > a,
.et-fixed-header #top-menu > li > a:hover,
.et-fixed-header #top-menu > li.current-menu-item > a {
    color: var(--pb-gold) !important;
}

/* Sous-menu */
#top-menu .sub-menu {
    background: #1a1814 !important;
    border-top: 2px solid var(--pb-gold) !important;
}
#top-menu .sub-menu a {
    font-family: var(--pb-font-label) !important;
    font-size: .72rem !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: rgba(242, 237, 230, .72) !important;
}
#top-menu .sub-menu a:hover {
    color: var(--pb-gold) !important;
    background: rgba(196, 155, 42, .08) !important;
}

/* Icône panier */
.et-cart-info,
.et-cart-info span,
.et_pb_widget_area_right .et-cart-info {
    color: rgba(242, 237, 230, .72) !important;
}

/* Icône search */
#et_search_icon,
#et_search_icon::before,
.et-fixed-header #et_search_icon {
    color: rgba(242, 237, 230, .72) !important;
}
#et_search_icon:hover,
#et_search_icon:hover::before {
    color: var(--pb-gold) !important;
}

/* Barre de recherche Divi */
.et-search-form {
    background: #1a1814 !important;
    border-bottom: 1px solid rgba(196, 155, 42, .3) !important;
}
.et-search-form input {
    color: #f2ede6 !important;
    background: transparent !important;
    font-family: var(--pb-font-label) !important;
    letter-spacing: .1em !important;
}

/* Menu mobile */
#et_mobile_nav_menu .mobile_menu_bar,
#et_mobile_nav_menu .mobile_menu_bar::before {
    color: rgba(242, 237, 230, .9) !important;
}
.et_mobile_menu {
    background: #111111 !important;
    border-top: 2px solid var(--pb-gold) !important;
}
.et_mobile_menu li a {
    font-family: var(--pb-font-label) !important;
    font-size: .75rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: rgba(242, 237, 230, .8) !important;
    border-bottom: 1px solid rgba(242, 237, 230, .07) !important;
}
.et_mobile_menu li a:hover {
    color: var(--pb-gold) !important;
    background: rgba(196, 155, 42, .07) !important;
}

/* ─── Breadcrumb ─────────────────────────────────────────────────────────────── */
.et_pb_breadcrumbs,
.et_breadcrumbs_nav {
    font-family: var(--pb-font-label) !important;
    font-size: .7rem !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: var(--pb-muted) !important;
}
.et_pb_breadcrumbs a,
.et_breadcrumbs_nav a {
    color: var(--pb-muted) !important;
}
.et_pb_breadcrumbs a:hover,
.et_breadcrumbs_nav a:hover {
    color: var(--pb-gold) !important;
}

/* ─── Bouton info assurance ──────────────────────────────────────────────────── */
.pb-ins-info-btn {
    display: inline-block;
    margin-top: .6rem;
    padding: .8rem 2rem;
    background: rgba(196,155,42,.13);
    border: 2px solid var(--pb-gold);
    border-radius: 100px;
    color: var(--pb-gold);
    font-family: var(--pb-font-label);
    font-size: .84rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s, box-shadow .2s;
    box-shadow: 0 2px 12px rgba(196,155,42,.18);
    line-height: 1.4;
}
.pb-ins-info-btn:hover {
    background: rgba(196,155,42,.22);
    box-shadow: 0 4px 18px rgba(196,155,42,.28);
}
/* État : conditions requises (assurance cochée sans accepter) */
.pb-ins-info-btn--required {
    background: rgba(224,86,86,.12) !important;
    border-color: #e05656 !important;
    color: #e05656 !important;
    animation: pb-pulse 1.8s ease-in-out infinite;
}
@keyframes pb-pulse {
    0%,100% { box-shadow: 0 0 0 0 rgba(224,86,86,0); }
    50%      { box-shadow: 0 0 0 4px rgba(224,86,86,.25); }
}
/* État : conditions acceptées */
.pb-ins-info-btn--accepted {
    background: rgba(100,180,90,.12) !important;
    border-color: #6ab45a !important;
    color: #6ab45a !important;
    cursor: default;
}

/* ─── Notice assurance (visible seulement si assurance cochée + non acceptée) ── */
.pb-ins-terms-notice {
    display: none;
    font-size: .85rem;
    font-weight: 600;
    color: #e05656;
    text-align: center;
    margin: .8rem 0 0;
    padding: .55rem 1rem;
    background: rgba(224,86,86,.08);
    border: 1px solid rgba(224,86,86,.35);
    border-radius: 8px;
    letter-spacing: .02em;
}
.pb-ins-terms-notice.pb-ins-notice--visible {
    display: block;
}

/* ─── Modal footer à deux boutons ────────────────────────────────────────────── */
.pb-modal-foot--insurance {
    gap: .8rem;
    flex-wrap: wrap;
}

/* ─── Bloc acceptation CGV ───────────────────────────────────────────────────── */
.pb-cgv-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    margin: 1.2rem 0 .8rem;
}
.pb-cgv-read-btn {
    padding: .8rem 2rem;
    background: rgba(196,155,42,.13);
    border: 2px solid var(--pb-gold);
    border-radius: 100px;
    color: var(--pb-gold);
    font-family: var(--pb-font-label);
    font-size: .84rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, color .2s, box-shadow .2s;
    box-shadow: 0 2px 12px rgba(196,155,42,.18);
}
.pb-cgv-read-btn:hover:not(:disabled) {
    background: rgba(196,155,42,.22);
    box-shadow: 0 4px 18px rgba(196,155,42,.28);
}
.pb-cgv-read-btn.pb-cgv-ok {
    background: rgba(100,180,90,.12);
    border-color: #6ab45a;
    color: #6ab45a;
    cursor: default;
}
.pb-cgv-notice {
    font-size: .72rem;
    color: var(--pb-muted);
    text-align: center;
    margin: 0;
    transition: color .3s;
}
.pb-cgv-notice--ok {
    color: #6ab45a;
}
@keyframes pb-shake {
    0%,100% { transform: translateX(0); }
    20%,60%  { transform: translateX(-6px); }
    40%,80%  { transform: translateX(6px); }
}
.pb-cgv-shake {
    animation: pb-shake .5s ease;
    color: #e05656 !important;
}

/* ─── Bouton désactivé ───────────────────────────────────────────────────────── */
.pb-btn-disabled,
.pb-btn-cta:disabled {
    opacity: .4;
    cursor: not-allowed !important;
    pointer-events: none;
}

/* ─── Modales (CGV + Assurance) ──────────────────────────────────────────────── */
.pb-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(14,12,10,.75);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    backdrop-filter: blur(4px);
}
.pb-modal-overlay.pb-open {
    display: flex;
}
.pb-modal {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 680px;
    max-height: 88vh;
    background: var(--pb-bg, #1a1814);
    border: 1px solid rgba(196,155,42,.25);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0,0,0,.6);
}
.pb-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 1.4rem;
    border-bottom: 1px solid rgba(196,155,42,.15);
    flex-shrink: 0;
}
.pb-modal-head h3 {
    margin: 0;
    font-family: var(--pb-font-title);
    font-size: 1rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pb-gold);
}
.pb-modal-x {
    background: none;
    border: none;
    color: var(--pb-muted);
    font-size: 1.1rem;
    cursor: pointer;
    padding: .2rem .4rem;
    line-height: 1;
    transition: color .2s;
}
.pb-modal-x:hover { color: var(--pb-gold); }
.pb-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 1.4rem;
    font-family: var(--pb-font-body, 'Josefin Sans', sans-serif);
    font-size: .82rem;
    line-height: 1.7;
    color: var(--pb-text, #f2ede6);
    -webkit-overflow-scrolling: touch;
}
.pb-modal-body h2,
.pb-modal-body h3 {
    font-family: var(--pb-font-title);
    color: var(--pb-gold);
    margin: 1.2rem 0 .5rem;
    font-size: .9rem;
    letter-spacing: .06em;
}
.pb-modal-body p { margin: 0 0 .7rem; }
.pb-modal-body ul { padding-left: 1.2rem; margin: 0 0 .7rem; }
.pb-modal-body li { margin-bottom: .3rem; }
.pb-modal-body a { color: var(--pb-gold) !important; text-decoration: underline; }
/* Forcer la couleur du texte — les CGV WP ont des <span style="color:#000"> inline */
.pb-modal-body,
.pb-modal-body p,
.pb-modal-body li,
.pb-modal-body span,
.pb-modal-body strong,
.pb-modal-body em,
.pb-modal-body td,
.pb-modal-body th {
    color: rgba(242, 237, 230, .88) !important;
}
.pb-modal-foot {
    padding: 1rem 1.4rem;
    border-top: 1px solid rgba(196,155,42,.15);
    display: flex;
    justify-content: center;
    flex-shrink: 0;
}
.pb-btn-secondary {
    padding: .65rem 1.8rem;
    background: transparent;
    border: 1.5px solid rgba(196,155,42,.45);
    border-radius: 100px;
    color: var(--pb-gold);
    font-family: var(--pb-font-label);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s;
}
.pb-btn-secondary:hover {
    background: rgba(196,155,42,.1);
}
body.pb-no-scroll { overflow: hidden; }

@media (max-width: 600px) {
    .pb-modal { max-height: 94vh; border-radius: 10px 10px 0 0; align-self: flex-end; }
    .pb-modal-overlay { align-items: flex-end; padding: 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   BLOC CONFIRMATION RÉSERVATION (QR code + infos) — hook woocommerce_thankyou
   ═══════════════════════════════════════════════════════════════════════════════ */

.pb-thankyou-block {
    max-width: 560px;
    margin: 2rem auto;
    padding: 2rem 1.8rem;
    background: #1a1814;
    border: 1.5px solid rgba(196,155,42,.3);
    border-radius: 12px;
    text-align: center;
    font-family: var(--pb-font-body, 'Open Sans', sans-serif);
}
.pb-thankyou-title {
    font-family: var(--pb-font-title, 'Bodoni Moda', serif) !important;
    font-size: 1.2rem !important;
    font-weight: 500 !important;
    letter-spacing: .04em !important;
    color: var(--pb-gold, #c49b2a) !important;
    margin: 0 0 1.4rem !important;
}
.pb-thankyou-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid rgba(196,155,42,.15);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 1.6rem;
    text-align: left;
}
.pb-thankyou-row {
    display: flex;
    align-items: baseline;
    gap: .8rem;
    padding: .7rem 1rem;
    border-bottom: 1px solid rgba(196,155,42,.1);
}
.pb-thankyou-row:last-child { border-bottom: none; }
.pb-thankyou-row:nth-child(odd)  { background: rgba(255,255,255,.03); }
.pb-thankyou-row:nth-child(even) { background: rgba(0,0,0,.12); }
.pb-thankyou-label {
    flex-shrink: 0;
    width: 120px;
    font-family: var(--pb-font-label, 'Josefin Sans', sans-serif);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--pb-muted-l, #999);
}
.pb-thankyou-val {
    font-size: .84rem;
    color: var(--pb-cream, #f2ede6);
    font-weight: 500;
    min-width: 0;          /* permet le retour à la ligne */
    word-break: break-word;
}
.pb-thankyou-email {
    word-break: break-all; /* emails longs sur mobile */
    font-size: .8rem;
}
.pb-thankyou-insurance { color: #6ab45a; }
.pb-thankyou-qr-label {
    font-size: .72rem;
    color: var(--pb-muted-l, #999);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 .8rem;
}
.pb-thankyou-qr img {
    width: 220px !important;
    height: 220px !important;
    max-width: 100% !important;
    border-radius: 8px;
    border: 4px solid #fff;
    display: block;
    margin: 0 auto;
}
.pb-thankyou-note {
    font-size: .75rem;
    color: var(--pb-muted, #666);
    margin: 1rem 0 0;
    line-height: 1.6;
    word-break: break-word;
}
@media (max-width: 480px) {
    .pb-thankyou-block { padding: 1.4rem 1rem; margin: 1rem 0; }
    .pb-thankyou-label { width: 90px; font-size: .58rem; }
    .pb-thankyou-val   { font-size: .78rem; }
    .pb-thankyou-qr img { width: 180px !important; height: 180px !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PAGE ORDER-RECEIVED (WooCommerce merci / thank you)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ── Wrapper principal ────────────────────────────────────────────────────────── */
.woocommerce-order {
    max-width: 760px;
    margin: 2.5rem auto 3rem;
    padding: 0 1.5rem;
    font-family: var(--pb-font-body, 'Open Sans', sans-serif);
    color: var(--pb-text);
}

/* ── Message de confirmation ─────────────────────────────────────────────────── */
.woocommerce-thankyou-order-received {
    display: block;
    padding: 1.2rem 1.6rem;
    margin-bottom: 2rem;
    background: rgba(100,180,90,.08);
    border: 1.5px solid rgba(100,180,90,.35);
    border-radius: 10px;
    font-family: var(--pb-font-label, 'Josefin Sans', sans-serif);
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .06em;
    color: #5a9e50;
    text-align: center;
}

/* ── Barre récap (numéro, date, email, total, paiement) ──────────────────────── */
.woocommerce-order-overview.woocommerce-thankyou-order-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .8rem 1.2rem;
    list-style: none;
    padding: 1.4rem 1.6rem;
    margin: 0 0 2rem;
    background: #1a1814;
    border: 1px solid rgba(196,155,42,.2);
    border-radius: 10px;
}
.woocommerce-order-overview li {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin: 0;
    padding: 0;
    border: none !important;
    min-width: 0;          /* essentiel pour que les cellules de grid ne débordent pas */
    overflow: hidden;
}
.woocommerce-order-overview li::before { display: none; }
.woocommerce-order-overview li > strong:first-child,
.woocommerce-order-overview li .woocommerce-order-overview__label,
.woocommerce-order-overview li > span:first-child {
    font-family: var(--pb-font-label, 'Josefin Sans', sans-serif);
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pb-muted-l, #999);
}
.woocommerce-order-overview li strong:last-child,
.woocommerce-order-overview li .woocommerce-order-overview__value,
.woocommerce-order-overview li time,
.woocommerce-order-overview li a {
    font-family: var(--pb-font-body, 'Open Sans', sans-serif);
    font-size: .85rem;
    font-weight: 600;
    color: var(--pb-cream, #f2ede6) !important;
    word-break: break-all;       /* emails longs */
    overflow-wrap: break-word;
    white-space: normal;
}
.woocommerce-order-overview .woocommerce-order-overview__total strong,
.woocommerce-order-overview li:last-child strong {
    color: var(--pb-gold, #c49b2a) !important;
}

/* ── Titres de section ───────────────────────────────────────────────────────── */
.woocommerce-order h2 {
    font-family: var(--pb-font-title, 'Bodoni Moda', serif) !important;
    font-size: 1.3rem !important;
    font-weight: 500 !important;
    letter-spacing: .04em !important;
    color: var(--pb-text) !important;
    margin: 2rem 0 .8rem !important;
    padding-bottom: .5rem;
    border-bottom: 1px solid rgba(196,155,42,.25);
}

/* ── Tableau détails commande ────────────────────────────────────────────────── */
.woocommerce-table.woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(196,155,42,.18);
}
.woocommerce-table--order-details thead th {
    font-family: var(--pb-font-label, 'Josefin Sans', sans-serif) !important;
    font-size: .68rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: var(--pb-gold) !important;
    background: #1a1814 !important;
    padding: .9rem 1.2rem !important;
    font-weight: 600 !important;
    border-bottom: 1px solid rgba(196,155,42,.2) !important;
}
.woocommerce-table--order-details tbody tr td {
    padding: .9rem 1.2rem !important;
    border-bottom: 1px solid rgba(0,0,0,.06) !important;
    font-size: .85rem !important;
    vertical-align: top !important;
    color: var(--pb-text) !important;
    background: #fdfaf7 !important;
}
.woocommerce-table--order-details tbody tr:last-child td {
    border-bottom: none !important;
}
.woocommerce-table--order-details tbody .product-name {
    font-weight: 600;
    color: var(--pb-text) !important;
}
.woocommerce-table--order-details tbody .product-total {
    font-weight: 700;
    color: var(--pb-text) !important;
    text-align: right !important;
    white-space: nowrap;
}
/* Méta données produit (date, créneau, groupe…) */
.woocommerce-table--order-details .wc-item-meta,
.woocommerce-table--order-details .wc-item-meta li,
.woocommerce-table--order-details .variation dt,
.woocommerce-table--order-details .variation dd {
    font-size: .78rem !important;
    color: var(--pb-muted) !important;
    margin: .15rem 0 !important;
}
.woocommerce-table--order-details .wc-item-meta p {
    margin: 0 !important;
}

/* ── Pied de tableau (sous-total, total, paiement) ───────────────────────────── */
.woocommerce-table--order-details tfoot tr th,
.woocommerce-table--order-details tfoot tr td {
    padding: .7rem 1.2rem !important;
    font-size: .84rem !important;
    border-top: 1px solid rgba(0,0,0,.07) !important;
    background: #f5efe8 !important;
    color: var(--pb-text) !important;
}
.woocommerce-table--order-details tfoot .order-total th,
.woocommerce-table--order-details tfoot .order-total td {
    font-family: var(--pb-font-label, 'Josefin Sans', sans-serif) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    color: var(--pb-text) !important;
    background: #ede5d8 !important;
    border-top: 2px solid rgba(196,155,42,.3) !important;
}

/* ── Adresse de facturation ─────────────────────────────────────────────────── */
.woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
.woocommerce-column--billing-address address,
.woocommerce-column--shipping-address address {
    display: block;
    padding: 1.2rem 1.4rem;
    background: #fdfaf7;
    border: 1px solid rgba(196,155,42,.18);
    border-radius: 10px;
    font-style: normal;
    font-size: .85rem;
    line-height: 1.8;
    color: var(--pb-text);
}

/* ── Responsive mobile ───────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    .woocommerce-order { padding: 0 1rem; }
    .woocommerce-order-overview.woocommerce-thankyou-order-details {
        grid-template-columns: 1fr 1fr;
        padding: 1rem;
    }
    .woocommerce-table--order-details thead { display: none; }
    .woocommerce-table--order-details tbody tr td {
        display: block;
        text-align: left !important;
        padding: .6rem 1rem !important;
    }
    .woocommerce-table--order-details tbody .product-total {
        text-align: left !important;
    }
}

/* ─── Règle de réservation — notice front ──────────────────────────────── */

.pb-rule-notice {
    display:        flex;
    align-items:    flex-start;
    gap:            10px;
    background:     #fdf6e9;
    border:         1px solid #c49b2a;
    border-left:    4px solid #c49b2a;
    border-radius:  8px;
    padding:        12px 16px;
    margin-bottom:  16px;
    font-size:      13px;
    color:          #5a4010;
    line-height:    1.5;
}

.pb-rule-notice .pb-rule-icon {
    flex-shrink: 0;
    font-size:   16px;
    margin-top:  1px;
}

.pb-rule-phone {
    display:         inline-flex;
    align-items:     center;
    gap:             4px;
    margin-left:     10px;
    background:      #c49b2a;
    color:           #fff !important;
    text-decoration: none;
    padding:         3px 10px;
    border-radius:   20px;
    font-size:       12px;
    font-weight:     600;
    white-space:     nowrap;
}
.pb-rule-phone:hover {
    background: #a07c1a;
    color: #fff !important;
}

@media (max-width: 600px) {
    .pb-rule-notice { flex-direction: column; gap: 6px; }
    .pb-rule-phone  { margin-left: 0; }
}

/* ── Fix calendrier mobile : masquer le hint "📞 Appelez" sur petits écrans ── */
/* Le texte nowrap forçait les cellules grid à ~70px min → overflow sur 320px  */
@media (max-width: 520px) {
    .pb-cal-lm-hint {
        display: none;
    }
    .pb-bigcal-day.last-minute {
        aspect-ratio: 1;
        min-height: unset;
    }
}
