
:root, html[data-theme="winter"]{
  --site-bg:#f6f0e7;
  --paper:#f6f0e7;
  --paper-2:#efe6d9;
  --paper-3:#fbf7f1;
  --ink:#1c1915;
  --muted:#746d63;
  --accent:#8f191d;
  --accent-2:#18391f;
  --gold:#c1a15c;
  --accent-ink:#fff8ef;
  --soft-accent:rgba(143,25,29,.08);
  --soft-green:rgba(24,57,31,.07);
  --serif:"Cormorant Garamond","Baskerville","Iowan Old Style",Georgia,serif;
  --sans:"Manrope","Avenir Next","Segoe UI",Arial,sans-serif;
}
html[data-theme="evergreen"]{
  --site-bg:#17221a;
  --paper:#17221a;
  --paper-2:#202d23;
  --paper-3:#1b281e;
  --ink:#f4ecdf;
  --muted:#b8afa2;
  --accent:#d45255;
  --accent-2:#86a282;
  --gold:#ccb06d;
  --accent-ink:#172018;
  --soft-accent:rgba(212,82,85,.09);
  --soft-green:rgba(134,162,130,.08);
}

html[data-theme="pine"]{
  --site-bg:#102219;
  --paper:#102219;
  --paper-2:#183025;
  --paper-3:#14291f;
  --ink:#f3eadc;
  --muted:#b1aa9e;
  --accent:#b83b3f;
  --accent-2:#7b9b75;
  --gold:#d0b374;
  --accent-ink:#112018;
  --soft-accent:rgba(184,59,63,.09);
  --soft-green:rgba(123,155,117,.09);
}
html[data-theme="moss"]{
  --site-bg:#253127;
  --paper:#253127;
  --paper-2:#303d31;
  --paper-3:#2b382d;
  --ink:#f2ecdf;
  --muted:#bbb4a8;
  --accent:#a74d43;
  --accent-2:#9aac7f;
  --gold:#c4aa73;
  --accent-ink:#202b23;
  --soft-accent:rgba(167,77,67,.10);
  --soft-green:rgba(154,172,127,.10);
}

html[data-theme="cedar"]{
  --site-bg:#2a1c17;
  --paper:#2a1c17;
  --paper-2:#382720;
  --paper-3:#31221c;
  --ink:#f7eadc;
  --muted:#c1ac9d;
  --accent:#b83f33;
  --accent-2:#506b48;
  --gold:#d2ae6b;
  --accent-ink:#281b16;
  --soft-accent:rgba(184,63,51,.11);
  --soft-green:rgba(80,107,72,.10);
}
html[data-theme="midnight"]{
  --site-bg:#101718;
  --paper:#101718;
  --paper-2:#182223;
  --paper-3:#141d1e;
  --ink:#f4eee4;
  --muted:#aeb4b1;
  --accent:#a9292d;
  --accent-2:#44665a;
  --gold:#d1b06a;
  --accent-ink:#111718;
  --soft-accent:rgba(169,41,45,.10);
  --soft-green:rgba(68,102,90,.10);
}
html[data-theme="frost"]{
  --site-bg:#e8ede8;
  --paper:#e8ede8;
  --paper-2:#dfe7e0;
  --paper-3:#f1f4ef;
  --ink:#203026;
  --muted:#68766d;
  --accent:#9f3337;
  --accent-2:#52705d;
  --gold:#aa8a52;
  --accent-ink:#f7f6f0;
  --soft-accent:rgba(159,51,55,.08);
  --soft-green:rgba(82,112,93,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--site-bg)}
body{
  margin:0;color:var(--ink);
  background:
    radial-gradient(circle at 10% -10%,rgba(255,255,255,.28),transparent 34%),
    radial-gradient(circle at 90% 15%,var(--soft-accent),transparent 34%),
    var(--site-bg);
  font-family:var(--sans);
  transition:background .35s ease,color .35s ease;
}
html[data-theme="evergreen"] body{
  background:
    radial-gradient(circle at 10% -10%,rgba(255,255,255,.03),transparent 34%),
    radial-gradient(circle at 90% 15%,rgba(204,176,109,.05),transparent 34%),
    linear-gradient(180deg,#17221a,#121b15);
}
a{color:inherit} img{display:block;max-width:100%} button,input,textarea{font:inherit}
.page{width:min(1220px,100%);margin:0 auto;background:transparent;overflow:visible;position:relative}
.poster,.section,.footer{position:relative;z-index:1}

/* HERO — dense botanical poster */
.poster{
  min-height:940px;
  overflow:visible;
  background:
    radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--paper-3) 96%,transparent) 0 36%,transparent 58%),
    transparent;
}
.hero{
  min-height:940px;
  display:grid;
  place-items:center;
  padding:170px 70px 150px;
  text-align:center;
}
.hero-inner{
  position:relative;z-index:5;width:min(720px,100%);
  padding:24px 28px;
}
.flower{position:absolute;z-index:1;pointer-events:none;user-select:none;filter:saturate(1.02)}
.flower.tl{left:-225px;top:-105px;width:600px;transform:rotate(-3deg)}
.flower.tr{right:-220px;top:-98px;width:600px;transform:rotate(3deg)}
.flower.bl{left:-235px;bottom:-145px;width:640px;transform:rotate(-2deg)}
.flower.br{right:-300px;bottom:-170px;width:760px;transform:rotate(2deg)}
.flower.top-center{left:50%;top:-55px;width:500px;transform:translateX(-50%)}
.flower.bottom-center{left:50%;bottom:-74px;width:550px;transform:translateX(-50%)}

.kicker{
  margin:0 0 26px;
  font-size:9px;font-weight:700;letter-spacing:.38em;text-transform:uppercase;
}
.names{
  margin:0;
  font:500 clamp(86px,10.6vw,142px)/.79 var(--serif);
  letter-spacing:-.045em;text-transform:uppercase;
}
.names .name-line{display:block;white-space:nowrap}
.names .amp{
  display:block;margin:-2px 0 -9px;
  color:color-mix(in srgb,var(--gold) 24%,transparent);
  font-size:.77em;font-style:italic;font-weight:400;line-height:.68;
}
.hero-copy{
  width:min(515px,100%);
  margin:28px auto 0;
  color:var(--muted);
  font-size:14px;line-height:1.78;font-weight:500
}
.date-row{
  display:flex;justify-content:center;align-items:center;gap:11px;
  margin-top:30px;font-size:17px;font-weight:700;letter-spacing:.18em;text-transform:uppercase
}
.dot{width:4px;height:4px;border-radius:50%;background:var(--gold)}
.city{margin-top:12px;font-size:10px;font-weight:700;letter-spacing:.34em;text-transform:uppercase}
.hero-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:26px}
.btn{
  appearance:none;border:0;border-radius:999px;padding:13px 20px;cursor:pointer;text-decoration:none;
  font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase
}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-ghost{background:color-mix(in srgb,var(--paper-3) 78%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 11%,transparent)}

/* fluid cream bands */
.section{margin:0;background:transparent!important;border:0;box-shadow:none}
.section::before{display:none}
.section-inner{padding:clamp(72px,8.5vw,112px) clamp(24px,6vw,82px)}
.section:nth-of-type(2n){
  background:linear-gradient(180deg,color-mix(in srgb,var(--paper-3) 42%,transparent),transparent)!important;
}
.section:nth-of-type(2n+1){
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--paper-2) 38%,transparent))!important;
}
.section-head{
  display:grid;grid-template-columns:112px 1fr;gap:24px;
  margin-bottom:44px;align-items:start
}
.section-index{padding-top:5px;font-size:8px;font-weight:700;letter-spacing:.24em;color:var(--muted)}
.section-kicker{
  margin:0 0 9px;
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--gold)
}
.section h2{
  margin:0;
  font:500 clamp(52px,6vw,80px)/.9 var(--serif);
  letter-spacing:-.035em
}
.section-lead{max-width:620px;margin:17px 0 0;color:var(--muted);font-size:12px;line-height:1.75}

/* STORY */
.story-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}
.story-card{padding:0;background:transparent;border:0}
.story-card p{margin:0;color:color-mix(in srgb,var(--ink) 84%,var(--muted));font:500 19px/1.7 var(--serif)}
.story-card p+p{margin-top:17px}
.story-photo{
  position:relative;min-height:470px;display:grid;place-items:center;overflow:hidden;border:0;
  border-radius:48% 48% 16px 16px / 24% 24% 16px 16px;
  background:radial-gradient(circle at 52% 30%,var(--soft-accent),transparent 52%),var(--paper-2)
}
.story-photo::before{content:"ВАШЕ ФОТО";font-size:8px;font-weight:700;letter-spacing:.28em;color:var(--muted)}
.story-photo .flower{width:220px;right:-40px;bottom:-18px;opacity:.92}

/* COUNTDOWN */
.countdown{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:color-mix(in srgb,var(--paper-3) 72%,transparent);
  border-radius:0;
}
.count-box{padding:28px 12px;text-align:center;border:0;background:transparent}
.count-num{font:500 clamp(42px,5vw,60px)/1 var(--serif);color:color-mix(in srgb,var(--accent) 72%,var(--ink))}
.count-label{margin-top:6px;font-size:7px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* PROGRAM */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.timeline-item{
  display:block;padding:0;text-align:center;background:transparent;border:0
}
.time{font:600 28px/1 var(--serif);color:var(--accent)}
.timeline-item h3{margin:10px 0 7px;font:500 27px/1.02 var(--serif)}
.timeline-item p{margin:0;color:var(--muted);font-size:12px;line-height:1.62}
.timeline-note{margin-top:9px;text-align:center;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}

/* LOCATIONS */
.locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.location-card{
  position:relative;min-height:360px;padding:30px;overflow:hidden;border:0;border-radius:24px;
  background:color-mix(in srgb,var(--paper-3) 68%,transparent)
}
.location-card .num{font-size:9px;font-weight:700;letter-spacing:.24em;color:var(--gold)}
.location-card h3{margin:95px 0 12px;font:500 46px/.94 var(--serif)}
.location-card p{max-width:380px;margin:0;color:var(--muted);line-height:1.68;font-size:13px}
.location-card a{display:inline-flex;margin-top:20px;text-decoration:none;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.location-card .flower{width:168px;right:6px;top:8px;opacity:.92}

/* DRESS */
.palette{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.swatch{width:58px;height:58px;border-radius:50%;border:0;box-shadow:0 6px 18px rgba(0,0,0,.06)}
.swatch:nth-child(1){background:#72161a}.swatch:nth-child(2){background:#b92126}.swatch:nth-child(3){background:#213b23}.swatch:nth-child(4){background:#d7c8aa}.swatch:nth-child(5){background:#111}
.dress-grid{display:grid;grid-template-columns:1fr .85fr;gap:42px}
.dress-copy{font:500 19px/1.65 var(--serif);color:color-mix(in srgb,var(--ink) 86%,var(--muted))}
.dress-aside{padding:22px;border-radius:18px;background:color-mix(in srgb,var(--paper-3) 62%,transparent)}
.dress-aside strong{display:block;margin-bottom:7px;font-size:7px;letter-spacing:.18em;text-transform:uppercase}
.dress-aside p{margin:0;color:var(--muted);line-height:1.65;font-size:10px}

/* GALLERY */
.gallery{display:grid;grid-template-columns:1.05fr .95fr .95fr;grid-auto-rows:195px;gap:10px}
.photo{position:relative;overflow:hidden;border:0;background:linear-gradient(135deg,var(--paper-2),color-mix(in srgb,var(--paper-2) 70%,var(--soft-green)))}
.photo:nth-child(1){border-radius:46% 46% 12px 12px / 24% 24% 12px 12px}
.photo:nth-child(2){border-radius:46% 46% 12px 12px / 24% 24% 12px 12px}
.photo:nth-child(3){border-radius:18px}
.photo:nth-child(4){border-radius:18px}
.photo::after{content:"ФОТО";position:absolute;left:15px;bottom:13px;font-size:7px;font-weight:700;letter-spacing:.18em;color:var(--muted)}
.photo.large{grid-row:span 2}.photo.wide{grid-column:span 2}
.photo .flower{width:150px;opacity:.8}

/* DETAILS / CONTACTS */
.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.detail-card{padding:26px 24px;border-radius:20px;background:color-mix(in srgb,var(--paper-3) 58%,transparent)}
.detail-card .icon{font:500 36px/1 var(--serif);color:var(--accent)}
.detail-card h3{margin:20px 0 10px;font:500 32px/1.03 var(--serif)}
.detail-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}

.contacts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.contact-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border-radius:18px;background:color-mix(in srgb,var(--paper-3) 60%,transparent)}
.contact-name{font:500 26px/1 var(--serif)}
.contact-role{margin-top:5px;color:var(--muted);font-size:8px}
.contact-link{text-decoration:none;font-size:7px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}

/* RSVP — burgundy poster panel */
.rsvp-wrap{display:grid;grid-template-columns:.68fr 1.32fr;gap:32px;align-items:start}
.rsvp-note{position:sticky;top:24px;padding:18px 0;background:transparent}
.rsvp-note h3{font-family:var(--serif)!important;font-weight:500!important}
.rsvp-note p{margin:10px 0 0;color:var(--muted);line-height:1.7;font-size:10px}
.form{
  display:grid;gap:16px;padding:30px 28px;border-radius:32px;
  background:linear-gradient(145deg,#7b1015,#5d0c10);
  color:#fff4ea;
  box-shadow:0 18px 50px rgba(75,9,14,.18)
}
html[data-theme="evergreen"] .form{
  background:linear-gradient(145deg,#233729,#19291f);
}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field-group{display:grid;gap:7px}
.field-group label,.choice-title{font-size:7px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
input,textarea{
  width:100%;border:0;background:rgba(255,255,255,.06);border-radius:12px;padding:12px 13px;color:#fff8f0;outline:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)
}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,.5)}
input:focus,textarea:focus{box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 0 0 3px rgba(255,255,255,.05)}
.choices{display:flex;gap:7px;flex-wrap:wrap}
.choice{
  border:0;background:rgba(255,255,255,.04);color:#fff4ea;border-radius:999px;padding:9px 13px;font-size:8px;font-weight:700;cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)
}
.choice.active{background:#fff1df;color:#6f1115;box-shadow:none}
.submit{
  border:0;background:#fff1df;color:#6f1115;border-radius:999px;padding:14px 20px;
  font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer
}

/* FOOTER */
.footer{min-height:440px;display:grid;place-items:center;text-align:center;overflow:hidden;background:transparent}
.footer-inner{position:relative;z-index:2;padding:115px 20px}
.footer small{font-size:7px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.footer h2{margin:15px 0 0;font:500 clamp(54px,7.6vw,88px)/.82 var(--serif);text-transform:uppercase;letter-spacing:-.035em}
.footer p{margin:17px 0 0;color:var(--muted);font-size:9px}

/* theme switcher */
.theme-switcher{
  position:fixed;right:18px;bottom:18px;z-index:9999;display:flex;align-items:center;gap:7px;
  padding:8px 10px;border-radius:999px;background:color-mix(in srgb,var(--paper-3) 84%,transparent);
  box-shadow:0 12px 34px rgba(0,0,0,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
}
.theme-switcher span{font-size:7px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 3px}
.theme-switcher button{width:27px;height:27px;border:0;border-radius:50%;cursor:pointer;padding:0}
.theme-switcher button[data-theme="winter"]{background:linear-gradient(135deg,#f6f0e7 48%,#8f191d 50%)}
.theme-switcher button[data-theme="evergreen"]{background:linear-gradient(135deg,#17221a 48%,#ccb06d 50%)}
.theme-switcher button.is-active{outline:2px solid var(--ink);outline-offset:2px}

@media(max-width:900px){
  .story-grid,.dress-grid,.rsvp-wrap{grid-template-columns:1fr}
  .section-head{grid-template-columns:1fr;gap:8px}
  .timeline{grid-template-columns:1fr 1fr}
  .rsvp-note{position:static}
}
@media(max-width:700px){
  .poster,.hero{min-height:760px}
  .hero{padding:145px 18px 115px}
  .hero-inner{padding:20px 10px}
  .names{font-size:clamp(62px,18.5vw,90px)}
  .hero-copy{font-size:11px}
  .flower.tl{width:355px;left:-160px;top:-78px}
  .flower.tr{width:360px;right:-160px;top:-72px}
  .flower.bl{width:375px;left:-175px;bottom:-98px}
  .flower.br{width:455px;right:-205px;bottom:-125px}
  .section-inner{padding:54px 18px}
  .section h2{font-size:clamp(44px,12.5vw,60px)}
  .story-photo{min-height:360px}
  .countdown{grid-template-columns:1fr 1fr}
  .timeline{grid-template-columns:1fr 1fr}
  .locations,.contacts{grid-template-columns:1fr}
  .location-card{min-height:320px;padding:24px}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
  .details-grid{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .form{padding:24px 16px;border-radius:24px}
  .theme-switcher{right:10px;bottom:10px}
  .theme-switcher span{display:none}
}



html,body{max-width:100%;overflow-x:clip}
.page,.poster{overflow:visible!important}
.poster .flower{pointer-events:none}
@supports not (overflow:clip){
  html,body{overflow-x:hidden}
}
@media(max-width:700px){
  .page,.poster{overflow:visible!important}
}



@media(max-width:700px){
  html,body{overflow-x:clip}
  body{font-size:14px}
  .page{width:100%;max-width:100%;margin:0 auto}

  .poster{
    min-height:100svh!important;
    height:auto!important;
    overflow:visible!important;
    display:block;
  }
  .hero{
    min-height:100svh!important;
    padding:128px 18px 96px!important;
    align-items:center;
  }
  .hero-inner{
    width:min(100%,560px)!important;
    padding:8px 0!important;
  }
  .kicker{
    font-size:8px!important;
    letter-spacing:.24em!important;
    line-height:1.5!important;
    margin-bottom:18px!important;
  }
  .names{
    font-size:clamp(54px,18vw,82px)!important;
    line-height:.82!important;
    letter-spacing:-.045em!important;
    overflow-wrap:anywhere;
  }
  .names .name-line{display:block;white-space:nowrap}
.names .amp{
    margin:1px 0 -4px!important;
    font-size:.68em!important;
  }
  .hero-copy{
    width:min(92%,460px)!important;
    margin-top:24px!important;
    font-size:11.5px!important;
    line-height:1.72!important;
  }
  .date-row{
    margin-top:24px!important;
    font-size:13px!important;
    letter-spacing:.14em!important;
  }
  .city{
    margin-top:10px!important;
    font-size:8px!important;
  }
  .hero-actions{
    width:100%;
    margin-top:22px!important;
    gap:8px!important;
  }
  .hero-actions .btn{
    flex:1 1 145px;
    max-width:200px;
    padding:13px 14px!important;
    font-size:7.5px!important;
    white-space:nowrap;
  }

  /* florals stay huge but frame the content instead of sitting on top of it */
  .flower.tl{width:305px!important;left:-155px!important;top:-58px!important}
  .flower.tr{width:310px!important;right:-158px!important;top:-55px!important}
  .flower.bl{width:330px!important;left:-172px!important;bottom:-94px!important}
  .flower.br{width:350px!important;right:-185px!important;bottom:-105px!important}

  .section-inner{
    padding:52px 18px!important;
  }
  .section-head{
    display:block!important;
    margin-bottom:32px!important;
  }
  .section-index{
    margin-bottom:10px!important;
    font-size:7px!important;
  }
  .section-kicker{
    font-size:16px!important;
    margin-bottom:7px!important;
  }
  .section h2{
    font-size:clamp(42px,12.4vw,58px)!important;
    line-height:.94!important;
  }
  .section-lead{
    font-size:12px!important;
    line-height:1.72!important;
  }

  .story-grid,.dress-grid,.rsvp-wrap{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .story-card p,.dress-copy{
    font-size:18px!important;
    line-height:1.62!important;
  }
  .story-photo{
    min-height:360px!important;
    border-radius:42% 42% 16px 16px / 18% 18% 16px 16px!important;
  }

  .countdown{
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  .count-box{
    padding:24px 8px!important;
  }
  .count-num{
    font-size:46px!important;
  }

  .timeline{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .timeline-item{
    text-align:left!important;
    padding:20px!important;
    border-radius:18px!important;
    background:color-mix(in srgb,var(--paper-3) 62%,transparent)!important;
  }
  .time{
    font-size:26px!important;
  }
  .timeline-item h3{
    font-size:25px!important;
    margin-top:7px!important;
  }
  .timeline-item p{
    font-size:12px!important;
    line-height:1.65!important;
  }
  .timeline-note{
    text-align:left!important;
    margin-top:8px!important;
  }

  .locations{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .location-card{
    min-height:330px!important;
    padding:24px!important;
    border-radius:22px!important;
  }
  .location-card h3{
    margin-top:82px!important;
    font-size:42px!important;
  }
  .location-card p{
    font-size:12.5px!important;
  }
  .location-card .flower{
    width:156px!important;
    top:8px!important;
    right:6px!important;
  }

  .palette{
    gap:10px!important;
  }
  .swatch{
    width:54px!important;
    height:54px!important;
  }
  .dress-aside{
    padding:20px!important;
  }

  .gallery{
    grid-template-columns:1fr 1fr!important;
    grid-auto-rows:155px!important;
    gap:8px!important;
  }
  .gallery .large{
    grid-row:span 2!important;
  }
  .gallery .wide{
    grid-column:span 2!important;
  }

  .details-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .detail-card{
    padding:24px 20px!important;
  }
  .detail-card .icon{
    font-size:32px!important;
  }
  .detail-card h3{
    font-size:30px!important;
  }
  .detail-card p{
    font-size:12.5px!important;
  }

  .contacts{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .contact-card{
    padding:22px 18px!important;
  }
  .contact-name{
    font-size:27px!important;
  }

  .rsvp-note{
    position:static!important;
    padding:0!important;
  }
  .form{
    padding:22px 14px!important;
    border-radius:22px!important;
    gap:16px!important;
  }
  .row2{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .field-group label,.choice-title{
    font-size:8px!important;
  }
  input,textarea{
    font-size:14px!important;
    padding:13px 12px!important;
  }
  .choices{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  .choice{
    width:100%!important;
    padding:11px 8px!important;
    font-size:9px!important;
    min-width:0!important;
  }
  .submit{
    min-height:48px!important;
  }

  .footer{
    min-height:430px!important;
  }
  .footer-inner{
    padding:105px 16px!important;
  }
  .footer h2{
    font-size:clamp(48px,15vw,70px)!important;
  }

  .theme-switcher{
    right:8px!important;
    bottom:8px!important;
    gap:5px!important;
    padding:7px!important;
  }
  .theme-switcher span{display:none!important}
  .theme-switcher button{
    width:28px!important;height:28px!important;
  }
}
@media(max-width:390px){
  .hero{padding-left:14px!important;padding-right:14px!important}
  .names{font-size:clamp(50px,17vw,68px)!important}
  .hero-actions .btn{max-width:none}
  .choices{grid-template-columns:1fr!important}
}



html[data-theme="pine"] body{
  background:
    radial-gradient(circle at 12% -8%,rgba(255,255,255,.03),transparent 34%),
    radial-gradient(circle at 88% 16%,rgba(208,179,116,.05),transparent 32%),
    linear-gradient(180deg,#102219,#0c1a13);
}
html[data-theme="moss"] body{
  background:
    radial-gradient(circle at 12% -8%,rgba(255,255,255,.025),transparent 34%),
    radial-gradient(circle at 88% 18%,rgba(196,170,115,.05),transparent 32%),
    linear-gradient(180deg,#253127,#202b22);
}
.theme-switcher button[data-theme="pine"]{background:linear-gradient(135deg,#102219 48%,#d0b374 50%)}
.theme-switcher button[data-theme="moss"]{background:linear-gradient(135deg,#253127 48%,#9aac7f 50%)}
html[data-theme="pine"] .form{background:linear-gradient(145deg,#243d2d,#16271d)}
html[data-theme="moss"] .form{background:linear-gradient(145deg,#384638,#29342b)}



html[data-theme="cedar"] body{
  background:
    radial-gradient(circle at 10% -10%,rgba(255,255,255,.025),transparent 34%),
    radial-gradient(circle at 90% 16%,rgba(210,174,107,.055),transparent 32%),
    linear-gradient(180deg,#2a1c17,#211612);
}
html[data-theme="midnight"] body{
  background:
    radial-gradient(circle at 12% -8%,rgba(255,255,255,.025),transparent 34%),
    radial-gradient(circle at 88% 16%,rgba(209,176,106,.05),transparent 32%),
    linear-gradient(180deg,#101718,#0b1112);
}
html[data-theme="frost"] body{
  background:
    radial-gradient(circle at 12% -8%,rgba(255,255,255,.7),transparent 32%),
    radial-gradient(circle at 88% 18%,rgba(82,112,93,.055),transparent 32%),
    linear-gradient(180deg,#edf1ec,#e3e9e3);
}
html[data-theme="cedar"] .form{background:linear-gradient(145deg,#4a211b,#2d1713)}
html[data-theme="midnight"] .form{background:linear-gradient(145deg,#223332,#142120)}
html[data-theme="frost"] .form{background:linear-gradient(145deg,#304d3c,#22382c)}

.theme-switcher button[data-theme="cedar"]{background:linear-gradient(135deg,#2a1c17 48%,#d2ae6b 50%)}
.theme-switcher button[data-theme="midnight"]{background:linear-gradient(135deg,#101718 48%,#a9292d 50%)}
.theme-switcher button[data-theme="frost"]{background:linear-gradient(135deg,#e8ede8 48%,#52705d 50%)}

/* keep every name on one line on mobile */
@media(max-width:700px){
  .names{
    font-size:clamp(42px,13vw,60px)!important;
    line-height:.84!important;
    letter-spacing:-.05em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .names > br{display:block}
  .names{
    white-space:normal;
  }
}
@media(max-width:390px){
  .names{
    font-size:clamp(38px,12.2vw,52px)!important;
    letter-spacing:-.055em!important;
  }
}



/* Decorative objects: smaller, calmer and strictly symmetrical */
@media (min-width:701px){
  .poster > .flower.tl,
  .poster > .flower.tr{
    width:520px!important;
    top:-78px!important;
  }
  .poster > .flower.tl{left:-180px!important;right:auto!important;transform:rotate(-3deg)!important}
  .poster > .flower.tr{right:-180px!important;left:auto!important;transform:rotate(3deg)!important}

  .poster > .flower.bl,
  .poster > .flower.br{
    width:570px!important;
    bottom:-118px!important;
  }
  .poster > .flower.bl{left:-200px!important;right:auto!important;transform:rotate(-2deg)!important}
  .poster > .flower.br{right:-200px!important;left:auto!important;transform:rotate(2deg)!important}

  .footer > .flower.top-center,
  .footer > .flower.bottom-center{
    width:440px!important;
    left:50%!important;
    transform:translateX(-50%)!important;
  }
  .footer > .flower.top-center{top:-52px!important;bottom:auto!important}
  .footer > .flower.bottom-center{bottom:-52px!important;top:auto!important}
}

@media (max-width:700px){
  .poster > .flower.tl,
  .poster > .flower.tr{
    width:270px!important;
    top:-46px!important;
  }
  .poster > .flower.tl{left:-132px!important;right:auto!important;transform:rotate(-3deg)!important}
  .poster > .flower.tr{right:-132px!important;left:auto!important;transform:rotate(3deg)!important}

  .poster > .flower.bl,
  .poster > .flower.br{
    width:292px!important;
    bottom:-76px!important;
  }
  .poster > .flower.bl{left:-145px!important;right:auto!important;transform:rotate(-2deg)!important}
  .poster > .flower.br{right:-145px!important;left:auto!important;transform:rotate(2deg)!important}

  .footer > .flower.top-center,
  .footer > .flower.bottom-center{
    width:275px!important;
    left:50%!important;
    transform:translateX(-50%)!important;
  }
  .footer > .flower.top-center{top:-34px!important;bottom:auto!important}
  .footer > .flower.bottom-center{bottom:-34px!important;top:auto!important}
}

@media (max-width:390px){
  .poster > .flower.tl,
  .poster > .flower.tr{width:248px!important}
  .poster > .flower.tl{left:-122px!important}
  .poster > .flower.tr{right:-122px!important}
  .poster > .flower.bl,
  .poster > .flower.br{width:268px!important}
  .poster > .flower.bl{left:-133px!important}
  .poster > .flower.br{right:-133px!important}
  .footer > .flower.top-center,
  .footer > .flower.bottom-center{width:250px!important}
}



/* Location floral decor stays fully inside the card */
.location-card .flower{
  top:8px!important;
  right:6px!important;
  width:168px!important;
  max-width:42%!important;
}
@media(max-width:700px){
  .location-card .flower{
    top:8px!important;
    right:6px!important;
    width:156px!important;
    max-width:44%!important;
  }
}



/* Readable typography pass: no decorative label should look hidden. */
.kicker{font-size:11px;line-height:1.5;letter-spacing:.24em}
.city{font-size:11px;line-height:1.45;letter-spacing:.22em}
.btn{font-size:11px;line-height:1.25;letter-spacing:.09em}
.section-index{font-size:10px;line-height:1.4;letter-spacing:.18em}
.section-lead{font-size:14px;line-height:1.7}
.story-photo::before{font-size:10px;line-height:1.4;letter-spacing:.20em}
.count-label{font-size:10px;line-height:1.35;letter-spacing:.12em}
.timeline-item p{font-size:14px;line-height:1.62}
.timeline-note{font-size:10.5px;line-height:1.45;letter-spacing:.09em}
.location-card .num{font-size:10.5px;line-height:1.4;letter-spacing:.18em}
.location-card p{font-size:14px;line-height:1.65}
.location-card a{font-size:11px;line-height:1.35;letter-spacing:.08em}
.dress-aside strong{font-size:10.5px;line-height:1.4;letter-spacing:.12em}
.dress-aside p{font-size:13px;line-height:1.62}
.photo::after{font-size:10px;line-height:1.4;letter-spacing:.12em}
.detail-card p{font-size:14px;line-height:1.65}
.contact-role{font-size:12px;line-height:1.45}
.contact-link{font-size:11px;line-height:1.35;letter-spacing:.08em}
.rsvp-note p{font-size:13px;line-height:1.65}
.field-group label,.choice-title{font-size:10.5px;line-height:1.4;letter-spacing:.06em}
.choice{font-size:11px;line-height:1.3}
.submit{font-size:11px;line-height:1.3;letter-spacing:.07em}
.footer small{font-size:10.5px;line-height:1.45;letter-spacing:.16em}
.footer p{font-size:12.5px;line-height:1.5}
.theme-switcher span{font-size:10px;line-height:1.3;letter-spacing:.08em}

@media(max-width:700px){
  .kicker{font-size:10px!important;letter-spacing:.18em!important}
  .hero-copy{font-size:13px!important;line-height:1.65!important}
  .city{font-size:10.5px!important;letter-spacing:.18em!important}
  .hero-actions .btn{font-size:10.5px!important;line-height:1.3!important}
  .section-index{font-size:10px!important;line-height:1.4!important;letter-spacing:.15em!important}
  .section-kicker{font-size:17px!important}
  .section-lead{font-size:14px!important;line-height:1.66!important}
  .story-photo::before{font-size:10px!important}
  .count-label{font-size:10px!important;line-height:1.35!important}
  .timeline-item p{font-size:14px!important;line-height:1.6!important}
  .timeline-note{font-size:10.5px!important;line-height:1.42!important}
  .location-card .num{font-size:10.5px!important}
  .location-card p{font-size:14px!important;line-height:1.62!important}
  .location-card a{font-size:11px!important}
  .dress-aside strong{font-size:10.5px!important}
  .dress-aside p{font-size:13.5px!important;line-height:1.6!important}
  .photo::after{font-size:10px!important}
  .detail-card p{font-size:14px!important;line-height:1.62!important}
  .contact-role{font-size:12px!important;line-height:1.4!important}
  .contact-link{font-size:11px!important}
  .rsvp-note p{font-size:13px!important;line-height:1.62!important}
  .field-group label,.choice-title{font-size:10.5px!important;line-height:1.4!important}
  .choice{font-size:11px!important;line-height:1.3!important}
  .submit{font-size:11px!important}
  .footer small{font-size:10.5px!important;line-height:1.4!important}
  .footer p{font-size:12.5px!important;line-height:1.45!important}
}



/* v7: mobile hero composition + readable typography */
@media(max-width:700px){
  .poster{overflow:hidden!important;}
  .hero{padding:118px 20px 108px!important;}
  .hero-inner{z-index:6!important;}

  .kicker{font-size:10px!important;letter-spacing:.20em!important;font-weight:700!important;}
  .names{font-family:var(--serif)!important;font-size:clamp(50px,15.2vw,68px)!important;line-height:.86!important;letter-spacing:-.035em!important;font-weight:500!important;}
  .names .amp{font-size:.58em!important;margin:3px 0 -1px!important;color:color-mix(in srgb,var(--gold) 48%,transparent)!important;}
  .hero-copy{width:min(90%,390px)!important;font-size:13px!important;line-height:1.62!important;font-weight:500!important;}
  .date-row{font-size:13px!important;letter-spacing:.16em!important;}
  .city{margin-top:11px!important;font-size:10.5px!important;line-height:1.4!important;letter-spacing:.14em!important;font-weight:700!important;}
  .hero-actions .btn{font-size:9.5px!important;letter-spacing:.08em!important;}

  /* Each floral is intentionally visible, rather than half-hidden off canvas. */
  .poster>.flower.tl{width:205px!important;left:-42px!important;top:-38px!important;transform:rotate(-5deg)!important;}
  .poster>.flower.tr{width:205px!important;right:-38px!important;top:-35px!important;transform:rotate(5deg)!important;}
  .poster>.flower.bl{width:230px!important;left:-58px!important;bottom:-42px!important;transform:rotate(-3deg)!important;}
  .poster>.flower.br{width:235px!important;right:-62px!important;bottom:-48px!important;transform:rotate(3deg)!important;}
}
@media(max-width:390px){
  .poster>.flower.tl{width:185px!important;left:-44px!important;top:-34px!important;}
  .poster>.flower.tr{width:185px!important;right:-42px!important;top:-32px!important;}
  .poster>.flower.bl{width:205px!important;left:-56px!important;bottom:-36px!important;}
  .poster>.flower.br{width:210px!important;right:-58px!important;bottom:-40px!important;}
  .names{font-size:clamp(47px,14.5vw,60px)!important;}
}


/* === Production shared blocks === */
.botanicalShared{position:relative;z-index:2}
.botanicalLocationBlock .iviLocation,
.botanicalLocationBlock .locationBlock,
.botanicalLocationBlock [data-location-block]{background:transparent!important;color:var(--ink)}
.botanicalLocationBlock .locationCard,
.botanicalLocationBlock .iviLocationCard,
.botanicalLocationBlock article{border-color:color-mix(in srgb,var(--ink) 12%,transparent)!important;background:color-mix(in srgb,var(--paper-3) 58%,transparent)!important;color:var(--ink)!important}
.botanicalLocationBlock a{color:var(--accent)!important}
.botanicalDetailsBlock{--ink:var(--ink);--text:var(--ink);--muted:var(--muted);--accent:var(--accent);--line:color-mix(in srgb,var(--ink) 12%,transparent)}

/* Universal timer block, restyled for Botanical Story */
.botanicalTimer .iviTimer{--timer-bg:transparent;--timer-text:var(--ink);--timer-accent:var(--accent);--timer-border:color-mix(in srgb,var(--ink) 10%,transparent);--timer-radius:0;padding:0;color:var(--ink)}
.botanicalTimer .iviTimer__inner{max-width:none;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none}
.botanicalTimer .iviTimer__kicker{font-family:var(--serif);font-style:italic;font-size:18px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--gold);opacity:1}
.botanicalTimer .iviTimer__title{margin:5px 0 0;font:500 clamp(52px,6vw,80px)/.9 var(--serif);letter-spacing:-.035em}
.botanicalTimer .iviTimer__text{max-width:620px;margin:17px auto 0;color:var(--muted);font-size:13px;line-height:1.75;opacity:1}
.botanicalTimer .iviTimer__grid{max-width:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:40px 0 0;background:color-mix(in srgb,var(--paper-3) 72%,transparent)}
.botanicalTimer .iviTimer__grid>div{padding:28px 12px;border:0;border-radius:0;background:transparent}
.botanicalTimer .iviTimer__grid b{font:500 clamp(42px,5vw,60px)/1 var(--serif);color:color-mix(in srgb,var(--accent) 72%,var(--ink))}
.botanicalTimer .iviTimer__grid span{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:1}
.botanicalTimer .iviTimer__expired{margin-top:30px;font:500 clamp(34px,4vw,54px)/1 var(--serif);color:var(--accent)}

.story-photo.has-image::before,.photo.has-image::before{display:none}
.story-photo>img.story-img,.photo>img.gallery-img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1}
.gallery .photo{position:relative;overflow:hidden}
.gallery .photo a{display:block;position:absolute;inset:0;z-index:2}
.gallery .photo a img{width:100%;height:100%;object-fit:cover}

@media(max-width:700px){
  .botanicalTimer .iviTimer__title{font-size:clamp(38px,12vw,54px)}
  .botanicalTimer .iviTimer__grid{grid-template-columns:repeat(2,1fr)}
  .botanicalTimer .iviTimer__grid>div{padding:22px 8px}
  .botanicalTimer .iviTimer__grid span{font-size:10px}
}


/* =========================================================
   BOTANICAL STORY — shared blocks integration v2
   Location + RSVP are deliberately restyled after the shared
   block CSS, so the template owns the final appearance.
========================================================= */

/* A little breathing room after the hero */
.page > .section:first-of-type{
  padding-top:clamp(72px,8vw,118px);
}

/* ---------- LOCATION ---------- */
.botanicalLocationBlock{
  margin-top:clamp(28px,4vw,54px);
}
.botanicalLocationBlock .iviLoc{
  width:100%;
  color:var(--ink);
}
.botanicalLocationBlock .iviLocGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(18px,2.2vw,30px)!important;
}
.botanicalLocationBlock .iviLocGrid > .iviLocCard:only-child{
  grid-column:1 / -1;
}
.botanicalLocationBlock .iviLocCard{
  position:relative!important;
  overflow:hidden!important;
  min-width:0!important;
  border:1px solid color-mix(in srgb,var(--ink) 11%,transparent)!important;
  border-radius:30px!important;
  background:color-mix(in srgb,var(--paper-3) 94%,transparent)!important;
  box-shadow:0 22px 60px color-mix(in srgb,var(--ink) 7%,transparent)!important;
}
.botanicalLocationBlock .iviLocPhoto{
  height:clamp(220px,28vw,390px)!important;
  overflow:hidden!important;
  background:var(--paper-2)!important;
}
.botanicalLocationBlock .iviLocPhoto img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
}
.botanicalLocationBlock .iviLocBody{
  padding:clamp(22px,3vw,34px)!important;
}
.botanicalLocationBlock .iviLocBadge{
  display:inline-flex!important;
  align-items:center!important;
  min-height:30px!important;
  margin:0 0 16px!important;
  padding:0 12px!important;
  border:1px solid color-mix(in srgb,var(--gold) 55%,transparent)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--gold)!important;
  font:700 11px/1 var(--sans)!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.botanicalLocationBlock .iviLocName{
  margin:0!important;
  color:var(--ink)!important;
  font-family:var(--serif)!important;
  font-size:clamp(31px,3.2vw,48px)!important;
  font-weight:500!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
}
.botanicalLocationBlock .iviLocAddr{
  margin-top:14px!important;
  color:var(--ink)!important;
  font:600 14px/1.55 var(--sans)!important;
}
.botanicalLocationBlock .iviLocNote{
  margin-top:10px!important;
  color:var(--muted)!important;
  font:500 13px/1.65 var(--sans)!important;
}
.botanicalLocationBlock .iviLocActions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  margin-top:22px!important;
}
.botanicalLocationBlock .iviBtn{
  min-height:46px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 18px!important;
  border-radius:999px!important;
  font:700 11px/1 var(--sans)!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
}
.botanicalLocationBlock .iviBtnPrimary{
  border:1px solid var(--accent)!important;
  background:var(--accent)!important;
  color:var(--accent-ink)!important;
}
.botanicalLocationBlock .iviBtnGhost{
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent)!important;
  background:transparent!important;
  color:var(--ink)!important;
}

/* =========================================================
   BOTANICAL STORY v3 — native location + readable RSVP
========================================================= */

/* LOCATION: native editorial cards */
.botanicalLocationSection .section-inner{padding-top:clamp(82px,9vw,124px)}
.botanicalLocations{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.botanicalLocations.is-single{grid-template-columns:1fr}
.botanicalLocationCard{
  position:relative;
  min-height:360px;
  overflow:hidden;
  padding:30px 30px 28px;
  border:1px solid color-mix(in srgb,var(--ink) 5%,transparent);
  border-radius:26px;
  background:color-mix(in srgb,var(--paper-3) 86%,transparent);
  box-shadow:0 20px 50px color-mix(in srgb,var(--ink) 4%,transparent);
}
.botanicalLocationMeta{
  position:relative;z-index:3;
  color:var(--gold);
  font:700 10px/1.2 var(--sans);
  letter-spacing:.21em;
}
.botanicalLocationFlower{
  position:absolute;
  z-index:1;
  top:-18px;
  right:-6px;
  width:190px;
  height:auto;
  pointer-events:none;
  object-fit:contain;
}
.botanicalLocationContent{
  position:relative;z-index:2;
  max-width:84%;
  margin-top:112px;
}
.botanicalLocationCard h3{
  margin:0;
  color:var(--ink);
  font:500 clamp(38px,4vw,54px)/.98 var(--serif);
  letter-spacing:-.035em;
}
.botanicalLocationAddress,
.botanicalLocationNote{
  margin:15px 0 0;
  color:var(--muted);
  font:500 14px/1.65 var(--sans);
}
.botanicalLocationNote{margin-top:7px}
.botanicalLocationMap{
  display:inline-flex;
  margin-top:20px;
  color:var(--accent);
  font:700 10px/1.2 var(--sans);
  letter-spacing:.12em;
  text-decoration:none;
  text-transform:uppercase;
}
.botanicalLocationMap:hover{text-decoration:underline;text-underline-offset:4px}

@media(max-width:760px){
  .botanicalLocationSection .section-inner{padding-top:72px}
  .botanicalLocations{grid-template-columns:1fr;gap:14px}
  .botanicalLocationCard{min-height:310px;padding:24px 20px;border-radius:22px}
  .botanicalLocationFlower{top:-12px;right:-20px;width:155px}
  .botanicalLocationContent{max-width:100%;margin-top:90px}
  .botanicalLocationCard h3{font-size:37px}
  .botanicalLocationAddress,.botanicalLocationNote{font-size:13px}
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — RSVP
   Один стиль с остальными секциями шаблона.
========================================================= */

.botanicalRsvpBlock{
  width:min(960px,100%);
  margin:0 auto;
  color:var(--ink);

  --rsvp-paper:color-mix(in srgb,var(--paper-3) 88%,transparent);
  --rsvp-paper-strong:color-mix(in srgb,var(--paper-3) 96%,var(--paper) 4%);
  --rsvp-line:color-mix(in srgb,var(--ink) 11%,transparent);
  --rsvp-line-strong:color-mix(in srgb,var(--gold) 58%,var(--ink) 42%);
  --rsvp-text:var(--ink);
  --rsvp-muted:var(--muted);
  --rsvp-accent:var(--accent);
}

/* Общий блок становится частью секции, а не отдельной белой карточкой */
.botanicalRsvpBlock .rsvpSection{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:var(--rsvp-text)!important;
}

.botanicalRsvpBlock .rsvpSectionHead{
  display:none!important;
}

.botanicalRsvpBlock .rsvpGrid{
  display:block!important;
  width:100%!important;
  margin:0!important;
}

.botanicalRsvpBlock .rsvpFormCard{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(26px,3vw,36px)!important;
  border:1px solid var(--rsvp-line)!important;
  border-radius:26px!important;
  background:var(--rsvp-paper)!important;
  box-shadow:0 20px 50px color-mix(in srgb,var(--ink) 4%,transparent)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Ритм формы */
.botanicalRsvpBlock #rsvpForm{
  display:grid!important;
  gap:18px!important;
}

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

.botanicalRsvpBlock .formRow{
  display:grid!important;
  gap:8px!important;
  margin:0!important;
}

.botanicalRsvpBlock .label{
  margin:0!important;
  color:var(--rsvp-text)!important;
  font:700 12px/1.4 var(--sans)!important;
  letter-spacing:.01em!important;
}

/* Поля в том же мягком карточном стиле */
.botanicalRsvpBlock .field{
  width:100%!important;
  min-height:48px!important;
  padding:0 14px!important;
  border:1px solid var(--rsvp-line)!important;
  border-radius:13px!important;
  background:var(--rsvp-paper-strong)!important;
  color:var(--rsvp-text)!important;
  font:500 14px/1.45 var(--sans)!important;
  box-shadow:none!important;
  outline:none!important;
}

.botanicalRsvpBlock textarea.field{
  min-height:104px!important;
  padding:13px 14px!important;
  resize:vertical!important;
}

.botanicalRsvpBlock .field::placeholder{
  color:var(--rsvp-muted)!important;
  opacity:.74!important;
}

.botanicalRsvpBlock .field:focus{
  border-color:var(--gold)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 10%,transparent)!important;
}

/* Варианты выбора как аккуратные outline-кнопки */
.botanicalRsvpBlock .chips{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:9px!important;
  width:100%!important;
}

.botanicalRsvpBlock .chip{
  min-height:44px!important;
  padding:9px 13px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  border:1px solid var(--rsvp-line-strong)!important;
  border-radius:12px!important;
  background:transparent!important;
  color:var(--rsvp-text)!important;
  font:600 12px/1.3 var(--sans)!important;
  box-shadow:none!important;
  transform:none!important;
  cursor:pointer!important;
}

.botanicalRsvpBlock .chip:hover{
  border-color:var(--rsvp-accent)!important;
  color:var(--rsvp-accent)!important;
}

/* Родные selected-состояния общего блока */
.botanicalRsvpBlock .chip.active,
.botanicalRsvpBlock .chip.is-active,
.botanicalRsvpBlock .chip.selected,
.botanicalRsvpBlock .chip[data-active="true"],
.botanicalRsvpBlock .chip[aria-pressed="true"],
.botanicalRsvpBlock .chip:has(input:checked){
  border:2px solid var(--rsvp-accent)!important;
  background:transparent!important;
  color:var(--rsvp-accent)!important;
  font-weight:800!important;
}

/* Не показываем технические checkbox/radio внутри chip */
.botanicalRsvpBlock .chip input[type="checkbox"],
.botanicalRsvpBlock .chip input[type="radio"]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

.botanicalRsvpBlock .rsvpTotal{
  display:inline-flex!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:40px!important;
  align-items:center!important;
  padding:9px 12px!important;
  border:1px solid var(--rsvp-line)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--rsvp-text)!important;
  font:600 12px/1.4 var(--sans)!important;
}

/* Согласие в том же визуальном языке */
.botanicalRsvpBlock .consent{
  padding:13px 14px!important;
  border:1px solid var(--rsvp-line)!important;
  border-radius:14px!important;
  background:transparent!important;
  color:var(--rsvp-muted)!important;
  font:500 11px/1.55 var(--sans)!important;
}

.botanicalRsvpBlock .consent a{
  color:var(--rsvp-accent)!important;
  text-underline-offset:3px!important;
}

/* Системные сообщения */
.botanicalRsvpBlock .statusBox,
.botanicalRsvpBlock .previewLockNote{
  border:1px solid var(--rsvp-line)!important;
  border-radius:14px!important;
  background:var(--rsvp-paper)!important;
  color:var(--rsvp-text)!important;
}

/* Главная кнопка такая же, как CTA в hero */
.botanicalRsvpBlock .btn,
.botanicalRsvpBlock .btn-full,
.botanicalRsvpBlock button[type="submit"]{
  min-height:48px!important;
  padding:0 20px!important;
  border:1px solid var(--rsvp-accent)!important;
  border-radius:999px!important;
  background:var(--rsvp-accent)!important;
  color:var(--accent-ink)!important;
  font:700 11px/1 var(--sans)!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  box-shadow:none!important;
}

/* Тёмные темы наследуют те же токены и структуру */
[data-theme="deep"] .botanicalRsvpBlock,
[data-theme="pine"] .botanicalRsvpBlock,
[data-theme="moss"] .botanicalRsvpBlock,
[data-theme="cedar"] .botanicalRsvpBlock,
[data-theme="night"] .botanicalRsvpBlock,
.theme-deep .botanicalRsvpBlock,
.theme-pine .botanicalRsvpBlock,
.theme-moss .botanicalRsvpBlock,
.theme-cedar .botanicalRsvpBlock,
.theme-night .botanicalRsvpBlock{
  --rsvp-line:color-mix(in srgb,var(--gold) 22%,transparent);
  --rsvp-line-strong:color-mix(in srgb,var(--gold) 70%,var(--ink) 30%);
}

@media(max-width:760px){
  .botanicalRsvpBlock{
    width:100%;
  }

  .botanicalRsvpBlock .rsvpFormCard{
    padding:18px 14px!important;
    border-radius:20px!important;
  }

  .botanicalRsvpBlock #rsvpForm{
    gap:14px!important;
  }

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

  .botanicalRsvpBlock .chips{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .botanicalRsvpBlock .chip{
    min-height:42px!important;
    padding:8px 10px!important;
  }
}

@media(max-width:430px){
  .botanicalRsvpBlock .chips{
    grid-template-columns:1fr!important;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — OPTIONAL LOCATION PHOTO
========================================================= */

.botanicalLocationCard.has-photo{
  padding-top:0;
}

.botanicalLocationPhoto{
  position:relative;
  width:calc(100% + 60px);
  margin:0 -30px 24px;
  height:clamp(190px,22vw,285px);
  overflow:hidden;
  border-bottom:1px solid color-mix(in srgb,var(--ink) 7%,transparent);
  background:var(--paper-2);
}

.botanicalLocationPhoto::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    transparent 65%,
    color-mix(in srgb,var(--paper-3) 24%,transparent) 100%
  );
}

.botanicalLocationPhoto img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.botanicalLocationCard.has-photo .botanicalLocationMeta{
  margin-top:0;
}

.botanicalLocationCard.has-photo .botanicalLocationFlower{
  top:clamp(170px,20vw,250px);
}

.botanicalLocationCard.has-photo .botanicalLocationContent{
  margin-top:76px;
}

.botanicalLocations.is-single .botanicalLocationCard.has-photo .botanicalLocationPhoto{
  height:clamp(230px,32vw,420px);
}

@media(max-width:760px){
  .botanicalLocationPhoto{
    width:calc(100% + 40px);
    margin:0 -20px 20px;
    height:210px;
  }

  .botanicalLocationCard.has-photo .botanicalLocationFlower{
    top:176px;
    right:-18px;
  }

  .botanicalLocationCard.has-photo .botanicalLocationContent{
    margin-top:64px;
  }

  .botanicalLocations.is-single .botanicalLocationCard.has-photo .botanicalLocationPhoto{
    height:230px;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — DETAILS
   Общий details.php, оформленный в языке шаблона.
========================================================= */

.botanicalDetailsBlock{
  --bd-paper:color-mix(in srgb,var(--paper-3) 88%,transparent);
  --bd-paper-strong:color-mix(in srgb,var(--paper-3) 96%,var(--paper) 4%);
  --bd-line:color-mix(in srgb,var(--ink) 9%,transparent);
  --bd-line-gold:color-mix(in srgb,var(--gold) 48%,var(--ink) 52%);
  --bd-text:var(--ink);
  --bd-muted:var(--muted);
  --bd-accent:var(--accent);
  width:100%;
}

.botanicalDetailsBlock .le-details{
  position:relative;
  width:100%;
  margin:0;
  padding:0;
  color:var(--bd-text);
  background:transparent;
}

/* Заголовок как у остальных разделов */
.botanicalDetailsBlock .le-details__header{
  position:relative;
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  column-gap:26px;
  max-width:none;
  margin:0 0 clamp(30px,4.5vw,52px);
  padding:0;
  text-align:left;
}

.botanicalDetailsBlock .le-details__header::before{
  content:"07 / ДЕТАЛИ";
  grid-column:1;
  grid-row:1 / span 3;
  padding-top:5px;
  color:var(--muted);
  font:700 10px/1.35 var(--sans);
  letter-spacing:.22em;
  text-transform:uppercase;
}

.botanicalDetailsBlock .le-details__kicker,
.botanicalDetailsBlock .le-details__title,
.botanicalDetailsBlock .le-details__text{
  grid-column:2;
}

.botanicalDetailsBlock .le-details__kicker{
  margin:0 0 10px;
  color:var(--gold);
  font:500 clamp(17px,1.8vw,23px)/1.2 var(--script);
  letter-spacing:0;
  text-transform:none;
}

.botanicalDetailsBlock .le-details__title{
  margin:0;
  max-width:900px;
  color:var(--ink);
  font:500 clamp(48px,6.7vw,92px)/.94 var(--serif);
  letter-spacing:-.045em;
}

.botanicalDetailsBlock .le-details__text{
  max-width:720px;
  margin:18px 0 0;
  color:var(--muted);
  font:500 14px/1.7 var(--sans);
}

/* Карточки */
.botanicalDetailsBlock .le-details__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  width:100%;
}

.botanicalDetailsBlock .le-details__card{
  position:relative;
  display:flex;
  min-width:0;
  min-height:250px;
  flex-direction:column;
  padding:26px 24px 24px;
  overflow:hidden;
  border:1px solid var(--bd-line);
  border-radius:24px;
  background:var(--bd-paper);
  color:var(--bd-text);
  box-shadow:0 18px 45px color-mix(in srgb,var(--ink) 4%,transparent);
}

.botanicalDetailsBlock .le-details__card::after{
  content:"";
  position:absolute;
  right:-34px;
  top:-30px;
  width:115px;
  height:115px;
  border:1px solid color-mix(in srgb,var(--gold) 17%,transparent);
  border-radius:50%;
  pointer-events:none;
}

.botanicalDetailsBlock .le-details__card-icon{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin:0 0 42px;
  border:1px solid var(--bd-line-gold);
  border-radius:50%;
  color:var(--gold);
  background:transparent;
  font:700 10px/1 var(--sans);
  letter-spacing:.12em;
}

.botanicalDetailsBlock .le-details__card-icon--wishlist{
  border-color:color-mix(in srgb,var(--accent) 40%,var(--gold) 60%);
}

.botanicalDetailsBlock .le-details__card-icon img{
  width:19px;
  height:19px;
  object-fit:contain;
  filter:none;
}

.botanicalDetailsBlock .le-details__provider{
  margin:0 0 9px;
  color:var(--gold);
  font:700 9px/1.3 var(--sans);
  letter-spacing:.16em;
  text-transform:uppercase;
}

.botanicalDetailsBlock .le-details__card-title{
  margin:0;
  color:var(--ink);
  font:500 clamp(28px,3vw,40px)/1 var(--serif);
  letter-spacing:-.03em;
}

.botanicalDetailsBlock .le-details__card-text{
  margin:13px 0 0;
  color:var(--muted);
  font:500 13px/1.65 var(--sans);
}

.botanicalDetailsBlock .le-details__wishlist-button{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  min-height:40px;
  align-items:center;
  gap:9px;
  margin-top:auto;
  padding:18px 0 0;
  color:var(--accent);
  background:transparent;
  border:0;
  border-radius:0;
  font:700 10px/1.2 var(--sans);
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
}

.botanicalDetailsBlock .le-details__wishlist-button svg{
  width:16px;
  height:16px;
  transition:transform .2s ease;
}

.botanicalDetailsBlock .le-details__wishlist-button:hover svg{
  transform:translateX(4px);
}

/* RESPONSIVE: both shared sections follow the same mobile rhythm */
@media(max-width:900px){
  .botanicalDetailsBlock .le-details__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
    grid-template-columns:1fr!important;
  }
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
}

@media(max-width:760px){
  .botanicalDetailsBlock .le-details__header,
    display:block!important;
    margin-bottom:26px!important;
  }

  .botanicalDetailsBlock .le-details__header::before,
    display:block;
    margin:0 0 14px;
    padding:0;
  }

  .botanicalDetailsBlock .le-details__title,
    font-size:clamp(42px,13vw,58px)!important;
  }

  .botanicalDetailsBlock .le-details__text,
    margin-top:14px!important;
    font-size:13px!important;
  }

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

  .botanicalDetailsBlock .le-details__card,
    min-height:0!important;
    padding:20px 18px!important;
    border-radius:20px!important;
  }

  .botanicalDetailsBlock .le-details__card-icon{
    margin-bottom:32px;
  }
    margin-bottom:30px!important;
  }

  .botanicalDetailsBlock .le-details__card-title{
    font-size:32px;
  }
    font-size:33px!important;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — UNIFIED SECTION SPACING V21
   Единый вертикальный ритм для всех секций.
========================================================= */

:root{
  --bi-section-space:clamp(72px,7vw,104px);
  --bi-section-space-mobile:58px;
}

/* Все обычные секции получают одинаковый верх/низ */
.page > .section,
body > .section{
  margin:0!important;
  padding:var(--bi-section-space) 0!important;
}

/* Контейнеры секций не создают дополнительный вертикальный провал */
.page > .section > .section-inner,
body > .section > .section-inner{
  padding-top:0!important;
  padding-bottom:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Сбрасываем старые особые отступы конкретных разделов */
.botanicalLocationSection .section-inner,
.botanicalSharedSection .section-inner,
.botanicalSharedSection--details .section-inner,
.botanicalSharedSection--contacts .section-inner,
#rsvp > .section-inner,
#details > .section-inner,
#contacts > .section-inner,
#location > .section-inner,
#gallery > .section-inner,
#dresscode > .section-inner{
  padding-top:0!important;
  padding-bottom:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Shared-блоки тоже не добавляют внешние вертикальные поля */
.botanicalDetailsBlock,
.botanicalRsvpBlock,
.botanicalLocationBlock{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Заголовок секции имеет одинаковое расстояние до контента */
.section-head{
  margin-top:0!important;
  margin-bottom:clamp(30px,4vw,48px)!important;
}

/* Contacts/details имеют свои header внутри подключаемых блоков */
.botanicalDetailsBlock .le-details__header,
  margin-top:0!important;
  margin-bottom:clamp(30px,4vw,48px)!important;
}

/* Последний элемент секции не создаёт случайный хвост */
.page > .section > .section-inner > :last-child,
body > .section > .section-inner > :last-child{
  margin-bottom:0!important;
}

/* Убираем особенно большой разрыв перед RSVP */
#rsvp{
  margin-top:0!important;
}
.botanicalSharedSection--contacts + #rsvp,
#contacts + #rsvp,
.botanicalSharedSection--contacts + .section{
  margin-top:0!important;
}

/* Мобильный ритм */
@media(max-width:760px){
  :root{
    --bi-section-space:var(--bi-section-space-mobile);
  }

  .page > .section,
  body > .section{
    padding:var(--bi-section-space-mobile) 0!important;
  }

  .section-head,
  .botanicalDetailsBlock .le-details__header,
    margin-bottom:26px!important;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — MOBILE HERO / STORY OVERLAP V24
   Нижние цветы возвращены к исходной композиции и переходят
   из hero поверх начала следующей секции.
========================================================= */

@media(max-width:700px){
  /*
   * Важно: сам hero больше не режет нижний декор.
   * z-index держит цветы над фоном следующей секции.
   */
  .poster{
    position:relative!important;
    overflow:visible!important;
    z-index:4!important;
  }

  .poster > .flower{
    z-index:6!important;
    pointer-events:none!important;
  }

  /*
   * Возвращаем естественный крупный размер и отрицательный bottom.
   * Теперь отрицательный bottom не режется, а создаёт настоящий overlap.
   */
  .poster > .flower.bl{
    width:245px!important;
    left:-42px!important;
    bottom:-28px!important;
    transform:rotate(-4deg)!important;
  }

  .poster > .flower.br{
    width:232px!important;
    right:-44px!important;
    bottom:-36px!important;
    transform:rotate(4deg)!important;
  }

  /*
   * Hero не нужно искусственно раздувать снизу.
   * Цветы визуально продолжаются уже в следующей секции.
   */
  .hero{
    padding-bottom:78px!important;
  }

  /*
   * Следующая секция располагается ниже по слою.
   * Небольшой верхний запас оставляет место декору,
   * а текст истории начинается уже после цветов.
   */
  .poster + .section{
    position:relative!important;
    z-index:1!important;
    padding-top:128px!important;
  }

  .poster + .section > .section-inner{
    position:relative!important;
    z-index:2!important;
  }
}

@media(max-width:430px){
  .poster > .flower.bl{
    width:225px!important;
    left:-38px!important;
    bottom:-34px!important;
  }

  .poster > .flower.br{
    width:216px!important;
    right:-40px!important;
    bottom:-30px!important;
  }

  .poster + .section{
    padding-top:118px!important;
  }
}

@media(max-width:370px){
  .poster > .flower.bl{
    width:210px!important;
    left:-35px!important;
    bottom:-30px!important;
  }

  .poster > .flower.br{
    width:202px!important;
    right:-36px!important;
    bottom:-28px!important;
  }

  .poster + .section{
    padding-top:108px!important;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — HERO / STORY MOBILE V27
   Цветы примерно -20px и более плотный переход в Историю.
========================================================= */

@media(max-width:700px){
  .poster{
    overflow:visible!important;
  }

  .poster > .flower.bl{
    bottom:-20px!important;
  }

  .poster > .flower.br{
    bottom:-20px!important;
  }

  /* Убираем лишний воздух внутри hero снизу */
  .hero{
    padding-bottom:52px!important;
  }

  /*
   * В V24 для overlap было 128px.
   * Уменьшаем этот промежуток, чтобы История начиналась ближе
   * и цветы связывали обе секции.
   */
  .poster + .section{
    padding-top:82px!important;
  }
}

@media(max-width:430px){
  .poster > .flower.bl,
  .poster > .flower.br{
    bottom:-20px!important;
  }

  .hero{
    padding-bottom:46px!important;
  }

  .poster + .section{
    padding-top:74px!important;
  }
}

@media(max-width:370px){
  .poster > .flower.bl,
  .poster > .flower.br{
    bottom:-20px!important;
  }

  .poster + .section{
    padding-top:68px!important;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — CONTACTS V28
   Компактная горизонтальная композиция как в референсе.
========================================================= */

.botanicalContactsBlock{
  width:100%;
  color:var(--ink);
}

/* общий contacts.php */
.botanicalContactsBlock .ivi-contacts{
  --ivi-contacts-bg:transparent;
  --ivi-contacts-card:color-mix(in srgb,var(--paper-3) 60%,transparent);
  --ivi-contacts-text:var(--ink);
  --ivi-contacts-muted:var(--muted);
  --ivi-contacts-accent:var(--accent);
  --ivi-contacts-line:color-mix(in srgb,var(--ink) 8%,transparent);

  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  overflow:visible!important;
}

.botanicalContactsBlock .ivi-contacts__inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

/* Заголовок остаётся в общей системе Ботанической истории */
.botanicalContactsBlock .ivi-contacts__head{
  position:relative!important;
  display:grid!important;
  grid-template-columns:110px minmax(0,1fr)!important;
  column-gap:26px!important;
  max-width:none!important;
  margin:0 0 clamp(30px,4vw,48px)!important;
  text-align:left!important;
}

.botanicalContactsBlock .ivi-contacts__head::before{
  content:"08 / КОНТАКТЫ";
  grid-column:1;
  grid-row:1 / span 3;
  padding-top:5px;
  color:var(--muted);
  font:700 10px/1.35 var(--sans);
  letter-spacing:.22em;
  text-transform:uppercase;
}

.botanicalContactsBlock .ivi-contacts__kicker,
.botanicalContactsBlock .ivi-contacts__title,
.botanicalContactsBlock .ivi-contacts__text{
  grid-column:2;
}

.botanicalContactsBlock .ivi-contacts__kicker{
  margin:0 0 10px!important;
  color:var(--gold)!important;
  font:500 clamp(17px,1.8vw,23px)/1.2 var(--script)!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

.botanicalContactsBlock .ivi-contacts__title{
  margin:0!important;
  max-width:900px!important;
  color:var(--ink)!important;
  font:500 clamp(48px,6.7vw,92px)/.94 var(--serif)!important;
  letter-spacing:-.045em!important;
}

.botanicalContactsBlock .ivi-contacts__text{
  max-width:720px!important;
  margin:18px 0 0!important;
  color:var(--muted)!important;
  font:500 14px/1.7 var(--sans)!important;
}

/* Карточки: как в wedding-christmas, компактные и горизонтальные */
.botanicalContactsBlock .ivi-contacts__grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  width:100%!important;
}

.botanicalContactsBlock .ivi-contact{
  position:relative!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  grid-template-areas:
    "avatar name actions"
    "avatar role actions"
    "avatar phone actions"!important;
  align-items:center!important;
  column-gap:16px!important;
  row-gap:4px!important;

  width:100%!important;
  min-width:0!important;
  min-height:116px!important;
  margin:0!important;
  padding:20px 20px!important;

  text-align:left!important;
  border:1px solid color-mix(in srgb,var(--ink) 6%,transparent)!important;
  border-radius:18px!important;
  background:color-mix(in srgb,var(--paper-3) 60%,transparent)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:hidden!important;
}

/* маленькая иконка слева, а не огромный портрет */
.botanicalContactsBlock .ivi-contact__avatar{
  grid-area:avatar!important;
  display:grid!important;
  place-items:center!important;
  width:42px!important;
  height:42px!important;
  margin:0!important;
  border:1px solid color-mix(in srgb,var(--gold) 54%,var(--ink) 46%)!important;
  border-radius:50%!important;
  background:transparent!important;
  color:var(--gold)!important;
}

.botanicalContactsBlock .ivi-contact__avatar svg{
  width:18px!important;
  height:18px!important;
  stroke-width:1.5!important;
}

.botanicalContactsBlock .ivi-contact__name{
  grid-area:name!important;
  align-self:end!important;
  min-width:0!important;
  margin:0!important;
  color:var(--ink)!important;
  font:500 clamp(23px,2vw,29px)/1 var(--serif)!important;
  letter-spacing:-.025em!important;
  overflow-wrap:anywhere!important;
}

.botanicalContactsBlock .ivi-contact__role{
  grid-area:role!important;
  margin:1px 0 0!important;
  color:var(--muted)!important;
  font:600 9px/1.35 var(--sans)!important;
  letter-spacing:.04em!important;
  text-transform:none!important;
}

.botanicalContactsBlock .ivi-contact__phone{
  grid-area:phone!important;
  margin:3px 0 0!important;
  color:var(--ink)!important;
  font:600 12px/1.35 var(--sans)!important;
  text-decoration:none!important;
}

.botanicalContactsBlock .ivi-contact__phone:hover{
  color:var(--accent)!important;
}

/* Справа компактные действия */
.botanicalContactsBlock .ivi-contact__actions{
  grid-area:actions!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:6px!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
}

.botanicalContactsBlock .ivi-contact__action{
  display:inline-flex!important;
  min-width:0!important;
  min-height:auto!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  margin:0!important;
  padding:5px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--accent)!important;
  font:700 9px/1.2 var(--sans)!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  box-shadow:none!important;
  transform:none!important;
}

.botanicalContactsBlock .ivi-contact__action:hover{
  color:var(--gold)!important;
  background:transparent!important;
  transform:none!important;
}

.botanicalContactsBlock .ivi-contact__action svg{
  width:13px!important;
  height:13px!important;
}

/* Один контакт занимает всю ширину, как и одиночная локация */
.botanicalContactsBlock .ivi-contacts__grid > .ivi-contact:only-child{
  grid-column:1 / -1!important;
}

/* Тёмные темы наследуют те же токены */
[data-theme="deep"] .botanicalContactsBlock .ivi-contact,
[data-theme="pine"] .botanicalContactsBlock .ivi-contact,
[data-theme="moss"] .botanicalContactsBlock .ivi-contact,
[data-theme="cedar"] .botanicalContactsBlock .ivi-contact,
[data-theme="night"] .botanicalContactsBlock .ivi-contact,
.theme-deep .botanicalContactsBlock .ivi-contact,
.theme-pine .botanicalContactsBlock .ivi-contact,
.theme-moss .botanicalContactsBlock .ivi-contact,
.theme-cedar .botanicalContactsBlock .ivi-contact,
.theme-night .botanicalContactsBlock .ivi-contact{
  border-color:color-mix(in srgb,var(--gold) 18%,transparent)!important;
}

@media(max-width:900px){
  .botanicalContactsBlock .ivi-contacts__grid{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:760px){
  .botanicalContactsBlock .ivi-contacts__head{
    display:block!important;
    margin-bottom:26px!important;
  }

  .botanicalContactsBlock .ivi-contacts__head::before{
    display:block!important;
    margin:0 0 14px!important;
    padding:0!important;
  }

  .botanicalContactsBlock .ivi-contacts__title{
    font-size:clamp(42px,13vw,58px)!important;
  }

  .botanicalContactsBlock .ivi-contacts__text{
    margin-top:14px!important;
    font-size:13px!important;
  }

  .botanicalContactsBlock .ivi-contact{
    grid-template-columns:38px minmax(0,1fr)!important;
    grid-template-areas:
      "avatar name"
      "avatar role"
      ". phone"
      ". actions"!important;
    min-height:0!important;
    padding:17px 16px!important;
    column-gap:12px!important;
    row-gap:4px!important;
    border-radius:16px!important;
  }

  .botanicalContactsBlock .ivi-contact__avatar{
    width:38px!important;
    height:38px!important;
  }

  .botanicalContactsBlock .ivi-contact__name{
    font-size:25px!important;
  }

  .botanicalContactsBlock .ivi-contact__actions{
    flex-direction:row!important;
    flex-wrap:wrap!important;
    justify-content:flex-start!important;
    align-items:center!important;
    gap:12px!important;
    margin-top:6px!important;
  }
}

/* =========================================================
   BOTANICHESKAYA ISTORIYA — SECTION RHYTHM + RSVP WIDTH V29
   Возвращаем единый вертикальный ритм и полную ширину RSVP.
========================================================= */

:root{
  --bi-section-gap:clamp(76px,7vw,108px);
  --bi-section-gap-mobile:60px;
}

/* Единые отступы всех обычных секций */
.page > .section{
  margin:0!important;
  padding:var(--bi-section-gap) 0!important;
}

/* Контейнеры больше не добавляют/съедают вертикальный spacing */
.page > .section > .section-inner{
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Hero остаётся отдельной композицией */
.page > .poster{
  margin:0!important;
}

/* Первая секция после hero: сохраняем overlap цветов, но не убираем ритм */
@media(min-width:701px){
  .poster + .section{
    padding-top:var(--bi-section-gap)!important;
  }
}

/* Заголовки → контент: одинаковый внутренний отступ */
.section-head,
.botanicalDetailsBlock .le-details__header,
.botanicalContactsBlock .ivi-contacts__head{
  margin-top:0!important;
  margin-bottom:clamp(30px,4vw,48px)!important;
}

/* Shared sections не добавляют свой внешний отступ */
.botanicalSharedSection,
.botanicalSharedSection--details,
.botanicalSharedSection--contacts,
.botanicalDetailsBlock,
.botanicalContactsBlock,
.botanicalRsvpBlock{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* RSVP теперь ровно по ширине общей секции */
.botanicalRsvpBlock{
  width:100%!important;
  max-width:none!important;
}

.botanicalRsvpBlock .rsvpSection,
.botanicalRsvpBlock .rsvpGrid,
.botanicalRsvpBlock .rsvpFormCard{
  width:100%!important;
  max-width:none!important;
}

.botanicalRsvpBlock .rsvpFormCard{
  margin-left:0!important;
  margin-right:0!important;
}

/* На мобильной сохраняем более компактный, но одинаковый ритм */
@media(max-width:700px){
  .page > .section{
    padding:var(--bi-section-gap-mobile) 0!important;
  }

  /*
   * Hero → Story: специальный переход из-за наложения цветов.
   * Остальные секции используют одинаковые 60px.
   */
  .poster + .section{
    padding-top:74px!important;
    padding-bottom:var(--bi-section-gap-mobile)!important;
  }

  .section-head,
  .botanicalDetailsBlock .le-details__header,
  .botanicalContactsBlock .ivi-contacts__head{
    margin-bottom:26px!important;
  }
}

@media(max-width:430px){
  .poster + .section{
    padding-top:70px!important;
  }
}
