:root {
  color-scheme: light;
  --ws-ink: #18352e;
  --ws-cream: #f7f0df;
  --ws-paper: #fffaf0;
  --ws-wine: #81253d;
  --ws-gold: #d29b46;
  --ws-leaf: #446a52;
  --ws-line: rgba(24, 53, 46, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ws-paper);
  color: var(--ws-ink);
  font-family: Arial, Helvetica, sans-serif;
}

.prototype-note {
  position: relative;
  z-index: 20;
  padding: 10px 18px;
  background: #16231f;
  color: rgba(255,255,255,.84);
  font-size: 12px;
  text-align: center;
}

.wsevent { overflow: hidden; }
.wsevent h1,
.wsevent h2,
.wsevent h3,
.wsevent p { margin-top: 0; }
.wsevent h1,
.wsevent h2 { font-family: Georgia, "Times New Roman", serif; }

.wsevent-hero {
  min-height: calc(100vh - 34px);
  display: grid;
  grid-template-columns: minmax(340px, .8fr) minmax(520px, 1.2fr);
  align-items: center;
  gap: clamp(28px, 5vw, 80px);
  padding: clamp(48px, 7vw, 100px);
  background:
    radial-gradient(circle at 8% 15%, rgba(210,155,70,.17), transparent 28%),
    var(--ws-cream);
}

.wsevent-hero__copy { position: relative; z-index: 3; }
.wsevent-eyebrow {
  margin-bottom: 14px;
  color: var(--ws-wine);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.wsevent-hero h1 {
  display: grid;
  margin-bottom: 24px;
  font-size: clamp(3.1rem, 7vw, 7.6rem);
  font-weight: 500;
  letter-spacing: -.07em;
  line-height: .78;
}

.wsevent-hero h1 em {
  margin: .12em 0 .05em .9em;
  color: var(--ws-gold);
  font-size: .52em;
  font-weight: 400;
}

.wsevent-hero__lead {
  max-width: 24ch;
  margin-bottom: 25px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 2vw, 1.85rem);
  line-height: 1.35;
}

.wsevent-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 28px;
}
.wsevent-facts span {
  padding: 8px 11px;
  border: 1px solid var(--ws-line);
  border-radius: 999px;
  background: rgba(255,255,255,.46);
  font-size: .78rem;
  font-weight: 700;
}

.wsevent-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 999px;
  background: var(--ws-wine);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  transition: transform .2s ease, background-color .2s ease;
}
.wsevent-button:hover { transform: translateY(-2px); background: #681b31; }

.wsevent-film { position: relative; width: min(760px, 100%); justify-self: end; }
.wsevent-scene {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  filter: drop-shadow(0 30px 40px rgba(35, 42, 31, .18));
}
/* The 15-second cartoon loop is staged in three acts. */
.sun { transform-box: fill-box; transform-origin: center; animation: sun-pulse 15s ease-in-out infinite; }
.cloud--one { animation: cloud-drift-one 15s linear infinite; }
.cloud--two { animation: cloud-drift-two 18s linear infinite; }
.vine-leaves ellipse { transform-box: fill-box; transform-origin: center; animation: leaf-wave 2.8s ease-in-out infinite alternate; }
.vine-leaves ellipse:nth-child(even) { animation-delay: -1.1s; }
.grape-cluster { transform-box: fill-box; transform-origin: 50% 100%; animation: grapes-story 15s cubic-bezier(.55,.02,.35,1) infinite; }
.bottle { transform-box: fill-box; transform-origin: 55% 92%; animation: bottle-story 15s cubic-bezier(.55,.02,.35,1) infinite; }
.cork { transform-box: fill-box; transform-origin: center; animation: cork-story 15s cubic-bezier(.3,.7,.2,1) infinite; }
.pop-line { stroke-dashoffset: 150; animation: pop-story 15s ease infinite; }
.glass { transform-box: fill-box; transform-origin: 50% 100%; animation: glass-story 15s ease infinite; }
.glass-wine { transform-box: fill-box; transform-origin: 50% 100%; animation: wine-fill 15s ease infinite; }
.wine-stream { stroke-dasharray: 170; stroke-dashoffset: 170; animation: pour-story 15s ease infinite; }
.bubbles circle { transform-box: fill-box; transform-origin: center; animation: bubbles-story 15s ease infinite; }
.bubbles circle:nth-child(2n) { animation-delay: -.22s; }
.bubbles circle:nth-child(3n) { animation-delay: -.4s; }
.cheese-board { transform-box: fill-box; transform-origin: 50% 100%; animation: board-story 15s cubic-bezier(.2,.8,.2,1) infinite; }
.cheese { transform-box: fill-box; transform-origin: 50% 100%; animation: cheese-bounce 15s cubic-bezier(.2,.9,.3,1) infinite; }
.cheese--two { animation-delay: .16s; }
.cheese--three { animation-delay: .31s; }
.sparkles { transform-box: fill-box; transform-origin: center; animation: sparkle-story 15s ease infinite; }

@keyframes sun-pulse {
  0%, 100% { transform: translateY(52px) scale(.82); opacity: .65; }
  15%, 78% { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes cloud-drift-one { from { transform: translateX(-140px); } to { transform: translateX(1050px); } }
@keyframes cloud-drift-two { from { transform: translateX(330px); } to { transform: translateX(-930px); } }
@keyframes leaf-wave { from { rotate: -4deg; } to { rotate: 5deg; } }
@keyframes grapes-story {
  0%, 4% { transform: translate(-90px, 110px) scale(.2) rotate(-18deg); opacity: 0; }
  13%, 30% { transform: translate(0,0) scale(1) rotate(0); opacity: 1; }
  38%, 100% { transform: translate(120px,-65px) scale(.08) rotate(38deg); opacity: 0; }
}
@keyframes bottle-story {
  0%, 24% { transform: translateY(160px) rotate(-8deg); opacity: 0; }
  34%, 52% { transform: translateY(0) rotate(0); opacity: 1; }
  58%, 66% { transform: translate(25px,-18px) rotate(15deg); opacity: 1; }
  73%, 100% { transform: translateY(150px) rotate(8deg); opacity: 0; }
}
@keyframes cork-story {
  0%, 36% { transform: translate(0,48px) rotate(0); opacity: 0; }
  39% { transform: translate(0,0) rotate(0); opacity: 1; }
  48% { transform: translate(170px,-112px) rotate(520deg); opacity: 1; }
  52%, 100% { transform: translate(220px,-60px) rotate(690deg); opacity: 0; }
}
@keyframes pop-story {
  0%, 39% { stroke-dashoffset: 150; opacity: 0; }
  43%, 47% { stroke-dashoffset: 0; opacity: 1; }
  52%, 100% { stroke-dashoffset: -150; opacity: 0; }
}
@keyframes glass-story {
  0%, 45% { transform: translate(115px,100px) scale(.6); opacity: 0; }
  53%, 81% { transform: translate(0,0) scale(1); opacity: 1; }
  88%, 100% { transform: translateY(80px) scale(.8); opacity: 0; }
}
@keyframes wine-fill {
  0%, 56% { transform: scaleY(.05); opacity: 0; }
  65%, 100% { transform: scaleY(1); opacity: 1; }
}
@keyframes pour-story {
  0%, 55% { stroke-dashoffset: 170; opacity: 0; }
  59%, 65% { stroke-dashoffset: 0; opacity: 1; }
  69%, 100% { stroke-dashoffset: -170; opacity: 0; }
}
@keyframes bubbles-story {
  0%, 55% { transform: translateY(80px) scale(.2); opacity: 0; }
  64% { opacity: .95; }
  78%, 100% { transform: translateY(-120px) scale(1.25); opacity: 0; }
}
@keyframes board-story {
  0%, 63% { transform: translate(300px,120px) rotate(8deg); opacity: 0; }
  74%, 92% { transform: translate(0,0) rotate(0); opacity: 1; }
  100% { transform: translate(-160px,80px) rotate(-5deg); opacity: 0; }
}
@keyframes cheese-bounce {
  0%, 69% { transform: translateY(-160px) rotate(-12deg) scale(.5); opacity: 0; }
  76% { transform: translateY(10px) rotate(3deg) scale(1.05); opacity: 1; }
  80%, 94% { transform: translateY(0) rotate(0) scale(1); opacity: 1; }
  100% { transform: translateY(60px) scale(.8); opacity: 0; }
}
@keyframes sparkle-story {
  0%, 72% { transform: scale(.3) rotate(0); opacity: 0; }
  78%, 90% { transform: scale(1) rotate(90deg); opacity: 1; }
  100% { transform: scale(1.4) rotate(170deg); opacity: 0; }
}

.wsevent-story,
.wsevent-programme,
.wsevent-reservation { padding: clamp(70px, 10vw, 150px) clamp(24px, 8vw, 120px); }

.wsevent-story {
  display: grid;
  grid-template-columns: minmax(260px, .68fr) minmax(420px, 1.32fr);
  gap: clamp(44px, 8vw, 130px);
  max-width: 1440px;
  margin: 0 auto;
}
.wsevent-story__heading { align-self: start; position: sticky; top: 60px; }
.wsevent-story h2,
.wsevent-programme h2,
.wsevent-reservation h2 {
  margin-bottom: 22px;
  font-size: clamp(2.5rem, 5.5vw, 6rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .98;
}
.wsevent-story__copy {
  color: rgba(24,53,46,.76);
  font-size: clamp(1rem, 1.35vw, 1.19rem);
  line-height: 1.9;
}
.wsevent-story__copy p { margin-bottom: 1.5em; }
.wsevent-story__copy hr {
  width: 54px;
  margin: 3.2rem 0;
  border: 0;
  border-top: 3px solid var(--ws-gold);
}
.wsevent-story__event {
  color: var(--ws-wine);
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: .04em;
}
.wsevent-story__lead,
.wsevent-story__closing {
  color: var(--ws-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 2.6vw, 2.5rem);
  line-height: 1.35;
}
.wsevent-programme { background: var(--ws-ink); color: #fff; }
.wsevent-programme > div:first-child { max-width: 920px; }
.wsevent-programme .wsevent-eyebrow { color: #e4b969; }
.wsevent-programme__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 58px;
}
.wsevent-programme article {
  min-height: 310px;
  padding: 30px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px;
  background: rgba(255,255,255,.055);
}
.wsevent-programme h3 { font-family: Georgia, serif; font-size: 1.55rem; font-weight: 500; }
.wsevent-programme article p { color: rgba(255,255,255,.68); line-height: 1.68; }

.wsevent-reservation { background: #e9c98e; text-align: center; }
.wsevent-reservation > p:not(.wsevent-eyebrow) { font-size: 1.25rem; font-weight: 800; }
.wsevent-button--disabled { opacity: .62; cursor: not-allowed; }

@media (max-width: 940px) {
  .wsevent-hero { grid-template-columns: 1fr; padding-top: 70px; }
  .wsevent-hero__copy { text-align: center; }
  .wsevent-hero h1 { justify-items: center; font-size: clamp(3.4rem, 14vw, 7rem); }
  .wsevent-hero h1 em { margin-left: 0; }
  .wsevent-hero__lead { margin-left: auto; margin-right: auto; }
  .wsevent-facts { justify-content: center; }
  .wsevent-film { justify-self: center; }
  .wsevent-programme__grid { grid-template-columns: 1fr; }
  .wsevent-story { grid-template-columns: 1fr; }
  .wsevent-story__heading { position: static; }
  .wsevent-programme article { min-height: auto; }
}

@media (max-width: 560px) {
  .prototype-note { font-size: 10px; }
  .wsevent-hero { min-height: auto; gap: 34px; padding: 44px 16px 58px; }
  .wsevent-hero h1 { font-size: clamp(3rem, 14.5vw, 4.4rem); }
  .wsevent-story, .wsevent-programme, .wsevent-reservation { padding-left: 20px; padding-right: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .wsevent-scene * { animation: none !important; }
  .grape-cluster, .bottle, .glass, .cheese-board, .cheese, .sparkles { opacity: 1; }
  .cork, .wine-stream, .pop-line, .bubbles { opacity: 0; }
  .glass-wine { transform: none; opacity: 1; }
}

/* 2026-10-07 format correction: align the candidate with the established
   VAVIN Events and dedicated-event page system. */
body {
  background: #fff;
  color: #252525;
  font-family: Montserrat, "Helvetica Neue", Arial, sans-serif;
}

.site-header {
  position: relative;
  z-index: 20;
  display: grid;
  grid-template-columns: 250px 1fr auto;
  min-height: 120px;
  align-items: center;
  gap: 28px;
  padding: 0 clamp(28px, 5vw, 72px);
  background: #fbf8f2;
}
.site-header__brand img { display: block; width: 150px; height: auto; }
.site-header__nav { display: flex; justify-content: center; gap: clamp(30px, 5vw, 78px); }
.site-header__nav a,
.site-header__account {
  color: #7b3d56;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .24em;
  text-decoration: none;
  text-transform: uppercase;
}
.site-header__account { align-self: start; margin-top: 12px; white-space: nowrap; }
.site-header__menu { display: none; border: 0; background: transparent; color: #7b3d56; font-size: 1.3rem; }

.prototype-note {
  padding: 7px 18px;
  background: #171717;
  color: rgba(255,255,255,.75);
  font-size: .66rem;
  letter-spacing: .04em;
}

.wsevent {
  --ws-ink: #171717;
  --ws-cream: #f1e7e0;
  --ws-paper: #fbf8f2;
  --ws-wine: #171717;
  --ws-gold: #b89b61;
  --ws-leaf: #171717;
  --ws-line: #ded5ce;
  width: min(1140px, calc(100% - 40px));
  margin: 30px auto 0;
  background: #fff;
}

.wsevent-hero {
  min-height: 0;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 0;
  padding: 0;
  background: #171717;
  overflow: hidden;
}
.wsevent-hero__copy {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(58px, 6vw, 88px);
  color: #fff;
  background:
    radial-gradient(circle at 92% 18%, rgba(184,155,97,.18), transparent 32%),
    linear-gradient(145deg, #090909, #282828);
}
.wsevent-hero .wsevent-eyebrow { color: #dec693; }
.wsevent-hero h1 {
  display: block;
  margin-bottom: 26px;
  color: #fff;
  font-size: clamp(3.25rem, 4.7vw, 4.2rem);
  letter-spacing: 0;
  line-height: .94;
}
.wsevent-hero h1 span,
.wsevent-hero h1 em { display: block; }
.wsevent-hero h1 em {
  margin: .16em 0 0;
  color: #d9bf86;
  font-size: .62em;
  font-weight: 400;
  font-style: normal;
}
.wsevent-hero__lead {
  max-width: 580px;
  margin: 0 0 14px;
  color: rgba(255,255,255,.84);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.05rem, 1.8vw, 1.4rem);
  font-style: italic;
  line-height: 1.55;
}
.wsevent-hero__date {
  margin: 0 0 32px;
  color: #e3cd9f;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.55;
  text-transform: uppercase;
}
.wsevent-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.wsevent-button {
  min-height: 48px;
  padding: 13px 20px;
  border-radius: 3px;
  background: var(--ws-wine);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.wsevent-button--secondary { border: 1px solid rgba(255,255,255,.58); background: rgba(255,255,255,.08); }
.wsevent-film {
  align-self: stretch;
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  background: #171717;
}
.wsevent-scene { display: none; }
.wsevent-poster-stage {
  position: relative;
  width: 100%;
  min-height: 0;
  aspect-ratio: 627 / 650;
  flex: none;
  overflow: hidden;
  isolation: isolate;
  background: #f1e7e0;
}
.wsevent-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  transform-origin: 73% 48%;
  animation: poster-camera 15s cubic-bezier(.55,.05,.3,1) infinite;
}
.wsevent-poster-stage::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(90deg, rgba(7,29,27,.18), transparent 24%, transparent 82%, rgba(255,255,255,.08));
  content: "";
  pointer-events: none;
}
.wsevent-poster__gleam {
  position: absolute;
  z-index: 3;
  top: 4%;
  left: 34%;
  width: 24%;
  height: 105%;
  background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,.1) 43%, rgba(255,255,255,.7) 49%, rgba(255,255,255,.08) 55%, transparent 80%);
  filter: blur(2px);
  mix-blend-mode: screen;
  transform: translateX(-250%) rotate(8deg);
  animation: poster-gleam 7.5s ease-in-out infinite;
  pointer-events: none;
}
.wsevent-poster__spark {
  position: absolute;
  z-index: 4;
  color: #fff5c4;
  font-size: clamp(1.2rem, 2.8vw, 2.5rem);
  filter: drop-shadow(0 0 8px rgba(255,221,121,.95));
  animation: poster-spark 3.4s ease-in-out infinite;
  pointer-events: none;
}
.wsevent-poster__spark--one { top: 27%; right: 21%; }
.wsevent-poster__spark--two { top: 48%; right: 43%; animation-delay: -1.7s; }
.wsevent-poster__bubble {
  position: absolute;
  z-index: 4;
  bottom: 19%;
  width: 22px;
  height: 22px;
  border: 2px solid rgba(255,255,255,.82);
  border-radius: 50%;
  box-shadow: inset 3px 3px 6px rgba(255,255,255,.35), 0 0 8px rgba(183,226,255,.4);
  animation: poster-bubble 5.4s ease-in infinite;
  pointer-events: none;
}
.wsevent-poster__bubble--one { right: 34%; }
.wsevent-poster__bubble--two { right: 27%; width: 14px; height: 14px; animation-delay: -1.8s; }
.wsevent-poster__bubble--three { right: 18%; width: 29px; height: 29px; animation-delay: -3.6s; }
@keyframes poster-camera {
  0%, 18%, 100% { transform: none; filter: saturate(1) brightness(1); }
  36%, 53% { transform: none; filter: saturate(1.04) brightness(1.025); }
  70%, 88% { transform: none; filter: saturate(1.01) brightness(1.01); }
}
@keyframes poster-gleam {
  0%, 18% { transform: translateX(-250%) rotate(8deg); opacity: 0; }
  34%, 48% { opacity: .9; }
  66%, 100% { transform: translateX(390%) rotate(8deg); opacity: 0; }
}
@keyframes poster-spark {
  0%, 100% { transform: scale(.25) rotate(0deg); opacity: 0; }
  32%, 62% { transform: scale(1) rotate(90deg); opacity: 1; }
}
@keyframes poster-bubble {
  0% { transform: translate3d(0, 70px, 0) scale(.35); opacity: 0; }
  18% { opacity: .82; }
  100% { transform: translate3d(-18px, -310px, 0) scale(1.18); opacity: 0; }
}
.wsevent-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  padding: 0 clamp(20px, 4vw, 56px);
  border-bottom: 1px solid var(--ws-line);
  background: var(--ws-line);
}
.wsevent-trust > div { min-height: 114px; padding: 24px; background: #fff; }
.wsevent-trust strong {
  display: block;
  margin-bottom: 8px;
  color: var(--ws-wine);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.wsevent-trust span { font-family: Georgia, serif; font-size: clamp(1.08rem, 1.45vw, 1.25rem); font-style: italic; }

.wsevent-story,
.wsevent-programme,
.wsevent-reservation { padding: clamp(58px, 7vw, 90px) clamp(24px, 5vw, 72px); }
.wsevent-story {
  grid-template-columns: minmax(310px, .82fr) minmax(0, 1.18fr);
  align-items: start;
  gap: clamp(34px, 4vw, 58px);
  max-width: none;
  background: var(--ws-paper);
}
.wsevent-story__heading {
  position: static;
  display: grid;
  align-content: start;
}
.wsevent-partners {
  display: grid;
  width: 100%;
  gap: 0;
  margin-top: 30px;
  border: 1px solid var(--ws-line);
  background: rgba(255,255,255,.72);
}
.wsevent-partners__row {
  display: flex;
  min-height: 92px;
  align-items: center;
  justify-content: center;
  padding: 14px 22px;
  border-bottom: 1px solid var(--ws-line);
}
.wsevent-partners__row:last-child { border-bottom: 0; }
.wsevent-partners__row img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 68px;
  object-fit: contain;
  object-position: center;
}
.wsevent-partners__row--weightstone img { width: 70px; filter: brightness(0); }
.wsevent-partners__row--comptoir img { width: 178px; }
.wsevent-partners__row--vavin img { width: 166px; filter: brightness(0); }
.wsevent-story h2,
.wsevent-programme h2,
.wsevent-reservation h2 {
  color: var(--ws-ink);
  font-size: clamp(2.25rem, 4.6vw, 4.4rem);
  letter-spacing: 0;
  line-height: 1.04;
}
.wsevent-story h2 { max-width: 9ch; font-size: clamp(2.8rem, 4vw, 4rem); }
.wsevent-story__copy {
  display: grid;
  gap: 18px;
  align-self: start;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid var(--ws-line);
  border-top: 3px solid var(--ws-gold);
  background: rgba(255,255,255,.72);
  color: rgba(23,23,23,.76);
  font-size: 1rem;
  line-height: 1.65;
}
.wsevent-story__copy p { margin: 0; }
.wsevent-story__copy hr {
  width: 48px;
  margin: 2px 0;
  border: 0;
  border-top: 3px solid var(--ws-gold);
}
.wsevent-story__event {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ws-line);
}
.wsevent-story__lead,
.wsevent-story__closing { font-size: clamp(1.45rem, 2.1vw, 2rem); line-height: 1.18; }
.wsevent-story__closing {
  margin-top: 4px !important;
  padding-top: 20px;
  border-top: 1px solid var(--ws-line);
}

.wsevent-programme { background: #fffdf8; color: var(--ws-ink); }
.wsevent-programme > .wsevent-programme__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
  align-items: center;
  gap: clamp(36px, 6vw, 88px);
  max-width: none;
}
.wsevent-programme .wsevent-eyebrow { color: var(--ws-wine); }
.wsevent-programme-showcase {
  aspect-ratio: 3 / 2;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--ws-line);
  border-top: 3px solid var(--ws-gold);
  background: #eee5d9;
}
.wsevent-programme-showcase img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.wsevent-programme__grid { gap: 18px; margin-top: 36px; }
.wsevent-programme article {
  min-height: 310px;
  padding: 28px;
  border: 1px solid var(--ws-line);
  border-top: 4px solid var(--ws-gold);
  border-radius: 0;
  background: #fff;
}
.wsevent-programme article p { color: #6c5f64; }
.wsevent-selection {
  display: grid;
  gap: 58px;
  margin-top: 48px;
}
.wsevent-selection__group {
  padding-top: 28px;
  border-top: 1px solid var(--ws-line);
}
.wsevent-selection__header {
  display: grid;
  grid-template-columns: minmax(150px, .38fr) minmax(280px, .72fr) minmax(260px, 1fr);
  align-items: end;
  gap: 22px;
  margin-bottom: 24px;
}
.wsevent-selection__header p {
  margin: 0;
  color: var(--ws-wine);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.wsevent-selection__header h3 {
  margin: 0;
  color: var(--ws-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.75rem, 2.6vw, 2.45rem);
  font-weight: 500;
  line-height: 1.05;
}
.wsevent-selection__header span {
  color: #6c5f64;
  font-size: .95rem;
  line-height: 1.6;
}
.wsevent-selection__grid {
  display: grid;
  gap: 14px;
}
.wsevent-selection__grid--wine { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wsevent-selection__grid--cheese { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.wsevent-selection__grid--cheese .wsevent-tasting-card { grid-column: span 2; }
.wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(4) { grid-column: 2 / span 2; }
.wsevent-selection__grid--wine .wsevent-tasting-card:nth-child(1) { --wsevent-product-scale: .98; }
.wsevent-selection__grid--wine .wsevent-tasting-card:nth-child(2) { --wsevent-product-scale: 1.03; }
.wsevent-selection__grid--wine .wsevent-tasting-card:nth-child(3) { --wsevent-product-scale: .95; }
.wsevent-selection__grid--wine .wsevent-tasting-card:nth-child(4) { --wsevent-product-scale: .98; }
.wsevent-selection__grid--wine .wsevent-tasting-card:nth-child(5) { --wsevent-product-scale: .95; }
.wsevent-selection__grid--wine .wsevent-tasting-card:nth-child(6) { --wsevent-product-scale: .98; }
.wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(1) { --wsevent-product-scale: 1.18; }
.wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(2) { --wsevent-product-scale: 1.11; }
.wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(3) { --wsevent-product-scale: .96; }
.wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(4) { --wsevent-product-scale: 1.11; }
.wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(5) { --wsevent-product-scale: .97; }
.wsevent-programme .wsevent-tasting-card {
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ws-line);
  border-top: 3px solid var(--ws-gold);
  background: linear-gradient(155deg, #fff 0%, #fbf7ef 100%);
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.wsevent-programme .wsevent-selection__group--cheese .wsevent-tasting-card {
  border-top-color: var(--ws-wine);
}
.wsevent-programme .wsevent-tasting-card:hover,
.wsevent-programme .wsevent-tasting-card:focus-within {
  border-color: #b89b61;
  box-shadow: 0 16px 34px rgba(23,23,23,.1);
  transform: translateY(-4px);
}
.wsevent-product-link {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}
.wsevent-product-visual {
  display: grid;
  min-height: 310px;
  margin: 0;
  padding: 22px;
  place-items: center;
  overflow: hidden;
  border-bottom: 1px solid var(--ws-line);
  background:
    radial-gradient(circle at 50% 42%, #fff 0, #f4eee5 64%, #eee5d9 100%);
}
.wsevent-product-visual--wine { min-height: 310px; }
.wsevent-product-visual img {
  display: block;
  width: 230px !important;
  max-width: 100% !important;
  height: 230px !important;
  object-fit: contain !important;
  transform: scale(var(--wsevent-product-scale, 1));
  transition: transform .28s ease;
}
.wsevent-product-visual--wine img { mix-blend-mode: multiply; }
.wsevent-tasting-card:hover .wsevent-product-visual img,
.wsevent-tasting-card:focus-within .wsevent-product-visual img { transform: scale(calc(var(--wsevent-product-scale, 1) * 1.035)); }
.wsevent-product-copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 24px;
}
.wsevent-product-copy > span:first-child {
  display: block;
  min-height: 2.6em;
  margin-bottom: 14px;
  color: var(--ws-wine);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.35;
  text-transform: uppercase;
}
.wsevent-tasting-card h4 {
  margin: 0 0 13px;
  color: var(--ws-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  font-weight: 500;
  line-height: 1.12;
}
.wsevent-programme .wsevent-tasting-card p {
  margin: 0;
  color: #6c5f64;
  font-size: .9rem;
  line-height: 1.65;
}
.wsevent-product-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 22px;
  color: var(--ws-ink);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.wsevent-product-cta b { color: var(--ws-wine); font-size: 1rem; }

.wsevent-reservation {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(24px, 4vw, 52px);
  background: var(--ws-cream);
  text-align: left;
}
.wsevent-reservation__mark {
  display: grid;
  width: 86px;
  height: 86px;
  place-items: center;
  border-radius: 20px;
  background: #06c755;
  overflow: hidden;
}
.wsevent-reservation__mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wsevent-reservation h2 { margin-bottom: 10px; font-size: clamp(2.1rem, 3.8vw, 3.8rem); }
.wsevent-reservation p:last-child {
  margin-bottom: 0;
  color: #171717;
  font-size: clamp(1.05rem, 1.55vw, 1.25rem);
  line-height: 1.55;
}
.wsevent-line-button {
  gap: 10px;
  min-width: 210px;
  background: #06c755;
  box-shadow: 0 10px 24px rgba(6,199,85,.22);
}
.wsevent-line-button:hover { background: #05ad4a; }
.wsevent-line-button img { width: 26px; height: 26px; border-radius: 7px; }

.site-legal {
  position: sticky;
  z-index: 25;
  bottom: 0;
  display: flex;
  min-height: 70px;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 3vw, 38px);
  padding: 10px 20px;
  background: rgba(255,255,255,.97);
  color: #111;
  font-size: clamp(1rem, 2.4vw, 2rem);
  box-shadow: 0 -6px 18px rgba(0,0,0,.06);
}
.site-legal i { font-style: normal; }
.site-legal b { font-size: 1.4rem; }

@media (max-width: 940px) {
  .site-header { grid-template-columns: 44px 1fr 44px; min-height: 95px; padding: 0 20px; }
  .site-header__menu { display: block; }
  .site-header__brand { justify-self: center; }
  .site-header__brand img { width: 146px; }
  .site-header__nav, .site-header__account { display: none; }
  .wsevent {
    width: 100vw;
    max-width: none;
    margin-top: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
  .wsevent-hero { grid-template-columns: 1fr; min-height: 0; padding: 0; }
  .wsevent-hero__copy { padding: 70px clamp(20px, 6vw, 34px) 64px; text-align: left; }
  .wsevent-hero h1 { justify-items: initial; font-size: clamp(3rem, 15vw, 4.8rem); }
  .wsevent-hero h1 em { margin-left: 0; }
  .wsevent-hero__lead { margin-left: 0; margin-right: 0; }
  .wsevent-film { width: 100%; min-height: 0; }
  .wsevent-poster-stage { width: 100%; min-height: 0; aspect-ratio: 627 / 650; }
  .wsevent-poster { object-position: center; }
  .wsevent-trust { grid-template-columns: repeat(2, 1fr); padding: 0; }
  .wsevent-story { grid-template-columns: 1fr; }
  .wsevent-story__heading { position: static; }
  .wsevent-partners { width: min(100%, 360px); margin: 28px auto 34px; }
  .wsevent-partners__row { min-height: 88px; padding: 14px 22px; }
  .wsevent-programme__grid { grid-template-columns: 1fr; }
  .wsevent-selection__header { grid-template-columns: 1fr; align-items: start; gap: 8px; }
  .wsevent-selection__header span { max-width: 620px; }
  .wsevent-programme > .wsevent-programme__intro { grid-template-columns: 1fr; }
  .wsevent-selection__grid--wine,
  .wsevent-selection__grid--cheese { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wsevent-selection__grid--cheese .wsevent-tasting-card { grid-column: auto; }
  .wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(4) { grid-column: auto; }
  .wsevent-reservation { grid-template-columns: auto 1fr; }
  .wsevent-reservation .wsevent-button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 560px) {
  .prototype-note { display: none; }
  .wsevent-hero__copy { padding: 54px 20px 48px; }
  .wsevent-hero h1 { font-size: clamp(2.9rem, 14.2vw, 4rem); }
  .wsevent-actions { align-items: stretch; flex-direction: column; }
  .wsevent-actions .wsevent-button {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
  }
  .wsevent-trust { grid-template-columns: 1fr; }
  .wsevent-trust > div { min-height: 92px; padding: 20px; }
  .wsevent-story, .wsevent-programme, .wsevent-reservation { padding-left: 18px; padding-right: 18px; }
  .wsevent-story h2 { max-width: 10ch; }
  .wsevent-story__copy { gap: 16px; padding: 24px 20px; }
  .wsevent-selection { gap: 44px; margin-top: 38px; }
  .wsevent-selection__grid--wine,
  .wsevent-selection__grid--cheese { grid-template-columns: 1fr; }
  .wsevent-selection__grid--cheese .wsevent-tasting-card:nth-child(4) { grid-column: auto; }
  .wsevent-product-copy { padding: 22px; }
  .wsevent-product-copy > span:first-child { min-height: 0; }
  .wsevent-product-visual,
  .wsevent-product-visual--wine { min-height: 300px; }
  .wsevent-product-visual img { width: 230px !important; height: 230px !important; }
  .wsevent-reservation { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .site-legal { gap: 10px; min-height: 62px; font-size: .86rem; }
  .site-legal i { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .wsevent-poster,
  .wsevent-poster__gleam,
  .wsevent-poster__spark,
  .wsevent-poster__bubble { animation: none !important; }
  .wsevent-poster__gleam,
  .wsevent-poster__spark,
  .wsevent-poster__bubble { display: none; }
}
