/* Shared photo contract: display the complete supplied photograph on every model.
   Decorative frames remain around the image; they must never mask its pixels. */
body.invitation :is(.hero-photo,.intro-photo img,.photo-button img,.closing-photo){
  object-fit:contain!important;object-position:center!important;
  border-radius:0!important;clip-path:none!important;mask:none!important;
  transform:none!important;
}
body.invitation .hero-photo{
  height:auto!important;min-height:0!important;max-height:720px!important;aspect-ratio:auto!important;
  z-index:1;
}
body.invitation .hero-ornament{z-index:0}
body.invitation.theme-olivo .hero-copy .inv-link{position:static;transform:none;margin-top:20px}
body.invitation:is(.theme-promesa,.theme-editorial) .hero-caption{display:none}
body.invitation.theme-editorial .hero-bottom{position:relative;inset:auto;grid-column:1/-1;order:3;text-align:center;padding:22px 0;margin:0}
body.invitation :is(.intro-photo,.photo-button){
  overflow:visible;border-radius:0;transform:none!important;
}
body.invitation .intro-photo img,
body.invitation .photo-button img{height:auto;max-height:none;aspect-ratio:auto}
body.invitation .photo-button>span{
  position:static;display:flex;width:auto;height:auto;justify-content:flex-end;
  border-radius:0;background:transparent;color:var(--accent);padding:8px 4px 0;
}
body.invitation:is(.theme-promesa,.theme-botanica,.theme-champagne) .hero-copy{margin:0;max-width:100%}
body.invitation:is(.theme-rosa,.theme-cielo) .inv-hero{display:flex;flex-direction:column;gap:35px;padding-top:75px;padding-bottom:85px}
body.invitation:is(.theme-rosa,.theme-cielo) .hero-copy{position:relative;inset:auto;order:0;margin:0;padding:0 24px;background:none}
body.invitation:is(.theme-rosa,.theme-cielo) .hero-photo{order:1;margin:0}
body.invitation .closing-section{
  min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center;gap:7%;padding:90px max(6%,calc((100% - 1180px)/2));
  background:var(--paper);color:var(--ink);overflow:visible;text-align:center;
  border-top:1px solid var(--line);
}
body.invitation .closing-section:after{display:none}
body.invitation .closing-photo{
  position:relative;inset:auto;z-index:0;display:block;width:100%;height:auto;
  max-height:720px;min-height:0;margin:auto;
}
body.invitation .closing-copy{padding:40px 0;max-width:650px;margin:auto}
body.invitation .closing-copy .section-label{color:var(--accent)}
body.invitation .closing-copy h2{font-size:clamp(38px,4.4vw,64px)}
body.invitation.theme-gala .inv-hero{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7%;
  padding:100px 8%;align-items:center;
}
body.invitation.theme-gala .hero-photo{
  position:relative;inset:auto;width:100%;z-index:1;opacity:1;order:2;
  padding:10px;border:1px solid var(--accent);
}
body.invitation.theme-gala .hero-copy{padding:25px 0}
body.invitation.theme-gala .hero-names{font-size:clamp(56px,6vw,94px)}
/* Miniatures use the full photograph, with a separate area for names and date. */
.mini-invitation>img{
  inset:42% 10% auto!important;width:80%!important;height:47%!important;
  object-fit:contain!important;object-position:center!important;opacity:1!important;
  border-radius:0!important;clip-path:none!important;mask:none!important;
  transform:none!important;border:0!important;padding:0!important;z-index:2;
}
.mini-invitation .mini-type{
  inset:8% 8% auto!important;transform:none!important;width:auto!important;
  text-align:center!important;z-index:3;padding:0!important;background:transparent!important;color:var(--mini-ink)!important;
}
.mini-invitation .mini-type small{margin-bottom:10px!important}
.mini-invitation .mini-type strong{
  font-size:clamp(24px,2.5vw,37px)!important;line-height:1!important;
  letter-spacing:-.025em!important;text-transform:none!important;
}
.mini-invitation .mini-type strong i{display:inline!important;font-size:.7em!important}
.mini-invitation .mini-type>span{position:static!important;inset:auto!important;margin-top:12px!important;padding:0!important;background:none!important;color:inherit!important}
.mini-invitation .mini-seal{display:none!important}
.mini-invitation .mini-foot{bottom:4%!important}
.mini-invitation .mini-decoration{z-index:0!important}
.mini-invitation:before,.mini-invitation:after{z-index:0!important}
.hero-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:16px}
.hero-showcase .showcase-card{position:relative;inset:auto;transform:none;width:100%;max-width:none;border-width:3px}
.hero-showcase .showcase-card:hover{transform:translateY(-6px)}
.hero-showcase .showcase-card .mini-invitation .mini-type strong{font-size:clamp(14px,1.6vw,25px)!important}
.hero-showcase .mini-invitation .mini-type small{margin-bottom:6px!important}
.hero-showcase .mini-invitation .mini-type>span{margin-top:6px!important}
@media(max-width:700px){
  body.invitation .hero-photo{max-height:580px!important}
  body.invitation .closing-section{grid-template-columns:1fr;padding:65px 7%;gap:35px}
  body.invitation .closing-photo{width:100%;max-width:430px;max-height:none}
  body.invitation .closing-copy{padding:0}
  body.invitation .closing-copy h2{font-size:43px}
  body.invitation.theme-gala .inv-hero{display:flex;flex-direction:column;padding:70px 8% 85px;gap:30px}
  body.invitation.theme-gala .hero-copy{padding:0}
  body.invitation.theme-gala .hero-photo{width:min(100%,360px)}
  body.invitation.theme-gala .hero-names{font-size:67px}
  .mini-invitation .mini-type strong{font-size:clamp(23px,6vw,34px)!important}
  .hero-showcase{height:auto;min-height:0;gap:9px;margin:40px 0}
  .hero-showcase .showcase-card .mini-invitation .mini-type strong{font-size:12px!important}
  .hero-showcase .mini-invitation .mini-type small{font-size:3px;margin-bottom:4px!important}
  .hero-showcase .mini-invitation .mini-type>span{font-size:4px;margin-top:4px!important}
}

