/* Native-zoom typography for desktop controls and publication dialogs. */
@media(min-width:761px){
 :is(.auth-modal-layer,.photo-modal,.blocks-modal,.template-demo-dialog){--desktop-font-scale:1;--desktop-layout-scale:1;font-size:16px}
 :is(.auth-modal-layer,.photo-modal,.blocks-modal) :is(p,label,input,select,textarea,.btn){font-size:16px;line-height:1.5}
 .payment-card-premium{width:min(760px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow-y:auto}
 .payment-card-premium .payment-hero-text h1{font-size:29px;line-height:1.15}
 .payment-card-premium .payment-hero-text p,.payment-card-premium .payment-feature-list :is(b,span),.payment-card-premium .payment-input-card :is(b,input,span){font-size:15px;line-height:1.5}
 .payment-card-premium .payment-input-card b{flex-wrap:wrap}
 .payment-card-premium .payment-input-card small,.payment-footer-bar .publication-price span,.payment-footer-bar .publication-price .publication-price-label{font-size:14px;line-height:1.5}
 .payment-footer-bar .btn{font-size:16px;min-height:54px;height:auto;padding:16px}
 .editor-top{height:auto;min-height:70px;flex-wrap:wrap;padding:12px 24px}
}
/* Desktop composition only. Theme rules continue to own internal alignment. */
@media(min-width:1100px){
 body #app .invite.invite-sheet,body.template-demo-frame #app .invite.invite-sheet{width:calc(100% - 64px)!important;max-width:1240px!important;min-width:0!important;margin:24px auto!important;padding:0!important;background:var(--page,var(--soft))!important;border-inline:1px solid var(--line,#d9d2c5);box-shadow:0 12px 48px #29262012!important}
 body:has(.invite-sheet){background:var(--sheet-background,#f8f5ef)}
 .invite.invite-sheet{display:flex!important;flex-direction:column}
 #app .invite.invite-sheet>section:not(.hero):not(.footer){width:100%;content-visibility:visible!important}
 #app .invite.invite-sheet :is(#story,#invite,#details) p{max-width:780px}
 #app .invite .invitation-closing{width:100%!important}
 #app .invite .farewell-footer{width:100%;padding:48px 24px 60px!important;background:var(--page,var(--soft))!important}
 #app .invite .farewell-text{font-size:54px!important;line-height:1.15!important}
}
body #app .invite.invite-editor{display:flex!important;flex-direction:column;width:100%!important;max-width:860px!important;min-width:0!important;margin:0 auto!important;padding:0!important}
/* Restore the wide foliage, with space below the form rather than over its text. */
@media(min-width:801px){
 #app .invite .rsvp-wrap.wide-branch,
 #app .invite.invite-balanced>section.rsvp-wrap.wide-branch:not(.hero):not(.footer){padding-bottom:calc(var(--branch-height) + 24px)!important;overflow:hidden!important;isolation:isolate}
 #app .invite .rsvp-wrap.wide-branch>.rsvp-branch{position:absolute!important;left:0!important;bottom:0!important;width:64.102564%!important;height:var(--branch-height)!important;z-index:0!important;pointer-events:none}
 #app .invite .rsvp-wrap.wide-branch>.block-content{position:relative;z-index:1}
 /* The location uses the mobile ornament's proportions, also in the editor. */
 #app .invite[data-invitation-theme="classic"]:is(.invite-editor,.invite-balanced,.invite-sheet)>section.place:not(.hero):not(.footer){min-height:610px!important;padding-top:72px!important;padding-bottom:60px!important;overflow:hidden!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-editor,.invite-balanced,.invite-sheet)>section.place:not(.hero):not(.footer)::before{right:-40px!important;top:28px!important;bottom:70px!important;width:34%!important;border-radius:180px 0 0 0!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-editor,.invite-balanced,.invite-sheet)>section.place:not(.hero):not(.footer) .venue-branch{top:28px!important;right:-60px!important;bottom:auto!important;width:230px!important;height:540px!important;opacity:1!important;z-index:1!important}
 #app .invite.invite-editor>section:not(.hero):not(.footer) h2{font-size:40px!important;line-height:1.2!important}
 #app .invite.invite-editor>section:not(.hero) :is(p,label,input,textarea,select,.btn){font-size:16px!important}
}
/* Same photo transform as the crop stage. Public mobile typography is untouched. */
#app .invite .hero-public{--crop-x:var(--desktop-x,50%);--crop-y:var(--desktop-y,50%);--crop-zoom:var(--desktop-zoom,1);isolation:isolate;background-image:none!important}
#app .invite .hero-public .hero-image{position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;object-position:var(--crop-x) var(--crop-y);transform:scale(var(--crop-zoom));transform-origin:var(--crop-x) var(--crop-y);pointer-events:none;z-index:0}
@media(min-width:801px){
 body #app .invite #hero.hero-public{height:auto!important;min-height:0!important;aspect-ratio:16/9;padding:0!important}
 #app .invite .hero-public h1{font-size:clamp(56px,5.5vw,76px)!important}
 #app .invite .hero-public[data-cover-theme="modern"] h1{font-size:100px!important}
 #app .invite .hero-public .hero-upload{font-size:15px;min-height:42px}
}
@media(max-width:800px){#app .invite .hero-public{--crop-x:var(--mobile-x,50%);--crop-y:var(--mobile-y,50%);--crop-zoom:var(--mobile-zoom,1)}}
/* One photo editor, with the phone's visible area over the desktop crop. */
.hero-crop-layer{z-index:100}
.hero-crop-modal{width:min(960px,calc(100vw - 32px))!important;max-width:none!important;max-height:calc(100dvh - 32px)!important;overflow-y:auto!important;padding:24px!important;background:#fffcf7;color:#292620}
.hero-crop-modal .modal-head strong{font-size:22px;line-height:1.3}
.hero-crop-modal .modal-head small{display:block;font-size:15px;line-height:1.5;margin-top:8px}
.hero-crop-stage{position:relative;isolation:isolate;width:100%;aspect-ratio:16/9;overflow:hidden;margin:20px 0 0;background:#e4e0d8;touch-action:none;cursor:grab}
.hero-crop-stage:active{cursor:grabbing}
.hero-crop-stage>img{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--crop-x) var(--crop-y);transform:scale(var(--crop-zoom));transform-origin:var(--crop-x) var(--crop-y);pointer-events:none}
.hero-mobile-guide{position:absolute;inset:0 auto 0 50%;width:var(--mobile-guide-width);transform:translateX(-50%);border:2px solid #ffffffe6;background:#ffffff18;box-shadow:0 0 0 100vmax #10202838;pointer-events:none}
.hero-mobile-guide>span,.hero-desktop-label{position:absolute;top:12px;left:50%;transform:translateX(-50%);padding:6px 12px;border-radius:20px;background:#102028a8;color:#fff;font:500 14px/1.3 Arial,sans-serif;white-space:nowrap}
.hero-desktop-label{left:12px;transform:none;pointer-events:none}
.hero-crop-hint{font-size:15px;line-height:1.5;margin:14px 0;color:#575d5d}
.hero-crop-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px}
.hero-crop-actions>label{flex:1;min-width:160px;display:flex;align-items:center;gap:12px;font-size:16px}
.hero-crop-actions input[type=range]{width:100%;min-width:80px}
.hero-crop-actions .btn{font-size:16px;min-height:44px}
.hero-crop-actions [hidden]{display:none!important}
.hero-crop-actions .btn:disabled{opacity:.6;cursor:wait}
.owner-device-modes{display:flex;justify-content:center;gap:12px;padding:16px}
.owner-device-modes a{padding:10px 24px;border:1px solid #b8ac96;border-radius:24px;background:#fffdf8;font-size:16px;text-decoration:none;color:#292620}
.owner-device-modes a[aria-current=page]{background:#293e48;color:#fff;border-color:#293e48}
.mobile-page-preview{width:min(390px,100%);margin:0 auto 32px}
.mobile-page-preview iframe{display:block;border:0;width:100%;height:844px;overflow:hidden}
body.owner-mobile-frame{overflow:hidden}
body.owner-mobile-frame #app .invite #hero.hero-public{height:844px!important;min-height:844px!important;aspect-ratio:auto!important}
body.owner-mobile-frame #app .invite #hero.hero-public[data-cover-theme=modern]{height:760px!important;min-height:760px!important}
@media(max-width:760px){
 .hero-crop-modal{padding:16px!important}
 .hero-crop-modal .modal-head strong{font-size:20px}
 .hero-crop-actions>label{order:3;flex-basis:100%}
 .hero-crop-actions .btn{flex:1}
 .hero-mobile-guide>span{top:6px;font-size:12px;padding:4px 6px}
 .owner-preview{height:auto;flex-wrap:wrap;padding:12px!important;gap:12px}
}
.hero-crop-modal .hero-crop-actions button.upload-btn{background:#254f63!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
@media(min-width:801px){
 #app .invite .hero-public .hero-botanical-leaf{bottom:20px!important;width:104px!important;height:45px!important}
 .editor-help>b{font-size:24px!important;line-height:1.3!important}
 .editor-help>span,.editor-colorway-panel>div>span{font-size:15px!important;line-height:1.5!important}
 .editor-colorway-panel>div>b{font-size:16px!important}
 .editor-canvas .block-tools :is(b,button){font-size:14px!important}
}

.payment-card-premium .payment-brand{width:218px;height:218px}
.payment-card-premium .payment-brand img{width:218px;height:218px}
#app .invite[data-invitation-theme="modern"] .guest-survey .attendance-question{display:flex!important;flex-wrap:wrap;gap:10px!important}
#app .invite[data-invitation-theme="modern"] .guest-survey .attendance-question label{display:flex!important;align-items:center;gap:10px;white-space:normal;flex:1 1 210px;min-width:0;text-align:left}
#app .invite[data-invitation-theme="modern"] .guest-survey .attendance-question input{position:static!important;flex:0 0 18px;width:18px!important;height:18px!important;opacity:1;margin:0!important}
#app .invite[data-invitation-theme="modern"] .guest-survey .attendance-question span{min-width:0}
#app .invite .story-photo-frame::before{transform:none}
#app .invite .story-photo-frame::after{left:-7px}

#app .invite .dress .look-svg-frame{left:0!important;top:0!important;width:100%!important;height:100%!important}

/* Show the complete first frame immediately inside homepage devices. */
body.hero-mockup-frame .hero h1 span.will-animate{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}

/* Desktop location and contact composition; phone layout stays unchanged. */
@media(min-width:801px){
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor)>section.place{padding-inline:0!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor)>section.place>.block-content{width:396px!important;max-width:60%!important;margin-left:calc(33% + 20px - 198px)!important;margin-right:0!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor)>section.place>.block-content>h2{max-width:396px!important;font-size:clamp(43.2px,4.74vw,51.6px)!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor)>section.place>.block-content>p{max-width:318px!important;font-size:19.2px!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor)>section.place .navigator-btn{font-size:19.2px!important}
 #app .invite[data-invitation-theme="classic"] .contacts:after{transform:scale(1.5);transform-origin:right bottom}
 #app .invite[data-invitation-theme="classic"] .contacts>.block-content{width:min(680px,100%)!important;margin-inline:auto!important}
 #app .invite[data-invitation-theme="classic"] .contacts .contact-row{grid-template-columns:auto auto;justify-content:center;gap:32px;text-align:center}
}
.payment-card-premium .payment-brand{height:174px}
.payment-card-premium .payment-hero-text h1{margin-top:0}
.payment-card-premium .payment-input-card>div>span{font-size:13px;line-height:1.45}

/* Keep the dress photo intact; draw its contour with the same elliptical corners. */
#app .invite[data-invitation-theme="classic"] .dress .look-card.is-active .look-svg-frame{display:none!important}
#app .invite[data-invitation-theme="classic"] .dress .look-card.is-active:before{content:'';display:block!important;position:absolute;inset:-12px 0 0!important;border:1px solid var(--accent);border-radius:50% 50% 12px 12px / calc(21% + 9.48px) calc(21% + 9.48px) 12px 12px;background:none!important;mask:none!important;-webkit-mask:none!important;pointer-events:none;z-index:6}
#app .invite[data-invitation-theme="classic"] .dress .look-card.is-active:after{content:'';position:absolute;display:block;width:7px;height:7px;left:32%;top:-9px;border-radius:50%;background:var(--accent);z-index:7;pointer-events:none}
#app .invite .countdown-svg-frame{color:var(--accent)}
@media(min-width:801px){
 #app .invite .rsvp-wrap.wide-branch{margin-bottom:-56px!important;overflow:visible!important;z-index:1}
 #app .invite[data-invitation-theme="classic"] .chat{padding-top:0!important;background:transparent!important;z-index:2}
 #app .invite[data-invitation-theme="classic"] :is(.countdown,.contacts) h2{font-size:50px!important}
 .home-redesign .home-hero-live h1{font-size:clamp(31.667px,3.4167vw,58.333px)}
}
@media(max-width:800px){.home-redesign .home-hero-live h1{font-size:30px}}

#app .invite[data-invitation-theme="classic"] .countdown-photo:after{transform:scale(.5);transform-origin:center}

/* Payment actions remain visible at native zoom, including short laptop screens. */
.auth-modal-layer{backdrop-filter:none}
.payment-card-premium{display:flex;flex-direction:column;max-height:calc(100dvh - 32px)!important;overflow:hidden!important}
.payment-scroll-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-top:8px}
.payment-card-premium .payment-footer-bar{flex:none;display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.4fr);gap:16px;align-items:center;padding:14px 24px;margin:0;border-top:1px solid #e8ddc9;background:#fffcf7}
.payment-card-premium .payment-footer-bar .publication-price{margin:0;padding:0;border:0;background:none;gap:3px}
.payment-card-premium .payment-footer-bar .publication-price strong{font-size:34px}
.payment-card-premium .payment-footer-bar .publication-price span{font-size:12px}
.payment-card-premium .payment-footer-bar .btn{width:100%;min-height:50px;margin:0}
.payment-card-premium .payment-note{flex:none;margin:0;padding:0 24px 12px;font-size:11px;line-height:1.35}
@media(max-width:600px){.payment-card-premium .payment-footer-bar{grid-template-columns:1fr;padding:12px 16px;gap:8px}.payment-card-premium .payment-footer-bar .publication-price{display:block}.payment-card-premium .publication-price>span{display:none}.payment-card-premium .payment-footer-bar .publication-price strong{font-size:28px}}

/* Approved Botanica foliage adjustments, desktop only. */
@media(min-width:801px){
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor) .invite-text:before{translate:35px 0}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor) .schedule-branch{transform:translateX(25px) scale(-1.15,1.15)!important}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor) .venue-branch{transform:translateX(-25px) scale(.9);transform-origin:center}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor) .rsvp-branch{translate:0 -25px}
 #app .invite[data-invitation-theme="classic"]:is(.invite-sheet,.invite-editor) .contacts:after{translate:0 35px}
}

/* Match the existing photo corners instead of imposing a second oval. */
#app .invite[data-invitation-theme="classic"] .dress .look-card.is-active:before{inset:-5px -1px -1px!important;border-radius:inherit!important}
#app .invite[data-invitation-theme="classic"] .dress .look-card.is-active:after{top:-2px}
#app .invite[data-invitation-theme="classic"] .countdown-photo:after{right:-7px!important;bottom:-6px!important;transform:translate(50%,50%) scale(.5)}
@media(max-width:800px){#app .invite[data-invitation-theme="classic"] .countdown-photo:after{right:-5px!important;bottom:-4px!important}}
.payment-modal-layer .payment-card:not(.payment-card-premium){width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:28px}
.payment-modal-layer .payment-card:not(.payment-card-premium) h1{font-size:30px;line-height:1.15;margin:12px 0 18px}
.payment-modal-layer .payment-card:not(.payment-card-premium) p{font-size:15px;line-height:1.55}
.payment-modal-layer .payment-card:not(.payment-card-premium) .btn{font-size:15px;line-height:1.4;padding:12px 18px}
@media(min-width:761px){.home-reference-nav .hero-nav-cta{margin-left:auto}}
.home-reference-nav .cabinet-link{color:#26313b!important}
.guest-survey[hidden],.guest-receipt[hidden]{display:none!important}
.guest-receipt{padding:24px;text-align:center}.guest-receipt p{margin-bottom:20px!important}
.guest-confirmation{width:min(440px,calc(100vw - 32px));padding:28px;border:1px solid #ded4c3;border-radius:22px;background:#fffcf7;color:#292620;text-align:center}
.guest-confirmation::backdrop{background:#171a1e66}.guest-confirmation h2{font:400 28px/1.2 Georgia,serif}.guest-confirmation p{font:15px/1.6 Arial,sans-serif}.guest-confirmation .btn{font-size:16px}
.response-repeat{display:block;font-size:12px;color:#795d2f;margin-top:6px}
.publication-address{display:grid;gap:7px;margin:14px 46px;padding:16px 20px;border:1px solid #e1d2bc;border-radius:18px;text-align:left;font-size:15px}
.publication-address input{width:100%;min-width:0;padding:11px 13px;border:1px solid #c9bda9;border-radius:10px;font:16px Arial,sans-serif}
.publication-address small,.publication-address span{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.publication-address input[aria-invalid=true]{border-color:#a94236}
@media(max-width:760px){.publication-address{margin:12px 16px;padding:14px}}
