*{box-sizing:border-box}
body{margin:0;background:#efe4e5;font-family:Manrope,sans-serif;color:#4d2f35;-webkit-font-smoothing:antialiased}
a{color:#a8616f}a:hover{color:#7a3e4b}
.page{max-width:440px;margin:0 auto;background:#fff;box-shadow:0 20px 60px rgba(90,50,60,.12);display:flex;flex-direction:column;min-height:100vh}
.script{font-family:'Marck Script',cursive;color:#7a3e4b}
.serif{font-family:'Cormorant Garamond',serif}
.eyebrow{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:#b87c87}
.pink{background:#f7e7ea}
.h2{font-family:'Marck Script',cursive;font-size:42px;color:#7a3e4b;text-align:center;margin:0}

.top{padding:48px 32px 36px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.top .eyebrow{color:#a8616f}
.top .script{font-size:40px;line-height:1.1}

.hero{position:relative;height:620px;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:saturate(.8) brightness(1.04)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#f7e7ea 0%,rgba(247,231,234,0) 14%,rgba(255,255,255,0) 60%,rgba(255,255,255,.9) 84%,#fff 100%)}
.hero .names{position:absolute;left:0;right:0;bottom:20px;z-index:1;text-align:center;font-size:68px;line-height:1.02}

.date-block{padding:20px 32px 44px;display:flex;flex-direction:column;align-items:center;gap:26px}
.date{display:flex;align-items:center;gap:18px;color:#7a3e4b}
.date .side{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:#b87c87}
.date .bar{width:1px;height:54px;background:#e6bfc6}
.date .num{font-family:'Cormorant Garamond',serif;font-size:66px;line-height:1}
.lead{font-size:16px;line-height:1.75;text-align:center;color:#6d4c52;text-wrap:pretty;max-width:350px;margin:0}

.program{padding:44px 32px;display:flex;flex-direction:column;gap:20px}
.program-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.program-item{background:#fff;border-radius:4px;padding:18px 16px;display:flex;flex-direction:column;gap:4px}
.program-item .time{font-family:'Cormorant Garamond',serif;font-size:30px;color:#c98692}
.program-item .what{font-size:14px}

.info{padding:44px 32px;display:flex;flex-direction:column;gap:36px}
.block{display:flex;flex-direction:column;gap:18px;align-items:center;text-align:center}
.venue{width:100%;border:1px solid #f0d6db;border-radius:4px;padding:10px}
.venue-inner{border:1px solid #f0d6db;border-radius:2px;padding:30px 20px 28px;display:flex;flex-direction:column;align-items:center;gap:14px;background:#fffafa}
.venue-name{font-family:'Cormorant Garamond',serif;font-size:44px;line-height:1;color:#7a3e4b;letter-spacing:.02em}
.ornament{display:flex;align-items:center;gap:10px}
.ornament i{width:28px;height:1px;background:#e6bfc6}
.ornament b{width:5px;height:5px;background:#d3949f;transform:rotate(45deg)}
.address{font-size:15px;line-height:1.6;color:#6d4c52;font-style:normal}
.address strong{color:#4d2f35}
.btn-outline{margin-top:8px;display:inline-flex;border:1px solid #7a3e4b;color:#7a3e4b;border-radius:4px;padding:12px 22px;font:600 12px Manrope,sans-serif;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:.2s}
.btn-outline:hover{background:#7a3e4b;color:#fff}
.muted{font-size:15px;color:#6d4c52;margin:0}
.palette{display:flex;width:100%;height:44px;border-radius:4px;overflow:hidden;border:1px solid #e9ddd3}
.palette span{flex:1}

.rsvp-wrap{padding:36px 22px 44px;display:flex;flex-direction:column;gap:32px}
.rsvp{background:#fff;border-radius:4px;padding:30px 22px;display:flex;flex-direction:column;gap:22px}
.rsvp-head{display:flex;flex-direction:column;gap:6px;text-align:center}
.rsvp-head .script{font-size:40px}
.rsvp-head p{margin:0;font-size:13px;color:#8a6d72}
.field{border:1px solid #efd3d8;background:#fff9f9;border-radius:4px;padding:14px;font:15px Manrope,sans-serif;color:#4d2f35;outline:none;width:100%}
.field::placeholder{color:#c4a9ae}
.field:focus{border-color:#c98692}
fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
legend{padding:0;margin-bottom:10px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#b87c87}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;border:1px solid #efd3d8;background:#fff;color:#6d4c52;border-radius:4px;padding:10px 14px;font:500 13px Manrope,sans-serif;cursor:pointer;transition:.15s}
.chip input:checked+span{background:#7a3e4b;border-color:#7a3e4b;color:#fff}
.chip input:focus-visible+span{outline:2px solid #c98692;outline-offset:2px}
.btn{background:#7a3e4b;color:#fff;border:none;border-radius:4px;padding:16px;font:600 13px Manrope,sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.btn:hover{background:#653240}
.thanks{text-align:center;font-family:'Marck Script',cursive;font-size:28px;color:#a8616f;padding:10px}
.sign{text-align:center;font-size:30px}

[hidden]{display:none!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-error{border:1px solid #e6b9c1;background:#fbeef0;color:#7a3e4b;border-radius:4px;padding:12px 14px;font-size:13px;text-align:center}
.btn:disabled{opacity:.6;cursor:default}

/* ---------- Компьютер: широкий экран ---------- */
@media (hover:hover){
  .chip span:hover{border-color:#c98692}
  .chip input:checked+span:hover{border-color:#7a3e4b}
}

@media (min-width:960px){
  body{padding:48px 24px}
  .invite{
    max-width:1160px;min-height:0;border-radius:6px;overflow:hidden;
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:"top top" "photo names" "photo date" "program program" "info info" "rsvp rsvp";
  }
  .invite .h2{font-size:54px}

  .invite .top{grid-area:top;padding:56px 48px 48px}
  .invite .top .script{font-size:54px}

  /* фото в арке слева, имена и дата справа */
  .invite .hero{display:contents}
  .invite .hero::after{display:none}
  .invite .hero img{
    grid-area:photo;position:static;justify-self:center;align-self:center;
    width:calc(100% - 112px);max-width:440px;height:auto;aspect-ratio:3/4;margin:80px 0;
    border-radius:999px 999px 6px 6px;outline:1px solid #e6bfc6;outline-offset:12px;
  }
  .invite .hero .names{
    grid-area:names;position:static;align-self:end;text-align:left;
    font-size:clamp(76px,7.6vw,112px);line-height:.95;margin:0 0 34px;padding:0 56px 0 8px;
  }
  .invite .date-block{grid-area:date;align-self:start;align-items:flex-start;gap:30px;padding:0 64px 80px 8px}
  .invite .lead{text-align:left;max-width:440px;font-size:17px}

  .invite .program{grid-area:program;padding:72px 64px 80px;gap:36px}
  .invite .program-grid{grid-template-columns:repeat(4,1fr);gap:16px;width:100%;max-width:980px;margin:0 auto}
  .invite .program-item{align-items:center;text-align:center;padding:30px 20px 26px;gap:6px}
  .invite .program-item .time{font-size:38px}
  .invite .program-item .what{font-size:15px}

  /* место и дресс-код рядом */
  .invite .info{grid-area:info;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:72px;padding:88px 72px}
  .invite .venue-inner{padding:40px 28px 36px}
  .invite .venue-name{font-size:52px}
  .invite .muted{font-size:16px}
  .invite .palette{border:0;border-radius:0;height:auto;overflow:visible;justify-content:center;gap:16px}
  .invite .palette span{flex:0 0 68px;height:68px;border-radius:50%;border:1px solid #e9ddd3}

  .invite .rsvp-wrap{grid-area:rsvp;align-items:center;padding:88px 64px 72px;gap:40px}
  .invite .rsvp{width:100%;max-width:660px;padding:52px 60px;gap:28px}
  .invite .rsvp-head .script{font-size:54px}
  .invite .rsvp-head p{font-size:14px}
  .invite .chip span{padding:11px 16px;font-size:14px}
  .invite .sign{font-size:38px}
}
