:root{
  --paper:#f5ead4;
  --cream:#fff3cf;
  --ink:#171611;
  --pink:#ed7893;
  --pink-soft:#f7c9cf;
  --blue:#acd8ee;
  --blue-soft:#c8e5f1;
  --yellow:#f7df72;
  --line:#171611;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#e9ddc7;color:var(--ink);font-family:"Caveat",cursive}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 15%,rgba(255,255,255,.45),transparent 32%),radial-gradient(circle at 88% 80%,rgba(135,91,52,.07),transparent 35%);z-index:0}
.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.23'/%3E%3C/svg%3E")}
.page{position:relative;z-index:1;width:min(1040px,calc(100% - 20px));margin:10px auto;background:var(--paper);border:1.8px solid var(--line);padding:18px 18px 14px;box-shadow:0 18px 60px rgba(62,42,20,.18)}
.header{min-height:62px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:0 14px 12px}
.logo{color:var(--ink);text-decoration:none;font:700 41px/1 "Caveat",cursive;letter-spacing:-2px}.logo i{font-style:normal;color:var(--pink);font-size:19px;margin-left:2px}
.header nav{display:flex;justify-content:flex-end;gap:24px;flex-wrap:wrap}.header nav a{color:var(--ink);text-decoration:none;font-size:18px;font-weight:700}.header nav a:hover{color:#c94f6a}
.header-heart{font-size:40px;color:var(--pink);transform:rotate(8deg)}
.panel,.info-box{border:1.8px solid var(--line);border-radius:24px;overflow:hidden}
.hero{min-height:398px;position:relative;background:var(--blue);display:grid;grid-template-columns:38% 62%;overflow:visible}
.hero-message{z-index:4;align-self:center;margin-left:12px;min-height:360px;border:1.8px solid var(--line);border-radius:18px;background:rgba(250,239,216,.98);padding:34px 34px 25px;position:relative;transform:rotate(-.7deg)}
.tape{display:inline-block;background:#efb1bd;padding:7px 22px;font-size:23px;font-weight:700;transform:rotate(-4deg);margin:0 0 20px 28px}
.hero-message h1{font:400 clamp(46px,6.5vw,73px)/.94 "Neucha",sans-serif;letter-spacing:-2px;margin:8px 0 22px}.hero-message h1 b{font-weight:400;color:#d65370}
.hero-message p{font-size:24px;line-height:1.25;margin:0}
.mini-heart{position:absolute;color:var(--pink);font-size:30px}.mh1{top:36px;left:24px}.mh2{top:58px;left:42px;font-size:18px}.mh3{bottom:10px;right:10px;font-size:35px}
.hero-scene{position:relative;min-height:398px;overflow:hidden}
.hero-image{position:absolute;left:6%;bottom:0;width:72%;height:88%;object-fit:cover;object-position:center bottom;mix-blend-mode:multiply;border-radius:0 0 40% 40%}
.cloud{position:absolute;background:#fff1d2;border:1.8px solid var(--line);border-radius:999px;height:44px}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border:inherit;border-radius:50%}.cloud-left{width:112px;left:-18px;top:28px}.cloud-left:before{width:52px;height:52px;left:20px;top:-27px}.cloud-left:after{width:42px;height:42px;right:8px;top:-19px}.cloud-right{width:136px;right:-38px;bottom:32px}.cloud-right:before{width:54px;height:54px;left:21px;top:-27px}.cloud-right:after{width:46px;height:46px;right:16px;top:-21px}
.floating-heart{position:absolute;color:var(--pink);font-size:33px}.h1{left:42%;top:45px;transform:rotate(-8deg)}.h2{left:57%;top:77px;font-size:24px}.h3{left:33%;top:95px;font-size:21px}
.date-cloud{position:absolute;right:24px;top:30px;width:155px;height:166px;background:#fff1d2;border:1.8px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;clip-path:polygon(50% 0,64% 10%,78% 5%,87% 19%,100% 30%,93% 47%,100% 63%,84% 73%,78% 92%,59% 88%,44% 100%,31% 87%,13% 90%,10% 72%,0 59%,8% 43%,2% 27%,18% 18%,30% 4%)}
.date-cloud strong{font:400 59px/.9 "Neucha"}.date-cloud span{font-size:26px;font-weight:700}.date-cloud b{font-size:29px;color:#d65370}
.days-card{position:absolute;right:38px;bottom:28px;background:#fff1d2;border:1.8px solid var(--line);border-radius:15px;padding:8px 22px 5px;text-align:center;min-width:150px}.days-card small{font-size:17px}.days-card strong{display:block;color:#d65370;font:400 41px/1 "Neucha"}
.pink-panel{background:var(--pink-soft)}.blue-panel{background:var(--blue-soft)}.cream-panel{background:#fff0ca}
.about{margin-top:10px;min-height:244px;display:grid;grid-template-columns:37% 63%}.about-image-wrap,.dress-image-wrap,.program-image-wrap,.rsvp-image-wrap{position:relative;overflow:hidden}.about img,.dress img,.program img,.rsvp img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}.about-copy{padding:25px 34px;display:flex;flex-direction:column;justify-content:center}.about-copy p,.dress-copy p{font-size:24px;line-height:1.22;margin:4px 0}
.label{display:inline-flex;align-items:center;gap:10px;border:1.8px solid var(--line);border-radius:8px;padding:5px 21px;font-size:28px;line-height:1;margin:0 0 15px;font-weight:700;width:max-content}.pink-label{background:#f5a7b6}.blue-label{background:#bce2ef}.yellow-label{background:#f8df75}.label span{font-size:22px}
.info-row{display:grid;grid-template-columns:1fr 1fr 1.05fr;gap:10px;margin:10px 0}.info-box{min-height:208px;position:relative;padding:14px 17px}.cream-box{background:#fff1ca}.blue-box{background:#c7e6f1}.info-box h3{margin-bottom:18px}.info-box p{font-size:20px;line-height:1.35;margin:10px 0 0 118px}.info-box p b{font-size:21px}.info-box p strong{font-size:26px;color:#d65370}.info-box a{display:inline-block;margin-left:118px;color:#d65370;font-size:18px;margin-top:3px}
.calendar-doodle{position:absolute;left:29px;bottom:27px;width:72px;height:77px;border:1.8px solid var(--line);border-radius:7px;background:#fff1d2;display:grid;place-items:center;color:#d65370;font-size:30px;transform:rotate(-4deg)}.calendar-doodle:before{content:"";position:absolute;left:-2px;right:-2px;top:14px;height:14px;background:#ef8ca0;border-block:1.8px solid var(--line)}
.map-pin{position:absolute;left:42px;bottom:46px;width:57px;height:73px;background:#ee718b;border:1.8px solid var(--line);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.map-pin i{position:absolute;width:22px;height:22px;background:#fff1d2;border:1.8px solid var(--line);border-radius:50%;left:16px;top:16px}
.hearts-doodle{position:absolute;left:28px;bottom:48px;color:#ee718b;font-size:58px;letter-spacing:-23px;transform:rotate(-8deg)}
.middle-row{display:grid;grid-template-columns:1fr 1.13fr;gap:10px}.dress,.program{min-height:239px;display:grid}.dress{grid-template-columns:44% 56%}.program{grid-template-columns:59% 41%}.dress-copy,.program-copy{padding:20px 20px;display:flex;flex-direction:column;justify-content:center}.main-note{margin-top:10px!important;font-weight:700}.program-copy ul{list-style:none;margin:0;padding:0;font-size:21px;line-height:1.45}.program-copy li:before{content:"♥";color:#df607b;margin-right:9px}
.rsvp{margin-top:10px;display:grid;grid-template-columns:39% 61%;min-height:198px}.rsvp-copy{padding:16px 25px}.rsvp-heading{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:24px}.rsvp-heading p{font-size:19px;line-height:1.25;margin:5px 0}.rsvp-heading b{color:#d65370;font-size:23px}.choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.choice{border:1.8px solid var(--line);border-radius:999px;background:#fff6dc;padding:10px 12px;font:700 19px "Caveat";cursor:pointer}.choice.active{background:#ed7893}.form-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;margin-top:10px}.form-fields input,.form-fields button{border:1.8px solid var(--line);border-radius:999px;background:#fff8e6;padding:9px 14px;font:700 15px "Nunito"}.form-fields button{background:#ed7893;cursor:pointer}.rsvp-note{font-size:17px;margin:8px 0 0}.form-note{min-height:16px;margin:4px 0 0;color:#a63a52;font-size:16px}
.footer{margin-top:10px;min-height:74px;display:grid;grid-template-columns:180px 1fr 70px;align-items:center}.footer img{width:180px;height:74px;object-fit:cover;object-position:center 34%;mix-blend-mode:multiply}.footer p{text-align:center;font-size:24px;margin:0}.footer span{font-size:45px;color:#ed7893}
@media(max-width:860px){.header nav{display:none}.page{padding:12px}.hero{grid-template-columns:1fr;overflow:hidden}.hero-message{margin:14px;min-height:auto}.hero-scene{min-height:420px}.about,.rsvp{grid-template-columns:1fr}.about-image-wrap,.rsvp-image-wrap{height:250px}.info-row,.middle-row{grid-template-columns:1fr}.footer{grid-template-columns:120px 1fr 40px}.footer img{width:120px}.rsvp-heading{grid-template-columns:1fr;gap:0}}
@media(max-width:560px){.page{width:calc(100% - 10px);margin:5px auto;padding:8px}.header{padding-inline:5px}.logo{font-size:34px}.header-heart{font-size:32px}.hero-message{padding:26px 22px}.hero-message h1{font-size:51px}.hero-scene{min-height:365px}.hero-image{left:0;width:88%;height:82%}.date-cloud{width:125px;height:136px;right:8px}.date-cloud strong{font-size:47px}.date-cloud span{font-size:21px}.date-cloud b{font-size:23px}.days-card{right:10px;bottom:10px;min-width:125px}.about-copy,.dress-copy,.program-copy,.rsvp-copy{padding:20px}.dress,.program{grid-template-columns:1fr}.dress-image-wrap,.program-image-wrap{height:220px}.info-box p,.info-box a{margin-left:100px}.choice-row,.form-fields{grid-template-columns:1fr}.footer{grid-template-columns:80px 1fr 28px}.footer img{width:80px}.footer p{font-size:19px}.footer span{font-size:31px}}

/* Wedding edition */
.hero-message .amp{display:inline-block;color:var(--ink);font-family:"Caveat",cursive;font-size:.72em;transform:rotate(-7deg);margin:0 .08em}
.palette{display:flex;gap:10px;margin:14px 0 4px}.palette i{width:28px;height:28px;border:1.6px solid var(--line);border-radius:50%;display:block}.palette i:nth-child(1){background:#f5d9d8}.palette i:nth-child(2){background:#e7c6bb}.palette i:nth-child(3){background:#d8ccb8}.palette i:nth-child(4){background:#b9c8b1}.palette i:nth-child(5){background:#aebec9}
@media(max-width:560px){.hero-message .amp{font-size:.66em}}

/* V3: full illustrations without cropping */
.hero-scene{
  min-height:430px;
  overflow:hidden;
  background:#acd8ee;
}
.hero-image{
  inset:0;
  left:0;
  bottom:auto;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  border-radius:0;
  mix-blend-mode:normal;
}
.hero-scene .cloud,
.hero-scene .floating-heart{
  z-index:2;
}
.date-cloud,
.days-card{
  z-index:3;
}

.about-image-wrap,
.dress-image-wrap,
.program-image-wrap,
.rsvp-image-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.about img,
.dress img,
.program img,
.rsvp img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:normal;
}

.about{
  grid-template-columns:minmax(360px, 44%) 1fr;
  min-height:0;
}
.about-image-wrap{background:#f4c6ce}
.about-copy{min-height:292px}

.middle-row{
  align-items:stretch;
}
.dress,
.program{
  min-height:0;
  grid-template-columns:1fr;
}
.dress-image-wrap,
.program-image-wrap{
  aspect-ratio:1245 / 848;
}
.dress-image-wrap{background:#f5c9d0}
.program-image-wrap{background:#c9e4ef}
.dress-copy,
.program-copy{
  min-height:255px;
}
.program-copy{order:2}
.program-image-wrap{order:1}

.rsvp{
  grid-template-columns:minmax(390px, 44%) 1fr;
  min-height:0;
}
.rsvp-image-wrap{
  background:#e0bc72;
}
.rsvp-copy{
  min-height:262px;
  align-self:center;
}

.footer{
  grid-template-columns:210px 1fr 70px;
  min-height:112px;
  overflow:hidden;
}
.footer img{
  width:100%;
  height:auto;
  max-height:108px;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:normal;
}

@media(max-width:860px){
  .hero-scene{min-height:520px}
  .about,
  .rsvp{grid-template-columns:1fr}
  .about-image-wrap,
  .rsvp-image-wrap{
    height:auto;
    aspect-ratio:auto;
  }
  .about-copy,
  .rsvp-copy{min-height:0}
  .middle-row{grid-template-columns:1fr 1fr}
  .footer{grid-template-columns:180px 1fr 50px}
  .footer img{width:100%;max-height:100px}
}

@media(max-width:680px){
  .middle-row{grid-template-columns:1fr}
  .hero-scene{min-height:auto;aspect-ratio:1245 / 848}
  .hero-image{position:absolute}
  .about-image-wrap,
  .dress-image-wrap,
  .program-image-wrap,
  .rsvp-image-wrap{
    aspect-ratio:auto;
  }
  .about img,
  .dress img,
  .program img,
  .rsvp img{
    width:100%;
    height:auto;
  }
}

@media(max-width:560px){
  .hero-scene{min-height:0;aspect-ratio:1245 / 848}
  .hero-image{left:0;width:100%;height:100%}
  .date-cloud{right:8px;top:14px}
  .days-card{right:10px;bottom:10px}
  .dress-image-wrap,
  .program-image-wrap{height:auto}
  .footer{
    grid-template-columns:115px 1fr 30px;
    min-height:88px;
  }
  .footer img{width:100%;height:auto;max-height:84px}
}

/* V4: clean illustration edges and remove duplicate decorations */
.hero{
  overflow:hidden;
}
.hero-scene{
  min-height:0;
  aspect-ratio:1245 / 848;
  background:#f5ead4;
  overflow:hidden;
}
.hero-scene .cloud{
  display:none;
}
.hero-image{
  position:absolute;
  inset:-2px;
  width:calc(100% + 4px);
  height:calc(100% + 4px);
  object-fit:cover;
  object-position:center;
}
.date-cloud{
  right:1.8%;
  top:19%;
  width:18%;
  height:37%;
  min-width:104px;
  min-height:116px;
  padding-top:4px;
  background:transparent;
  border:0;
  clip-path:none;
}
.date-cloud strong{font-size:clamp(40px,4.8vw,58px)}
.date-cloud span{font-size:clamp(18px,2.1vw,25px)}
.date-cloud b{font-size:clamp(21px,2.3vw,28px)}
.days-card{
  left:4.5%;
  right:auto;
  bottom:5%;
  min-width:132px;
  z-index:4;
}
.floating-heart.h1{left:38%;top:15%}
.floating-heart.h2{left:46%;top:22%}
.floating-heart.h3{left:32%;top:28%}

/* The supplied illustrations already contain their own hand-drawn frame.
   Trim only the outer 3px so it does not double with the HTML panel border. */
.about-image-wrap,
.dress-image-wrap,
.program-image-wrap,
.rsvp-image-wrap{
  isolation:isolate;
  background:transparent;
}
.about-image-wrap img,
.dress-image-wrap img,
.program-image-wrap img,
.rsvp-image-wrap img{
  width:calc(100% + 6px);
  max-width:none;
  margin:-3px;
  clip-path:inset(3px round 18px);
}
.about{
  overflow:hidden;
}
.about-image-wrap{
  border-radius:22px 0 0 22px;
}
.dress-image-wrap,
.program-image-wrap,
.rsvp-image-wrap{
  border-radius:22px 22px 0 0;
}
.rsvp-image-wrap{
  border-radius:22px 0 0 22px;
}

@media(max-width:860px){
  .hero-scene{aspect-ratio:1245 / 848;min-height:0}
  .about-image-wrap,
  .rsvp-image-wrap{border-radius:22px 22px 0 0}
  .date-cloud{right:1%;top:18%;width:19%;height:38%}
  .days-card{left:3%;bottom:4%}
}

@media(max-width:560px){
  .hero-scene{aspect-ratio:1245 / 848}
  .hero-image{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px)}
  .date-cloud{
    right:1%;
    top:18%;
    width:20%;
    height:39%;
    min-width:76px;
    min-height:84px;
  }
  .date-cloud strong{font-size:34px}
  .date-cloud span{font-size:16px}
  .date-cloud b{font-size:18px}
  .days-card{
    left:3%;
    bottom:3%;
    min-width:108px;
    padding:6px 12px 4px;
  }
  .days-card small{font-size:14px}
  .days-card strong{font-size:34px}
  .floating-heart{display:none}
}


/* V5: аккуратная дата и чистый footer */
.date-cloud{
  right:0.2%;
  top:21%;
  width:16.5%;
  height:34%;
  min-width:96px;
  min-height:106px;
  padding:0 4px 0 8px;
  z-index:5;
}
.date-cloud strong{font-size:clamp(34px,4vw,50px);line-height:.88}
.date-cloud span{font-size:clamp(16px,1.75vw,22px);line-height:1.05}
.date-cloud b{font-size:clamp(19px,2vw,25px);line-height:1}
.footer{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  padding:16px 28px;
}
.footer img{display:none!important}
.footer p{margin:0;text-align:center;flex:0 1 auto}
.footer .footer-heart{
  flex:0 0 auto;
  display:inline-grid;
  place-items:center;
  width:50px;
  height:50px;
  font-size:40px;
  line-height:1;
  color:#ed7893;
  transform:rotate(-7deg);
}
@media(max-width:860px){
  .date-cloud{right:.2%;top:20%;width:17%;height:35%}
  .footer{grid-template-columns:none;gap:14px}
}
@media(max-width:560px){
  .date-cloud{right:0;top:19%;width:18%;height:36%;min-width:68px;min-height:76px;padding-left:5px}
  .date-cloud strong{font-size:30px}
  .date-cloud span{font-size:14px}
  .date-cloud b{font-size:16px}
  .footer{min-height:72px;padding:12px 16px;gap:10px}
  .footer p{font-size:18px}
  .footer .footer-heart{width:34px;height:34px;font-size:29px}
}


/* V6: дата вынесена в чистую голубую область */
.date-cloud{
  left:5.5%;
  right:auto;
  top:11%;
  width:150px;
  height:auto;
  min-width:0;
  min-height:0;
  padding:14px 18px 12px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:
    "day month"
    "day year";
  align-items:center;
  justify-content:start;
  column-gap:10px;
  row-gap:1px;
  background:#fff1d2;
  border:2px solid var(--line);
  border-radius:22px;
  clip-path:none;
  box-shadow:7px 7px 0 rgba(47,43,35,.14);
  transform:rotate(-2deg);
  z-index:6;
}
.date-cloud strong{
  grid-area:day;
  font-size:52px;
  line-height:.9;
}
.date-cloud span{
  grid-area:month;
  align-self:end;
  font-size:20px;
  line-height:1;
  white-space:nowrap;
}
.date-cloud b{
  grid-area:year;
  align-self:start;
  font-size:22px;
  line-height:1;
  white-space:nowrap;
}
@media(max-width:860px){
  .date-cloud{
    left:4%;
    top:9%;
    width:132px;
    padding:11px 14px 10px;
    column-gap:8px;
    border-radius:18px;
  }
  .date-cloud strong{font-size:44px}
  .date-cloud span{font-size:17px}
  .date-cloud b{font-size:19px}
}
@media(max-width:560px){
  .date-cloud{
    left:3.5%;
    top:8%;
    width:114px;
    padding:9px 11px 8px;
    column-gap:7px;
    border-radius:15px;
    box-shadow:5px 5px 0 rgba(47,43,35,.12);
  }
  .date-cloud strong{font-size:37px}
  .date-cloud span{font-size:15px}
  .date-cloud b{font-size:16px}
}


/* V7: decorative header and five colorful themes */
:root{
  --page-bg:#e9ddc7;
  --paper:#f5ead4;
  --cream:#fff3cf;
  --ink:#171611;
  --pink:#ed7893;
  --pink-soft:#f7c9cf;
  --blue:#acd8ee;
  --blue-soft:#c8e5f1;
  --yellow:#f7df72;
  --line:#171611;
  --accent:#ed7893;
  --accent-deep:#c94f6a;
  --accent-soft:#f7c9cf;
  --accent-alt:#acd8ee;
  --accent-warm:#f7df72;
  --panel-cream:#fff3cf;
  --shadow:rgba(62,42,20,.18);
}
html[data-theme="strawberry"]{
  --page-bg:#ead8d2;--paper:#fff0df;--cream:#fff4cf;--pink:#f37f9b;--pink-soft:#ffd0d8;
  --blue:#aee0ef;--blue-soft:#d1eef5;--yellow:#ffe37b;--accent:#f25f82;--accent-deep:#c9365b;
  --accent-soft:#ffd0d8;--accent-alt:#9fdceb;--accent-warm:#ffe37b;--panel-cream:#fff4cf;
}
html[data-theme="lemon"]{
  --page-bg:#e8e0b7;--paper:#fff7d9;--cream:#fff2a8;--pink:#ff9f73;--pink-soft:#ffd9bd;
  --blue:#9edee5;--blue-soft:#caf0ef;--yellow:#ffe45c;--accent:#f59e42;--accent-deep:#c96c1d;
  --accent-soft:#ffd7a8;--accent-alt:#8fd7df;--accent-warm:#ffe45c;--panel-cream:#fff2a8;
}
html[data-theme="sky"]{
  --page-bg:#d7e6ee;--paper:#eef9ff;--cream:#fff2c9;--pink:#ff88a6;--pink-soft:#ffd2dd;
  --blue:#73c9ef;--blue-soft:#bfe8f8;--yellow:#ffe47d;--accent:#3ea9df;--accent-deep:#1676aa;
  --accent-soft:#c9ecfb;--accent-alt:#73c9ef;--accent-warm:#ffe47d;--panel-cream:#fff2c9;
}
html[data-theme="lavender"]{
  --page-bg:#ddd7eb;--paper:#f7efff;--cream:#fff1cf;--pink:#d88bdc;--pink-soft:#efd1f1;
  --blue:#a9b7f5;--blue-soft:#d5dcfb;--yellow:#f7dd78;--accent:#a46ad3;--accent-deep:#73429e;
  --accent-soft:#ead6f6;--accent-alt:#a9b7f5;--accent-warm:#f7dd78;--panel-cream:#fff1cf;
}
html[data-theme="mint"]{
  --page-bg:#d7e9df;--paper:#effbf4;--cream:#fff3c9;--pink:#ef8fa7;--pink-soft:#f8ced8;
  --blue:#8ed6c2;--blue-soft:#c7eee3;--yellow:#f5dc72;--accent:#4eb69a;--accent-deep:#257c67;
  --accent-soft:#c8eee2;--accent-alt:#8ed6c2;--accent-warm:#f5dc72;--panel-cream:#fff3c9;
}
body{background:var(--page-bg);transition:background .35s ease,color .35s ease}
.page{background:var(--paper);box-shadow:0 18px 60px var(--shadow);transition:background .35s ease}
.header{
  min-height:78px;
  grid-template-columns:auto minmax(180px,1fr) auto;
  gap:18px;
  padding:3px 14px 15px;
}
.header-love-note{
  justify-self:center;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 18px 7px;
  border:1.8px solid var(--line);
  border-radius:999px;
  background:var(--accent-soft);
  font-size:20px;
  font-weight:700;
  transform:rotate(-1deg);
  box-shadow:4px 4px 0 color-mix(in srgb,var(--accent) 24%,transparent);
  white-space:nowrap;
}
.note-heart{color:var(--accent-deep);font-size:15px}
.logo i,.header-heart,.footer .footer-heart{color:var(--accent)}
.theme-picker{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding:7px 9px;
  border:1.8px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb,var(--paper) 88%,white);
}
.theme-button{
  appearance:none;
  width:29px;height:29px;
  padding:0;
  border:1.6px solid var(--line);
  border-radius:50%;
  background:#fff;
  display:grid;place-items:center;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease;
}
.theme-button i{display:block;width:19px;height:19px;border-radius:50%}
.theme-button[data-theme-value="strawberry"] i{background:linear-gradient(135deg,#f25f82 50%,#9fdceb 50%)}
.theme-button[data-theme-value="lemon"] i{background:linear-gradient(135deg,#ffe45c 50%,#ff9f73 50%)}
.theme-button[data-theme-value="sky"] i{background:linear-gradient(135deg,#73c9ef 50%,#ff88a6 50%)}
.theme-button[data-theme-value="lavender"] i{background:linear-gradient(135deg,#a46ad3 50%,#f7dd78 50%)}
.theme-button[data-theme-value="mint"] i{background:linear-gradient(135deg,#4eb69a 50%,#ef8fa7 50%)}
.theme-button:hover{transform:translateY(-2px) rotate(-5deg)}
.theme-button.is-active{box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--accent);transform:scale(1.06)}

/* Theme every major card, accent and control */
.pink-panel{background:var(--pink-soft)}
.blue-panel,.blue-box{background:var(--blue-soft)}
.cream-panel,.cream-box{background:var(--panel-cream)}
.hero,.hero-scene{background:var(--blue)}
.pink-label,.choice.active,.form-fields button{background:var(--accent)}
.blue-label{background:var(--accent-alt)}
.yellow-label{background:var(--accent-warm)}
.tape{background:color-mix(in srgb,var(--accent) 58%,white)}
.logo i,.floating-heart,.mini-heart,.hearts-doodle,.program-copy li:before,.rsvp-heading b,.footer .footer-heart{color:var(--accent-deep)}
.days-card strong,.info-box strong{color:var(--accent-deep)}
.choice.active,.form-fields button{color:var(--ink);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 28%,transparent)}
.map-pin{background:var(--accent)}
.about-image-wrap{background:var(--pink-soft)}
.dress-image-wrap{background:var(--pink-soft)}
.program-image-wrap{background:var(--blue-soft)}
.rsvp-image-wrap{background:color-mix(in srgb,var(--accent-warm) 65%,var(--paper))}
.date-cloud{background:color-mix(in srgb,var(--paper) 74%,white)}

@media(max-width:860px){
  .header{grid-template-columns:auto 1fr;gap:12px}
  .header-love-note{display:none}
  .theme-picker{justify-self:end}
}
@media(max-width:560px){
  .header{min-height:65px;padding:2px 5px 11px;gap:8px}
  .logo{font-size:31px}
  .theme-picker{gap:5px;padding:6px 7px}
  .theme-button{width:25px;height:25px}
  .theme-button i{width:16px;height:16px}
}


/* V9: compact gallery prepared for Fancybox */
.gallery{
  position:relative;
  margin-top:10px;
  padding:22px 24px 24px;
  overflow:hidden;
  background:color-mix(in srgb,var(--panel-cream) 90%,var(--accent-soft));
}
.gallery::before,
.gallery::after{
  content:"♥";
  position:absolute;
  color:var(--accent);
  opacity:.18;
  font-size:54px;
  line-height:1;
  pointer-events:none;
}
.gallery::before{left:16px;top:16px;transform:rotate(-15deg)}
.gallery::after{right:18px;bottom:13px;transform:rotate(13deg)}
.gallery-heading{
  max-width:560px;
  margin:0 auto 17px;
  text-align:center;
  position:relative;
  z-index:2;
}
.gallery-kicker{
  display:inline-block;
  margin-bottom:5px;
  color:var(--accent-deep);
  font-size:15px;
  font-weight:800;
  transform:rotate(-2deg);
}
.gallery-heading .label{
  min-width:180px;
  margin-inline:auto;
}
.gallery-heading p{
  margin:7px 0 0;
  font-size:17px;
  line-height:1.25;
}
.gallery-strip{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px;
  max-width:980px;
  margin:0 auto;
  align-items:center;
}
.gallery-thumb{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  padding:6px;
  overflow:hidden;
  border:1.6px solid var(--line);
  border-radius:9px;
  background:var(--paper);
  box-shadow:5px 6px 0 color-mix(in srgb,var(--accent) 30%,transparent);
  transition:transform .2s ease,box-shadow .2s ease;
}
.gallery-thumb::after{
  content:"♡";
  position:absolute;
  right:10px;
  bottom:7px;
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border:1.4px solid var(--line);
  border-radius:50%;
  background:color-mix(in srgb,var(--paper) 86%,transparent);
  color:var(--accent-deep);
  font-size:17px;
  font-weight:900;
  backdrop-filter:blur(5px);
}
.gallery-thumb:hover{
  transform:translateY(-4px) rotate(0deg);
  box-shadow:7px 9px 0 color-mix(in srgb,var(--accent) 38%,transparent);
}
.gallery-thumb--one{transform:rotate(-1.5deg)}
.gallery-thumb--two{transform:rotate(.8deg)}
.gallery-thumb--three{transform:rotate(-.7deg)}
.gallery-thumb--four{transform:rotate(1.4deg)}
.gallery-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border:1.2px solid var(--line);
  border-radius:4px;
}
.gallery-note{
  position:relative;
  z-index:2;
  margin:16px auto 0;
  text-align:center;
  font-size:15px;
  font-weight:700;
  color:var(--ink-soft);
}
.gallery-note span{color:var(--accent-deep)}
@media(max-width:760px){
  .gallery{padding:20px 16px 23px}
  .gallery-strip{grid-template-columns:repeat(2,minmax(0,1fr));max-width:570px;gap:14px}
  .gallery-heading p{font-size:16px}
}
@media(max-width:440px){
  .gallery-strip{gap:10px}
  .gallery-thumb{padding:4px;border-radius:7px;box-shadow:3px 4px 0 color-mix(in srgb,var(--accent) 30%,transparent)}
  .gallery-note{font-size:13px}
  .gallery::before,.gallery::after{font-size:38px}
}


/* V10: original Russian title instead of third-party brand wording */
.logo{
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
  font-size:37px;
  letter-spacing:-1.4px;
}
.logo i{
  flex:0 0 auto;
  margin-left:1px;
}
@media(max-width:680px){
  .logo{font-size:28px;letter-spacing:-1px}
}
@media(max-width:420px){
  .logo{font-size:24px}
}

/* V11: ceremony + banquet location section, with and without photos */
.info-row--date{
  grid-template-columns:1fr 1fr;
}
.info-box--date,.info-box--mood{min-height:210px}
.locations{
  position:relative;
  padding:28px;
  margin:10px 0;
  overflow:hidden;
}
.locations::before,
.locations::after{
  content:"♥";
  position:absolute;
  color:color-mix(in srgb,var(--accent) 55%,transparent);
  font-size:34px;
  line-height:1;
  pointer-events:none;
}
.locations::before{left:22px;top:18px;transform:rotate(-12deg)}
.locations::after{right:30px;bottom:30px;transform:rotate(11deg)}
.locations-heading{
  max-width:760px;
  margin:0 auto 24px;
  text-align:center;
}
.locations-kicker{
  display:block;
  margin-bottom:8px;
  font-size:15px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent-deep);
}
.locations-heading h2{display:inline-flex;margin:0 0 8px}
.locations-heading p{margin:0;font-size:18px;line-height:1.45}
.locations-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.location-card{
  min-width:0;
  border:1.8px solid var(--line);
  border-radius:24px;
  overflow:hidden;
  background:var(--paper);
  box-shadow:7px 7px 0 color-mix(in srgb,var(--accent) 18%,transparent);
  transition:transform .25s ease,box-shadow .25s ease;
}
.location-card:hover{
  transform:translateY(-3px) rotate(-.35deg);
  box-shadow:10px 11px 0 color-mix(in srgb,var(--accent) 24%,transparent);
}
.location-card--with-photo{
  display:grid;
  grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr);
}
.location-photo{
  position:relative;
  min-height:320px;
  background:var(--blue-soft);
  border-right:1.8px solid var(--line);
  overflow:hidden;
}
.location-photo img{
  width:100%;
  height:100%;
  min-height:320px;
  display:block;
  object-fit:cover;
  object-position:center;
}
.location-sticker{
  position:absolute;
  left:16px;
  bottom:16px;
  padding:7px 14px 6px;
  border:1.7px solid var(--line);
  border-radius:999px;
  background:var(--accent-warm);
  font-size:18px;
  font-weight:800;
  transform:rotate(-2deg);
}
.location-copy{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-width:0;
  padding:28px;
}
.location-card--no-photo .location-copy{
  min-height:320px;
  padding:34px;
  background:
    radial-gradient(circle at 82% 18%,color-mix(in srgb,var(--accent-alt) 34%,transparent) 0 70px,transparent 71px),
    linear-gradient(135deg,var(--accent-soft),var(--panel-cream));
}
.location-number{
  position:absolute;
  right:20px;
  top:15px;
  font-family:Georgia,serif;
  font-size:54px;
  font-weight:900;
  line-height:1;
  color:color-mix(in srgb,var(--accent-deep) 18%,transparent);
}
.location-mini-label{
  display:inline-flex;
  margin-bottom:12px;
  padding:6px 12px 5px;
  border:1.6px solid var(--line);
  border-radius:999px;
  background:var(--blue-soft);
  font-size:16px;
  font-weight:800;
  transform:rotate(1.5deg);
}
.location-copy h3{
  max-width:88%;
  margin:0 0 10px;
  font-size:clamp(29px,3vw,45px);
  line-height:.98;
}
.location-address{
  margin:0 0 14px;
  font-size:19px;
  font-weight:800;
  line-height:1.35;
}
.location-note{
  margin:0 0 20px;
  font-size:18px;
  line-height:1.45;
}
.location-map{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:auto;
  padding:10px 16px 9px;
  border:1.7px solid var(--line);
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:17px;
  font-weight:800;
  text-decoration:none;
  box-shadow:4px 4px 0 color-mix(in srgb,var(--line) 20%,transparent);
}
.location-map:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 color-mix(in srgb,var(--line) 20%,transparent)}
.location-hearts{
  position:absolute;
  right:24px;
  bottom:20px;
  color:var(--accent-deep);
  font-size:23px;
  letter-spacing:5px;
  transform:rotate(-6deg);
}
.location-card[data-show-photo="0"] .location-photo{display:none!important}
.location-card[data-show-photo="0"]{display:block}
.location-card[data-show-photo="0"] .location-copy{width:100%}
@media(max-width:980px){
  .location-card--with-photo{grid-template-columns:1fr}
  .location-photo{min-height:250px;border-right:0;border-bottom:1.8px solid var(--line)}
  .location-photo img{min-height:250px;max-height:320px}
}
@media(max-width:760px){
  .info-row--date,.locations-grid{grid-template-columns:1fr}
  .locations{padding:22px 14px}
  .locations-heading p{font-size:16px}
  .location-card--with-photo{grid-template-columns:145px minmax(0,1fr)}
  .location-photo{min-height:280px;border-right:1.8px solid var(--line);border-bottom:0}
  .location-photo img{min-height:280px;max-height:none}
  .location-copy{padding:22px}
  .location-copy h3{font-size:31px}
  .location-card--no-photo .location-copy{min-height:280px;padding:26px}
}
@media(max-width:520px){
  .location-card--with-photo{grid-template-columns:1fr}
  .location-photo{min-height:220px;border-right:0;border-bottom:1.8px solid var(--line)}
  .location-photo img{min-height:220px;max-height:260px}
  .location-copy,.location-card--no-photo .location-copy{padding:22px;min-height:auto}
  .location-copy h3{max-width:82%;font-size:30px}
  .location-address{font-size:17px}
  .location-note{font-size:16px}
  .location-number{font-size:44px}
  .mh3 {
    bottom: 80px;
    right: 10px;}
}


/* Production integration */
.header-love-note{display:flex;justify-content:center;align-items:center;gap:10px;font-size:18px;font-weight:700}.note-heart{color:var(--pink)}
.theme-picker{display:flex;gap:7px}.theme-button{width:30px;height:30px;border:1.6px solid var(--line);border-radius:50%;background:#fff8e6;padding:4px;cursor:pointer}.theme-button i{display:block;width:100%;height:100%;border-radius:50%}.theme-button.is-active{transform:scale(1.12);box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--line)}
.locations{margin-top:10px;padding:26px}.locations-heading{text-align:center;margin-bottom:24px}.locations-heading .label{margin:8px auto}.locations-kicker{font-size:20px}.locations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.location-card{border:1.8px solid var(--line);border-radius:22px;overflow:hidden;background:#fff8df;display:grid;min-height:330px;box-shadow:8px 8px 0 color-mix(in srgb,var(--pink) 45%,transparent)}.location-card--with-photo{grid-template-rows:190px 1fr}.location-photo{position:relative;overflow:hidden;border-bottom:1.8px solid var(--line)}.location-photo img{width:100%;height:100%;object-fit:cover}.location-sticker,.location-mini-label{display:inline-block;background:var(--pink);border:1.6px solid var(--line);border-radius:8px;padding:5px 15px;font-size:21px;font-weight:700}.location-sticker{position:absolute;left:18px;bottom:14px}.location-copy{position:relative;padding:24px}.location-number{position:absolute;right:20px;top:14px;font:400 48px/1 "Neucha";opacity:.18}.location-copy h3{font:400 34px/1.05 "Neucha";margin:11px 55px 8px 0}.location-address{font-size:21px;font-weight:700;margin:0 0 10px}.location-note{font-size:19px;line-height:1.25;margin:0 0 15px}.location-map{display:inline-block;color:#bb3e5b;font-size:20px;font-weight:700}.location-card--no-photo .location-copy{display:flex;flex-direction:column;justify-content:center;min-height:330px}.location-hearts{position:absolute;right:24px;bottom:18px;color:var(--pink);font-size:24px}
.gallery{margin-top:10px;padding:24px}.gallery-heading{text-align:center}.gallery-heading .label{margin:8px auto}.gallery-kicker{font-size:20px}.gallery-heading p{font-size:20px}.gallery-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;align-items:center}.gallery-thumb{display:block;background:#fff8df;border:1.8px solid var(--line);padding:8px 8px 30px;box-shadow:6px 6px 0 var(--pink);transform:rotate(-2deg)}.gallery-thumb:nth-child(even){transform:rotate(2deg);box-shadow:6px 6px 0 var(--blue)}.gallery-thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1.5px solid var(--line)}
.production-rsvp{margin-top:18px}.production-rsvp :is(input,select,textarea,button){font-family:"Nunito",sans-serif}.common-block{margin-top:10px;padding:24px}.footer{grid-template-columns:1fr 70px;padding:0 24px}.footer-heart{justify-self:center}
@media(max-width:860px){.header-love-note{display:none}.locations-grid{grid-template-columns:1fr}.gallery-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.locations{padding:16px}.gallery{padding:16px}.gallery-strip{gap:10px}.location-card--with-photo{grid-template-rows:170px 1fr}.footer{grid-template-columns:1fr 45px}}

/* v4: shared production blocks */
.gallery-empty{
  grid-column:1/-1;
  padding:34px 20px;
  text-align:center;
  color:var(--muted, #785f67);
  border:2px dashed color-mix(in srgb,var(--line,#2d2730) 35%,transparent);
  border-radius:22px;
  background:color-mix(in srgb,var(--paper,#fff8ef) 86%,transparent);
}
.sharedBlock{position:relative;z-index:2;width:100%;margin-inline:auto}
.sharedBlock input,.sharedBlock textarea,.sharedBlock select{
  color:var(--ink,#2d2730)!important;
  background:color-mix(in srgb,var(--paper,#fff8ef) 90%,transparent)!important;
  border-color:var(--line,#2d2730)!important;
}
.sharedBlock button{background:var(--pink,var(--accent,#ef7f9c))!important;color:#fff!important}


/* v6: isolated gallery flow. Prevents overlap with RSVP. */
.le-gallery{
  position:relative;
  display:block;
  width:100%;
  margin-top:10px;
  padding:24px;
  overflow:hidden;
  isolation:isolate;
  contain:layout paint;
  clear:both;
}
.le-gallery__heading{
  position:relative;
  z-index:2;
  max-width:620px;
  margin:0 auto 20px;
  text-align:center;
}
.le-gallery__heading .label{margin:8px auto 10px}
.le-gallery__heading p{margin:0;font-size:20px;line-height:1.3}
.le-gallery__kicker{display:block;font-size:20px;font-weight:700}
.le-gallery__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  width:100%;
  max-width:900px;
  margin:0 auto;
}
.le-gallery__item{
  position:relative;
  min-width:0;
  margin:0;
  padding:0;
  float:none!important;
  transform:none;
}
.le-gallery__link{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/3;
  padding:7px;
  overflow:hidden;
  border:1.8px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  box-shadow:6px 7px 0 color-mix(in srgb,var(--pink) 48%,transparent);
}
.le-gallery__item:nth-child(even) .le-gallery__link{box-shadow:6px 7px 0 color-mix(in srgb,var(--blue) 58%,transparent)}
.le-gallery__item--1{transform:rotate(-1deg)}
.le-gallery__item--2{transform:rotate(.7deg)}
.le-gallery__item--3{transform:rotate(-.5deg)}
.le-gallery__item--4{transform:rotate(1deg)}
.le-gallery__link img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:cover;
  object-position:center;
  border:1.3px solid var(--line);
  border-radius:7px;
}
.le-gallery__zoom{
  position:absolute;
  right:14px;
  bottom:14px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1.5px solid var(--line);
  border-radius:50%;
  background:var(--paper);
  color:var(--ink);
  font:700 20px/1 sans-serif;
}
.le-section-clear{display:block;clear:both;width:100%;height:0;overflow:hidden}
#rsvp.rsvp{
  position:relative;
  z-index:3;
  clear:both;
  width:100%;
  overflow:visible;
  isolation:isolate;
}
@media(max-width:760px){
  .le-gallery{padding:20px 16px}
  .le-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media(max-width:460px){
  .le-gallery__grid{grid-template-columns:1fr}
  .le-gallery__item{transform:none!important}
}


/* =========================================================
   V9: studio labels + RSVP layout and active states
========================================================= */
.section-studio-label{
  display:inline-flex;
  width:fit-content;
  align-items:center;
  margin:0 0 8px;
  color:var(--muted);
  font:700 15px/1.2 "Nunito",sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.section-studio-subtitle{
  margin:0 0 12px!important;
  color:var(--muted);
  font:600 16px/1.35 "Nunito",sans-serif!important;
}
.about-copy .section-studio-label,
.dress-copy .section-studio-label,
.program-copy .section-studio-label{
  align-self:flex-start;
}

.rsvp-copy{
  min-width:0;
}
.rsvp-heading{
  display:flex!important;
  flex-direction:column;
  align-items:flex-start;
  gap:0!important;
  width:100%;
  margin:0 0 16px;
}
.rsvp-heading .section-studio-label{
  margin-bottom:8px;
}
.rsvp-heading .label{
  width:100%;
  margin:0 0 12px;
}
.rsvp-heading p{
  width:100%;
  max-width:680px;
  margin:0!important;
  font-size:19px;
  line-height:1.42;
}

/* Neutral state. Do not paint every RSVP button with the accent. */
.production-rsvp .rsvpSection .chip{
  background:rgba(255,255,255,.72)!important;
  border:1.8px solid color-mix(in srgb,var(--ink) 20%,transparent)!important;
  color:var(--ink)!important;
  border-radius:999px!important;
  box-shadow:none!important;
}
.production-rsvp .rsvpSection .chip:hover{
  background:color-mix(in srgb,var(--accent) 10%,#fff)!important;
  border-color:var(--accent)!important;
}
.production-rsvp .rsvpSection .chip[data-active="true"],
.production-rsvp .rsvpSection .chip.is-active,
.production-rsvp .rsvpSection .chip.active{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:#fff!important;
  box-shadow:0 12px 26px color-mix(in srgb,var(--accent) 25%,transparent)!important;
}
.production-rsvp .rsvpSection .btn.btn-full,
.production-rsvp .rsvpSection #rsvpForm button[type="submit"]{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:#fff!important;
}
.production-rsvp .rsvpSection .btn.btn-full:hover,
.production-rsvp .rsvpSection #rsvpForm button[type="submit"]:hover{
  filter:brightness(.95)!important;
}

@media(max-width:700px){
  .section-studio-label{font-size:12px;letter-spacing:.08em}
  .rsvp-heading p{font-size:17px;line-height:1.45}
}

/* =========================================================
   V10: compact RSVP composition
========================================================= */
#rsvp.rsvp{
  grid-template-columns:minmax(280px,34%) minmax(0,66%);
  align-items:stretch;
}
#rsvp .rsvp-image-wrap{
  min-height:0;
  align-self:stretch;
}
#rsvp .rsvp-copy{
  padding:18px 22px 22px;
  align-self:start;
}
#rsvp .rsvp-heading{
  margin-bottom:10px;
}
#rsvp .rsvp-heading .section-studio-label{
  margin-bottom:5px;
  font-size:12px;
}
#rsvp .rsvp-heading .label{
  margin-bottom:7px;
  padding:6px 14px;
  font-size:clamp(23px,2.4vw,34px);
  line-height:1.05;
}
#rsvp .rsvp-heading p{
  max-width:none;
  font-size:15px;
  line-height:1.42;
}
#rsvp .production-rsvp{
  margin-top:10px;
}
#rsvp .production-rsvp .rsvpFormCard{
  width:100%;
  padding:20px!important;
  border-radius:24px!important;
}
#rsvp .production-rsvp #rsvpForm{
  gap:18px!important;
}
#rsvp .production-rsvp #rsvpAttendanceFields{
  gap:18px!important;
}
#rsvp .production-rsvp #companionsWrap{
  gap:14px!important;
}
#rsvp .production-rsvp .row2{
  gap:12px!important;
}
#rsvp .production-rsvp .formRow{
  gap:7px!important;
}
#rsvp .production-rsvp .label{
  font-size:13px!important;
  line-height:1.25!important;
}
#rsvp .production-rsvp .field{
  min-height:46px!important;
  padding:10px 14px!important;
  border-radius:14px!important;
  font-size:14px!important;
}
#rsvp .production-rsvp textarea.field{
  min-height:90px!important;
}
#rsvp .production-rsvp .chips{
  gap:9px!important;
}
#rsvp .production-rsvp .chip{
  flex:1 1 118px!important;
  min-height:42px!important;
  padding:8px 13px!important;
  font-size:13px!important;
}
#rsvp .production-rsvp .rsvpTotal{
  min-height:32px!important;
  padding:0 11px!important;
  font-size:12px!important;
}
#rsvp .production-rsvp .consent{
  grid-template-columns:18px minmax(0,1fr)!important;
  gap:10px!important;
  padding:12px!important;
  border-radius:14px!important;
  font-size:11px!important;
  line-height:1.4!important;
}
#rsvp .production-rsvp .consent input{
  width:17px!important;
  height:17px!important;
}
#rsvp .production-rsvp .consent small{
  font-size:10px!important;
  line-height:1.35!important;
}
#rsvp .production-rsvp .btn.btn-full,
#rsvp .production-rsvp #rsvpForm button[type="submit"]{
  min-height:48px!important;
  padding:0 20px!important;
  font-size:14px!important;
}
#rsvp .production-rsvp .previewLockNote{
  margin-bottom:12px!important;
  padding:13px!important;
  gap:6px!important;
  border-radius:16px!important;
}

/* At tablet / narrow desktop widths the old split layout made the form
   extremely tall. Turn the illustration into a compact banner instead. */
@media(max-width:1180px){
  #rsvp.rsvp{
    grid-template-columns:1fr!important;
  }
  #rsvp .rsvp-image-wrap{
    height:220px!important;
    min-height:220px!important;
    border-radius:22px 22px 0 0!important;
    overflow:hidden;
  }
  #rsvp .rsvp-image-wrap img{
    width:100%!important;
    height:100%!important;
    margin:0!important;
    clip-path:none!important;
    object-fit:cover!important;
    object-position:center 62%!important;
  }
  #rsvp .rsvp-copy{
    padding:18px 20px 22px!important;
  }
  #rsvp .production-rsvp .chips[data-group="status"]{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  #rsvp .production-rsvp .chips[data-group="attendance"],
  #rsvp .production-rsvp .chips[data-group="with_children"]{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #rsvp .production-rsvp .chips[data-group="drink"],
  #rsvp .production-rsvp .chips[data-group="food"]{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  #rsvp .production-rsvp .chip{
    width:100%!important;
    min-width:0!important;
  }
}

@media(max-width:700px){
  #rsvp .rsvp-image-wrap{
    height:170px!important;
    min-height:170px!important;
  }
  #rsvp .rsvp-copy{
    padding:15px 12px 16px!important;
  }
  #rsvp .rsvp-heading .label{
    font-size:25px!important;
  }
  #rsvp .rsvp-heading p{
    font-size:14px!important;
  }
  #rsvp .production-rsvp .rsvpFormCard{
    padding:15px 12px!important;
    border-radius:18px!important;
  }
  #rsvp .production-rsvp .chips[data-group="status"],
  #rsvp .production-rsvp .chips[data-group="drink"],
  #rsvp .production-rsvp .chips[data-group="food"]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #rsvp .production-rsvp .chips[data-group="status"] .chip:last-child,
  #rsvp .production-rsvp .chips[data-group="food"] .chip:last-child{
    grid-column:1/-1;
  }
}


/* =========================================================
   V11: full-width compact RSVP + illustrated date card
========================================================= */
.info-row--date{
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)!important;
  align-items:stretch;
}
.info-box--date{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,34%);
  align-items:stretch;
  gap:18px;
  min-height:250px!important;
  padding:18px 18px 16px 20px!important;
}
.date-card-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.info-box--date .date-card-copy>p{
  margin:14px 0 0!important;
  font-size:20px;
  line-height:1.35;
}
.info-box--date .date-card-copy>p b{font-size:22px}
.info-box--date .date-card-copy>p strong{font-size:27px}
.date-card-illustration{
  align-self:stretch;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-width:0;
  overflow:hidden;
  border-radius:18px;
  background:color-mix(in srgb,var(--accent-warm) 40%,transparent);
}
.date-card-illustration img{
  width:100%;
  height:auto;
  max-height:220px;
  object-fit:contain;
  object-position:center bottom;
  mix-blend-mode:multiply;
}
.date-countdown{
  width:100%;
  max-width:520px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:auto;
  padding-top:16px;
}
.date-countdown>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:62px;
  padding:8px 5px;
  border:1.5px solid color-mix(in srgb,var(--ink) 18%,transparent);
  border-radius:14px;
  background:rgba(255,255,255,.56);
}
.date-countdown b{
  color:var(--accent-deep);
  font:700 clamp(22px,2.4vw,31px)/1 "Caveat",cursive;
}
.date-countdown span{
  margin-top:2px;
  color:var(--muted);
  font:700 10px/1.1 "Nunito",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
}
#rsvp.rsvp.rsvp--full{
  display:block!important;
  grid-template-columns:none!important;
  min-height:0!important;
}
#rsvp.rsvp.rsvp--full .rsvp-image-wrap{display:none!important}
#rsvp.rsvp.rsvp--full .rsvp-copy{
  width:100%;
  padding:20px 24px 24px!important;
}
#rsvp.rsvp.rsvp--full .rsvp-heading{
  max-width:980px;
  margin:0 auto 12px;
  align-items:center;
  text-align:center;
}
#rsvp.rsvp.rsvp--full .rsvp-heading .section-studio-label{align-self:center}
#rsvp.rsvp.rsvp--full .rsvp-heading p{
  max-width:900px;
  text-align:center;
}
#rsvp.rsvp.rsvp--full .production-rsvp{
  width:100%;
  max-width:1180px;
  margin:10px auto 0;
}
#rsvp.rsvp.rsvp--full .production-rsvp .rsvpFormCard{
  max-width:none!important;
  padding:18px 20px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp #rsvpForm,
#rsvp.rsvp.rsvp--full .production-rsvp #rsvpAttendanceFields{
  gap:14px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp #companionsWrap{gap:12px!important}
#rsvp.rsvp.rsvp--full .production-rsvp .row2{gap:12px!important}
#rsvp.rsvp.rsvp--full .production-rsvp .formRow{gap:6px!important}
#rsvp.rsvp.rsvp--full .production-rsvp .field{
  min-height:44px!important;
  padding:9px 13px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp textarea.field{min-height:78px!important}
#rsvp.rsvp.rsvp--full .production-rsvp .chip{
  min-height:40px!important;
  padding:7px 12px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .consent{
  padding:10px 12px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .btn.btn-full,
#rsvp.rsvp.rsvp--full .production-rsvp #rsvpForm button[type="submit"]{
  min-height:46px!important;
}
@media(min-width:900px){
  #rsvp.rsvp.rsvp--full .production-rsvp .chips[data-group="drink"]{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
  }
  #rsvp.rsvp.rsvp--full .production-rsvp .chips[data-group="food"]{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:900px){
  .info-row--date{grid-template-columns:1fr!important}
  .info-box--date{grid-template-columns:minmax(0,1fr) minmax(180px,32%)}
  #rsvp.rsvp.rsvp--full .rsvp-copy{padding:18px 16px 20px!important}
}
@media(max-width:620px){
  .info-box--date{
    grid-template-columns:1fr;
    padding:16px!important;
  }
  .date-card-illustration{
    min-height:170px;
    order:2;
  }
  .date-card-illustration img{max-height:170px}
  .date-countdown{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rsvp.rsvp.rsvp--full .rsvp-heading{align-items:flex-start;text-align:left}
  #rsvp.rsvp.rsvp--full .rsvp-heading .section-studio-label{align-self:flex-start}
  #rsvp.rsvp.rsvp--full .rsvp-heading p{text-align:left}
  #rsvp.rsvp.rsvp--full .rsvp-copy{padding:15px 10px 16px!important}
  #rsvp.rsvp.rsvp--full .production-rsvp .rsvpFormCard{padding:14px 10px!important}
}


/* =========================================================
   V12: date + countdown left, full poster right
========================================================= */
.info-row--date{
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr)!important;
  align-items:stretch;
}
.info-box--date{
  display:block!important;
  min-height:250px!important;
  padding:18px 20px 16px!important;
}
.info-box--date .date-card-copy{
  width:100%;
  height:100%;
}
.info-box--date .date-card-copy>p{
  margin-top:22px!important;
}
.info-box--date .date-countdown{
  margin-top:auto;
  max-width:100%;
}
.info-box--poster{
  min-height:250px!important;
  padding:0!important;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:28px;
  background:var(--paper);
}
.info-box--poster img{
  display:block;
  width:100%;
  height:100%;
  min-height:250px;
  object-fit:cover;
  object-position:center;
}
@media(max-width:900px){
  .info-row--date{
    grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr)!important;
  }
  .info-box--poster,
  .info-box--poster img{
    min-height:230px;
  }
}
@media(max-width:700px){
  .info-row--date{grid-template-columns:1fr!important}
  .info-box--date{min-height:auto!important}
  .info-box--poster,
  .info-box--poster img{
    min-height:0;
    height:auto;
  }
  .info-box--poster img{
    aspect-ratio:1342/784;
    object-fit:cover;
  }
}


/* =========================================================
   V13: equal 50/50 cards + expressive wedding date
========================================================= */
.info-row--date{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
}
.info-box--date,
.info-box--poster{
  min-height:310px!important;
}
.info-box--date{
  padding:22px 24px 18px!important;
}
.info-box--date .date-card-copy{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
}
.date-main{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "day rest"
    "day time";
  align-items:center;
  column-gap:16px;
  width:fit-content;
  margin-top:26px;
}
.date-main__day{
  grid-area:day;
  color:var(--ink);
  font:700 clamp(72px,8vw,112px)/.78 "Caveat",cursive;
  letter-spacing:-.06em;
}
.date-main__rest{
  grid-area:rest;
  align-self:end;
  color:var(--ink);
  font:700 clamp(24px,2.7vw,38px)/1 "Caveat",cursive;
  text-transform:lowercase;
}
.date-main__rest--full{
  grid-column:1/-1;
  font-size:clamp(30px,3.8vw,50px);
  text-transform:none;
}
.date-main__time{
  grid-area:time;
  align-self:start;
  margin-top:7px;
  color:var(--accent);
  font:700 clamp(30px,3vw,44px)/1 "Caveat",cursive;
}
.info-box--date .date-countdown{
  margin-top:auto!important;
  padding-top:20px!important;
  gap:10px!important;
}
.info-box--date .date-countdown>div{
  min-height:76px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.64)!important;
}
.info-box--date .date-countdown b{
  font-size:clamp(29px,3vw,42px)!important;
}
.info-box--date .date-countdown span{
  font-size:11px!important;
}
.info-box--poster{
  aspect-ratio:auto!important;
}
.info-box--poster img{
  min-height:310px!important;
}
@media(max-width:900px){
  .info-row--date{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .info-box--date,
  .info-box--poster,
  .info-box--poster img{
    min-height:280px!important;
  }
  .info-box--date{
    padding:18px!important;
  }
  .date-main{
    margin-top:20px;
    column-gap:12px;
  }
  .date-main__day{font-size:clamp(64px,9vw,92px)}
  .date-main__rest{font-size:clamp(22px,3vw,32px)}
  .date-main__time{font-size:clamp(28px,3.5vw,38px)}
  .info-box--date .date-countdown>div{min-height:68px!important}
}
@media(max-width:700px){
  .info-row--date{grid-template-columns:1fr!important}
  .info-box--date,
  .info-box--poster,
  .info-box--poster img{
    min-height:0!important;
  }
  .info-box--date{padding:18px 16px!important}
  .date-main{
    grid-template-columns:auto minmax(0,1fr);
    margin-top:20px;
  }
  .date-main__day{font-size:78px}
  .date-main__rest{font-size:28px}
  .date-main__time{font-size:34px}
  .info-box--poster img{
    width:100%;
    height:auto!important;
    aspect-ratio:1342/784;
    object-fit:cover!important;
  }
}

/* =========================================================
   V14: readable RSVP typography + unified handwritten labels
========================================================= */
/* All studio section labels use the same handwritten style as Gallery. */
.section-studio-label,
.le-gallery__kicker,
.gallery-kicker,
.locations-kicker,
.locations-heading .locations-kicker,
.rsvp-heading .section-studio-label,
.about-copy .section-studio-label,
.dress-copy .section-studio-label,
.program-copy .section-studio-label{
  color:var(--ink)!important;
  font-family:"Caveat",cursive!important;
  font-size:24px!important;
  font-weight:700!important;
  line-height:1.1!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

/* RSVP: readable text without inflating the block too much. */
#rsvp.rsvp.rsvp--full .rsvp-heading p{
  font-size:21px!important;
  line-height:1.48!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .rsvpSection,
#rsvp.rsvp.rsvp--full .production-rsvp .rsvpFormCard,
#rsvp.rsvp.rsvp--full .production-rsvp #rsvpForm{
  font-size:17px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .label{
  font-family:"Caveat",cursive!important;
  font-size:20px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .field{
  font-family:"Caveat",cursive!important;
  font-size:19px!important;
  line-height:1.3!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .field::placeholder{
  font-size:18px!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .chip{
  font-family:"Caveat",cursive!important;
  font-size:19px!important;
  font-weight:700!important;
  line-height:1.15!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .rsvpTotal{
  font-family:"Caveat",cursive!important;
  font-size:18px!important;
  font-weight:700!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .consent{
  font-family:"Caveat",cursive!important;
  font-size:16px!important;
  line-height:1.45!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .consent small{
  font-size:14px!important;
  line-height:1.4!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .btn.btn-full,
#rsvp.rsvp.rsvp--full .production-rsvp #rsvpForm button[type="submit"]{
  font-family:"Caveat",cursive!important;
  font-size:21px!important;
  font-weight:700!important;
}
#rsvp.rsvp.rsvp--full .production-rsvp .previewLockBadge,
#rsvp.rsvp.rsvp--full .production-rsvp .previewLockTitle,
#rsvp.rsvp.rsvp--full .production-rsvp .previewLockText{
  font-size:16px!important;
}

@media(max-width:700px){
  .section-studio-label,
  .le-gallery__kicker,
  .gallery-kicker,
  .locations-kicker,
  .locations-heading .locations-kicker{
    font-size:21px!important;
  }
  #rsvp.rsvp.rsvp--full .rsvp-heading p{
    font-size:19px!important;
  }
  #rsvp.rsvp.rsvp--full .production-rsvp .label{
    font-size:19px!important;
  }
  #rsvp.rsvp.rsvp--full .production-rsvp .field,
  #rsvp.rsvp.rsvp--full .production-rsvp .chip{
    font-size:18px!important;
  }
  #rsvp.rsvp.rsvp--full .production-rsvp .consent{
    font-size:15px!important;
  }
}

/* =========================================================
   V15: final mobile adaptation
========================================================= */
@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  .page{width:calc(100% - 12px)!important;margin:6px auto!important;padding:6px!important}
  .panel,.info-box{border-radius:20px}

  /* Every long handwritten heading must stay inside its card. */
  .label,
  .about-copy .label,
  .dress-copy .label,
  .program-copy .label,
  .locations-heading .label,
  .rsvp-heading .label{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    text-wrap:balance;
    justify-content:center;
    text-align:center;
    padding:8px 12px!important;
    font-size:clamp(24px,7.4vw,31px)!important;
    line-height:1.08!important;
  }

  /* Story: natural poster above text, no clipped title. */
  .about{
    display:grid!important;
    grid-template-columns:1fr!important;
    min-height:0!important;
  }
  .about-image-wrap{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/3;
  }
  .about-image-wrap img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  .about-copy{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:20px 16px 22px!important;
    box-sizing:border-box!important;
  }
  .about-copy .section-studio-label{
    display:block;
    width:100%;
    margin:0 0 8px;
    text-align:left;
  }
  .about-copy p{
    margin:12px 0 0!important;
    font-size:clamp(19px,5.5vw,23px)!important;
    line-height:1.38!important;
    overflow-wrap:anywhere;
  }

  /* Locations: one comfortable card per row. */
  .locations{
    padding:18px 10px 20px!important;
    overflow:hidden;
  }
  .locations-heading{
    width:100%;
    padding:0 5px;
    box-sizing:border-box;
  }
  .locations-heading .locations-kicker{
    display:block;
    width:100%;
    margin-bottom:8px;
    text-align:center;
  }
  .locations-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:18px!important;
  }
  .location-card,
  .location-card--with-photo,
  .location-card--no-photo{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    border-radius:20px!important;
  }
  .location-photo{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:16/10!important;
    border-right:0!important;
    border-bottom:1.8px solid var(--line)!important;
  }
  .location-photo img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  .location-sticker{
    left:14px!important;
    bottom:12px!important;
    max-width:calc(100% - 28px);
    font-size:20px!important;
  }
  .location-copy,
  .location-card--no-photo .location-copy{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:20px 16px 24px!important;
    box-sizing:border-box!important;
  }
  .location-copy h3{
    max-width:100%!important;
    margin:8px 0 12px!important;
    font-size:clamp(31px,9vw,42px)!important;
    line-height:1.02!important;
    overflow-wrap:anywhere!important;
    text-wrap:balance;
  }
  .location-address{
    margin:0 0 10px!important;
    font-size:clamp(19px,5.6vw,23px)!important;
    line-height:1.24!important;
    overflow-wrap:anywhere;
  }
  .location-note{
    margin:0 0 14px!important;
    font-size:clamp(18px,5.2vw,21px)!important;
    line-height:1.36!important;
    overflow-wrap:anywhere;
  }
  .location-number{display:none!important}
  .location-hearts{right:15px!important;bottom:12px!important}

  /* Date/poster row and gallery stay inside viewport. */
  .info-row--date,
  .middle-row,
  .le-gallery__grid{
    min-width:0!important;
  }
  .info-box--date,
  .info-box--poster{
    width:100%!important;
    min-width:0!important;
  }
}

@media(max-width:390px){
  .about-copy,
  .location-copy,
  .location-card--no-photo .location-copy{padding-left:13px!important;padding-right:13px!important}
  .label,
  .about-copy .label,
  .locations-heading .label{font-size:24px!important}
  .location-copy h3{font-size:32px!important}
}

/* =========================================================
   V16: location cards grow with content
========================================================= */
.locations-grid{
  align-items:start;
  grid-auto-rows:auto;
}
.location-card,
.location-card--with-photo,
.location-card--no-photo{
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
}
.location-card--with-photo{
  grid-template-columns:minmax(0,46%) minmax(0,54%)!important;
  grid-template-rows:none!important;
  align-items:stretch!important;
}
.location-photo{
  height:auto!important;
  min-height:360px!important;
  align-self:stretch!important;
  border-right:1.8px solid var(--line)!important;
  border-bottom:0!important;
}
.location-photo img{
  width:100%!important;
  height:100%!important;
  min-height:360px!important;
  max-height:none!important;
  object-fit:cover!important;
}
.location-copy,
.location-card--no-photo .location-copy{
  justify-content:flex-start!important;
  min-height:360px!important;
  height:auto!important;
  padding:34px 28px 38px!important;
  overflow:visible!important;
}
.location-copy .location-mini-label{
  flex:0 0 auto;
  margin:0 0 14px!important;
}
.location-copy h3{
  flex:0 0 auto;
  max-width:calc(100% - 54px)!important;
  margin:0 54px 14px 0!important;
  overflow:visible!important;
  text-overflow:clip!important;
  display:block!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:unset!important;
}
.location-address,
.location-note{
  flex:0 0 auto;
}
.location-map{
  margin-top:8px!important;
}

@media(max-width:980px){
  .location-card--with-photo{
    grid-template-columns:minmax(0,42%) minmax(0,58%)!important;
  }
}

@media(max-width:700px){
  .location-card--with-photo{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
  }
  .location-photo{
    min-height:0!important;
    aspect-ratio:16/10!important;
    border-right:0!important;
    border-bottom:1.8px solid var(--line)!important;
  }
  .location-photo img{
    min-height:0!important;
  }
  .location-copy,
  .location-card--no-photo .location-copy{
    min-height:0!important;
    padding:22px 16px 28px!important;
  }
  .location-copy h3{
    max-width:100%!important;
    margin:0 0 12px!important;
  }
}

/* =========================================================
   V17: equal-height location cards
========================================================= */
@media(min-width:701px){
  .locations-grid{
    align-items:stretch!important;
    grid-auto-rows:1fr!important;
  }

  .location-card,
  .location-card--with-photo,
  .location-card--no-photo{
    height:100%!important;
    min-height:100%!important;
    align-self:stretch!important;
  }

  .location-card--with-photo{
    display:grid!important;
    grid-template-columns:minmax(0,46%) minmax(0,54%)!important;
    grid-template-rows:1fr!important;
  }

  .location-photo,
  .location-copy,
  .location-card--no-photo .location-copy{
    height:100%!important;
    min-height:100%!important;
  }

  .location-photo img{
    height:100%!important;
    min-height:100%!important;
  }
}

@media(max-width:700px){
  .locations-grid{
    grid-auto-rows:auto!important;
  }

  .location-card,
  .location-card--with-photo,
  .location-card--no-photo,
  .location-photo,
  .location-copy,
  .location-card--no-photo .location-copy{
    height:auto!important;
    min-height:0!important;
  }
}

/* Ручной дресс-код: показываем всю выбранную палитру, до 12 оттенков. */
.dress .palette{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  max-width:100%;
}
.dress .palette i{
  flex:0 0 auto;
}
@media (max-width:560px){
  .dress .palette{gap:8px;}
  .dress .palette i{width:28px;height:28px;}
}
