*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,sans-serif;overflow-x:hidden}.quiet-page{width:min(1420px,calc(100% - 42px));margin:24px auto;background:var(--paper);box-shadow:0 30px 100px rgba(30,35,37,.10);position:relative;overflow:hidden}.quiet-page:before,.quiet-page:after{content:"";position:absolute;width:420px;height:190px;border:1px solid var(--line);border-radius:50%;pointer-events:none}.quiet-page:before{right:-180px;top:190px;transform:rotate(-18deg)}.quiet-page:after{left:-190px;top:1450px;transform:rotate(24deg)}.hero,.section{position:relative;z-index:1}.hero{min-height:820px;padding:80px clamp(30px,7vw,120px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,6vw,100px);align-items:center}.eyebrow{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);font-weight:600}.hero-intro{font:italic 22px 'Cormorant Garamond',serif;margin:15px 0;color:var(--accent)}.hero-names{font:500 clamp(76px,9vw,150px)/.7 'Cormorant Garamond',serif;letter-spacing:-.065em;margin:26px 0}.hero-names span{display:block}.hero-names span+span{padding-left:.35em}.hero-names i{font-size:.62em;color:var(--accent);font-weight:400}.hero-script,.script-note,.footer-script{font:400 clamp(42px,5vw,72px)/1 'Marck Script',cursive;color:var(--accent)}.hero-copy>p{max-width:520px;line-height:1.9;color:var(--muted)}.hero-meta{display:flex;gap:34px;align-items:flex-end;margin-top:36px}.hero-meta strong{font:500 clamp(31px,4vw,58px)/1 'Cormorant Garamond',serif}.hero-meta span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.hero-art{position:relative}.hero-shape{display:block;width:100%;height:auto;overflow:visible}.hero-shape image{object-position:var(--focus,50% 50%)}.hero-outline{fill:none;stroke:var(--accent);stroke-width:2}.hero-placeholder rect{fill:color-mix(in srgb,var(--accent2) 28%,var(--paper))}.hero-placeholder text{font:600 28px Manrope,sans-serif;letter-spacing:.18em;fill:var(--ink)}.hero-placeholder .small{font-size:15px;letter-spacing:.08em;fill:var(--muted)}.hero-badge{position:absolute;right:3%;bottom:1%;width:130px;height:130px;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--paper);border:1px solid var(--line);box-shadow:0 16px 40px rgba(0,0,0,.1)}.hero-badge span,.hero-badge small{text-transform:uppercase;letter-spacing:.13em;font-size:9px;color:var(--muted)}.hero-badge strong{font:500 48px/1 'Cormorant Garamond',serif}.section{padding:clamp(64px,8vw,120px) clamp(28px,7vw,120px);border-top:1px solid var(--line)}.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:end;margin-bottom:50px}.section h2,.section-head h2{font:500 clamp(46px,6vw,88px)/.92 'Cormorant Garamond',serif;letter-spacing:-.04em;margin:12px 0}.section-head p,.story-copy p,.dress-copy p,.answer-copy p{max-width:600px;color:var(--muted);line-height:1.9}.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,110px);align-items:center}.story.text-only{grid-template-columns:1fr;max-width:1000px}.story-photo{margin:0;min-height:520px;overflow:hidden}.story-photo img{width:100%;height:100%;object-fit:cover}.countdown{display:grid;grid-template-columns:.75fr 1.25fr;gap:60px;align-items:end}.timer{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.timer article{border-left:1px solid var(--line);padding-left:18px}.timer strong{display:block;font:500 clamp(42px,6vw,78px)/1 'Cormorant Garamond',serif}.timer span{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.program-list{position:relative;max-width:920px;margin:auto}.program-line{position:absolute;left:171px;top:34px;bottom:34px;width:1px;background:var(--line)}.program-item{display:grid;grid-template-columns:100px 70px 22px 1fr;gap:18px;align-items:center;min-height:108px}.program-item time{font:italic 29px 'Cormorant Garamond',serif;text-align:right;color:var(--accent)}.program-icon img{width:52px;height:52px;object-fit:contain;filter:var(--object-filter,none)}body[data-dark="1"] .program-icon img{filter:brightness(0) invert(1) opacity(.88)}.program-dot{width:10px;height:10px;border-radius:50%;background:var(--paper);border:2px solid var(--accent);z-index:2}.program-item h3{font:500 29px/1 'Cormorant Garamond',serif;margin:0 0 5px}.program-item p{margin:0;color:var(--muted);font-size:13px}.text-placeholder{padding:34px;border:1px dashed var(--line);display:grid;gap:8px}.text-placeholder span{color:var(--muted)}.gallery-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:end;margin-bottom:38px}.gallery-head h2{margin:10px 0}.gallery-head p{color:var(--muted);line-height:1.8}.gallery-grid{display:grid;grid-template-columns:1.25fr .75fr .75fr;grid-template-rows:220px 180px;gap:14px}.gallery-grid figure{margin:0;min-height:0;position:relative;overflow:hidden;background:color-mix(in srgb,var(--accent2) 25%,var(--paper))}.gallery-grid figure:first-child{grid-row:1/span 2}.gallery-grid figure:nth-child(4){grid-column:2/span 2}.gallery-grid a,.gallery-grid img{width:100%;height:100%;display:block}.gallery-grid img{object-fit:cover;transition:.7s}.gallery-grid a:hover img{transform:scale(1.04)}.gallery-grid a span{position:absolute;right:14px;bottom:12px;color:white;font-size:24px}.gallery-placeholder>div{height:100%;display:flex;flex-direction:column;justify-content:center;padding:25px}.gallery-placeholder small{letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.gallery-placeholder strong{font:500 28px 'Cormorant Garamond',serif;margin:8px 0}.gallery-placeholder em{font-style:normal;color:var(--muted);font-size:12px}.dress{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(40px,7vw,100px);align-items:center}.dress-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.dress-object{text-align:center;color:var(--dress-color)}.dress-object svg{width:100%;max-height:170px;fill:currentColor}.dress-object span{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em;margin-top:8px}.locations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.location-card{border:1px solid var(--line)}.location-photo,.location-placeholder{min-height:360px;background-position:center;background-size:cover}.location-placeholder{display:flex;flex-direction:column;justify-content:center;padding:35px;background:color-mix(in srgb,var(--accent2) 24%,var(--paper))}.location-placeholder span{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.location-placeholder strong{font:500 38px 'Cormorant Garamond',serif;margin:9px 0}.location-placeholder em{font-style:normal;color:var(--muted)}.location-content{padding:32px}.location-content h3{font:500 38px 'Cormorant Garamond',serif;margin:8px 0}.location-content p,.location-content small{display:block;color:var(--muted);line-height:1.7}.location-content a{display:inline-block;margin-top:20px;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:10px}.answer{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(40px,7vw,100px);align-items:start}.answer-copy{position:sticky;top:30px}.shared-block .rsvpSection{padding:0!important;border:0!important;color:var(--ink)!important}.shared-block .rsvpFormCard{background:transparent!important;border:1px solid var(--line)!important;border-radius:0!important;box-shadow:none!important}.shared-block .field{background:transparent!important;color:var(--ink)!important;border-radius:0!important}.shared-block .btn{background:var(--accent)!important;color:var(--paper)!important;border-radius:0!important}.footer{text-align:center;padding:65px 20px 90px;border-top:1px solid var(--line)}.footer p{color:var(--muted)}.page-scroll{position:fixed;z-index:99;right:12px;top:50%;height:54vh;width:24px;transform:translateY(-50%);pointer-events:none}.page-scroll__track,.page-scroll__fill{position:absolute;left:50%;top:0;width:1px;height:100%;background:var(--line)}.page-scroll__fill{height:calc(100% * var(--scroll-progress,0));width:2px;background:var(--accent)}.page-scroll__petal{position:absolute;left:50%;top:calc(100% * var(--scroll-progress,0));width:12px;height:18px;transform:translate(-50%,-50%) rotate(35deg);border-radius:90% 10% 90% 10%;background:var(--paper);border:1px solid var(--accent)}.page-scroll__label{position:absolute;right:20px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);white-space:nowrap}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal.is-visible{opacity:1;transform:none}@media(max-width:980px){.quiet-page{width:calc(100% - 20px);margin:10px}.hero{grid-template-columns:1fr;padding:65px 30px}.hero-copy{text-align:center}.hero-copy>p{margin:auto}.hero-meta{justify-content:center}.section-head,.gallery-head,.countdown,.dress,.answer{grid-template-columns:1fr}.story{grid-template-columns:1fr}.locations-grid{grid-template-columns:1fr}.dress-palette{grid-template-columns:repeat(4,1fr)}.answer-copy{position:static}}@media(max-width:700px){.quiet-page{width:100%;margin:0;box-shadow:none}.hero{padding:55px 18px 42px;gap:25px}.hero-names{font-size:clamp(64px,21vw,96px)}.hero-names span+span{padding-left:0}.hero-script{font-size:43px}.hero-meta{gap:18px;flex-wrap:wrap}.hero-badge{width:94px;height:94px}.hero-badge strong{font-size:34px}.section{padding:50px 18px}.section h2,.section-head h2{font-size:clamp(39px,13vw,54px)}.timer{grid-template-columns:repeat(2,1fr);gap:24px}.program-line{left:96px}.program-item{grid-template-columns:55px 32px 18px 1fr;gap:8px;min-height:92px}.program-item time{font-size:19px}.program-icon img{width:30px;height:30px}.program-item h3{font-size:21px}.program-item p{font-size:11px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:220px 145px}.gallery-grid figure:first-child{grid-row:1/span 2}.gallery-grid figure:nth-child(4),.gallery-grid figure:nth-child(5){display:none}.dress-palette{grid-template-columns:repeat(2,1fr)}.location-photo,.location-placeholder{min-height:230px}.answer{gap:26px}.page-scroll{right:2px;width:14px;height:35vh}.page-scroll__label{display:none}.footer{padding-bottom:100px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}


/* =========================================================
   HERO V2 — соответствует HTML-прототипу «Тихая история»
   ========================================================= */
body{
  background:
    radial-gradient(circle at 8% 10%, color-mix(in srgb,var(--accent) 11%,transparent) 0 1px, transparent 2px),
    radial-gradient(circle at 91% 16%, color-mix(in srgb,var(--accent-2) 14%,transparent) 0 2px, transparent 3px),
    linear-gradient(145deg,color-mix(in srgb,var(--bg) 94%,#fff),var(--bg));
  background-size:96px 96px,144px 144px,auto;
}
.quiet-page{
  border:1px solid color-mix(in srgb,var(--accent) 10%,transparent);
}
.hero{
  min-height:min(920px,calc(100svh - 48px));
  grid-template-columns:minmax(440px,.86fr) minmax(520px,1.14fr);
  padding:clamp(68px,7vw,108px) clamp(42px,7vw,118px);
  gap:clamp(42px,6vw,96px);
}
.hero-copy{
  position:relative;
  padding-left:22px;
  align-self:center;
}
.hero-copy:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:1px;
  height:118px;
  background:linear-gradient(var(--accent),transparent);
}
.hero-copy:after{
  content:"";
  position:absolute;
  left:-3px;
  top:-5px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
}
.hero-topline{margin-bottom:23px}
.hero-intro{
  display:flex;
  align-items:center;
  gap:12px;
  margin:13px 0 0;
  font-size:20px;
}
.hero-intro:before{
  content:"";
  width:48px;
  height:1px;
  background:var(--accent);
}
.hero-names{
  margin:0 0 18px;
  font-size:clamp(82px,9.1vw,148px);
  line-height:.72;
  letter-spacing:-.065em;
  text-wrap:balance;
}
.hero-name-second{
  display:flex!important;
  align-items:baseline;
  gap:.08em;
  padding-left:.48em!important;
}
.hero-name-second i{
  margin-left:-.18em;
  font-style:italic;
}
.hero-script{
  max-width:620px;
  margin:12px 0 22px;
  font-size:clamp(43px,4.7vw,70px);
  line-height:1.04;
  letter-spacing:.005em;
}
.hero-description{
  max-width:535px!important;
  margin:0;
  font-size:15px;
  line-height:1.95!important;
}
.hero-meta{
  align-items:center;
  margin-top:31px;
  padding-top:7px;
}
.hero-meta strong{
  white-space:nowrap;
  letter-spacing:-.035em;
}
.hero-meta-place{
  min-height:42px;
  padding-left:22px;
  border-left:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  font-size:9px!important;
  line-height:1.25;
}
.hero-meta-place b,
.hero-meta-place em{
  font:600 9px/1.35 Manrope,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
}
.hero-meta-place em{
  font-style:normal;
  color:var(--muted);
}
.hero-art{
  width:100%;
  max-width:720px;
  justify-self:center;
}
.hero-shape{
  filter:drop-shadow(0 24px 48px color-mix(in srgb,var(--ink) 9%,transparent));
}
.hero-shape image{
  transform-box:fill-box;
  transform-origin:center;
}
.hero-outline{
  stroke-width:1.25;
  opacity:.38;
}
.hero-badge{
  right:1%;
  bottom:2%;
  width:132px;
  height:132px;
  background:var(--accent);
  color:var(--paper);
  border:5px solid color-mix(in srgb,var(--paper) 72%,transparent);
  outline:1px solid color-mix(in srgb,var(--accent) 58%,var(--paper));
}
.hero-badge span,
.hero-badge small{color:inherit}
.hero-scroll-note{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:var(--accent);
  font-size:8px;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.hero-scroll-note i{
  display:block;
  width:1px;
  height:32px;
  background:linear-gradient(var(--accent),transparent);
}
body[data-dark="1"] .quiet-page{
  box-shadow:0 30px 100px rgba(0,0,0,.22);
}
body[data-dark="1"] .hero-placeholder rect{
  fill:color-mix(in srgb,var(--paper) 86%,var(--accent));
}
body[data-dark="1"] .hero-placeholder text{fill:var(--ink)}

@media(max-width:1100px){
  .hero{
    grid-template-columns:minmax(360px,.9fr) minmax(430px,1.1fr);
  }
  .hero-names{font-size:clamp(72px,9vw,118px)}
}
@media(max-width:980px){
  .hero{
    min-height:auto;
    grid-template-columns:1fr;
    padding:72px 30px 58px;
  }
  .hero-copy{
    padding-left:0;
    text-align:center;
    max-width:760px;
    margin:auto;
  }
  .hero-copy:before,.hero-copy:after{display:none}
  .hero-intro{justify-content:center}
  .hero-name-second{
    justify-content:center;
    padding-left:0!important;
  }
  .hero-description{margin-inline:auto}
  .hero-meta{justify-content:center}
  .hero-art{max-width:700px}
  .hero-scroll-note{display:none}
}
@media(max-width:700px){
  .hero{padding:52px 18px 38px}
  .hero-topline{margin-bottom:16px}
  .hero-intro{font-size:17px}
  .hero-intro:before{width:28px}
  .hero-names{
    font-size:clamp(62px,21vw,94px);
    line-height:.74;
    margin-bottom:14px;
  }
  .hero-name-second{display:block!important}
  .hero-script{
    font-size:clamp(37px,12vw,52px);
    margin:4px auto 17px;
  }
  .hero-description{
    max-width:35ch!important;
    font-size:14px;
    line-height:1.8!important;
  }
  .hero-meta{
    gap:14px;
    margin-top:24px;
  }
  .hero-meta strong{font-size:clamp(36px,12vw,50px)}
  .hero-meta-place{padding-left:14px}
  .hero-badge{
    width:96px;
    height:96px;
    border-width:4px;
  }
  .hero-badge strong{font-size:35px}
}


/* =========================================================
   ФИНАЛЬНАЯ ПОЛИРОВКА: HERO, ПРОГРАММА, ГАЛЕРЕЯ
   ========================================================= */
.hero-script{
  max-width:620px;
  text-wrap:balance;
  overflow-wrap:anywhere;
}
.hero-script.is-short{
  font-size:clamp(43px,4.7vw,70px);
  line-height:1.03;
}
.hero-script.is-long{
  max-width:600px;
  font-size:clamp(32px,3.25vw,49px);
  line-height:1.13;
  letter-spacing:0;
}
.hero-script.is-very-long{
  max-width:610px;
  font-size:clamp(25px,2.45vw,38px);
  line-height:1.2;
  letter-spacing:0;
}
.hero-description{
  max-width:535px!important;
  margin-top:22px!important;
}

/* Линия программы всегда проходит точно через центры точек. */
.program-list{
  --program-time:100px;
  --program-icon:70px;
  --program-dot:22px;
  --program-gap:18px;
}
.program-line{
  left:calc(
    var(--program-time) + var(--program-gap) +
    var(--program-icon) + var(--program-gap) +
    (var(--program-dot) / 2)
  );
  top:54px;
  bottom:54px;
  background:color-mix(in srgb,var(--accent) 48%,var(--line));
}
.program-item{
  grid-template-columns:var(--program-time) var(--program-icon) var(--program-dot) minmax(0,1fr);
  gap:var(--program-gap);
  min-height:118px;
}
.program-dot{
  justify-self:center;
  box-shadow:0 0 0 4px var(--paper);
}
.program-content{
  min-width:0;
  padding-left:4px;
}
.program-content h3{
  text-wrap:balance;
}

/* Галерея чуть выше и выразительнее, но без превращения в огромный экран. */
.gallery-grid{
  grid-template-rows:290px 230px;
  gap:16px;
}
.gallery-grid figure:first-child{
  min-height:536px;
}
.gallery-placeholder>div{
  padding:34px;
}
.gallery-placeholder strong{
  font-size:32px;
}

@media(max-width:980px){
  .hero-script.is-long{margin-inline:auto;font-size:clamp(31px,5vw,46px)}
  .hero-script.is-very-long{margin-inline:auto;font-size:clamp(25px,4vw,36px)}
  .gallery-grid{grid-template-rows:260px 205px}
  .gallery-grid figure:first-child{min-height:481px}
}
@media(max-width:700px){
  .hero-script.is-short{font-size:43px}
  .hero-script.is-long{max-width:31ch;font-size:clamp(29px,8.5vw,39px);line-height:1.12}
  .hero-script.is-very-long{max-width:34ch;font-size:clamp(23px,6.8vw,31px);line-height:1.2}

  .program-list{
    --program-time:55px;
    --program-icon:32px;
    --program-dot:18px;
    --program-gap:8px;
  }
  .program-line{
    top:46px;
    bottom:46px;
  }
  .program-item{
    min-height:98px;
  }
  .program-content{padding-left:2px}

  .gallery-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:260px 175px;
    gap:10px;
  }
  .gallery-grid figure:first-child{
    min-height:445px;
  }
  .gallery-placeholder>div{padding:20px}
  .gallery-placeholder strong{font-size:24px}
}
@media(max-width:430px){
  .gallery-grid{
    grid-template-rows:235px 160px;
  }
  .gallery-grid figure:first-child{min-height:405px}
}


/* Финальные правки hero, программы и галереи */
.hero-script{
  color:var(--paper)!important;
  font-size:clamp(34px,3.8vw,54px)!important;
  line-height:1.08!important;
  max-width:560px!important;
  text-shadow:none!important;
}
.hero-script.is-long{
  font-size:clamp(26px,2.9vw,40px)!important;
  line-height:1.18!important;
  max-width:620px!important;
}
.hero-intro{
  color:color-mix(in srgb,var(--paper) 88%,transparent)!important;
}
.hero .eyebrow{
  color:color-mix(in srgb,var(--paper) 82%,transparent)!important;
}
.program-icon{
  width:58px!important;
  height:58px!important;
  max-width:58px!important;
  max-height:58px!important;
  object-fit:contain;
}
.program-item{
  grid-template-columns:94px 76px 28px minmax(0,1fr)!important;
}
.program-time{
  font-size:30px!important;
}
.gallery-grid{
  grid-template-rows:repeat(2,minmax(300px,34vw))!important;
}
.gallery-item:first-child{
  min-height:640px!important;
}
@media(max-width:980px){
  .program-item{
    grid-template-columns:82px 66px 28px minmax(0,1fr)!important;
  }
  .program-icon{
    width:52px!important;
    height:52px!important;
  }
  .gallery-grid{
    grid-template-rows:repeat(2,280px)!important;
  }
  .gallery-item:first-child{
    min-height:570px!important;
  }
}
@media(max-width:700px){
  .hero-script{
    font-size:clamp(31px,9.8vw,44px)!important;
  }
  .hero-script.is-long{
    font-size:clamp(24px,7.2vw,32px)!important;
  }
  .program-item{
    grid-template-columns:60px 48px 20px minmax(0,1fr)!important;
    gap:6px!important;
  }
  .program-icon{
    width:40px!important;
    height:40px!important;
  }
  .program-time{
    font-size:21px!important;
  }
  .gallery-grid{
    grid-template-rows:250px 190px!important;
  }
  .gallery-item:first-child{
    min-height:450px!important;
  }
}


/* =========================================================
   HERO / PROGRAM / GALLERY — исправление 4
   ========================================================= */

/* Дата + день недели */
.hero-date-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}
.hero-date-wrap strong{
  display:block;
}
.hero-weekday{
  display:block;
  font:600 9px/1.3 Manrope,sans-serif;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:color-mix(in srgb,var(--paper) 72%,transparent);
}

/* Программа: одна геометрия для колонок, линии, точек и иконок */
.program-list{
  --program-time:92px;
  --program-icon-col:70px;
  --program-dot-col:18px;
  --program-gap:16px;
  position:relative;
}
.program-item{
  grid-template-columns:
    var(--program-time)
    var(--program-icon-col)
    var(--program-dot-col)
    minmax(0,1fr)!important;
  column-gap:var(--program-gap)!important;
  min-height:116px!important;
}
.program-line{
  left:calc(
    var(--program-time) +
    var(--program-gap) +
    var(--program-icon-col) +
    var(--program-gap) +
    (var(--program-dot-col) / 2)
  )!important;
  top:58px!important;
  bottom:58px!important;
  width:1px!important;
  transform:translateX(-.5px);
  background:color-mix(in srgb,var(--accent) 52%,var(--line))!important;
}
.program-icon{
  width:var(--program-icon-col)!important;
  height:70px!important;
  display:grid!important;
  place-items:center!important;
}
.program-icon img{
  width:58px!important;
  height:58px!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}
.program-dot{
  width:10px!important;
  height:10px!important;
  justify-self:center!important;
  box-shadow:0 0 0 4px var(--paper)!important;
}
.program-item time{
  font-size:29px!important;
}

/* Галерея чуть компактнее предыдущей версии */
.gallery-grid{
  grid-template-rows:270px 210px!important;
  gap:16px!important;
}
.gallery-grid figure:first-child{
  min-height:496px!important;
}
.gallery-item:first-child{
  min-height:496px!important;
}

@media(max-width:980px){
  .program-list{
    --program-time:80px;
    --program-icon-col:62px;
    --program-dot-col:18px;
    --program-gap:14px;
  }
  .program-item{min-height:108px!important}
  .program-line{top:54px!important;bottom:54px!important}
  .program-icon{height:62px!important}
  .program-icon img{width:52px!important;height:52px!important}

  .gallery-grid{grid-template-rows:245px 190px!important}
  .gallery-grid figure:first-child,
  .gallery-item:first-child{min-height:451px!important}
}

@media(max-width:700px){
  .hero-date-wrap{align-items:center}
  .hero-weekday{font-size:8px}

  .program-list{
    --program-time:56px;
    --program-icon-col:42px;
    --program-dot-col:16px;
    --program-gap:8px;
  }
  .program-item{min-height:96px!important}
  .program-line{top:48px!important;bottom:48px!important}
  .program-icon{height:42px!important}
  .program-icon img{width:38px!important;height:38px!important}
  .program-item time{font-size:21px!important}

  .gallery-grid{grid-template-rows:230px 155px!important}
  .gallery-grid figure:first-child,
  .gallery-item:first-child{min-height:395px!important}
}

@media(max-width:430px){
  .gallery-grid{grid-template-rows:215px 145px!important}
  .gallery-grid figure:first-child,
  .gallery-item:first-child{min-height:370px!important}
}


/* =========================================================
   АНИМАЦИИ «ТИХАЯ ИСТОРИЯ»
   ========================================================= */
.hero-sequence .hero-anim{
  opacity:0;
  transform:translateY(24px);
}
.hero-sequence.is-visible .hero-anim{
  animation:quietHeroRise .9s cubic-bezier(.2,.72,.2,1) var(--hero-delay,0s) forwards;
}
.hero-art-animated{
  opacity:0;
  transform:translateX(34px) scale(.975);
}
.hero-art-animated.is-visible{
  animation:quietPhotoIn 1.25s cubic-bezier(.2,.72,.2,1) .18s forwards;
}
.hero-art-animated .hero-shape image{
  transition:transform 1.3s cubic-bezier(.2,.72,.2,1);
}
.hero-art-animated:hover .hero-shape image{
  transform:scale(1.025);
}
.hero-badge{
  animation:quietBadgeFloat 4.8s ease-in-out infinite;
}
.hero-scroll-note i{
  animation:quietScrollLine 1.9s ease-in-out infinite;
}

.section.reveal,
.footer.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .85s cubic-bezier(.2,.72,.2,1),transform .85s cubic-bezier(.2,.72,.2,1);
}
.section.reveal.is-visible,
.footer.reveal.is-visible{
  opacity:1;
  transform:none;
}
.program-item{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .65s ease,transform .65s cubic-bezier(.2,.72,.2,1);
  transition-delay:calc(var(--item-index,0) * 70ms);
}
.program.is-visible .program-item{
  opacity:1;
  transform:none;
}
.program.is-visible .program-icon img{
  animation:quietIconWake .72s cubic-bezier(.2,.8,.2,1) both;
}
.program.is-visible .program-dot{
  animation:quietDotPulse 1s ease both;
}
.gallery-grid figure{
  opacity:0;
  transform:translateY(24px) scale(.985);
  transition:opacity .72s ease,transform .8s cubic-bezier(.2,.72,.2,1);
}
.gallery.is-visible .gallery-grid figure{
  opacity:1;
  transform:none;
}
.gallery.is-visible .gallery-grid figure:nth-child(2){transition-delay:.08s}
.gallery.is-visible .gallery-grid figure:nth-child(3){transition-delay:.16s}
.gallery.is-visible .gallery-grid figure:nth-child(4){transition-delay:.24s}
.gallery.is-visible .gallery-grid figure:nth-child(5){transition-delay:.32s}
.gallery-grid img{
  transition:transform 1s cubic-bezier(.2,.72,.2,1),filter .5s ease!important;
}
.gallery-grid a:hover img{
  transform:scale(1.045);
}
.location-card,
.dress-object,
.detail-card{
  transition:transform .42s ease,border-color .42s ease,background .42s ease;
}
.location-card:hover,
.detail-card:hover{
  transform:translateY(-5px);
}
.dress-object:hover{
  transform:translateY(-7px) rotate(-1deg);
}

@keyframes quietHeroRise{
  to{opacity:1;transform:none}
}
@keyframes quietPhotoIn{
  to{opacity:1;transform:none}
}
@keyframes quietBadgeFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes quietScrollLine{
  0%{transform:scaleY(.2);transform-origin:top;opacity:.25}
  50%{transform:scaleY(1);transform-origin:top;opacity:1}
  100%{transform:scaleY(.2);transform-origin:bottom;opacity:.25}
}
@keyframes quietIconWake{
  from{opacity:0;transform:translateY(9px) rotate(-6deg)}
  to{opacity:1;transform:none}
}
@keyframes quietDotPulse{
  0%{transform:scale(.35);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}
  55%{transform:scale(1.18);box-shadow:0 0 0 8px transparent}
  100%{transform:scale(1)}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  .hero-sequence .hero-anim,
  .hero-art-animated,
  .section.reveal,
  .footer.reveal,
  .program-item,
  .gallery-grid figure{
    opacity:1!important;
    transform:none!important;
  }
}


/* =========================================================
   ПОДЗАГОЛОВОК HERO + НАТИВНЫЙ БЛОК «ДЕТАЛИ»
   ========================================================= */

/*
 * var(--ink) всегда контрастный:
 * тёмный на светлой теме и светлый на тёмной.
 */
.hero-script,
.hero-script.is-short,
.hero-script.is-long,
.hero-script.is-very-long{
  color:var(--ink)!important;
}

.quiet-details{
  position:relative;
}
.quiet-details-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.quiet-detail-card{
  position:relative;
  min-height:250px;
  padding:34px 30px 38px;
  border-right:1px solid var(--line);
  transition:transform .42s ease,background .42s ease;
}
.quiet-detail-card:last-child{
  border-right:0;
}
.quiet-detail-card:hover{
  transform:translateY(-5px);
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
.quiet-detail-number{
  margin-bottom:34px;
  font:600 9px/1 Manrope,sans-serif;
  letter-spacing:.22em;
  color:var(--accent);
}
.quiet-detail-number--wishlist{
  width:54px;
  height:54px;
  margin-bottom:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:color-mix(in srgb,var(--accent) 12%,var(--paper));
  overflow:hidden;
}
.quiet-detail-number--wishlist img{
  display:block;
  width:34px;
  height:42px;
  object-fit:contain;
}
.quiet-detail-provider{
  margin:0 0 12px;
  font:600 10px/1.25 Manrope,sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
}
.quiet-detail-wishlist-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:24px;
  padding:13px 18px;
  border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));
  border-radius:999px;
  color:var(--ink);
  font:600 11px/1 Manrope,sans-serif;
  letter-spacing:.08em;
  text-decoration:none;
  transition:transform .25s ease,background .25s ease,border-color .25s ease;
}
.quiet-detail-wishlist-button:hover{
  transform:translateY(-2px);
  background:color-mix(in srgb,var(--accent) 9%,transparent);
  border-color:var(--accent);
}
.quiet-detail-wishlist-button svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.quiet-detail-card h3{
  margin:0 0 14px;
  font:500 clamp(28px,3vw,42px)/.98 'Cormorant Garamond',serif;
  color:var(--ink);
}
.quiet-detail-card p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.75;
}

.quiet-details.is-visible .quiet-detail-card{
  animation:quietDetailRise .72s cubic-bezier(.2,.72,.2,1) both;
}
.quiet-details.is-visible .quiet-detail-card:nth-child(2){animation-delay:.08s}
.quiet-details.is-visible .quiet-detail-card:nth-child(3){animation-delay:.16s}
.quiet-details.is-visible .quiet-detail-card:nth-child(4){animation-delay:.24s}
.quiet-details.is-visible .quiet-detail-card:nth-child(5){animation-delay:.32s}
.quiet-details.is-visible .quiet-detail-card:nth-child(6){animation-delay:.4s}

@keyframes quietDetailRise{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

@media(max-width:980px){
  .quiet-details-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .quiet-detail-card:nth-child(2n){
    border-right:0;
  }
  .quiet-detail-card:nth-child(n+3){
    border-top:1px solid var(--line);
  }
}
@media(max-width:640px){
  .quiet-details-grid{
    grid-template-columns:1fr;
  }
  .quiet-detail-card{
    min-height:auto;
    padding:26px 0 28px;
    border-right:0!important;
    border-top:1px solid var(--line);
  }
  .quiet-detail-card:first-child{
    border-top:0;
  }
  .quiet-detail-number{
    margin-bottom:18px;
  }
}


/* HERO: компактнее имена и рабочий горизонтальный фокус */
.hero-names{
  font-size:clamp(68px,7.7vw,126px)!important;
  line-height:.74!important;
  max-width:680px;
}
.hero-name-second{
  padding-left:.36em!important;
}

.hero-photo-foreign{
  overflow:hidden;
}
.hero-photo-frame{
  width:100%;
  height:100%;
  overflow:hidden;
}
.hero-photo-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%;
  transform:scale(1.002);
  transition:
    object-position .35s ease,
    transform 1.2s cubic-bezier(.2,.72,.2,1);
}
.hero-art-animated:hover .hero-photo-frame img{
  transform:scale(1.025);
}
.hero-shape image{
  object-position:initial!important;
}

@media(max-width:1100px){
  .hero-names{
    font-size:clamp(64px,8vw,108px)!important;
  }
}
@media(max-width:700px){
  .hero-names{
    font-size:clamp(56px,18vw,82px)!important;
    line-height:.76!important;
  }
  .hero-name-second{
    padding-left:0!important;
  }
}


/* Локальный рукописный шрифт для имён в hero */
@font-face{
  font-family:'Aquarelle';
  src:url('fonts/Aquarelle.woff2') format('woff2');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

.hero-names{
  font-family:'Aquarelle','Cormorant Garamond',serif!important;
  font-weight:400!important;
  letter-spacing:-.02em!important;
  line-height:.84!important;
}
.hero-names i{
  font-family:'Cormorant Garamond',serif!important;
  font-style:italic;
  font-weight:400;
  font-size:.48em!important;
  margin-right:.14em;
  color:var(--accent);
  letter-spacing:0;
}
.hero-name-second{
  align-items:center!important;
  gap:.02em!important;
}

@media(max-width:700px){
  .hero-names{
    line-height:.88!important;
  }
  .hero-names i{
    font-size:.44em!important;
    margin-right:.1em;
  }
}


/* =========================================================
   HERO ИМЕНА — аккуратная композиция Aquarelle
   ========================================================= */
.hero-copy{
  max-width:690px;
}
.hero-names{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  grid-template-areas:
    "bride bride bride"
    ". join ."
    "groom groom groom";
  align-items:center;
  justify-items:start;
  row-gap:0;
  width:min(100%,690px);
  margin:18px 0 28px!important;
  font-size:clamp(62px,7vw,108px)!important;
  line-height:.88!important;
  letter-spacing:0!important;
}
.hero-name{
  display:block!important;
  max-width:100%;
  white-space:nowrap;
}
.hero-name-bride{
  grid-area:bride;
  justify-self:start;
}
.hero-name-groom{
  grid-area:groom;
  justify-self:end;
  padding-left:0!important;
  margin-top:-.06em;
}
.hero-name-join{
  grid-area:join;
  justify-self:center;
  align-self:center;
  margin:-.15em 0 -.12em;
  font:italic 400 clamp(26px,2.4vw,38px)/1 'Cormorant Garamond',serif;
  color:var(--accent);
  letter-spacing:.04em;
}
.hero-script{
  max-width:520px!important;
  margin-top:8px!important;
  font-size:clamp(31px,3.2vw,46px)!important;
  line-height:1.12!important;
}
.hero-description{
  max-width:500px!important;
}
.hero-meta{
  margin-top:28px!important;
}

@media(max-width:1100px){
  .hero-names{
    width:min(100%,620px);
    font-size:clamp(58px,7.4vw,96px)!important;
  }
}
@media(max-width:980px){
  .hero-copy{
    max-width:760px;
  }
  .hero-names{
    width:min(100%,640px);
    margin-inline:auto!important;
  }
  .hero-name-bride{justify-self:start}
  .hero-name-groom{justify-self:end}
}
@media(max-width:700px){
  .hero-names{
    width:min(100%,430px);
    font-size:clamp(48px,15vw,72px)!important;
    line-height:.92!important;
    margin:14px auto 22px!important;
  }
  .hero-name{
    white-space:normal;
    text-align:center;
    justify-self:center!important;
  }
  .hero-name-join{
    font-size:clamp(22px,7vw,30px);
    margin:-.06em 0;
  }
  .hero-script{
    max-width:30ch!important;
    margin-inline:auto!important;
    font-size:clamp(28px,8.5vw,38px)!important;
  }
}
@media(max-width:430px){
  .hero-names{
    width:100%;
    font-size:clamp(44px,14vw,62px)!important;
  }
}


/* =========================================================
   HERO КАК НА УТВЕРЖДЁННОМ РЕФЕРЕНСЕ
   ========================================================= */
.hero-copy{
  max-width:680px;
  text-align:center;
}
.hero-topline{
  display:none;
}
.hero-names{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:680px;
  margin:0 auto 26px!important;
  font-family:'Aquarelle','Cormorant Garamond',serif!important;
  font-size:clamp(64px,7.4vw,112px)!important;
  line-height:.86!important;
  letter-spacing:0!important;
}
.hero-name{
  display:block!important;
  width:100%;
  text-align:center!important;
  white-space:nowrap;
}
.hero-name-bride,
.hero-name-groom{
  justify-self:center!important;
  margin:0!important;
  padding:0!important;
}
.hero-name-join{
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:56%;
  margin:-.08em auto -.02em;
  font-family:'Cormorant Garamond',serif!important;
  color:var(--accent);
}
.hero-name-join i{
  flex:1;
  height:1px;
  background:color-mix(in srgb,var(--accent) 48%,transparent);
}
.hero-name-join b{
  font:italic 400 clamp(24px,2.2vw,34px)/1 'Cormorant Garamond',serif;
  color:var(--accent);
}
.hero-script{
  max-width:520px!important;
  margin:8px auto 22px!important;
  text-align:center;
  font-size:clamp(28px,3vw,44px)!important;
  line-height:1.18!important;
}
.hero-description{
  max-width:500px!important;
  margin:0 auto!important;
  text-align:center;
}
.hero-meta{
  display:flex!important;
  flex-direction:column;
  align-items:center!important;
  justify-content:center;
  gap:12px!important;
  margin-top:34px!important;
  text-align:center;
}
.hero-weekday{
  font:600 11px/1.3 Manrope,sans-serif;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--ink);
}
.hero-date-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  width:100%;
}
.hero-date-line i{
  width:52px;
  height:1px;
  background:color-mix(in srgb,var(--accent) 42%,transparent);
}
.hero-date-line strong{
  font:500 clamp(36px,4vw,58px)/1 'Cormorant Garamond',serif;
  color:var(--accent);
  white-space:nowrap;
}
.hero-place-line{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.hero-place-line b,
.hero-place-line em{
  font:600 9px/1.5 Manrope,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
  font-style:normal;
}
.hero-place-line em{
  color:var(--muted);
}
.hero-badge{
  display:none!important;
}
.hero-art{
  align-self:center;
}
.hero-scroll-note{
  bottom:14px;
}

@media(max-width:980px){
  .hero-copy{
    max-width:760px;
    margin:auto;
  }
  .hero-names{
    max-width:640px;
  }
}
@media(max-width:700px){
  .hero-names{
    max-width:100%;
    font-size:clamp(48px,15vw,74px)!important;
    line-height:.9!important;
    margin-bottom:20px!important;
  }
  .hero-name{
    white-space:normal;
  }
  .hero-name-join{
    width:70%;
    gap:12px;
  }
  .hero-name-join b{
    font-size:24px;
  }
  .hero-script{
    max-width:30ch!important;
    font-size:clamp(26px,8vw,36px)!important;
  }
  .hero-description{
    max-width:34ch!important;
  }
  .hero-date-line{
    gap:10px;
  }
  .hero-date-line i{
    width:30px;
  }
  .hero-date-line strong{
    font-size:clamp(34px,11vw,46px);
  }
}


/* =========================================================
   ФИНАЛЬНАЯ ТИПОГРАФИКА HERO
   ========================================================= */

/* Возвращаем верхний текстовый блок из Studio. */
.hero-topline{
  display:block!important;
  margin-bottom:20px!important;
}
.hero-topline .eyebrow{
  color:var(--muted)!important;
}
.hero-intro{
  justify-content:center!important;
  color:var(--accent)!important;
  font-weight:300!important;
  font-size:clamp(16px,1.6vw,21px)!important;
}
.hero-intro:before{
  display:none!important;
}

/* Новый нелокальный свадебный шрифт. */
.hero-names{
  font-family:'Great Vibes','Marck Script',cursive!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:.92!important;
  max-width:100%;
}
.hero-name{
  font-family:inherit!important;
  font-weight:400!important;
  line-height:.92!important;
}

/* Адаптация под разные длины имён. */
.hero-names.names-md{
  font-size:clamp(68px,7.7vw,118px)!important;
}
.hero-names.names-lg{
  font-size:clamp(60px,6.8vw,104px)!important;
}
.hero-names.names-xl{
  font-size:clamp(52px,5.9vw,90px)!important;
}
.hero-names.names-xxl{
  font-size:clamp(44px,5vw,78px)!important;
}
.hero-name-bride,
.hero-name-groom{
  max-width:100%;
  overflow-wrap:anywhere;
  text-align:center!important;
}
.hero-name-join{
  width:min(62%,360px)!important;
  margin:.02em auto .04em!important;
}
.hero-name-join b{
  font-family:'Cormorant Garamond',serif!important;
  font-weight:300!important;
  font-size:clamp(22px,2vw,31px)!important;
}

/* Более лёгкие заголовки по всему шаблону. */
.section h2,
.section-head h2,
.gallery-head h2,
.dress-copy h2,
.answer-copy h2,
.location-card h3,
.quiet-detail-card h3{
  font-weight:300!important;
}

/* Чуть легче дата и крупные текстовые акценты. */
.hero-date-line strong{
  font-weight:300!important;
}
.hero-script{
  font-weight:400!important;
}

@media(max-width:700px){
  .hero-topline{
    margin-bottom:14px!important;
  }
  .hero-names.names-md{
    font-size:clamp(54px,16vw,78px)!important;
  }
  .hero-names.names-lg{
    font-size:clamp(48px,14vw,68px)!important;
  }
  .hero-names.names-xl{
    font-size:clamp(42px,12vw,60px)!important;
  }
  .hero-names.names-xxl{
    font-size:clamp(36px,10vw,52px)!important;
  }
  .hero-name{
    white-space:normal!important;
  }
}


/* Safari-safe hero photo */
.hero-photo-foreign,
.hero-photo-frame{
  display:none!important;
}
.hero-photo-svg-image{
  transform-box:fill-box;
  transform-origin:center;
  will-change:transform;
  transition:transform 1.15s cubic-bezier(.2,.72,.2,1);
}
@supports (-webkit-touch-callout:none){
  .hero-shape{overflow:visible}
  .hero-photo-svg-image{
    -webkit-transform-origin:center;
    transform-origin:center;
  }
}


/* =========================================================
   ПРОГРАММА: семантические иконки
   ГАЛЕРЕЯ: фотографии в стиле hero
   ========================================================= */

.program-icon img{
  display:block;
  object-fit:contain;
}

/*
 * Каждая фотография галереи получает тот же акварельный силуэт,
 * что и фото в hero. Для WebKit используется отдельный префикс.
 */
.gallery-grid.has-photos{
  align-items:center;
  gap:clamp(16px,2vw,28px);
}
.gallery-grid.has-photos .gallery-photo{
  background:transparent!important;
  border:0!important;
  overflow:visible!important;
}
.gallery-grid.has-photos .gallery-photo > a{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}
.gallery-photo-mask{
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
  -webkit-mask-image:url('hero-shape.svg');
  mask-image:url('hero-shape.svg');
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  filter:drop-shadow(0 20px 35px color-mix(in srgb,var(--ink) 12%,transparent));
}
.gallery-photo-mask img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.035);
  transition:transform 1.1s cubic-bezier(.2,.72,.2,1),filter .45s ease;
}
.gallery-photo:hover .gallery-photo-mask img{
  transform:scale(1.075);
}
.gallery-plus{
  position:absolute;
  right:7%;
  bottom:7%;
  z-index:3;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--ink);
  background:color-mix(in srgb,var(--paper) 84%,transparent);
  border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 12%,transparent);
}
.gallery-photo-1 .gallery-photo-mask{
  -webkit-mask-size:106% 102%;
  mask-size:106% 102%;
}
.gallery-photo-2 .gallery-photo-mask,
.gallery-photo-4 .gallery-photo-mask{
  transform:rotate(-1.2deg);
}
.gallery-photo-3 .gallery-photo-mask,
.gallery-photo-5 .gallery-photo-mask{
  transform:rotate(1.1deg);
}

/* Safari fallback: маска остаётся внешней, фото не превращается в прямоугольник. */
@supports (-webkit-touch-callout:none){
  .gallery-photo-mask{
    -webkit-mask-image:url('hero-shape.svg');
    -webkit-mask-repeat:no-repeat;
    -webkit-mask-position:center;
    -webkit-mask-size:100% 100%;
  }
}

@media(max-width:700px){
  .gallery-plus{
    width:29px;
    height:29px;
    right:6%;
    bottom:6%;
  }
}


/* =========================================================
   ГАЛЕРЕЯ И ИСТОРИЯ В ЕДИНОМ СТИЛЕ HERO
   ========================================================= */

/* Старое общее правило должно касаться только кнопки плюс. */
.gallery-grid a > span:not(.gallery-plus){
  position:static!important;
}
.gallery-grid .gallery-plus{
  position:absolute!important;
}

/* Акварельная маска для галереи и истории. */
.gallery-photo-mask,
.story-photo-mask{
  position:relative!important;
  inset:auto!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0;
  min-height:0;
  overflow:hidden!important;
  border-radius:0!important;

  -webkit-mask-image:url('hero-shape.svg')!important;
  mask-image:url('hero-shape.svg')!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-position:center!important;
  mask-position:center!important;
  -webkit-mask-size:100% 100%!important;
  mask-size:100% 100%!important;

  background:transparent!important;
  filter:drop-shadow(0 20px 34px color-mix(in srgb,var(--ink) 13%,transparent));
}

.gallery-photo-mask img,
.story-photo-mask img{
  position:static!important;
  inset:auto!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  border-radius:0!important;
  transform:scale(1.035);
}

.gallery-grid.has-photos .gallery-photo{
  overflow:visible!important;
  background:transparent!important;
  border-radius:0!important;
}
.gallery-grid.has-photos .gallery-photo > a{
  display:block!important;
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
}

/* История с фото */
.story.has-photo{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
}
.story-photo{
  width:100%;
  min-height:520px;
  overflow:visible!important;
  background:transparent!important;
}
.story-photo-mask{
  min-height:520px;
}

/* История без фото занимает всю ширину, без пустой колонки. */
.story.text-only{
  display:block!important;
  max-width:none!important;
}
.story.text-only .story-copy{
  width:100%!important;
  max-width:1120px!important;
  margin:0 auto!important;
  text-align:center;
}
.story.text-only .story-copy p{
  max-width:920px!important;
  margin:20px auto 0!important;
  font-size:clamp(16px,1.45vw,20px);
  line-height:1.95;
}
.story.text-only .story-copy h2{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}
.story.text-only .script-note{
  margin-top:28px;
}

/* Не даём общему правилу превратить маску или фото в кружок. */
.gallery-photo-mask,
.gallery-photo-mask img,
.story-photo-mask,
.story-photo-mask img{
  clip-path:none!important;
  border-radius:0!important;
}

@supports (-webkit-touch-callout:none){
  .gallery-photo-mask,
  .story-photo-mask{
    -webkit-mask-image:url('hero-shape.svg')!important;
    -webkit-mask-size:100% 100%!important;
    -webkit-mask-position:center!important;
  }
}

@media(max-width:980px){
  .story.has-photo{
    grid-template-columns:1fr!important;
  }
  .story-photo,
  .story-photo-mask{
    min-height:480px;
  }
}
@media(max-width:700px){
  .story-photo,
  .story-photo-mask{
    min-height:340px;
  }
  .story.text-only .story-copy{
    text-align:left;
  }
  .story.text-only .story-copy p{
    margin-left:0!important;
    margin-right:0!important;
  }
}


/* =========================================================
   ГАЛЕРЕЯ БЕЗ НАЛОЖЕНИЙ И МАСОК
   ========================================================= */
.gallery-grid.has-photos{
  display:grid!important;
  grid-template-columns:1.25fr .75fr .75fr!important;
  grid-template-rows:250px 210px!important;
  gap:18px!important;
  align-items:stretch!important;
}
.gallery-grid.has-photos .gallery-photo{
  margin:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:var(--paper-alt)!important;
  border:1px solid var(--line)!important;
  border-radius:0!important;
  transform:none!important;
  filter:none!important;
}
.gallery-grid.has-photos .gallery-photo:first-child{
  grid-row:1 / span 2;
}
.gallery-grid.has-photos .gallery-photo:nth-child(4){
  grid-column:2 / span 2;
}
.gallery-grid.has-photos .gallery-photo > a{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
}
.gallery-grid.has-photos .gallery-photo img{
  position:static!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
  filter:none!important;
  border-radius:0!important;
  transition:transform .8s cubic-bezier(.2,.72,.2,1),filter .35s ease!important;
}
.gallery-grid.has-photos .gallery-photo:hover img{
  transform:scale(1.035)!important;
}
.gallery-grid.has-photos .gallery-plus{
  position:absolute!important;
  right:14px!important;
  bottom:14px!important;
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:color-mix(in srgb,var(--paper) 86%,transparent)!important;
  border:1px solid color-mix(in srgb,var(--accent) 38%,transparent)!important;
  color:var(--ink)!important;
  font-size:20px!important;
  line-height:1!important;
  box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 12%,transparent)!important;
  backdrop-filter:blur(8px);
}
.gallery-photo-mask{
  display:none!important;
}

@media(max-width:980px){
  .gallery-grid.has-photos{
    grid-template-columns:1fr 1fr!important;
    grid-template-rows:320px 220px 220px!important;
  }
  .gallery-grid.has-photos .gallery-photo:first-child{
    grid-column:1 / span 2;
    grid-row:auto;
  }
  .gallery-grid.has-photos .gallery-photo:nth-child(4){
    grid-column:auto;
  }
}
@media(max-width:700px){
  .gallery-grid.has-photos{
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
    gap:12px!important;
  }
  .gallery-grid.has-photos .gallery-photo,
  .gallery-grid.has-photos .gallery-photo:first-child,
  .gallery-grid.has-photos .gallery-photo:nth-child(4){
    grid-column:auto!important;
    grid-row:auto!important;
    min-height:250px!important;
  }
}


/* =========================================================
   ГАЛЕРЕЯ: НЕ ОБРЕЗАТЬ ФОТОГРАФИИ
   ========================================================= */

/*
 * Для всех второстепенных кадров показываем изображение целиком.
 * Пустое пространство заполняется мягким фоном темы.
 */
.gallery-grid.has-photos .gallery-photo{
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb,var(--paper-alt) 78%,var(--paper)),
      color-mix(in srgb,var(--accent-soft) 34%,var(--paper))
    )!important;
}

.gallery-grid.has-photos .gallery-photo img{
  object-fit:contain!important;
  object-position:center center!important;
  padding:0!important;
  background:transparent!important;
}

/*
 * Главный кадр можно оставить выразительным, но без грубой обрезки.
 */
.gallery-grid.has-photos .gallery-photo:first-child img{
  object-fit:contain!important;
}

/*
 * Убираем увеличение, потому что оно снова визуально обрезало края.
 */
.gallery-grid.has-photos .gallery-photo:hover img{
  transform:none!important;
}

/* Чуть уменьшаем высоту правых карточек, чтобы вертикальные фото смотрелись аккуратнее. */
.gallery-grid.has-photos{
  grid-template-rows:230px 190px!important;
}

@media(max-width:980px){
  .gallery-grid.has-photos{
    grid-template-rows:300px 220px 220px!important;
  }
}

@media(max-width:700px){
  .gallery-grid.has-photos .gallery-photo,
  .gallery-grid.has-photos .gallery-photo:first-child,
  .gallery-grid.has-photos .gallery-photo:nth-child(4){
    min-height:230px!important;
  }
}


/* =========================================================
   ГАЛЕРЕЯ — ЧИСТАЯ MASONRY-КОМПОЗИЦИЯ БЕЗ БОКОВЫХ РАМОК
   ========================================================= */
.gallery-grid.has-photos{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:none!important;
  gap:14px!important;
  align-items:start!important;
}

.gallery-grid.has-photos .gallery-photo,
.gallery-grid.has-photos .gallery-photo:first-child,
.gallery-grid.has-photos .gallery-photo:nth-child(4){
  grid-column:auto!important;
  grid-row:auto!important;
  margin:0!important;
  min-height:0!important;
  overflow:hidden!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}

.gallery-grid.has-photos .gallery-photo > a{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  overflow:hidden!important;
  background:transparent!important;
}

.gallery-grid.has-photos .gallery-photo img{
  position:static!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  transform:none!important;
  filter:none!important;
  transition:transform .75s cubic-bezier(.2,.72,.2,1),filter .35s ease!important;
}

.gallery-grid.has-photos .gallery-photo:hover img{
  transform:scale(1.018)!important;
}

/* Шахматная укладка как в референсе */
.gallery-grid.has-photos .gallery-photo:nth-child(1){
  grid-column:1;
}
.gallery-grid.has-photos .gallery-photo:nth-child(2){
  grid-column:2;
}
.gallery-grid.has-photos .gallery-photo:nth-child(3){
  grid-column:1;
}
.gallery-grid.has-photos .gallery-photo:nth-child(4){
  grid-column:2!important;
}
.gallery-grid.has-photos .gallery-photo:nth-child(5){
  grid-column:1;
}

/* Кнопка открытия остаётся аккуратной и не создаёт рамку */
.gallery-grid.has-photos .gallery-plus{
  position:absolute!important;
  right:12px!important;
  bottom:12px!important;
  width:30px!important;
  height:30px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.84)!important;
  border:1px solid rgba(255,255,255,.7)!important;
  color:#26343a!important;
  font-size:18px!important;
  line-height:1!important;
  box-shadow:0 6px 18px rgba(0,0,0,.10)!important;
  backdrop-filter:blur(7px);
}

@media(max-width:700px){
  .gallery-grid.has-photos{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .gallery-grid.has-photos .gallery-photo,
  .gallery-grid.has-photos .gallery-photo:nth-child(1),
  .gallery-grid.has-photos .gallery-photo:nth-child(2),
  .gallery-grid.has-photos .gallery-photo:nth-child(3),
  .gallery-grid.has-photos .gallery-photo:nth-child(4),
  .gallery-grid.has-photos .gallery-photo:nth-child(5){
    grid-column:1!important;
    grid-row:auto!important;
  }
}


/* =========================================================
   КОНТАКТЫ — В СТИЛЕ «ТИХОЙ ИСТОРИИ»
   ========================================================= */
.quiet-contacts{
  padding-top:clamp(64px,8vw,120px)!important;
  padding-bottom:clamp(64px,8vw,120px)!important;
}
.quiet-contacts-host{
  width:100%;
}

/* Убираем чужие внешние отступы, фон и декоративную карточку общего блока. */
.quiet-contacts-host :is(
  #contacts,
  [id*="contact" i],
  section[class*="contact" i],
  .contacts,
  .contacts-section,
  .contactsSection,
  .contacts-block,
  .contactsBlock,
  .ivi-contacts,
  .iviContacts,
  .iviContactsSection
){
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  border:0!important;
}

/* Заголовок блока */
.quiet-contacts-host :is(
  .contactsHead,
  .contacts-head,
  .iviContactsHead,
  [class*="contact" i][class*="head" i],
  header
){
  max-width:900px!important;
  margin:0 auto clamp(38px,5vw,64px)!important;
  text-align:center!important;
}
.quiet-contacts-host :is(
  .contactsKicker,
  .contacts-kicker,
  [class*="contact" i][class*="kicker" i],
  .eyebrow
){
  display:block!important;
  margin:0 0 12px!important;
  color:var(--accent)!important;
  font:600 10px/1.3 Manrope,sans-serif!important;
  letter-spacing:.24em!important;
  text-transform:uppercase!important;
}
.quiet-contacts-host :is(
  .contactsTitle,
  .contacts-title,
  [class*="contact" i][class*="title" i],
  h2
){
  margin:0!important;
  color:var(--ink)!important;
  font:300 clamp(46px,6vw,82px)/.94 'Cormorant Garamond',serif!important;
  letter-spacing:-.04em!important;
}
.quiet-contacts-host :is(
  .contactsText,
  .contacts-text,
  [class*="contact" i][class*="subtitle" i],
  [class*="contact" i][class*="description" i]
){
  max-width:720px!important;
  margin:18px auto 0!important;
  color:var(--muted)!important;
  font:400 15px/1.8 Manrope,sans-serif!important;
}

/* Сетка контактов */
.quiet-contacts-host :is(
  .contactsGrid,
  .contacts-grid,
  .iviContactsGrid,
  [class*="contact" i][class*="grid" i],
  [class*="contact" i][class*="list" i]
){
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;
  gap:0!important;
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
}

/* Карточки без белых капсул и тяжёлых теней */
.quiet-contacts-host :is(
  .contactCard,
  .contact-card,
  .contactsCard,
  .contacts-card,
  .iviContactCard,
  [class*="contact" i][class*="card" i],
  [class*="contact" i][class*="person" i],
  article
){
  min-height:280px!important;
  margin:0!important;
  padding:38px 30px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  background:transparent!important;
  border:0!important;
  border-right:1px solid var(--line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:var(--ink)!important;
}
.quiet-contacts-host :is(
  .contactCard,
  .contact-card,
  .contactsCard,
  .contacts-card,
  .iviContactCard,
  [class*="contact" i][class*="card" i],
  [class*="contact" i][class*="person" i],
  article
):last-child{
  border-right:0!important;
}

/* Иконка */
.quiet-contacts-host :is(
  .contactIcon,
  .contact-icon,
  [class*="contact" i][class*="icon" i]
){
  width:58px!important;
  height:58px!important;
  margin:0 0 20px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid var(--line)!important;
  border-radius:50%!important;
  background:color-mix(in srgb,var(--accent) 6%,transparent)!important;
  color:var(--accent)!important;
}
.quiet-contacts-host :is(svg,i){
  color:var(--accent)!important;
  stroke:currentColor;
}

/* Имя, роль и телефон */
.quiet-contacts-host :is(
  .contactName,
  .contact-name,
  [class*="contact" i][class*="name" i],
  h3
){
  margin:0 0 8px!important;
  color:var(--ink)!important;
  font:400 clamp(28px,3vw,40px)/1 'Cormorant Garamond',serif!important;
}
.quiet-contacts-host :is(
  .contactRole,
  .contact-role,
  [class*="contact" i][class*="role" i]
){
  margin:0 0 18px!important;
  color:var(--muted)!important;
  font:400 13px/1.5 Manrope,sans-serif!important;
}
.quiet-contacts-host :is(
  .contactPhone,
  .contact-phone,
  [class*="contact" i][class*="phone" i]
){
  margin:0 0 18px!important;
  color:var(--ink)!important;
  font:500 14px/1.5 Manrope,sans-serif!important;
}

/* Кнопки */
.quiet-contacts-host a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-height:42px!important;
  padding:0 18px!important;
  color:var(--ink)!important;
  background:transparent!important;
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  box-shadow:none!important;
  text-decoration:none!important;
  font:500 12px/1 Manrope,sans-serif!important;
  transition:background .3s ease,border-color .3s ease,color .3s ease,transform .3s ease!important;
}
.quiet-contacts-host a:hover{
  transform:translateY(-2px);
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--paper)!important;
}

/* Тёмные темы */
body[data-dark="1"] .quiet-contacts-host :is(
  .contactCard,
  .contact-card,
  .contactsCard,
  .contacts-card,
  .iviContactCard,
  [class*="contact" i][class*="card" i],
  [class*="contact" i][class*="person" i],
  article
){
  background:transparent!important;
  color:var(--ink)!important;
}
body[data-dark="1"] .quiet-contacts-host a{
  color:var(--ink)!important;
  background:transparent!important;
}

/* Анимация */
.quiet-contacts.is-visible .quiet-contacts-host :is(
  .contactCard,
  .contact-card,
  .contactsCard,
  .contacts-card,
  .iviContactCard,
  [class*="contact" i][class*="card" i],
  [class*="contact" i][class*="person" i],
  article
){
  animation:quietContactRise .7s cubic-bezier(.2,.72,.2,1) both;
}
.quiet-contacts.is-visible .quiet-contacts-host :is(
  .contactCard,
  .contact-card,
  .contactsCard,
  .contacts-card,
  .iviContactCard,
  [class*="contact" i][class*="card" i],
  [class*="contact" i][class*="person" i],
  article
):nth-child(2){animation-delay:.08s}
.quiet-contacts.is-visible .quiet-contacts-host :is(
  .contactCard,
  .contact-card,
  .contactsCard,
  .contacts-card,
  .iviContactCard,
  [class*="contact" i][class*="card" i],
  [class*="contact" i][class*="person" i],
  article
):nth-child(3){animation-delay:.16s}

@keyframes quietContactRise{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:none}
}

@media(max-width:760px){
  .quiet-contacts{
    padding-top:64px!important;
    padding-bottom:64px!important;
  }
  .quiet-contacts-host :is(
    .contactsGrid,
    .contacts-grid,
    .iviContactsGrid,
    [class*="contact" i][class*="grid" i],
    [class*="contact" i][class*="list" i]
  ){
    grid-template-columns:1fr!important;
  }
  .quiet-contacts-host :is(
    .contactCard,
    .contact-card,
    .contactsCard,
    .contacts-card,
    .iviContactCard,
    [class*="contact" i][class*="card" i],
    [class*="contact" i][class*="person" i],
    article
  ){
    min-height:auto!important;
    padding:30px 0!important;
    border-right:0!important;
    border-bottom:1px solid var(--line)!important;
  }
  .quiet-contacts-host :is(
    .contactCard,
    .contact-card,
    .contactsCard,
    .contacts-card,
    .iviContactCard,
    [class*="contact" i][class*="card" i],
    [class*="contact" i][class*="person" i],
    article
  ):last-child{
    border-bottom:0!important;
  }
}
