
:root{
  --page:var(--bg1);
  --paper:var(--panel);
  --ink2:var(--ink);
  --muted2:var(--muted);
  --line2:var(--line);
  --serif:"Italiana",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0!important;
  color:var(--ink);
  background:var(--bg1);
  font-family:var(--sans);
  font-weight:400;
}
body,button,input,textarea,select{font-family:var(--sans)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wwPage{
  width:min(1480px,100%);
  margin:0 auto;
  background:var(--paper);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.shell{width:min(1180px,calc(100% - 56px));margin-inline:auto}
.wwHero{position:relative;background:var(--paper);min-height:820px;overflow:hidden}
.wwTopbar{
  height:112px;
  display:grid;
  grid-template-columns:260px 1fr 260px;
  align-items:center;
  padding:0 54px;
  border-bottom:1px solid transparent;
}
.wwMonogram{
  display:flex;align-items:baseline;gap:10px;
  font-family:var(--serif);font-size:35px;line-height:1;
}
.wwMonogram b{font-weight:400;font-size:.75em}
.wwHeartMark{text-align:center;justify-self:center;color:var(--ink)}
.wwHeartMark svg{width:108px;height:auto;fill:none;stroke:currentColor;stroke-width:1.15}
.wwHeartMark small{
  display:block;margin-top:4px;font-size:9px;letter-spacing:.42em;
  text-transform:uppercase;white-space:nowrap
}
.wwHeroGrid{display:grid;grid-template-columns:39% 61%;min-height:708px}
.wwHeroCopy{
  position:relative;display:flex;flex-direction:column;justify-content:center;
  align-items:center;padding:64px 82px 68px 120px;overflow:hidden
}
.wwVertical{
  position:absolute;writing-mode:vertical-rl;transform:rotate(180deg);
  font-size:clamp(48px,5.2vw,82px);font-weight:300;line-height:.82;
  letter-spacing:-.045em;white-space:nowrap;text-transform:uppercase
}
.wwVertical--left{left:11px;top:18px;max-height:635px}
.wwVertical--right{right:-2px;bottom:14px;max-height:440px}
.wwSave{
  align-self:flex-start;margin-left:24px;margin-bottom:34px;
  text-transform:uppercase;letter-spacing:.32em;font-size:12px;line-height:2.1
}
.wwSave span,.wwSave strong{display:block;font-weight:400}
.wwNames{text-align:center;width:100%}
.wwName{
  font-size:clamp(23px,2vw,34px);letter-spacing:.32em;
  line-height:1.25;text-transform:uppercase;white-space:normal
}
.wwAmp{
  margin:8px 0 7px;font-family:var(--serif);
  font-size:clamp(88px,8vw,132px);line-height:.72
}
.wwRule{width:28px;height:1px;background:currentColor;margin:28px auto}
.wwMeta{
  display:flex;flex-direction:column;gap:7px;text-align:center;
  text-transform:uppercase;letter-spacing:.31em;font-size:10px;line-height:1.55
}
.wwHeroMedia{
  position:relative;min-height:605px;margin-bottom:104px;overflow:hidden;
  border-top-left-radius:118px;background:var(--panel2)
}
.wwHeroMedia img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(.92) brightness(1.04)}
.wwHeroPlaceholder{
  width:100%;height:100%;min-height:605px;display:grid;place-content:center;
  gap:9px;text-align:center;color:var(--muted)
}
.wwHeroPlaceholder span{font-size:45px}.wwHeroPlaceholder small{letter-spacing:.18em;text-transform:uppercase}
.wwArcs{position:absolute;right:0;top:0;width:180px;height:360px}
.wwArcs i{
  position:absolute;right:-2px;top:-2px;width:var(--s);height:var(--s);
  border:7px solid var(--paper);border-top:0;border-right:0;border-bottom-left-radius:100px
}
.wwArcs i:nth-child(1){--s:178px}.wwArcs i:nth-child(2){--s:146px}
.wwArcs i:nth-child(3){--s:114px}.wwArcs i:nth-child(4){--s:82px}.wwArcs i:nth-child(5){--s:50px}

/* Shared production sections */
.countdownSection,.story,.programSection,.placeSection,.dresscodeSection,.gallerySection,
.winterNoirDetailsSection,.winterNoirContactsSection,.winterNoirRsvpSection{
  background:var(--paper)!important;color:var(--ink)!important;
  border-top:1px solid var(--line)!important;padding:100px 0!important
}
.countdownSection{padding:34px 0!important}
.countdown{display:grid!important;grid-template-columns:repeat(4,1fr)!important;border:1px solid var(--line)!important}
.cdItem{padding:24px 14px!important;text-align:center!important;border-right:1px solid var(--line)!important}
.cdItem:last-child{border-right:0!important}
.cdItem strong{font-family:var(--serif)!important;font-size:45px!important;color:var(--ink)!important}
.cdItem span{display:block!important;color:var(--muted)!important;text-transform:uppercase!important;letter-spacing:.22em!important;font-size:9px!important}
.sectionHeader small,.eyebrow,.sectionKickerInline{
  color:var(--muted)!important;font-size:10px!important;letter-spacing:.38em!important;text-transform:uppercase!important
}
.sectionHeader h2,.storyText h2,.dresscodeCopy h2{
  margin:14px 0 0!important;font-family:var(--serif)!important;font-size:clamp(48px,6vw,92px)!important;
  line-height:.96!important;font-weight:400!important;color:var(--ink)!important
}
.storyLayout{display:grid!important;grid-template-columns:1fr 1fr!important;gap:70px!important;align-items:center!important}
.storyPhoto{border-radius:110px 0 0 0!important;overflow:hidden!important}
.storyPhoto img{width:100%!important;min-height:560px!important;object-fit:cover!important;filter:grayscale(1)}
.storyText p,.locationIntro,.dresscodeLead{color:var(--muted)!important;line-height:1.9!important}
.timeline{margin-top:55px!important;border-top:1px solid var(--line)!important}
.timeRow{display:grid!important;grid-template-columns:140px 1fr!important;border-bottom:1px solid var(--line)!important}
.timeMark{padding:30px 20px!important;letter-spacing:.28em!important}
.timeCard{display:grid!important;grid-template-columns:52px 1fr!important;gap:22px!important;padding:26px!important;border-left:1px solid var(--line)!important}
.timeCard img{width:34px!important;height:34px!important;object-fit:contain!important;filter:grayscale(1)}
.timeCard h3{margin:0!important;font-family:var(--serif)!important;font-size:30px!important;font-weight:400!important}
.timeCard p{margin:8px 0 0!important;color:var(--muted)!important}
.rivLocGrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important;margin-top:48px!important}
.rivLocGrid:has(.rivLocCard:only-child){grid-template-columns:1fr!important}
.rivLocCard,.dresscodeNote,.rsvpCard{
  border:1px solid var(--line)!important;background:transparent!important;color:var(--ink)!important;
  box-shadow:none!important;border-radius:0!important
}
.rivLocPhoto{height:340px!important;overflow:hidden!important}
.rivLocPhoto img{width:100%!important;height:100%!important;object-fit:cover!important;filter:grayscale(1)}
.rivLocBody{padding:34px!important}.rivLocBody h3{font-family:var(--serif)!important;font-size:40px!important;font-weight:400!important}
.rivLocAddress,.rivLocNote{color:var(--muted)!important}
.rivLocBtn{border:1px solid var(--ink)!important;background:transparent!important;color:var(--ink)!important;border-radius:999px!important}
.rivLocBtn--primary{background:var(--ink)!important;color:var(--paper)!important}
.dresscodeLayout{display:grid!important;grid-template-columns:1.2fr .8fr!important;gap:38px!important}
.dresscodeNote{padding:38px!important}.dresscodeNote h3{font-family:var(--serif)!important;font-size:36px!important;font-weight:400!important}
.dresscodeNote p{color:var(--muted)!important}
.rivPalette i{border:1px solid var(--line)!important}
.sharedBlock,.winterNoirDetailsSection .detailsGrid,.contactsBlock,.rsvpCard{background:transparent!important}
.winterNoirRsvpSection,.winterNoirRsvpSection *{color:var(--ink)}
.winterNoirRsvpSection input,.winterNoirRsvpSection textarea,.winterNoirRsvpSection select{
  color:var(--ink)!important;background:transparent!important;border-color:var(--line)!important
}
.winterNoirRsvpSection input::placeholder,.winterNoirRsvpSection textarea::placeholder{color:var(--muted)!important}
.winterNoirRsvpSection button,.winterNoirRsvpSection .btn{
  color:var(--paper)!important;background:var(--ink)!important;border-color:var(--ink)!important
}
.footer{background:var(--ink)!important;color:var(--paper)!important;padding:28px!important;text-align:center!important;letter-spacing:.22em!important}

/* Fancybox/shared block normalization */
.gallerySection .gallery,.gallerySection [class*="gallery"]{color:var(--ink)}
.gallerySection img{filter:grayscale(1)}
.reveal{opacity:1!important;transform:none!important}

@media(max-width:980px){
  .wwTopbar{grid-template-columns:1fr auto;padding:0 24px;height:92px}
  .wwHeartMark{justify-self:end}.wwMonogram{font-size:29px}
  .wwHeroGrid{grid-template-columns:1fr}
  .wwHeroMedia{order:-1;margin:0 18px 0;min-height:560px;border-radius:90px 90px 22px 22px}
  .wwHeroMedia img{min-height:560px}
  .wwHeroCopy{min-height:620px;padding:68px 84px}
  .wwVertical--left{left:16px;top:60px}.wwVertical--right{right:12px;bottom:50px}
  .wwSave{align-self:center;margin-left:0;text-align:center}
  .storyLayout,.dresscodeLayout{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  .wwPage{width:100%;box-shadow:none}
  .wwTopbar{height:78px;padding:0 18px}
  .wwMonogram{font-size:25px;gap:7px}
  .wwHeartMark svg{width:72px}.wwHeartMark small{font-size:7px;letter-spacing:.22em}
  .wwHero{min-height:auto}
  .wwHeroGrid{display:flex;flex-direction:column}
  .wwHeroMedia{order:-1;min-height:430px;height:62vh;max-height:560px;margin:0 12px;border-radius:70px 70px 24px 24px}
  .wwHeroMedia img{height:100%;min-height:0}
  .wwArcs{width:112px;height:230px}.wwArcs i{border-width:5px}
  .wwArcs i:nth-child(1){--s:112px}.wwArcs i:nth-child(2){--s:91px}
  .wwArcs i:nth-child(3){--s:70px}.wwArcs i:nth-child(4){--s:49px}.wwArcs i:nth-child(5){--s:28px}
  .wwHeroCopy{min-height:560px;padding:62px 60px 70px}
  .wwVertical{font-size:42px}
  .wwVertical--left{left:4px;top:52px;max-height:455px}
  .wwVertical--right{right:4px;bottom:50px;max-height:300px}
  .wwSave{margin-bottom:29px;font-size:10px}
  .wwName{font-size:20px;letter-spacing:.25em}
  .wwAmp{font-size:92px}
  .wwMeta{font-size:9px;letter-spacing:.23em}
  .shell{width:calc(100% - 36px)}
  .countdownSection,.story,.programSection,.placeSection,.dresscodeSection,.gallerySection,
  .winterNoirDetailsSection,.winterNoirContactsSection,.winterNoirRsvpSection{padding:72px 0!important}
  .countdownSection{padding:20px 0!important}
  .countdown{grid-template-columns:repeat(2,1fr)!important}
  .cdItem:nth-child(2){border-right:0!important}.cdItem:nth-child(-n+2){border-bottom:1px solid var(--line)!important}
  .storyLayout{display:block!important}.storyPhoto{margin-bottom:38px!important;border-radius:70px 0 0 0!important}
  .storyPhoto img{min-height:390px!important}
  .timeRow{grid-template-columns:78px 1fr!important}.timeCard{grid-template-columns:1fr!important}
  .rivLocGrid{grid-template-columns:1fr!important}
  .rivLocPhoto{height:280px!important}
  .sectionHeader h2,.storyText h2,.dresscodeCopy h2{font-size:48px!important}
}


/* ===== Final production refinements ===== */
.countdownSection{display:none!important}

/* More compact hero */
.wwHero{min-height:690px}
.wwTopbar{height:88px}
.wwHeroGrid{min-height:602px}
.wwHeroCopy{padding:44px 76px 52px 112px}
.wwHeroMedia{min-height:520px;margin-bottom:72px;border-top-left-radius:96px}
.wwHeroPlaceholder{min-height:520px}
.wwVertical{font-size:clamp(44px,4.6vw,70px)}
.wwVertical--left{top:12px;max-height:535px}
.wwVertical--right{bottom:10px;max-height:365px}
.wwSave{margin-bottom:22px}
.wwAmp{font-size:clamp(74px,6.5vw,108px)}
.wwRule{margin:20px auto}

/* Story: text-only always fills 100% */
.storyLayout--text-only{
  display:block!important;
  max-width:100%!important;
}
.story--no-photo .storyText{
  width:100%!important;
  max-width:none!important;
  min-height:360px;
  padding:64px;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.story--no-photo .storyText h2{max-width:880px}
.story--no-photo .storyText p{max-width:900px}
.storyTextIcon{
  width:54px;height:54px;margin-bottom:28px;color:var(--accent);
}
.storyTextIcon svg,.rivLocIcon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5}

/* Location: one card = true full width; no-photo cards remain elegant and spacious */
.rivLocGrid--single{grid-template-columns:minmax(0,1fr)!important}
.rivLocGrid--single .rivLocCard{width:100%!important}
.rivLocCard--no-photo .rivLocBody{
  min-height:370px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:56px!important;
}
.rivLocGrid--single .rivLocCard--no-photo .rivLocBody{
  min-height:420px;
  padding:68px!important;
}
.rivLocIcon{width:48px;height:48px;margin-bottom:28px;color:var(--accent)}
.rivLocBadge{display:block;margin-bottom:16px;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}
.rivLocActions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.rivLocBtn{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:0 24px!important}

/* Dress code: text only */
.dresscodeSection--text .shell{max-width:1180px}
.dresscodeTextCard{
  width:100%;
  padding:70px;
  border:1px solid var(--line);
  text-align:center;
}
.dresscodeTextCard h2{
  max-width:900px;
  margin:14px auto 0!important;
  font-family:var(--serif);
  font-size:clamp(48px,6vw,92px);
  line-height:.96;
  font-weight:400;
}
.dresscodeTextCard p{
  max-width:760px;
  margin:26px auto 0;
  color:var(--muted);
  font-size:17px;
  line-height:1.9;
}

/* Consistent blocks */
.programSection .sectionHeader,
.placeSection .sectionHeader,
.gallerySection .sectionHeader{
  text-align:center;
}
.programSection .sectionHeader h2,
.placeSection .sectionHeader h2,
.gallerySection .sectionHeader h2{
  margin-left:auto!important;
  margin-right:auto!important;
}
.locationIntro{max-width:760px;margin:24px auto 0;text-align:center}
.winterNoirDetailsSection,
.winterNoirContactsSection,
.winterNoirRsvpSection{
  overflow:hidden;
}

/* Mobile: every element centered and photo first */
@media(max-width:980px){
  .wwHero{min-height:auto}
  .wwTopbar{height:78px}
  .wwHeroGrid{display:flex!important;flex-direction:column!important;min-height:auto}
  .wwHeroMedia{
    order:-1!important;
    min-height:480px;
    height:min(62vh,540px);
    margin:0 16px;
    border-radius:78px 78px 24px 24px;
  }
  .wwHeroMedia img{min-height:0;height:100%}
  .wwHeroPlaceholder{min-height:480px}
  .wwHeroCopy{
    min-height:auto;
    padding:58px 82px 70px;
    text-align:center;
    align-items:center;
  }
  .wwSave{align-self:center!important;margin-left:0!important;text-align:center}
  .wwMeta{align-items:center}
  .storyLayout,.dresscodeLayout{grid-template-columns:1fr!important}
  .storyText{text-align:center;align-items:center!important}
  .story--no-photo .storyText p{margin-left:auto;margin-right:auto}
  .rivLocBody{align-items:center!important;text-align:center}
  .rivLocActions{justify-content:center}
}
@media(max-width:640px){
  .wwTopbar{height:72px}
  .wwHeartMark small{white-space:normal;max-width:150px;line-height:1.4}
  .wwHeroMedia{
    height:52vh;
    min-height:360px;
    max-height:470px;
    margin:0 10px;
    border-radius:58px 58px 18px 18px;
  }
  .wwHeroPlaceholder{min-height:360px}
  .wwHeroCopy{
    padding:46px 42px 58px;
    min-height:500px;
    overflow:visible;
  }
  .wwVertical{
    position:static!important;
    writing-mode:horizontal-tb!important;
    transform:none!important;
    max-height:none!important;
    font-size:11px!important;
    letter-spacing:.34em!important;
    line-height:1.4!important;
    color:var(--muted);
  }
  .wwVertical--left{order:4;margin-top:24px}
  .wwVertical--right{order:5;margin-top:8px}
  .wwSave{order:1}
  .wwNames{order:2}
  .wwRule,.wwMeta{order:3}
  .wwName{font-size:clamp(19px,6vw,25px);letter-spacing:.19em;overflow-wrap:anywhere}
  .wwAmp{font-size:78px;margin:8px 0}
  .wwMeta{font-size:9px;letter-spacing:.18em;line-height:1.7}
  .story--no-photo .storyText,
  .dresscodeTextCard{
    min-height:0;
    padding:44px 24px;
    text-align:center;
    align-items:center;
  }
  .storyTextIcon{margin-left:auto;margin-right:auto}
  .storyPhoto{border-radius:58px 0 0 0!important}
  .storyPhoto img{min-height:330px!important}
  .timeRow{
    grid-template-columns:1fr!important;
    text-align:center;
  }
  .timeMark{padding:22px 18px 8px!important}
  .timeCard{
    border-left:0!important;
    grid-template-columns:1fr!important;
    justify-items:center;
    padding:12px 22px 30px!important;
  }
  .rivLocCard--no-photo .rivLocBody,
  .rivLocGrid--single .rivLocCard--no-photo .rivLocBody{
    min-height:0;
    padding:44px 24px!important;
  }
  .rivLocBody{padding:28px 22px!important}
  .rivLocActions{width:100%;flex-direction:column}
  .rivLocBtn{width:100%}
  .dresscodeTextCard h2{font-size:44px}
  .dresscodeTextCard p{font-size:15px}
}


/* ===== HERO: compact prototype proportions ===== */
.wwHero{
  min-height:0!important;
  height:auto!important;
}
.wwTopbar{
  height:72px!important;
  min-height:72px!important;
  padding:0 38px!important;
}
.wwHeroGrid{
  min-height:0!important;
  height:470px!important;
  grid-template-columns:39% 61%!important;
}
.wwHeroCopy{
  min-height:0!important;
  height:470px!important;
  padding:38px 72px 42px 112px!important;
  overflow:hidden!important;
}
.wwHeroMedia{
  min-height:0!important;
  height:410px!important;
  margin:0 0 60px!important;
  border-top-left-radius:88px!important;
}
.wwHeroMedia img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}
.wwHeroPlaceholder{
  min-height:0!important;
  height:100%!important;
}
.wwVertical{
  font-size:clamp(40px,4vw,62px)!important;
}
.wwVertical--left{
  top:12px!important;
  left:8px!important;
  max-height:430px!important;
}
.wwVertical--right{
  right:2px!important;
  bottom:12px!important;
  max-height:310px!important;
}
.wwSave{
  margin-bottom:18px!important;
  font-size:10px!important;
}
.wwName{
  font-size:clamp(20px,1.65vw,28px)!important;
}
.wwAmp{
  font-size:clamp(68px,5.4vw,92px)!important;
  margin:5px 0!important;
}
.wwRule{
  margin:15px auto!important;
}
.wwMeta{
  font-size:9px!important;
  gap:5px!important;
}

@media(max-width:980px){
  .wwTopbar{
    height:68px!important;
    min-height:68px!important;
    padding:0 22px!important;
  }
  .wwHeroGrid{
    display:flex!important;
    flex-direction:column!important;
    height:auto!important;
  }
  .wwHeroMedia{
    order:-1!important;
    height:360px!important;
    min-height:360px!important;
    max-height:360px!important;
    margin:0 14px!important;
    border-radius:62px 62px 18px 18px!important;
  }
  .wwHeroCopy{
    height:auto!important;
    min-height:430px!important;
    padding:44px 72px 52px!important;
  }
  .wwVertical--left{
    top:44px!important;
    left:8px!important;
  }
  .wwVertical--right{
    right:8px!important;
    bottom:38px!important;
  }
}

@media(max-width:640px){
  .wwTopbar{
    height:64px!important;
    min-height:64px!important;
    padding:0 16px!important;
  }
  .wwHeroMedia{
    height:290px!important;
    min-height:290px!important;
    max-height:290px!important;
    margin:0 10px!important;
    border-radius:48px 48px 16px 16px!important;
  }
  .wwHeroCopy{
    min-height:0!important;
    height:auto!important;
    padding:36px 26px 42px!important;
  }
  .wwVertical{
    position:static!important;
    writing-mode:horizontal-tb!important;
    transform:none!important;
    max-height:none!important;
    font-size:10px!important;
    letter-spacing:.28em!important;
    margin-top:8px!important;
  }
  .wwVertical--left{order:4!important}
  .wwVertical--right{order:5!important}
  .wwSave{
    order:1!important;
    margin-bottom:16px!important;
  }
  .wwNames{order:2!important}
  .wwRule,.wwMeta{order:3!important}
  .wwName{
    font-size:18px!important;
    letter-spacing:.16em!important;
  }
  .wwAmp{
    font-size:68px!important;
  }
  .wwMeta{
    font-size:8px!important;
    letter-spacing:.15em!important;
  }
}


/* ===== Hero spacing + program start time edition ===== */
body{
  padding-top:18px!important;
}
.wwPage{
  margin-top:0!important;
}

/* A little more breathing room above the photo */
.wwTopbar{
  height:78px!important;
  min-height:78px!important;
}

/* Photo is slightly taller, while hero remains compact */
.wwHeroGrid{
  height:500px!important;
}
.wwHeroCopy{
  height:500px!important;
}
.wwHeroMedia{
  height:440px!important;
  min-height:440px!important;
  margin-bottom:60px!important;
}

@media(max-width:980px){
  body{
    padding-top:12px!important;
  }
  .wwTopbar{
    height:72px!important;
    min-height:72px!important;
  }
  .wwHeroGrid{
    height:auto!important;
  }
  .wwHeroCopy{
    height:auto!important;
  }
  .wwHeroMedia{
    height:385px!important;
    min-height:385px!important;
    max-height:385px!important;
  }
}

@media(max-width:640px){
  body{
    padding-top:8px!important;
  }
  .wwTopbar{
    height:68px!important;
    min-height:68px!important;
  }
  .wwHeroMedia{
    height:315px!important;
    min-height:315px!important;
    max-height:315px!important;
  }
}


/* ===== Hero: no initials + taller photo ===== */
.wwTopbar{
  grid-template-columns:1fr!important;
  justify-items:center!important;
  height:82px!important;
  min-height:82px!important;
  padding:0 32px!important;
}
.wwHeartMark{
  justify-self:center!important;
  grid-column:1!important;
}

/* Increase the visible photo height without returning to the oversized hero */
.wwHeroGrid{
  height:550px!important;
}
.wwHeroCopy{
  height:550px!important;
}
.wwHeroMedia{
  height:490px!important;
  min-height:490px!important;
  margin-bottom:60px!important;
}
.wwHeroMedia img{
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}

@media(max-width:980px){
  .wwTopbar{
    grid-template-columns:1fr!important;
    height:76px!important;
    min-height:76px!important;
  }
  .wwHeroGrid,
  .wwHeroCopy{
    height:auto!important;
  }
  .wwHeroMedia{
    height:430px!important;
    min-height:430px!important;
    max-height:430px!important;
  }
}

@media(max-width:640px){
  .wwTopbar{
    height:70px!important;
    min-height:70px!important;
  }
  .wwHeroMedia{
    height:350px!important;
    min-height:350px!important;
    max-height:350px!important;
  }
}


/* ===== Final hero increase: +200px photo height and larger names ===== */
.wwHeroGrid{
  height:750px!important;
}
.wwHeroCopy{
  height:750px!important;
}
.wwHeroMedia{
  height:690px!important;
  min-height:690px!important;
  margin-bottom:60px!important;
}
.wwHeroMedia img{
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}

/* Larger central names */
.wwName{
  font-size:clamp(30px,2.4vw,42px)!important;
  letter-spacing:.30em!important;
}
.wwAmp{
  font-size:clamp(96px,7.4vw,132px)!important;
  margin:10px 0!important;
}

/* Slightly larger vertical names too */
.wwVertical{
  font-size:clamp(52px,5vw,78px)!important;
}

@media(max-width:980px){
  .wwHeroGrid,
  .wwHeroCopy{
    height:auto!important;
  }
  .wwHeroMedia{
    height:560px!important;
    min-height:560px!important;
    max-height:560px!important;
  }
  .wwName{
    font-size:clamp(26px,4.2vw,34px)!important;
  }
  .wwAmp{
    font-size:108px!important;
  }
}

@media(max-width:640px){
  .wwHeroMedia{
    height:430px!important;
    min-height:430px!important;
    max-height:430px!important;
  }
  .wwName{
    font-size:22px!important;
    letter-spacing:.18em!important;
  }
  .wwAmp{
    font-size:88px!important;
  }
}


/* ===== Requested final header and hero spacing ===== */

/* Только верхний блок с сердцем и подписью */
.wwTopbar{
  height:auto!important;
  min-height:0!important;
  padding-top:30px!important;
  padding-bottom:30px!important;
}

/* Фото на 50px ниже предыдущей версии + отступ снизу */
.wwHeroGrid{
  height:730px!important;
}
.wwHeroCopy{
  height:730px!important;
}
.wwHeroMedia{
  height:640px!important;
  min-height:640px!important;
  margin-bottom:30px!important;
}

/* Имена крупнее */
.wwName{
  font-size:clamp(34px,2.7vw,46px)!important;
}

/* Отступ справа именно у второго имени */
.wwNames .wwName:last-child{
  margin-right:20px!important;
}

@media(max-width:980px){
  .wwTopbar{
    height:auto!important;
    min-height:0!important;
    padding-top:30px!important;
    padding-bottom:30px!important;
  }

  .wwHeroGrid,
  .wwHeroCopy{
    height:auto!important;
  }

  .wwHeroMedia{
    height:510px!important;
    min-height:510px!important;
    max-height:510px!important;
    margin-bottom:30px!important;
  }

  .wwName{
    font-size:clamp(28px,4.5vw,37px)!important;
  }
}

@media(max-width:640px){
  .wwTopbar{
    padding-top:30px!important;
    padding-bottom:30px!important;
  }

  .wwHeroMedia{
    height:390px!important;
    min-height:390px!important;
    max-height:390px!important;
    margin-bottom:24px!important;
  }

  .wwName{
    font-size:24px!important;
  }

  .wwNames .wwName:last-child{
    margin-right:20px!important;
  }
}


/* ===== Larger names + 20px gap between groom name and photo ===== */

/* Central names */
.wwName{
  font-size:clamp(42px,3.35vw,58px)!important;
  line-height:1.12!important;
  letter-spacing:.24em!important;
}

.wwAmp{
  font-size:clamp(118px,8.2vw,150px)!important;
  margin:12px 0 16px!important;
}

/* Groom's vertical name on the photo side */
.wwVertical--right{
  right:20px!important;
}

/* Remove the previous extra margin from the second central name */
.wwNames .wwName:last-child{
  margin-right:0!important;
}

@media(max-width:980px){
  .wwName{
    font-size:clamp(34px,5.3vw,44px)!important;
    letter-spacing:.20em!important;
  }

  .wwAmp{
    font-size:122px!important;
  }

  .wwVertical--right{
    right:20px!important;
  }
}

@media(max-width:640px){
  .wwName{
    font-size:28px!important;
    line-height:1.18!important;
    letter-spacing:.14em!important;
  }

  .wwAmp{
    font-size:98px!important;
    margin:10px 0 14px!important;
  }

  /* On mobile vertical names are horizontal and centered */
  .wwVertical--right{
    right:auto!important;
    margin-right:0!important;
  }
}


/* ===== Name balance: smaller center, larger sides, tighter spacing ===== */

/* Центральные имена меньше */
.wwName{
  font-size:clamp(28px,2.15vw,38px)!important;
  line-height:1.08!important;
  letter-spacing:.20em!important;
}

/* Уменьшаем расстояния внутри центральной композиции */
.wwAmp{
  font-size:clamp(88px,6.4vw,118px)!important;
  line-height:.72!important;
  margin:4px 0 6px!important;
}
.wwSave{
  margin-bottom:12px!important;
}
.wwRule{
  margin:12px auto!important;
}
.wwNames{
  line-height:1!important;
}

/* Боковые имена заметно крупнее */
.wwVertical{
  font-size:clamp(64px,6.1vw,96px)!important;
  line-height:.78!important;
  letter-spacing:-.05em!important;
}

/* Имя жениха сохраняет расстояние 20px от фото */
.wwVertical--right{
  right:20px!important;
}

/* Центральный блок немного плотнее */
.wwHeroCopy{
  padding-top:34px!important;
  padding-bottom:34px!important;
}

@media(max-width:980px){
  .wwName{
    font-size:clamp(25px,4vw,32px)!important;
    letter-spacing:.18em!important;
  }

  .wwAmp{
    font-size:94px!important;
    margin:3px 0 5px!important;
  }

  .wwVertical{
    font-size:clamp(54px,7vw,76px)!important;
  }

  .wwSave{
    margin-bottom:10px!important;
  }

  .wwRule{
    margin:10px auto!important;
  }
}

@media(max-width:640px){
  .wwName{
    font-size:22px!important;
    line-height:1.12!important;
    letter-spacing:.12em!important;
  }

  .wwAmp{
    font-size:76px!important;
    margin:2px 0 4px!important;
  }

  /* На телефоне боковые имена становятся горизонтальными,
     поэтому оставляем их крупнее, но без переполнения */
  .wwVertical{
    font-size:13px!important;
    letter-spacing:.30em!important;
    line-height:1.35!important;
  }

  .wwVertical--left,
  .wwVertical--right{
    margin-top:6px!important;
  }

  .wwHeroCopy{
    padding-top:28px!important;
    padding-bottom:34px!important;
  }
}


/* ===== Fix cropped left name + center and enlarge date ===== */

/* Левое вертикальное имя: полностью помещается в hero */
.wwVertical--left{
  left:18px!important;
  top:34px!important;
  bottom:auto!important;
  max-height:none!important;
  height:auto!important;
  font-size:clamp(58px,5.3vw,84px)!important;
  line-height:.82!important;
  overflow:visible!important;
}

/* Текстовая колонка больше не режет левое имя */
.wwHeroCopy{
  overflow:visible!important;
}

/* Блок "Сохраните дату" выше, по центру и крупнее */
.wwSave{
  align-self:center!important;
  margin:0 0 18px!important;
  text-align:center!important;
  font-size:13px!important;
  line-height:1.8!important;
  letter-spacing:.30em!important;
}

.wwSave span{
  display:block!important;
  margin-bottom:5px!important;
  font-size:12px!important;
  letter-spacing:.34em!important;
}

.wwSave strong{
  display:block!important;
  font-size:17px!important;
  letter-spacing:.30em!important;
  line-height:1.35!important;
}

/* Центральная композиция чуть выше */
.wwNames{
  transform:translateY(-8px)!important;
}

@media(max-width:980px){
  .wwVertical--left{
    left:14px!important;
    top:40px!important;
    font-size:clamp(50px,7vw,70px)!important;
  }

  .wwSave{
    font-size:12px!important;
    margin-bottom:14px!important;
  }

  .wwSave strong{
    font-size:16px!important;
  }
}

@media(max-width:640px){
  .wwVertical--left{
    position:static!important;
    writing-mode:horizontal-tb!important;
    transform:none!important;
    font-size:13px!important;
    max-height:none!important;
    margin-top:8px!important;
  }

  .wwSave{
    order:1!important;
    margin-bottom:12px!important;
  }

  .wwSave span{
    font-size:10px!important;
  }

  .wwSave strong{
    font-size:15px!important;
    letter-spacing:.22em!important;
  }

  .wwNames{
    transform:none!important;
  }
}


/* ===== Move "Сохраните дату" block higher ===== */
.wwSave{
  transform:translateY(-58px)!important;
  margin-bottom:-34px!important;
}

@media(max-width:980px){
  .wwSave{
    transform:translateY(-42px)!important;
    margin-bottom:-24px!important;
  }
}

@media(max-width:640px){
  .wwSave{
    transform:translateY(-28px)!important;
    margin-bottom:-16px!important;
  }
}


/* ===== Definitive position fix: date higher + left name higher ===== */

/* Date block is anchored near the top of the text column */
.wwHeroCopy{
  position:relative!important;
}

.wwHeroCopy > .wwSave{
  position:absolute!important;
  top:56px!important;
  left:50%!important;
  width:calc(100% - 150px)!important;
  margin:0!important;
  transform:translateX(-50%)!important;
  z-index:3!important;
  text-align:center!important;
}

/* Left side name is moved higher and kept fully visible */
.wwHeroCopy > .wwVertical--left{
  top:12px!important;
  left:20px!important;
  bottom:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

@media(max-width:980px){
  .wwHeroCopy > .wwSave{
    top:30px!important;
    width:calc(100% - 120px)!important;
  }

  .wwHeroCopy > .wwVertical--left{
    top:18px!important;
    left:14px!important;
  }
}

@media(max-width:640px){
  .wwHeroCopy{
    padding-top:104px!important;
  }

  .wwHeroCopy > .wwSave{
    position:absolute!important;
    top:20px!important;
    left:50%!important;
    width:calc(100% - 42px)!important;
    transform:translateX(-50%)!important;
    margin:0!important;
  }

  /* On phone the former left vertical name is horizontal and placed higher */
  .wwHeroCopy > .wwVertical--left{
    position:relative!important;
    order:0!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    margin:-8px 0 12px!important;
    writing-mode:horizontal-tb!important;
    transform:none!important;
  }

  .wwHeroCopy > .wwNames{
    order:2!important;
  }

  .wwHeroCopy > .wwRule,
  .wwHeroCopy > .wwMeta{
    order:3!important;
  }

  .wwHeroCopy > .wwVertical--right{
    order:4!important;
  }
}


/* ===== Final alignment: left name higher + date centered to names ===== */

/* Поднимаем левое вертикальное имя ещё выше */
.wwHeroCopy > .wwVertical--left{
  top:-18px!important;
  left:20px!important;
}

/* Блок даты центрируется строго относительно центральных имён */
.wwHeroCopy > .wwSave{
  left:50%!important;
  width:auto!important;
  min-width:360px!important;
  max-width:calc(100% - 120px)!important;
  transform:translateX(-50%)!important;
  text-align:center!important;
}

@media(max-width:980px){
  .wwHeroCopy > .wwVertical--left{
    top:-8px!important;
  }

  .wwHeroCopy > .wwSave{
    min-width:320px!important;
    max-width:calc(100% - 100px)!important;
  }
}

@media(max-width:640px){
  .wwHeroCopy > .wwVertical--left{
    top:auto!important;
    margin:-18px 0 10px!important;
  }

  .wwHeroCopy > .wwSave{
    left:50%!important;
    width:calc(100% - 36px)!important;
    min-width:0!important;
    max-width:none!important;
    transform:translateX(-50%)!important;
    text-align:center!important;
  }
}


/* =========================================================
   WINTER NOIR — GALLERY
   Compact editorial grid instead of full-width stacked images
========================================================= */

.gallerySection .sharedBlock--gallery{
  margin-top:44px!important;
  overflow:visible!important;
}

.gallerySection :is(
  .gallery,
  .galleryGrid,
  .gallery-grid,
  .galleryList,
  .gallery-list,
  .galleryItems,
  .gallery-items,
  [data-gallery-grid]
){
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  grid-auto-flow:dense!important;
  grid-auto-rows:150px!important;
  gap:16px!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

.gallerySection :is(
  .galleryItem,
  .gallery-item,
  .galleryCard,
  .gallery-card,
  .galleryPhoto,
  .gallery-photo,
  a[data-fancybox],
  [data-gallery-item]
){
  position:relative!important;
  display:block!important;
  grid-column:span 4!important;
  grid-row:span 2!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:0!important;
  background:var(--panel2)!important;
}

.gallerySection :is(
  .galleryItem,
  .gallery-item,
  .galleryCard,
  .gallery-card,
  .galleryPhoto,
  .gallery-photo,
  a[data-fancybox],
  [data-gallery-item]
):nth-child(1){
  grid-column:span 7!important;
  grid-row:span 4!important;
}

.gallerySection :is(
  .galleryItem,
  .gallery-item,
  .galleryCard,
  .gallery-card,
  .galleryPhoto,
  .gallery-photo,
  a[data-fancybox],
  [data-gallery-item]
):nth-child(2),
.gallerySection :is(
  .galleryItem,
  .gallery-item,
  .galleryCard,
  .gallery-card,
  .galleryPhoto,
  .gallery-photo,
  a[data-fancybox],
  [data-gallery-item]
):nth-child(3){
  grid-column:span 5!important;
  grid-row:span 2!important;
}

.gallerySection :is(
  .galleryItem,
  .gallery-item,
  .galleryCard,
  .gallery-card,
  .galleryPhoto,
  .gallery-photo,
  a[data-fancybox],
  [data-gallery-item]
):nth-child(n+4){
  grid-column:span 4!important;
  grid-row:span 2!important;
}

.gallerySection :is(
  .galleryItem,
  .gallery-item,
  .galleryCard,
  .gallery-card,
  .galleryPhoto,
  .gallery-photo,
  a[data-fancybox],
  [data-gallery-item]
) img,
.gallerySection .sharedBlock--gallery img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
  filter:grayscale(1)!important;
  margin:0!important;
}

.gallerySection :is(figcaption,.galleryCaption,.gallery-caption){
  display:none!important;
}

/* Placeholder uses the same editorial grid */
.galleryPlaceholderGrid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  grid-auto-rows:150px!important;
  gap:16px!important;
}
.galleryPlaceholder{
  min-height:0!important;
  height:auto!important;
  padding:26px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  border:1px solid var(--line)!important;
  background:var(--panel2)!important;
}
.galleryPlaceholder--1{grid-column:span 7!important;grid-row:span 4!important}
.galleryPlaceholder--2,.galleryPlaceholder--3{grid-column:span 5!important;grid-row:span 2!important}
.galleryPlaceholder--4,.galleryPlaceholder--5{grid-column:span 6!important;grid-row:span 2!important}

/* =========================================================
   WINTER NOIR — RSVP
   Fully overrides the shared block's embedded styles
========================================================= */

.winterNoirRsvpSection{
  background:var(--paper)!important;
  color:var(--ink)!important;
}

.winterNoirRsvpSection .rsvpCard{
  width:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.winterNoirRsvpSection .rsvpSection{
  width:100%!important;
  color:var(--ink)!important;
}

.winterNoirRsvpSection .rsvpSectionHead{
  width:min(900px,100%)!important;
  margin:0 auto 54px!important;
  text-align:center!important;
}

.winterNoirRsvpSection .rsvpLabel{
  display:block!important;
  min-height:0!important;
  padding:0!important;
  margin:0 0 16px!important;
  border:0!important;
  border-radius:0!important;
  color:var(--muted)!important;
  background:transparent!important;
  font-size:10px!important;
  font-weight:500!important;
  letter-spacing:.38em!important;
  text-transform:uppercase!important;
}

.winterNoirRsvpSection .rsvpSectionHead h2{
  margin:0!important;
  color:var(--ink)!important;
  font-family:var(--serif)!important;
  font-size:clamp(52px,7vw,96px)!important;
  font-weight:400!important;
  line-height:.94!important;
  letter-spacing:-.03em!important;
}

.winterNoirRsvpSection .rsvpHint{
  width:min(720px,100%)!important;
  margin:24px auto 0!important;
  color:var(--muted)!important;
  font-size:16px!important;
  line-height:1.8!important;
  opacity:1!important;
}

.winterNoirRsvpSection .rsvpGrid{
  display:block!important;
}

.winterNoirRsvpSection .rsvpFormCard{
  width:min(980px,100%)!important;
  margin:0 auto!important;
  padding:56px!important;
  border:1px solid var(--line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

.winterNoirRsvpSection #rsvpForm{
  display:grid!important;
  gap:28px!important;
}

.winterNoirRsvpSection .row2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:22px!important;
}

.winterNoirRsvpSection .formRow{
  display:grid!important;
  gap:10px!important;
}

.winterNoirRsvpSection .label{
  color:var(--ink)!important;
  font-size:11px!important;
  font-weight:500!important;
  line-height:1.4!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}

.winterNoirRsvpSection .field{
  width:100%!important;
  min-height:54px!important;
  padding:14px 0!important;
  border:0!important;
  border-bottom:1px solid var(--line)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  font-size:16px!important;
  box-shadow:none!important;
}

.winterNoirRsvpSection textarea.field{
  min-height:108px!important;
}

.winterNoirRsvpSection .field::placeholder{
  color:var(--muted)!important;
  opacity:.7!important;
}

.winterNoirRsvpSection .field:focus{
  border-color:var(--accent)!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:none!important;
}

.winterNoirRsvpSection .chips{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
}

.winterNoirRsvpSection .chip{
  flex:0 1 auto!important;
  min-width:130px!important;
  min-height:44px!important;
  padding:10px 20px!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--ink)!important;
  font-size:13px!important;
  font-weight:500!important;
  box-shadow:none!important;
}

.winterNoirRsvpSection .chip[data-active="true"],
.winterNoirRsvpSection .chip.is-active,
.winterNoirRsvpSection .chip.active{
  border-color:var(--ink)!important;
  background:var(--ink)!important;
  color:var(--paper)!important;
}

.winterNoirRsvpSection .rsvpTotal{
  min-height:38px!important;
  padding:0 15px!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--ink)!important;
}

.winterNoirRsvpSection .consent{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr)!important;
  gap:14px!important;
  padding:20px 0 0!important;
  border:0!important;
  border-top:1px solid var(--line)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-size:13px!important;
}

.winterNoirRsvpSection .consent input{
  accent-color:var(--accent)!important;
}

.winterNoirRsvpSection .consent a{
  color:var(--ink)!important;
}

.winterNoirRsvpSection .btn.btn-full,
.winterNoirRsvpSection #rsvpForm button[type="submit"]{
  width:100%!important;
  min-height:58px!important;
  padding:0 28px!important;
  border:1px solid var(--ink)!important;
  border-radius:999px!important;
  background:var(--ink)!important;
  color:var(--paper)!important;
  font-size:12px!important;
  font-weight:600!important;
  letter-spacing:.24em!important;
  text-transform:uppercase!important;
}

.winterNoirRsvpSection .statusBox,
.winterNoirRsvpSection .previewLockNote,
.winterNoirRsvpSection .rsvpAjaxStatus{
  border:1px solid var(--line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.winterNoirRsvpSection .statusBox.ok,
.winterNoirRsvpSection .rsvpAjaxStatus.is-ok{
  color:#4d8b63!important;
}
.winterNoirRsvpSection .statusBox.bad,
.winterNoirRsvpSection .rsvpAjaxStatus.is-error{
  color:#b76060!important;
}

/* Dark themes: keep all text readable */
[data-theme="black"] .winterNoirRsvpSection .field,
[data-theme="black_gold"] .winterNoirRsvpSection .field,
[data-theme="black"] .winterNoirRsvpSection .chip,
[data-theme="black_gold"] .winterNoirRsvpSection .chip{
  color:var(--ink)!important;
}

@media(max-width:900px){
  .gallerySection :is(
    .gallery,.galleryGrid,.gallery-grid,.galleryList,.gallery-list,
    .galleryItems,.gallery-items,[data-gallery-grid]
  ),
  .galleryPlaceholderGrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:190px!important;
  }

  .gallerySection :is(
    .galleryItem,.gallery-item,.galleryCard,.gallery-card,.galleryPhoto,
    .gallery-photo,a[data-fancybox],[data-gallery-item]
  ),
  .gallerySection :is(
    .galleryItem,.gallery-item,.galleryCard,.gallery-card,.galleryPhoto,
    .gallery-photo,a[data-fancybox],[data-gallery-item]
  ):nth-child(n){
    grid-column:span 1!important;
    grid-row:span 1!important;
  }

  .gallerySection :is(
    .galleryItem,.gallery-item,.galleryCard,.gallery-card,.galleryPhoto,
    .gallery-photo,a[data-fancybox],[data-gallery-item]
  ):first-child{
    grid-column:span 2!important;
    grid-row:span 2!important;
  }

  .galleryPlaceholder,
  .galleryPlaceholder--1,
  .galleryPlaceholder--2,
  .galleryPlaceholder--3,
  .galleryPlaceholder--4,
  .galleryPlaceholder--5{
    grid-column:span 1!important;
    grid-row:span 1!important;
  }
  .galleryPlaceholder--1{
    grid-column:span 2!important;
    grid-row:span 2!important;
  }

  .winterNoirRsvpSection .rsvpFormCard{
    padding:40px!important;
  }
}

@media(max-width:640px){
  .gallerySection :is(
    .gallery,.galleryGrid,.gallery-grid,.galleryList,.gallery-list,
    .galleryItems,.gallery-items,[data-gallery-grid]
  ),
  .galleryPlaceholderGrid{
    grid-template-columns:1fr!important;
    grid-auto-rows:260px!important;
    gap:12px!important;
  }

  .gallerySection :is(
    .galleryItem,.gallery-item,.galleryCard,.gallery-card,.galleryPhoto,
    .gallery-photo,a[data-fancybox],[data-gallery-item]
  ),
  .gallerySection :is(
    .galleryItem,.gallery-item,.galleryCard,.gallery-card,.galleryPhoto,
    .gallery-photo,a[data-fancybox],[data-gallery-item]
  ):nth-child(n),
  .galleryPlaceholder,
  .galleryPlaceholder--1,
  .galleryPlaceholder--2,
  .galleryPlaceholder--3,
  .galleryPlaceholder--4,
  .galleryPlaceholder--5{
    grid-column:1!important;
    grid-row:span 1!important;
  }

  .gallerySection :is(
    .galleryItem,.gallery-item,.galleryCard,.gallery-card,.galleryPhoto,
    .gallery-photo,a[data-fancybox],[data-gallery-item]
  ):first-child{
    grid-row:span 1!important;
  }

  .winterNoirRsvpSection .rsvpSectionHead{
    margin-bottom:34px!important;
  }

  .winterNoirRsvpSection .rsvpSectionHead h2{
    font-size:48px!important;
  }

  .winterNoirRsvpSection .rsvpFormCard{
    padding:28px 20px!important;
  }

  .winterNoirRsvpSection .row2{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }

  .winterNoirRsvpSection .chips{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .winterNoirRsvpSection .chip{
    width:100%!important;
  }
}


/* =========================================================
   Gallery v2: exact template-owned editorial mosaic
========================================================= */
.wnGallery{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  grid-auto-rows:110px!important;
  grid-auto-flow:dense!important;
  gap:16px!important;
  width:100%!important;
}

.wnGalleryItem{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  background:var(--panel2)!important;
  border:1px solid var(--line)!important;
}

.wnGalleryItem:nth-child(6n+1){
  grid-column:span 7!important;
  grid-row:span 5!important;
}
.wnGalleryItem:nth-child(6n+2),
.wnGalleryItem:nth-child(6n+3){
  grid-column:span 5!important;
  grid-row:span 2!important;
}
.wnGalleryItem:nth-child(6n+4),
.wnGalleryItem:nth-child(6n+5),
.wnGalleryItem:nth-child(6n+6){
  grid-column:span 4!important;
  grid-row:span 3!important;
}

.wnGalleryItem img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
  filter:grayscale(1)!important;
  transition:transform .45s ease,filter .45s ease!important;
}

.wnGalleryItem::after{
  content:"Открыть"!important;
  position:absolute!important;
  inset:auto 18px 18px auto!important;
  padding:9px 13px!important;
  border:1px solid rgba(255,255,255,.66)!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.24)!important;
  color:#fff!important;
  font-size:9px!important;
  letter-spacing:.2em!important;
  text-transform:uppercase!important;
  opacity:0!important;
  transform:translateY(6px)!important;
  transition:.25s ease!important;
  backdrop-filter:blur(8px)!important;
}

.wnGalleryItem:hover img{
  transform:scale(1.025)!important;
  filter:grayscale(.25)!important;
}
.wnGalleryItem:hover::after,
.wnGalleryItem:focus-visible::after{
  opacity:1!important;
  transform:none!important;
}
.wnGalleryItem:focus-visible{
  outline:2px solid var(--accent)!important;
  outline-offset:3px!important;
}

/* =========================================================
   RSVP v2: visible hover and active text in every theme
========================================================= */
.winterNoirRsvpSection .chip{
  transition:
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease!important;
}

.winterNoirRsvpSection .chip:hover{
  border-color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 16%,transparent)!important;
  color:var(--ink)!important;
  transform:translateY(-1px)!important;
}

.winterNoirRsvpSection .chip[data-active="true"],
.winterNoirRsvpSection .chip.is-active,
.winterNoirRsvpSection .chip.active{
  border-color:var(--accent)!important;
  background:var(--accent)!important;
}

/* Light themes: dark active buttons need light text */
html[data-dark="0"] .winterNoirRsvpSection .chip[data-active="true"],
html[data-dark="0"] .winterNoirRsvpSection .chip.is-active,
html[data-dark="0"] .winterNoirRsvpSection .chip.active{
  color:var(--paper)!important;
}

/* Dark and black-gold themes: accents are light/gold, use dark text */
html[data-dark="1"] .winterNoirRsvpSection .chip[data-active="true"],
html[data-dark="1"] .winterNoirRsvpSection .chip.is-active,
html[data-dark="1"] .winterNoirRsvpSection .chip.active{
  color:#111!important;
}

.winterNoirRsvpSection .btn.btn-full,
.winterNoirRsvpSection #rsvpForm button[type="submit"]{
  transition:
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease!important;
}

.winterNoirRsvpSection .btn.btn-full:hover,
.winterNoirRsvpSection #rsvpForm button[type="submit"]:hover{
  background:transparent!important;
  color:var(--ink)!important;
  border-color:var(--ink)!important;
  transform:translateY(-1px)!important;
}

.winterNoirRsvpSection .btn.btn-full:active,
.winterNoirRsvpSection #rsvpForm button[type="submit"]:active{
  transform:translateY(0)!important;
}

@media(max-width:900px){
  .wnGallery{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:190px!important;
    gap:12px!important;
  }
  .wnGalleryItem:nth-child(n){
    grid-column:span 1!important;
    grid-row:span 1!important;
  }
  .wnGalleryItem:first-child{
    grid-column:span 2!important;
    grid-row:span 2!important;
  }
}

@media(max-width:640px){
  .wnGallery{
    grid-template-columns:1fr!important;
    grid-auto-rows:250px!important;
  }
  .wnGalleryItem:nth-child(n),
  .wnGalleryItem:first-child{
    grid-column:1!important;
    grid-row:span 1!important;
  }
  .wnGalleryItem::after{
    opacity:1!important;
    transform:none!important;
  }
}


/* =========================================================
   WINTER NOIR — DETAILS BLOCK
   Overrides /views/blocks/details.php
========================================================= */

.winterNoirDetailsSection{
  padding:100px 0!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
  border-top:1px solid var(--line)!important;
}

.winterNoirDetailsSection .le-details{
  width:min(1180px,calc(100% - 56px))!important;
  margin:0 auto!important;
  padding:0!important;
  color:var(--ink)!important;
  background:transparent!important;
}

.winterNoirDetailsSection .le-details__header{
  width:min(900px,100%)!important;
  margin:0 auto 52px!important;
  text-align:center!important;
}

.winterNoirDetailsSection .le-details__kicker{
  margin:0 0 14px!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:10px!important;
  font-weight:500!important;
  line-height:1.4!important;
  letter-spacing:.38em!important;
  text-transform:uppercase!important;
}

.winterNoirDetailsSection .le-details__title{
  margin:0!important;
  color:var(--ink)!important;
  font-family:var(--serif)!important;
  font-size:clamp(52px,7vw,96px)!important;
  font-weight:400!important;
  line-height:.94!important;
  letter-spacing:-.03em!important;
}

.winterNoirDetailsSection .le-details__text{
  width:min(740px,100%)!important;
  margin:24px auto 0!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:16px!important;
  line-height:1.85!important;
  text-align:center!important;
}

.winterNoirDetailsSection .le-details__grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
}

.winterNoirDetailsSection .le-details__card{
  position:relative!important;
  display:flex!important;
  min-height:330px!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  padding:36px!important;
  color:var(--ink)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
  transition:
    background-color .25s ease,
    color .25s ease,
    border-color .25s ease,
    transform .25s ease!important;
}

.winterNoirDetailsSection .le-details__card:hover{
  background:var(--ink)!important;
  color:var(--paper)!important;
  border-color:var(--ink)!important;
  transform:translateY(-3px)!important;
}

.winterNoirDetailsSection .le-details__card-icon{
  position:absolute!important;
  top:28px!important;
  left:30px!important;
  display:flex!important;
  width:auto!important;
  height:auto!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
  color:var(--muted)!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  font-family:var(--sans)!important;
  font-size:11px!important;
  font-weight:500!important;
  line-height:1!important;
  letter-spacing:.28em!important;
}

.winterNoirDetailsSection .le-details__card-icon--wishlist{
  width:34px!important;
  height:34px!important;
}

.winterNoirDetailsSection .le-details__card-icon img{
  width:30px!important;
  height:30px!important;
  object-fit:contain!important;
  filter:grayscale(1)!important;
}

.winterNoirDetailsSection .le-details__provider{
  margin:0 0 12px!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:10px!important;
  font-weight:500!important;
  letter-spacing:.25em!important;
  text-transform:uppercase!important;
}

.winterNoirDetailsSection .le-details__card-title{
  margin:0!important;
  color:inherit!important;
  font-family:var(--serif)!important;
  font-size:clamp(31px,3vw,44px)!important;
  font-weight:400!important;
  line-height:1.02!important;
  letter-spacing:-.02em!important;
}

.winterNoirDetailsSection .le-details__card-text{
  margin:16px 0 0!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:14px!important;
  line-height:1.75!important;
}

.winterNoirDetailsSection .le-details__wishlist-button{
  display:inline-flex!important;
  min-height:44px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  margin-top:24px!important;
  padding:0 20px!important;
  color:var(--ink)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  font-family:var(--sans)!important;
  font-size:11px!important;
  font-weight:600!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  transition:.2s ease!important;
}

.winterNoirDetailsSection .le-details__wishlist-button svg{
  width:16px!important;
  height:16px!important;
}

.winterNoirDetailsSection .le-details__card:hover .le-details__provider,
.winterNoirDetailsSection .le-details__card:hover .le-details__card-text,
.winterNoirDetailsSection .le-details__card:hover .le-details__card-icon{
  color:color-mix(in srgb,var(--paper) 72%,transparent)!important;
}

.winterNoirDetailsSection .le-details__card:hover .le-details__wishlist-button{
  color:var(--paper)!important;
  border-color:color-mix(in srgb,var(--paper) 44%,transparent)!important;
}

.winterNoirDetailsSection .le-details__wishlist-button:hover{
  background:var(--paper)!important;
  color:var(--ink)!important;
  border-color:var(--paper)!important;
}

/* =========================================================
   WINTER NOIR — CONTACTS BLOCK
   Overrides /views/blocks/contacts.php
========================================================= */

.winterNoirContactsSection{
  padding:0!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
  border-top:1px solid var(--line)!important;
}

.winterNoirContactsSection .ivi-contacts{
  width:100%!important;
  padding:100px 28px!important;
  color:var(--ink)!important;
  background:transparent!important;
  overflow:hidden!important;
}

.winterNoirContactsSection .ivi-contacts__inner{
  width:min(1180px,100%)!important;
  margin:0 auto!important;
}

.winterNoirContactsSection .ivi-contacts__head{
  width:min(900px,100%)!important;
  max-width:none!important;
  margin:0 auto 52px!important;
  text-align:center!important;
}

.winterNoirContactsSection .ivi-contacts__kicker{
  margin:0 0 14px!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:10px!important;
  font-weight:500!important;
  line-height:1.4!important;
  letter-spacing:.38em!important;
  text-transform:uppercase!important;
}

.winterNoirContactsSection .ivi-contacts__title{
  margin:0!important;
  color:var(--ink)!important;
  font-family:var(--serif)!important;
  font-size:clamp(52px,7vw,96px)!important;
  font-weight:400!important;
  line-height:.94!important;
  letter-spacing:-.03em!important;
}

.winterNoirContactsSection .ivi-contacts__text{
  width:min(720px,100%)!important;
  max-width:none!important;
  margin:24px auto 0!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:16px!important;
  line-height:1.85!important;
}

.winterNoirContactsSection .ivi-contacts__grid{
  display:grid!important;
  grid-template-columns:repeat(var(--ivi-contacts-count,1),minmax(0,1fr))!important;
  gap:16px!important;
}

.winterNoirContactsSection .ivi-contact{
  display:flex!important;
  min-height:330px!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  padding:38px 30px!important;
  text-align:center!important;
  color:var(--ink)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:
    background-color .25s ease,
    color .25s ease,
    border-color .25s ease,
    transform .25s ease!important;
}

.winterNoirContactsSection .ivi-contact:hover{
  background:var(--ink)!important;
  color:var(--paper)!important;
  border-color:var(--ink)!important;
  transform:translateY(-3px)!important;
}

.winterNoirContactsSection .ivi-contact__avatar{
  display:grid!important;
  place-items:center!important;
  width:58px!important;
  height:58px!important;
  margin:0 0 22px!important;
  color:var(--accent)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:50%!important;
}

.winterNoirContactsSection .ivi-contact__avatar svg{
  width:25px!important;
  height:25px!important;
}

.winterNoirContactsSection .ivi-contact__name{
  margin:0!important;
  color:inherit!important;
  font-family:var(--serif)!important;
  font-size:clamp(32px,3.2vw,46px)!important;
  font-weight:400!important;
  line-height:1!important;
}

.winterNoirContactsSection .ivi-contact__role{
  margin:12px 0 0!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:11px!important;
  font-weight:500!important;
  line-height:1.5!important;
  letter-spacing:.2em!important;
  text-transform:uppercase!important;
}

.winterNoirContactsSection .ivi-contact__phone{
  margin:22px 0 0!important;
  color:inherit!important;
  font-family:var(--sans)!important;
  font-size:16px!important;
  font-weight:500!important;
  line-height:1.4!important;
  letter-spacing:.08em!important;
  text-decoration:none!important;
}

.winterNoirContactsSection .ivi-contact__actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  gap:9px!important;
  margin-top:auto!important;
  padding-top:26px!important;
}

.winterNoirContactsSection .ivi-contact__action{
  display:inline-flex!important;
  min-height:42px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:10px 15px!important;
  color:var(--ink)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  font-family:var(--sans)!important;
  font-size:11px!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.08em!important;
  text-decoration:none!important;
  transition:.2s ease!important;
}

.winterNoirContactsSection .ivi-contact__action:hover{
  color:var(--paper)!important;
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  transform:translateY(-2px)!important;
}

.winterNoirContactsSection .ivi-contact:hover .ivi-contact__role{
  color:color-mix(in srgb,var(--paper) 70%,transparent)!important;
}

.winterNoirContactsSection .ivi-contact:hover .ivi-contact__avatar{
  color:var(--paper)!important;
  border-color:color-mix(in srgb,var(--paper) 34%,transparent)!important;
}

.winterNoirContactsSection .ivi-contact:hover .ivi-contact__action{
  color:var(--paper)!important;
  border-color:color-mix(in srgb,var(--paper) 34%,transparent)!important;
}

.winterNoirContactsSection .ivi-contact:hover .ivi-contact__action:hover{
  color:#111!important;
  background:var(--accent)!important;
  border-color:var(--accent)!important;
}

/* Dark/gold active contrast */
html[data-dark="1"] .winterNoirContactsSection .ivi-contact__action:hover,
html[data-dark="1"] .winterNoirContactsSection .ivi-contact:hover .ivi-contact__action:hover{
  color:#111!important;
}

/* Responsive */
@media(max-width:900px){
  .winterNoirDetailsSection .le-details__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .winterNoirContactsSection .ivi-contacts__grid{
    grid-template-columns:1fr!important;
  }

  .winterNoirContactsSection .ivi-contact{
    width:min(620px,100%)!important;
    margin:0 auto!important;
  }
}

@media(max-width:640px){
  .winterNoirDetailsSection,
  .winterNoirContactsSection .ivi-contacts{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }

  .winterNoirDetailsSection .le-details{
    width:calc(100% - 36px)!important;
  }

  .winterNoirDetailsSection .le-details__grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .winterNoirDetailsSection .le-details__card{
    min-height:270px!important;
    padding:30px 24px!important;
  }

  .winterNoirContactsSection .ivi-contacts{
    padding-left:18px!important;
    padding-right:18px!important;
  }

  .winterNoirContactsSection .ivi-contact{
    min-height:290px!important;
    padding:32px 22px!important;
  }

  .winterNoirContactsSection .ivi-contact__actions{
    width:100%!important;
    flex-direction:column!important;
  }

  .winterNoirContactsSection .ivi-contact__action{
    width:100%!important;
  }
}


/* =========================================================
   MOBILE HERO — keep side names vertical, not stacked
========================================================= */

@media(max-width:640px){
  .wwHeroCopy{
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    padding:82px 58px 62px!important;
    overflow:hidden!important;
  }

  /* Both decorative names stay on the sides */
  .wwHeroCopy > .wwVertical{
    position:absolute!important;
    top:50%!important;
    bottom:auto!important;
    width:auto!important;
    max-height:330px!important;
    margin:0!important;
    color:var(--ink)!important;
    font-family:var(--sans)!important;
    font-size:32px!important;
    font-weight:300!important;
    line-height:.82!important;
    letter-spacing:-.04em!important;
    white-space:nowrap!important;
    writing-mode:vertical-rl!important;
    transform:translateY(-50%) rotate(180deg)!important;
    z-index:2!important;
    pointer-events:none!important;
  }

  .wwHeroCopy > .wwVertical--left{
    left:6px!important;
    right:auto!important;
    order:initial!important;
  }

  .wwHeroCopy > .wwVertical--right{
    right:6px!important;
    left:auto!important;
    order:initial!important;
  }

  /* Keep the real content centered between side names */
  .wwHeroCopy > .wwSave,
  .wwHeroCopy > .wwNames,
  .wwHeroCopy > .wwRule,
  .wwHeroCopy > .wwMeta{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-width:250px!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    transform:none!important;
    text-align:center!important;
    z-index:3!important;
  }

  .wwHeroCopy > .wwSave{
    margin-bottom:18px!important;
  }

  .wwHeroCopy > .wwNames{
    margin:0 auto!important;
  }

  .wwHeroCopy > .wwRule{
    width:28px!important;
    margin-top:14px!important;
    margin-bottom:14px!important;
  }

  .wwHeroCopy > .wwMeta{
    margin-top:0!important;
  }
}

@media(max-width:390px){
  .wwHeroCopy{
    padding-left:50px!important;
    padding-right:50px!important;
  }

  .wwHeroCopy > .wwVertical{
    font-size:28px!important;
    max-height:300px!important;
  }

  .wwHeroCopy > .wwVertical--left{
    left:3px!important;
  }

  .wwHeroCopy > .wwVertical--right{
    right:3px!important;
  }
}


/* =========================================================
   SHARED /views/blocks INTEGRATION
========================================================= */

/* LOCATION */
.winterNoirLocationSection{
  padding:100px 0!important;background:var(--paper)!important;color:var(--ink)!important;
  border-top:1px solid var(--line)!important;
}
.winterNoirLocationSection .iviLoc{width:100%!important;color:var(--ink)!important}
.winterNoirLocationSection .iviLocHead{width:min(900px,100%)!important;margin:0 auto 52px!important;text-align:center!important}
.winterNoirLocationSection .iviLocKicker{margin:0 0 14px!important;color:var(--muted)!important;font-size:10px!important;letter-spacing:.38em!important;text-transform:uppercase!important}
.winterNoirLocationSection .iviLocTitle{margin:0!important;color:var(--ink)!important;font-family:var(--serif)!important;font-size:clamp(52px,7vw,96px)!important;font-weight:400!important;line-height:.94!important}
.winterNoirLocationSection .iviLocGrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.winterNoirLocationSection .iviLocGrid:has(.iviLocCard:only-child){grid-template-columns:1fr!important}
.winterNoirLocationSection .iviLocCard{min-width:0!important;overflow:hidden!important;border:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.winterNoirLocationSection .iviLocPhoto{height:360px!important;overflow:hidden!important}
.winterNoirLocationSection .iviLocPhoto img{width:100%!important;height:100%!important;object-fit:cover!important;filter:grayscale(1)!important}
.winterNoirLocationSection .iviLocBody{min-height:330px!important;padding:38px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important}
.winterNoirLocationSection .iviLocCard:not(:has(.iviLocPhoto)) .iviLocBody{min-height:420px!important}
.winterNoirLocationSection .iviLocBadge{color:var(--muted)!important;font-size:10px!important;letter-spacing:.3em!important;text-transform:uppercase!important}
.winterNoirLocationSection .iviLocName{margin:16px 0 0!important;color:var(--ink)!important;font-family:var(--serif)!important;font-size:clamp(36px,4vw,54px)!important;font-weight:400!important;line-height:1!important}
.winterNoirLocationSection .iviLocAddr,.winterNoirLocationSection .iviLocNote{color:var(--muted)!important;line-height:1.75!important}
.winterNoirLocationSection .iviLocActions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:26px!important}
.winterNoirLocationSection .iviBtn{min-height:44px!important;padding:0 20px!important;border:1px solid var(--ink)!important;border-radius:999px!important;background:transparent!important;color:var(--ink)!important;text-decoration:none!important}
.winterNoirLocationSection .iviBtnPrimary{background:var(--ink)!important;color:var(--paper)!important}

/* DRESSCODE */
.winterNoirDresscodeSection{
  padding:100px 0!important;background:var(--paper)!important;color:var(--ink)!important;
  border-top:1px solid var(--line)!important;
}
.winterNoirDresscodeSection .iviDress{width:100%!important;color:var(--ink)!important}
.winterNoirDresscodeSection .iviDressWrap{padding:70px 52px!important;border:1px solid var(--line)!important;text-align:center!important}
.winterNoirDresscodeSection .iviDressKicker{margin:0 0 14px!important;color:var(--muted)!important;font-size:10px!important;letter-spacing:.38em!important;text-transform:uppercase!important}
.winterNoirDresscodeSection .iviDressTitle{width:min(900px,100%)!important;margin:0 auto!important;color:var(--ink)!important;font-family:var(--serif)!important;font-size:clamp(52px,7vw,92px)!important;font-weight:400!important;line-height:.96!important}
.winterNoirDresscodeSection .iviDressSwatches{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:14px!important;margin:34px auto 0!important}
.winterNoirDresscodeSection .iviDressDot{display:block!important;width:54px!important;height:54px!important;flex:0 0 54px!important;border-radius:50%!important;background:var(--c)!important;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent)!important}
.winterNoirDresscodeSection .iviDressText{width:min(760px,100%)!important;margin:30px auto 0!important;color:var(--muted)!important;font-size:16px!important;line-height:1.9!important}

/* GALLERY */
.winterNoirGallerySection{
  padding:100px 0!important;background:var(--paper)!important;color:var(--ink)!important;
  border-top:1px solid var(--line)!important;
}
.winterNoirGallerySection .iviGallery{width:100%!important}
.winterNoirGallerySection .iviGalleryHead{width:min(900px,100%)!important;margin:0 auto 52px!important;text-align:center!important}
.winterNoirGallerySection .iviGalleryKicker{color:var(--muted)!important;font-size:10px!important;letter-spacing:.38em!important;text-transform:uppercase!important}
.winterNoirGallerySection .iviGalleryTitle{margin:14px 0 0!important;color:var(--ink)!important;font-family:var(--serif)!important;font-size:clamp(52px,7vw,96px)!important;font-weight:400!important;line-height:.94!important}
.winterNoirGallerySection .iviGallerySubtitle{width:min(720px,100%)!important;margin:24px auto 0!important;color:var(--muted)!important;line-height:1.8!important}
.winterNoirGallerySection .iviGalleryGrid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-flow:dense!important;grid-auto-rows:110px!important;gap:16px!important}
.winterNoirGallerySection .iviGalleryItem{position:relative!important;display:block!important;grid-column:span 4!important;grid-row:span 3!important;overflow:hidden!important;background:var(--panel2)!important}
.winterNoirGallerySection .iviGalleryItem:nth-child(6n+1){grid-column:span 7!important;grid-row:span 5!important}
.winterNoirGallerySection .iviGalleryItem:nth-child(6n+2),.winterNoirGallerySection .iviGalleryItem:nth-child(6n+3){grid-column:span 5!important;grid-row:span 2!important}
.winterNoirGallerySection .iviGalleryItem img{width:100%!important;height:100%!important;object-fit:cover!important;filter:grayscale(1)!important;transition:transform .35s ease,filter .35s ease!important}
.winterNoirGallerySection .iviGalleryItem:hover img{transform:scale(1.025)!important;filter:grayscale(.2)!important}
.winterNoirGallerySection .iviGalleryCaption{display:none!important}

@media(max-width:900px){
  .winterNoirLocationSection .iviLocGrid{grid-template-columns:1fr!important}
  .winterNoirGallerySection .iviGalleryGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:190px!important;gap:12px!important}
  .winterNoirGallerySection .iviGalleryItem,.winterNoirGallerySection .iviGalleryItem:nth-child(n){grid-column:span 1!important;grid-row:span 1!important}
  .winterNoirGallerySection .iviGalleryItem:first-child{grid-column:span 2!important;grid-row:span 2!important}
}
@media(max-width:640px){
  .winterNoirLocationSection,.winterNoirDresscodeSection,.winterNoirGallerySection{padding:72px 0!important}
  .winterNoirLocationSection .iviLocBody{align-items:center!important;text-align:center!important;padding:30px 22px!important}
  .winterNoirLocationSection .iviLocActions{width:100%!important;flex-direction:column!important}
  .winterNoirLocationSection .iviBtn{width:100%!important}
  .winterNoirDresscodeSection .iviDressWrap{padding:44px 22px!important}
  .winterNoirDresscodeSection .iviDressDot{width:42px!important;height:42px!important;flex-basis:42px!important}
  .winterNoirGallerySection .iviGalleryGrid{grid-template-columns:1fr!important;grid-auto-rows:250px!important}
  .winterNoirGallerySection .iviGalleryItem,.winterNoirGallerySection .iviGalleryItem:nth-child(n),.winterNoirGallerySection .iviGalleryItem:first-child{grid-column:1!important;grid-row:span 1!important}
}


/* ===== Location buttons: perfectly centered text ===== */
.winterNoirLocationSection .iviLocActions{
  align-items:center!important;
}

.winterNoirLocationSection .iviBtn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  white-space:nowrap!important;
  vertical-align:middle!important;
  padding-top:0!important;
  padding-bottom:0!important;
}

.winterNoirLocationSection .iviBtn > span,
.winterNoirLocationSection .iviBtn > svg{
  flex:0 0 auto!important;
}

@media(max-width:640px){
  .winterNoirLocationSection .iviBtn{
    min-height:48px!important;
  }
}


/* ===== Location: remove empty height when one card has no photo ===== */
.winterNoirLocationSection .iviLocGrid{
  align-items:start!important;
}

.winterNoirLocationSection .iviLocCard{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
}

.winterNoirLocationSection .iviLocCard:not(:has(.iviLocPhoto)){
  height:auto!important;
}

.winterNoirLocationSection .iviLocCard:not(:has(.iviLocPhoto)) .iviLocBody{
  min-height:360px!important;
  height:auto!important;
  padding-top:48px!important;
  padding-bottom:48px!important;
}

/* If there is only one location, it still occupies 100% width */
.winterNoirLocationSection .iviLocGrid:has(.iviLocCard:only-child){
  grid-template-columns:1fr!important;
}

.winterNoirLocationSection .iviLocGrid:has(.iviLocCard:only-child)
.iviLocCard:not(:has(.iviLocPhoto)) .iviLocBody{
  min-height:380px!important;
}

@media(max-width:640px){
  .winterNoirLocationSection .iviLocCard:not(:has(.iviLocPhoto)) .iviLocBody,
  .winterNoirLocationSection .iviLocGrid:has(.iviLocCard:only-child)
  .iviLocCard:not(:has(.iviLocPhoto)) .iviLocBody{
    min-height:0!important;
    padding-top:36px!important;
    padding-bottom:36px!important;
  }
}


/* =========================================================
   PROGRAM ICONS — supplied SVG set
========================================================= */

.programSection .timeCard{
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr)!important;
  align-items:center!important;
  gap:24px!important;
}

.programSection .timeIcon{
  display:grid!important;
  place-items:center!important;
  width:68px!important;
  height:68px!important;
  color:var(--ink)!important;
}

.programSection .timeIcon img{
  display:block!important;
  width:62px!important;
  height:62px!important;
  max-width:none!important;
  object-fit:contain!important;
  object-position:center!important;
  opacity:1!important;
  transition:transform .25s ease,filter .25s ease!important;
}

/* Светлые темы: иконки тёмные */
html[data-dark="0"] .programSection .timeIcon img{
  filter:brightness(0) saturate(100%)!important;
}

/* Тёмные темы: иконки белые */
html[data-dark="1"] .programSection .timeIcon img{
  filter:brightness(0) saturate(100%) invert(1)!important;
}

.programSection .timeRow:hover .timeIcon img{
  transform:scale(1.07)!important;
}

.programSection .timeContent{
  min-width:0!important;
}

.programSection .timeContent h3{
  margin:0!important;
}

.programSection .timeContent p{
  margin:8px 0 0!important;
}

@media(max-width:640px){
  .programSection .timeCard{
    grid-template-columns:1fr!important;
    justify-items:center!important;
    gap:14px!important;
  }

  .programSection .timeIcon{
    width:74px!important;
    height:74px!important;
  }

  .programSection .timeIcon img{
    width:68px!important;
    height:68px!important;
  }

  .programSection .timeContent{
    width:100%!important;
    text-align:center!important;
  }
}


/* =========================================================
   WINTER NOIR — HEARTS ONLY BACKGROUND
========================================================= */

:root{
  --wn-heart-opacity:.08;
  --wn-heart-opacity-strong:.14;
}

.story,
.programSection,
.winterNoirLocationSection,
.winterNoirDresscodeSection,
.winterNoirGallerySection,
.winterNoirDetailsSection,
.winterNoirContactsSection,
.winterNoirRsvpSection{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
}

.story::before,
.story::after,
.programSection::before,
.programSection::after,
.winterNoirLocationSection::before,
.winterNoirLocationSection::after,
.winterNoirDresscodeSection::before,
.winterNoirDresscodeSection::after,
.winterNoirGallerySection::before,
.winterNoirGallerySection::after,
.winterNoirDetailsSection::before,
.winterNoirDetailsSection::after,
.winterNoirContactsSection::before,
.winterNoirContactsSection::after,
.winterNoirRsvpSection::before,
.winterNoirRsvpSection::after{
  content:"";
  position:absolute!important;
  z-index:-1!important;
  pointer-events:none!important;
  color:var(--accent)!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  opacity:var(--wn-heart-opacity)!important;
  will-change:transform!important;
}

/* История */
.story::before{
  width:210px;height:190px;
  right:-42px;top:56px;
  background-image:url("decor/heart-outline.svg");
  animation:wnHeartFloat 12s ease-in-out infinite;
}
.story::after{
  width:170px;height:145px;
  left:-34px;bottom:38px;
  background-image:url("decor/heart-outline.svg");
  opacity:var(--wn-heart-opacity-strong)!important;
  animation:wnHeartDrift 15s ease-in-out infinite reverse;
}

/* Программа */
.programSection::before{
  width:310px;height:96px;
  right:5%;top:32px;
  background-image:url("decor/heart-small.svg");
  animation:wnHeartDrift 14s ease-in-out infinite;
}
.programSection::after{
  width:110px;height:100px;
  left:4%;bottom:44px;
  background-image:url("decor/heart-small.svg");
  animation:wnHeartFloat 11s ease-in-out infinite reverse;
}

/* Локация */
.winterNoirLocationSection::before{
  width:180px;height:165px;
  right:-28px;top:72px;
  background-image:url("decor/heart-outline.svg");
  animation:wnHeartFloat 13s ease-in-out infinite;
}
.winterNoirLocationSection::after{
  width:120px;height:110px;
  left:3%;bottom:58px;
  background-image:url("decor/heart-small.svg");
  animation:wnHeartDrift 16s ease-in-out infinite;
}

/* Дресс-код */
.winterNoirDresscodeSection::before{
  width:200px;height:184px;
  left:-54px;top:44px;
  background-image:url("decor/heart-outline.svg");
  animation:wnHeartFloat 14s ease-in-out infinite reverse;
}
.winterNoirDresscodeSection::after{
  width:280px;height:86px;
  right:4%;bottom:28px;
  background-image:url("decor/heart-small.svg");
  animation:wnHeartDrift 17s ease-in-out infinite;
}

/* Галерея */
.winterNoirGallerySection::before{
  width:155px;height:140px;
  right:-22px;top:52px;
  background-image:url("decor/heart-outline.svg");
  animation:wnHeartFloat 12s ease-in-out infinite;
}
.winterNoirGallerySection::after{
  width:110px;height:100px;
  left:3%;bottom:42px;
  background-image:url("decor/heart-small.svg");
  animation:wnHeartDrift 14s ease-in-out infinite reverse;
}

/* Детали, контакты, RSVP */
.winterNoirDetailsSection::before{
  width:190px;height:172px;
  right:-46px;top:62px;
  background-image:url("decor/heart-outline.svg");
  animation:wnHeartFloat 15s ease-in-out infinite;
}
.winterNoirContactsSection::after{
  width:300px;height:92px;
  left:50%;bottom:24px;
  transform:translateX(-50%);
  background-image:url("decor/heart-small.svg");
  animation:wnHeartPulse 6s ease-in-out infinite;
}
.winterNoirRsvpSection::before{
  width:170px;height:154px;
  left:-38px;top:82px;
  background-image:url("decor/heart-outline.svg");
  animation:wnHeartDrift 16s ease-in-out infinite;
}
.winterNoirRsvpSection::after{
  width:120px;height:110px;
  right:3%;bottom:54px;
  background-image:url("decor/heart-small.svg");
  animation:wnHeartFloat 12s ease-in-out infinite reverse;
}

/* Контент всегда выше фоновых сердечек */
.story > *,
.programSection > *,
.winterNoirLocationSection > *,
.winterNoirDresscodeSection > *,
.winterNoirGallerySection > *,
.winterNoirDetailsSection > *,
.winterNoirContactsSection > *,
.winterNoirRsvpSection > *{
  position:relative!important;
  z-index:1!important;
}

/* Плавное появление секций */
.reveal{
  opacity:0!important;
  transform:translateY(12px)!important;
  transition:
    opacity .7s cubic-bezier(.2,.7,.2,1),
    transform .7s cubic-bezier(.2,.7,.2,1)!important;
}

.reveal.is-visible,
.reveal.in-view,
.reveal[data-visible="true"]{
  opacity:1!important;
  transform:none!important;
}

/* Очень спокойные анимации сердечек */
@keyframes wnHeartFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(-1deg)}
  50%{transform:translate3d(0,-10px,0) rotate(1deg)}
}
@keyframes wnHeartDrift{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(8px,-7px,0)}
}
@keyframes wnHeartPulse{
  0%,100%{opacity:var(--wn-heart-opacity);transform:translateX(-50%) scale(1)}
  50%{opacity:var(--wn-heart-opacity-strong);transform:translateX(-50%) scale(1.03)}
}

html[data-dark="1"]{
  --wn-heart-opacity:.12;
  --wn-heart-opacity-strong:.18;
}

@media(max-width:640px){
  :root{
    --wn-heart-opacity:.055;
    --wn-heart-opacity-strong:.09;
  }

  .story::before,
  .winterNoirLocationSection::before,
  .winterNoirDresscodeSection::before,
  .winterNoirGallerySection::before,
  .winterNoirDetailsSection::before,
  .winterNoirRsvpSection::before{
    width:120px!important;
    height:110px!important;
  }

  .programSection::before,
  .winterNoirDresscodeSection::after,
  .winterNoirContactsSection::after{
    width:190px!important;
    height:58px!important;
  }

  .story::after,
  .programSection::after,
  .winterNoirLocationSection::after,
  .winterNoirGallerySection::after,
  .winterNoirRsvpSection::after{
    width:78px!important;
    height:72px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }

  .reveal{
    opacity:1!important;
    transform:none!important;
  }
}

/* ===== FINAL HEART BACKGROUND FIX ===== */
/* Полностью убираем сердца с длинными линиями. */
.programSection::before,
.winterNoirDresscodeSection::after,
.winterNoirContactsSection::after{
  display:none!important;
  content:none!important;
  background-image:none!important;
}

/* Все оставшиеся сердца находятся внутри секций и не обрезаются краями. */
.story::before{
  right:28px!important;
  top:58px!important;
  width:170px!important;
  height:154px!important;
}
.story::after{
  left:26px!important;
  bottom:34px!important;
  width:142px!important;
  height:126px!important;
}
.programSection::after{
  left:34px!important;
  bottom:38px!important;
  width:92px!important;
  height:84px!important;
}
.winterNoirLocationSection::before{
  right:30px!important;
  top:72px!important;
  width:146px!important;
  height:132px!important;
}
.winterNoirLocationSection::after{
  left:32px!important;
  bottom:52px!important;
  width:88px!important;
  height:80px!important;
}
.winterNoirDresscodeSection::before{
  left:30px!important;
  top:46px!important;
  width:156px!important;
  height:142px!important;
}
.winterNoirGallerySection::before{
  right:30px!important;
  top:54px!important;
  width:132px!important;
  height:118px!important;
}
.winterNoirGallerySection::after{
  left:34px!important;
  bottom:44px!important;
  width:88px!important;
  height:80px!important;
}
.winterNoirDetailsSection::before{
  right:30px!important;
  top:62px!important;
  width:150px!important;
  height:136px!important;
}
.winterNoirRsvpSection::before{
  left:30px!important;
  top:82px!important;
  width:142px!important;
  height:128px!important;
}
.winterNoirRsvpSection::after{
  right:32px!important;
  bottom:54px!important;
  width:92px!important;
  height:84px!important;
}

@media(max-width:640px){
  .story::before,
  .winterNoirLocationSection::before,
  .winterNoirDresscodeSection::before,
  .winterNoirGallerySection::before,
  .winterNoirDetailsSection::before,
  .winterNoirRsvpSection::before{
    width:92px!important;
    height:84px!important;
  }

  .story::before,
  .winterNoirLocationSection::before,
  .winterNoirGallerySection::before,
  .winterNoirDetailsSection::before{
    right:14px!important;
  }

  .winterNoirDresscodeSection::before,
  .winterNoirRsvpSection::before{
    left:14px!important;
  }

  .story::after,
  .programSection::after,
  .winterNoirLocationSection::after,
  .winterNoirGallerySection::after,
  .winterNoirRsvpSection::after{
    width:60px!important;
    height:56px!important;
  }

  .story::after,
  .programSection::after,
  .winterNoirLocationSection::after,
  .winterNoirGallerySection::after{
    left:14px!important;
  }

  .winterNoirRsvpSection::after{
    right:14px!important;
  }
}


/* ===== Final heart cleanup: single hearts only, fully inside sections ===== */
.programSection::before,
.winterNoirDresscodeSection::after,
.winterNoirContactsSection::after{
  content:none!important;
  display:none!important;
  background-image:none!important;
}

/* Replace every paired-heart decoration with a single contour heart. */
.story::after,
.winterNoirLocationSection::before,
.winterNoirGallerySection::before,
.winterNoirRsvpSection::before{
  background-image:url("decor/heart-outline.svg")!important;
  opacity:var(--wn-heart-opacity)!important;
}

/* Keep every remaining heart safely inside the visible area. */
.story::before{right:34px!important;top:64px!important;width:150px!important;height:138px!important}
.story::after{left:30px!important;bottom:44px!important;width:112px!important;height:104px!important}
.programSection::after{left:34px!important;bottom:46px!important;width:82px!important;height:76px!important}
.winterNoirLocationSection::before{right:32px!important;top:76px!important;width:128px!important;height:118px!important}
.winterNoirLocationSection::after{left:34px!important;bottom:60px!important;width:82px!important;height:76px!important}
.winterNoirDresscodeSection::before{left:32px!important;top:52px!important;width:136px!important;height:126px!important}
.winterNoirGallerySection::before{right:32px!important;top:58px!important;width:112px!important;height:104px!important}
.winterNoirGallerySection::after{left:34px!important;bottom:46px!important;width:78px!important;height:72px!important}
.winterNoirDetailsSection::before{right:32px!important;top:68px!important;width:126px!important;height:116px!important}
.winterNoirRsvpSection::before{left:32px!important;top:86px!important;width:116px!important;height:108px!important}
.winterNoirRsvpSection::after{right:34px!important;bottom:58px!important;width:82px!important;height:76px!important}

@media(max-width:640px){
  .story::before,
  .story::after,
  .programSection::after,
  .winterNoirLocationSection::before,
  .winterNoirLocationSection::after,
  .winterNoirDresscodeSection::before,
  .winterNoirGallerySection::before,
  .winterNoirGallerySection::after,
  .winterNoirDetailsSection::before,
  .winterNoirRsvpSection::before,
  .winterNoirRsvpSection::after{
    width:64px!important;
    height:60px!important;
  }
  .story::before,.winterNoirLocationSection::before,.winterNoirGallerySection::before,.winterNoirDetailsSection::before{right:18px!important}
  .story::after,.programSection::after,.winterNoirLocationSection::after,.winterNoirDresscodeSection::before,.winterNoirGallerySection::after,.winterNoirRsvpSection::before{left:18px!important}
  .winterNoirRsvpSection::after{right:18px!important}
}


/* =========================================================
   REMOVE ONLY TOP / BOTTOM OUTER STRIPS
   Template width and side background stay unchanged.
========================================================= */

html,
body{
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  min-height:100%!important;
}

/* Keep the existing template width exactly as designed */
.wwPage{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* No accidental space before the first or after the last section */
.wwPage > :first-child{
  margin-top:0!important;
}

.wwPage > :last-child{
  margin-bottom:0!important;
}

/* Override old responsive vertical padding only */
@media(max-width:980px){
  html,
  body{
    padding-top:0!important;
    padding-bottom:0!important;
  }
}

@media(max-width:640px){
  html,
  body{
    padding-top:0!important;
    padding-bottom:0!important;
  }
}
\n\n/* v23: do not leave decorative ghost sections when a shared block renders nothing */\n.winterNoirLocationSection:not(:has(.shell > *)),\n.winterNoirDresscodeSection:not(:has(.shell > *)),\n.winterNoirGallerySection:not(:has(.shell > *)),\n.winterNoirDetailsSection:not(:has(.shell > *)),\n.winterNoirRsvpSection:not(:has(.shell > *)),\n.winterNoirContactsSection:empty {\n  display:none!important;\n  min-height:0!important;\n  padding:0!important;\n  margin:0!important;\n  border:0!important;\n}\n