/* ==========================================================================
   Para Kenz — Page Événements & promotions
   S'appuie sur shared.css (tokens) et catalogue.css (cartes produit).
   Chaque événement apporte sa couleur via --event-color / --event-soft / --event-ink.
   ========================================================================== */

.events-page{--event-color:var(--emerald-600);--event-soft:var(--emerald-50);--event-ink:var(--emerald-900);}

/* ---------- Hero ---------- */
.events-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:var(--emerald-900);
  color:#fff;
  padding:72px 0 88px;
}
.events-hero-glow{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(620px 420px at 82% 30%,color-mix(in srgb,var(--event-color) 55%,transparent),transparent 70%),
    radial-gradient(700px 520px at -10% 110%,rgba(23,135,109,.5),transparent 65%),
    radial-gradient(420px 300px at 55% -10%,rgba(199,162,82,.18),transparent 70%);
}
.events-hero-glow::after{
  content:"";position:absolute;inset:0;opacity:.07;
  background-image:repeating-linear-gradient(135deg,#fff 0 1px,transparent 1px 16px);
}
.events-hero-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:56px;align-items:center;}
.events-hero-kicker{color:var(--gold-soft);letter-spacing:.2em;font-size:.68rem;}
.events-hero-kicker::before{background:var(--gold);}
.events-hero h1{
  color:#fff;margin:0 0 18px;
  font-size:clamp(2.6rem,5.2vw,4.7rem);line-height:1;letter-spacing:-.035em;
  text-wrap:balance;
}
.events-hero h1 em{display:inline-block;color:var(--gold-soft);font-weight:500;}
.events-hero p{color:#cfe6dc;max-width:560px;font-size:1.02rem;}
.events-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}

.events-now-card{
  position:relative;display:grid;gap:8px;
  padding:16px 16px 20px;
  border-radius:var(--radius-md);
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 40px 80px -36px rgba(0,0,0,.6);
  clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);
  transition:transform .35s var(--ease);
}
.events-now-card::before{content:"";position:absolute;inset:7px;border:1px dashed rgba(15,36,29,.2);border-radius:10px;pointer-events:none;}
a.events-now-card:hover{transform:translateY(-4px) rotate(-.4deg);}
.events-now-label{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--event-color);padding:4px 4px 2px;}
.events-now-media{display:block;aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:var(--event-soft);}
.events-now-media img{width:100%;height:100%;object-fit:cover;}
.events-now-kicker{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:6px 4px 0;}
.events-now-title{font-family:var(--font-display);font-size:1.45rem;font-weight:600;line-height:1.12;color:var(--emerald-900);padding:0 4px;}
.events-now-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:6px 4px 0;font-size:.8rem;color:var(--ink-soft);font-weight:600;}
.events-now-badge{padding:5px 10px;border-radius:999px;background:var(--event-color);color:#fff;font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.04em;}
.events-now-card p{margin:6px 4px 0;}

.events-live-dot{position:relative;width:8px;height:8px;border-radius:50%;background:var(--event-color);flex:none;}
.events-live-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--event-color);opacity:.5;animation:pkEventPulse 1.8s ease-out infinite;}
@keyframes pkEventPulse{from{transform:scale(.6);opacity:.6;}to{transform:scale(1.6);opacity:0;}}

/* ---------- Timeline ---------- */
.events-timeline-section{padding:64px 0 24px;}
.events-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
.events-section-head h2{margin:0;font-size:clamp(1.6rem,3vw,2.3rem);}
.events-filter{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--mist);}
.events-filter button{border:0;background:transparent;padding:8px 16px;border-radius:999px;font-size:.82rem;font-weight:700;color:var(--ink-soft);}
.events-filter button.is-active{background:#fff;color:var(--emerald-800);box-shadow:0 4px 14px rgba(6,46,37,.12);}

.events-timeline{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(232px,1fr);gap:14px;
  overflow-x:auto;padding:6px 2px 18px;scroll-snap-type:x proximity;
  scrollbar-width:thin;scrollbar-color:rgba(11,92,76,.35) transparent;
}
.event-ticket{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  min-height:178px;padding:20px 20px 18px;text-align:left;
  border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;
  box-shadow:var(--shadow-card);scroll-snap-align:start;
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);
  transition:transform .3s var(--ease),box-shadow .3s ease,background .3s ease;
}
.event-ticket::before{content:"";position:absolute;inset:7px;border:1px dashed rgba(15,36,29,.14);border-radius:9px;pointer-events:none;}
.event-ticket::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--event-color);}
.event-ticket:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);}
.event-ticket.is-selected{background:var(--event-soft);box-shadow:0 0 0 2px var(--event-color),var(--shadow-lift);}
.event-ticket.is-ended{opacity:.62;}
.event-ticket.is-ended:hover,.event-ticket.is-ended.is-selected{opacity:1;}
.event-ticket-date{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.68rem;font-weight:700;color:var(--event-ink);text-transform:uppercase;letter-spacing:.06em;}
.event-ticket-date i{font-style:normal;color:var(--ink-soft);}
.event-ticket-kicker{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--event-color);font-weight:700;margin-top:6px;}
.event-ticket-title{font-family:var(--font-display);font-size:1.12rem;font-weight:600;line-height:1.2;color:var(--emerald-900);}
.event-ticket-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px;}
.event-ticket-badge{font-size:.68rem;font-weight:700;color:var(--event-ink);background:var(--event-soft);border-radius:999px;padding:4px 9px;}
.event-ticket.is-selected .event-ticket-badge{background:#fff;}

.event-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;}
.event-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.event-status.is-active{background:var(--emerald-700);color:#fff;}
.event-status.is-upcoming{background:#faf3e2;color:#8a6412;border:1px solid rgba(199,162,82,.45);}
.event-status.is-ended{background:var(--mist);color:var(--ink-soft);}
.events-empty{grid-column:1/-1;margin:0;padding:28px;border:1px dashed var(--line);border-radius:var(--radius-md);text-align:center;}

/* ---------- Event detail ---------- */
.event-detail-section{padding:28px 0 72px;scroll-margin-top:84px;}
.event-banner{
  position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  overflow:hidden;border-radius:var(--radius-lg);
  background:var(--event-soft);
  border:1px solid color-mix(in srgb,var(--event-color) 22%,transparent);
  box-shadow:var(--shadow-card);
}
.event-banner-media{position:relative;min-height:360px;background:color-mix(in srgb,var(--event-color) 18%,#fff);}
.event-banner-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.event-banner-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,var(--event-soft));}
.event-stamp{
  position:absolute;right:24px;bottom:24px;z-index:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:116px;height:116px;border-radius:50%;
  background:var(--event-color);color:#fff;
  box-shadow:0 18px 40px -14px rgba(0,0,0,.45);
  transform:rotate(-8deg);
  outline:2px dashed rgba(255,255,255,.6);outline-offset:-9px;
}
.event-stamp small{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;opacity:.9;}
.event-stamp b{font-family:var(--font-display);font-size:2rem;line-height:1;font-weight:600;}
.event-banner-copy{padding:clamp(28px,4vw,52px);display:flex;flex-direction:column;align-items:flex-start;}
.event-banner-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;}
.event-dates{font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--event-ink);letter-spacing:.04em;}
.event-kicker{color:var(--event-color);margin-bottom:8px;}
.event-kicker::before{background:var(--event-color);}
.event-banner-copy h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:0 0 10px;color:var(--event-ink);letter-spacing:-.02em;text-wrap:balance;}
.event-tagline{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--event-ink);margin-bottom:12px;}
.event-desc{max-width:560px;}
.event-countdown{display:inline-flex;align-items:center;gap:10px;margin:6px 0 22px;padding:9px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:.86rem;color:var(--event-ink);}
.event-detail.is-ended .events-live-dot{background:var(--ink-soft);}
.event-detail.is-ended .events-live-dot::after{display:none;}
.event-actions{display:flex;flex-wrap:wrap;gap:10px;}
.event-btn{background:var(--event-color);}
.event-btn:hover{background:var(--event-ink);}
.event-btn-ghost{border-color:var(--event-color);color:var(--event-ink);background:transparent;}
.event-btn-ghost:hover{background:var(--event-color);color:#fff;}

.event-products-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:44px 0 6px;scroll-margin-top:90px;}
.event-products-head h3{margin:0;font-size:1.45rem;}
.event-products-head span{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;}
.event-note{font-size:.88rem;margin:0 0 18px;padding:10px 14px;border-left:3px solid var(--event-color);background:var(--event-soft);border-radius:0 10px 10px 0;color:var(--event-ink);}
.event-products-grid{margin-top:18px;grid-template-columns:repeat(4,minmax(0,1fr));}
.events-page .product-promo-badge.is-event{background:var(--event-color);}
.event-card-size{margin:0 0 12px;font-family:var(--font-mono);font-size:.62rem;color:var(--ink-soft);letter-spacing:.06em;}
.event-upcoming-price{margin:0 0 12px;padding:7px 10px;border-radius:10px;background:var(--event-soft);color:var(--event-ink);font-size:.72rem;line-height:1.35;}
.event-upcoming-price b{font-family:var(--font-mono);}

.events-empty-block{text-align:center;padding:48px 20px;border:1px dashed var(--line);border-radius:var(--radius-lg);background:#fff;}

/* ---------- Perks ---------- */
.events-perks{padding:0 0 88px;}
.events-perks-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.events-perk{position:relative;padding:24px 24px 20px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--mist);}
.events-perk-num{display:block;margin-bottom:10px;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--gold);letter-spacing:.12em;}
.events-perk h3{font-size:1.1rem;margin-bottom:6px;}
.events-perk p{font-size:.88rem;margin:0;}

/* ---------- Responsive ---------- */
@media (max-width:1120px){
  .event-products-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px){
  .events-hero{padding:56px 0 64px;}
  .events-hero-inner{grid-template-columns:1fr;gap:36px;}
  .events-now{max-width:420px;}
  .event-banner{grid-template-columns:1fr;}
  .event-banner-media{min-height:240px;}
  .event-banner-media::after{background:linear-gradient(180deg,transparent 55%,var(--event-soft));}
  .event-products-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .events-perks-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .events-hero h1{font-size:clamp(2.3rem,11vw,3rem);}
  .events-hero-actions .btn{width:100%;}
  .events-section-head{align-items:flex-start;}
  .events-filter{width:100%;}
  .events-filter button{flex:1;padding-inline:8px;}
  .events-timeline{grid-auto-columns:78%;}
  .event-stamp{width:94px;height:94px;right:16px;bottom:16px;}
  .event-stamp b{font-size:1.6rem;}
  .event-products-grid{grid-template-columns:1fr;}
  .event-actions .btn{width:100%;}
}
/* ---------- Types, filters & empty selections (mois / saisons / fêtes) ---------- */
.events-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;}
.event-ticket-type{font-size:.62rem;font-weight:700;color:var(--ink-soft);background:var(--mist);border-radius:999px;padding:2px 8px;margin-top:4px;}
.event-ticket.is-selected .event-ticket-type{background:#fff;}
.event-type-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.68rem;font-weight:700;color:var(--event-ink);}
.events-now-also{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;}
.events-now-also span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin-right:4px;}
.events-now-also button{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:6px 12px;font-size:.76rem;font-weight:700;display:inline-flex;align-items:center;gap:7px;transition:background .2s ease,border-color .2s ease;}
.events-now-also button::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--event-color);box-shadow:0 0 0 2px rgba(255,255,255,.7);}
.events-now-also button:hover{background:rgba(255,255,255,.18);border-color:#fff;}
.event-empty-selection{display:flex;align-items:flex-start;gap:16px;margin-top:28px;padding:22px 24px;border:1px dashed color-mix(in srgb,var(--event-color) 45%,transparent);border-radius:var(--radius-md);background:#fff;scroll-margin-top:90px;}
.event-empty-selection h3{margin:0 0 4px;font-size:1.15rem;color:var(--event-ink);}
.event-empty-selection p{margin:0;font-size:.9rem;}
.event-empty-selection a{color:var(--event-color);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.event-empty-icon{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--event-soft);color:var(--event-color);}
.event-empty-icon svg{width:22px;height:22px;}
@media (max-width:900px){.events-filters{justify-content:flex-start;width:100%;}}
@media (max-width:560px){
  .events-filters{flex-direction:column;}
  .events-filter{overflow-x:auto;}
  .events-filter button{white-space:nowrap;}
}

@media (prefers-reduced-motion:reduce){
  .events-live-dot::after{animation:none;}
  .event-ticket,.events-now-card{transition:none;}
}

/* ---------- « Me prévenir » : bouton + fenêtre ---------- */
.event-notify-btn svg,.event-notify-dialog .event-btn svg{width:18px;height:18px;flex:none;}
.event-notify-btn.is-set{background:var(--event-ink);}
body.event-notify-open{overflow:hidden;}
.event-notify-modal{position:fixed;inset:0;z-index:170;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .26s ease,visibility .26s ease;}
.event-notify-modal.is-open{opacity:1;visibility:visible;}
.event-notify-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(3,24,19,.62);backdrop-filter:blur(8px) saturate(.8);}
.event-notify-dialog{
  position:relative;width:min(520px,100%);max-height:calc(100dvh - 40px);overflow:auto;
  border-radius:26px;background:var(--paper);
  border:1px solid color-mix(in srgb,var(--event-color) 35%,transparent);
  box-shadow:0 40px 110px rgba(0,0,0,.38);
  transform:translateY(22px) scale(.97);transition:transform .42s var(--ease);
}
.event-notify-modal.is-open .event-notify-dialog{transform:none;}
.event-notify-dialog::after{content:"";position:absolute;inset:52px 9px 9px;border:1px dashed color-mix(in srgb,var(--event-color) 28%,transparent);border-radius:18px;pointer-events:none;}
.event-notify-band{
  display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:0 64px 0 22px;
  background:var(--event-color);color:#fff;
  font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.event-notify-band span{display:inline-flex;align-items:center;gap:8px;}
.event-notify-band svg{width:15px;height:15px;}
.event-notify-close{position:absolute;top:4px;right:8px;z-index:3;display:flex;width:36px;height:36px;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;transition:background .2s ease,transform .25s var(--ease);}
.event-notify-close:hover{background:rgba(255,255,255,.3);transform:rotate(8deg);}
.event-notify-close svg{width:18px;height:18px;}
.event-notify-body{position:relative;z-index:1;padding:26px 30px 30px;}
.event-notify-body .eyebrow{color:var(--event-color);margin-bottom:8px;}
.event-notify-body .eyebrow::before{background:var(--event-color);}
.event-notify-body h2{margin:0 0 8px;font-size:clamp(1.6rem,4.4vw,2.1rem);color:var(--event-ink);letter-spacing:-.02em;line-height:1.08;}
.event-notify-body > p{margin:0 0 20px;font-size:.92rem;}
.event-notify-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}
.event-notify-choice label{position:relative;cursor:pointer;}
.event-notify-choice input{position:absolute;opacity:0;pointer-events:none;}
.event-notify-choice span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;font-weight:700;font-size:.9rem;color:var(--ink-soft);transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;}
.event-notify-choice svg{width:19px;height:19px;}
.event-notify-choice input:checked + span{border-color:var(--event-color);background:var(--event-soft);color:var(--event-ink);box-shadow:0 0 0 1px var(--event-color);}
.event-notify-choice input:focus-visible + span{outline:3px solid var(--gold);outline-offset:2px;}
.event-notify-field{display:grid;gap:7px;margin-bottom:14px;}
.event-notify-field > span{font-size:.74rem;font-weight:800;color:var(--ink);}
.event-notify-field input{width:100%;min-height:50px;padding:12px 16px;border:1px solid rgba(15,36,29,.22);border-radius:14px;background:#fff;font:inherit;font-size:1rem;color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease;}
.event-notify-field input:focus{border-color:var(--event-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--event-color) 14%,transparent);}
.event-notify-field input[aria-invalid="true"]{border-color:var(--danger);}
.event-notify-error{min-height:1em;color:var(--danger);font-size:.78rem;font-weight:700;}
.event-notify-error:empty{display:none;}
.event-notify-consent{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;font-size:.8rem;line-height:1.45;color:var(--ink-soft);cursor:pointer;}
.event-notify-consent input{width:18px;height:18px;margin-top:1px;flex:none;accent-color:var(--event-color);}
.event-notify-consent a{color:var(--event-color);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
.event-notify-dialog .btn-block{width:100%;min-height:52px;}
.event-notify-done{text-align:center;}
.event-notify-check{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:14px;border-radius:50%;background:var(--event-color);color:#fff;box-shadow:0 14px 34px -12px var(--event-color);}
.event-notify-check svg{width:30px;height:30px;}
.event-notify-done p{margin:0 auto 22px;max-width:380px;font-size:.92rem;}
.event-notify-done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;}
.event-notify-input{position:relative;display:block;}
.event-notify-prefix{position:absolute;left:6px;top:6px;bottom:6px;display:inline-flex;align-items:center;gap:7px;padding:0 11px 0 9px;border-radius:10px;background:var(--mist);border:1px solid var(--line);color:var(--ink);font-size:.95rem;pointer-events:none;}
.event-notify-prefix[hidden]{display:none;}
.event-notify-prefix svg{width:24px;height:16px;flex:none;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08);}
.event-notify-prefix b{font-weight:700;letter-spacing:.01em;}
.event-notify-input.has-prefix input{padding-left:104px;letter-spacing:.02em;}
.event-notify-honey{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;}
.event-notify-dialog .event-btn.is-loading{opacity:.75;cursor:progress;}
.event-notify-error a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
@media (max-width:560px){
  .event-notify-modal{padding:10px;align-items:end;}
  .event-notify-dialog{border-radius:22px 22px 18px 18px;}
  .event-notify-body{padding:22px 20px 24px;}
  .event-notify-band span:last-child{display:none;}
  .event-notify-done-actions .btn{width:100%;}
}
@media (prefers-reduced-motion:reduce){.event-notify-modal,.event-notify-dialog{transition:none;}}
