:root{--paper:#fbf8f1;--ink:#3f4e60;--sage:#6f8fab;--line:#d5dee7;--white:#fffdf8}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Cormorant Garamond",serif}
.topbar{position:absolute;z-index:20;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px 7%}.monogram{font:34px Allura,cursive;color:inherit;text-decoration:none}.monogram span{font-size:.7em}.topbar nav{display:flex;gap:26px}.topbar nav a{font:400 10px Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:inherit;text-decoration:none}.menuBtn{display:none;background:none;border:0;font-size:24px;color:inherit}
.hero{position:relative;min-height:820px;overflow:hidden;background:linear-gradient(#fffdfa 0%,rgba(251,248,241,.65) 56%,rgba(251,248,241,0) 78%)}.paper{position:relative;z-index:4;text-align:center;padding:145px 20px 0}.eyebrow{font:400 9px Montserrat,sans-serif;letter-spacing:.32em;text-transform:uppercase}.hero h1,.section h2,footer h2{font-family:Allura,cursive;font-weight:400}.hero h1{font-size:clamp(66px,10vw,118px);line-height:.8;margin:18px 0}.hero h1 i{font-size:.55em;font-weight:400}.date{font:400 12px Montserrat,sans-serif;letter-spacing:.34em}.countdown{display:flex;justify-content:center;gap:30px;margin:30px 0}.countdown div{display:grid}.countdown b{font-size:27px;font-weight:400}.countdown small{font:400 8px Montserrat,sans-serif;letter-spacing:.15em;text-transform:uppercase}.primary,.outline{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 27px;border:1px solid var(--sage);font:500 9px Montserrat,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer}.primary{background:var(--sage);color:white}.outline{color:var(--sage);background:transparent}.hero-art{position:absolute;left:0;right:0;bottom:-4px;height:390px;display:flex;align-items:flex-end;justify-content:center}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center 58%;mix-blend-mode:multiply}
.section{padding:100px 22px;text-align:center;max-width:900px;margin:auto}.section h2{font-size:clamp(54px,8vw,82px);line-height:1;margin:7px 0}.rule{display:block;width:44px;border-top:1px solid var(--sage);margin:24px auto 34px}.section>p{max-width:620px;margin:13px auto;font-size:20px;line-height:1.65}.italic{font-style:italic}.flower{font-size:22px;color:var(--sage)}
.watercolor-break{height:560px;overflow:hidden;background:#fff}.watercolor-break img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.event{max-width:none;background:var(--white)}.date-grid{display:flex;justify-content:center;align-items:center;gap:42px;margin:38px auto}.date-grid>div{display:grid;min-width:115px}.date-grid strong{font-size:48px;font-weight:400}.date-grid small{font:400 8px Montserrat,sans-serif;letter-spacing:.2em}.date-grid span{font-size:18px;margin-top:5px}.date-grid>i{height:90px;border-left:1px solid var(--line)}.event h3{font-size:27px;font-weight:400;margin:28px 0 6px}.event .outline{margin:25px 0 8px}.note{font-style:italic!important;font-size:18px!important}.soft-note{max-width:460px;margin:35px auto 0;padding:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:19px;font-style:italic}
.gifts{max-width:1080px}.gift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}.gift-grid article{background:var(--white);border:1px solid #e2e9ef;padding:34px 22px}.gift-grid article>span{font-size:28px}.gift-grid h3{font-size:23px;font-weight:400;margin:12px 0 6px}.gift-grid p{line-height:1.45;margin:0}
.rsvp{max-width:700px}.rsvp form{display:grid;gap:12px;max-width:490px;margin:34px auto 0;text-align:left}.rsvp label{font:400 9px Montserrat,sans-serif;letter-spacing:.12em;text-transform:uppercase}.rsvp input{min-height:48px;border:1px solid var(--line);background:white;padding:0 14px;font-size:16px}.rsvp button{width:100%}.invite-card{margin:28px auto 0;max-width:490px;padding:28px 22px;background:var(--white);border:1px solid var(--line);position:relative}.invite-card:before,.invite-card:after{content:"✾";position:absolute;color:#aaa58f}.invite-card:before{top:9px;left:12px}.invite-card:after{bottom:9px;right:12px}.invite-card h3{font:400 34px Allura,cursive;margin:5px 0}.choice{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.choice button{min-height:44px;border:1px solid var(--sage);background:transparent;color:var(--ink)}
footer{min-height:520px;position:relative;overflow:hidden;display:grid;place-items:center;text-align:center}footer>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:saturate(.75)}footer>div{position:relative;padding:30px}footer p{font-size:18px;font-style:italic}footer h2{font-size:65px;margin:0}footer strong{display:block;font:400 36px Allura,cursive}footer small{display:block;margin-top:10px;font:400 9px Montserrat,sans-serif;letter-spacing:.25em}
@media(max-width:700px){.topbar{justify-content:center}.topbar nav,.menuBtn{display:none}.hero{min-height:760px}.paper{padding-top:120px}.hero h1{font-size:67px}.hero-art{height:330px}.hero-art img{width:150%;max-width:none}.section{padding:78px 21px}.section>p{font-size:18px}.watercolor-break{height:430px}.watercolor-break img{width:140%;max-width:none;margin-left:-20%;object-position:center 55%}.gift-grid{grid-template-columns:1fr}.date-grid{gap:24px}.date-grid strong{font-size:43px}.choice{grid-template-columns:1fr}footer{min-height:450px}}
.crest-link{display:block;width:116px;height:116px;overflow:hidden;border-radius:50%;text-decoration:none}
.crest-link img{width:100%;height:100%;object-fit:cover;display:block;mix-blend-mode:multiply}
@media(max-width:700px){
  .topbar{padding-top:10px}
  .crest-link{width:104px;height:104px}
  .paper{padding-top:145px}
}

/* Brasão principal — versão grande */
.topbar{
  padding-top:18px;
  align-items:flex-start;
}
.crest-link{
  width:min(42vw,260px)!important;
  height:min(42vw,260px)!important;
  border-radius:0!important;
  overflow:visible!important;
}
.crest-link img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  mix-blend-mode:normal!important;
}
@media(max-width:700px){
  .topbar{
    padding-top:8px!important;
    justify-content:center;
  }
  .crest-link{
    width:50vw!important;
    height:50vw!important;
    max-width:210px!important;
    max-height:210px!important;
  }
  .paper{
    padding-top:235px!important;
  }
  .hero{
    min-height:850px;
  }
}

/* Refinamento da capa — mais longa e com os nomes mais baixos */
@media(max-width:700px){
  .hero{
    min-height:1080px!important;
  }

  .topbar{
    padding-top:18px!important;
  }

  .crest-link{
    width:50vw!important;
    height:50vw!important;
    max-width:220px!important;
    max-height:220px!important;
  }

  .paper{
    padding-top:355px!important;
  }

  .paper .eyebrow{
    margin-bottom:24px!important;
  }

  .hero h1{
    font-family:"Allura",cursive!important;
    font-size:67px!important;
    line-height:.92!important;
    margin:20px 0 30px!important;
  }

  .hero .date{
    margin-top:6px!important;
  }

  .countdown{
    margin:48px 0 38px!important;
  }

  .hero-art{
    height:355px!important;
  }
}

/* Texto da nossa história */
.story-text{
  max-width:650px;
  margin:0 auto;
}
.story-text p{
  margin:0 auto 18px;
  font-size:20px;
  line-height:1.65;
}
.story-text strong{
  font-weight:500;
}
@media(max-width:700px){
  .story-text p{
    font-size:18px;
    line-height:1.62;
    margin-bottom:17px;
  }
}

/* Nossa História — easter eggs delicados */
.story-illustrated{position:relative;isolation:isolate;max-width:none;overflow:hidden}
.story-art{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.27;mix-blend-mode:multiply}
.story-illustrated::after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at center,rgba(251,248,241,.98) 0%,rgba(251,248,241,.95) 40%,rgba(251,248,241,.73) 68%,rgba(251,248,241,.38) 100%)}
.story-illustrated>*:not(.story-art){position:relative}
@media(max-width:700px){
.story-illustrated{padding-top:96px;padding-bottom:100px}
.story-art{opacity:.31}
.story-illustrated::after{background:radial-gradient(ellipse at center,rgba(251,248,241,.99) 0%,rgba(251,248,241,.965) 44%,rgba(251,248,241,.76) 72%,rgba(251,248,241,.43) 100%)}
}


/* Adesivos afetivos espalhados pelo site */
main{position:relative;overflow:hidden}
.site-stickers{position:absolute;inset:0;z-index:6;pointer-events:none}
.sticker{
  position:absolute;
  object-fit:contain;
  opacity:.72;
  filter:saturate(.82);
  transform-origin:center;
}
.s-slainte{width:min(28vw,290px);top:22%;left:-4%;transform:rotate(-7deg)}
.s-vans{width:min(25vw,260px);top:35%;right:-3%;transform:rotate(8deg)}
.s-flor1{width:min(11vw,115px);top:13%;right:5%;transform:rotate(12deg);opacity:.58}
.s-rock{width:min(14vw,145px);top:48%;left:3%;transform:rotate(-9deg);opacity:.62}
.s-trevo{width:min(11vw,115px);top:58%;right:4%;transform:rotate(9deg);opacity:.58}
.s-mcr{width:min(9vw,92px);top:68%;left:5%;transform:rotate(-10deg);opacity:.62}
.s-flor2{width:min(10vw,105px);top:78%;right:7%;transform:rotate(-8deg);opacity:.52}
.s-trevo2{width:min(9vw,95px);top:88%;left:4%;transform:rotate(-7deg);opacity:.5}
.s-rock2{width:min(12vw,125px);top:94%;right:3%;transform:rotate(7deg);opacity:.5}

/* No celular, ficam menores e encostados nas bordas para não competir com o conteúdo */
@media(max-width:700px){
  .site-stickers{z-index:5}
  .sticker{opacity:.48}
  .s-slainte{width:145px;top:23%;left:-48px;transform:rotate(-8deg)}
  .s-vans{width:145px;top:35%;right:-53px;transform:rotate(8deg)}
  .s-flor1{width:68px;top:14%;right:-8px;opacity:.42}
  .s-rock{width:88px;top:49%;left:-26px;opacity:.43}
  .s-trevo{width:74px;top:59%;right:-20px;opacity:.40}
  .s-mcr{width:62px;top:69%;left:-10px;opacity:.44}
  .s-flor2{width:65px;top:79%;right:-10px;opacity:.38}
  .s-trevo2{width:68px;top:88%;left:-18px;opacity:.38}
  .s-rock2{width:82px;top:95%;right:-24px;opacity:.38}
}

/* NOVA DISTRIBUIÇÃO — PNGs realmente separados e transparentes */
.stickers-separated .sticker{
  position:absolute;
  height:auto;
  object-fit:contain;
  pointer-events:none;
  opacity:.66;
  filter:saturate(.82);
}
.st-flor-a{width:90px;top:8%;right:4%;transform:rotate(8deg)}
.st-slainte{width:245px;top:23%;left:-48px;transform:rotate(-7deg)}
.st-coracao{width:58px;top:29%;right:8%;transform:rotate(8deg)}
.st-vans{width:245px;top:37%;right:-55px;transform:rotate(7deg)}
.st-rock{width:145px;top:48%;left:-18px;transform:rotate(-8deg)}
.st-mcr{width:82px;top:57%;right:5%;transform:rotate(9deg)}
.st-trevo{width:82px;top:65%;left:4%;transform:rotate(-8deg)}
.st-brilho{width:48px;top:72%;right:12%;transform:rotate(5deg)}
.st-buque{width:130px;top:79%;left:-20px;transform:rotate(-7deg)}
.st-flor-b{width:72px;top:86%;right:4%;transform:rotate(-10deg)}
.st-trevo-b{width:70px;top:92%;left:5%;transform:rotate(9deg)}
.st-mcr-b{width:68px;top:96%;right:5%;transform:rotate(-8deg)}

@media(max-width:700px){
  .stickers-separated .sticker{opacity:.48}
  .st-flor-a{width:58px;top:8%;right:-8px}
  .st-slainte{width:135px;top:23%;left:-48px}
  .st-coracao{width:40px;top:30%;right:4px}
  .st-vans{width:145px;top:37%;right:-55px}
  .st-rock{width:86px;top:49%;left:-24px}
  .st-mcr{width:55px;top:57%;right:-7px}
  .st-trevo{width:58px;top:65%;left:-12px}
  .st-brilho{width:34px;top:72%;right:10px}
  .st-buque{width:92px;top:79%;left:-25px}
  .st-flor-b{width:52px;top:86%;right:-8px}
  .st-trevo-b{width:52px;top:92%;left:-10px}
  .st-mcr-b{width:50px;top:96%;right:-8px}
}

/* Nossa História — construída de verdade em HTML/CSS */
.story.story-illustrated{
  position:relative;
  padding:0!important;
  background:#fbf8f1!important;
  overflow:hidden;
}
.story.story-illustrated::after,
.story.story-illustrated .story-art{display:none!important}

.story-paper{
  position:relative;
  max-width:1000px;
  margin:0 auto;
  padding:115px 70px 125px;
  background:
    radial-gradient(circle at 25% 18%, rgba(126,111,80,.025), transparent 28%),
    radial-gradient(circle at 76% 70%, rgba(126,111,80,.022), transparent 30%),
    #fbf8f1;
}
.story-real-content{
  position:relative;
  z-index:3;
  max-width:680px;
  margin:0 auto;
  text-align:center;
}
.story-real-content .eyebrow{
  letter-spacing:.32em;
  text-transform:uppercase;
  margin-bottom:20px;
}
.story-real-content h2{
  font-family:"Allura",cursive;
  font-size:72px;
  line-height:1;
  font-weight:400;
  margin:0 0 28px;
}
.story-divider{
  width:78px;
  height:1px;
  background:var(--sage);
  margin:0 auto 58px;
  opacity:.7;
}
.story-real-content .story-text p{
  margin:0 0 31px;
  font-size:20px;
  line-height:1.72;
}
.story-real-content .story-text .italic{
  font-style:italic;
  margin-top:42px;
}

.hist-sticker{
  position:absolute;
  z-index:2;
  height:auto;
  object-fit:contain;
  pointer-events:none;
}
.hs-slainte{width:260px;left:-48px;top:35px;transform:rotate(-3deg)}
.hs-flor{width:105px;right:18px;top:160px;transform:rotate(8deg)}
.hs-rock{width:145px;right:-15px;top:44%;transform:rotate(4deg)}
.hs-vans{width:235px;left:-45px;bottom:18px;transform:rotate(-3deg)}
.hs-trevo{width:120px;right:22px;bottom:48px;transform:rotate(6deg)}

@media(max-width:700px){
  .story-paper{
    padding:110px 32px 125px;
    min-height:1450px;
  }
  .story-real-content{
    max-width:100%;
  }
  .story-real-content .eyebrow{
    font-size:14px;
    letter-spacing:.28em;
    max-width:300px;
    margin-left:auto;
    margin-right:auto;
  }
  .story-real-content h2{
    font-size:57px;
    margin-top:26px;
  }
  .story-divider{margin-bottom:60px}
  .story-real-content .story-text p{
    font-size:18px;
    line-height:1.68;
    margin-bottom:30px;
  }
  .hs-slainte{width:145px;left:-46px;top:28px}
  .hs-flor{width:68px;right:-16px;top:260px}
  .hs-rock{width:90px;right:-26px;top:47%}
  .hs-vans{width:145px;left:-38px;bottom:5px}
  .hs-trevo{width:82px;right:-10px;bottom:35px}
}

/* Capa — destaque um pouco maior para chamada e data */
.hero .eyebrow{
  font-size:16px!important;
  letter-spacing:.34em!important;
}
.hero .date{
  font-size:22px!important;
  letter-spacing:.22em!important;
  font-weight:500!important;
}

@media(max-width:700px){
  .hero .eyebrow{
    font-size:17px!important;
    letter-spacing:.30em!important;
  }
  .hero .date{
    font-size:23px!important;
    letter-spacing:.20em!important;
  }
}

/* Transição Nossa História → O Grande Dia */
.cars-transition{
  position:relative;
  background:#fbf8f1;
  overflow:hidden;
  padding:30px 20px 95px;
}
.cars-transition-inner{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.cars-watercolor{
  display:block;
  width:min(100%,680px);
  height:auto;
  margin:0 auto;
  mix-blend-mode:multiply;
}
.cars-caption{
  font-family:"Allura",cursive;
  font-size:38px;
  line-height:1.15;
  color:var(--ink);
  margin:16px auto 0;
  padding:0 20px;
}
@media(max-width:700px){
  .cars-transition{
    padding:8px 0 78px;
  }
  .cars-watercolor{
    width:100%;
    max-width:520px;
  }
  .cars-caption{
    font-size:32px;
    max-width:330px;
    margin-top:8px;
  }
}


/* Ajuste mobile — remove o vazio excessivo no final de Nossa História */
@media(max-width:700px){
  .story-paper{
    min-height:0!important;
    padding-bottom:190px!important;
  }
  .story.story-illustrated{
    min-height:0!important;
  }
}

/* Player flutuante da playlist do casamento */
.music-widget{position:fixed;right:18px;bottom:20px;z-index:1000;font-family:Montserrat,sans-serif}
.music-toggle{border:1px solid #d5dee7;border-radius:50px;background:#7d836d;color:white;box-shadow:0 5px 18px #3332;padding:13px 19px;cursor:pointer;font:500 12px Montserrat,sans-serif;letter-spacing:.05em}
.music-toggle span{margin-left:6px}
.music-panel{position:absolute;bottom:60px;right:0;width:min(350px,calc(100vw - 28px));padding:14px;background:#fbf8f1;border:1px solid #d5dee7;border-radius:16px;box-shadow:0 12px 36px #3333}
.music-panel[hidden]{display:none}
.music-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 2px 12px;color:#4e4a42}
.music-heading strong{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500;display:block}
.music-heading small{font-size:10px;letter-spacing:.03em}
.music-heading button{border:0;background:transparent;font-size:28px;cursor:pointer;color:#4e4a42}
.music-panel iframe{display:block;border-radius:12px;max-width:100%}
.music-hint{text-align:center;font-size:11px;margin:11px 0 0;color:#777b6b}
@media(max-width:700px){.music-widget{right:12px;bottom:14px}.music-toggle{padding:12px 15px}.music-panel{bottom:56px}}


/* Dress Code — padrinhos + convidados */
.dress-code-content{
  max-width:880px;
  margin:0 auto;
  text-align:center;
}
.dress-code-content h2{
  font-family:"Allura",cursive;
  font-size:68px;
  font-weight:400;
  margin:0 0 24px;
}
.dress-block{
  max-width:720px;
  margin:0 auto;
}
.dress-block p{
  font-size:18px;
  line-height:1.7;
}
.dress-kicker{
  font-family:"Montserrat",sans-serif;
  font-size:13px!important;
  letter-spacing:.28em;
  font-weight:500;
  color:var(--sage);
  margin-bottom:20px;
}
.dress-note{
  font-style:italic;
  margin-top:20px;
}
.dress-party-art{
  display:block;
  width:min(100%,620px);
  height:auto;
  margin:38px auto 12px;
  mix-blend-mode:multiply;
}
.dress-separator{
  width:72px;
  height:1px;
  background:var(--line);
  margin:64px auto;
}
.guests{
  max-width:650px;
}
.color-splash{
  display:flex;
  justify-content:center;
  gap:12px;
  margin:30px 0;
}
.color-splash span{
  display:block;
  width:31px;
  height:31px;
  border-radius:50% 45% 55% 42%;
  opacity:.72;
  transform:rotate(12deg);
}
.color-splash span:nth-child(1){background:#c98c7b}
.color-splash span:nth-child(2){background:#d8b96c}
.color-splash span:nth-child(3){background:#8d9a78}
.color-splash span:nth-child(4){background:#8497aa}
.color-splash span:nth-child(5){background:#aa8297}
.dress-request{
  font-style:italic;
  margin-top:28px;
}
.sneakers-note{
  max-width:600px;
  margin:70px auto 0;
  padding-top:40px;
  border-top:1px solid var(--line);
}
.sneakers-note p:last-child{
  font-size:18px;
  line-height:1.7;
}

@media(max-width:700px){
  .dress-code-content{
    padding-left:24px;
    padding-right:24px;
  }
  .dress-code-content h2{font-size:56px}
  .dress-block p,
  .sneakers-note p:last-child{font-size:17px}
  .dress-party-art{
    width:100%;
    margin-top:30px;
  }
  .dress-separator{margin:50px auto}
  .sneakers-note{margin-top:55px}
}


/* Dress Code — aproxima Convidados da ilustração dos padrinhos */
.dress-party-art{
  margin-bottom:-120px!important;
}
.dress-separator{
  position:relative;
  z-index:2;
  margin-top:25px!important;
  margin-bottom:42px!important;
}

@media(max-width:700px){
  .dress-party-art{
    margin-bottom:-185px!important;
  }
  .dress-separator{
    margin-top:12px!important;
    margin-bottom:38px!important;
  }
}


/* Chamada para a nova Lista de Presentes */
.gifts-invite{
  text-align:center;
  background:#fbf8f1;
}
.gifts-invite-inner{max-width:700px;margin:0 auto}
.gifts-invite h2{
  font-family:"Allura",cursive;
  font-size:58px;
  line-height:1.05;
  font-weight:400;
  margin:12px 0 28px;
}
.gifts-invite p:not(.eyebrow){
  font-size:19px;
  line-height:1.7;
  max-width:600px;
  margin:0 auto 35px;
}
.gifts-main-btn{
  display:inline-block;
  text-decoration:none;
}

/* Página de presentes */
.gifts-page{
  margin:0;
  background:#fbf8f1;
  color:#4e4a42;
  font-family:"Cormorant Garamond",serif;
}
.gifts-hero{
  max-width:780px;
  margin:0 auto;
  padding:80px 30px 65px;
  text-align:center;
}
.gifts-back{
  display:inline-block;
  margin-bottom:70px;
  color:#7d836d;
  text-decoration:none;
  font:500 11px/1 "Montserrat",sans-serif;
  letter-spacing:.22em;
}
.gifts-hero h1{
  font-family:"Allura",cursive;
  font-size:72px;
  line-height:.95;
  font-weight:400;
  margin:20px 0 38px;
}
.gifts-intro{
  max-width:650px;
  margin:0 auto 18px;
  font-size:20px;
  line-height:1.7;
}
.gift-categories{
  max-width:1050px;
  margin:0 auto;
  padding:20px 30px 80px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.gift-category{
  border:1px solid #d5dee7;
  background:rgba(255,253,248,.72);
  padding:42px 35px;
  text-align:center;
}
.gift-category:last-child{
  grid-column:1/-1;
  max-width:500px;
  width:100%;
  box-sizing:border-box;
  justify-self:center;
}
.gift-icon{font-size:34px;margin-bottom:15px}
.gift-category h2{
  font-family:"Allura",cursive;
  font-size:43px;
  font-weight:400;
  margin:0 0 14px;
}
.gift-category p{
  font-size:17px;
  line-height:1.6;
  min-height:82px;
}
.gift-open{
  border:0;
  background:#7d836d;
  color:#fffdf8;
  padding:15px 23px;
  font:500 11px/1 "Montserrat",sans-serif;
  letter-spacing:.17em;
  cursor:pointer;
}
.gift-preview{
  max-width:820px;
  margin:0 auto;
  padding:80px 30px 100px;
  text-align:center;
  border-top:1px solid #d5dee7;
}
.gift-preview h2{
  font-family:"Allura",cursive;
  font-size:56px;
  font-weight:400;
  margin:15px 0 38px;
}
.gift-items{
  display:grid;
  gap:12px;
  text-align:left;
}
.gift-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-bottom:1px solid #d5dee7;
  padding:18px 5px;
}
.gift-item h3{
  font-size:20px;
  font-weight:500;
  margin:0 0 4px;
}
.gift-item p{margin:0;font-size:17px;font-style:italic}
.gift-item button{
  flex:0 0 auto;
  border:1px solid #d5dee7;
  background:transparent;
  padding:10px 14px;
  color:#7d836d;
  font:500 10px/1 "Montserrat",sans-serif;
  letter-spacing:.12em;
}
.gift-soon{
  margin:45px auto 0;
  max-width:580px;
  font-size:17px;
  line-height:1.6;
  font-style:italic;
}
.gifts-footer{
  padding:55px 25px 70px;
  text-align:center;
  border-top:1px solid #d5dee7;
}
.gifts-footer p{
  font-family:"Allura",cursive;
  font-size:43px;
  margin:0 0 10px;
}
.gifts-footer span{font-size:16px;font-style:italic}

@media(max-width:700px){
  .gifts-invite h2{font-size:48px}
  .gifts-hero{padding:45px 24px 50px}
  .gifts-back{margin-bottom:50px}
  .gifts-hero h1{font-size:56px}
  .gifts-intro{font-size:18px}
  .gift-categories{
    grid-template-columns:1fr;
    padding:10px 20px 65px;
  }
  .gift-category:last-child{grid-column:auto}
  .gift-category{padding:34px 24px}
  .gift-category p{min-height:0}
  .gift-preview{padding:65px 22px 80px}
  .gift-preview h2{font-size:47px}
  .gift-item{align-items:flex-start}
}

/* Sublistas da Lista de Presentes */
.gift-link{
  display:inline-block;
  text-decoration:none;
}
.gift-list-page{
  max-width:820px;
  margin:0 auto;
  padding:70px 30px 100px;
  text-align:center;
}
.gift-list-page h1{
  font-family:"Allura",cursive;
  font-size:68px;
  line-height:1;
  font-weight:400;
  margin:22px 0 24px;
}
.gift-list-intro{
  max-width:570px;
  margin:0 auto 52px;
  font-size:19px;
  line-height:1.7;
}
.gift-items-page{
  max-width:720px;
  margin:0 auto;
}
.gift-item-page{
  background:rgba(255,253,248,.55);
  padding:22px 14px;
}
@media(max-width:700px){
  .gift-list-page{padding:45px 22px 80px}
  .gift-list-page h1{font-size:52px}
  .gift-list-intro{font-size:18px;margin-bottom:38px}
}


/* RESPONSIVO UNIFICADO — desktop com a mesma linguagem visual do celular */
html{scroll-behavior:smooth}
body{overflow-x:hidden}

.section > .wrap,
.story-paper,
.dress-code-content,
.gifts-invite-inner{
  width:min(calc(100% - 48px),880px);
  box-sizing:border-box;
}

.section{padding-top:88px;padding-bottom:88px}
.section .eyebrow{margin-top:0}

/* Capa vertical e centralizada em qualquer tela */
.hero{
  min-height:980px;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
}
.hero .paper{
  width:min(calc(100% - 48px),760px);
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.hero h1{line-height:.92}
.hero-art{
  width:min(100%,920px);
  margin-left:auto;
  margin-right:auto;
  overflow:hidden;
}
.hero-art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}

/* Nossa História como uma página de convite */
.story-paper{
  max-width:900px!important;
  margin:0 auto;
  padding:105px 90px 155px;
  min-height:0!important;
}
.story-real-content{max-width:650px}
.story-real-content .story-text p{
  max-width:650px;
  margin-left:auto;
  margin-right:auto;
}

/* Artes e transições centralizadas */
.cars-transition{padding-top:0;padding-bottom:82px}
.cars-transition-inner{max-width:820px}
.cars-watercolor{max-width:650px}
.cars-caption{margin-top:4px}

/* Dress code mantém leitura vertical no desktop */
.dress-code-content{max-width:820px!important}
.dress-block{max-width:650px}
.dress-party-art{
  width:min(100%,580px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.guests{max-width:620px}
.sneakers-note{max-width:580px}

/* Lista de presentes */
.gifts-hero{max-width:760px}
.gift-categories{
  max-width:900px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.gift-category{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.gift-category p{max-width:340px}
.gift-category .gift-open{margin-top:auto}

@media (min-width:701px) and (max-width:1050px){
  .hero{min-height:920px}
  .story-paper{padding-left:70px;padding-right:70px}
  .hs-slainte{left:-18px}
  .hs-rock{right:-5px}
  .hs-vans{left:-15px}
  .gift-categories{padding-left:40px;padding-right:40px}
}

@media (min-width:1051px){
  .topbar{max-width:1000px;margin-left:auto;margin-right:auto}
  .hero .paper{max-width:760px}
  .countdown{max-width:560px;margin-left:auto!important;margin-right:auto!important}
}

/* Celular preserva a composição já aprovada */
@media(max-width:700px){
  .section{padding-top:70px;padding-bottom:70px}
  .section > .wrap,
  .story-paper,
  .dress-code-content,
  .gifts-invite-inner{width:100%}
  .story-paper{padding:110px 32px 190px!important}
  .cars-transition{padding-top:0;padding-bottom:70px}
  .gift-categories{grid-template-columns:1fr}
}


/* CAPA — brasão centralizado acima dos textos */
.topbar{
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  padding:24px 0 0!important;
  z-index:5;
}
.crest-link{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  transform:none!important;
  display:block!important;
  margin:0 auto!important;
}
.hero .paper{
  position:relative!important;
  padding-top:28px!important;
}
.hero .paper .eyebrow{
  margin-top:0!important;
}

/* Navegação continua no topo, sem interferir no brasão */
.nav{
  position:absolute!important;
  top:0!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:max-content!important;
  z-index:6;
}

/* Desktop */
@media(min-width:701px){
  .topbar{
    padding-top:34px!important;
  }
  .crest-link{
    width:230px!important;
    height:230px!important;
    max-width:230px!important;
    max-height:230px!important;
  }
  .crest-link img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
  }
  .hero .paper{
    padding-top:22px!important;
  }
  .hero{
    min-height:1040px!important;
  }
}

/* Celular: mantém o brasão centralizado e a composição já aprovada */
@media(max-width:700px){
  .topbar{
    padding-top:18px!important;
  }
  .crest-link{
    width:50vw!important;
    height:50vw!important;
    max-width:220px!important;
    max-height:220px!important;
  }
  .hero .paper{
    padding-top:34px!important;
  }
}


/* =====================================================
   MENU LATERAL — somente computador
   ===================================================== */
.desktop-sidebar{display:none}

@media(min-width:1001px){
  :root{--desktop-sidebar-width:300px}

  body{
    padding-left:var(--desktop-sidebar-width);
    box-sizing:border-box;
  }

  .desktop-sidebar{
    display:flex;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    width:var(--desktop-sidebar-width);
    box-sizing:border-box;
    z-index:1000;
    background:#f8f4ec;
    border-right:1px solid rgba(111,143,171,.20);
    flex-direction:column;
    align-items:center;
    padding:38px 32px 30px;
  }

  .sidebar-crest{
    display:block;
    width:190px;
    height:190px;
    flex:0 0 auto;
    margin:0 auto 34px;
  }
  .sidebar-crest img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
  }

  .sidebar-nav{
    width:100%;
    display:flex;
    flex-direction:column;
    border-top:1px solid rgba(111,143,171,.25);
  }
  .sidebar-nav a{
    display:flex;
    align-items:center;
    gap:15px;
    width:100%;
    box-sizing:border-box;
    padding:17px 5px;
    border-bottom:1px solid rgba(111,143,171,.20);
    color:#455a70;
    text-decoration:none;
    font:500 11px/1.25 "Montserrat",sans-serif;
    letter-spacing:.14em;
    text-transform:uppercase;
    transition:background .2s ease, padding-left .2s ease;
  }
  .sidebar-nav a span{
    min-width:24px;
    color:#9b927f;
    font-size:9px;
    letter-spacing:.08em;
  }
  .sidebar-nav a:hover{
    background:rgba(111,143,171,.09);
    padding-left:12px;
  }

  .sidebar-date{
    margin-top:auto;
    padding-top:25px;
    color:#7d836d;
    font:500 11px/1 "Montserrat",sans-serif;
    letter-spacing:.23em;
  }

  /* Remove logo e menu duplicados da parte superior no desktop */
  .hero .topbar{
    display:none!important;
  }
  .hero .nav{
    display:none!important;
  }

  /* A capa ocupa a área restante e mantém o conteúdo centralizado */
  .hero{
    min-height:100vh!important;
    width:100%;
    justify-content:center;
  }
  .hero .paper{
    padding-top:50px!important;
    padding-bottom:60px!important;
  }

  section[id]{
    scroll-margin-top:20px;
  }
}

/* Em telas menores volta exatamente para o layout móvel/tablet */
@media(max-width:1000px){
  body{padding-left:0!important}
  .desktop-sidebar{display:none!important}
}


/* =====================================================
   DESKTOP — cabeçalho limpo
   Mantém apenas a sidebar esquerda com brasão + navegação
   ===================================================== */
@media(min-width:1001px){
  /* Cabeçalho original da versão mobile/tablet */
  .hero > .topbar,
  .hero .topbar,
  header.topbar,
  .topbar{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
  }

  /* Qualquer navegação horizontal antiga do hero */
  .hero > .nav,
  .hero .nav,
  .topbar .nav,
  nav.nav{
    display:none!important;
    visibility:hidden!important;
  }

  /* O único brasão visível no desktop é o da sidebar */
  .hero .crest-link,
  .topbar .crest-link{
    display:none!important;
  }

  .desktop-sidebar,
  .desktop-sidebar .sidebar-crest,
  .desktop-sidebar .sidebar-nav{
    visibility:visible!important;
  }

  /* Reequilibra a capa após remover o cabeçalho superior */
  .hero{
    min-height:100vh!important;
    padding-top:0!important;
  }

  .hero .paper{
    margin-top:0!important;
    padding-top:55px!important;
  }
}


/* Remove a arte traseira da Silverado que antecedia "O grande dia" */
.save-date-truck,
.silverado-save-date,
.truck-save-date{
  display:none!important;
}


/* ==========================================================
   RSVP POR FAMÍLIA / GRUPO
   ========================================================== */
.rsvp-family{
  text-align:center;
}
.rsvp-shell{
  width:min(calc(100% - 40px),760px);
  margin:0 auto;
}
.rsvp-lead{
  max-width:620px;
  margin:0 auto 34px;
  font-size:19px;
  line-height:1.65;
}
.rsvp-search{
  max-width:590px;
  margin:0 auto;
  text-align:left;
}
.rsvp-search label{
  display:block;
  margin:0 0 9px;
  font:500 11px/1.2 "Montserrat",sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#526579;
}
.rsvp-search-row{
  display:flex;
  gap:10px;
}
.rsvp-search-row input{
  flex:1;
  min-width:0;
  box-sizing:border-box;
  border:1px solid #d5dee7;
  background:#fffdf8;
  color:#4e4a42;
  padding:16px 17px;
  font:400 17px/1.2 "Cormorant Garamond",serif;
  outline:none;
}
.rsvp-search-row input:focus{
  border-color:#7d836d;
  box-shadow:0 0 0 2px rgba(111,143,171,.12);
}
.rsvp-search-row .primary{
  border:0;
  cursor:pointer;
}
.rsvp-status{
  min-height:25px;
  max-width:590px;
  margin:16px auto 0;
  font-size:16px;
  font-style:italic;
}
.rsvp-family-result{
  max-width:660px;
  margin:35px auto 0;
}
.rsvp-card{
  border:1px solid #d5dee7;
  background:rgba(255,253,248,.82);
  padding:36px 32px;
  text-align:left;
}
.rsvp-card-head{
  text-align:center;
  margin-bottom:27px;
}
.rsvp-card-head .eyebrow{
  margin-bottom:8px;
}
.rsvp-card-head h3{
  font-family:"Allura",cursive;
  font-size:45px;
  font-weight:400;
  margin:0;
}
.rsvp-card-head p{
  margin:10px auto 0;
  max-width:500px;
  font-size:16px;
  line-height:1.5;
}
.rsvp-person{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  padding:18px 0;
  border-top:1px solid rgba(213,222,231,.86);
}
.rsvp-person-name{
  font-size:19px;
  line-height:1.3;
}
.rsvp-choice{
  display:flex;
  gap:8px;
}
.rsvp-choice button{
  border:1px solid #c8d5df;
  background:#fffdf8;
  color:#526579;
  min-width:74px;
  padding:11px 12px;
  cursor:pointer;
  font:500 10px/1 "Montserrat",sans-serif;
  letter-spacing:.08em;
  transition:.18s ease;
}
.rsvp-choice button:hover{
  border-color:#7d836d;
}
.rsvp-choice button.selected-yes{
  background:#7d836d;
  border-color:#7d836d;
  color:#fff;
}
.rsvp-choice button.selected-no{
  background:#7b6862;
  border-color:#7b6862;
  color:#fff;
}
.rsvp-submit{
  display:block;
  width:100%;
  margin-top:28px;
  border:0;
  cursor:pointer;
}
.rsvp-submit:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.rsvp-success{
  text-align:center;
  padding:42px 25px;
  border:1px solid #d5dee7;
  background:#fffdf8;
}
.rsvp-success h3{
  font-family:"Allura",cursive;
  font-size:46px;
  font-weight:400;
  margin:0 0 14px;
}
.rsvp-success p{
  font-size:18px;
  line-height:1.55;
}
.rsvp-error{
  color:#7b4f49;
}

@media(max-width:700px){
  .rsvp-shell{
    width:min(calc(100% - 34px),620px);
  }
  .rsvp-lead{
    font-size:18px;
  }
  .rsvp-search-row{
    flex-direction:column;
  }
  .rsvp-search-row .primary{
    width:100%;
  }
  .rsvp-card{
    padding:29px 20px;
  }
  .rsvp-person{
    grid-template-columns:1fr;
    gap:12px;
  }
  .rsvp-choice{
    width:100%;
  }
  .rsvp-choice button{
    flex:1;
    min-height:44px;
  }
}

/* RSVP — campo de sobrenome com botão abaixo */
.rsvp-search-row{
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
}
.rsvp-search-row input{
  width:100%!important;
}
.rsvp-search-row .primary{
  width:100%!important;
  min-height:48px;
}
/* ==========================================================
   CARROSSEL POLAROIDE — Henrique & Lari
   ========================================================== */

.polaroid-memories{
  width:min(calc(100% - 40px),980px);
  margin:68px auto 8px;
  text-align:center;
  position:relative;
}

.polaroid-heading{
  margin:0 auto 34px;
}

.polaroid-heading .eyebrow{
  color:#6f8fab;
  margin-bottom:12px;
}

.polaroid-heading h3{
  margin:0;
  color:#365b80;
  font:400 50px/1.05 "Allura",cursive;
}

.polaroid-heading p{
  margin:12px auto 0;
  color:#63768a;
  font-size:17px;
  font-style:italic;
}

.polaroid-carousel{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  gap:10px;
  align-items:center;
}

.polaroid-viewport{
  overflow:hidden;
  padding:22px 8px 28px;
}

.polaroid-track{
  display:flex;
  gap:24px;
  transition:transform .48s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}

.polaroid-card{
  flex:0 0 calc((100% - 48px)/3);
  box-sizing:border-box;
  margin:0;
  padding:12px 12px 27px;
  background:#fffefa;
  border:1px solid rgba(54,91,128,.13);
  box-shadow:0 10px 24px rgba(47,57,67,.10);
  transform:rotate(-1.5deg);
  transform-origin:center;
  transition:transform .25s ease, box-shadow .25s ease;
}

.polaroid-card:nth-child(even){
  transform:rotate(1.3deg);
}

.polaroid-card:nth-child(3n){
  transform:rotate(-.4deg);
}

.polaroid-card:hover{
  transform:rotate(0) translateY(-5px);
  box-shadow:0 16px 30px rgba(47,57,67,.14);
}

.polaroid-card img{
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  filter:grayscale(100%);
}

.polaroid-card figcaption{
  margin-top:17px;
  color:#365b80;
  font:400 27px/1 "Allura",cursive;
}

.polaroid-arrow{
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid #bfcdd9;
  background:#fbf8f1;
  color:#365b80;
  cursor:pointer;
  display:grid;
  place-items:center;
  font:300 31px/1 Georgia,serif;
  padding:0 0 4px;
  transition:.2s ease;
  z-index:2;
}

.polaroid-arrow:hover{
  background:#6f8fab;
  color:#fff;
  border-color:#6f8fab;
}

.polaroid-arrow:disabled{
  opacity:.3;
  cursor:default;
  background:#fbf8f1;
  color:#365b80;
}

.polaroid-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  min-height:16px;
  margin-top:4px;
}

.polaroid-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  border:0;
  padding:0;
  cursor:pointer;
  background:#c8d5df;
}

.polaroid-dot.active{
  background:#365b80;
  transform:scale(1.25);
}

@media(max-width:800px){
  .polaroid-card{
    flex-basis:calc((100% - 24px)/2);
  }
}

@media(max-width:600px){
  .polaroid-memories{
    width:min(calc(100% - 22px),430px);
    margin-top:52px;
  }

  .polaroid-heading h3{
    font-size:42px;
  }

  .polaroid-heading p{
    max-width:300px;
    font-size:16px;
  }

  .polaroid-carousel{
    grid-template-columns:34px minmax(0,1fr) 34px;
    gap:4px;
  }

  .polaroid-viewport{
    padding:18px 7px 25px;
  }

  .polaroid-track{
    gap:18px;
  }

  .polaroid-card{
    flex-basis:100%;
    padding:10px 10px 25px;
  }

  .polaroid-card figcaption{
    font-size:29px;
  }

  .polaroid-arrow{
    width:32px;
    height:32px;
    font-size:25px;
  }
}
