:root{
  --bg:#f7f1ec;
  --paper:#fcf8f4;
  --text:#4b3030;
  --accent:#9b5e62;
  --dark:#69363b;
  --line:#dfd1ca;
  --title:"Cormorant Garamond",serif;
  --body:"Montserrat",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-weight:300;overflow-x:hidden;max-width:100%}
a{color:inherit;text-decoration:none}
body.menu-open{overflow:hidden}

.site-header{
  height:72px;position:sticky;top:0;z-index:50;background:rgba(252,248,244,.96);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
  display:flex;align-items:center;padding:0 5vw;
}
.brand{font-family:var(--title);font-size:30px;color:var(--dark);margin-right:auto;line-height:1}
.nav{display:flex;gap:26px;align-items:center}
.nav a{font-size:10px;text-transform:uppercase;letter-spacing:.15em;white-space:nowrap}
.menu-toggle{display:none;background:none;border:0;padding:10px;margin-left:auto}
.menu-toggle span{display:block;width:26px;height:1px;background:var(--dark);margin:5px 0;transition:.2s}

.hero{height:calc(100vh - 72px);min-height:640px;position:relative;overflow:hidden;background:#cdbdb5}
.hero-image{position:absolute;inset:0;background:url("assets/banner.jpg") center/cover no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,10,10,.03),rgba(20,10,10,.16))}
.down{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);
  width:42px;height:42px;border:1px solid rgba(255,255,255,.92);color:#fff;
  border-radius:50%;display:grid;place-items:center;font-size:17px
}

.section{max-width:1160px;margin:auto;padding:84px 34px}
.kicker{text-transform:uppercase;letter-spacing:.3em;font-size:10px;color:var(--accent)}
h2,blockquote,.monogram{font-family:var(--title);font-weight:400}
h2{font-size:52px;margin:8px 0 28px}

.quote-wrap{padding:64px 24px 72px}
.quote{padding:0;text-align:center;max-width:860px}
.quote blockquote{font-size:42px;line-height:1.32;margin:18px 0 0;font-style:italic}
.count-card{
  max-width:760px;margin:30px auto 0;padding:0;text-align:center;
  background:transparent;border:0;border-radius:0;box-shadow:none
}
.counter{margin-top:28px;display:grid;grid-template-columns:repeat(4,1fr)}
.counter div{border-right:1px solid var(--line);padding:0 18px}
.counter div:last-child{border:0}
.counter b{display:block;font:400 50px var(--title);color:var(--accent);line-height:1}
.counter small{display:block;margin-top:14px;text-transform:uppercase;letter-spacing:.16em;font-size:9px}

.event{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}
.photo{min-height:520px;background-color:#d8cbc4;background-size:cover;background-position:center}
.venue{background-image:url("assets/local.jpg")}
.event-copy>p{display:grid;grid-template-columns:90px 1fr;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}
.event-copy p span{text-transform:uppercase;letter-spacing:.12em;color:#927a75}
.event-copy strong{font-weight:500}
.event-copy>div{line-height:1.7;margin:18px 0 28px}

.button{
  display:inline-flex;min-height:50px;padding:0 30px;align-items:center;justify-content:center;
  background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.16em;font-size:10px;
  border:1px solid var(--accent);transition:background .2s ease,border-color .2s ease,transform .15s ease,box-shadow .2s ease;
  cursor:pointer
}
.button:hover,
.button:focus-visible{
  background:var(--dark);border-color:var(--dark);
  box-shadow:0 10px 24px rgba(105,54,59,.18);
  outline:none
}
.button:active,
.button.is-selected{
  background:var(--dark);border-color:var(--dark);
  transform:translateY(1px);
  box-shadow:0 6px 16px rgba(105,54,59,.16)
}

.gallery-section{padding:76px 0 90px;background:rgba(155,94,98,.04)}
.gallery-head{text-align:center;padding-top:0;padding-bottom:30px}
.gallery-head h2{margin-bottom:0}
.carousel{
  max-width:1120px;margin:auto;position:relative;
  padding:0 24px
}
.carousel-viewport{overflow:hidden;width:100%}
.carousel-track{display:flex;transition:transform .4s ease}
.carousel-slide{flex:0 0 33.3333%;padding:0 10px}
.carousel-photo{
  width:100%;
  aspect-ratio:1080/1350;
  background:#d8cbc4 center/cover no-repeat;
  border-radius:0;
  border:1px solid rgba(105,54,59,.08)
}
.carousel-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);
  background:rgba(252,248,244,.94);
  color:var(--dark);font-size:28px;line-height:1;
  cursor:pointer;z-index:5;
  box-shadow:0 4px 14px rgba(70,40,40,.10)
}
.carousel-btn.prev{left:6px}
.carousel-btn.next{right:6px}
.dots{display:flex;justify-content:center;gap:8px;margin-top:24px}
.dots button{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:#d8c8c2;cursor:pointer}
.dots button.active{background:var(--accent)}

.dress{text-align:center;max-width:760px}
.dress h2{margin-bottom:12px}
.dress h3{text-transform:uppercase;letter-spacing:.15em;font-size:14px}
.dress p{line-height:1.8}

.gifts,.rsvp{
  border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:40px
}
.gifts h2,.rsvp h2{margin-bottom:10px}
.rsvp{border-bottom:1px solid var(--line)}

footer{text-align:center;padding:22px 20px 24px;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line)}
.monogram{font-size:46px;color:var(--dark)}
footer strong{font-size:12px;text-transform:uppercase;letter-spacing:.15em}
footer span{font-size:10px;letter-spacing:.15em}

@media(max-width:900px){
  .site-header{height:64px;padding:0 22px}
  .menu-toggle{display:block}
  .nav{
    position:fixed;top:64px;left:0;right:0;height:calc(100vh - 64px);
    background:var(--paper);display:flex;flex-direction:column;justify-content:center;align-items:center;
    gap:30px;transform:translateY(-110%);opacity:0;pointer-events:none;transition:.28s ease;
    z-index:49
  }
  .nav.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav a{font-size:12px}
  .hero{height:calc(100svh - 64px);min-height:560px}
  .section{padding:68px 22px}
  .quote-wrap{padding:52px 20px 58px}
  .quote blockquote{font-size:32px}
  .count-card{margin-top:24px;padding:0}
  .counter{margin-top:24px}
  .counter div{padding:0 8px}
  .counter b{font-size:36px}
  .counter small{font-size:7px;letter-spacing:.12em;margin-top:10px}
  .event{grid-template-columns:1fr;gap:30px}
  .photo{min-height:390px}
  h2{font-size:42px}
  .carousel{
    width:100%;
    max-width:none;
    padding:0 14px;
  }
  .carousel-viewport{width:100%}
  .carousel-slide{
    flex:0 0 100%;
    padding:0;
  }
  .carousel-photo{
    width:100%;
    aspect-ratio:1080/1350;
  }
  .carousel-btn{
    width:40px;height:40px;font-size:25px;
  }
  .carousel-btn.prev{left:22px}
  .carousel-btn.next{right:22px}
  .gifts,.rsvp{
    flex-direction:column;
    align-items:center;
    text-align:center
  }
  .gifts>div,.rsvp>div{
    width:100%;
    text-align:center
  }
  .gifts .button,.rsvp .button{width:100%}
}

@media(max-width:480px){
  .hero{min-height:520px}
  .quote blockquote{font-size:30px}
  .counter b{font-size:32px}
  .carousel-slide{flex-basis:100%}
  .carousel-photo{
    width:100%;
    aspect-ratio:1080/1350;
  }
}

@media(max-width:900px){
  .gallery-section{padding-left:0;padding-right:0}
  .gallery-head{padding-left:22px;padding-right:22px}
  .dots{margin-top:18px}
}

footer strong,
footer span{
  text-align:center;
}

@media(max-width:900px){
  footer{padding:20px 18px 22px}
}

/* Refinamentos O Grande Dia, Dress Code e Presentes */
.line-icon{width:38px;height:38px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.event{grid-template-columns:.95fr 1.05fr;gap:58px}
.event-copy{text-align:center}
.section-heading{display:flex;align-items:center;gap:18px;justify-content:center;margin-bottom:32px}
.section-heading span{height:1px;background:var(--line);width:72px}
.section-heading h2{font-size:38px;text-transform:uppercase;letter-spacing:.16em;font-family:var(--body);font-weight:400;margin:0}
.event-details{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;margin:0 auto 26px}
.event-item{padding:4px 18px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:142px;border-right:1px solid var(--line)}
.event-item:last-child{border-right:0}
.event-item .line-icon{margin-bottom:14px}
.event-item strong{text-transform:uppercase;letter-spacing:.08em;font-size:12px;line-height:1.45;font-weight:500}
.event-item small{text-transform:uppercase;letter-spacing:.08em;font-size:8px;line-height:1.55;margin-top:5px;color:#927a75}
.map-button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--accent);border-radius:24px;padding:10px 22px;text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:var(--accent);transition:.2s ease}
.map-button:hover{background:var(--accent);color:#fff}

.dress{max-width:1160px;text-align:center}
.dress>h2{margin-bottom:34px}
.dress-guidance{display:grid;grid-template-columns:1fr 1fr;max-width:900px;margin:0 auto 48px}
.dress-guidance-item{padding:0 55px;display:flex;flex-direction:column;align-items:center}
.dress-guidance-item+ .dress-guidance-item{border-left:1px solid var(--line)}
.dress-main-icon{width:42px;height:42px;margin-bottom:14px}
.dress h3{text-transform:uppercase;letter-spacing:.16em;font-size:12px;margin:0 0 14px;font-weight:500}
.dress-guidance p{line-height:1.75;margin:0;font-size:13px;max-width:390px}
.dress-tip{border-top:1px solid var(--line);padding-top:30px}
.dress-tip>.kicker{display:block;margin-bottom:24px}
.tip-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:900px;margin:auto}
.tip-item{display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 18px}
.tip-item .line-icon{width:48px;height:48px}
.tip-item span{text-transform:uppercase;letter-spacing:.15em;font-size:9px;line-height:1.5}
.gift-copy{display:flex;align-items:center;gap:26px}
.gift-icon{width:54px;height:54px;flex:0 0 auto}
.gift-copy h2{margin-top:0}

@media(max-width:900px){
  .event{grid-template-columns:1fr;gap:34px}
  .event-copy{order:1}.event .venue{order:2}
  .section-heading h2{font-size:27px}.section-heading span{width:38px}
  .event-details{grid-template-columns:repeat(3,1fr)}
  .event-item{padding:4px 8px;min-height:150px}
  .event-item strong{font-size:10px}.event-item small{font-size:7px}
  .dress-guidance{grid-template-columns:1fr;gap:30px;margin-bottom:40px}
  .dress-guidance-item{padding:0 8px}
  .dress-guidance-item+ .dress-guidance-item{border-left:0;border-top:1px solid var(--line);padding-top:30px}
  .tip-grid{grid-template-columns:repeat(2,1fr);gap:30px 8px}
  .gift-copy{flex-direction:column;gap:14px}
}
@media(max-width:480px){
  .event-details{grid-template-columns:1fr;max-width:280px}
  .event-item{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding:18px 6px}
  .event-item:last-child{border-bottom:0}
  .tip-item{padding:0 6px}
  .tip-item .line-icon{width:42px;height:42px}
  .tip-item span{font-size:8px}
}


/* Ajustes mobile v14 */
@media(max-width:600px){
  .event.section{padding-top:54px;padding-bottom:54px;gap:28px}
  .section-heading{gap:12px;margin-bottom:28px}
  .section-heading h2{font-size:23px;letter-spacing:.12em;white-space:nowrap}
  .section-heading span{width:28px}
  .event-details{grid-template-columns:repeat(3,1fr);max-width:100%;margin-bottom:22px}
  .event-item{border-bottom:0;border-right:1px solid var(--line);min-height:132px;padding:2px 7px}
  .event-item:last-child{border-right:0}
  .event-item .line-icon{width:31px;height:31px;margin-bottom:11px}
  .event-item strong{font-size:8px;line-height:1.45;letter-spacing:.06em}
  .event-item small{font-size:6px;line-height:1.45;letter-spacing:.05em;margin-top:4px}
  .map-button{padding:9px 18px;font-size:8px}

  .dress.section{padding-top:54px;padding-bottom:54px}
  .dress>h2{font-size:40px;margin-bottom:32px}
  .dress-guidance{gap:24px;margin-bottom:30px}
  .dress-guidance-item{padding:0 12px}
  .dress-guidance-item+ .dress-guidance-item{padding-top:24px}
  .dress-main-icon{width:36px;height:36px;margin-bottom:12px}
  .dress h3{font-size:11px;margin-bottom:12px}
  .dress-guidance p{font-size:12px;line-height:1.65;max-width:330px}
  .dress-tip{padding-top:24px}
  .dress-tip>.kicker{margin-bottom:20px}
  .tip-grid{gap:24px 10px}
  .tip-item{gap:9px;padding:0 4px}
  .tip-item .line-icon{width:38px;height:38px}
  .tip-item span{font-size:7.5px;line-height:1.45}
}


/* Ajustes v15: galeria mais compacta e dress code simplificado */
@media (min-width:901px){
  .carousel{max-width:920px}
}
@media (max-width:900px){
  .carousel{padding:0 42px}
  .carousel-viewport{max-width:430px;margin:0 auto}
  .carousel-btn.prev{left:18px}
  .carousel-btn.next{right:18px}
}
@media (max-width:480px){
  .gallery-section{padding-top:56px;padding-bottom:64px}
  .gallery-head{padding-bottom:22px}
  .carousel{padding:0 52px}
  .carousel-viewport{max-width:340px;margin:0 auto}
  .carousel-btn.prev{left:16px}
  .carousel-btn.next{right:16px}
}

/* Ajustes v16: galeria com fotos maiores, mantendo proporcao 4:5 */
@media (min-width:901px){
  .carousel{max-width:1040px}
}
@media (max-width:900px){
  .carousel{padding:0 28px}
  .carousel-viewport{max-width:500px;margin:0 auto}
  .carousel-btn.prev{left:10px}
  .carousel-btn.next{right:10px}
}
@media (max-width:480px){
  .carousel{padding:0 28px}
  .carousel-viewport{max-width:390px;margin:0 auto}
  .carousel-btn.prev{left:8px}
  .carousel-btn.next{right:8px}
}

/* Ajustes v19: galeria em proporcao 4:5, equivalente a 1080 x 1350 */
.carousel-photo{
  aspect-ratio:1080/1350;
}
@media (max-width:900px){
  .carousel-viewport{max-width:460px;margin:0 auto}
}
@media (max-width:480px){
  .carousel{padding:0 34px}
  .carousel-viewport{max-width:370px;margin:0 auto}
}

/* Ajustes v18: reduz o espaco superior da secao Galeria no mobile */
@media (max-width:900px){
  .gallery-section{padding-top:30px}
  .gallery-head{padding-top:12px;padding-bottom:20px}
}
@media (max-width:480px){
  .gallery-section{padding-top:20px}
  .gallery-head{padding-top:8px;padding-bottom:18px}
}


/* Ajustes v20: padronizacao dos textos e espacamento apos o banner */
.quote-wrap{padding-top:36px}
.dress-guidance p,
.gift-copy p{
  font-family:var(--body);
  font-size:14px;
  font-weight:300;
  line-height:1.75;
  letter-spacing:0;
}
.gift-copy p{margin:0}

@media(max-width:900px){
  .quote-wrap{padding-top:30px}
  .dress-guidance p,
  .gift-copy p{
    font-size:14px;
    line-height:1.7;
  }
}

@media(max-width:480px){
  .quote-wrap{padding-top:24px}
  .dress-guidance p,
  .gift-copy p{
    font-size:14px;
    line-height:1.65;
  }
}

/* Ajustes v21: banner e galeria com proporcoes editoriais inspiradas na referencia */
@media (max-width:900px){
  /* Banner mais fotografico: largura total e proporcao vertical 4:5 */
  .hero{
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:4/5;
  }
  .hero-image{
    background-position:center center;
    background-size:cover;
  }
  .down{bottom:20px}

  /* Galeria: uma foto grande por vez, vertical, com pequena margem lateral */
  .gallery-section{padding-top:24px;padding-bottom:72px}
  .gallery-head{padding-top:6px;padding-bottom:18px}
  .carousel{
    width:100%;
    max-width:none;
    padding:0 22px;
  }
  .carousel-viewport{
    width:100%;
    max-width:none;
    margin:0 auto;
  }
  .carousel-slide{
    flex:0 0 100%;
    padding:0;
  }
  .carousel-photo{
    width:100%;
    aspect-ratio:3/4;
    background-size:cover;
    background-position:center;
  }
  .carousel-btn.prev{left:8px}
  .carousel-btn.next{right:8px}
}

@media (max-width:480px){
  .hero{
    height:auto;
    min-height:0;
    aspect-ratio:4/5;
  }
  .carousel{padding:0 20px}
  .carousel-viewport{max-width:none}
  .carousel-photo{aspect-ratio:3/4}
}

/* Ajustes v22: banner maior e hierarquia tipografica mobile */
@media (max-width:900px){
  .hero{aspect-ratio:3/4;}
  .dress>h2,
  .gifts h2,
  .rsvp h2{font-size:38px;line-height:1.08;}
  .dress-guidance p,
  .gift-copy p{font-size:16px;line-height:1.65;}
}
@media (max-width:480px){
  .hero{aspect-ratio:3/4;}
  .dress>h2,
  .gifts h2,
  .rsvp h2{font-size:36px;line-height:1.1;}
  .dress-guidance p,
  .gift-copy p{font-size:16px;line-height:1.65;}
}


/* Ajustes v23: dados do Grande Dia maiores sem quebra de linha */
.event-item strong{
  font-size:14px;
  white-space:nowrap;
}
@media(max-width:900px){
  .event-item strong{font-size:12px;white-space:nowrap;}
}
@media(max-width:480px){
  .event-details{max-width:340px;}
  .event-item strong{font-size:14px;white-space:nowrap;}
  .event-item small{font-size:8px;}
}

/* Ajustes v24: proporcao tipografica dos dados de O Grande Dia */
#dateEvent,
#venue{
  font-size:16px;
  line-height:1.35;
  letter-spacing:.075em;
}
#time{
  font-size:15px;
  line-height:1.35;
  letter-spacing:.075em;
}
@media(max-width:900px){
  #dateEvent,
  #venue{font-size:15px;}
  #time{font-size:14px;}
}
@media(max-width:480px){
  #dateEvent,
  #venue{font-size:16px;}
  #time{font-size:15px;}
}

/* Ajustes v25: proporcao equilibrada dos dados de O Grande Dia */
#dateEvent,
#venue{
  font-size:15px;
  line-height:1.35;
  letter-spacing:.065em;
  white-space:nowrap;
}
#time{
  font-size:14px;
  line-height:1.35;
  letter-spacing:.065em;
  white-space:nowrap;
}
@media(max-width:900px){
  #dateEvent,
  #venue{font-size:14px;}
  #time{font-size:13px;}
}
@media(max-width:480px){
  .event-details{max-width:100%;}
  #dateEvent,
  #venue{font-size:11px;letter-spacing:.045em;}
  #time{font-size:10.5px;letter-spacing:.045em;}
  .event-item small{font-size:7px;}
}

/* v26: menu mobile editorial e lista de presentes em destaque */
@media(max-width:900px){
  .site-header{z-index:100}
  .menu-toggle{position:relative;z-index:102;width:44px;height:44px;padding:9px}
  .menu-toggle span{width:27px;margin:6px auto;transform-origin:center}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav{
    top:0;height:100svh;padding:112px 34px 42px;
    justify-content:flex-start;align-items:flex-start;gap:0;
    background:rgba(252,248,244,.985);
    transform:translateX(100%);opacity:1;
    transition:transform .38s cubic-bezier(.22,.8,.24,1);
  }
  .nav.open{transform:translateX(0)}
  .nav a{
    width:100%;padding:15px 0;border-bottom:1px solid var(--line);
    font-family:var(--title);font-size:31px;line-height:1.05;
    text-transform:none;letter-spacing:0;color:var(--text);
  }
  .nav a:first-child{border-top:1px solid var(--line)}
  .nav a::after{content:'›';float:right;font-family:var(--body);font-size:19px;color:var(--accent);margin-top:5px}

  .gifts.section{
    margin:0;max-width:none;padding:72px 28px 76px;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    background:rgba(252,248,244,.48);
    flex-direction:column;align-items:center;text-align:center;gap:30px;
  }
  .gift-copy{width:100%;max-width:560px;flex-direction:column;gap:18px}
  .gift-icon{width:48px;height:48px}
  .gift-copy h2{margin:0 0 18px;font-size:36px;line-height:1.08}
  .gift-copy p{max-width:520px;margin:0 auto;font-size:16px;line-height:1.7}
  .gifts .button{
    width:min(100%,520px);min-height:58px;background:transparent;color:var(--accent);
    border:1px solid var(--accent);font-size:10px;letter-spacing:.19em
  }
  .gifts .button:hover,.gifts .button:focus-visible,.gifts .button:active,.gifts .button.is-selected{
    background:var(--accent);color:#fff
  }
}
@media(max-width:480px){
  .nav{padding:104px 28px 34px}
  .nav a{font-size:29px;padding:14px 0}
  .gifts.section{padding:64px 22px 68px}
  .gift-copy h2{font-size:34px}
}

/* v27: menu mobile mais delicado e presentes em formato fotografico */
.gifts.section{
  max-width:1160px;
  display:block;
  padding:84px 34px;
  border:0;
  background:transparent;
}
.gift-photo-card{
  position:relative;
  display:block;
  width:min(100%,760px);
  aspect-ratio:4/5;
  margin:0 auto;
  overflow:hidden;
  background:#cdbdb5 url("assets/presentes.jpg") center/cover no-repeat;
}
.gift-photo-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(28,16,16,.04) 42%,rgba(28,16,16,.55) 100%);
}
.gift-photo-content{
  position:absolute;
  left:8%;right:8%;bottom:8%;
  padding:20px 16px 18px;
  text-align:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.82);
}
.gift-photo-content h2{
  margin:0 0 7px;
  color:#fff;
  font-size:44px;
  line-height:1;
}
.gift-photo-content span{
  display:block;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:9px;
  font-weight:400;
}
@media(max-width:900px){
  .nav a{font-size:20px;line-height:1.15;padding:12px 0;letter-spacing:.01em}
  .nav a::after{font-size:16px;margin-top:2px}
  .gifts.section{padding:54px 22px 62px;background:transparent;border:0}
  .gift-photo-card{width:100%;max-width:620px;aspect-ratio:4/5}
  .gift-photo-content{left:7%;right:7%;bottom:7%;padding:18px 12px 16px}
  .gift-photo-content h2{font-size:36px;margin-bottom:6px}
  .gift-photo-content span{font-size:8px}
}
@media(max-width:480px){
  .site-header{height:68px;padding:0 20px}
  .brand{font-size:28px}
  .nav{padding:92px 26px 30px}
  .nav a{font-size:18px;padding:11px 0}
  .gifts.section{padding:44px 20px 52px}
  .gift-photo-card{aspect-ratio:4/5}
  .gift-photo-content h2{font-size:32px}
}


/* v28: confirmação de presença no mesmo formato editorial da lista de presentes */
.rsvp.section{
  max-width:1160px;
  display:block;
  padding:0 34px 84px;
  border:0;
  background:transparent;
}
.rsvp-photo-card{
  position:relative;
  display:block;
  width:min(100%,760px);
  aspect-ratio:4/5;
  margin:0 auto;
  overflow:hidden;
  background:#cdbdb5 url("assets/presenca.jpg") center/cover no-repeat;
}
.rsvp-photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(28,16,16,.03) 42%,rgba(28,16,16,.55) 100%);
}
.rsvp-photo-content{
  position:absolute;left:8%;right:8%;bottom:8%;
  padding:20px 16px 18px;text-align:center;color:#fff;
  border:1px solid rgba(255,255,255,.82);
}
.rsvp-photo-content h2{margin:0 0 7px;color:#fff;font-size:44px;line-height:1;}
.rsvp-photo-content span{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:9px;font-weight:400;}
@media(max-width:900px){
  .rsvp.section{padding:0 22px 62px;background:transparent;border:0;}
  .rsvp-photo-card{width:100%;max-width:620px;aspect-ratio:4/5;}
  .rsvp-photo-content{left:7%;right:7%;bottom:7%;padding:18px 12px 16px;}
  .rsvp-photo-content h2{font-size:36px;margin-bottom:6px;}
  .rsvp-photo-content span{font-size:8px;}
}
@media(max-width:480px){
  .rsvp.section{padding:0 20px 52px;}
  .rsvp-photo-card{aspect-ratio:4/5;}
  .rsvp-photo-content h2{font-size:32px;}
}


/* v29: cards editoriais lado a lado somente no desktop */
@media(min-width:901px){
  .editorial-actions{
    max-width:1160px;
    margin:0 auto;
    padding:84px 34px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:34px;
    align-items:start;
  }
  .editorial-actions .gifts.section,
  .editorial-actions .rsvp.section{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
  }
  .editorial-actions .gift-photo-card,
  .editorial-actions .rsvp-photo-card{
    width:100%;
    max-width:none;
    margin:0;
    aspect-ratio:4/5;
  }
}
@media(max-width:900px){
  .editorial-actions{display:block;}
}

/* v30: Dress Code editorial com detalhes em modal */
.dress.section{
  max-width:1160px;
  padding:84px 34px;
  text-align:center;
}
.dress-photo-card{
  display:block;
  width:min(100%,760px);
  aspect-ratio:4/5;
  margin:0 auto;
  padding:0;
  border:0;
  cursor:pointer;
  background:#cdbdb5 url("assets/dresscode.png") center/cover no-repeat;
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dress-modal[hidden]{display:none}
.dress-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}
.dress-modal-backdrop{position:absolute;inset:0;background:rgba(47,31,30,.46);backdrop-filter:blur(3px)}
.dress-modal-panel{
  position:relative;z-index:1;width:min(92vw,620px);max-height:88vh;overflow:auto;
  padding:54px 54px 50px;background:var(--paper);color:var(--text);text-align:center;
  border:1px solid var(--line);box-shadow:0 24px 70px rgba(47,31,30,.18)
}
.dress-modal-close{position:absolute;top:18px;right:20px;border:0;background:transparent;color:var(--text);font:300 30px/1 var(--body);cursor:pointer}
.dress-modal-rule{width:44px;height:1px;background:var(--accent);margin:0 auto 24px}
.dress-modal-panel h2{font-size:42px;margin:0 0 36px}
.dress-modal-block h3{text-transform:uppercase;letter-spacing:.22em;font-size:13px;font-weight:500;margin:0 0 16px}
.dress-modal-block p{font-size:16px;line-height:1.75;max-width:470px;margin:0 auto}
.dress-modal-divider{width:44px;height:1px;background:var(--line);margin:30px auto}
.dress-modal-heart{font-size:25px;color:var(--accent);margin-bottom:13px}
body.dress-modal-open{overflow:hidden}
@media(max-width:900px){
  .dress.section{padding:54px 22px 62px}
  .dress-photo-card{width:100%;max-width:620px;aspect-ratio:4/5}
  .dress-modal-panel{padding:48px 28px 40px}
  .dress-modal-panel h2{font-size:36px;margin-bottom:30px}
  .dress-modal-block p{font-size:15px}
}
@media(max-width:480px){
  .dress.section{padding:44px 20px 52px}
  .dress-modal{padding:18px}
  .dress-modal-panel{width:100%;padding:46px 22px 36px}
  .dress-modal-panel h2{font-size:32px}
  .dress-modal-block h3{font-size:11px}
  .dress-modal-block p{font-size:14px;line-height:1.7}
}

.rsvp-modal[hidden]{display:none}
.rsvp-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}
.rsvp-modal-backdrop{position:absolute;inset:0;background:rgba(47,31,30,.46);backdrop-filter:blur(3px)}
.rsvp-modal-panel{
  position:relative;z-index:1;width:min(92vw,440px);max-height:88vh;overflow:auto;
  padding:48px 40px 40px;background:var(--paper);color:var(--text);text-align:center;
  border:1px solid var(--line);box-shadow:0 24px 70px rgba(47,31,30,.18);
  container-type:inline-size;
}
.rsvp-modal-close{position:absolute;top:18px;right:20px;border:0;background:transparent;color:var(--text);font:300 30px/1 var(--body);cursor:pointer}
.rsvp-modal-rule{width:44px;height:1px;background:var(--accent);margin:0 auto 24px}
.rsvp-modal-eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:11px;color:var(--accent);margin:0 0 10px}
.rsvp-modal-panel h2{font-size:32px;margin:0 0 14px}
.rsvp-modal-text{font-size:14px;line-height:1.65;max-width:320px;margin:0 auto 26px;color:var(--text);opacity:.82}
.rsvp-modal-qr-link{display:inline-block;margin-bottom:26px;border:1px solid var(--line);border-radius:6px;padding:14px;background:#fff}
.rsvp-modal-qr{display:block;width:200px;height:200px;max-width:100%}
.rsvp-modal-button{
  display:block;width:100%;box-sizing:border-box;padding:14px 0;background:transparent;
  color:var(--accent);border:1px solid var(--accent);font:400 12px/1 var(--body);
  text-transform:uppercase;letter-spacing:.14em;text-decoration:none;border-radius:2px;
  transition:background-color .2s ease,color .2s ease
}
.rsvp-modal-button:hover{background:var(--accent);color:#fff}
body.rsvp-modal-open{overflow:hidden}
@media(max-width:480px){
  .rsvp-modal{padding:18px}
  .rsvp-modal-panel{width:100%;padding:40px 24px 32px}
  .rsvp-modal-panel h2{font-size:28px}
  .rsvp-modal-qr{width:170px;height:170px}
}

/* v31: três cards editoriais alinhados no desktop */
@media(min-width:901px){
  .editorial-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    align-items:start;
  }
  .editorial-actions .dress.section,
  .editorial-actions .gifts.section,
  .editorial-actions .rsvp.section{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .gift-photo-card,
  .editorial-actions .rsvp-photo-card{
    width:100%;
    max-width:none;
    margin:0;
    aspect-ratio:4/5;
  }
  .editorial-actions .dress-photo-card{
    background-size:cover;
    background-position:center center;
  }
}

/* v32: preserva integralmente a caixa de texto do Dress Code */
.dress-photo-card,
.editorial-actions .dress-photo-card{
  background-position:center bottom;
}

/* v33: padronização completa dos três cards editoriais */
.editorial-actions{
  max-width:1160px;
  margin:0 auto;
}
.dress-photo-card,
.gift-photo-card,
.rsvp-photo-card{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
}
.dress-photo-card{
  background-image:url("assets/dresscode.png");
  background-size:cover;
  background-position:center center;
}
.dress-photo-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(28,16,16,.03) 42%,rgba(28,16,16,.55) 100%);
}
.dress-photo-content,
.gift-photo-content,
.rsvp-photo-content{
  position:absolute;
  left:7%;
  right:7%;
  bottom:7%;
  height:92px;
  box-sizing:border-box;
  padding:16px 10px 14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.82);
}
.dress-photo-content .card-title,
.gift-photo-content h2,
.rsvp-photo-content h2{
  display:block;
  margin:0 0 7px;
  color:#fff;
  font-family:var(--display);
  font-size:30px;
  font-weight:400;
  line-height:1.05;
  text-transform:none;
  letter-spacing:0;
}
.dress-photo-content .card-action,
.gift-photo-content span,
.rsvp-photo-content span{
  display:block;
  margin:0;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-family:var(--body);
  font-size:8px;
  line-height:1.3;
  font-weight:400;
}
@media(min-width:901px){
  .editorial-actions{
    padding:84px 34px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    align-items:start;
  }
  .editorial-actions .dress.section,
  .editorial-actions .gifts.section,
  .editorial-actions .rsvp.section{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .gift-photo-card,
  .editorial-actions .rsvp-photo-card{
    width:100%;
    max-width:none;
    margin:0;
    aspect-ratio:4/5;
  }
}
@media(max-width:900px){
  .editorial-actions{
    display:flex;
    flex-direction:column;
    gap:46px;
    padding:44px 20px 52px;
  }
  .editorial-actions .dress.section,
  .editorial-actions .gifts.section,
  .editorial-actions .rsvp.section{
    width:100%;
    max-width:620px;
    margin:0 auto;
    padding:0;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .gift-photo-card,
  .editorial-actions .rsvp-photo-card{
    width:100%;
    max-width:none;
    margin:0;
    aspect-ratio:4/5;
  }
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{
    left:7%;right:7%;bottom:7%;height:88px;padding:14px 9px 12px;
  }
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:28px;margin-bottom:6px}
}
@media(max-width:480px){
  .editorial-actions{gap:38px;padding:44px 20px 52px}
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{height:82px}
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:25px}
  .dress-photo-content .card-action,
  .gift-photo-content span,
  .rsvp-photo-content span{font-size:7px}
}

/* v34: caixas editoriais conforme referencias mobile/desktop */
.dress-photo-content,
.gift-photo-content,
.rsvp-photo-content{
  left:6%;
  right:6%;
  bottom:4.5%;
  width:auto;
  height:11.5%;
  min-height:0;
  padding:8px 12px;
  transition:background-color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.dress-photo-card:hover .dress-photo-content,
.gift-photo-card:hover .gift-photo-content,
.rsvp-photo-card:hover .rsvp-photo-content,
.dress-photo-card:focus-visible .dress-photo-content,
.gift-photo-card:focus-visible .gift-photo-content,
.rsvp-photo-card:focus-visible .rsvp-photo-content,
.dress-photo-card:active .dress-photo-content,
.gift-photo-card:active .gift-photo-content,
.rsvp-photo-card:active .rsvp-photo-content{
  background:rgba(139,82,86,.72);
  border-color:#fff;
  box-shadow:0 5px 18px rgba(45,28,28,.16);
}
@media(min-width:901px){
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{
    left:6%;right:6%;bottom:4.5%;height:11.5%;padding:7px 10px;
  }
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:clamp(20px,1.7vw,27px);margin-bottom:5px}
}
@media(max-width:900px){
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{
    left:6%;right:6%;bottom:5%;height:12.5%;padding:10px 12px;
  }
}
@media(max-width:480px){
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{height:12.5%;padding:8px 10px}
}


/* v35: título fora do botão, inspirado na referência Gucci */
.dress-photo-content,
.gift-photo-content,
.rsvp-photo-content{
  left:6%; right:6%; bottom:5%;
  width:auto; height:auto; min-height:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  gap:14px;
}
.dress-photo-content .card-title,
.gift-photo-content h2,
.rsvp-photo-content h2{
  margin:0;
  color:#fff;
  font-family:var(--display);
  font-size:clamp(24px,2vw,31px);
  font-weight:400;
  line-height:1.08;
  text-shadow:0 1px 10px rgba(30,15,15,.22);
}
.dress-photo-content .card-action,
.gift-photo-content span,
.rsvp-photo-content span{
  width:min(84%,310px);
  min-height:58px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  padding:13px 20px;
  border:1px solid rgba(255,255,255,.92);
  background:rgba(50,28,28,.10);
  color:#fff;
  font-family:var(--body);
  font-size:11px;
  font-weight:500;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:background-color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.dress-photo-card:hover .dress-photo-content,
.gift-photo-card:hover .gift-photo-content,
.rsvp-photo-card:hover .rsvp-photo-content,
.dress-photo-card:focus-visible .dress-photo-content,
.gift-photo-card:focus-visible .gift-photo-content,
.rsvp-photo-card:focus-visible .rsvp-photo-content,
.dress-photo-card:active .dress-photo-content,
.gift-photo-card:active .gift-photo-content,
.rsvp-photo-card:active .rsvp-photo-content{
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.dress-photo-card:hover .card-action,
.gift-photo-card:hover .gift-photo-content span,
.rsvp-photo-card:hover .rsvp-photo-content span,
.dress-photo-card:focus-visible .card-action,
.gift-photo-card:focus-visible .gift-photo-content span,
.rsvp-photo-card:focus-visible .rsvp-photo-content span,
.dress-photo-card:active .card-action,
.gift-photo-card:active .gift-photo-content span,
.rsvp-photo-card:active .rsvp-photo-content span{
  background:rgba(139,82,86,.78);
  border-color:#fff;
  box-shadow:0 5px 18px rgba(45,28,28,.18);
}
@media(max-width:900px){
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{left:6%;right:6%;bottom:5%;padding:0;gap:13px;height:auto}
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:30px;margin:0}
  .dress-photo-content .card-action,
  .gift-photo-content span,
  .rsvp-photo-content span{width:76%;min-height:60px;font-size:11px}
}
@media(max-width:480px){
  .dress-photo-content,
  .gift-photo-content,
  .rsvp-photo-content{height:auto;padding:0;gap:11px;bottom:4.5%}
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:27px}
  .dress-photo-content .card-action,
  .gift-photo-content span,
  .rsvp-photo-content span{width:78%;min-height:54px;font-size:10px;padding:11px 16px}
}

/* v36: títulos dos cards mais delicados */
.dress-photo-content .card-title,
.gift-photo-content h2,
.rsvp-photo-content h2{
  font-size:clamp(19px,1.55vw,24px);
}
@media(max-width:900px){
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:24px}
}
@media(max-width:480px){
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:22px}
}

/* v37: tipografia editorial fina nos cards */
.dress-photo-content .card-title,
.gift-photo-content h2,
.rsvp-photo-content h2,
.dress-photo-content .card-action,
.gift-photo-content span,
.rsvp-photo-content span{
  font-family:'Montserrat', Arial, sans-serif;
  text-transform:uppercase;
  font-weight:300;
  letter-spacing:.18em;
}
.dress-photo-content .card-title,
.gift-photo-content h2,
.rsvp-photo-content h2{
  font-size:clamp(15px,1.15vw,18px);
  line-height:1.25;
}
.dress-photo-content .card-action,
.gift-photo-content span,
.rsvp-photo-content span{
  font-size:10px;
  font-weight:400;
  letter-spacing:.20em;
}
@media(max-width:900px){
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:17px;letter-spacing:.17em}
}
@media(max-width:480px){
  .dress-photo-content .card-title,
  .gift-photo-content h2,
  .rsvp-photo-content h2{font-size:16px;letter-spacing:.16em}
  .dress-photo-content .card-action,
  .gift-photo-content span,
  .rsvp-photo-content span{font-size:9px;letter-spacing:.18em}
}

/* v38: RSVP em segundo, com painel editorial inspirado na referência */
.rsvp-panel-card{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background-image:linear-gradient(rgba(111,72,67,.08),rgba(111,72,67,.08)),url('assets/rsvp-bg.png');
  background-size:cover;
  background-position:center;
  text-decoration:none;
}
.rsvp-bg-rsvp{
  position:absolute;
  top:-3%;
  left:50%;
  transform:translateX(-50%);
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(110px,12vw,190px);
  font-weight:400;
  line-height:.8;
  color:rgba(255,250,245,.72);
  letter-spacing:-.05em;
  pointer-events:none;
  white-space:nowrap;
}
.rsvp-confirm-box{
  position:relative;
  z-index:2;
  width:72%;
  padding:30px 28px 26px;
  text-align:center;
  background:rgba(248,240,235,.94);
  border:1px solid #9f6268;
  box-shadow:0 0 0 4px rgba(248,240,235,.82),0 0 0 5px rgba(159,98,104,.78);
  color:#5b3838;
}
.rsvp-confirm-box h2{
  margin:0 0 16px;
  font-family:'Montserrat',Arial,sans-serif;
  font-size:clamp(13px,1vw,16px);
  line-height:1.35;
  text-transform:uppercase;
  font-weight:300;
  letter-spacing:.20em;
}
.rsvp-confirm-box p{
  margin:0 auto 18px;
  max-width:330px;
  font-family:'Cormorant Garamond',serif;
  font-size:16px;
  line-height:1.35;
  color:#6a4b48;
}
.rsvp-confirm-button{
  display:block;
  width:100%;
  padding:13px 12px;
  background:#9f6268;
  color:#fffaf6;
  border:1px solid #9f6268;
  font-family:'Montserrat',Arial,sans-serif;
  font-size:10px;
  text-transform:uppercase;
  font-weight:400;
  letter-spacing:.20em;
  text-decoration:none;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}
.rsvp-confirm-button:hover,.rsvp-confirm-button:focus-visible{
  background:#7f4b50;
  transform:translateY(-1px);
  outline:none;
}
.rsvp-confirm-box small{
  display:block;
  margin-top:17px;
  font-family:'Montserrat',Arial,sans-serif;
  font-size:8px;
  text-transform:uppercase;
  font-weight:300;
  letter-spacing:.20em;
  color:#9f6268;
}
@media(max-width:900px){
  .rsvp-bg-rsvp{top:2%;font-size:clamp(105px,31vw,170px)}
  .rsvp-confirm-box{width:78%;padding:28px 22px 24px}
  .rsvp-confirm-box p{font-size:17px}
}
@media(max-width:480px){
  .rsvp-confirm-box{width:78%;padding:24px 18px 21px}
  .rsvp-confirm-box h2{font-size:13px;letter-spacing:.16em;margin-bottom:13px}
  .rsvp-confirm-box p{font-size:15px;margin-bottom:15px}
  .rsvp-confirm-button{font-size:9px;padding:12px 8px;letter-spacing:.17em}
  .rsvp-confirm-box small{font-size:7px;letter-spacing:.17em;margin-top:14px}
}

/* v40: ajuste definitivo do painel RSVP */
.rsvp-confirm-box{
  width:76%;
  max-width:390px;
  padding:27px 28px 24px;
  background:#f8f0eb;
  border:1px solid #9f6268;
  box-shadow:0 0 0 4px #f8f0eb,0 0 0 5px rgba(159,98,104,.78);
}
.rsvp-confirm-box p{
  max-width:350px;
  margin:0 auto 18px;
  font-size:15px;
  line-height:1.35;
}
@media(max-width:900px){
  .rsvp-confirm-box{width:78%;max-width:390px;padding:25px 22px 22px}
  .rsvp-confirm-box p{font-size:15px;line-height:1.35}
}
@media(max-width:480px){
  .rsvp-confirm-box{width:78%;padding:22px 16px 20px}
  .rsvp-confirm-box p{font-size:14px;line-height:1.35;margin-bottom:15px}
}

/* RSVP v42: usa a arte final fornecida, sem sobreposicoes de HTML */
.rsvp-reference-card{
  display:block;
  width:100%;
  max-width:620px;
  margin:0 auto;
  text-decoration:none;
  overflow:hidden;
  background:transparent;
}
.rsvp-reference-card img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.rsvp-reference-card:focus-visible{
  outline:1px solid #a86469;
  outline-offset:4px;
}
@media (min-width: 901px){
  .editorial-actions .rsvp-reference-card,
  .rsvp-reference-card{
    width:100%;
    max-width:none;
  }
}

/* v43: padronizacao final dos tres cards editoriais */
@media (min-width: 901px){
  .editorial-actions{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:30px !important;
    align-items:start !important;
    max-width:1380px !important;
    margin:0 auto !important;
    padding:48px 22px 58px !important;
  }
  .editorial-actions > .section{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .gift-photo-card{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    aspect-ratio:2 / 3 !important;
    height:auto !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  .editorial-actions .rsvp-reference-card img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}

/* v44: padroniza os tres cards tambem no mobile */
@media (max-width: 900px){
  .editorial-actions .dress-photo-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .gift-photo-card{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    aspect-ratio:2 / 3 !important;
    height:auto !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  .editorial-actions .rsvp-reference-card img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}

/* v45: cards editoriais com a mesma proporcao e escala visual da galeria */
.editorial-actions .dress-photo-card,
.editorial-actions .rsvp-reference-card,
.editorial-actions .gift-photo-card{
  aspect-ratio:4 / 5 !important;
  overflow:hidden !important;
}
.editorial-actions .rsvp-reference-card img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
}
@media (min-width:901px){
  .editorial-actions{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:20px !important;
    max-width:1120px !important;
    padding-left:24px !important;
    padding-right:24px !important;
  }
}
@media (max-width:900px){
  .editorial-actions{
    padding-left:22px !important;
    padding-right:22px !important;
  }
  .editorial-actions > .section{
    width:100% !important;
    max-width:620px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .gift-photo-card{
    width:100% !important;
    max-width:620px !important;
    aspect-ratio:4 / 5 !important;
    height:auto !important;
  }
}

/* v46: harmonizacao editorial dos tres cards */
.editorial-actions .gift-photo-card{
  background:#b9a49a url("assets/presentes-editorial.jpg") center/cover no-repeat !important;
}
.editorial-actions .gift-photo-overlay,
.editorial-actions .gift-photo-content{
  display:none !important;
}
@media (min-width:901px){
  .editorial-actions{align-items:stretch !important;}
  .editorial-actions > .section{height:100% !important;}
}

/* v47: dimensoes finais, exatamente iguais no desktop e no mobile */
.editorial-actions,
.editorial-actions *{
  box-sizing:border-box;
}
.editorial-actions > .section{
  min-width:0 !important;
  min-height:0 !important;
}
.editorial-actions .dress-photo-card,
.editorial-actions .rsvp-reference-card,
.editorial-actions .gift-photo-card{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  aspect-ratio:4 / 5 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  border-radius:0 !important;
}
.editorial-actions .rsvp-reference-card img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
}
@media (min-width:901px){
  .editorial-actions{
    width:calc(100% - 48px) !important;
    max-width:1340px !important;
    margin:0 auto !important;
    padding:48px 0 58px !important;
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:24px !important;
    align-items:start !important;
  }
  .editorial-actions > .section{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
  }
}
@media (max-width:900px){
  .editorial-actions{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:44px 20px 52px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:38px !important;
  }
  .editorial-actions > .section{
    display:block !important;
    width:100% !important;
    max-width:620px !important;
    height:auto !important;
    margin:0 auto !important;
    padding:0 !important;
  }
}

/* v48: geometria definitiva dos três cards */
.editorial-actions{
  box-sizing:border-box !important;
}
.editorial-actions > .section{
  box-sizing:border-box !important;
  min-width:0 !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
.editorial-actions .dress-photo-card,
.editorial-actions .rsvp-reference-card,
.editorial-actions .gift-photo-card{
  box-sizing:border-box !important;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  aspect-ratio:4 / 5 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
.editorial-actions .rsvp-reference-card img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.editorial-actions .gift-photo-card{
  background-size:cover !important;
  background-position:center center !important;
}

@media (min-width:901px){
  .editorial-actions{
    width:calc(100% - 32px) !important;
    max-width:1544px !important;
    margin:0 auto !important;
    padding:60px 0 !important;
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    column-gap:28px !important;
    row-gap:0 !important;
    align-items:start !important;
  }
}

@media (max-width:900px){
  .editorial-actions{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:44px 36px 52px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:38px !important;
  }
  .editorial-actions > .section{
    width:100% !important;
    max-width:none !important;
  }
}

/* v49: padronização visual dos blocos de ação */
.editorial-actions .dress-photo-content,
.editorial-actions .gift-photo-content{
  left:12% !important;
  right:12% !important;
  bottom:6% !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  text-align:center !important;
}

.editorial-actions .dress-photo-content h2,
.editorial-actions .gift-photo-content h2{
  margin:0 0 18px !important;
  font-size:20px !important;
  line-height:1.2 !important;
  letter-spacing:.16em !important;
  font-weight:400 !important;
}

.editorial-actions .dress-photo-content a,
.editorial-actions .gift-photo-content a{
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:74px !important;
  min-height:74px !important;
  padding:0 20px !important;
  margin:0 !important;
  border:1px solid rgba(255,255,255,.9) !important;
  font-size:13px !important;
  line-height:1 !important;
  letter-spacing:.18em !important;
}

@media (max-width:900px){
  .editorial-actions .dress-photo-content,
  .editorial-actions .gift-photo-content{
    left:14% !important;
    right:14% !important;
    bottom:7% !important;
  }

  .editorial-actions .dress-photo-content h2,
  .editorial-actions .gift-photo-content h2{
    margin-bottom:16px !important;
    font-size:18px !important;
  }

  .editorial-actions .dress-photo-content a,
  .editorial-actions .gift-photo-content a{
    height:68px !important;
    min-height:68px !important;
    font-size:12px !important;
  }
}

/* v50: botão ACESSAR espelha exatamente o botão SAIBA MAIS.
   O Dress Code é a referência de tamanho, altura e respiro. */

/* Desktop */
@media (min-width:901px){
  .editorial-actions .dress-photo-content,
  .editorial-actions .gift-photo-content{
    left:12% !important;
    right:12% !important;
    bottom:6% !important;
    width:auto !important;
    margin:0 !important;
  }

  .editorial-actions .dress-photo-content h2,
  .editorial-actions .gift-photo-content h2{
    margin:0 0 18px !important;
    padding:0 !important;
    font-size:20px !important;
    line-height:24px !important;
    min-height:24px !important;
  }

  .editorial-actions .dress-photo-content a,
  .editorial-actions .gift-photo-content a{
    box-sizing:border-box !important;
    width:100% !important;
    height:74px !important;
    min-height:74px !important;
    max-height:74px !important;
    margin:0 !important;
    padding:0 20px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
  }
}

/* Mobile */
@media (max-width:900px){
  .editorial-actions .dress-photo-content,
  .editorial-actions .gift-photo-content{
    left:14% !important;
    right:14% !important;
    bottom:7% !important;
    width:auto !important;
    margin:0 !important;
  }

  .editorial-actions .dress-photo-content h2,
  .editorial-actions .gift-photo-content h2{
    margin:0 0 16px !important;
    padding:0 !important;
    font-size:18px !important;
    line-height:22px !important;
    min-height:22px !important;
  }

  .editorial-actions .dress-photo-content a,
  .editorial-actions .gift-photo-content a{
    box-sizing:border-box !important;
    width:100% !important;
    height:68px !important;
    min-height:68px !important;
    max-height:68px !important;
    margin:0 !important;
    padding:0 18px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
  }
}

/* v51 DEFINITIVO: Dress Code é a referência geométrica.
   Presentes usa a mesma estrutura, medidas, respiros e tipografia. */

.editorial-actions .gift-photo-card{
  background-image:url("assets/presentes-editorial-clean.jpg") !important;
  background-size:cover !important;
  background-position:center !important;
}

.editorial-actions .gift-photo-overlay,
.editorial-actions .gift-photo-content{
  display:block !important;
}

.editorial-actions .dress-photo-content,
.editorial-actions .gift-photo-content{
  position:absolute !important;
  box-sizing:border-box !important;
  left:12% !important;
  right:12% !important;
  bottom:6% !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  transform:none !important;
}

.editorial-actions .dress-photo-content .card-title,
.editorial-actions .gift-photo-content .card-title{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  height:24px !important;
  min-height:24px !important;
  margin:0 0 18px !important;
  padding:0 !important;
  font-size:20px !important;
  line-height:24px !important;
  font-weight:400 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
}

.editorial-actions .dress-photo-content .card-action,
.editorial-actions .gift-photo-content .card-action{
  display:flex !important;
  box-sizing:border-box !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:74px !important;
  min-height:74px !important;
  max-height:74px !important;
  margin:0 !important;
  padding:0 20px !important;
  border:1px solid rgba(255,255,255,.9) !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:400 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
}

@media (max-width:900px){
  .editorial-actions .dress-photo-content,
  .editorial-actions .gift-photo-content{
    left:14% !important;
    right:14% !important;
    bottom:7% !important;
  }

  .editorial-actions .dress-photo-content .card-title,
  .editorial-actions .gift-photo-content .card-title{
    height:22px !important;
    min-height:22px !important;
    margin:0 0 16px !important;
    font-size:18px !important;
    line-height:22px !important;
  }

  .editorial-actions .dress-photo-content .card-action,
  .editorial-actions .gift-photo-content .card-action{
    height:68px !important;
    min-height:68px !important;
    max-height:68px !important;
    padding:0 18px !important;
    font-size:12px !important;
  }
}

/* v52: correção definitiva do bloco título + botão */
.editorial-actions .dress-photo-content,
.editorial-actions .gift-photo-content{
  position:absolute !important;
  display:block !important;
  box-sizing:border-box !important;
  left:12% !important;
  right:12% !important;
  bottom:6% !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  transform:none !important;
  text-align:center !important;
}

.editorial-actions .dress-photo-content .card-title,
.editorial-actions .gift-photo-content .card-title{
  position:static !important;
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
  outline:0 !important;
  background:none !important;
  color:#fff !important;
  font-size:20px !important;
  line-height:1.2 !important;
  font-weight:400 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}

.editorial-actions .dress-photo-content .card-action,
.editorial-actions .gift-photo-content .card-action{
  position:static !important;
  display:flex !important;
  box-sizing:border-box !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:74px !important;
  min-height:74px !important;
  max-height:74px !important;
  margin:0 !important;
  padding:0 20px !important;
  border:1px solid rgba(255,255,255,.9) !important;
  outline:0 !important;
  background:transparent !important;
  color:#fff !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:400 !important;
  letter-spacing:.18em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}

@media (max-width:900px){
  .editorial-actions .dress-photo-content,
  .editorial-actions .gift-photo-content{
    left:14% !important;
    right:14% !important;
    bottom:7% !important;
  }

  .editorial-actions .dress-photo-content .card-title,
  .editorial-actions .gift-photo-content .card-title{
    margin-bottom:16px !important;
    font-size:18px !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
  }

  .editorial-actions .dress-photo-content .card-action,
  .editorial-actions .gift-photo-content .card-action{
    height:68px !important;
    min-height:68px !important;
    max-height:68px !important;
    padding:0 18px !important;
    font-size:12px !important;
  }
}

/* v53: Dress Code, Confirmacao e Presentes com o MESMO tamanho exato dos cards
   da Galeria. A galeria usa: .carousel max-width 1040px + padding 24px (desktop),
   3 fatias de 33.3333% com padding interno de 10px cada (= 20px de respiro entre
   fotos), foto em aspect-ratio 1080/1350. No mobile: container padding 22px
   (20px em telas bem pequenas), uma foto por vez em aspect-ratio 3/4.
   Replicamos exatamente essa mesma matematica aqui, entao a largura e a altura
   final de cada card batem, pixel a pixel, com a largura e altura das fotos
   da galeria. */
@media (min-width:901px){
  .editorial-actions{
    width:100% !important;
    max-width:1040px !important;
    margin:0 auto !important;
    padding:60px 24px !important;
    display:flex !important;
    align-items:flex-start !important;
    gap:0 !important;
  }
  .editorial-actions > .section{
    flex:0 0 33.3333% !important;
    width:33.3333% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 10px !important;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .gift-photo-card{
    width:100% !important;
    max-width:none !important;
    aspect-ratio:1080/1350 !important;
  }
}

@media (max-width:900px){
  .editorial-actions{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:44px 22px 52px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:38px !important;
  }
  .editorial-actions > .section{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  .editorial-actions .dress-photo-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .gift-photo-card{
    width:100% !important;
    max-width:none !important;
    aspect-ratio:3/4 !important;
  }
}

@media (max-width:480px){
  .editorial-actions{
    padding-left:20px !important;
    padding-right:20px !important;
  }
}

/* v54: corrige overflow do titulo "Lista de presentes" nos cards estreitos
   (mesma largura da galeria). O texto do titulo estava fixo em 20px e
   estourava a caixa de 76% do card, ficando visualmente maior/desalinhado
   em relacao a "Dress Code" e ao botao abaixo dele. Reduzimos a fonte e o
   letter-spacing do titulo e demos mais respiro horizontal (padding menor)
   para os dois titulos caberem em uma linha só, no mesmo tamanho, em
   qualquer largura de tela. */
.editorial-actions .dress-photo-content,
.editorial-actions .gift-photo-content{
  left:8% !important;
  right:8% !important;
}
.editorial-actions .dress-photo-content .card-title,
.editorial-actions .gift-photo-content .card-title{
  font-size:16px !important;
  letter-spacing:.12em !important;
  white-space:nowrap !important;
}
@media (max-width:900px){
  .editorial-actions .dress-photo-content,
  .editorial-actions .gift-photo-content{
    left:9% !important;
    right:9% !important;
  }
  .editorial-actions .dress-photo-content .card-title,
  .editorial-actions .gift-photo-content .card-title{
    font-size:15px !important;
  }
}

/* v56: mantem a foto de fundo com a palavra RSVP (assets/rsvp-card.png) e
   sobrepoe um painel opaco com a cara de formulario (campos em caixa, como
   na referencia enviada) na parte de baixo do card — o "RSVP" grande da
   foto fica visivel por cima do painel. O card continua sendo um <a> que
   leva para a pagina real de RSVP (script.js define o href via config.js).
   cqw = 1% da largura do card, entao tudo escala junto e nunca estoura. */
.editorial-actions .rsvp-reference-card.rsvp-reference-card--form{
  position:relative !important;
  container-type:inline-size !important;
  background:#8a7360 url("assets/rsvp-card.png") center top/cover no-repeat !important;
  border:1px solid rgba(255,255,255,.55) !important;
  transition:box-shadow .22s ease !important;
}
.editorial-actions .rsvp-reference-card.rsvp-reference-card--form:hover,
.editorial-actions .rsvp-reference-card.rsvp-reference-card--form:focus-visible{
  box-shadow:0 8px 22px rgba(30,15,15,.32) !important;
}
.rsvp-form-mock{
  position:absolute;
  left:7%;
  right:7%;
  bottom:5%;
  top:33%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#fdf8f4;
  border:1px solid rgba(89,19,62,.16);
  border-radius:3px;
  box-shadow:0 10px 26px rgba(30,15,15,.28);
  padding:6cqw 7cqw;
  box-sizing:border-box;
  text-align:center;
}
.rsvp-form-sub{
  display:block;
  font-family:"Jost","Montserrat",sans-serif;
  font-weight:300;
  color:#7a5a5a;
  font-size:clamp(10px,2.9cqw,14px);
  line-height:1.45;
  max-width:96%;
  margin-bottom:5.4cqw;
}
.rsvp-form-field{
  display:block;
  width:100%;
  text-align:left;
  margin-bottom:4.4cqw;
}
.rsvp-form-label{
  display:block;
  font-family:"Jost","Montserrat",sans-serif;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:clamp(8px,2.1cqw,11px);
  color:#9b7a7a;
  margin-bottom:2cqw;
}
.rsvp-form-box{
  display:block;
  width:100%;
  border:1px solid #e3c6cd;
  background:#fdf3f5;
  border-radius:3px;
  padding:2.4cqw 3cqw;
  box-sizing:border-box;
  font-family:"Jost","Montserrat",sans-serif;
  font-size:clamp(9px,2.3cqw,12px);
  color:#b08f95;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rsvp-form-radios{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6cqw;
  margin-bottom:5.4cqw;
}
.rsvp-radio{
  display:inline-flex;
  align-items:center;
  font-family:"Jost","Montserrat",sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:clamp(9px,2.4cqw,13px);
  color:#59133e;
}
.rsvp-radio i{
  display:inline-block;
  width:2.4cqw;
  height:2.4cqw;
  min-width:9px;
  min-height:9px;
  border:1px solid #59133e;
  border-radius:50%;
  margin-right:1.6cqw;
}
.rsvp-form-button{
  display:block;
  width:100%;
  padding:clamp(8px,3cqw,14px) 0;
  background:#59133e;
  color:#fff;
  font-family:"Jost","Montserrat",sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:clamp(9px,2.4cqw,13px);
  border-radius:2px;
  transition:background-color .22s ease;
}
/* (hover do botao agora e tratado por .rsvp-form-button:hover / --decline:hover, mais abaixo) */
@media (max-width:900px){
  .rsvp-form-mock{ top:30%; }
}

/* v59: card de Confirmar Presenca de volta ao MESMO tamanho dos outros
   dois cards (aspect-ratio igual ao da galeria), com a sigla "R.S.V.P"
   como titulo no topo do formulario. A foto (sem a palavra RSVP, ja
   recortada) continua atras, servindo de moldura ao redor do painel.
   Como agora a caixa tem altura fixa, deixamos overflow-y:auto no
   formulario como rede de seguranca para casos raros (ex.: convidado
   de familia grande, mensagens de alerta) — no estado normal tudo cabe
   sem precisar rolar. */
.editorial-actions .rsvp-reference-card,
.editorial-actions .rsvp-reference-card.rsvp-reference-card--form{
  aspect-ratio:1080/1350 !important;
  height:auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:center !important;
  position:relative !important;
  container-type:inline-size !important;
  background:#7c6a52 url("assets/rsvp-photo-clean.jpg") center/cover no-repeat !important;
  border:1px solid rgba(255,255,255,.55) !important;
  border-radius:2px;
  overflow:hidden;
  padding:9% 7% !important;
  box-sizing:border-box;
}
@media (max-width:900px){
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .rsvp-reference-card.rsvp-reference-card--form{
    aspect-ratio:0.7 !important;
  }
}
.rsvp-photo-banner{
  display:none;
}
.rsvp-form-mock{
  position:static;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  width:100%;
  height:auto;
  max-height:100%;
  overflow-y:auto;
  padding:5cqw 6cqw;
  box-sizing:border-box;
  text-align:center;
  background:#fdf8f4;
  border-radius:3px;
  box-shadow:0 14px 34px rgba(30,15,15,.32);
}
.rsvp-form-title{
  font-family:"Cormorant Garamond",serif;
  font-style:normal;
  text-transform:uppercase;
  color:#59133e;
  font-size:clamp(19px,8.2cqw,24px);
  letter-spacing:.16em;
  line-height:1.2;
  margin:0 0 2.6cqw;
}
.rsvp-form-sub{
  font-family:"Cormorant Garamond",serif;
  font-weight:400;
  color:#5c4444;
  font-size:clamp(14px,3.8cqw,16px);
  line-height:1.5;
  margin:0 0 3.6cqw;
}
.rsvp-alert{
  display:none;
  font-family:"Jost","Montserrat",sans-serif;
  font-size:clamp(11.5px,2.7cqw,13.5px);
  line-height:1.4;
  color:#59133e;
  background:#f7f1ea;
  border:1px solid #dfd1ca;
  border-radius:3px;
  padding:clamp(9px,3cqw,14px) 2.6cqw;
  margin-bottom:2.6cqw;
  text-align:left;
}
.rsvp-alert.visible{ display:block; }
.rsvp-form-field{
  display:block;
  width:100%;
  text-align:left;
  margin-bottom:2.6cqw;
}
.rsvp-plus-section{
  display:none;
}
.rsvp-plus-section.visible{
  display:block;
}
.rsvp-form-label{
  display:block;
  font-family:"Jost","Montserrat",sans-serif;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:clamp(10.5px,2.4cqw,12.5px);
  color:#9b7a7a;
  margin-bottom:1.2cqw;
}
.rsvp-input{
  display:block;
  width:100%;
  border:1px solid #dfd1ca;
  background:#f7f1ea;
  border-radius:3px;
  padding:clamp(9px,3cqw,14px) 2.6cqw;
  box-sizing:border-box;
  font-family:"Jost","Montserrat",sans-serif;
  font-size:clamp(12.5px,2.8cqw,15px);
  color:#59133e;
  outline:none;
  transition:border-color .2s ease;
}
.rsvp-input::placeholder{
  color:#a89484;
}
.rsvp-input:focus{
  border-color:#59133e;
}
.rsvp-select.rsvp-input{
  appearance:auto;
}
.rsvp-companions-list{
  display:flex;
  flex-direction:column;
  gap:1.6cqw;
}
.rsvp-companion-item{
  display:flex;
  align-items:center;
  gap:2cqw;
  padding:clamp(9px,3cqw,14px) 2.6cqw;
  border:1px solid #dfd1ca;
  background:#f7f1ea;
  border-radius:3px;
  box-sizing:border-box;
  font-family:"Jost","Montserrat",sans-serif;
  font-size:clamp(13px,3cqw,15px);
  color:#59133e;
}
.rsvp-companion-item label{
  flex:1;
  text-align:left;
  cursor:pointer;
}
.rsvp-companion-item input[type="checkbox"]{
  appearance:none;
  width:14px;
  height:14px;
  min-width:14px;
  border:1px solid #59133e;
  border-radius:3px;
  cursor:pointer;
  position:relative;
}
.rsvp-companion-item input[type="checkbox"]:checked{
  background:#59133e;
}
.rsvp-companion-item input[type="checkbox"]:checked::after{
  content:'✓';
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-55%);
  font-size:9px;
  color:#fff;
}
.rsvp-companion-age{
  width:56px;
  border:1px solid #dfd1ca;
  background:#fff;
  border-radius:3px;
  padding:1.2cqw;
  font-family:"Jost","Montserrat",sans-serif;
  font-size:clamp(10px,2.4cqw,12px);
  color:#59133e;
  outline:none;
  cursor:pointer;
}
.rsvp-btn-group{
  display:flex;
  flex-direction:column;
  gap:1.6cqw;
  margin-top:1.6cqw;
}
.rsvp-form-button{
  display:block;
  width:100%;
  padding:clamp(9px,3cqw,14px) 0;
  background:#c98a9c;
  color:#fff;
  border:1px solid #c98a9c;
  font-family:"Jost","Montserrat",sans-serif;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:clamp(11.5px,2.6cqw,14px);
  border-radius:2px;
  cursor:pointer;
  transition:background-color .22s ease,opacity .22s ease;
}
.rsvp-form-button:hover{
  background:#b5758a;
}
.rsvp-form-button--decline{
  background:transparent;
  color:#59133e;
  border:1px solid #E8A0B4;
}
.rsvp-form-button--decline:hover{
  background:#fbeef1;
  border-color:#59133e;
}
.rsvp-feedback{
  display:none;
  text-align:center;
  padding:8cqw 6cqw;
  background:#fdf8f4;
  border-radius:3px;
  box-shadow:0 14px 34px rgba(30,15,15,.32);
}
.rsvp-feedback.visible{
  display:block;
}
.rsvp-feedback-title{
  font-family:"Cormorant Garamond",serif;
  font-style:italic;
  color:#59133e;
  font-size:clamp(23px,8.8cqw,30px);
  margin:0 0 2.4cqw;
}
.rsvp-feedback-text{
  font-family:"Jost","Montserrat",sans-serif;
  font-weight:300;
  color:#7a5a5a;
  font-size:clamp(12.5px,3.2cqw,16px);
  line-height:1.55;
  margin:0 0 3cqw;
}
.rsvp-feedback-text:last-child{ margin-bottom:0; }

/* v63/v64 revertidos: o card voltou ao tamanho padrao (igual aos outros
   dois), conforme pedido — ver v65 abaixo para o ajuste correto (apenas o
   formulario flutuante um pouco maior, card no tamanho padrao). */

/* v69: estabilidade ao preencher o RSVP e menu sempre visivel */
.site-header{
  position:fixed !important;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:1000 !important;
}
main{
  padding-top:72px;
}

/* Evita que o navegador amplie a pagina ao focar campos e reduz saltos de layout.
   overflow-y:auto (em vez de hidden) permite que o formulario role por dentro do
   card quando a lista de acompanhantes for maior, sem crescer o card em si. */
.rsvp-form-mock{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  overflow-anchor:none;
}
.rsvp-input{
  min-width:0;
}

@media (max-width:900px){
  main{padding-top:64px;}
  .rsvp-input,
  .rsvp-select.rsvp-input{
    font-size:16px !important;
  }
}

@media (max-width:560px){
  main{padding-top:68px;}
}

/* v01: banners independentes para desktop e mobile */
.hero-image{
  background-image:url("assets/banner-desktop.jpg");
}

@media (max-width:900px){
  .hero{
    height:auto;
    min-height:0;
    aspect-ratio:2/3;
  }
  .hero-image{
    background-image:url("assets/banner-mobile.jpg");
    background-position:center center;
    background-size:cover;
  }
  .quote-wrap{
    padding-top:12px;
  }
}

@media (max-width:480px){
  .hero{
    aspect-ratio:2/3;
  }
  .quote-wrap{
    padding-top:10px;
  }
}


/* v70: RSVP um pouco maior somente no mobile, sem alterar os demais cards */
@media (max-width:900px){
  .editorial-actions .rsvp.section{
    transform:scale(1.055);
    transform-origin:center center;
    margin-top:1.2%;
    margin-bottom:1.2%;
  }
}


/* v07: aumenta de forma perceptivel a altura da caixa branca do RSVP somente no mobile.
   Mantem largura, card externo, desktop e demais elementos sem alteracao. */
@media (max-width:560px){
  .rsvp-form-mock{
    min-height:60cqw !important;
    padding-top:7cqw !important;
    padding-bottom:7cqw !important;
  }
}

/* v08: no mobile, o card RSVP volta exatamente ao tamanho padrao dos cards Dress Code e Lista de Presentes. Apenas o painel branco interno fica um pouco mais alto. */
@media (max-width:900px){
  .editorial-actions .rsvp.section{
    transform:none !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
}
@media (max-width:560px){
  .rsvp-form-mock{
    min-height:56cqw !important;
    padding-top:6cqw !important;
    padding-bottom:6cqw !important;
  }
}


/* v09: paleta oficial Mariana XV */
:root{
  --bg:#F1F0EC;
  --text:#514846;
  --accent:#DBA9B7;
  --dark:#514846;
  --line:#DED8D5;
}
body{background:#F1F0EC;color:#514846;}
.kicker,.event-copy p span,.rsvp-form-sub,.rsvp-feedback-text{color:#756B68;}
.brand,.menu-toggle span,h1,h2,h3,.rsvp-form-title,.rsvp-feedback-title{color:#514846;}
.button,.rsvp-form-button{background:#DBA9B7;border-color:#DBA9B7;}
.button:hover,.button:focus-visible,.button:active,.button.is-selected{background:#514846;border-color:#514846;}
.rsvp-form-label{color:#756B68;}
.rsvp-input,.rsvp-companion-item{color:#514846;}
.rsvp-input:focus{border-color:#DBA9B7;}
.rsvp-companion-item input[type="checkbox"]{border-color:#DBA9B7;}
.rsvp-companion-item input[type="checkbox"]:checked{background:#DBA9B7;}
.rsvp-form-button:hover{background:#514846;border-color:#514846;}
.rsvp-form-button--decline{background:transparent;color:#514846;border-color:#DBA9B7;}
.rsvp-form-button--decline:hover{background:rgba(219,169,183,.16);border-color:#DBA9B7;}
.rsvp-alert{color:#514846;}

/* Galeria: abertura da foto inteira em modal, sem zoom */
.carousel-photo{cursor:pointer}
.gallery-modal[hidden]{display:none}
.gallery-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px}
.gallery-modal-backdrop{position:absolute;inset:0;background:rgba(25,22,21,.82)}
.gallery-modal-content{position:relative;z-index:1;width:min(94vw,1100px);height:min(90vh,900px);display:flex;align-items:center;justify-content:center;pointer-events:none}
.gallery-modal-image{display:block;max-width:100%;max-height:90vh;width:auto;height:auto;object-fit:contain;user-select:none;pointer-events:auto}
.gallery-modal-close{position:fixed;top:18px;right:22px;z-index:3;width:44px;height:44px;border:0;background:transparent;color:#fff;font:300 38px/1 Arial,sans-serif;cursor:pointer}
.gallery-modal-nav{position:fixed;top:50%;transform:translateY(-50%);z-index:10003;width:48px;height:56px;border:0;background:rgba(241,240,236,.9);color:#514846;font:300 38px/1 Arial,sans-serif;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.gallery-modal-prev{left:18px}.gallery-modal-next{right:18px}
body.gallery-modal-open{overflow:hidden}
@media(max-width:700px){
  .gallery-modal{padding:58px 14px 26px}
  .gallery-modal-content{width:100%;height:calc(100vh - 84px)}
  .gallery-modal-image{max-width:100%;max-height:calc(100vh - 100px)}
  .gallery-modal-close{top:10px;right:10px}
  .gallery-modal-nav{width:38px;height:48px;background:rgba(241,240,236,.82);font-size:32px}
  .gallery-modal-prev{left:6px}.gallery-modal-next{right:6px}
}

/* v14: controles do modal da galeria ficam fora da camada da imagem */
.gallery-modal-content{pointer-events:auto}
.gallery-modal-close,.gallery-modal-nav{pointer-events:auto;z-index:10005}

/* Gallery modal navigation v16 definitive fix */
.gallery-modal-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:auto !important;
  user-select:none;
  -webkit-user-select:none;
  z-index:10020 !important;
}
.gallery-modal-backdrop{z-index:0}
.gallery-modal-content{z-index:1}
.gallery-modal-close{z-index:10021 !important}


/* v19: numeracao discreta das fotos da galeria para identificacao e teste do modal */
.carousel-photo{position:relative}
.gallery-photo-number{position:absolute;right:12px;bottom:12px;z-index:2;min-width:34px;padding:6px 8px;border-radius:999px;background:rgba(241,240,236,.88);color:#514846;font:500 12px/1 Montserrat,sans-serif;letter-spacing:.08em;text-align:center;pointer-events:none}
.gallery-modal-counter{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:10022;padding:7px 11px;border-radius:999px;background:rgba(241,240,236,.9);color:#514846;font:500 12px/1 Montserrat,sans-serif;letter-spacing:.08em;pointer-events:none}
@media(max-width:900px){.gallery-photo-number{right:10px;bottom:10px}.gallery-modal-counter{bottom:18px}}

/* v20: numeracao central das fotos da galeria, apenas para teste do modal */
.gallery-photo-number{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(72px,18vw,150px);
  font-weight:400;
  line-height:1;
  letter-spacing:0;
  text-align:center;
  pointer-events:none;
  text-shadow:0 1px 4px rgba(0,0,0,.10);
}
@media(max-width:900px){
  .gallery-photo-number{right:auto;bottom:auto;font-size:clamp(68px,22vw,120px)}
}
.gallery-modal-counter{display:none !important}


/* v21: numero grande central sobre cada foto da galeria */
.carousel-photo{position:relative !important;}
.gallery-photo-number{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  z-index:20 !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  color:#fff !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(96px,18vw,190px) !important;
  font-weight:400 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  pointer-events:none !important;
  text-shadow:none !important;
}
@media(max-width:900px){
  .gallery-photo-number{
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    font-size:clamp(92px,30vw,150px) !important;
  }
}


/* v22: prazo do RSVP e numeracao apenas na foto expandida */
.rsvp-form-deadline{
  display:block;
  font-family:"Jost","Montserrat",sans-serif;
  font-weight:400;
  color:#7a5a5a;
  font-size:clamp(8px,2.25cqw,11px);
  line-height:1.35;
  letter-spacing:.01em;
  margin:-2.5cqw 0 4.2cqw;
}
.gallery-photo-number{display:none !important;}
.gallery-modal-counter{display:block !important;}

/* v23: melhora de leitura do prazo do RSVP no mobile */
@media(max-width:600px){
  .rsvp-form-sub{
    line-height:1.6;
    margin-bottom:2.8cqw;
  }
  .rsvp-form-deadline{
    font-size:clamp(11.5px,3.15cqw,13px);
    line-height:1.45;
    margin:0 0 4.8cqw;
  }
}

/* Monograma MN no cabeçalho */
.brand{display:flex;align-items:center;}
.brand img{display:block;width:58px;height:auto;object-fit:contain;}
@media(max-width:768px){.brand img{width:56px;}}

/* v25: guia visual de Dress Code substitui card e modal */
.dress-guide-image{display:block;width:min(100%,760px);height:auto;margin:0 auto;}
@media(max-width:700px){.dress.section{padding:44px 20px 52px}.dress-guide-image{width:100%;}}

/* v26: Dress Code no mesmo tamanho dos demais cards, imagem preenchendo todo o card */
.editorial-actions .dress.section{
  overflow:hidden !important;
}
.editorial-actions .dress-guide-image{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
  object-position:center !important;
}
@media (min-width:901px){
  .editorial-actions .dress.section{
    aspect-ratio:1080/1350 !important;
  }
}
@media (max-width:900px){
  .editorial-actions .dress.section{
    aspect-ratio:3/4 !important;
    padding:0 !important;
  }
}

/* v27: Dress Code limpo, sem sobreposição e preenchendo o card */
.editorial-actions .dress.section{
  position:relative !important;
  width:100% !important;
  aspect-ratio:4/5 !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  background:#f5f2ec;
}
.editorial-actions .dress-guide-image{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:scale(1.10);
  transform-origin:center center;
}
@media(max-width:900px){
  .editorial-actions .dress.section{
    width:100% !important;
    max-width:620px !important;
    aspect-ratio:4/5 !important;
    padding:0 !important;
  }
  .editorial-actions .dress-guide-image{
    transform:scale(1.10);
  }
}

/* v28: Dress Code final, nova arte sem recorte, sem zoom e sem margens internas */
.editorial-actions .dress.section{
  position:relative !important;
  width:100% !important;
  max-width:none !important;
  aspect-ratio:auto !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  background:transparent !important;
}
.editorial-actions .dress-guide-image{
  position:static !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:initial !important;
  object-position:initial !important;
  transform:none !important;
}
@media(max-width:900px){
  .editorial-actions .dress.section{
    width:100% !important;
    max-width:none !important;
    aspect-ratio:auto !important;
    padding:0 !important;
  }
  .editorial-actions .dress-guide-image{
    width:100% !important;
    height:auto !important;
    transform:none !important;
  }
}

/* v30: RSVP principal como link direto, confiavel em mobile */
a.rsvp-form-button{text-decoration:none;text-align:center;box-sizing:border-box;}

/* v31/v32: os três cards (Dress Code, RSVP e Lista de Presentes) com exatamente o mesmo tamanho.
   Arte do Dress Code (v32) preenche o card inteiro. */
@media (min-width:901px){
  .editorial-actions > .dress.section,
  .editorial-actions > .rsvp.section,
  .editorial-actions > .gifts.section{
    padding:0 10px !important;
  }
}
@media (max-width:900px){
  .editorial-actions > .dress.section,
  .editorial-actions > .rsvp.section,
  .editorial-actions > .gifts.section{
    padding:0 !important;
  }
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .rsvp-reference-card.rsvp-reference-card--form{
    aspect-ratio:3/4 !important;
  }
}
.editorial-actions .dress.section{
  aspect-ratio:auto !important;
  background:transparent !important;
}
.editorial-actions .dress-guide-image{
  position:static !important;
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  aspect-ratio:1080/1350 !important;
  object-fit:cover !important;
  object-position:center center !important;
  background:#EFEEEA !important;
  transform:none !important;
  margin:0 !important;
  padding:0 !important;
}
@media (max-width:900px){
  .editorial-actions .dress-guide-image{
    aspect-ratio:3/4 !important;
  }
}

/* Versão 01, calendário editorial */
.calendar-block{max-width:360px;margin:8px auto 24px;padding:18px 22px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-month{text-align:center;font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.28em;color:#6f6864;margin-bottom:20px}.calendar-month span{color:#a48f88;margin-left:6px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-family:'Montserrat',sans-serif}.calendar-week{font-size:8px;letter-spacing:.12em;color:#8f837e;margin-bottom:9px}.calendar-days{row-gap:8px;font-size:9px;color:#6f6864}.calendar-days span{height:24px;display:flex;align-items:center;justify-content:center}.calendar-days .selected{width:24px;margin:auto;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font-weight:500;background:rgba(212,167,178,.08)}
.event-time{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 30px}.event-time .line-icon{width:30px;height:30px;margin:0}.event-time>div{display:flex;flex-direction:column;text-align:left}.event-time strong{font-family:'Montserrat',sans-serif;font-size:15px;letter-spacing:.08em;font-weight:500}.event-time small{text-transform:uppercase;letter-spacing:.12em;font-size:7px;color:#927a75;margin-top:3px}
.venue-info{text-align:center;margin:0 auto 6px}.venue-label{display:block;font-family:'Montserrat',sans-serif;font-size:8px;letter-spacing:.28em;color:#a18f89;margin-bottom:9px}.venue-info strong{display:block;font-family:'Cormorant Garamond',serif!important;font-size:26px!important;letter-spacing:.06em!important;text-transform:none!important;font-weight:500!important;margin-bottom:6px}.venue-info small{display:block;max-width:330px;margin:0 auto 14px;font-family:'Montserrat',sans-serif;font-size:9px;line-height:1.65;letter-spacing:.08em;text-transform:uppercase;color:#817570}.venue-info .map-button{padding:7px 15px;font-size:7px;letter-spacing:.14em;border-radius:18px}
@media(max-width:900px){.event{grid-template-columns:1fr;gap:28px}.calendar-block{max-width:320px}.venue-info strong{font-size:25px!important}.event .venue{min-height:430px}}
@media(max-width:480px){.event{gap:22px}.calendar-block{max-width:285px;padding:16px 14px 14px;margin-bottom:20px}.calendar-days{row-gap:6px}.calendar-days span{height:22px}.event-time{margin-bottom:27px}.venue-info strong{font-size:24px!important}.venue-info small{font-size:8px;max-width:280px}.venue-info .map-button{padding:7px 14px;font-size:7px}.event .venue{min-height:360px}}

/* Ajustes V02 solicitados em 04/10/2026 */
.hero{position:relative}
.hero .count-card{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;width:min(92%,560px);margin:0;padding:0;color:#fff;background:transparent}
.hero .count-card .kicker{color:#fff;opacity:.9}
.hero .counter{margin-top:10px;gap:0}
.hero .counter div{padding:0 10px;border-right:1px solid rgba(255,255,255,.45)}
.hero .counter b{font-size:38px;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.18)}
.hero .counter small{margin-top:7px;color:#fff;opacity:.9}
.quote-wrap{padding-bottom:26px}
.event.section{padding-top:22px}
.calendar-block{max-width:390px;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px}
.calendar-month{font-size:13px}
.calendar-week{font-size:9px}
.calendar-days{font-size:11px;row-gap:9px}
.calendar-days span{height:28px}
.calendar-days .selected{width:28px;height:28px}
.event-time strong{font-size:18px}
.event-time small{font-size:8px}
.venue-label{font-size:9px}
.venue-info strong{font-size:30px!important}
.venue-info small{font-size:10px;max-width:390px;line-height:1.7}
.event-map-wrap{text-align:center;margin-top:18px}
.event-map-wrap .map-button{padding:10px 24px;font-size:9px;letter-spacing:.14em;border-radius:22px}
@media(max-width:480px){
  .hero .count-card{bottom:18px;width:94%}
  .hero .counter{margin-top:8px}
  .hero .counter div{padding:0 5px}
  .hero .counter b{font-size:30px}
  .hero .counter small{font-size:6px;margin-top:6px}
  .quote-wrap{padding-bottom:16px}
  .event.section{padding-top:14px}
  .calendar-block{max-width:310px;padding-left:10px;padding-right:10px}
  .calendar-month{font-size:12px}
  .calendar-days{font-size:10px}
  .event-time strong{font-size:17px}
  .venue-info strong{font-size:27px!important}
  .venue-info small{font-size:9px;max-width:315px}
  .event-map-wrap{margin-top:16px}
  .event-map-wrap .map-button{padding:10px 22px;font-size:8px}
}

/* v03 refinements */
.quote-wrap{padding-bottom:8px!important;}
.event.section{padding-top:8px!important;}
.calendar-block{margin-left:auto!important;margin-right:auto!important;}
.event-time>div{display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:10px!important;text-align:center!important;}
.event-time small{margin-top:0!important;font-size:9px!important;}
.venue-label{font-size:12px!important;letter-spacing:.24em!important;margin-bottom:10px!important;}
.event-map-wrap{margin-top:16px!important;text-align:center!important;}
.event-map-wrap .map-button{padding:10px 22px!important;font-size:9px!important;gap:7px!important;}
.map-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none;}
@media(max-width:480px){
  .quote-wrap{padding-bottom:4px!important;}
  .event.section{padding-top:4px!important;}
  .event-time>div{gap:8px!important;}
  .event-time small{font-size:8px!important;}
  .venue-label{font-size:11px!important;}
}

/* v04 mobile ordering and quote fix */
@media(max-width:900px){
  .event > .event-copy{order:1!important;}
  .event > .event-copy + div{order:2!important;}
}
.quote blockquote::before,.quote blockquote::after{content:none!important;}

/* v05: quote marks explicit and countdown after quote */
.quote .quote-mark{display:inline!important;color:inherit!important;font:inherit!important;opacity:1!important;}
.quote-wrap .count-card{position:static!important;transform:none!important;width:auto!important;color:var(--ink)!important;margin:30px auto 0!important;padding:0!important;}
.quote-wrap .count-card .kicker{color:var(--accent)!important;opacity:1!important;}
.quote-wrap .counter{margin-top:20px!important;gap:0!important;}
.quote-wrap .counter div{padding:0 18px!important;border-right:1px solid var(--line)!important;}
.quote-wrap .counter div:last-child{border-right:0!important;}
.quote-wrap .counter b{font-size:42px!important;color:var(--accent)!important;text-shadow:none!important;}
.quote-wrap .counter small{margin-top:10px!important;color:var(--ink)!important;opacity:.75!important;}
@media(max-width:480px){
  .quote-wrap .count-card{margin-top:26px!important;}
  .quote-wrap .counter{margin-top:16px!important;}
  .quote-wrap .counter div{padding:0 7px!important;}
  .quote-wrap .counter b{font-size:31px!important;}
  .quote-wrap .counter small{font-size:6px!important;margin-top:7px!important;}
}

/* Versão 06 — refinamento visual da seção O Grande Dia */
#grande-dia .section-heading{margin-bottom:18px}
#grande-dia .calendar-block{border-top:0!important;border-bottom:0!important;margin-top:0!important;margin-bottom:18px!important;padding-top:4px!important;padding-bottom:4px!important}
#grande-dia .calendar-month{margin-bottom:24px!important}
#grande-dia .event-time{max-width:390px;margin:0 auto 28px!important;padding:14px 0 22px;border-bottom:1px solid var(--line);gap:14px!important}
#grande-dia .event-time .line-icon{width:32px;height:32px}
#grande-dia .event-time>div{gap:0!important;align-items:center!important}
#grande-dia .event-time strong{font-size:25px!important;font-weight:400!important;letter-spacing:.10em!important;line-height:1}
#grande-dia .event-time small{font-size:10px!important;letter-spacing:.14em!important;line-height:1;padding-left:18px;margin-left:18px!important;border-left:1px solid #bdb4af;text-transform:uppercase}
#grande-dia .venue-info{margin-top:0!important;margin-bottom:18px!important}
#grande-dia .venue-label{font-size:13px!important;letter-spacing:.28em!important;margin-bottom:12px!important}
#grande-dia .venue-info strong{font-size:34px!important;line-height:1.05!important;margin-bottom:12px!important}
#grande-dia .venue-info small{font-size:10px!important;line-height:1.7!important;letter-spacing:.12em!important;max-width:390px!important}
#grande-dia .event-map-wrap{margin-top:18px!important}
#grande-dia .event-map-wrap .map-button{padding:11px 25px!important;font-size:9px!important}
@media(max-width:480px){
  #grande-dia .section-heading{margin-bottom:16px}
  #grande-dia .calendar-block{max-width:310px!important;margin-bottom:14px!important}
  #grande-dia .event-time{max-width:315px;margin-bottom:24px!important;padding:12px 0 20px;gap:12px!important}
  #grande-dia .event-time .line-icon{width:30px;height:30px}
  #grande-dia .event-time strong{font-size:23px!important}
  #grande-dia .event-time small{font-size:9px!important;padding-left:14px;margin-left:14px!important}
  #grande-dia .venue-label{font-size:12px!important}
  #grande-dia .venue-info strong{font-size:31px!important}
  #grande-dia .venue-info small{font-size:9px!important;max-width:310px!important;line-height:1.75!important}
}

/* Galeria de inspirações do Dress Code */
.dress-inspiration-card{max-width:780px;margin:0 auto;padding:52px 25px 62px;text-align:center;color:#765652}
.dress-inspiration-card h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(22px,3vw,31px);margin:22px 0}
.dress-inspiration-card p{font-size:15px;line-height:1.85;max-width:610px;margin:15px auto}
.dress-inspiration-card .dress-reserved{font-weight:600}
.dress-inspire-button{margin-top:25px;background:#9c7374;border:1px solid #9c7374;color:white;letter-spacing:2px;font-size:12px;padding:16px 33px;cursor:pointer;transition:background .2s}
.dress-inspire-button:hover{background:#80585c}
.dress-inspire-button span{margin-left:15px}
.inspiration-modal[hidden]{display:none!important}
.inspiration-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px}
.inspiration-backdrop{position:absolute;inset:0;background:rgba(35,24,27,.77)}
.inspiration-panel{position:relative;background:#fbf7f3;width:min(96vw,650px);max-height:94dvh;display:flex;flex-direction:column;align-items:center;padding:18px 20px 15px;box-shadow:0 20px 75px #0004}
.inspiration-close{position:absolute;right:10px;top:5px;background:none;border:0;color:#745557;font-size:33px;cursor:pointer;z-index:2}
.inspiration-heading{font-family:Georgia,serif;font-size:27px;margin:5px 0 13px;color:#785657}
.inspiration-stage{display:flex;align-items:center;justify-content:center;width:100%;min-height:0;flex:1;gap:9px}
.inspiration-stage img{display:block;object-fit:contain;max-height:calc(94dvh - 165px);max-width:calc(100% - 80px);width:auto;height:auto;transition:opacity .18s}
.inspiration-arrow{border:1px solid #d5bdbb;background:#fff9;color:#855f60;width:35px;height:43px;flex:none;cursor:pointer;font-size:30px}
.inspiration-footer{display:flex;justify-content:space-between;width:min(100%,500px);font-size:12px;letter-spacing:1px;color:#795f5e;margin-top:10px}
.inspiration-dots{display:flex;gap:9px;margin-top:12px}
.inspiration-dots button{width:8px;height:8px;border-radius:50%;padding:0;border:0;background:#d7c9c7;cursor:pointer}
.inspiration-dots button.active{background:#916b6d}
@media(max-width:600px){.dress-inspiration-card{padding:35px 12px 45px}.inspiration-panel{padding:16px 8px 14px}.inspiration-stage{gap:3px}.inspiration-stage img{max-width:calc(100% - 76px)}.inspiration-arrow{width:34px}}


/* Ajustes solicitados: 11 outubro 2026 */
@media (min-width:901px){
 .editorial-actions > .dress.section{aspect-ratio:1080/1350 !important;height:auto !important;min-height:0 !important;align-self:flex-start !important;box-sizing:border-box !important;}
 .editorial-actions .dress-inspiration-card{height:100% !important;min-height:0 !important;width:100% !important;box-sizing:border-box !important;padding:7% 7% !important;display:flex !important;flex-direction:column !important;justify-content:center !important;align-items:center !important;container-type:inline-size;}
 .editorial-actions .dress-inspiration-card .section-heading h2{font-size:clamp(15px,7cqw,27px) !important;line-height:1.1 !important;}
 .editorial-actions .dress-inspiration-card h3{font-size:clamp(16px,8cqw,26px) !important;line-height:1.22 !important;margin:13px 0 !important;}
 .editorial-actions .dress-inspiration-card p{font-size:clamp(11px,4.1cqw,14px) !important;line-height:1.55 !important;margin:9px auto !important;}
 .editorial-actions .dress-inspire-button{margin-top:14px !important;padding:12px 20px !important;font-size:10px !important;}
}
@media(max-width:900px){
 .editorial-actions .dress-inspiration-card h3{font-size:clamp(20px,5.5vw,29px) !important;line-height:1.32 !important;letter-spacing:.075em !important;}
}
.inspiration-heading{display:none !important}
.inspiration-panel{width:min(96vw,650px);max-height:94dvh;}
.inspiration-stage img{aspect-ratio:4/5;object-fit:contain;max-height:calc(94dvh - 115px);}

/* Refinamento final: cartão Dress Code e galeria de inspiração */
.editorial-actions > .dress.section{background:#e7dcd6 !important;aspect-ratio:4/5 !important;min-height:0 !important;box-sizing:border-box !important;overflow:hidden;display:flex;align-items:center;justify-content:center}
.editorial-actions .dress-inspiration-card{background:transparent !important;box-sizing:border-box !important;width:100% !important;height:100% !important;max-width:none !important;display:flex !important;flex-direction:column;align-items:center;justify-content:center;padding:7% 7% !important;color:#594846}
.editorial-actions .dress-inspiration-card .section-heading h2{font-size:clamp(22px,3vw,38px) !important;letter-spacing:.14em !important;color:#51413f !important;line-height:1.15 !important}
.editorial-actions .dress-inspiration-card h3{font-size:clamp(14px,1.8vw,21px) !important;line-height:1.35 !important;letter-spacing:.065em !important;margin:15px auto 11px !important}
.editorial-actions .dress-inspiration-card p{font-size:clamp(11px,1.25vw,14px) !important;line-height:1.6 !important;margin:9px auto !important}
.editorial-actions .dress-inspire-button{margin-top:17px !important}
/* Janela apenas com a imagem, sem moldura ou legenda */
.inspiration-modal{padding:10px !important}
.inspiration-panel{background:transparent !important;box-shadow:none !important;padding:0 !important;width:min(92vw,540px) !important;max-height:92dvh !important;position:relative}
.inspiration-stage{width:100% !important;display:block !important;position:relative !important;flex:none !important}
.inspiration-stage img{display:block !important;width:auto !important;height:auto !important;max-width:100% !important;max-height:88dvh !important;aspect-ratio:auto !important;object-fit:contain !important;margin:auto !important}
.inspiration-arrow{position:absolute !important;top:50%;transform:translateY(-50%);z-index:3;width:36px !important;height:42px !important;background:#faf7f0e8 !important;border:0 !important;border-radius:50%;color:#785657 !important}
#inspirationPrev{left:3px}#inspirationNext{right:3px}
.inspiration-close{position:absolute !important;right:5px !important;top:5px !important;color:#594846 !important;background:#faf7f0ed !important;border-radius:50%;width:34px;height:34px;line-height:30px;z-index:5}
.inspiration-dots{position:absolute !important;bottom:12px !important;left:50%;transform:translateX(-50%);margin:0 !important;padding:7px 10px;border-radius:20px;background:#fff9;z-index:4}
.inspiration-footer{display:none !important}
@media(max-width:900px){
 .editorial-actions > .dress.section{aspect-ratio:4/5 !important;min-height:0 !important}
 .editorial-actions .dress-inspiration-card{padding:6% 7% !important}
 .editorial-actions .dress-inspiration-card .section-heading h2{font-size:clamp(25px,6.7vw,37px) !important}
 .editorial-actions .dress-inspiration-card h3{font-size:clamp(14px,3.4vw,19px) !important;letter-spacing:.035em !important;line-height:1.32 !important;margin:12px auto !important}
 .editorial-actions .dress-inspiration-card p{font-size:clamp(11px,2.65vw,15px) !important;line-height:1.48 !important;margin:8px auto !important}
 .editorial-actions .dress-inspire-button{margin-top:13px !important;padding:11px 22px !important}
 .inspiration-panel{width:min(94vw,480px) !important}
 .inspiration-stage img{max-height:86dvh !important}
}

/* ==========================================================================
   v71 (11/10/2026): Dress Code no mesmo tamanho exato do RSVP e da Lista de
   Presentes (desktop e mobile), mantendo fontes e estilo originais do card.
   Apenas ajustes de tamanho, espaçamento e botão INSPIRE-SE maior.
   ========================================================================== */

/* A seção vira só um "slot" transparente; o fundo e a proporção ficam no card,
   como no .rsvp-reference-card e no .gift-photo-card. */
.editorial-actions > .dress.section{
  background:transparent !important;
  aspect-ratio:auto !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  display:block !important;
}
.editorial-actions > .dress.section .dress-inspiration-card{
  container-type:inline-size;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:1080/1350 !important;
  margin:0 !important;
  padding:8% 7% !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  background:#e7dcd6 !important;
  overflow:hidden;
}

/* Hierarquia: título > traje > aviso > texto de apoio (mesmas fontes de antes) */
.editorial-actions .dress-inspiration-card .section-heading{margin:0 0 6cqw !important;gap:3cqw !important}
.editorial-actions .dress-inspiration-card .section-heading span{flex:0 0 6cqw !important;width:6cqw !important}
.editorial-actions .dress-inspiration-card .section-heading h2{
  font-size:clamp(22px,9cqw,34px) !important;
  white-space:nowrap !important;
  line-height:1.1 !important;
}
.editorial-actions .dress-inspiration-card h3{
  font-size:clamp(15px,6cqw,22px) !important;
  line-height:1.3 !important;
  margin:0 auto 5cqw !important;
}
.editorial-actions .dress-inspiration-card p.dress-reserved{
  font-size:clamp(12px,4cqw,15px) !important;
  line-height:1.45 !important;
  margin:0 auto 3cqw !important;
}
.editorial-actions .dress-inspiration-card p.dress-copy{
  font-size:clamp(11px,3.7cqw,14px) !important;
  line-height:1.6 !important;
  margin:0 auto !important;
  max-width:92% !important;
}

/* Botão INSPIRE-SE maior */
.editorial-actions .dress-inspiration-card .dress-inspire-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  min-width:68% !important;
  min-height:clamp(48px,15cqw,58px) !important;
  margin:7cqw 0 0 !important;
  padding:0 6cqw !important;
  font-size:clamp(12px,3.9cqw,14px) !important;
  letter-spacing:.2em !important;
}

/* Mobile: os três cards em 3/4, idênticos */
@media (max-width:900px){
  .editorial-actions > .dress.section .dress-inspiration-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .rsvp-reference-card.rsvp-reference-card--form,
  .editorial-actions .gift-photo-card{
    aspect-ratio:3/4 !important;
    width:100% !important;
    height:auto !important;
  }
}

/* Desktop: os três cards em 1080/1350, mesma largura */
@media (min-width:901px){
  .editorial-actions{align-items:flex-start !important}
  .editorial-actions > .section{height:auto !important}
  .editorial-actions > .dress.section .dress-inspiration-card,
  .editorial-actions .rsvp-reference-card,
  .editorial-actions .rsvp-reference-card.rsvp-reference-card--form,
  .editorial-actions .gift-photo-card{
    aspect-ratio:1080/1350 !important;
    width:100% !important;
    height:auto !important;
  }
}

/* Galeria de inspirações: todas as imagens no mesmo quadro 2:3 */
.inspiration-panel{width:auto !important;max-width:none !important}
.inspiration-stage img{
  width:min(92vw, calc(88dvh * 2 / 3)) !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:2/3 !important;
  object-fit:cover !important;
  background:#e8ddd7;
  transition:none !important;
}
@media (max-width:900px){
  .inspiration-stage img{width:min(94vw, calc(86dvh * 2 / 3)) !important}
}

/* ==========================================================================
   v72 (11/10/2026): título Dress Code mais alto, Traje menor, botões no
   padrão Cameo Pink (#DBA9B7, Pantone 14-2307 TCX) e ACESSAR com o mesmo
   tamanho do INSPIRE-SE.
   ========================================================================== */

/* Título Dress Code mais para cima */
.editorial-actions > .dress.section .dress-inspiration-card{
  justify-content:flex-start !important;
  padding-top:13% !important;
}
.editorial-actions .dress-inspiration-card .section-heading{margin:0 0 10cqw !important}

/* Traje: Esporte Fino ou Social menor */
.editorial-actions .dress-inspiration-card h3{
  font-size:clamp(13px,4.6cqw,17px) !important;
  line-height:1.35 !important;
  margin:0 auto 5cqw !important;
}

/* Botão padrão: mesmo tamanho e cor nos dois cards */
.editorial-actions .gift-photo-card{container-type:inline-size}
.editorial-actions .dress-inspiration-card .dress-inspire-button,
.editorial-actions .gift-photo-content .card-action{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  width:58cqw !important;
  min-width:0 !important;
  max-width:none !important;
  height:clamp(48px,15cqw,58px) !important;
  min-height:clamp(48px,15cqw,58px) !important;
  max-height:clamp(48px,15cqw,58px) !important;
  padding:0 4cqw !important;
  margin-left:auto !important;
  margin-right:auto !important;
  background:#DBA9B7 !important;
  border:1px solid #DBA9B7 !important;
  border-radius:0 !important;
  color:#fff !important;
  font-size:clamp(12px,3.9cqw,14px) !important;
  font-weight:400 !important;
  letter-spacing:.2em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  transition:background-color .22s ease, border-color .22s ease !important;
}
.editorial-actions .dress-inspiration-card .dress-inspire-button:hover,
.editorial-actions .dress-inspiration-card .dress-inspire-button:focus-visible,
.editorial-actions .gift-photo-card:hover .gift-photo-content .card-action,
.editorial-actions .gift-photo-card:focus-visible .gift-photo-content .card-action{
  background:#514846 !important;
  border-color:#514846 !important;
  color:#fff !important;
}
/* Conteúdo do card de presentes ocupa a largura toda para o botão centralizar pelo card */
.editorial-actions .gift-photo-content{
  left:0 !important;
  right:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
}
.editorial-actions .gift-photo-content .card-title{width:auto !important}
/* O card do Dress Code tem 7% de padding lateral (área interna = 86% do card),
   então o cqw dele é menor; compensamos para o botão ficar idêntico ao ACESSAR. */
.editorial-actions .dress-inspiration-card .dress-inspire-button{
  width:calc(58cqw / .86) !important;
  height:clamp(48px, calc(15cqw / .86), 58px) !important;
  min-height:clamp(48px, calc(15cqw / .86), 58px) !important;
  max-height:clamp(48px, calc(15cqw / .86), 58px) !important;
  font-size:clamp(12px, calc(3.9cqw / .86), 14px) !important;
  padding:0 calc(4cqw / .86) !important;
}
/* Título fixo no alto; o restante do conteúdo fica centralizado no espaço abaixo dele */
.editorial-actions .dress-inspiration-card .section-heading{margin:0 0 6cqw !important}
.editorial-actions .dress-inspiration-card h3{margin-top:auto !important}
.editorial-actions .dress-inspiration-card .dress-inspire-button{margin-bottom:auto !important}

/* v73: INSPIRE-SE na mesma altura do ACESSAR (mesma distância da base do card).
   O ACESSAR fica a 7% da altura no mobile e 6% no desktop; o INSPIRE-SE segue a mesma regra. */
.editorial-actions > .dress.section .dress-inspiration-card{position:relative !important}
.editorial-actions .dress-inspiration-card .dress-inspire-button{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:7% !important;
  margin:0 auto !important;
}
.editorial-actions .dress-inspiration-card p.dress-copy{margin-bottom:auto !important}
/* reserva o espaço do botão: 7% da altura (= 9,33% da largura no 3/4) + altura do botão + respiro */
.editorial-actions > .dress.section .dress-inspiration-card{
  padding-bottom:calc(9.33% + clamp(48px, 17.44%, 58px) + 18px) !important;
}
@media (min-width:901px){
  .editorial-actions .dress-inspiration-card .dress-inspire-button{bottom:6% !important}
  /* 6% da altura (= 7,5% da largura no 1080/1350) */
  .editorial-actions > .dress.section .dress-inspiration-card{
    padding-bottom:calc(7.5% + clamp(48px, 17.44%, 58px) + 18px) !important;
  }
}

/* ==========================================================================
   v74 (11/10/2026): novo card Dress Code com ilustração do vestido.
   Só o desenho é imagem (PNG transparente); título, textos e CTA são HTML.
   ========================================================================== */
.editorial-actions > .dress.section .dress-inspiration-card{
  padding-top:9% !important;
  padding-left:7% !important;
  padding-right:7% !important;
}
/* Título sem os fios laterais, como na referência */
.editorial-actions .dress-inspiration-card .section-heading{margin:0 0 1cqw !important}
.editorial-actions .dress-inspiration-card .section-heading span{display:none !important}
.editorial-actions .dress-inspiration-card .section-heading h2{
  font-size:clamp(24px,10cqw,38px) !important;
  letter-spacing:.12em !important;
  padding-left:.12em;
  color:#4a3a37 !important;
}
/* Ilustração ocupa o espaço livre entre o título e os textos */
.editorial-actions .dress-inspiration-card .dress-illustration{
  display:block;
  flex:1 1 0;
  min-height:0;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
  margin:2cqw 0 4cqw;
}
.editorial-actions .dress-inspiration-card h3{
  margin:0 auto 2.6cqw !important;
  font-size:clamp(12px,4.3cqw,16px) !important;
  letter-spacing:.18em !important;
  line-height:1.3 !important;
  white-space:nowrap;
}
.editorial-actions .dress-inspiration-card p.dress-reserved{
  font-family:"Cormorant Garamond",Georgia,serif !important;
  font-weight:500 !important;
  font-size:clamp(16px,6.2cqw,23px) !important;
  line-height:1.25 !important;
  color:#4a3a37 !important;
  margin:0 auto 2.6cqw !important;
}
.editorial-actions .dress-inspiration-card .dress-rosa{color:#c4899a}
.editorial-actions .dress-inspiration-card p.dress-copy{
  font-weight:300 !important;
  margin:0 auto !important;
}
/* Em cards estreitos (desktop entre 901 e ~1000px) o traje pode quebrar em 2 linhas */
@media (min-width:901px) and (max-width:1060px){
  .editorial-actions .dress-inspiration-card h3{white-space:normal !important;letter-spacing:.14em !important}
}
@media (max-width:340px){
  .editorial-actions .dress-inspiration-card h3{white-space:normal !important;letter-spacing:.14em !important}
}

/* v75 (11/10/2026): foto ampliada da galeria no mesmo quadro das inspirações
   (2:3, mesma largura/altura). As fotos 4:5 preenchem o quadro com corte leve nas laterais. */
.gallery-modal-content{width:auto !important;height:auto !important}
.gallery-modal-image{
  width:min(92vw, calc(88dvh * 2 / 3)) !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:2/3 !important;
  object-fit:cover !important;
  object-position:center !important;
}
@media (max-width:900px){
  .gallery-modal{padding:10px !important}
  .gallery-modal-image{width:min(94vw, calc(86dvh * 2 / 3)) !important}
}

/* ==========================================================================
   v76 (13/10/2026): galeria do INSPIRE-SE em tela cheia branca, no estilo
   "lookbook" (imagem fundindo no fundo branco, X fino, setas discretas e
   indicadores em traço).
   ========================================================================== */
.inspiration-modal{padding:0 !important;background:#fff !important}
.inspiration-backdrop{background:#fff !important}
.inspiration-panel{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
}
.inspiration-stage{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  flex:none !important;
}
.inspiration-stage img{
  width:min(calc(100vw - 160px), calc((100dvh - 150px) * 2 / 3)) !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:2/3 !important;
  object-fit:contain !important;
  background:#fff !important;
  margin:0 auto !important;
  box-shadow:none !important;
}
/* X fino no canto superior direito */
.inspiration-close{
  position:fixed !important;
  top:max(16px, env(safe-area-inset-top)) !important;
  right:18px !important;
  width:44px !important;
  height:44px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#514846 !important;
  font:200 34px/44px "Montserrat",Arial,sans-serif !important;
  text-align:center;
  z-index:10 !important;
}
/* Setas discretas, sem caixa */
.inspiration-arrow{
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:44px !important;
  height:64px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#514846 !important;
  font:200 44px/1 "Montserrat",Arial,sans-serif !important;
  opacity:.7;
  transition:opacity .2s ease;
  z-index:5 !important;
}
.inspiration-arrow:hover,.inspiration-arrow:focus-visible{opacity:1}
#inspirationPrev{left:max(12px, 4vw) !important}
#inspirationNext{right:max(12px, 4vw) !important}
/* Indicadores em traço, como no exemplo */
.inspiration-dots{
  position:fixed !important;
  left:50% !important;
  bottom:max(28px, calc(env(safe-area-inset-bottom) + 20px)) !important;
  transform:translateX(-50%) !important;
  display:flex !important;
  gap:6px !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border-radius:0 !important;
  z-index:5 !important;
}
.inspiration-dots button{
  width:22px !important;
  height:2px !important;
  padding:8px 0 !important;      /* área de toque maior sem engrossar o traço */
  border:0 !important;
  border-radius:0 !important;
  background:linear-gradient(#d9d3cf,#d9d3cf) center/100% 2px no-repeat !important;
  box-sizing:content-box;
  cursor:pointer;
  transition:width .25s ease;
}
.inspiration-dots button.active{
  width:34px !important;
  background:linear-gradient(#514846,#514846) center/100% 2px no-repeat !important;
}
@media (max-width:900px){
  .inspiration-stage img{width:min(100vw, calc((100dvh - 130px) * 2 / 3)) !important}
  .inspiration-arrow{width:36px !important;font-size:38px !important}
  #inspirationPrev{left:2px !important}
  #inspirationNext{right:2px !important}
  .inspiration-close{right:10px !important}
}

/* v77 (14/10/2026): no desktop a galeria do INSPIRE-SE é um painel branco
   vertical centralizado sobre o site escurecido (o mobile continua em tela cheia). */
@media (min-width:901px){
  .inspiration-modal{background:transparent !important;padding:0 !important}
  .inspiration-backdrop{background:rgba(35,28,27,.55) !important}
  .inspiration-panel{
    position:relative !important;
    inset:auto !important;
    width:min(560px, 92vw) !important;
    height:min(92vh, 900px) !important;
    height:min(92dvh, 900px) !important;
    background:#fff !important;
    border-radius:2px !important;
    box-shadow:0 24px 70px rgba(25,18,17,.28) !important;
    container-type:size;
  }
  .inspiration-stage img{
    width:min(calc(100cqw - 110px), calc((100cqh - 130px) * 2 / 3)) !important;
  }
  .inspiration-close{position:absolute !important;top:12px !important;right:12px !important}
  .inspiration-dots{position:absolute !important;bottom:26px !important}
  #inspirationPrev{left:10px !important}
  #inspirationNext{right:10px !important}
}
