@font-face {
  font-family: "EstylleMadison";
  src: local("EstylleMadison-Regular"), local("Estylle Madison Regular");
  font-display: swap;
}

:root{
  --bg:#d9cfc4;
  --paper:#eee7df;
  --paper-2:#e8ded4;
  --paper-3:#f3eee8;
  --ink:#454240;
  --muted:#77706a;
  --blue:#587ca5;
  --blue-deep:#315d8d;
  --blue-soft:#b9cadb;
  --sage:#8e9d83;
  --line:rgba(69,66,64,.20);
  --shadow:0 24px 70px rgba(70,58,48,.14);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Cabin",Arial,sans-serif;padding:36px 20px 64px}
main{position:relative;width:min(1180px,100%);margin:0 auto;background:var(--paper);box-shadow:0 30px 90px rgba(73,61,51,.18);overflow:hidden}
.script-font{font-family:"EstylleMadison","Allura",cursive;font-weight:400}

.section{position:relative;min-height:650px;display:flex;align-items:center;padding:86px 92px;isolation:isolate;overflow:hidden}
.section:nth-of-type(even){background:var(--paper-2)}
.section:nth-of-type(odd){background:var(--paper)}
.flower{position:absolute;pointer-events:none;user-select:none;max-width:none;z-index:-1}
.flower--hero-left{width:570px;left:-105px;top:-78px;transform:rotate(-4deg)}
.flower--hero-right{width:520px;right:-78px;bottom:-100px;transform:rotate(178deg)}
.flower--section-left{width:430px;left:-100px;top:50%;transform:translateY(-50%) rotate(-3deg);opacity:.98}
.flower--section-right{width:430px;right:-95px;top:50%;transform:translateY(-50%) rotate(177deg);opacity:.98}
.flower--soft{opacity:.68;filter:saturate(.92)}

.hero{min-height:760px;justify-content:center;text-align:center;padding:58px 70px;background:var(--paper)}
.hero:before{content:"";position:absolute;inset:28px;border:1px solid rgba(69,66,64,.16);pointer-events:none}
.hero__content{position:relative;width:470px;max-width:70%;z-index:2}
.hero__content:before{content:"";position:absolute;left:50%;top:-48px;width:54px;height:1px;background:var(--ink);transform:translateX(-50%)}
.hero__names{font-size:clamp(92px,9.2vw,126px);line-height:.68;letter-spacing:-.035em;display:flex;flex-direction:column;align-items:center;margin:0 0 70px}
.hero__names small{font-family:"Cabin",sans-serif;font-size:28px;font-weight:400;line-height:1;margin:15px 0 11px;letter-spacing:0}
.hero__invite{font-size:11px;letter-spacing:.06em;margin:0 0 18px;text-transform:uppercase}
.date-row{display:grid;grid-template-columns:1fr 72px 1fr;align-items:center;width:260px;margin:0 auto 15px;font-size:24px;letter-spacing:.04em}
.date-row__day{border-left:1px solid var(--ink);border-right:1px solid var(--ink);padding:10px 16px}
.hero__micro{font-size:10px;letter-spacing:.05em;margin:9px 0;text-transform:uppercase}
.hero__place{font-size:15px;letter-spacing:.06em;margin:15px 0 8px;text-transform:uppercase}

.card{position:relative;width:min(690px,72%);padding:62px 64px;background:rgba(246,241,235,.84);border:1px solid rgba(255,255,255,.58);box-shadow:var(--shadow);backdrop-filter:blur(2px);z-index:2}
.section:nth-of-type(even) .card{margin-left:auto}
.section:nth-of-type(odd):not(.hero) .card{margin-right:auto}
.card:before{content:"";position:absolute;inset:12px;border:1px solid rgba(69,66,64,.10);pointer-events:none}
.eyebrow{position:relative;margin:0 0 8px;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-deep)}
.eyebrow:after{content:"";display:block;width:36px;height:1px;background:var(--blue-deep);margin:13px 0 0}
.section-title{font-size:clamp(62px,6.7vw,91px);line-height:.83;margin:15px 0 31px;font-weight:400;letter-spacing:-.02em}
.card>p:not(.eyebrow){max-width:560px;margin:0;font-size:16px;line-height:1.78;color:#5e5955}

.intro .card{text-align:left;padding-right:100px}
.intro .card:after{content:"31 / 07";position:absolute;right:34px;bottom:35px;writing-mode:vertical-rl;font-size:11px;letter-spacing:.22em;color:rgba(69,66,64,.48)}
.countdown .card{background:#506e91;color:#fff;border-color:rgba(255,255,255,.25);box-shadow:0 25px 75px rgba(43,72,103,.25)}
.countdown .card:before{border-color:rgba(255,255,255,.18)}
.countdown .eyebrow,.countdown .section-title,.countdown .card>p{color:#fff}
.countdown .eyebrow:after{background:#fff}

.timer{display:grid;grid-template-columns:repeat(4,1fr);margin-top:36px;border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(255,255,255,.35)}
.timer>div{padding:24px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.25)}
.timer>div:last-child{border-right:0}
.timer strong{display:block;font-size:34px;font-weight:400;letter-spacing:.05em}
.timer span{display:block;margin-top:7px;font-size:10px;text-transform:uppercase;letter-spacing:.14em;opacity:.8}

.story .card{background:rgba(244,239,233,.88)}
.story__quote{position:relative;font-size:49px;margin-top:38px;line-height:1.05;color:var(--blue-deep);max-width:500px}
.story__quote:before{content:"“";position:absolute;left:-30px;top:-22px;font-family:Georgia,serif;font-size:70px;color:rgba(49,93,141,.15)}

.timeline{margin:18px 0 0;text-align:left}
.timeline article{position:relative;display:grid;grid-template-columns:92px 1fr;gap:22px;padding:22px 0 22px 16px;border-bottom:1px solid var(--line)}
.timeline article:before{content:"";position:absolute;left:0;top:29px;width:6px;height:6px;border:1px solid var(--blue-deep);border-radius:50%}
.timeline article:last-child{border-bottom:0}
.timeline time{font-size:21px;letter-spacing:.05em;color:var(--blue-deep)}
.timeline h3{margin:0 0 6px;font-weight:500;font-size:15px;letter-spacing:.04em}
.timeline p{margin:0;font-size:13px;line-height:1.65;color:var(--muted)}

.location .card{padding-bottom:72px}
.location__name{font-size:18px;font-weight:500;letter-spacing:.12em;margin:7px 0 14px}
.location .card:after{content:"LOCATION";position:absolute;right:-12px;top:50%;transform:translateY(-50%) rotate(90deg);font-size:9px;letter-spacing:.30em;color:rgba(69,66,64,.35)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:49px;margin-top:29px;padding:0 27px;border:1px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;font:500 12px/1 "Cabin",sans-serif;letter-spacing:.08em;text-transform:uppercase;transition:.25s ease;cursor:pointer}
.btn:hover{background:var(--ink);color:#f5eee7;transform:translateY(-2px);box-shadow:0 10px 25px rgba(69,66,64,.16)}

.dresscode{justify-content:flex-start}
.dresscode .card{
  background:rgba(237,232,224,.88);
  margin-left:0!important;
  margin-right:auto!important;
  width:min(690px,68%);
}
.dresscode .flower--section-right{
  width:470px;
  right:-88px;
  top:50%;
  transform:translateY(-50%) rotate(177deg);
  opacity:1;
}
.palette{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:34px}
.palette span{width:42px;height:42px;border-radius:50%;background:var(--swatch);border:5px solid rgba(255,255,255,.75);box-shadow:0 0 0 1px rgba(69,67,66,.12)}
.palette span:nth-child(4){width:50px;height:50px}

.gallery .card{width:min(760px,78%);padding-bottom:54px}
.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:180px 180px;gap:12px;margin-top:34px}
.photo-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,rgba(112,144,176,.16),rgba(255,255,255,.34));border:1px solid rgba(69,67,66,.14);font-size:10px;letter-spacing:.22em;color:var(--muted)}
.photo-placeholder:first-child{grid-row:1/3}

.details .card{border-radius:0 80px 0 0}
.details .card:after{content:"✦";position:absolute;right:42px;top:40px;font-size:20px;color:var(--blue-deep);opacity:.55}

.rsvp{min-height:760px;justify-content:center}
.rsvp .card{width:min(760px,78%);margin:0!important;background:rgba(245,240,234,.92)}
.rsvp .eyebrow,.rsvp .section-title,.rsvp .card>p{text-align:center;margin-left:auto;margin-right:auto}
.rsvp .eyebrow:after{margin-left:auto;margin-right:auto}
.rsvp-form{max-width:570px;margin:34px auto 0;text-align:left}
.rsvp-form label>span,.rsvp-form legend{display:block;margin-bottom:9px;font-size:12px;letter-spacing:.04em;color:var(--ink)}
.rsvp-form input[type="text"]{width:100%;height:52px;border:1px solid var(--line);background:rgba(255,255,255,.42);padding:0 16px;font:16px "Cabin",sans-serif;color:var(--ink);outline:none}
.rsvp-form input[type="text"]:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(88,124,165,.12)}
.rsvp-form fieldset{border:0;border-top:1px solid var(--line);padding:21px 0 3px;margin:25px 0 0}
.rsvp-form legend{padding:0 13px 0 0}
.choice{position:relative;display:inline-flex!important;align-items:center;margin:0 7px 9px 0;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice span{display:inline-flex!important;align-items:center;min-height:40px;margin:0!important;padding:0 14px;border:1px solid var(--line);background:rgba(255,255,255,.35);transition:.2s ease}
.choice input:checked+span{background:var(--blue-deep);color:#fff;border-color:var(--blue-deep);box-shadow:0 7px 20px rgba(49,93,141,.18)}
.rsvp-form .btn{width:100%}
.success{display:none!important;text-align:center;margin-top:16px!important;font-size:14px!important;color:var(--blue-deep)!important}
.rsvp-form.is-sent .success{display:block!important}

.footer{position:relative;text-align:center;padding:72px 24px 86px;background:#4e6177;color:#fff;overflow:hidden}
.footer:before,.footer:after{content:"";position:absolute;width:280px;height:280px;background:url("floral-left.svg") center/contain no-repeat;opacity:.33}
.footer:before{left:-95px;bottom:-80px}.footer:after{right:-95px;top:-80px;transform:rotate(180deg)}
.footer__names{position:relative;font-size:66px;line-height:1}
.footer p{position:relative;font-size:11px;letter-spacing:.22em;margin:14px 0 0}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}
.reveal.is-visible{opacity:1;transform:none}

@media(max-width:900px){
  body{padding:18px 12px 36px}
  .section{padding:72px 42px;min-height:610px}
  .card{width:76%;padding:52px 44px}
  .flower--section-left,.flower--section-right{width:390px}
  .gallery .card,.rsvp .card{width:84%}
}

@media(max-width:700px){
  body{padding:0;background:var(--paper)}
  main{width:100%;box-shadow:none}
  .section{min-height:auto;padding:82px 18px}
  .hero{min-height:100svh;padding:28px 18px}
  .hero:before{inset:14px}
  .hero__content{width:100%;max-width:100%;padding-top:55px}
  .hero__names{font-size:clamp(76px,25vw,105px);margin-bottom:62px}
  .hero__names small{font-size:24px;margin:10px 0}
  .flower--hero-left{width:390px;left:-150px;top:-45px}
  .flower--hero-right{width:360px;right:-135px;bottom:-60px}
  .flower--section-left{width:310px;left:-145px;opacity:.8}
  .flower--section-right{width:310px;right:-145px;opacity:.8}
  .card,.gallery .card,.rsvp .card{width:100%;margin:0!important;padding:46px 25px;background:rgba(246,241,235,.89)}
  .card:before{inset:8px}
  .section-title{font-size:58px}
  .card>p:not(.eyebrow){font-size:15px;line-height:1.7}
  .intro .card{padding-right:50px}
  .timer{grid-template-columns:repeat(2,1fr)}
  .timer>div:nth-child(2){border-right:0}
  .timer>div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.25)}
  .story__quote{font-size:41px}
  .timeline article{grid-template-columns:72px 1fr;gap:13px;padding-left:13px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:210px 130px}
  .photo-placeholder:first-child{grid-row:1/3}
  .details .card{border-radius:0 48px 0 0}
  .footer__names{font-size:56px}
}

@media(max-width:430px){
  .hero__invite{font-size:9px}
  .date-row{width:225px;font-size:20px;grid-template-columns:1fr 65px 1fr}
  .hero__micro{font-size:9px}
  .hero__place{font-size:13px}
  .section-title{font-size:52px}
  .gallery-grid{grid-template-rows:180px 118px}
  .choice{display:flex!important;margin-right:0}.choice span{width:100%}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.btn{transition:none}}

/* ===== v3: mixed floral art + editorial gallery ===== */
.flower--tall-left{width:330px;left:-52px;top:50%;transform:translateY(-50%);opacity:.98}
.flower--tall-right{width:365px;right:-62px;top:50%;transform:translateY(-50%) scaleX(-1);opacity:.98}
.story .card{margin-left:250px!important}
.schedule .card{margin-right:270px!important}

.gallery{min-height:900px;padding-top:96px;padding-bottom:96px;background:linear-gradient(180deg,var(--paper) 0%,#e7ddd2 100%)!important;overflow:hidden}
.flower--gallery-tall{width:390px;left:-155px;top:42px;opacity:.72;transform:rotate(-6deg)}
.gallery-shell{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:270px 1fr;gap:54px;align-items:start}
.gallery-heading{padding-top:75px}
.gallery-heading .section-title{margin-bottom:24px}
.gallery-heading>p:last-child{font-size:14px;line-height:1.75;color:var(--muted);max-width:235px}
.gallery-editorial{position:relative;min-height:670px;display:grid;grid-template-columns:1.08fr .88fr .82fr;grid-template-rows:235px 175px 190px;gap:18px;padding:28px 30px 34px;background:rgba(246,241,235,.54);border:1px solid rgba(255,255,255,.62);box-shadow:var(--shadow)}
.gallery-editorial:before{content:"";position:absolute;inset:10px;border:1px solid rgba(69,66,64,.09);pointer-events:none}
.g-photo{position:relative;margin:0;z-index:2}
.g-photo .photo-placeholder{width:100%;height:100%;min-height:0;background:linear-gradient(145deg,rgba(82,120,157,.20),rgba(255,255,255,.55));border:1px solid rgba(69,67,66,.15);overflow:hidden}
.g-photo figcaption{position:absolute;font:400 11px/1 "Cabin",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:rgba(69,66,64,.68);white-space:nowrap}
.g-photo--arch{grid-column:1;grid-row:1/3;height:100%}
.g-photo--arch .photo-placeholder{border-radius:150px 150px 8px 8px}
.g-photo--arch figcaption{left:15px;bottom:-20px}
.g-photo--tilt{grid-column:2;grid-row:1;height:218px;transform:rotate(-3.5deg);margin-top:12px;box-shadow:0 18px 35px rgba(62,53,46,.12)}
.g-photo--tilt .photo-placeholder{background:linear-gradient(155deg,rgba(167,181,159,.30),rgba(255,255,255,.52))}
.g-photo--tilt figcaption{right:4px;bottom:-19px}
.g-photo--oval{grid-column:3;grid-row:1/3;height:360px;align-self:center}
.g-photo--oval .photo-placeholder{border-radius:50% 50% 47% 47% / 44% 44% 56% 56%;background:linear-gradient(155deg,rgba(75,105,144,.26),rgba(255,255,255,.45))}
.g-photo--oval figcaption{left:50%;bottom:-20px;transform:translateX(-50%)}
.g-photo--mini{grid-column:2;grid-row:2;width:78%;height:145px;justify-self:end;align-self:end}
.g-photo--mini .photo-placeholder{border-radius:50% 50% 0 0}
.g-photo--mini figcaption{left:0;bottom:-18px}
.g-photo--wide{grid-column:1/4;grid-row:3;height:175px;margin-top:8px}
.g-photo--wide .photo-placeholder{border-radius:4px 55px 4px 55px;background:linear-gradient(105deg,rgba(177,174,147,.27),rgba(104,143,178,.20),rgba(255,255,255,.55))}
.g-photo--wide figcaption{right:12px;bottom:-20px}
.gallery-stamp{position:absolute;left:31%;top:46%;display:grid;place-items:center;width:98px;height:98px;border-radius:50%;background:#4f6e91;color:#fff;text-align:center;font-size:27px;line-height:.62;transform:rotate(8deg);box-shadow:0 12px 28px rgba(49,93,141,.24);z-index:5;border:5px solid rgba(255,255,255,.74)}
.gallery-stamp:after{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.48);border-radius:50%}

@media(max-width:900px){
  .story .card,.schedule .card{margin-left:0!important;margin-right:0!important}
  .flower--tall-left{width:285px;left:-118px}.flower--tall-right{width:300px;right:-125px}
  .gallery-shell{grid-template-columns:1fr;gap:24px}.gallery-heading{padding-top:0;max-width:540px}.gallery-heading>p:last-child{max-width:480px}
}
@media(max-width:700px){
  .flower--tall-left{width:250px;left:-145px}.flower--tall-right{width:260px;right:-150px}
  .gallery{padding:78px 18px 90px;min-height:auto}
  .flower--gallery-tall{width:285px;left:-150px;top:20px;opacity:.58}
  .gallery-editorial{min-height:720px;grid-template-columns:1fr 1fr;grid-template-rows:245px 160px 165px 95px;gap:12px;padding:18px 18px 30px}
  .g-photo--arch{grid-column:1;grid-row:1/3}.g-photo--tilt{grid-column:2;grid-row:1;height:215px;margin:10px 0 0;transform:rotate(2.5deg)}
  .g-photo--oval{grid-column:2;grid-row:2/4;height:292px;align-self:start}.g-photo--mini{grid-column:1;grid-row:3;width:86%;height:148px;justify-self:start}
  .g-photo--wide{grid-column:1/3;grid-row:4;height:95px;margin-top:6px}.gallery-stamp{width:78px;height:78px;left:41%;top:42%;font-size:22px;border-width:4px}
  .g-photo figcaption{font-size:9px}
}


/* ===== v6: contacts ===== */
.contacts{min-height:820px;padding-top:100px;padding-bottom:110px;background:linear-gradient(155deg,#f4eee7 0%,#ebe2d8 55%,#e3ddd6 100%)!important;overflow:hidden}
.contacts-shell{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:center}
.contacts-heading{position:relative;padding:44px 0 44px 34px}
.contacts-heading:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(49,93,141,.35),transparent)}
.contacts-heading>p:last-child{max-width:260px;margin:18px 0 0;font-size:14px;line-height:1.8;color:var(--muted)}
.contacts-list{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.contact-card{position:relative;min-height:405px;padding:38px 34px 32px;background:rgba(249,246,242,.76);border:1px solid rgba(255,255,255,.72);box-shadow:0 22px 55px rgba(68,58,51,.12);backdrop-filter:blur(3px);overflow:hidden}
.contact-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(69,66,64,.09);pointer-events:none}
.contact-card--first{transform:translateY(-26px);border-radius:70px 4px 4px 4px}
.contact-card--second{transform:translateY(38px);border-radius:4px 4px 70px 4px}
.contact-card__number{position:absolute;right:20px;top:14px;font:400 58px/1 "Cabin",sans-serif;color:rgba(49,93,141,.08);letter-spacing:-.04em}
.contact-card__avatar{position:relative;width:86px;height:86px;margin-bottom:28px;border-radius:50%;display:grid;place-items:center;background:#4f6e91;color:#fff;box-shadow:0 12px 28px rgba(49,93,141,.18)}
.contact-card__avatar:after{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.46);border-radius:50%}
.contact-card__avatar span{font:400 38px/1 "Cabin",sans-serif}
.contact-card__role{margin:0 0 7px!important;font-size:9px!important;line-height:1!important;letter-spacing:.25em!important;color:var(--blue-deep)!important}
.contact-card h3{margin:0 0 13px;font:400 44px/1.05 "EstylleMadison-Regular","Marck Script",cursive;color:var(--ink)}
.contact-card>p:not(.contact-card__role){margin:0;max-width:270px;font-size:14px;line-height:1.65;color:var(--muted)}
.contact-card__actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:27px}
.contact-card__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 17px;border:1px solid rgba(49,93,141,.34);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-deep);text-decoration:none;transition:.2s ease;background:rgba(255,255,255,.28)}
.contact-card__actions a:hover{background:var(--blue-deep);color:#fff;border-color:var(--blue-deep);transform:translateY(-2px)}
.contacts-note{position:absolute;right:34px;bottom:-70px;font-size:37px;line-height:1.05;color:rgba(49,93,141,.66);transform:rotate(-4deg);max-width:440px;text-align:right}
.flower--contacts-left{width:350px;left:-158px;bottom:-25px;opacity:.84;transform:rotate(-7deg)}
.flower--contacts-right{width:330px;right:-146px;top:-45px;opacity:.76;transform:rotate(13deg)}
@media(max-width:900px){
  .contacts-shell{grid-template-columns:240px 1fr;gap:32px}
  .contacts-list{gap:14px}.contact-card{padding:32px 24px 28px}.contacts-note{font-size:31px;right:20px}
}
@media(max-width:700px){
  .contacts{padding:82px 18px 96px;min-height:auto}
  .contacts-shell{grid-template-columns:1fr;gap:26px}
  .contacts-heading{padding:0 0 24px 18px}.contacts-heading>p:last-child{max-width:100%}
  .contacts-list{grid-template-columns:1fr;gap:18px}
  .contact-card,.contact-card--first,.contact-card--second{transform:none;min-height:0;padding:30px 25px 28px;border-radius:48px 4px 48px 4px}
  .contact-card--second{border-radius:4px 48px 4px 48px}
  .contact-card__avatar{width:74px;height:74px;margin-bottom:22px}.contact-card h3{font-size:40px}
  .contact-card__actions{margin-top:22px}.contact-card__actions a{flex:1}
  .contacts-note{position:relative;right:auto;bottom:auto;margin:26px 8px 0;font-size:30px;text-align:center;transform:rotate(-2deg)}
  .flower--contacts-left{width:260px;left:-155px;bottom:-35px}.flower--contacts-right{width:250px;right:-155px;top:0}
}

/* ===== v7: contacts layout fix ===== */
.contacts{
  min-height:760px;
  padding-top:92px;
  padding-bottom:96px;
}
.contacts-shell{
  grid-template-columns:minmax(250px,290px) minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:48px;
  row-gap:26px;
  align-items:center;
}
.contacts-heading{
  grid-column:1;
  grid-row:1 / 3;
  min-width:0;
  padding:34px 0 34px 28px;
}
.contacts-heading .section-title{
  font-size:clamp(64px,6.2vw,82px);
  line-height:.88;
  letter-spacing:-.035em;
  margin:14px 0 26px;
  white-space:normal;
  overflow-wrap:normal;
}
.contacts-heading>p:last-child{
  max-width:250px;
  font-size:13px;
  line-height:1.75;
}
.contacts-list{
  grid-column:2;
  grid-row:1;
  min-width:0;
  gap:18px;
  align-items:center;
}
.contact-card{
  min-width:0;
  min-height:390px;
  padding:34px 28px 30px;
}
.contact-card--first{transform:translateY(-18px)}
.contact-card--second{transform:translateY(18px)}
.contact-card h3{font-size:42px}
.contact-card>p:not(.contact-card__role){max-width:none}
.contact-card__actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:24px;
}
.contact-card__actions a{
  width:100%;
  min-width:0;
  padding:0 10px;
  white-space:nowrap;
}
.contacts-note{
  position:relative;
  grid-column:2;
  grid-row:2;
  right:auto;
  bottom:auto;
  justify-self:end;
  max-width:520px;
  margin:0 8px 0 0;
  padding-top:4px;
  font-size:32px;
  line-height:1.04;
  text-align:right;
  transform:rotate(-2deg);
  pointer-events:none;
}
.flower--contacts-left{width:315px;left:-170px;bottom:-28px;opacity:.78}
.flower--contacts-right{width:300px;right:-155px;top:-36px;opacity:.70}

@media(max-width:1000px){
  .contacts-shell{grid-template-columns:220px minmax(0,1fr);column-gap:28px}
  .contacts-heading{padding-left:20px}
  .contacts-heading .section-title{font-size:62px}
  .contact-card{padding:30px 22px 27px}
  .contact-card__avatar{width:74px;height:74px;margin-bottom:22px}
  .contact-card__avatar span{font-size:32px}
  .contact-card h3{font-size:38px}
  .contact-card__actions{grid-template-columns:1fr}
  .contacts-note{font-size:28px;max-width:430px}
}

@media(max-width:700px){
  .contacts{padding:76px 18px 82px}
  .contacts-shell{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:22px;
  }
  .contacts-heading,
  .contacts-list,
  .contacts-note{
    grid-column:1;
    grid-row:auto;
  }
  .contacts-heading{padding:0 0 20px 16px}
  .contacts-heading .section-title{font-size:54px;margin-bottom:20px}
  .contacts-heading>p:last-child{max-width:100%;font-size:13px}
  .contacts-list{grid-template-columns:1fr;gap:16px}
  .contact-card,.contact-card--first,.contact-card--second{
    transform:none;
    min-height:0;
    padding:28px 24px 26px;
  }
  .contact-card__actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contacts-note{
    justify-self:center;
    max-width:330px;
    margin:12px auto 0;
    font-size:27px;
    text-align:center;
    transform:rotate(-1.5deg);
  }
}

@media(max-width:390px){
  .contact-card__actions{grid-template-columns:1fr}
}

/* ===== v8: contacts title clipping fix ===== */
.contacts-shell{
  grid-template-columns:minmax(330px,360px) minmax(0,1fr);
  column-gap:36px;
}
.contacts-heading{
  overflow:visible;
  padding-right:10px;
}
.contacts-heading .section-title{
  display:block;
  width:max-content;
  max-width:none;
  font-size:clamp(58px,5.4vw,74px);
  line-height:.92;
  letter-spacing:-.04em;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}
@media(max-width:1000px){
  .contacts-shell{grid-template-columns:minmax(285px,315px) minmax(0,1fr);column-gap:26px}
  .contacts-heading .section-title{font-size:58px}
}
@media(max-width:820px) and (min-width:701px){
  .contacts-shell{grid-template-columns:minmax(245px,270px) minmax(0,1fr);column-gap:20px}
  .contacts-heading .section-title{font-size:48px}
}
@media(max-width:700px){
  .contacts-shell{grid-template-columns:1fr}
  .contacts-heading .section-title{
    width:auto;
    max-width:100%;
    font-size:54px;
    white-space:normal;
  }
}

/* ===== v9: inner borders follow outer corner geometry ===== */
/* Все декоративные внутренние рамки повторяют форму внешней карточки. */
.card::before,
.contact-card::before {
  border-radius: inherit;
}

/* Для карточек со сложными асимметричными углами внутренний контур
   слегка уменьшаем, чтобы он нигде не упирался во внешний бордер. */
.contact-card::before {
  inset: 10px;
}

/* Основные карточки секций тоже сохраняют скругление внутренней рамки. */
.details .card::before {
  border-radius: inherit;
}

/* На мобильной геометрия меняется, inherit автоматически повторяет её. */
@media (max-width: 760px) {
  .card::before,
  .contact-card::before {
    border-radius: inherit;
  }
}

/* ===== Production adaptation: Golubaya Akvarel ===== */
body{padding-top:36px}
.ga-page{position:relative;width:min(1180px,100%);margin:0 auto;background:var(--paper);box-shadow:0 30px 90px rgba(73,61,51,.18);overflow:hidden}
.ga-page .section:nth-of-type(even){background:var(--paper-2)}
.ga-page .section:nth-of-type(odd){background:var(--paper)}
.ga-page .card:before,.ga-page .gallery-editorial:before,.ga-page .contact-card:before{border-radius:inherit}
.ga-page .story-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:34px;align-items:center}
.ga-page .story-grid.no-photo{grid-template-columns:1fr}
.ga-page .story-grid>div>p{margin:0;font-size:16px;line-height:1.78;color:#5e5955}
.ga-page .story-photo{margin:0;height:310px;border-radius:110px 110px 12px 12px;overflow:hidden;border:1px solid rgba(69,66,64,.14);box-shadow:0 16px 36px rgba(68,58,51,.12)}
.ga-page .story-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ga-page .section-copy{font-size:14px;line-height:1.7;color:var(--muted)}
.ga-page .g-photo a,.ga-page .g-photo img{display:block;width:100%;height:100%}
.ga-page .g-photo img{object-fit:cover}
.ga-page .g-photo--extra{display:none}
.ga-page .rsvpDeadline{text-align:center;margin:-10px 0 16px;color:var(--blue-deep);font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.ga-page .rsvpLead{text-align:center!important;margin:0 auto!important}

/* Shared location block */
.gaLocationBlock{width:min(800px,78%);padding:48px!important}
.gaLocationBlock .iviLocHead{display:none!important}
.gaLocationBlock .iviLocGrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.gaLocationBlock .iviLocGrid>.iviLocCard:only-child{grid-column:1/-1;max-width:620px;margin:0 auto;width:100%}
.gaLocationBlock .iviLocCard{overflow:hidden;border:1px solid rgba(69,66,64,.12)!important;background:rgba(255,255,255,.34)!important;border-radius:60px 4px 60px 4px!important;box-shadow:none!important}
.gaLocationBlock .iviLocCard:before{content:"";position:absolute;inset:9px;border:1px solid rgba(69,66,64,.08);border-radius:inherit;pointer-events:none}
.gaLocationBlock .iviLocPhoto{height:220px!important;overflow:hidden!important}
.gaLocationBlock .iviLocPhoto img{width:100%!important;height:100%!important;object-fit:cover!important}
.gaLocationBlock .iviLocBody{padding:24px!important}
.gaLocationBlock .iviLocName{font-family:"EstylleMadison","Allura",cursive!important;font-size:38px!important;line-height:1!important;color:var(--ink)!important}
.gaLocationBlock .iviLocAddr,.gaLocationBlock .iviLocNote{color:var(--muted)!important}
.gaLocationBlock .iviLocActions{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
.gaLocationBlock .iviBtn{min-height:42px!important;padding:0 16px!important;border:1px solid rgba(49,93,141,.35)!important;background:transparent!important;color:var(--blue-deep)!important;text-transform:uppercase!important;letter-spacing:.11em!important;font-size:10px!important}
.gaLocationBlock .iviBtn:hover{background:var(--blue-deep)!important;color:#fff!important}

/* Shared details block */
.gaDetailsBlock{width:min(820px,82%)!important;padding:48px!important;border-radius:4px 80px 4px 80px!important;overflow:hidden}
.gaDetailsBlock>section{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.gaDetailsBlock>section>header{margin-bottom:26px!important;text-align:left!important}
.gaDetailsBlock>section>header h2{font-family:"EstylleMadison","Allura",cursive!important;font-size:64px!important;line-height:.9!important;font-weight:400!important;color:var(--ink)!important}
.gaDetailsBlock>section>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.gaDetailsBlock article,.gaDetailsBlock .le-details__card{position:relative!important;border:1px solid rgba(69,66,64,.11)!important;background:rgba(255,255,255,.30)!important;border-radius:34px 4px 34px 4px!important;padding:22px!important;box-shadow:none!important;overflow:hidden!important}
.gaDetailsBlock article:before,.gaDetailsBlock .le-details__card:before{content:"";position:absolute;inset:8px;border:1px solid rgba(69,66,64,.06);border-radius:inherit;pointer-events:none}

/* Shared contacts block. The common partial stays untouched, only themed here. */
.contacts-common{position:relative;z-index:2;width:100%}
.gaContactsBlock>section,.gaContactsBlock .contactsSection,.gaContactsBlock .contacts{background:transparent!important;box-shadow:none!important;border:0!important;padding:0!important;margin:0!important;min-height:0!important}
.gaContactsBlock h2{font-family:"EstylleMadison","Allura",cursive!important;font-size:clamp(62px,6vw,82px)!important;line-height:.9!important;font-weight:400!important;color:var(--ink)!important}
.gaContactsBlock [class*="grid"],.gaContactsBlock [class*="list"]{gap:18px!important}
.gaContactsBlock article,.gaContactsBlock [class*="card"]{position:relative!important;background:rgba(249,246,242,.78)!important;border:1px solid rgba(255,255,255,.72)!important;border-radius:64px 4px 64px 4px!important;box-shadow:0 22px 55px rgba(68,58,51,.10)!important;overflow:hidden!important}
.gaContactsBlock article:before,.gaContactsBlock [class*="card"]:before{content:"";position:absolute;inset:10px;border:1px solid rgba(69,66,64,.09);border-radius:inherit;pointer-events:none}
.gaContactsBlock a{transition:.2s ease}
.gaContactsBlock a:hover{transform:translateY(-2px)}

/* Shared RSVP block */
.gaRsvpBlock{overflow:hidden}
.gaRsvpBlock .rsvp-form{max-width:620px}
.gaRsvpBlock input[type="text"],.gaRsvpBlock input[type="email"],.gaRsvpBlock input[type="tel"],.gaRsvpBlock select,.gaRsvpBlock textarea{width:100%!important;border:1px solid var(--line)!important;background:rgba(255,255,255,.42)!important;color:var(--ink)!important;border-radius:0!important;box-shadow:none!important}
.gaRsvpBlock button,.gaRsvpBlock [type="submit"]{transition:.2s ease!important}
.gaRsvpBlock button:hover,.gaRsvpBlock [type="submit"]:hover{transform:translateY(-2px)}
.gaRsvpBlock input[type="radio"],.gaRsvpBlock input[type="checkbox"]{accent-color:var(--blue-deep)}
.gaRsvpBlock label:has(input[type="radio"]:checked),.gaRsvpBlock label:has(input[type="checkbox"]:checked){border-color:var(--blue-deep)!important;background:rgba(49,93,141,.10)!important;box-shadow:0 0 0 2px rgba(49,93,141,.07)!important}

/* Shared timer block */
.blueTimerBlock{background:#506e91!important;color:#fff!important;overflow:hidden}
.blueTimerBlock:before{border-color:rgba(255,255,255,.18)!important;border-radius:inherit}
.blueTimerBlock h2,.blueTimerBlock h3,.blueTimerBlock p,.blueTimerBlock span,.blueTimerBlock strong,.blueTimerBlock label{color:#fff!important}
.blueTimerBlock [class*="timer"],.blueTimerBlock [class*="count"]{border-color:rgba(255,255,255,.25)!important}

@media(max-width:900px){
  .gaLocationBlock,.gaDetailsBlock{width:84%!important}
  .ga-page .story-grid{grid-template-columns:1fr 180px}
}
@media(max-width:700px){
  body{padding-top:0}
  .ga-page{width:100%;box-shadow:none}
  .ga-page .story-grid{grid-template-columns:1fr;gap:24px}.ga-page .story-photo{height:380px;max-width:270px;margin:0 auto}
  .gaLocationBlock,.gaDetailsBlock{width:100%!important;padding:34px 20px!important}
  .gaLocationBlock .iviLocGrid,.gaDetailsBlock>section>div{grid-template-columns:1fr!important}
  .gaLocationBlock .iviLocCard{border-radius:46px 4px 46px 4px!important}
  .gaDetailsBlock{border-radius:4px 48px 4px 48px!important}
  .gaContactsBlock article,.gaContactsBlock [class*="card"]{border-radius:48px 4px 48px 4px!important}
}

/* =========================================================
   v10 — unified production styling for shared blocks
   Shared PHP blocks stay untouched. Everything below lives
   inside the Golubaya Akvarel template only.
========================================================= */

/* ---------- shared heading language ---------- */
.gaLocationBlock .iviLocKicker,
.gaDetailsBlock .le-details__kicker,
.gaContactsBlock .ivi-contacts__kicker,
.blueTimerBlock .iviTimer__kicker,
.gaTimerEmpty__kicker{
  margin:0 0 12px!important;
  color:var(--blue-deep)!important;
  font-family:"Cabin",Arial,sans-serif!important;
  font-size:11px!important;
  font-weight:600!important;
  line-height:1.3!important;
  letter-spacing:.20em!important;
  text-transform:uppercase!important;
}
.gaLocationBlock .iviLocTitle,
.gaDetailsBlock .le-details__title,
.gaContactsBlock .ivi-contacts__title,
.blueTimerBlock .iviTimer__title,
.gaTimerEmpty__title{
  margin:0!important;
  color:var(--ink)!important;
  font-family:"EstylleMadison","Allura",cursive!important;
  font-size:clamp(50px,5.4vw,74px)!important;
  font-weight:400!important;
  line-height:.92!important;
  letter-spacing:-.03em!important;
}
.gaDetailsBlock .le-details__text,
.gaContactsBlock .ivi-contacts__text,
.blueTimerBlock .iviTimer__text,
.gaTimerEmpty__text{
  max-width:660px!important;
  margin:17px auto 0!important;
  color:var(--muted)!important;
  font-family:"Cabin",Arial,sans-serif!important;
  font-size:15px!important;
  line-height:1.7!important;
}

/* ---------- LOCATION ---------- */
.gaLocationBlock{
  width:min(980px,86%)!important;
  padding:54px!important;
  border-radius:4px 78px 4px 78px!important;
  background:rgba(248,244,239,.76)!important;
  border:1px solid rgba(255,255,255,.75)!important;
  box-shadow:0 24px 58px rgba(72,61,52,.10)!important;
  overflow:visible!important;
}
.gaLocationBlock:before{
  inset:10px!important;
  border-radius:inherit!important;
  border-color:rgba(69,66,64,.09)!important;
}
.gaLocationBlock .iviLoc{
  width:100%!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  overflow:visible!important;
}
.gaLocationBlock .iviLocHead{
  display:block!important;
  max-width:720px!important;
  margin:0 auto 34px!important;
  text-align:center!important;
}
.gaLocationBlock .iviLocGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.gaLocationBlock .iviLocGrid>.iviLocCard:only-child{
  grid-column:1/-1!important;
  width:min(620px,100%)!important;
  max-width:none!important;
  margin:0 auto!important;
}
.gaLocationBlock .iviLocCard{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  overflow:hidden!important;
  border:1px solid rgba(69,66,64,.13)!important;
  border-radius:56px 5px 56px 5px!important;
  background:rgba(255,255,255,.32)!important;
  box-shadow:none!important;
}
.gaLocationBlock .iviLocCard:before{
  content:""!important;
  position:absolute!important;
  inset:9px!important;
  z-index:0!important;
  border:1px solid rgba(69,66,64,.07)!important;
  border-radius:inherit!important;
  pointer-events:none!important;
}
.gaLocationBlock .iviLocPhoto{
  position:relative!important;
  z-index:1!important;
  width:100%!important;
  height:240px!important;
  overflow:hidden!important;
  border-radius:inherit!important;
  border-bottom-left-radius:0!important;
  border-bottom-right-radius:0!important;
}
.gaLocationBlock .iviLocPhoto img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
.gaLocationBlock .iviLocBody{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  flex:1!important;
  flex-direction:column!important;
  padding:28px 30px 30px!important;
}
.gaLocationBlock .iviLocBadge{
  margin:0 0 7px!important;
  color:var(--blue-deep)!important;
  font:600 10px/1.3 "Cabin",Arial,sans-serif!important;
  letter-spacing:.17em!important;
  text-transform:uppercase!important;
}
.gaLocationBlock .iviLocName{
  margin:0!important;
  color:var(--ink)!important;
  font-family:"EstylleMadison","Allura",cursive!important;
  font-size:clamp(38px,4vw,52px)!important;
  font-weight:400!important;
  line-height:.95!important;
}
.gaLocationBlock .iviLocAddr{
  margin-top:14px!important;
  color:var(--ink)!important;
  font:500 14px/1.6 "Cabin",Arial,sans-serif!important;
}
.gaLocationBlock .iviLocNote{
  margin-top:8px!important;
  color:var(--muted)!important;
  font:400 14px/1.65 "Cabin",Arial,sans-serif!important;
}
.gaLocationBlock .iviLocActions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:9px!important;
  margin-top:auto!important;
  padding-top:23px!important;
}
.gaLocationBlock .iviBtn{
  display:inline-flex!important;
  min-height:42px!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 17px!important;
  color:var(--blue-deep)!important;
  background:rgba(255,255,255,.18)!important;
  border:1px solid rgba(49,93,141,.30)!important;
  border-radius:999px!important;
  font:600 10px/1 "Cabin",Arial,sans-serif!important;
  letter-spacing:.10em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  transition:.2s ease!important;
}
.gaLocationBlock .iviBtn:hover{background:var(--blue-deep)!important;color:#fff!important;transform:translateY(-2px)!important}

/* ---------- DETAILS ---------- */
.gaDetailsBlock{
  width:min(980px,86%)!important;
  padding:54px!important;
  border-radius:76px 4px 76px 4px!important;
  overflow:visible!important;
  background:rgba(248,244,239,.76)!important;
  border:1px solid rgba(255,255,255,.75)!important;
  box-shadow:0 24px 58px rgba(72,61,52,.10)!important;
}
.gaDetailsBlock:before{inset:10px!important;border-radius:inherit!important;border-color:rgba(69,66,64,.09)!important}
.gaDetailsBlock .le-details{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:var(--ink)!important;
}
.gaDetailsBlock .le-details__header{
  width:min(720px,100%)!important;
  margin:0 auto 34px!important;
  text-align:center!important;
}
.gaDetailsBlock .le-details__grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
}
.gaDetailsBlock .le-details__card{
  position:relative!important;
  min-width:0!important;
  min-height:210px!important;
  padding:27px 24px 25px!important;
  overflow:hidden!important;
  background:rgba(255,255,255,.30)!important;
  border:1px solid rgba(69,66,64,.12)!important;
  border-radius:42px 5px 42px 5px!important;
  box-shadow:none!important;
}
.gaDetailsBlock .le-details__card:before{
  content:""!important;
  position:absolute!important;
  inset:8px!important;
  border:1px solid rgba(69,66,64,.065)!important;
  border-radius:inherit!important;
  pointer-events:none!important;
}
.gaDetailsBlock .le-details__card-icon{
  position:relative!important;
  z-index:1!important;
  display:inline-flex!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  margin:0 0 21px!important;
  padding:0!important;
  color:var(--blue-deep)!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  font:500 11px/1 "Cabin",Arial,sans-serif!important;
  letter-spacing:.15em!important;
}
.gaDetailsBlock .le-details__card-icon--wishlist{width:38px!important;height:38px!important;padding:8px!important;border:1px solid rgba(49,93,141,.22)!important;border-radius:50%!important}
.gaDetailsBlock .le-details__card-icon img{width:100%!important;height:100%!important;object-fit:contain!important}
.gaDetailsBlock .le-details__provider{position:relative!important;z-index:1!important;color:var(--blue-deep)!important;font:600 10px/1.3 "Cabin",Arial,sans-serif!important;letter-spacing:.12em!important;text-transform:uppercase!important}
.gaDetailsBlock .le-details__card-title{
  position:relative!important;
  z-index:1!important;
  margin:0 0 12px!important;
  color:var(--ink)!important;
  font-family:"EstylleMadison","Allura",cursive!important;
  font-size:34px!important;
  font-weight:400!important;
  line-height:1!important;
}
.gaDetailsBlock .le-details__card-text{position:relative!important;z-index:1!important;margin:0!important;color:var(--muted)!important;font:400 14px/1.58 "Cabin",Arial,sans-serif!important}
.gaDetailsBlock .le-details__wishlist-button{
  position:relative!important;
  z-index:1!important;
  display:inline-flex!important;
  min-height:40px!important;
  align-items:center!important;
  gap:8px!important;
  margin-top:20px!important;
  padding:0 15px!important;
  color:var(--blue-deep)!important;
  background:transparent!important;
  border:1px solid rgba(49,93,141,.28)!important;
  border-radius:999px!important;
  font:600 10px/1 "Cabin",Arial,sans-serif!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
}
.gaDetailsBlock .le-details__wishlist-button:hover{background:var(--blue-deep)!important;color:#fff!important}

/* ---------- CONTACTS ---------- */
.gaContactsBlock{
  position:relative!important;
  z-index:2!important;
  width:min(1040px,90%)!important;
  margin:0 auto!important;
}
.gaContactsBlock .ivi-contacts{
  --ivi-contacts-bg:transparent!important;
  --ivi-contacts-card:rgba(248,244,239,.78)!important;
  --ivi-contacts-text:var(--ink)!important;
  --ivi-contacts-muted:var(--muted)!important;
  --ivi-contacts-accent:var(--blue-deep)!important;
  --ivi-contacts-line:rgba(69,66,64,.11)!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
}
.gaContactsBlock .ivi-contacts__inner{
  display:grid!important;
  grid-template-columns:minmax(250px,300px) minmax(0,1fr)!important;
  gap:38px!important;
  width:100%!important;
  max-width:none!important;
  align-items:center!important;
}
.gaContactsBlock .ivi-contacts__head{
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
}
.gaContactsBlock .ivi-contacts__title{font-size:clamp(58px,5.7vw,78px)!important;white-space:normal!important}
.gaContactsBlock .ivi-contacts__text{margin:20px 0 0!important;text-align:left!important;font-size:14px!important}
.gaContactsBlock .ivi-contacts__grid{
  display:grid!important;
  grid-template-columns:repeat(var(--ivi-contacts-count,1),minmax(0,1fr))!important;
  gap:17px!important;
  align-items:stretch!important;
}
.gaContactsBlock .ivi-contact{
  position:relative!important;
  display:flex!important;
  min-width:0!important;
  min-height:360px!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  padding:31px 28px 28px!important;
  text-align:left!important;
  overflow:hidden!important;
  background:rgba(248,244,239,.82)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  border-radius:58px 5px 58px 5px!important;
  box-shadow:0 22px 52px rgba(68,58,51,.10)!important;
}
.gaContactsBlock .ivi-contact:before{
  content:""!important;
  position:absolute!important;
  inset:9px!important;
  border:1px solid rgba(69,66,64,.08)!important;
  border-radius:inherit!important;
  pointer-events:none!important;
}
.gaContactsBlock .ivi-contact__avatar{
  position:relative!important;
  z-index:1!important;
  display:grid!important;
  width:72px!important;
  height:72px!important;
  place-items:center!important;
  margin:0 0 25px!important;
  color:#fff!important;
  background:var(--blue-deep)!important;
  border:1px solid rgba(255,255,255,.5)!important;
  border-radius:50%!important;
  box-shadow:0 10px 28px rgba(49,93,141,.18)!important;
}
.gaContactsBlock .ivi-contact__name{position:relative!important;z-index:1!important;margin:0!important;color:var(--ink)!important;font-family:"EstylleMadison","Allura",cursive!important;font-size:42px!important;font-weight:400!important;line-height:.95!important}
.gaContactsBlock .ivi-contact__role{position:relative!important;z-index:1!important;margin:9px 0 0!important;color:var(--blue-deep)!important;font:600 10px/1.3 "Cabin",Arial,sans-serif!important;letter-spacing:.15em!important;text-transform:uppercase!important}
.gaContactsBlock .ivi-contact__phone{position:relative!important;z-index:1!important;margin:22px 0 0!important;color:var(--ink)!important;font:500 15px/1.4 "Cabin",Arial,sans-serif!important;text-decoration:none!important}
.gaContactsBlock .ivi-contact__actions{position:relative!important;z-index:1!important;display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:8px!important;width:100%!important;margin-top:auto!important;padding-top:24px!important}
.gaContactsBlock .ivi-contact__action{
  display:inline-flex!important;
  min-height:40px!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  padding:0 14px!important;
  color:var(--blue-deep)!important;
  background:transparent!important;
  border:1px solid rgba(49,93,141,.28)!important;
  border-radius:999px!important;
  font:600 10px/1 "Cabin",Arial,sans-serif!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
}
.gaContactsBlock .ivi-contact__action:hover{background:var(--blue-deep)!important;color:#fff!important;transform:translateY(-2px)!important}

/* ---------- TIMER ---------- */
.blueTimerBlock{
  width:min(900px,80%)!important;
  padding:0!important;
  border-radius:5px 76px 5px 76px!important;
  background:linear-gradient(135deg,#45698f,#5c7ea3)!important;
  color:#fff!important;
  box-shadow:0 26px 65px rgba(49,74,102,.24)!important;
  overflow:hidden!important;
}
.blueTimerBlock:before{inset:11px!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:inherit!important}
.blueTimerBlock .iviTimer{
  --timer-bg:transparent!important;
  --timer-text:#fff!important;
  --timer-accent:#fff!important;
  --timer-border:rgba(255,255,255,.24)!important;
  width:100%!important;
  padding:0!important;
  color:#fff!important;
}
.blueTimerBlock .iviTimer__inner{
  max-width:none!important;
  margin:0!important;
  padding:52px 48px!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  backdrop-filter:none!important;
}
.blueTimerBlock .iviTimer__kicker{color:rgba(255,255,255,.82)!important}
.blueTimerBlock .iviTimer__title{color:#fff!important}
.blueTimerBlock .iviTimer__text{color:rgba(255,255,255,.76)!important}
.blueTimerBlock .iviTimer__grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  max-width:680px!important;
  margin:28px auto 0!important;
}
.blueTimerBlock .iviTimer__grid>div{
  padding:19px 8px 16px!important;
  background:rgba(255,255,255,.04)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:4px 24px 4px 24px!important;
}
.blueTimerBlock .iviTimer__grid b{color:#fff!important;font-family:"EstylleMadison","Allura",cursive!important;font-size:52px!important;font-weight:400!important}
.blueTimerBlock .iviTimer__grid span{color:rgba(255,255,255,.72)!important;font:600 9px/1.3 "Cabin",Arial,sans-serif!important;letter-spacing:.13em!important;text-transform:uppercase!important}
.blueTimerBlock .iviTimer__expired{color:#fff!important;font-family:"EstylleMadison","Allura",cursive!important;font-weight:400!important}

.gaTimerEmpty{
  position:relative;
  z-index:1;
  padding:52px 48px;
  text-align:center;
  color:#fff;
}
.gaTimerEmpty__kicker{color:rgba(255,255,255,.82)!important}
.gaTimerEmpty__title{color:#fff!important}
.gaTimerEmpty__text{max-width:560px!important;color:rgba(255,255,255,.76)!important}
.gaTimerEmpty__digits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:680px;margin:28px auto 0}
.gaTimerEmpty__digits>span{display:block;padding:19px 8px 16px;border:1px solid rgba(255,255,255,.24);border-radius:4px 24px 4px 24px;font-family:"EstylleMadison","Allura",cursive;font-size:52px;line-height:1}
.gaTimerEmpty__digits small{display:block;margin-top:7px;color:rgba(255,255,255,.72);font:600 9px/1.3 "Cabin",Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .gaLocationBlock,.gaDetailsBlock{width:88%!important;padding:44px 34px!important}
  .gaDetailsBlock .le-details__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gaContactsBlock .ivi-contacts__inner{grid-template-columns:1fr!important;gap:28px!important}
  .gaContactsBlock .ivi-contacts__head{text-align:center!important;max-width:660px!important;margin:0 auto!important}
  .gaContactsBlock .ivi-contacts__text{text-align:center!important;margin:16px auto 0!important}
}
@media(max-width:700px){
  .gaLocationBlock,.gaDetailsBlock,.blueTimerBlock{width:100%!important;padding:34px 20px!important;border-radius:4px 48px 4px 48px!important}
  .blueTimerBlock{padding:0!important}
  .gaLocationBlock .iviLocGrid,.gaDetailsBlock .le-details__grid{grid-template-columns:1fr!important}
  .gaLocationBlock .iviLocHead,.gaDetailsBlock .le-details__header{margin-bottom:28px!important}
  .gaLocationBlock .iviLocCard{border-radius:44px 4px 44px 4px!important}
  .gaLocationBlock .iviLocPhoto{height:210px!important}
  .gaDetailsBlock .le-details__card{min-height:0!important;border-radius:38px 4px 38px 4px!important}
  .gaContactsBlock{width:100%!important}
  .gaContactsBlock .ivi-contacts__grid{grid-template-columns:1fr!important}
  .gaContactsBlock .ivi-contact{width:100%!important;min-height:0!important;border-radius:44px 4px 44px 4px!important}
  .blueTimerBlock .iviTimer__inner,.gaTimerEmpty{padding:42px 20px!important}
  .blueTimerBlock .iviTimer__grid,.gaTimerEmpty__digits{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gaLocationBlock .iviLocTitle,.gaDetailsBlock .le-details__title,.gaContactsBlock .ivi-contacts__title,.blueTimerBlock .iviTimer__title,.gaTimerEmpty__title{font-size:50px!important}
}

/* ===== v4: hero subtitle + mobile names + location section text ===== */
.hero__names span{display:block;max-width:100%;white-space:nowrap;text-align:center}
.hero__subtitle{max-width:520px;margin:-42px auto 34px;color:var(--muted);font-size:15px;line-height:1.65;text-align:center}
.gaLocationHead{position:relative;z-index:2;margin:0 0 34px;padding-right:72px}
.gaLocationHead .section-title{margin-bottom:18px}
.gaLocationHead__text{max-width:650px;margin:0!important;color:var(--muted);font-size:15px!important;line-height:1.7!important}
@media(max-width:700px){
  .hero__names{font-size:clamp(50px,15.5vw,68px)!important;line-height:.78!important;width:100%;max-width:100%;margin-bottom:42px!important}
  .hero__names span{width:100%;max-width:calc(100vw - 42px);white-space:nowrap;overflow:visible;letter-spacing:-.045em}
  .hero__names small{font-size:19px!important;margin:8px 0!important}
  .hero__subtitle{max-width:310px;margin:-20px auto 26px;font-size:13px;line-height:1.55}
  .gaLocationHead{padding-right:0;margin-bottom:28px}
  .gaLocationHead__text{font-size:14px!important;line-height:1.65!important}
}
@media(max-width:390px){
  .hero__names{font-size:clamp(46px,14.8vw,58px)!important}
  .hero__names span{max-width:calc(100vw - 30px)}
}

/* ===== v5: mobile dress-code composition ===== */
@media(max-width:700px){
  .dresscode{
    padding:72px 14px 76px!important;
    justify-content:flex-start!important;
    align-items:center!important;
    overflow:hidden!important;
  }

  .dresscode .card{
    width:calc(100% - 48px)!important;
    max-width:320px!important;
    margin:0 auto 0 0!important;
    padding:38px 19px 40px!important;
    background:rgba(244,239,233,.94)!important;
    box-shadow:0 18px 46px rgba(70,58,48,.12)!important;
    z-index:2!important;
  }

  .dresscode .card:before{
    inset:7px!important;
  }

  .dresscode .eyebrow{
    font-size:9px!important;
    letter-spacing:.23em!important;
    margin-bottom:7px!important;
  }

  .dresscode .eyebrow:after{
    width:30px!important;
    margin-top:10px!important;
  }

  .dresscode .section-title{
    max-width:100%!important;
    margin:12px 0 24px!important;
    font-size:clamp(42px,13vw,49px)!important;
    line-height:.88!important;
    letter-spacing:-.035em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .dresscode .card>p:not(.eyebrow){
    max-width:235px!important;
    font-size:13px!important;
    line-height:1.62!important;
  }

  .dresscode .palette{
    gap:7px!important;
    margin-top:26px!important;
    padding-right:2px!important;
  }

  .dresscode .palette span{
    width:34px!important;
    height:34px!important;
    border-width:4px!important;
    flex:0 0 auto!important;
  }

  .dresscode .palette span:nth-child(4){
    width:38px!important;
    height:38px!important;
  }

  .dresscode .flower--section-right{
    width:245px!important;
    right:-93px!important;
    left:auto!important;
    top:52%!important;
    transform:translateY(-50%) rotate(177deg)!important;
    opacity:.96!important;
    z-index:0!important;
  }
}

@media(max-width:390px){
  .dresscode .card{
    width:calc(100% - 42px)!important;
    padding:35px 17px 37px!important;
  }
  .dresscode .section-title{
    font-size:clamp(40px,12.5vw,46px)!important;
  }
  .dresscode .flower--section-right{
    width:232px!important;
    right:-96px!important;
  }
}


/* ===== v8: invitation label at the top of hero ===== */
.hero__content{padding-top:0}
.hero__invite{
  margin:0 auto 48px!important;
  position:relative;
  z-index:3;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hero__names{margin-bottom:52px!important}
.hero__subtitle{margin:0 auto 30px!important}

@media (max-width:640px){
  .hero__content{padding-top:16px!important}
  .hero__invite{
    margin:0 auto 46px!important;
    font-size:9px!important;
    letter-spacing:.11em;
  }
  .hero__names{margin-bottom:34px!important}
  .hero__subtitle{margin:0 auto 24px!important}
}


/* ===== v9: location typography fix desktop + mobile ===== */
.gaLocationBlock .iviLocName{
  max-width:100%!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:clamp(34px,3.15vw,44px)!important;
  font-weight:400!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto!important;
}
.gaLocationBlock .iviLocAddr{
  font-size:13px!important;
  line-height:1.55!important;
}
.gaLocationBlock .iviLocNote{
  font-size:13px!important;
  line-height:1.55!important;
}
@media(max-width:700px){
  .gaLocationBlock .iviLocBody{padding:22px 22px 25px!important;}
  .gaLocationBlock .iviLocName{
    font-size:clamp(28px,9vw,34px)!important;
    line-height:1.03!important;
    letter-spacing:-.03em!important;
  }
  .gaLocationBlock .iviLocAddr{margin-top:12px!important;font-size:12px!important;line-height:1.55!important;}
  .gaLocationBlock .iviLocNote{margin-top:7px!important;font-size:12px!important;line-height:1.55!important;}
  .gaLocationBlock .iviLocBadge{font-size:9px!important;letter-spacing:.15em!important;}
  .gaLocationBlock .iviBtn{min-height:39px!important;padding:0 14px!important;font-size:9px!important;letter-spacing:.09em!important;}
}
@media(max-width:390px){
  .gaLocationBlock .iviLocName{font-size:28px!important;}
}
