@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');
:root{--bg:#f4ead8;--paper:#fff;--ink:#163c4a;--muted:#5d747d;--accent:#d27d52;--soft:#8db8ba;--line:color-mix(in srgb,var(--ink) 20%,transparent);--radius:80px 0;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,Arial,sans-serif;overflow-x:hidden}.page{max-width:1440px;margin:auto;overflow:hidden;background:var(--bg);box-shadow:0 0 80px #0002}.shell{width:min(var(--max),calc(100% - 40px));margin:auto}a{color:inherit}.rivNav{position:fixed;z-index:50;top:18px;left:50%;transform:translateX(-50%);display:flex;gap:6px;padding:7px;background:color-mix(in srgb,var(--bg) 78%,transparent);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);backdrop-filter:blur(18px);border-radius:999px}.rivNav a{text-decoration:none;font-size:12px;padding:9px 12px;border-radius:999px}.rivNav a:hover{background:var(--ink);color:var(--bg)}
.hero{position:relative;isolation:isolate;min-height:100svh;display:grid;align-items:center;padding:96px 0 64px;overflow:hidden;background-color:var(--paper)}.hero--image{background-image:linear-gradient(90deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.02) 42%,rgba(0,0,0,.14) 100%),var(--hero-image);background-position:center,32% center;background-size:cover,cover;background-repeat:no-repeat}.heroCard{width:min(720px,54vw);max-width:none;margin-left:auto;margin-right:0;padding:clamp(30px,4vw,54px);background:color-mix(in srgb,var(--paper) 88%,transparent);color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);transform:rotate(-1deg);backdrop-filter:blur(8px)}.eyebrow,.sectionHeader small,.sectionKickerInline{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:700;color:var(--accent)}.heroNames{font-family:'Cormorant Garamond',serif;font-size:clamp(70px,8.1vw,126px);font-weight:500;line-height:.76;letter-spacing:-.055em;margin:14px 0 26px;text-wrap:balance}.heroNames span{font-style:italic;font-size:.65em}.heroSubtitle{max-width:620px;margin:-4px 0 20px;font-size:clamp(16px,1.6vw,20px);line-height:1.5;color:var(--muted)}.heroMeta{display:flex;flex-wrap:wrap;gap:14px 28px;font-size:13px;text-transform:uppercase;letter-spacing:.11em}html[data-dark="1"] .hero--image{background-image:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,.05) 44%,rgba(0,0,0,.34)),var(--hero-image)}html[data-dark="1"] .heroCard{background:color-mix(in srgb,var(--paper) 84%,transparent)}
.dateBand,.countdownSection,.story,.programSection,.placeSection,.dresscodeSection,.gallerySection,.rsvpSection,.contactsSection{padding:96px 0;position:relative;border-left:18px solid var(--accent)}.dateBand{padding:0;background:var(--paper)}.dateBandInner{padding:28px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.dateBandLine{display:none}.dateBandCenter{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.12em}.sectionHeader h2,.storyText h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(44px,7vw,86px);line-height:.9;margin:10px 0 38px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cdItem{padding:28px 10px;text-align:center;border-right:1px solid var(--line)}.cdItem:last-child{border-right:0}.cdItem strong{display:block;font:500 clamp(38px,7vw,78px)/1 'Cormorant Garamond'}.cdItem span{font-size:11px;text-transform:uppercase;letter-spacing:.18em}
.story{background:var(--bg)}.storyLayout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,7vw,100px);align-items:center}.storyLayout--text-only{grid-template-columns:1fr}.storyPhoto{min-height:560px;border-radius:var(--radius);overflow:hidden}.storyPhoto img{width:100%;height:100%;object-fit:cover;min-height:560px}.storyText>img{display:none}.storyText p{font-size:clamp(17px,2vw,22px);line-height:1.7;color:var(--muted)}
.programSection{background:var(--bg)}.timeline{display:grid}.timeRow{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:25px 0;border-top:1px solid var(--line)}.timeMark{font:500 35px/1 'Cormorant Garamond';color:var(--accent)}.timeCard{background:none!important;border:0!important;padding:0!important;box-shadow:none!important}.timeCard img{display:none}.timeCard h3{margin:0 0 8px;font-size:20px}.timeCard p{margin:0;color:var(--muted);line-height:1.6}
.placeSection,.dresscodeSection{background:var(--paper)}.sharedBlock{border:0!important;background:transparent!important;box-shadow:none!important}.sharedBlock--location{border:1px solid var(--line)!important;border-radius:var(--radius)!important;overflow:hidden;padding:0!important}.sharedBlock--location .location-grid,.sharedBlock--location .locations-grid{gap:0!important}.sharedBlock--location .location-card,.sharedBlock--location article{border-radius:0!important;border:0!important;box-shadow:none!important;background:var(--paper)!important}
/* Боевой dresscode block превращаем в лепестки */
.sharedBlock--dresscode .dresscode-colors,.sharedBlock--dresscode .dc-colors,.sharedBlock--dresscode [class*="palette"]{display:flex!important;align-items:flex-end!important;gap:12px!important;flex-wrap:wrap!important;margin:34px 0 18px!important;padding:18px 0 6px!important}.sharedBlock--dresscode .dresscode-color,.sharedBlock--dresscode .dc-color,.sharedBlock--dresscode [class*="color-item"],.sharedBlock--dresscode [style*="background-color"]{position:relative!important;display:block!important;width:72px!important;height:112px!important;min-width:72px!important;border-radius:999px 999px 22px 22px!important;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent)!important;box-shadow:0 18px 34px #00000016,inset 0 1px 0 #ffffff80!important;overflow:hidden!important;transform-origin:50% 100%!important}.sharedBlock--dresscode .dresscode-color:nth-child(1),.sharedBlock--dresscode .dc-color:nth-child(1){transform:rotate(-8deg) translateY(6px)}.sharedBlock--dresscode .dresscode-color:nth-child(2),.sharedBlock--dresscode .dc-color:nth-child(2){transform:rotate(-3deg) translateY(-3px)}.sharedBlock--dresscode .dresscode-color:nth-child(3),.sharedBlock--dresscode .dc-color:nth-child(3){transform:rotate(2deg) translateY(2px)}.sharedBlock--dresscode .dresscode-color:nth-child(4),.sharedBlock--dresscode .dc-color:nth-child(4){transform:rotate(6deg) translateY(-5px)}.sharedBlock--dresscode .dresscode-color:nth-child(5),.sharedBlock--dresscode .dc-color:nth-child(5){transform:rotate(10deg) translateY(5px)}
.gallerySection{background:var(--bg)}.sharedBlock--gallery img{border-radius:var(--radius)!important}.rsvpSection{background:var(--bg)}.rsvpCard{max-width:900px}.rsvpCard,.rsvpCard .form{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}.rsvpCard input,.rsvpCard select,.rsvpCard textarea{border:1px solid var(--line)!important;background:var(--paper)!important;border-radius:12px!important}.rsvpCard button{background:var(--ink)!important;color:var(--bg)!important;border-radius:999px!important}.footer{padding:50px 20px;border-top:1px solid var(--line);text-align:center;background:var(--bg)}
.reveal{opacity:1!important;transform:none!important}.iviImgPh{min-height:390px;background:color-mix(in srgb,var(--paper) 80%,var(--soft));display:grid;place-items:center;border-radius:var(--radius)}
@media(max-width:760px){.rivNav{display:none}.shell{width:min(100% - 24px,var(--max))}.dateBand,.countdownSection,.story,.programSection,.placeSection,.dresscodeSection,.gallerySection,.rsvpSection,.contactsSection{padding:68px 0;border-left-width:9px}.hero{min-height:auto;display:block;padding:132vw 0 18px;background-color:var(--paper)}.hero--image{background-image:linear-gradient(180deg,transparent 0%,transparent 78%,color-mix(in srgb,var(--paper) 82%,transparent) 100%),var(--hero-image);background-position:center top,center top;background-size:100% auto,100% auto;background-repeat:no-repeat}.heroCard{width:calc(100% - 24px);margin:-28px 12px 0;padding:24px 20px;transform:none}.heroNames{font-size:clamp(54px,17vw,82px);line-height:.78}.heroSubtitle{font-size:15px;margin-bottom:18px}.heroMeta{gap:10px 18px;font-size:11px}.storyLayout{grid-template-columns:1fr}.storyPhoto,.storyPhoto img{min-height:390px}.timeRow{grid-template-columns:80px 1fr;gap:14px}.cdItem{padding:20px 4px}.cdItem strong{font-size:42px}.sharedBlock--dresscode .dresscode-color,.sharedBlock--dresscode .dc-color,.sharedBlock--dresscode [class*="color-item"],.sharedBlock--dresscode [style*="background-color"]{width:54px!important;height:88px!important;min-width:54px!important;border-radius:999px 999px 17px 17px!important}}

/* Riviera production fixes */
.hero--empty{background:linear-gradient(135deg,color-mix(in srgb,var(--soft) 18%,var(--paper)),var(--paper) 55%,color-mix(in srgb,var(--accent) 10%,var(--paper)))}
.heroPlaceholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:8px;color:var(--muted);padding:32px;z-index:-1}
.heroPlaceholder:before{content:'';position:absolute;inset:32px;border:1px dashed color-mix(in srgb,var(--ink) 22%,transparent);border-radius:var(--radius)}
.heroPlaceholderIcon{font:500 62px/1 'Cormorant Garamond',serif;color:var(--accent)}
.heroPlaceholder strong{font:500 clamp(28px,4vw,48px)/1 'Cormorant Garamond',serif;color:var(--ink)}
.heroPlaceholder small{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.hero--empty .heroCard{background:color-mix(in srgb,var(--paper) 88%,transparent);box-shadow:0 24px 70px #00000012}

.storyPhoto{background:color-mix(in srgb,var(--paper) 82%,var(--soft));display:grid;min-width:0}
.storyPhoto>.iviImgPh{width:100%;height:100%;min-height:560px;border-radius:var(--radius)}
.iviImgPhInner{text-align:center;padding:24px;color:var(--muted)}
.iviImgPhIcon{font:500 56px/1 'Cormorant Garamond',serif;color:var(--accent);margin-bottom:10px}
.iviImgPhTxt{font-size:14px;text-transform:uppercase;letter-spacing:.14em}

.dresscodeLayout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(32px,7vw,96px);align-items:center}
.dresscodeCopy h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(44px,7vw,86px);line-height:.9;margin:10px 0 28px}
.dresscodeLead{font-size:clamp(17px,2vw,22px);line-height:1.7;color:var(--muted);max-width:760px}
.rivPalette{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:34px 0 0;padding:18px 0 10px}
.rivPalette i{position:relative;display:block;width:72px;height:112px;min-width:72px;border-radius:999px 999px 22px 22px;background:var(--swatch);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);box-shadow:0 18px 34px #00000016,inset 0 1px 0 #ffffff80;transform-origin:50% 100%;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}
.rivPalette i:before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#fff7 0%,transparent 34%,#0000000d 100%),repeating-linear-gradient(115deg,transparent 0 5px,#fff2 6px 7px);mix-blend-mode:soft-light}
.rivPalette i:after{content:'';position:absolute;left:50%;bottom:10px;width:22px;height:3px;border-radius:99px;background:color-mix(in srgb,var(--ink) 28%,transparent);transform:translateX(-50%)}
.rivPalette i:nth-child(1){transform:rotate(-8deg) translateY(6px)}
.rivPalette i:nth-child(2){transform:rotate(-3deg) translateY(-3px)}
.rivPalette i:nth-child(3){transform:rotate(2deg) translateY(2px)}
.rivPalette i:nth-child(4){transform:rotate(6deg) translateY(-5px)}
.rivPalette i:nth-child(5){transform:rotate(10deg) translateY(5px)}
.rivPalette i:nth-child(n+6){transform:rotate(-2deg) translateY(2px)}
.rivPalette i:hover{transform:translateY(-10px) rotate(0);box-shadow:0 24px 44px #00000022,inset 0 1px 0 #ffffff99}
.dresscodeNote{padding:clamp(28px,5vw,52px);border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--paper) 88%,transparent)}
.dresscodeNote span{display:block;margin-bottom:18px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.dresscodeNote h3{font:500 clamp(28px,4vw,46px)/1.02 'Cormorant Garamond',serif;margin:0 0 16px}
.dresscodeNote p{margin:0;color:var(--muted);line-height:1.7}

.galleryPlaceholderGrid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:240px 240px;gap:12px}
.galleryPlaceholder{display:grid;place-content:center;text-align:center;gap:7px;padding:24px;border:1px dashed color-mix(in srgb,var(--ink) 22%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--paper) 75%,var(--soft));color:var(--muted);min-width:0}
.galleryPlaceholder:first-child{grid-row:1/3}
.galleryPlaceholder span{font:500 42px/1 'Cormorant Garamond',serif;color:var(--accent)}
.galleryPlaceholder strong{font:500 28px/1 'Cormorant Garamond',serif;color:var(--ink)}
.galleryPlaceholder small{font-size:11px;letter-spacing:.12em;text-transform:uppercase}

.sharedBlock--location img{display:block;max-width:100%;height:auto}
.sharedBlock--gallery img{display:block;width:100%;height:100%;object-fit:cover}

@media(max-width:760px){
  .heroPlaceholder:before{inset:14px}
  .heroPlaceholder{padding:24px}
  .storyPhoto>.iviImgPh{min-height:390px}
  .dresscodeLayout{grid-template-columns:1fr}
  .rivPalette{gap:9px}
  .rivPalette i{width:54px;height:88px;min-width:54px;border-radius:999px 999px 17px 17px}
  .galleryPlaceholderGrid{grid-template-columns:1fr 1fr;grid-template-rows:260px 180px 180px}
  .galleryPlaceholder:first-child{grid-column:1/-1;grid-row:auto}
  .galleryPlaceholder strong{font-size:23px}
}

/* =========================================================
   Shared production blocks: exact classes from /views/blocks
========================================================= */
.sharedBlock--gallery .iviGallery,
.sharedBlock--location .iviLoc{width:100%;margin:0;padding:0;background:transparent;color:inherit}

/* Gallery */
.sharedBlock--gallery .iviGalleryGrid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:240px 240px;gap:12px;width:100%}
.sharedBlock--gallery .iviGalleryItem{position:relative;display:block;min-width:0;min-height:0;overflow:hidden;border-radius:var(--radius);background:color-mix(in srgb,var(--paper) 78%,var(--soft));text-decoration:none;box-shadow:none}
.sharedBlock--gallery .iviGalleryItem:first-child{grid-row:1/3}
.sharedBlock--gallery .iviGalleryItem img{display:block;width:100%;height:100%;min-height:100%;object-fit:cover;transition:transform .45s ease}
.sharedBlock--gallery .iviGalleryItem:hover img{transform:scale(1.025)}
.sharedBlock--gallery .iviGalleryCaption{position:absolute;left:14px;right:14px;bottom:14px;margin:0;padding:9px 12px;border-radius:999px;background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(12px);font-size:12px;color:var(--ink)}
.sharedBlock--gallery .iviGalleryHead{margin-bottom:28px}.sharedBlock--gallery .iviGalleryKicker{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:700;color:var(--accent)}
.sharedBlock--gallery .iviGalleryTitle{font:500 clamp(44px,7vw,86px)/.9 'Cormorant Garamond',serif;margin:10px 0 18px}.sharedBlock--gallery .iviGallerySubtitle{color:var(--muted);line-height:1.7}
.sharedBlock--gallery .iviGalleryGrid--masonry{grid-template-rows:280px 210px}

/* Location */
.sharedBlock--location{border:0!important;border-radius:0!important;overflow:visible!important}
.sharedBlock--location .iviLocGrid{display:grid;grid-template-columns:repeat(var(--loc-cols,2),minmax(0,1fr));gap:16px}
.sharedBlock--location .iviLocGrid:has(.iviLocCard:only-child){--loc-cols:1}
.sharedBlock--location .iviLocCard{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);min-height:470px;overflow:hidden;border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:var(--paper)!important;box-shadow:none!important}
.sharedBlock--location .iviLocGrid>.iviLocCard:only-child{grid-column:1/-1}
.sharedBlock--location .iviLocPhoto{min-height:350px;overflow:hidden;background:color-mix(in srgb,var(--paper) 75%,var(--soft))}
.sharedBlock--location .iviLocPhoto img{display:block;width:100%;height:100%;min-height:470px;object-fit:cover}
.sharedBlock--location .iviLocBody{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,64px);min-width:0}
.sharedBlock--location .iviLocBadge{width:max-content;margin-bottom:20px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.sharedBlock--location .iviLocName{font:500 clamp(34px,4vw,58px)/.98 'Cormorant Garamond',serif;margin-bottom:18px}
.sharedBlock--location .iviLocAddr{font-size:clamp(16px,1.6vw,20px);line-height:1.55;color:var(--ink);margin-bottom:12px}
.sharedBlock--location .iviLocNote{line-height:1.7;color:var(--muted);margin-top:8px}
.sharedBlock--location .iviLocActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.sharedBlock--location .iviBtn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border-radius:999px;text-decoration:none;font-size:13px;font-weight:700;transition:.25s ease}
.sharedBlock--location .iviBtnPrimary{background:var(--ink);border:1px solid var(--ink);color:var(--paper)}
.sharedBlock--location .iviBtnGhost{background:transparent;border:1px solid var(--ink);color:var(--ink)}

/* Shared dress-code block, if it is rendered by another integration path */
.iviDress{padding:0;margin:0;background:transparent;color:inherit}.iviDressWrap{width:100%}.iviDressKicker{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:700;color:var(--accent)}
.iviDressTitle{font:500 clamp(44px,7vw,86px)/.9 'Cormorant Garamond',serif;margin:10px 0 24px}.iviDressText{max-width:760px;font-size:clamp(17px,2vw,22px);line-height:1.7;color:var(--muted)}
.iviDressSwatches{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:34px 0 20px;padding:18px 0 10px}
.iviDressDot{position:relative;display:block;width:72px;height:112px;min-width:72px;border-radius:999px 999px 22px 22px;background:var(--c);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);box-shadow:0 18px 34px #00000016,inset 0 1px 0 #ffffff80;overflow:hidden;transform-origin:50% 100%}
.iviDressDot:before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#fff7 0%,transparent 34%,#0000000d 100%),repeating-linear-gradient(115deg,transparent 0 5px,#fff2 6px 7px);mix-blend-mode:soft-light}.iviDressDot:after{content:'';position:absolute;left:50%;bottom:10px;width:22px;height:3px;border-radius:99px;background:color-mix(in srgb,var(--ink) 28%,transparent);transform:translateX(-50%)}
.iviDressDot:nth-child(1){transform:rotate(-8deg) translateY(6px)}.iviDressDot:nth-child(2){transform:rotate(-3deg) translateY(-3px)}.iviDressDot:nth-child(3){transform:rotate(2deg) translateY(2px)}.iviDressDot:nth-child(4){transform:rotate(6deg) translateY(-5px)}.iviDressDot:nth-child(5){transform:rotate(10deg) translateY(5px)}


@media(max-width:900px){
 .sharedBlock--location .iviLocGrid{grid-template-columns:1fr}
 .sharedBlock--location .iviLocCard{grid-template-columns:1fr;min-height:0}
 .sharedBlock--location .iviLocPhoto img{min-height:360px;max-height:520px}
}
@media(max-width:760px){
 .sharedBlock--gallery .iviGalleryGrid{grid-template-columns:1fr 1fr;grid-template-rows:260px 180px 180px}
 .sharedBlock--gallery .iviGalleryItem:first-child{grid-column:1/-1;grid-row:auto}
 .sharedBlock--location .iviLocBody{padding:28px 22px 32px}
 .sharedBlock--location .iviLocPhoto img{min-height:300px}
 .iviDressSwatches{gap:9px}.iviDressDot{width:54px;height:88px;min-width:54px;border-radius:999px 999px 17px 17px}
}

/* =========================================================
   Riviera location composition v4
   Two editorial cards: image + copy, matching the reference.
========================================================= */
.placeSection .sectionHeader{margin-bottom:38px}
.placeSection .sectionHeader small{display:block;margin-bottom:14px;color:var(--ink)}
.placeSection .sectionHeader h2{max-width:1100px;font-size:clamp(52px,7.4vw,104px);line-height:.88;letter-spacing:-.035em;margin:0}

.sharedBlock--location .iviLocGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.sharedBlock--location .iviLocCard{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  min-height:560px!important;
  overflow:hidden!important;
  border:1px solid var(--line)!important;
  border-radius:80px 0 80px 0!important;
  background:var(--paper)!important;
}
.sharedBlock--location .iviLocPhoto{
  min-height:560px!important;
  height:100%;
  overflow:hidden;
  background:color-mix(in srgb,var(--paper) 74%,var(--soft));
}
.sharedBlock--location .iviLocPhoto img{
  width:100%!important;
  height:100%!important;
  min-height:560px!important;
  object-fit:cover!important;
  object-position:center!important;
}
.sharedBlock--location .iviLocBody{
  display:flex!important;
  flex-direction:column;
  justify-content:center!important;
  align-items:flex-start;
  min-width:0;
  padding:clamp(30px,3.4vw,52px)!important;
}
.sharedBlock--location .iviLocBadge{
  display:inline-flex;
  width:auto;
  margin:0 0 28px;
  padding:8px 13px;
  border:1px solid var(--line);
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.sharedBlock--location .iviLocName{
  margin:0 0 22px;
  font:500 clamp(38px,4.1vw,62px)/.92 'Cormorant Garamond',serif;
  letter-spacing:-.025em;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.sharedBlock--location .iviLocAddr{
  margin:0 0 12px;
  font-size:clamp(17px,1.5vw,21px);
  line-height:1.48;
  color:var(--ink);
}
.sharedBlock--location .iviLocNote{
  margin:14px 0 0;
  font-size:16px;
  line-height:1.65;
  color:var(--muted);
}
.sharedBlock--location .iviLocActions{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  margin-top:28px;
}
.sharedBlock--location .iviBtn{
  min-height:46px;
  padding:12px 19px;
  white-space:nowrap;
}
.sharedBlock--location .iviLocCard:not(:has(.iviLocPhoto)){
  grid-template-columns:1fr!important;
}
.sharedBlock--location .iviLocCard:not(:has(.iviLocPhoto)) .iviLocBody{
  min-height:560px;
}

@media(max-width:1100px){
  .sharedBlock--location .iviLocGrid{grid-template-columns:1fr}
  .sharedBlock--location .iviLocCard{min-height:500px!important}
  .sharedBlock--location .iviLocPhoto,.sharedBlock--location .iviLocPhoto img{min-height:500px!important}
}
@media(max-width:700px){
  .placeSection .sectionHeader h2{font-size:clamp(46px,15vw,72px)}
  .sharedBlock--location .iviLocCard{
    grid-template-columns:1fr!important;
    min-height:0!important;
    border-radius:48px 0 48px 0!important;
  }
  .sharedBlock--location .iviLocPhoto,.sharedBlock--location .iviLocPhoto img{
    min-height:340px!important;
    max-height:430px;
  }
  .sharedBlock--location .iviLocBody{padding:30px 24px 36px!important}
  .sharedBlock--location .iviLocName{font-size:clamp(38px,12vw,54px)}
  .sharedBlock--location .iviLocActions{width:100%}
  .sharedBlock--location .iviBtn{width:100%}
}

/* =========================================================
   Riviera location composition v6
   Template-owned markup to prevent shared-block field collisions.
========================================================= */
.shell--location{width:min(1380px,calc(100% - 48px))}
.placeSection .sectionHeader{margin-bottom:42px}
.placeSection .sectionHeader h2{margin:8px 0 18px;max-width:none;font-size:clamp(54px,7.2vw,102px);line-height:.9;overflow-wrap:normal;word-break:normal}
.locationIntro{max-width:760px;margin:0;color:var(--muted);font-size:clamp(16px,1.5vw,20px);line-height:1.65}
.rivLocGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.rivLocCard{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);min-width:0;min-height:620px;overflow:hidden;border:1px solid var(--line);border-radius:80px 0 80px 0;background:var(--paper)}
.rivLocPhoto{min-width:0;min-height:620px;overflow:hidden;background:color-mix(in srgb,var(--paper) 72%,var(--soft))}
.rivLocPhoto>img{display:block;width:100%;height:100%;min-height:620px;object-fit:cover;object-position:center}
.rivLocPhoto .iviImgPh{height:100%;min-height:620px}
.rivLocBody{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(30px,3.2vw,52px)}
.rivLocBadge{display:inline-flex;margin-bottom:28px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.rivLocBody h3{max-width:100%;margin:0 0 24px;font:500 clamp(34px,3.15vw,54px)/.98 'Cormorant Garamond',serif;letter-spacing:-.02em;word-break:normal;overflow-wrap:break-word;hyphens:none}
.rivLocAddress{margin:0 0 14px;color:var(--ink);font-size:clamp(17px,1.35vw,20px);line-height:1.5}
.rivLocNote{margin:10px 0 0;color:var(--muted);font-size:16px;line-height:1.65}
.rivLocActions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:28px}
.rivLocBtn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 19px;border:1px solid var(--ink);border-radius:999px;color:var(--ink);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
.rivLocBtn--primary{background:var(--ink);color:var(--paper)}

/* Timer is a full, visible section directly below the hero/date band. */
.countdownSection{display:block;background:var(--paper)}
.countdownSection .sectionHeader{margin-bottom:28px}

@media(max-width:1180px){
  .rivLocGrid{grid-template-columns:1fr}
  .rivLocCard{grid-template-columns:minmax(0,1fr) minmax(340px,.8fr)}
}
@media(max-width:760px){
  .shell--location{width:min(100% - 24px,1380px)}
  .placeSection .sectionHeader h2{font-size:clamp(46px,15vw,72px)}
  .rivLocCard{grid-template-columns:1fr;min-height:0;border-radius:48px 0 48px 0}
  .rivLocPhoto,.rivLocPhoto>img,.rivLocPhoto .iviImgPh{min-height:360px;max-height:460px}
  .rivLocBody{padding:30px 24px 36px}
  .rivLocBody h3{font-size:clamp(38px,12vw,54px)}
  .rivLocActions,.rivLocBtn{width:100%}
}

/* =========================================================
   Riviera RSVP v11: full-width, no side stripe/card shell,
   options shown as checkbox-style selectors.
========================================================= */
.rsvpSection{
  border-left:0!important;
  background:var(--bg)!important;
  padding-left:0!important;
  padding-right:0!important;
}
.rsvpSection>.shell{
  width:min(var(--max),calc(100% - 40px))!important;
}
.rsvpSection .rsvpCard{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.rsvpSection .rsvpCard>.form,
.rsvpSection #rsvp,
.rsvpSection .rsvp,
.rsvpSection .iviRsvp,
.rsvpSection .rsvpBox,
.rsvpSection .rsvpForm,
.rsvpSection .rsvpFormCard,
.rsvpSection form{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.rsvpSection .rsvpCard>.form,
.rsvpSection .rsvp,
.rsvpSection .iviRsvp,
.rsvpSection .rsvpBox,
.rsvpSection .rsvpForm,
.rsvpSection .rsvpFormCard{
  padding:0!important;
}
.rsvpSection form{
  padding:0!important;
  display:grid!important;
  gap:22px!important;
}
.rsvpSection .rsvpTitle,
.rsvpSection .iviRsvpTitle,
.rsvpSection h1,
.rsvpSection h2{
  max-width:1000px;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}
.rsvpSection .rsvpHint,
.rsvpSection .iviRsvpHint{
  max-width:820px;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}
.rsvpSection .row2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
.rsvpSection input[type="text"],
.rsvpSection input[type="email"],
.rsvpSection input[type="tel"],
.rsvpSection input[type="number"],
.rsvpSection select,
.rsvpSection textarea{
  width:100%!important;
  background:var(--paper)!important;
  border:1px solid var(--line)!important;
  box-shadow:none!important;
}

/* Attendance/menu/drink choices: preserve radio logic, show square checks. */
.rsvpSection .chips,
.rsvpSection .rsvpOptions,
.rsvpSection .rsvpChoices,
.rsvpSection .iviRsvpOptions,
.rsvpSection .iviRsvpChoices,
.rsvpSection .guestOptions,
.rsvpSection .drinkOptions,
.rsvpSection .foodOptions,
.rsvpSection .menuOptions,
.rsvpSection .rsvpGroup,
.rsvpSection .iviRsvpGroup,
.rsvpSection .options,
.rsvpSection .choices{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  width:100%!important;
}
.rsvpSection label:has(input[type="radio"]),
.rsvpSection label:has(input[type="checkbox"]){
  position:relative!important;
  min-height:58px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  width:100%!important;
  margin:0!important;
  padding:14px 18px!important;
  border:1px solid var(--line)!important;
  border-radius:14px!important;
  background:transparent!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  cursor:pointer!important;
  font:600 14px/1.35 Manrope,Arial,sans-serif!important;
  text-transform:none!important;
  letter-spacing:0!important;
  transition:border-color .2s ease,background .2s ease,transform .2s ease!important;
}
.rsvpSection label:has(input[type="radio"]):hover,
.rsvpSection label:has(input[type="checkbox"]):hover{
  transform:translateY(-1px);
  border-color:var(--ink)!important;
}
.rsvpSection label:has(input[type="radio"]):has(input:checked),
.rsvpSection label:has(input[type="checkbox"]):has(input:checked){
  background:color-mix(in srgb,var(--accent) 11%,transparent)!important;
  border-color:var(--accent)!important;
}
.rsvpSection label:has(input[type="radio"]) input,
.rsvpSection label:has(input[type="checkbox"]) input{
  appearance:none!important;
  -webkit-appearance:none!important;
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  min-height:20px!important;
  margin:0!important;
  padding:0!important;
  border:1.5px solid color-mix(in srgb,var(--ink) 45%,transparent)!important;
  border-radius:4px!important;
  background:var(--paper)!important;
  box-shadow:none!important;
  display:grid!important;
  place-items:center!important;
}
.rsvpSection label:has(input[type="radio"]) input:checked,
.rsvpSection label:has(input[type="checkbox"]) input:checked{
  border-color:var(--accent)!important;
  background:var(--accent)!important;
}
.rsvpSection label:has(input[type="radio"]) input:checked:after,
.rsvpSection label:has(input[type="checkbox"]) input:checked:after{
  content:'';
  width:8px;
  height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) translateY(-1px);
}
.rsvpSection button[type="submit"],
.rsvpSection input[type="submit"]{
  width:100%!important;
  min-height:58px!important;
  border-radius:999px!important;
  background:var(--ink)!important;
  color:var(--paper)!important;
  border:1px solid var(--ink)!important;
}

@media(max-width:760px){
  .rsvpSection>.shell{width:min(100% - 24px,var(--max))!important}
  .rsvpSection .row2{grid-template-columns:1fr!important}
  .rsvpSection .chips,
  .rsvpSection .rsvpOptions,
  .rsvpSection .rsvpChoices,
  .rsvpSection .iviRsvpOptions,
  .rsvpSection .iviRsvpChoices,
  .rsvpSection .guestOptions,
  .rsvpSection .drinkOptions,
  .rsvpSection .foodOptions,
  .rsvpSection .menuOptions,
  .rsvpSection .rsvpGroup,
  .rsvpSection .iviRsvpGroup,
  .rsvpSection .options,
  .rsvpSection .choices{grid-template-columns:1fr!important}
}


/* =========================================================
   Riviera RSVP v12
   Hard override for the shared RSVP block with embedded styles.
========================================================= */
.rivieraRsvpSection{
  position:relative;
  width:100%;
  padding:96px 0;
  border-left:18px solid var(--accent);
  background:var(--bg);
}
.rivieraRsvpSection>.shell{
  width:min(var(--max),calc(100% - 40px));
  margin-inline:auto;
}
.rivieraRsvpSection .rsvpCard,
.rivieraRsvpSection .rsvpCard>.form{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.rivieraRsvpSection .rsvpSection{
  width:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--ink)!important;
}
.rivieraRsvpSection .rsvpSectionHead{
  width:100%!important;
  max-width:none!important;
  margin:0 0 48px!important;
  text-align:left!important;
}
.rivieraRsvpSection .rsvpLabel{
  margin:0 0 18px!important;
  border-color:var(--line)!important;
  color:var(--accent)!important;
  background:transparent!important;
}
.rivieraRsvpSection .rsvpSectionHead h2{
  max-width:1050px!important;
  margin:0 0 22px!important;
  color:var(--ink)!important;
  font:500 clamp(44px,7vw,86px)/.92 'Cormorant Garamond',serif!important;
  letter-spacing:-.035em!important;
  text-align:left!important;
}
.rivieraRsvpSection .rsvpHint{
  width:min(820px,100%)!important;
  max-width:none!important;
  margin:0!important;
  color:var(--muted)!important;
  font-size:clamp(17px,1.8vw,21px)!important;
  line-height:1.65!important;
  text-align:left!important;
}
.rivieraRsvpSection .rsvpGrid,
.rivieraRsvpSection .rsvpFormCard,
.rivieraRsvpSection #rsvpForm{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.rivieraRsvpSection .rsvpFormCard{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.rivieraRsvpSection #rsvpForm{
  display:grid!important;
  gap:28px!important;
  padding:0!important;
  background:transparent!important;
}
.rivieraRsvpSection .row2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}
.rivieraRsvpSection .formRow{
  gap:11px!important;
}
.rivieraRsvpSection .label{
  color:var(--ink)!important;
  font:600 14px/1.35 Manrope,Arial,sans-serif!important;
}
.rivieraRsvpSection .field,
.rivieraRsvpSection input.field,
.rivieraRsvpSection textarea.field,
.rivieraRsvpSection select.field{
  width:100%!important;
  min-height:58px!important;
  padding:15px 18px!important;
  border:1px solid var(--line)!important;
  border-radius:14px!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
  box-shadow:none!important;
}
.rivieraRsvpSection textarea.field{
  min-height:140px!important;
  resize:vertical!important;
}
.rivieraRsvpSection .chips{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  width:100%!important;
}
.rivieraRsvpSection .chip{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:12px!important;
  width:100%!important;
  min-height:58px!important;
  margin:0!important;
  padding:14px 18px!important;
  border:1px solid var(--line)!important;
  border-radius:14px!important;
  background:transparent!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  font:600 14px/1.35 Manrope,Arial,sans-serif!important;
  text-align:left!important;
  transform:none!important;
}
.rivieraRsvpSection .chip::before{
  content:'';
  flex:0 0 20px;
  width:20px;
  height:20px;
  border:1.5px solid color-mix(in srgb,var(--ink) 42%,transparent);
  border-radius:4px;
  background:var(--paper);
  box-sizing:border-box;
}
.rivieraRsvpSection .chip::after{
  content:'';
  position:absolute;
  left:24px;
  top:50%;
  width:8px;
  height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  opacity:0;
  transform:translateY(-65%) rotate(-45deg);
}
.rivieraRsvpSection .chip:hover{
  border-color:var(--ink)!important;
  background:color-mix(in srgb,var(--paper) 60%,transparent)!important;
}
.rivieraRsvpSection .chip[data-active="true"],
.rivieraRsvpSection .chip.is-active,
.rivieraRsvpSection .chip.active{
  border-color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 10%,transparent)!important;
  color:var(--ink)!important;
}
.rivieraRsvpSection .chip[data-active="true"]::before,
.rivieraRsvpSection .chip.is-active::before,
.rivieraRsvpSection .chip.active::before{
  border-color:var(--accent);
  background:var(--accent);
}
.rivieraRsvpSection .chip[data-active="true"]::after,
.rivieraRsvpSection .chip.is-active::after,
.rivieraRsvpSection .chip.active::after{
  opacity:1;
}
.rivieraRsvpSection .rsvpTotal{
  color:var(--ink)!important;
  border-color:var(--line)!important;
  background:transparent!important;
}
.rivieraRsvpSection .consent{
  padding:18px!important;
  border:1px solid var(--line)!important;
  border-radius:14px!important;
  background:transparent!important;
  color:var(--ink)!important;
  box-shadow:none!important;
}
.rivieraRsvpSection .consent input{
  accent-color:var(--accent)!important;
}
.rivieraRsvpSection .btn.btn-full,
.rivieraRsvpSection #rsvpForm button[type="submit"]{
  width:100%!important;
  min-height:60px!important;
  margin:0!important;
  border:1px solid var(--ink)!important;
  border-radius:999px!important;
  background:var(--ink)!important;
  color:var(--paper)!important;
  box-shadow:none!important;
}
.rivieraRsvpSection .btn.btn-full:hover,
.rivieraRsvpSection #rsvpForm button[type="submit"]:hover{
  transform:translateY(-1px)!important;
  filter:none!important;
}

@media(max-width:760px){
  .rivieraRsvpSection{
    padding:68px 0;
    border-left-width:9px;
  }
  .rivieraRsvpSection>.shell{
    width:min(100% - 24px,var(--max));
  }
  .rivieraRsvpSection .rsvpSectionHead{
    margin-bottom:34px!important;
  }
  .rivieraRsvpSection .rsvpSectionHead h2{
    font-size:clamp(40px,12vw,58px)!important;
  }
  .rivieraRsvpSection .row2,
  .rivieraRsvpSection .chips{
    grid-template-columns:1fr!important;
  }
}

/* =========================================================
   Riviera contacts v13
   Strong override for /views/blocks/contacts.php embedded CSS.
========================================================= */
.rivieraContactsSection{
  position:relative;
  width:100%;
  border-left:18px solid var(--accent);
  background:var(--bg);
  color:var(--ink);
}
.rivieraContactsSection>.ivi-contacts{
  --ivi-contacts-bg:transparent!important;
  --ivi-contacts-card:transparent!important;
  --ivi-contacts-text:var(--ink)!important;
  --ivi-contacts-muted:var(--muted)!important;
  --ivi-contacts-accent:var(--accent)!important;
  --ivi-contacts-line:var(--line)!important;
  width:100%!important;
  padding:96px 20px!important;
  margin:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  overflow:visible!important;
}
.rivieraContactsSection .ivi-contacts__inner{
  width:min(var(--max),calc(100% - 0px))!important;
  max-width:none!important;
  margin:0 auto!important;
}
.rivieraContactsSection .ivi-contacts__head{
  width:100%!important;
  max-width:none!important;
  margin:0 0 46px!important;
  text-align:left!important;
}
.rivieraContactsSection .ivi-contacts__kicker{
  margin:0 0 14px!important;
  color:var(--accent)!important;
  font:700 11px/1.3 Manrope,Arial,sans-serif!important;
  letter-spacing:.18em!important;
}
.rivieraContactsSection .ivi-contacts__title{
  max-width:1050px!important;
  margin:0!important;
  color:var(--ink)!important;
  font:500 clamp(44px,7vw,86px)/.92 'Cormorant Garamond',Georgia,serif!important;
  letter-spacing:-.035em!important;
  text-align:left!important;
}
.rivieraContactsSection .ivi-contacts__text{
  width:min(820px,100%)!important;
  max-width:none!important;
  margin:20px 0 0!important;
  color:var(--muted)!important;
  font:400 clamp(17px,1.8vw,21px)/1.65 Manrope,Arial,sans-serif!important;
  text-align:left!important;
}
.rivieraContactsSection .ivi-contacts__grid{
  grid-template-columns:repeat(var(--ivi-contacts-count,1),minmax(0,1fr))!important;
  gap:18px!important;
  width:100%!important;
}
.rivieraContactsSection .ivi-contact{
  align-items:flex-start!important;
  min-height:100%!important;
  padding:28px!important;
  text-align:left!important;
  border:1px solid var(--line)!important;
  border-radius:var(--radius)!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.rivieraContactsSection .ivi-contact__avatar{
  width:54px!important;
  height:54px!important;
  margin:0 0 20px!important;
  color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 9%,transparent)!important;
  border-color:color-mix(in srgb,var(--accent) 28%,transparent)!important;
}
.rivieraContactsSection .ivi-contact__avatar svg{
  width:24px!important;
  height:24px!important;
}
.rivieraContactsSection .ivi-contact__name{
  margin:0!important;
  color:var(--ink)!important;
  font:600 clamp(30px,3.4vw,44px)/1 'Cormorant Garamond',Georgia,serif!important;
  letter-spacing:-.02em!important;
}
.rivieraContactsSection .ivi-contact__role{
  margin:8px 0 0!important;
  color:var(--muted)!important;
  font:500 14px/1.5 Manrope,Arial,sans-serif!important;
}
.rivieraContactsSection .ivi-contact__phone{
  margin:20px 0 0!important;
  color:var(--ink)!important;
  font:650 16px/1.4 Manrope,Arial,sans-serif!important;
}
.rivieraContactsSection .ivi-contact__actions{
  justify-content:flex-start!important;
  width:100%!important;
  gap:10px!important;
  margin-top:auto!important;
  padding-top:24px!important;
}
.rivieraContactsSection .ivi-contact__action{
  min-height:44px!important;
  padding:11px 16px!important;
  color:var(--ink)!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  background:transparent!important;
  font:650 13px/1 Manrope,Arial,sans-serif!important;
  box-shadow:none!important;
}
.rivieraContactsSection .ivi-contact__action:hover{
  transform:translateY(-1px)!important;
  border-color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 9%,transparent)!important;
}
.rivieraContactsSection .ivi-contact__action:first-child{
  border-color:var(--ink)!important;
  background:var(--ink)!important;
  color:var(--paper)!important;
}

@media(max-width:900px){
  .rivieraContactsSection .ivi-contacts__grid{
    grid-template-columns:1fr!important;
  }
  .rivieraContactsSection .ivi-contact{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
}
@media(max-width:760px){
  .rivieraContactsSection{
    border-left-width:9px;
  }
  .rivieraContactsSection>.ivi-contacts{
    padding:68px 12px!important;
  }
  .rivieraContactsSection .ivi-contacts__head{
    margin-bottom:34px!important;
  }
  .rivieraContactsSection .ivi-contacts__title{
    font-size:clamp(40px,12vw,58px)!important;
  }
  .rivieraContactsSection .ivi-contact{
    padding:22px 18px!important;
  }
  .rivieraContactsSection .ivi-contact__actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .rivieraContactsSection .ivi-contact__action{
    width:100%!important;
  }
}


/* =========================================================
   Riviera details v14
   /views/blocks/details.php
========================================================= */
.rivieraDetailsSection{
  position:relative;
  width:100%;
  padding:96px 0;
  border-left:18px solid var(--accent);
  background:var(--paper);
  color:var(--ink);
}
.rivieraDetailsSection .le-details{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:var(--ink)!important;
}
.rivieraDetailsSection .le-details__header{
  width:min(820px,100%)!important;
  margin:0 0 48px!important;
  text-align:left!important;
}
.rivieraDetailsSection .le-details__kicker{
  margin:0 0 12px!important;
  color:var(--accent)!important;
  font:700 11px/1.3 var(--font-body,Arial,sans-serif)!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}
.rivieraDetailsSection .le-details__title{
  margin:0!important;
  color:var(--ink)!important;
  font-family:'Cormorant Garamond',Georgia,serif!important;
  font-size:clamp(44px,7vw,86px)!important;
  font-weight:500!important;
  line-height:.92!important;
  letter-spacing:-.035em!important;
}
.rivieraDetailsSection .le-details__text{
  width:min(720px,100%)!important;
  margin:20px 0 0!important;
  color:var(--muted)!important;
  font:400 17px/1.7 var(--font-body,Arial,sans-serif)!important;
}
.rivieraDetailsSection .le-details__grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  border-top:1px solid var(--line)!important;
  border-left:1px solid var(--line)!important;
}
.rivieraDetailsSection .le-details__card{
  position:relative!important;
  display:flex!important;
  min-width:0!important;
  min-height:260px!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  padding:34px 30px!important;
  border:0!important;
  border-right:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
}
.rivieraDetailsSection .le-details__card-icon{
  display:inline-flex!important;
  width:auto!important;
  min-width:42px!important;
  height:30px!important;
  margin:0 0 28px!important;
  align-items:center!important;
  justify-content:center!important;
  color:var(--accent)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  font:700 11px/1 var(--font-body,Arial,sans-serif)!important;
  letter-spacing:.12em!important;
}
.rivieraDetailsSection .le-details__card-icon--wishlist{
  width:48px!important;
  height:48px!important;
  border-radius:50%!important;
}
.rivieraDetailsSection .le-details__card-icon img{
  width:24px!important;
  height:24px!important;
  object-fit:contain!important;
}
.rivieraDetailsSection .le-details__provider{
  margin:-18px 0 10px!important;
  color:var(--accent)!important;
  font:700 10px/1.3 var(--font-body,Arial,sans-serif)!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.rivieraDetailsSection .le-details__card-title{
  margin:0!important;
  color:var(--ink)!important;
  font-family:'Cormorant Garamond',Georgia,serif!important;
  font-size:clamp(30px,3.2vw,44px)!important;
  font-weight:500!important;
  line-height:1!important;
  letter-spacing:-.025em!important;
  overflow-wrap:anywhere!important;
}
.rivieraDetailsSection .le-details__card-text{
  margin:16px 0 0!important;
  color:var(--muted)!important;
  font:400 15px/1.65 var(--font-body,Arial,sans-serif)!important;
  overflow-wrap:anywhere!important;
}
.rivieraDetailsSection .le-details__wishlist-button{
  display:inline-flex!important;
  min-height:44px!important;
  margin-top:auto!important;
  padding:0 18px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  color:var(--paper)!important;
  background:var(--ink)!important;
  border:1px solid var(--ink)!important;
  border-radius:999px!important;
  font:700 12px/1 var(--font-body,Arial,sans-serif)!important;
  text-decoration:none!important;
  transition:transform .2s ease,opacity .2s ease!important;
}
.rivieraDetailsSection .le-details__wishlist-button:hover{
  transform:translateY(-2px)!important;
  opacity:.88!important;
}
.rivieraDetailsSection .le-details__wishlist-button svg{
  width:16px!important;
  height:16px!important;
}
@media(max-width:980px){
  .rivieraDetailsSection .le-details__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:760px){
  .rivieraDetailsSection{
    padding:68px 0;
    border-left-width:9px;
  }
  .rivieraDetailsSection .le-details__header{
    margin-bottom:34px!important;
  }
  .rivieraDetailsSection .le-details__title{
    font-size:clamp(40px,12vw,58px)!important;
  }
  .rivieraDetailsSection .le-details__grid{
    grid-template-columns:1fr!important;
  }
  .rivieraDetailsSection .le-details__card{
    min-height:0!important;
    padding:26px 20px!important;
  }
  .rivieraDetailsSection .le-details__card-icon{
    margin-bottom:20px!important;
  }
}


/* =========================================================
   Riviera unified theme system v16
   All sections use semantic theme variables.
========================================================= */
html,body{background:var(--bg)!important;color:var(--ink)!important}
.page{background:var(--bg)!important;color:var(--ink)!important}
.rivNav{display:none!important}

.hero,.dateBand,.countdownSection,.story,.programSection,.placeSection,
.dresscodeSection,.gallerySection,.rsvpSection,.contactsSection,
.rivieraContactsSection,.rivieraDetailsSection{
  color:var(--ink)!important;
}
.hero{background-color:var(--paper)!important}
.dateBand,.countdownSection,.placeSection,.dresscodeSection,
.rivieraContactsSection,.rivieraDetailsSection{background:var(--paper)!important}
.story,.programSection,.gallerySection,.rsvpSection{background:var(--bg)!important}

.sectionHeader h2,.storyText h2,.timeCard h3,.rivLocName,.dresscodeNote h3,
.iviGalleryTitle,.iviDressTitle,.rsvpSectionHead h2,
.rivieraContactsSection .ivi-contacts__title,
.rivieraContactsSection .ivi-contact__name,
.rivieraDetailsSection .le-details__title,
.rivieraDetailsSection .le-details__card-title{color:var(--ink)!important}

.heroSubtitle,.storyText p,.timeCard p,.sectionHeader p,
.rivLocNote,.dresscodeNote p,.iviGallerySubtitle,.iviDressText,
.rsvpHint,.label,.consent,.rsvpTotal,
.rivieraContactsSection .ivi-contacts__text,
.rivieraContactsSection .ivi-contact__role,
.rivieraDetailsSection .le-details__text,
.rivieraDetailsSection .le-details__card-text{color:var(--muted)!important}

.eyebrow,.sectionHeader small,.sectionKickerInline,.timeMark,
.iviGalleryKicker,.iviDressKicker,.rsvpLabel,
.rivieraContactsSection .ivi-contacts__kicker,
.rivieraDetailsSection .le-details__kicker,
.rivieraDetailsSection .le-details__provider{color:var(--accent)!important}


.field,.rsvpSection .field,.rsvpSection input,.rsvpSection textarea,.rsvpSection select{
  background:var(--paper)!important;color:var(--ink)!important;border-color:var(--line)!important;
}
.field::placeholder,.rsvpSection .field::placeholder{color:var(--muted)!important;opacity:.72!important}
.rsvpSection .chip{
  background:transparent!important;color:var(--ink)!important;border-color:var(--line)!important;
}
.rsvpSection .chip[data-active="true"],.rsvpSection .chip.is-active,.rsvpSection .chip.active{
  background:var(--accent)!important;color:var(--on_accent)!important;border-color:var(--accent)!important;
}
.rsvpSection .chip:before{border-color:currentColor!important}
.rsvpSection .consent{background:transparent!important;color:var(--ink)!important;border-color:var(--line)!important}
.rsvpSection .btn.btn-full,.rsvpSection #rsvpForm button[type="submit"]{
  background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;
}

.rivLocCard,.sharedBlock--location .iviLocCard,
.rivieraContactsSection .ivi-contact,
.rivieraDetailsSection .le-details__card{background:transparent!important;color:var(--ink)!important;border-color:var(--line)!important}
.rivLocBtn--primary,.sharedBlock--location .iviBtnPrimary,
.rivieraContactsSection .ivi-contact__action:first-child,
.rivieraDetailsSection .le-details__wishlist-button{
  background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;
}
.rivLocBtn--ghost,.sharedBlock--location .iviBtnGhost,
.rivieraContactsSection .ivi-contact__action{color:var(--ink)!important;border-color:var(--line)!important;background:transparent!important}

.galleryPlaceholder,.sharedBlock--gallery .iviGalleryItem,
.storyPhoto,.iviImgPh,.rivLocPhoto,.sharedBlock--location .iviLocPhoto{
  background:color-mix(in srgb,var(--paper) 82%,var(--soft))!important;
}
.sharedBlock--gallery .iviGalleryCaption{background:color-mix(in srgb,var(--paper) 88%,transparent)!important;color:var(--ink)!important}

html[data-dark="1"] .field,html[data-dark="1"] .rsvpSection .field,
html[data-dark="1"] .rsvpSection input,html[data-dark="1"] .rsvpSection textarea,
html[data-dark="1"] .rsvpSection select{background:color-mix(in srgb,var(--paper) 88%,#000)!important;color:var(--ink)!important}
html[data-dark="1"] .rsvpSection .chip{background:color-mix(in srgb,var(--paper) 92%,transparent)!important}
html[data-dark="1"] .rsvpSection .chip[data-active="true"]{background:var(--accent)!important;color:#101418!important}

/* Never inherit accidental white text from embedded shared blocks. */
.rivieraContactsSection .ivi-contacts,
.rivieraContactsSection .ivi-contact,
.rivieraDetailsSection .le-details,
.rivieraDetailsSection .le-details__card,
.rsvpSection,.rsvpSection form{color:var(--ink)!important}


/* Hero: subtitle replaces the fixed Riviera letter label */
.heroCard .heroEyebrow{
  max-width:760px;
  margin:0 0 18px;
  color:var(--accent)!important;
  font-family:var(--font-body,Inter,Arial,sans-serif);
  font-size:clamp(13px,1.35vw,17px);
  font-weight:650;
  line-height:1.45;
  letter-spacing:.095em;
  text-transform:uppercase;
  text-wrap:balance;
}
.heroCard .heroEyebrow + .heroNames{margin-top:10px}
@media(max-width:760px){
  .heroCard .heroEyebrow{margin-bottom:14px;font-size:12px;line-height:1.5;letter-spacing:.075em}
  .heroCard .heroEyebrow + .heroNames{margin-top:8px}
}


/* Riviera hero countdown v18 */
.countdownSection.countdownSection--hero{
  padding:0!important;
  border-left:18px solid var(--accent)!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
}
.countdownSection--hero .countdownShell{
  width:min(100%,var(--max));
}
.countdownSection--hero .countdown{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:100%;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.countdownSection--hero .cdItem{
  min-height:152px;
  padding:24px 12px 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-right:1px solid var(--line);
  text-align:center;
}
.countdownSection--hero .cdItem:last-child{border-right:0}
.countdownSection--hero .cdItem strong{
  display:block;
  margin:0 0 8px;
  color:var(--ink);
  font:500 clamp(54px,6.2vw,86px)/.82 'Cormorant Garamond',Georgia,serif;
  letter-spacing:-.045em;
}
.countdownSection--hero .cdItem span{
  color:var(--ink);
  font:600 11px/1.2 var(--font-body,Arial,sans-serif);
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.86;
}
html[data-dark="1"] .countdownSection--hero,
html[data-dark="1"] .countdownSection--hero .countdown{
  background:var(--paper)!important;
  color:var(--ink)!important;
}
@media(max-width:760px){
  .countdownSection.countdownSection--hero{border-left-width:9px!important}
  .countdownSection--hero .countdownShell{width:100%}
  .countdownSection--hero .cdItem{min-height:105px;padding:18px 4px 16px}
  .countdownSection--hero .cdItem strong{font-size:clamp(38px,12vw,54px);margin-bottom:7px}
  .countdownSection--hero .cdItem span{font-size:9px;letter-spacing:.13em}
}
@media(max-width:420px){
  .countdownSection--hero .cdItem{min-height:92px}
  .countdownSection--hero .cdItem strong{font-size:36px}
  .countdownSection--hero .cdItem span{font-size:8px}
}


/* Riviera clean hero timer strip v19 */
.countdownSection.countdownSection--hero{padding:0!important;border-left:0!important;background:var(--paper)!important;color:var(--ink)!important}
.countdownSection--hero .countdownShell{width:100%!important;max-width:none!important;margin:0!important}
.countdownSection--hero .countdown{width:100%!important;margin:0!important;border-top:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;background:var(--paper)!important}
.countdownSection--hero .cdItem{min-height:154px!important;padding:24px 8px 22px!important;background:transparent!important;border-right:1px solid var(--line)!important}
.countdownSection--hero .cdItem:last-child{border-right:0!important}
.countdownSection--hero .cdItem strong{margin:0 0 18px!important;color:var(--ink)!important;font:500 clamp(56px,6.4vw,88px)/.82 'Cormorant Garamond',Georgia,serif!important;letter-spacing:-.045em!important}
.countdownSection--hero .cdItem span{color:var(--ink)!important;font-size:11px!important;font-weight:600!important;line-height:1.2!important;letter-spacing:.2em!important;text-transform:uppercase!important;opacity:.88!important}
@media(max-width:760px){.countdownSection.countdownSection--hero{border-left:0!important}.countdownSection--hero .cdItem{min-height:104px!important;padding:18px 3px 15px!important}.countdownSection--hero .cdItem strong{font-size:clamp(38px,12vw,54px)!important;margin-bottom:12px!important}.countdownSection--hero .cdItem span{font-size:9px!important;letter-spacing:.13em!important}}
@media(max-width:420px){.countdownSection--hero .cdItem{min-height:90px!important}.countdownSection--hero .cdItem strong{font-size:35px!important}.countdownSection--hero .cdItem span{font-size:8px!important;letter-spacing:.1em!important}}

/* =========================================================
   Riviera location typography v7
   Wider text area and natural title wrapping.
========================================================= */
@media (min-width:1181px){
  .rivLocCard{
    grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);
    min-height:590px;
  }
  .rivLocPhoto,
  .rivLocPhoto>img,
  .rivLocPhoto .iviImgPh{
    min-height:590px;
  }
  .rivLocBody{
    padding:clamp(30px,2.6vw,44px);
  }
  .rivLocBody h3{
    max-width:12ch;
    margin-bottom:20px;
    font-size:clamp(34px,2.45vw,46px);
    line-height:1.02;
    letter-spacing:-.025em;
    overflow-wrap:normal;
    word-break:keep-all;
    text-wrap:balance;
  }
  .rivLocAddress{
    max-width:22ch;
    font-size:clamp(16px,1.18vw,19px);
    line-height:1.45;
    text-wrap:pretty;
  }
  .rivLocNote{
    max-width:28ch;
    font-size:15px;
    line-height:1.6;
    text-wrap:pretty;
  }
  .rivLocBadge{margin-bottom:22px}
  .rivLocActions{margin-top:24px}
}

@media (min-width:761px) and (max-width:1180px){
  .rivLocCard{
    grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);
  }
  .rivLocBody h3{
    max-width:14ch;
    font-size:clamp(38px,5vw,52px);
    line-height:1.02;
    word-break:keep-all;
    overflow-wrap:normal;
    text-wrap:balance;
  }
}

/* =========================================================
   Riviera adaptive media states v8
   Gallery follows real photo height on mobile.
   Story and locations become full-width text cards without photos.
========================================================= */
.story--no-photo .storyLayout{
  display:block;
}
.story--no-photo .storyText{
  width:min(980px,100%);
  margin:0 auto;
  padding:clamp(34px,6vw,72px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  text-align:center;
}
.storyTextIcon,
.rivLocIcon{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  margin:0 auto 24px;
  border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));
  border-radius:50%;
  color:var(--accent);
  background:color-mix(in srgb,var(--accent) 8%,var(--paper));
}
.storyTextIcon svg,
.rivLocIcon svg{
  width:34px;
  height:34px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.story--no-photo .storyText h2{
  max-width:15ch;
  margin-inline:auto;
  text-wrap:balance;
}
.story--no-photo .storyText p{
  max-width:760px;
  margin-inline:auto;
  text-wrap:pretty;
}
.rivLocCard--no-photo{
  display:block!important;
  min-height:0!important;
}
.rivLocCard--no-photo .rivLocBody{
  width:100%;
  min-height:430px;
  align-items:center;
  justify-content:center;
  padding:clamp(42px,6vw,82px)!important;
  text-align:center;
}
.rivLocCard--no-photo .rivLocBody h3,
.rivLocCard--no-photo .rivLocAddress,
.rivLocCard--no-photo .rivLocNote{
  max-width:28ch!important;
  margin-left:auto;
  margin-right:auto;
}
.rivLocCard--no-photo .rivLocActions{
  justify-content:center;
}

@media(max-width:760px){
  .gallerySection{
    min-height:0!important;
    height:auto!important;
    padding-bottom:54px!important;
  }
  .gallerySection>.shell,
  .sharedBlock--gallery,
  .sharedBlock--gallery .iviGallery,
  .sharedBlock--gallery .iviGalleryGrid{
    min-height:0!important;
    height:auto!important;
  }
  .sharedBlock--gallery .iviGalleryGrid,
  .sharedBlock--gallery .iviGalleryGrid--masonry{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
    grid-auto-rows:auto!important;
    gap:12px!important;
  }
  .sharedBlock--gallery .iviGalleryItem,
  .sharedBlock--gallery .iviGalleryItem:first-child{
    grid-column:auto!important;
    grid-row:auto!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:auto!important;
  }
  .sharedBlock--gallery .iviGalleryItem img{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    object-fit:contain!important;
  }
  .galleryPlaceholderGrid{
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
  }
  .story--no-photo .storyText{
    padding:34px 22px;
  }
  .storyTextIcon,
  .rivLocIcon{
    width:62px;
    height:62px;
    margin-bottom:20px;
  }
  .rivLocCard--no-photo .rivLocBody{
    min-height:0;
    padding:40px 24px!important;
  }
}

/* =========================================================
   Riviera details petal cards v20
========================================================= */
.rivieraDetailsSection .le-details__grid{
  counter-reset:riviera-detail!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:22px!important;
  border:0!important;
}
.rivieraDetailsSection .le-details__card{
  counter-increment:riviera-detail!important;
  min-height:330px!important;
  align-items:center!important;
  justify-content:center!important;
  padding:58px 42px 46px!important;
  border:1px solid var(--line)!important;
  border-radius:96px 16px 96px 16px!important;
  background:color-mix(in srgb,var(--paper) 88%,var(--accent) 4%)!important;
  text-align:center!important;
  overflow:hidden!important;
}
.rivieraDetailsSection .le-details__card:nth-child(even){
  border-radius:16px 96px 16px 96px!important;
}
.rivieraDetailsSection .le-details__card::before{
  content:counter(riviera-detail,decimal-leading-zero)!important;
  position:absolute!important;
  top:26px!important;
  left:28px!important;
  display:inline-flex!important;
  min-width:46px!important;
  height:30px!important;
  padding:0 12px!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line))!important;
  border-radius:999px!important;
  color:var(--accent)!important;
  background:color-mix(in srgb,var(--paper) 90%,transparent)!important;
  font:700 11px/1 var(--font-body,Arial,sans-serif)!important;
  letter-spacing:.12em!important;
}
.rivieraDetailsSection .le-details__card::after{
  content:""!important;
  position:absolute!important;
  right:-18px!important;
  bottom:-20px!important;
  width:118px!important;
  height:118px!important;
  border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)!important;
  border-radius:100% 0 100% 0!important;
  transform:rotate(-12deg)!important;
  opacity:.7!important;
  pointer-events:none!important;
}
.rivieraDetailsSection .le-details__card:nth-child(even)::after{
  right:auto!important;
  left:-18px!important;
  border-radius:0 100% 0 100%!important;
  transform:rotate(12deg)!important;
}
.rivieraDetailsSection .le-details__card-icon{
  width:74px!important;
  min-width:74px!important;
  height:74px!important;
  margin:0 0 28px!important;
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line))!important;
  border-radius:50%!important;
  background:color-mix(in srgb,var(--accent) 8%,var(--paper))!important;
  color:var(--accent)!important;
  font-size:0!important;
}
.rivieraDetailsSection .le-details__card-icon svg{
  width:30px!important;
  height:30px!important;
  stroke:currentColor!important;
}
.rivieraDetailsSection .le-details__card-icon img{
  width:30px!important;
  height:30px!important;
}
.rivieraDetailsSection .le-details__provider{
  margin:-14px 0 12px!important;
}
.rivieraDetailsSection .le-details__card-title{
  max-width:520px!important;
  font-size:clamp(34px,3.4vw,50px)!important;
  line-height:.98!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
.rivieraDetailsSection .le-details__card-text{
  width:min(520px,100%)!important;
  margin:18px auto 0!important;
  font-size:16px!important;
  line-height:1.65!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.rivieraDetailsSection .le-details__wishlist-button{
  margin:26px auto 0!important;
}
html[data-dark="1"] .rivieraDetailsSection .le-details__card{
  background:color-mix(in srgb,var(--paper) 92%,var(--accent) 5%)!important;
}
@media(max-width:760px){
  .rivieraDetailsSection .le-details__grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }
  .rivieraDetailsSection .le-details__card,
  .rivieraDetailsSection .le-details__card:nth-child(even){
    min-height:260px!important;
    padding:54px 24px 34px!important;
    border-radius:64px 14px 64px 14px!important;
  }
  .rivieraDetailsSection .le-details__card:nth-child(even){
    border-radius:14px 64px 14px 64px!important;
  }
  .rivieraDetailsSection .le-details__card::before{
    top:20px!important;
    left:20px!important;
  }
  .rivieraDetailsSection .le-details__card-icon{
    width:64px!important;
    min-width:64px!important;
    height:64px!important;
    margin-bottom:22px!important;
  }
  .rivieraDetailsSection .le-details__card-title{
    font-size:clamp(32px,10vw,44px)!important;
  }
}

/* Riviera details inline icons v21 */
.rivieraDetailsSection .le-details__card-icon{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.rivieraDetailsSection .le-details__card-icon > *{
  display:none!important;
}
.rivieraDetailsSection .le-details__card-icon::before{
  content:""!important;
  display:block!important;
  width:40px!important;
  height:40px!important;
  background:currentColor!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-position:center!important;
  mask-position:center!important;
  -webkit-mask-size:contain!important;
  mask-size:contain!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+1) .le-details__card-icon::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v9H4v-9'/%3E%3Cpath d='M2 7h20v5H2z'/%3E%3Cpath d='M12 22V7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 1 1 0-5C11 2 12 7 12 7Z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 1 0 0-5C13 2 12 7 12 7Z'/%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v9H4v-9'/%3E%3Cpath d='M2 7h20v5H2z'/%3E%3Cpath d='M12 22V7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 1 1 0-5C11 2 12 7 12 7Z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 1 0 0-5C13 2 12 7 12 7Z'/%3E%3C/svg%3E")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+2) .le-details__card-icon::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -2 28 28' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5l-1.2-1C6.2 15.3 3.5 12.9 3.5 9.7A3.7 3.7 0 0 1 7.2 6c1.5 0 2.9.7 3.8 1.9C11.9 6.7 13.3 6 14.8 6a3.7 3.7 0 0 1 3.7 3.7c0 3.2-2.7 5.6-7.3 9.8L12 20.5Z'/%3E%3Cpath d='M18.8 4.5l.5 1.2 1.2.5-1.2.5-.5 1.2-.5-1.2-1.2-.5 1.2-.5.5-1.2Z'/%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -2 28 28' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5l-1.2-1C6.2 15.3 3.5 12.9 3.5 9.7A3.7 3.7 0 0 1 7.2 6c1.5 0 2.9.7 3.8 1.9C11.9 6.7 13.3 6 14.8 6a3.7 3.7 0 0 1 3.7 3.7c0 3.2-2.7 5.6-7.3 9.8L12 20.5Z'/%3E%3Cpath d='M18.8 4.5l.5 1.2 1.2.5-1.2.5-.5 1.2-.5-1.2-1.2-.5 1.2-.5.5-1.2Z'/%3E%3C/svg%3E")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+3) .le-details__card-icon::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-4.35-7-10a4 4 0 0 1 7-2.65A4 4 0 0 1 19 11c0 5.65-7 10-7 10Z'/%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-4.35-7-10a4 4 0 0 1 7-2.65A4 4 0 0 1 19 11c0 5.65-7 10-7 10Z'/%3E%3C/svg%3E")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n) .le-details__card-icon::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M6 17V9l6-4 6 4v8'/%3E%3Cpath d='M9 17v-5h6v5'/%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M6 17V9l6-4 6 4v8'/%3E%3Cpath d='M9 17v-5h6v5'/%3E%3C/svg%3E")!important;
}

/* Riviera details icons final centering fix */
.rivieraDetailsSection .le-details__card-icon{
  position:relative!important;
  display:block!important;
  overflow:visible!important;
}
.rivieraDetailsSection .le-details__card-icon::before{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:38px!important;
  height:38px!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center!important;
  -webkit-mask-position:50% 50%!important;
  mask-position:50% 50%!important;
  -webkit-mask-size:100% 100%!important;
  mask-size:100% 100%!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+1) .le-details__card-icon::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.5' y='13' width='19' height='13' rx='1'/%3E%3Cpath d='M5 10.5h22V15H5zM16 10.5V26'/%3E%3Cpath d='M16 10.5h-5.2a3.3 3.3 0 1 1 0-6.6c3.9 0 5.2 6.6 5.2 6.6ZM16 10.5h5.2a3.3 3.3 0 1 0 0-6.6c-3.9 0-5.2 6.6-5.2 6.6Z'/%3E%3C/g%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.5' y='13' width='19' height='13' rx='1'/%3E%3Cpath d='M5 10.5h22V15H5zM16 10.5V26'/%3E%3Cpath d='M16 10.5h-5.2a3.3 3.3 0 1 1 0-6.6c3.9 0 5.2 6.6 5.2 6.6ZM16 10.5h5.2a3.3 3.3 0 1 0 0-6.6c-3.9 0-5.2 6.6-5.2 6.6Z'/%3E%3C/g%3E%3C/svg%3E")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+2) .le-details__card-icon::before{
  width:40px!important;
  height:40px!important;
  transform:translate(-51%,-50%)!important;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.5 26.2 7.2 18.4C3.1 14.6 4.3 7.8 9.6 7.1c2.6-.3 4.8 1 5.9 3 1.2-2 3.4-3.3 6-3 5.2.7 6.4 7.5 2.3 11.3l-8.3 7.8Z'/%3E%3Cpath d='m25.1 4.2.65 1.55 1.55.65-1.55.65-.65 1.55-.65-1.55-1.55-.65 1.55-.65.65-1.55Z'/%3E%3C/g%3E%3C/svg%3E")!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.5 26.2 7.2 18.4C3.1 14.6 4.3 7.8 9.6 7.1c2.6-.3 4.8 1 5.9 3 1.2-2 3.4-3.3 6-3 5.2.7 6.4 7.5 2.3 11.3l-8.3 7.8Z'/%3E%3Cpath d='m25.1 4.2.65 1.55 1.55.65-1.55.65-.65 1.55-.65-1.55-1.55-.65 1.55-.65.65-1.55Z'/%3E%3C/g%3E%3C/svg%3E")!important;
}

/* =========================================================
   Riviera details custom SVG icons v22
   assets/icons/details/
   01 gift-box.svg
   02 heart-arrow.svg
   03 heart-outline.svg
   04 ribbon-bow.svg
========================================================= */
.rivieraDetailsSection .le-details__card-icon{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
}
.rivieraDetailsSection .le-details__card-icon > *{
  display:none!important;
}
.rivieraDetailsSection .le-details__card-icon::before{
  content:""!important;
  position:static!important;
  display:block!important;
  width:42px!important;
  height:42px!important;
  margin:0!important;
  transform:none!important;
  background-color:var(--accent)!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-position:center!important;
  mask-position:center!important;
  -webkit-mask-size:contain!important;
  mask-size:contain!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+1) .le-details__card-icon::before{
  -webkit-mask-image:url("icons/details/gift-box.svg")!important;
  mask-image:url("icons/details/gift-box.svg")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+2) .le-details__card-icon::before{
  -webkit-mask-image:url("icons/details/heart-arrow.svg")!important;
  mask-image:url("icons/details/heart-arrow.svg")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+3) .le-details__card-icon::before{
  -webkit-mask-image:url("icons/details/heart-outline.svg")!important;
  mask-image:url("icons/details/heart-outline.svg")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n) .le-details__card-icon::before{
  -webkit-mask-image:url("icons/details/ribbon-bow.svg")!important;
  mask-image:url("icons/details/ribbon-bow.svg")!important;
}
@media(max-width:760px){
  .rivieraDetailsSection .le-details__card-icon::before{
    width:36px!important;
    height:36px!important;
  }
}

/* =========================================================
   Riviera details SVG icons precise centering v23
   Use the original SVG files as centered background images.
========================================================= */
.rivieraDetailsSection .le-details__card-icon{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.rivieraDetailsSection .le-details__card-icon::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  transform:none!important;
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:50% 50%!important;
  background-size:36px 36px!important;
  -webkit-mask:none!important;
  mask:none!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+1) .le-details__card-icon::before{
  background-image:url("icons/details/gift-box.svg")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+2) .le-details__card-icon::before{
  background-image:url("icons/details/heart-arrow.svg")!important;
  background-size:34px 34px!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+3) .le-details__card-icon::before{
  background-image:url("icons/details/heart-outline.svg")!important;
  background-size:36px 36px!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n) .le-details__card-icon::before{
  background-image:url("icons/details/ribbon-bow.svg")!important;
  background-size:34px 34px!important;
}
@media(max-width:760px){
  .rivieraDetailsSection .le-details__card-icon::before{
    background-size:30px 30px!important;
  }
}

/* =========================================================
   Riviera details icons visibility + optical centering v24
   Final override: SVG masks, large and theme-colored.
========================================================= */
.rivieraDetailsSection .le-details__card-icon{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  color:var(--accent)!important;
}
.rivieraDetailsSection .le-details__card-icon::before{
  content:""!important;
  position:absolute!important;
  top:50%!important;
  left:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:40px!important;
  height:40px!important;
  margin:0!important;
  transform:translate(-50%,-50%)!important;
  background:var(--accent)!important;
  background-image:none!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-position:center!important;
  mask-position:center!important;
  -webkit-mask-size:contain!important;
  mask-size:contain!important;
  opacity:1!important;
  visibility:visible!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+1) .le-details__card-icon::before{
  width:36px!important;
  height:43px!important;
  -webkit-mask-image:url("icons/details/gift-box.svg")!important;
  mask-image:url("icons/details/gift-box.svg")!important;
  transform:translate(-50%,-49%)!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+2) .le-details__card-icon::before{
  width:43px!important;
  height:39px!important;
  -webkit-mask-image:url("icons/details/heart-arrow.svg")!important;
  mask-image:url("icons/details/heart-arrow.svg")!important;
  transform:translate(-50%,-50%)!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n+3) .le-details__card-icon::before{
  width:42px!important;
  height:36px!important;
  -webkit-mask-image:url("icons/details/heart-outline.svg")!important;
  mask-image:url("icons/details/heart-outline.svg")!important;
}
.rivieraDetailsSection .le-details__card:nth-child(4n) .le-details__card-icon::before{
  width:38px!important;
  height:42px!important;
  -webkit-mask-image:url("icons/details/ribbon-bow.svg")!important;
  mask-image:url("icons/details/ribbon-bow.svg")!important;
}
@media(max-width:760px){
  .rivieraDetailsSection .le-details__card:nth-child(4n+1) .le-details__card-icon::before{width:32px!important;height:38px!important}
  .rivieraDetailsSection .le-details__card:nth-child(4n+2) .le-details__card-icon::before{width:38px!important;height:34px!important}
  .rivieraDetailsSection .le-details__card:nth-child(4n+3) .le-details__card-icon::before{width:37px!important;height:32px!important}
  .rivieraDetailsSection .le-details__card:nth-child(4n) .le-details__card-icon::before{width:34px!important;height:37px!important}
}

/* Dress code layout fix: swatches never overlap */
.dresscodeCopy,
.dresscodeNote,
.iviDress,
.iviDressWrap,
.sharedBlock--dresscode{
  min-width:0;
}

.rivPalette,
.iviDressSwatches,
.sharedBlock--dresscode .dresscode-colors,
.sharedBlock--dresscode .dc-colors,
.sharedBlock--dresscode [class*="palette"]{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(58px,72px))!important;
  align-items:end!important;
  justify-content:start!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}

.rivPalette i,
.iviDressDot,
.sharedBlock--dresscode .dresscode-color,
.sharedBlock--dresscode .dc-color,
.sharedBlock--dresscode [class*="color-item"],
.sharedBlock--dresscode [style*="background-color"]{
  margin:0!important;
  flex:none!important;
  max-width:100%!important;
}

@media(max-width:980px){
  .dresscodeLayout{
    grid-template-columns:1fr;
    gap:36px;
  }
  .dresscodeNote{
    width:100%;
  }
}

@media(max-width:760px){
  .rivPalette,
  .iviDressSwatches,
  .sharedBlock--dresscode .dresscode-colors,
  .sharedBlock--dresscode .dc-colors,
  .sharedBlock--dresscode [class*="palette"]{
    grid-template-columns:repeat(auto-fit,minmax(48px,54px))!important;
    gap:10px!important;
    margin-top:24px!important;
    padding-top:8px!important;
  }

  .rivPalette i,
  .iviDressDot,
  .sharedBlock--dresscode .dresscode-color,
  .sharedBlock--dresscode .dc-color,
  .sharedBlock--dresscode [class*="color-item"],
  .sharedBlock--dresscode [style*="background-color"]{
    width:54px!important;
    min-width:54px!important;
    height:88px!important;
    transform:none!important;
  }

  .dresscodeCopy h2,
  .iviDressTitle{
    overflow-wrap:anywhere;
  }
}
