/* =========================================================
   v8.1 — PREMIUM MOBILE + COLOR SYSTEM
   Clean overrides: distinct layouts, guaranteed contrast,
   palette-driven timeline badges and stable mobile heroes.
   ========================================================= */

body[class*="event-layout-"] .hero{position:relative;isolation:isolate;overflow:hidden;background:var(--page)}
body[class*="event-layout-"] .hero-media{display:block!important;background-size:cover!important;background-repeat:no-repeat!important;filter:none!important}
body[class*="event-layout-"] .hero-copy,body[class*="event-layout-"] .hero-copy *{text-shadow:none!important;filter:none!important}
body[class*="event-layout-"] .hero-copy h1{word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;text-wrap:balance;max-width:100%;line-height:.98}
body[class*="event-layout-"] .hero-intro{max-width:48ch;line-height:1.62;text-wrap:pretty}
body[class*="event-layout-"] .hero-date{font-weight:600}
body[class*="event-layout-"] .event-copy time{display:inline-flex!important;align-items:center;min-height:24px;padding:4px 10px!important;border-radius:999px!important;background:var(--accent)!important;color:var(--button-ink)!important;border:1px solid color-mix(in srgb,var(--accent-2) 28%,transparent)!important;font:700 11px/1 var(--font-sans)!important;letter-spacing:.04em;box-shadow:none!important}
body[class*="event-layout-"] .event-icon{background:color-mix(in srgb,var(--accent) 14%,var(--surface))!important;border-color:color-mix(in srgb,var(--accent) 25%,var(--line))!important}
body[class*="event-layout-"] .event-number{color:var(--accent-2)!important}
body[class*="event-layout-"] .event-timeline:before{background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 12%,transparent))!important}

/* shared light copy */
.event-layout-elegant .hero-copy,.event-layout-modern .hero-copy,.event-layout-soft .hero-copy,.event-layout-editorial .hero-copy,.event-layout-playful .hero-copy,.event-layout-classic .hero-copy,.event-layout-minimal .hero-copy{color:var(--ink)!important}
.event-layout-elegant .hero-copy h1,.event-layout-modern .hero-copy h1,.event-layout-soft .hero-copy h1,.event-layout-editorial .hero-copy h1,.event-layout-playful .hero-copy h1,.event-layout-classic .hero-copy h1,.event-layout-minimal .hero-copy h1{color:var(--ink)!important}
.event-layout-elegant .hero-date,.event-layout-elegant .hero-intro,.event-layout-modern .hero-date,.event-layout-modern .hero-intro,.event-layout-soft .hero-date,.event-layout-soft .hero-intro,.event-layout-editorial .hero-date,.event-layout-editorial .hero-intro,.event-layout-playful .hero-date,.event-layout-playful .hero-intro,.event-layout-classic .hero-date,.event-layout-classic .hero-intro,.event-layout-minimal .hero-date,.event-layout-minimal .hero-intro{color:var(--muted)!important}

/* 01 — Maison Editoriale: full photo + paper caption */
.event-layout-elegant .hero{display:grid!important;grid-template-rows:min(67vh,720px) auto!important;min-height:0!important;margin:18px!important;border-radius:30px!important;background:var(--surface)!important}
.event-layout-elegant .hero-media{position:relative!important;inset:auto!important;grid-row:1!important;min-height:520px!important;background-position:center 35%!important}
.event-layout-elegant .hero:after{display:none!important}
.event-layout-elegant .hero-content{grid-row:2!important;min-height:0!important;padding:38px clamp(28px,6vw,92px) 46px!important;background:var(--surface)!important}
.event-layout-elegant .hero-copy{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)!important;gap:10px 64px!important;align-items:end!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
.event-layout-elegant .event-type-badge,.event-layout-elegant .eyebrow,.event-layout-elegant h1{grid-column:1!important}
.event-layout-elegant .hero-date,.event-layout-elegant .hero-intro,.event-layout-elegant .btn{grid-column:2!important}
.event-layout-elegant h1{font-size:clamp(58px,7.3vw,116px)!important;font-weight:500!important;letter-spacing:-.05em!important}

/* 02 — Atelier Split: editorial left rail + image */
.event-layout-modern .hero{display:grid!important;grid-template-columns:44% 56%!important;min-height:700px!important;background:var(--page)!important}
.event-layout-modern .hero-content{grid-column:1!important;grid-row:1!important;min-height:700px!important;padding:70px clamp(40px,6vw,96px)!important;display:flex!important;align-items:center!important;background:var(--surface)!important}
.event-layout-modern .hero-media{position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;min-height:700px!important;border-radius:80px 0 0 0!important;background-position:center 34%!important}
.event-layout-modern .hero:after{display:none!important}
.event-layout-modern .hero-copy{max-width:600px!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
.event-layout-modern .hero-copy:before{content:"";display:block;width:72px;height:3px;margin-bottom:28px;background:linear-gradient(90deg,var(--accent),var(--accent-3))}
.event-layout-modern h1{font-family:var(--font-sans)!important;font-size:clamp(54px,6vw,96px)!important;font-weight:760!important;letter-spacing:-.06em!important}

/* 03 — Romantic Arch: portrait arch + centered invitation copy */
.event-layout-soft .hero{display:grid!important;grid-template-columns:minmax(360px,.82fr) minmax(520px,1.18fr)!important;gap:clamp(42px,7vw,104px)!important;min-height:720px!important;padding:58px max(6vw,42px)!important;align-items:center!important;background:linear-gradient(145deg,var(--page),var(--page-alt))!important}
.event-layout-soft .hero-content{grid-column:1!important;grid-row:1!important;min-height:0!important;padding:0!important}
.event-layout-soft .hero-media{position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;min-height:620px!important;border-radius:50% 50% 24px 24px / 36% 36% 18px 18px!important;background-position:center 30%!important;box-shadow:0 32px 80px color-mix(in srgb,var(--ink) 16%,transparent)!important}
.event-layout-soft .hero:after{display:none!important}
.event-layout-soft .hero-copy{max-width:560px!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;text-align:center!important}
.event-layout-soft .hero-intro{margin-inline:auto!important}
.event-layout-soft h1{font-size:clamp(56px,6.5vw,104px)!important;font-weight:500!important;letter-spacing:-.045em!important}

/* 04 — Wedding Journal: copy column + edge image */
.event-layout-editorial .hero{display:grid!important;grid-template-columns:35% 65%!important;min-height:720px!important;background:var(--surface)!important}
.event-layout-editorial .hero-content{grid-column:1!important;grid-row:1!important;min-height:720px!important;padding:62px clamp(32px,5vw,72px)!important;display:flex!important;align-items:flex-end!important;border-right:1px solid var(--line)!important;background:var(--surface)!important}
.event-layout-editorial .hero-media{position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;min-height:720px!important;background-position:center 34%!important}
.event-layout-editorial .hero:after{display:none!important}
.event-layout-editorial .hero-copy{padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
.event-layout-editorial .hero-copy:before{content:none!important;display:none!important}
.event-layout-editorial h1{font-size:clamp(54px,6.2vw,100px)!important;font-weight:500!important;letter-spacing:-.05em!important}

/* 05 — Cinematic Vows: full bleed, bottom safe zone */
.event-layout-dark .hero{min-height:760px!important;background:#090a0c!important}
.event-layout-dark .hero-media{position:absolute!important;inset:0!important;min-height:760px!important;background-position:center 30%!important}
.event-layout-dark .hero:after{content:""!important;display:block!important;position:absolute!important;inset:0!important;background:linear-gradient(180deg,rgba(0,0,0,.04) 0 40%,rgba(0,0,0,.26) 62%,rgba(0,0,0,.92) 100%)!important}
.event-layout-dark .hero-content{position:relative!important;z-index:2!important;min-height:760px!important;padding:0 max(5vw,40px) 56px!important;display:flex!important;align-items:flex-end!important;background:transparent!important}
.event-layout-dark .hero-copy{width:min(1180px,100%)!important;display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(310px,.5fr)!important;gap:18px 78px!important;align-items:end!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;color:#fff!important}
.event-layout-dark .event-type-badge,.event-layout-dark .eyebrow,.event-layout-dark h1{grid-column:1!important}
.event-layout-dark .hero-date,.event-layout-dark .hero-intro,.event-layout-dark .btn{grid-column:2!important}
.event-layout-dark h1{font-size:clamp(64px,8vw,128px)!important;color:#fff!important;font-weight:500!important;letter-spacing:-.05em!important}
.event-layout-dark .hero-date,.event-layout-dark .hero-intro{color:rgba(255,255,255,.88)!important}

/* 06 — Garden Collage: sculpted photo + clean card */
.event-layout-playful .hero{display:grid!important;grid-template-columns:.78fr 1.22fr!important;gap:34px!important;min-height:700px!important;padding:52px max(5vw,34px)!important;background:var(--page-alt)!important}
.event-layout-playful .hero-content{grid-column:1!important;grid-row:1!important;min-height:0!important;padding:0!important;display:flex!important;align-items:center!important}
.event-layout-playful .hero-media{position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;min-height:596px!important;border-radius:40% 12% 38% 16% / 30% 16% 34% 20%!important;background-position:center 32%!important;box-shadow:28px 28px 0 color-mix(in srgb,var(--accent) 18%,var(--surface))!important}
.event-layout-playful .hero:after{display:none!important}
.event-layout-playful .hero-copy{width:100%!important;padding:46px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:30px!important;box-shadow:0 24px 70px color-mix(in srgb,var(--ink) 10%,transparent)!important}
.event-layout-playful h1{font-family:var(--font-sans)!important;font-size:clamp(50px,5.9vw,92px)!important;font-weight:760!important;letter-spacing:-.055em!important}

/* 07 — Ivory Invitation: ceremony card + framed panorama */
.event-layout-classic .hero{display:grid!important;grid-template-rows:auto 500px!important;min-height:0!important;padding:54px max(4vw,28px) 34px!important;background:var(--page)!important}
.event-layout-classic .hero-content{grid-row:1!important;min-height:0!important;padding:0 0 40px!important;display:flex!important;justify-content:center!important;background:transparent!important}
.event-layout-classic .hero-copy{width:min(860px,100%)!important;text-align:center!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
.event-layout-classic .hero-intro{margin-inline:auto!important}
.event-layout-classic h1{font-size:clamp(58px,7.1vw,112px)!important;font-weight:500!important;letter-spacing:-.04em!important}
.event-layout-classic .hero-media{position:relative!important;inset:auto!important;grid-row:2!important;min-height:500px!important;border:1px solid color-mix(in srgb,var(--ink) 52%,transparent)!important;outline:12px solid var(--surface)!important;outline-offset:-28px!important;background-position:center 39%!important}
.event-layout-classic .hero:after{display:none!important}

/* 08 — Black Tie: solid dark rail + image */
.event-layout-luxury .hero{display:grid!important;grid-template-columns:36% 64%!important;min-height:720px!important;padding:28px!important;background:#0d0e11!important}
.event-layout-luxury .hero-content{grid-column:1!important;grid-row:1!important;min-height:664px!important;padding:0!important;display:flex!important}
.event-layout-luxury .hero-copy{width:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important;padding:54px clamp(32px,4.5vw,66px)!important;background:#15171c!important;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent)!important;border-radius:22px 0 0 22px!important;box-shadow:none!important;color:#fff!important}
.event-layout-luxury h1{font-size:clamp(54px,6.2vw,100px)!important;font-weight:500!important;letter-spacing:-.04em!important;color:#fff!important}
.event-layout-luxury .hero-date,.event-layout-luxury .hero-intro{color:#ddd6ca!important}
.event-layout-luxury .hero-media{position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;min-height:664px!important;border-radius:0 22px 22px 0!important;background-position:center 32%!important}
.event-layout-luxury .hero:after{display:none!important}

/* 09 — Nordic Wedding: strict minimal split */
.event-layout-minimal .hero{display:grid!important;grid-template-columns:40% 60%!important;min-height:670px!important;background:var(--page)!important}
.event-layout-minimal .hero-content{grid-column:1!important;grid-row:1!important;min-height:670px!important;padding:68px clamp(36px,5vw,78px)!important;display:flex!important;align-items:center!important;background:var(--surface)!important}
.event-layout-minimal .hero-copy{width:100%!important;max-width:560px!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;border-top:1px solid var(--ink)!important;padding-top:28px!important}
.event-layout-minimal h1{font-family:var(--font-sans)!important;font-size:clamp(52px,6.1vw,96px)!important;font-weight:760!important;letter-spacing:-.06em!important}
.event-layout-minimal .hero-media{position:relative!important;inset:auto!important;grid-column:2!important;grid-row:1!important;min-height:670px!important;border-radius:0!important;background-position:center 33%!important}
.event-layout-minimal .hero:after{display:none!important}

/* timeline desktop systems */
.event-layout-modern .event-timeline,.event-layout-playful .event-timeline{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;max-width:1180px!important}
.event-layout-modern .event-timeline:before,.event-layout-playful .event-timeline:before{display:none!important}
.event-layout-editorial .event-timeline{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:26px!important;max-width:1120px!important}
.event-layout-editorial .event-timeline:before{display:none!important}
.event-layout-minimal .event-timeline{display:grid!important;grid-template-columns:1fr!important;gap:0!important;max-width:980px!important}
.event-layout-minimal .event-timeline:before{display:none!important}
.event-layout-minimal .event-card-content{border-radius:0!important;border:0!important;border-bottom:1px solid var(--line)!important;box-shadow:none!important}
body[class*="event-layout-"] .event-card-content{min-width:0!important}
body[class*="event-layout-"] .event-copy h3{word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}

@media (max-width:1024px){
  .event-layout-elegant .hero-copy,.event-layout-dark .hero-copy{grid-template-columns:1fr!important;gap:10px!important}
  .event-layout-elegant .hero-copy>*,.event-layout-dark .hero-copy>*{grid-column:1!important}
  .event-layout-soft .hero{grid-template-columns:1fr 1fr!important}
  .event-layout-modern .event-timeline,.event-layout-playful .event-timeline{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* =========================================================
   DISTINCT MOBILE HEROES — photo always visible, no pale text
   ========================================================= */
@media (max-width:760px){
  body[class*="event-layout-"] .hero{min-height:0!important;overflow:visible!important;margin:0!important;border-radius:0!important}
  body[class*="event-layout-"] .hero:after{display:none!important}
  body[class*="event-layout-"] .hero-media{display:block!important;position:relative!important;inset:auto!important;width:100%!important;min-height:340px!important;height:52vh!important;background-position:center 30%!important;border-radius:0!important;outline:0!important;box-shadow:none!important;transform:none!important}
  body[class*="event-layout-"] .hero-content{position:relative!important;z-index:3!important;width:100%!important;min-height:0!important;box-sizing:border-box!important}
  body[class*="event-layout-"] .hero-copy{width:100%!important;min-height:0!important;box-sizing:border-box!important;text-align:left!important}
  body[class*="event-layout-"] .hero-copy h1{font-size:clamp(38px,12vw,56px)!important;line-height:.98!important;letter-spacing:-.045em!important;writing-mode:horizontal-tb!important;transform:none!important;text-shadow:none!important;opacity:1!important;margin:0 0 12px!important;color:inherit!important}
  body[class*="event-layout-"] .hero-date{font-size:13px!important;margin:0 0 10px!important;opacity:1!important;color:inherit!important}
  body[class*="event-layout-"] .hero-intro{font-size:14px!important;line-height:1.55!important;margin:0 0 20px!important;opacity:1!important;color:inherit!important}
  body[class*="event-layout-"] .hero-copy .btn{display:inline-flex!important;min-height:46px!important;margin:0!important;visibility:visible!important;opacity:1!important}

  /* Maison: photo then floating editorial card */
  .event-layout-elegant .hero{display:block!important;padding:0 0 32px!important;background:var(--page)!important}
  .event-layout-elegant .hero-media{height:58vh!important;min-height:390px!important;border-radius:0 0 26px 26px!important}
  .event-layout-elegant .hero-content{margin:-58px 16px 0!important;padding:0!important;background:transparent!important}
  .event-layout-elegant .hero-copy{display:block!important;padding:26px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:22px!important;box-shadow:0 22px 56px color-mix(in srgb,var(--ink) 16%,transparent)!important;color:var(--ink)!important}
  .event-layout-elegant .hero-copy>*{grid-column:auto!important}

  /* Atelier: photo, then accent rail copy */
  .event-layout-modern .hero{display:flex!important;flex-direction:column!important;background:var(--page)!important}
  .event-layout-modern .hero-media{order:1!important;height:50vh!important;min-height:350px!important}
  .event-layout-modern .hero-content{order:2!important;padding:28px 22px 40px!important;background:var(--surface)!important}
  .event-layout-modern .hero-copy{padding:4px 0 4px 18px!important;border-left:4px solid var(--accent)!important;color:var(--ink)!important;background:none!important}

  /* Arch: compact arch portrait + centered copy */
  .event-layout-soft .hero{display:block!important;padding:24px 18px 40px!important;background:linear-gradient(155deg,var(--page),var(--page-alt))!important}
  .event-layout-soft .hero-media{width:min(88vw,430px)!important;height:52vh!important;min-height:370px!important;margin:0 auto 26px!important;border-radius:50% 50% 24px 24px / 34% 34% 18px 18px!important;box-shadow:0 22px 56px color-mix(in srgb,var(--ink) 14%,transparent)!important}
  .event-layout-soft .hero-content{padding:0!important;background:transparent!important}
  .event-layout-soft .hero-copy{text-align:center!important;padding:0 8px!important;color:var(--ink)!important;background:none!important}

  /* Journal: text first, framed photo after */
  .event-layout-editorial .hero{display:flex!important;flex-direction:column!important;background:var(--surface)!important}
  .event-layout-editorial .hero-content{order:1!important;padding:34px 24px 26px!important;border:0!important;background:var(--surface)!important}
  .event-layout-editorial .hero-copy{color:var(--ink)!important;background:none!important}
  .event-layout-editorial .hero-media{order:2!important;height:48vh!important;min-height:330px!important;margin:0 16px 24px!important;border-radius:18px!important}

  /* Cinema: overlay with truly dark safe zone */
  .event-layout-dark .hero{display:block!important;min-height:78vh!important;background:#08090b!important}
  .event-layout-dark .hero-media{position:absolute!important;inset:0!important;height:100%!important;min-height:100%!important}
  .event-layout-dark .hero:after{display:block!important;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.22) 38%,rgba(0,0,0,.96) 100%)!important}
  .event-layout-dark .hero-content{position:relative!important;z-index:2!important;min-height:78vh!important;padding:0 22px 34px!important;display:flex!important;align-items:flex-end!important;background:transparent!important}
  .event-layout-dark .hero-copy{display:block!important;padding:0!important;background:none!important;color:#fff!important}
  .event-layout-dark .hero-copy>*{grid-column:auto!important}
  .event-layout-dark .hero-copy h1{color:#fff!important}
  .event-layout-dark .hero-date,.event-layout-dark .hero-intro{color:rgba(255,255,255,.9)!important}

  /* Collage: photo + overlapping paper card */
  .event-layout-playful .hero{display:block!important;padding:22px 16px 46px!important;background:var(--page-alt)!important}
  .event-layout-playful .hero-media{height:48vh!important;min-height:340px!important;border-radius:26px 88px 26px 26px!important;box-shadow:12px 12px 0 color-mix(in srgb,var(--accent) 20%,var(--surface))!important}
  .event-layout-playful .hero-content{padding:0!important;background:transparent!important}
  .event-layout-playful .hero-copy{margin:-38px 18px 0!important;padding:25px!important;position:relative!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:24px!important;box-shadow:0 18px 48px color-mix(in srgb,var(--ink) 14%,transparent)!important;color:var(--ink)!important}

  /* Invitation: copy then framed image */
  .event-layout-classic .hero{display:flex!important;flex-direction:column!important;padding:32px 16px 26px!important;background:var(--page)!important}
  .event-layout-classic .hero-content{order:1!important;padding:0 6px 24px!important;background:transparent!important}
  .event-layout-classic .hero-copy{text-align:center!important;color:var(--ink)!important;background:none!important}
  .event-layout-classic .hero-media{order:2!important;height:44vh!important;min-height:320px!important;border:1px solid color-mix(in srgb,var(--ink) 55%,transparent)!important;outline:8px solid var(--surface)!important;outline-offset:-18px!important}

  /* Black Tie: image first, dark card below */
  .event-layout-luxury .hero{display:flex!important;flex-direction:column!important;padding:0!important;background:#0d0e11!important}
  .event-layout-luxury .hero-media{order:1!important;height:52vh!important;min-height:360px!important;border-radius:0!important}
  .event-layout-luxury .hero-content{order:2!important;padding:20px!important;background:#0d0e11!important}
  .event-layout-luxury .hero-copy{padding:28px 24px!important;background:#15171c!important;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent)!important;border-radius:20px!important;color:#fff!important}
  .event-layout-luxury .hero-copy h1{color:#fff!important}
  .event-layout-luxury .hero-date,.event-layout-luxury .hero-intro{color:#e6dfd4!important}

  /* Nordic: image then restrained copy */
  .event-layout-minimal .hero{display:flex!important;flex-direction:column!important;background:var(--page)!important}
  .event-layout-minimal .hero-media{order:1!important;height:49vh!important;min-height:340px!important}
  .event-layout-minimal .hero-content{order:2!important;padding:28px 22px 40px!important;background:var(--surface)!important}
  .event-layout-minimal .hero-copy{padding-top:20px!important;border-top:1px solid var(--ink)!important;color:var(--ink)!important;background:none!important}

  /* Timeline mobile — stable cards, palette-aware badges */
  body[class*="event-layout-"] .event-timeline{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;background:none!important}
  body[class*="event-layout-"] .event-card,body[class*="event-layout-"] .event-card-reverse{display:block!important;transform:none!important;padding:0!important}
  body[class*="event-layout-"] .event-card-content{width:100%!important;min-height:0!important;padding:20px!important;border-radius:18px!important}
  body[class*="event-layout-"] .event-photo{width:100%!important;min-height:220px!important;aspect-ratio:4/3!important;border-radius:18px!important;margin-top:10px!important}
  body[class*="event-layout-"] .event-copy h3{font-size:clamp(24px,7.6vw,32px)!important;line-height:1.05!important}
  .event-layout-modern .event-card-content{border-left:4px solid var(--accent)!important}
  .event-layout-soft .event-card-content{border-radius:28px!important}
  .event-layout-editorial .event-card-content{border-radius:4px!important;box-shadow:none!important;border-bottom:2px solid var(--accent)!important}
  .event-layout-dark .event-card-content,.event-layout-luxury .event-card-content{background:#17191e!important;color:#fff!important;border-color:color-mix(in srgb,var(--accent) 38%,transparent)!important}
  .event-layout-dark .event-copy h3,.event-layout-luxury .event-copy h3,.event-layout-dark .event-copy p,.event-layout-luxury .event-copy p{color:#fff!important}
  .event-layout-classic .event-card-content{border-radius:0!important;border:1px solid color-mix(in srgb,var(--ink) 28%,transparent)!important;box-shadow:none!important}
  .event-layout-minimal .event-card-content{border-radius:0!important;border:0!important;border-bottom:1px solid var(--line)!important;box-shadow:none!important}
}

/* =========================================================
   v8.2 — FINAL HERO CONTRAST + PALETTE TYPOGRAPHY
   Absolute overrides for legacy rules in style.css.
   ========================================================= */

/* Never use pale outlined text. Palette controls the ink. */
body[class*="event-layout-"] .hero-copy,
body[class*="event-layout-"] .hero-copy h1,
body[class*="event-layout-"] .hero-copy .eyebrow,
body[class*="event-layout-"] .hero-copy .hero-date,
body[class*="event-layout-"] .hero-copy .hero-intro {
  text-shadow:none!important;
  -webkit-text-stroke:0!important;
  filter:none!important;
  opacity:1!important;
}
body[class*="event-layout-"] .hero-copy .eyebrow,
body[class*="event-layout-"] .hero-copy .hero-date,
body[class*="event-layout-"] .hero-copy .hero-intro {
  display:block!important;
  visibility:visible!important;
  max-height:none!important;
  overflow:visible!important;
}

/* Light-surface layouts: dark palette-aware typography. */
body.event-layout-elegant .hero-copy,
body.event-layout-modern .hero-copy,
body.event-layout-soft .hero-copy,
body.event-layout-editorial .hero-copy,
body.event-layout-playful .hero-copy,
body.event-layout-classic .hero-copy,
body.event-layout-minimal .hero-copy {
  color:var(--ink)!important;
}
body.event-layout-elegant .hero-copy h1,
body.event-layout-modern .hero-copy h1,
body.event-layout-soft .hero-copy h1,
body.event-layout-editorial .hero-copy h1,
body.event-layout-playful .hero-copy h1,
body.event-layout-classic .hero-copy h1,
body.event-layout-minimal .hero-copy h1 {
  color:var(--ink)!important;
}
body.event-layout-elegant .hero-copy .hero-date,
body.event-layout-elegant .hero-copy .hero-intro,
body.event-layout-modern .hero-copy .hero-date,
body.event-layout-modern .hero-copy .hero-intro,
body.event-layout-soft .hero-copy .hero-date,
body.event-layout-soft .hero-copy .hero-intro,
body.event-layout-editorial .hero-copy .hero-date,
body.event-layout-editorial .hero-copy .hero-intro,
body.event-layout-playful .hero-copy .hero-date,
body.event-layout-playful .hero-copy .hero-intro,
body.event-layout-classic .hero-copy .hero-date,
body.event-layout-classic .hero-copy .hero-intro,
body.event-layout-minimal .hero-copy .hero-date,
body.event-layout-minimal .hero-copy .hero-intro {
  color:var(--muted)!important;
}
body.event-layout-elegant .hero-copy .eyebrow,
body.event-layout-modern .hero-copy .eyebrow,
body.event-layout-soft .hero-copy .eyebrow,
body.event-layout-editorial .hero-copy .eyebrow,
body.event-layout-playful .hero-copy .eyebrow,
body.event-layout-classic .hero-copy .eyebrow,
body.event-layout-minimal .hero-copy .eyebrow {
  color:var(--accent-2)!important;
}

/* Image-overlay layouts: use dedicated hero palette tokens only. */
body.event-layout-dark .hero-copy,
body.event-layout-luxury .hero-copy {
  color:var(--hero-ink)!important;
}
body.event-layout-dark .hero-copy h1,
body.event-layout-luxury .hero-copy h1 {
  color:var(--hero-ink)!important;
}
body.event-layout-dark .hero-copy .hero-date,
body.event-layout-dark .hero-copy .hero-intro,
body.event-layout-luxury .hero-copy .hero-date,
body.event-layout-luxury .hero-copy .hero-intro {
  color:var(--hero-muted)!important;
}
body.event-layout-dark .hero-copy .eyebrow,
body.event-layout-luxury .hero-copy .eyebrow {
  color:var(--hero-eyebrow)!important;
}
body.event-layout-dark .hero:after,
body.event-layout-luxury .hero:after {
  background:linear-gradient(90deg,color-mix(in srgb,var(--hero-overlay) 96%,transparent) 0%,color-mix(in srgb,var(--hero-overlay) 74%,transparent) 42%,color-mix(in srgb,var(--hero-overlay) 16%,transparent) 78%)!important;
}

/* Badge and CTA always follow selected palette. */
body[class*="event-layout-"] .event-type-badge {
  background:var(--badge-bg)!important;
  color:var(--badge-ink)!important;
  border-color:color-mix(in srgb,var(--accent) 24%,var(--line))!important;
  text-shadow:none!important;
}
body[class*="event-layout-"] .hero-copy .btn-primary {
  background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;
  color:var(--button-ink)!important;
  border-color:transparent!important;
}

/* Timeline color system: every visual token follows the selected palette. */
body[class*="event-layout-"] .event-copy time {
  background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;
  color:var(--button-ink)!important;
  border-color:color-mix(in srgb,var(--accent-3) 44%,transparent)!important;
}
body[class*="event-layout-"] .event-icon {
  background:color-mix(in srgb,var(--accent) 13%,var(--surface))!important;
  border-color:color-mix(in srgb,var(--accent) 36%,var(--line))!important;
}
body[class*="event-layout-"] .event-icon img {
  filter:none!important;
  opacity:.92;
}
body[class*="event-layout-"] .event-number { color:var(--accent-2)!important; }
body[class*="event-layout-"] .event-timeline:before {
  background:linear-gradient(180deg,var(--accent),var(--accent-3),color-mix(in srgb,var(--accent-2) 22%,transparent))!important;
}

@media (max-width:760px){
  /* Data can never disappear on mobile. */
  body[class*="event-layout-"] .hero-copy .eyebrow,
  body[class*="event-layout-"] .hero-copy .hero-date,
  body[class*="event-layout-"] .hero-copy .hero-intro,
  body[class*="event-layout-"] .hero-copy .btn-primary {
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    max-height:none!important;
  }
  body[class*="event-layout-"] .hero-copy .btn-primary{display:inline-flex!important}

  /* All light mobile variants use a real surface, never white text on ivory. */
  body.event-layout-elegant .hero-copy,
  body.event-layout-modern .hero-copy,
  body.event-layout-soft .hero-copy,
  body.event-layout-editorial .hero-copy,
  body.event-layout-playful .hero-copy,
  body.event-layout-classic .hero-copy,
  body.event-layout-minimal .hero-copy {
    color:var(--ink)!important;
    background:var(--surface)!important;
  }
  body.event-layout-elegant .hero-copy h1,
  body.event-layout-modern .hero-copy h1,
  body.event-layout-soft .hero-copy h1,
  body.event-layout-editorial .hero-copy h1,
  body.event-layout-playful .hero-copy h1,
  body.event-layout-classic .hero-copy h1,
  body.event-layout-minimal .hero-copy h1 { color:var(--ink)!important; }
  body.event-layout-elegant .hero-copy .hero-date,
  body.event-layout-elegant .hero-copy .hero-intro,
  body.event-layout-modern .hero-copy .hero-date,
  body.event-layout-modern .hero-copy .hero-intro,
  body.event-layout-soft .hero-copy .hero-date,
  body.event-layout-soft .hero-copy .hero-intro,
  body.event-layout-editorial .hero-copy .hero-date,
  body.event-layout-editorial .hero-copy .hero-intro,
  body.event-layout-playful .hero-copy .hero-date,
  body.event-layout-playful .hero-copy .hero-intro,
  body.event-layout-classic .hero-copy .hero-date,
  body.event-layout-classic .hero-copy .hero-intro,
  body.event-layout-minimal .hero-copy .hero-date,
  body.event-layout-minimal .hero-copy .hero-intro { color:var(--muted)!important; }
  body.event-layout-elegant .hero-copy .eyebrow,
  body.event-layout-modern .hero-copy .eyebrow,
  body.event-layout-soft .hero-copy .eyebrow,
  body.event-layout-editorial .hero-copy .eyebrow,
  body.event-layout-playful .hero-copy .eyebrow,
  body.event-layout-classic .hero-copy .eyebrow,
  body.event-layout-minimal .hero-copy .eyebrow { color:var(--accent-2)!important; }

  /* Preserve visual distinction while keeping readable content. */
  body.event-layout-modern .hero-copy{border-left:4px solid var(--accent)!important;border-radius:0!important;padding:22px 20px!important}
  body.event-layout-soft .hero-copy{text-align:center!important;border-radius:28px!important;padding:24px 20px!important}
  body.event-layout-editorial .hero-copy{border-top:3px solid var(--accent)!important;border-radius:0!important;padding:24px 20px!important}
  body.event-layout-playful .hero-copy{border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line))!important;border-radius:24px!important;padding:24px!important}
  body.event-layout-classic .hero-copy{border:1px solid var(--line)!important;border-radius:8px!important;padding:24px 20px!important}
  body.event-layout-minimal .hero-copy{border-top:1px solid var(--ink)!important;border-radius:0!important;padding:24px 0!important;background:transparent!important}

  /* Dark mobile variants get an opaque readable panel. */
  body.event-layout-dark .hero-copy,
  body.event-layout-luxury .hero-copy{
    background:color-mix(in srgb,var(--hero-overlay) 92%,#000)!important;
    color:var(--hero-ink)!important;
    border:1px solid color-mix(in srgb,var(--accent) 38%,transparent)!important;
    border-radius:20px!important;
    padding:24px!important;
  }
  body.event-layout-dark .hero-copy h1,
  body.event-layout-luxury .hero-copy h1{color:var(--hero-ink)!important}
  body.event-layout-dark .hero-copy .hero-date,
  body.event-layout-dark .hero-copy .hero-intro,
  body.event-layout-luxury .hero-copy .hero-date,
  body.event-layout-luxury .hero-copy .hero-intro{color:var(--hero-muted)!important}
  body.event-layout-dark .hero-copy .eyebrow,
  body.event-layout-luxury .hero-copy .eyebrow{color:var(--hero-eyebrow)!important}

  body[class*="event-layout-"] .event-copy time{
    background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;
    color:var(--button-ink)!important;
  }
}

/* v8.4 — no technical event/layout labels in public Hero */
.event-type-badge{display:none!important}


/* =========================================================
   v8.4 — MAISON EDITORIALE STABILITY
   Data, description and CTA occupy a dedicated right column.
   No overlap, no clipped CTA, predictable responsive flow.
   ========================================================= */
@media (min-width:1025px){
  .event-layout-elegant .hero-content{padding-block:44px 52px!important;overflow:visible!important}
  .event-layout-elegant .hero-copy{
    grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr)!important;
    grid-template-rows:auto auto auto!important;
    column-gap:clamp(48px,6vw,96px)!important;
    row-gap:12px!important;
    align-items:start!important;
  }
  .event-layout-elegant .hero-copy .eyebrow{grid-column:1!important;grid-row:1!important;align-self:end!important;margin:0 0 6px!important}
  .event-layout-elegant .hero-copy h1{grid-column:1!important;grid-row:2/4!important;margin:0!important;max-width:100%!important;line-height:.9!important}
  .event-layout-elegant .hero-copy .hero-date{grid-column:2!important;grid-row:1!important;margin:0!important;padding-top:4px!important;align-self:end!important}
  .event-layout-elegant .hero-copy .hero-intro{grid-column:2!important;grid-row:2!important;margin:0!important;max-width:48ch!important;align-self:start!important}
  .event-layout-elegant .hero-copy .btn{grid-column:2!important;grid-row:3!important;justify-self:start!important;align-self:start!important;margin-top:8px!important;position:relative!important;z-index:2!important;visibility:visible!important;opacity:1!important}
}
@media (min-width:761px) and (max-width:1024px){
  .event-layout-elegant .hero-content{padding:34px 34px 42px!important}
  .event-layout-elegant .hero-copy{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:10px!important}
  .event-layout-elegant .hero-copy h1{margin:0!important}
  .event-layout-elegant .hero-copy .hero-date{margin:2px 0 0!important}
  .event-layout-elegant .hero-copy .hero-intro{margin:0 0 8px!important}
  .event-layout-elegant .hero-copy .btn{display:inline-flex!important;visibility:visible!important;opacity:1!important}
}


/* =========================================================
   NORDIC WEDDING — DESKTOP ONLY
   Timeline copy stays in its own column; gallery uses 6 photos
   and 4 videos per row. Mobile rules remain unchanged.
   ========================================================= */
@media (min-width:981px){
  .event-layout-minimal .event-timeline{
    width:min(1120px,100%)!important;
    max-width:1120px!important;
  }

  .event-layout-minimal .event-card,
  .event-layout-minimal .event-card-reverse{
    display:grid!important;
    grid-template-columns:minmax(0,2.15fr) minmax(250px,.85fr)!important;
    align-items:stretch!important;
    gap:0!important;
    overflow:hidden!important;
    border-bottom:1px solid var(--line)!important;
  }

  .event-layout-minimal .event-card-reverse{
    grid-template-columns:minmax(250px,.85fr) minmax(0,2.15fr)!important;
  }

  .event-layout-minimal .event-card .event-photo{
    grid-column:1!important;
    grid-row:1!important;
  }

  .event-layout-minimal .event-card .event-card-content{
    grid-column:2!important;
    grid-row:1!important;
  }

  .event-layout-minimal .event-card-reverse .event-card-content{
    grid-column:1!important;
  }

  .event-layout-minimal .event-card-reverse .event-photo{
    grid-column:2!important;
  }

  .event-layout-minimal .event-photo{
    width:100%!important;
    min-width:0!important;
    min-height:340px!important;
    margin:0!important;
    overflow:hidden!important;
    border-radius:0!important;
  }

  .event-layout-minimal .event-photo img{
    width:100%!important;
    height:100%!important;
    min-height:340px!important;
    object-fit:cover!important;
    display:block!important;
  }

  .event-layout-minimal .event-card-content{
    width:100%!important;
    min-width:0!important;
    min-height:340px!important;
    box-sizing:border-box!important;
    padding:34px 30px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    overflow:hidden!important;
    background:var(--surface)!important;
    border:0!important;
  }

  .event-layout-minimal .event-copy,
  .event-layout-minimal .event-copy h3,
  .event-layout-minimal .event-copy p{
    max-width:100%!important;
    min-width:0!important;
    overflow-wrap:anywhere!important;
  }

  .event-layout-minimal .event-copy h3{
    font-size:clamp(28px,2.35vw,42px)!important;
    line-height:1.02!important;
  }

  .event-layout-minimal .gallery-grid{
    display:block!important;
    columns:6 130px!important;
    column-gap:10px!important;
  }

  .event-layout-minimal .gallery-item{
    display:block!important;
    width:100%!important;
    margin:0 0 10px!important;
    height:auto!important;
    aspect-ratio:var(--media-aspect,4/3)!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }

  .event-layout-minimal .gallery-item.is-portrait{aspect-ratio:var(--media-aspect,3/4)!important}
  .event-layout-minimal .gallery-item.is-square{aspect-ratio:1/1!important}

  .event-layout-minimal .video-grid{
    display:block!important;
    columns:4 230px!important;
    column-gap:14px!important;
  }

  .event-layout-minimal .video-card{
    display:block!important;
    width:100%!important;
    margin:0 0 14px!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }
}


/* =========================================================
   NORDIC WEDDING — MOBILE / TABLET GALLERY GRID
   18 photos = 2 columns x 9 rows; 4 videos = 2 columns x 2 rows.
   Pagination logic is unchanged.
   ========================================================= */
@media (max-width:980px){
  .event-layout-minimal .gallery-grid{
    display:block!important;
    columns:2 130px!important;
    column-gap:8px!important;
  }

  .event-layout-minimal .gallery-item,
  .event-layout-minimal .gallery-item:nth-last-child(-n+2),
  .event-layout-minimal .gallery-item:last-child{
    display:block!important;
    width:100%!important;
    margin:0 0 8px!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }

  .event-layout-minimal .video-grid{
    display:block!important;
    columns:2 220px!important;
    column-gap:10px!important;
  }

  .event-layout-minimal .video-card,
  .event-layout-minimal .video-card:last-child{
    display:block!important;
    width:100%!important;
    margin:0 0 10px!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }
}


/* =========================================================
   ALL GALLERY TEMPLATES — UNIFIED MEDIA GRID
   Photos: desktop 6 x 3, mobile 2 x 9.
   Videos: desktop 4 x 1, mobile 2 x 2.
   Pagination rendering and controls remain unchanged.
   ========================================================= */
@media (min-width:981px){
  body[class*="event-layout-"] .gallery-grid{
    display:block!important;
    columns:6 130px!important;
    column-gap:10px!important;
  }
  body[class*="event-layout-"] .gallery-item,
  body[class*="event-layout-"] .gallery-item:nth-last-child(-n+2),
  body[class*="event-layout-"] .gallery-item:last-child{
    display:block!important;
    width:100%!important;
    margin:0 0 10px!important;
    height:auto!important;
    aspect-ratio:var(--media-aspect,4/3)!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }
  body[class*="event-layout-"] .gallery-item.is-portrait{aspect-ratio:var(--media-aspect,3/4)!important}
  body[class*="event-layout-"] .gallery-item.is-square{aspect-ratio:1/1!important}
  body[class*="event-layout-"] .video-grid{
    display:block!important;
    columns:4 230px!important;
    column-gap:14px!important;
  }
  body[class*="event-layout-"] .video-card,
  body[class*="event-layout-"] .video-card:last-child{
    display:block!important;
    width:100%!important;
    margin:0 0 14px!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }
}
@media (max-width:980px){
  body[class*="event-layout-"] .gallery-grid{
    display:block!important;
    columns:2 130px!important;
    column-gap:8px!important;
  }
  body[class*="event-layout-"] .gallery-item,
  body[class*="event-layout-"] .gallery-item:nth-last-child(-n+2),
  body[class*="event-layout-"] .gallery-item:last-child{
    display:block!important;
    width:100%!important;
    margin:0 0 8px!important;
    height:auto!important;
    aspect-ratio:var(--media-aspect,4/3)!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }
  body[class*="event-layout-"] .gallery-item.is-portrait{aspect-ratio:var(--media-aspect,3/4)!important}
  body[class*="event-layout-"] .gallery-item.is-square{aspect-ratio:1/1!important}
  body[class*="event-layout-"] .video-grid{
    display:block!important;
    columns:2 220px!important;
    column-gap:10px!important;
  }
  body[class*="event-layout-"] .video-card,
  body[class*="event-layout-"] .video-card:last-child{
    display:block!important;
    width:100%!important;
    margin:0 0 10px!important;
    break-inside:avoid!important;
    -webkit-column-break-inside:avoid!important;
  }
}

@media (max-width:760px){
  body[class*="event-layout-"] .gallery-grid,
  .event-layout-minimal .gallery-grid{
    columns:1!important;
    column-gap:0!important;
  }

  body[class*="event-layout-"] .gallery-item,
  body[class*="event-layout-"] .gallery-item:nth-last-child(-n+2),
  body[class*="event-layout-"] .gallery-item:last-child,
  .event-layout-minimal .gallery-item,
  .event-layout-minimal .gallery-item:nth-last-child(-n+2),
  .event-layout-minimal .gallery-item:last-child{
    margin-bottom:12px!important;
  }
}
