/* Shared content sizing for demos, live invitations and the editor preview. */
.workspace,.editor,.preview,.library,.form-grid>*{min-width:0}
.studio .workspace{grid-template-columns:240px minmax(0,1fr) 370px}
.studio .form-section{border-radius:0;box-shadow:none;border:0;border-bottom:1px solid #dee5e0;background:transparent;padding-inline:0}
.studio .editor-heading{flex-wrap:wrap}
.studio .editor-tabs{gap:4px;max-width:100%}
.studio .swatches{flex-wrap:wrap;row-gap:36px}
.studio .swatch.maroon-wedding{background:#70162c;color:#fff}
.studio .template-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.studio .template-options button{min-width:0;padding:14px;border:1px solid #dee5e0;border-radius:6px;text-align:left}
.studio .template-options :is(strong,small){display:block;overflow-wrap:anywhere}
.studio .upload-button input{max-width:100%}
.studio .save-bar{flex-wrap:wrap}
.sacred-invitation :is(h1,h2,p,strong,span,small){overflow-wrap:anywhere;letter-spacing:0!important}
.sacred-invitation .countdown-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sacred-invitation .time-box{min-width:0}
.sacred-invitation .time-box strong{font-size:28px}
.sacred-invitation .time-box span{font-size:11px}
.sacred-invitation .rsvp-dialog{width:min(480px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:32px 22px}
.sacred-invitation .rsvp-dialog :is(input,select,textarea){min-width:0;max-width:100%;font-size:16px}
.sacred-invitation .rsvp-dialog h2{font-size:30px;line-height:1.2}
:root .ivory-bloom .rsvp-dialog :is(h2,p,label,legend,small){color:#5d3827!important}
:root .ivory-bloom .invite-footer:has(.couple-photo){background-image:var(--maroon-paper,none)!important}
.sacred-invitation .rsvp-dialog .radio-option{display:flex;align-items:center;gap:10px}
.sacred-invitation .rsvp-dialog input[type=radio]{width:18px;height:18px;flex:none}
:root .ivory-bloom .sacred-hero{aspect-ratio:auto;min-height:0;padding:0}
:root .ivory-bloom .hero-vellum{position:relative;inset:auto;display:flex;flex-direction:column;align-items:center;width:100%;min-height:0;padding:90px 52px 440px;gap:16px}
:root .ivory-bloom .hero-vellum .ganesh-blessing,:root .ivory-bloom .sacred-hero .invite-eyebrow,:root .ivory-bloom .sacred-hero .hero-date-small,:root .ivory-bloom .sacred-hero h1{position:relative;inset:auto;width:100%!important;max-width:100%;margin:0!important}
:root .ivory-bloom .ganesh-blessing>span{font-size:44px}
:root .ivory-bloom .ganesh-blessing p{font-size:15px;line-height:1.5}
:root .ivory-bloom .sacred-hero .invite-eyebrow{font-size:36px!important;line-height:1.2}
:root .ivory-bloom .sacred-hero .hero-date-small{font-size:17px!important;line-height:1.5!important}
:root .ivory-bloom .sacred-hero h1 .hero-person{font-size:44px!important;white-space:normal;line-height:1.2!important}
:root .ivory-bloom .sacred-hero h1 .hero-join{font-size:24px!important}
:root .ivory-bloom .sacred-hero .bloom-video{inset:auto 22% 76px;width:56%;height:350px;object-fit:cover;object-position:center;mask-image:none;-webkit-mask-image:none;mix-blend-mode:normal;border-radius:45% 45% 6px 6px}
:root .ivory-bloom .hero-pillar-decor img{top:auto;bottom:65px;height:390px;width:26%;max-width:26%;object-fit:contain}
:root .ivory-bloom .scroll-invite{position:absolute;left:calc(50% - 70px);top:auto;bottom:14px;width:140px;height:48px;min-height:48px;margin:0;padding:4px 12px;box-sizing:border-box;transform:none;animation:none;display:flex;flex-direction:column-reverse;justify-content:center;align-items:center;gap:2px;border-radius:6px}
:root .ivory-bloom .scroll-invite span{font-size:22px;line-height:1.1}
:root .ivory-bloom .scroll-invite svg{width:18px;height:18px;animation:none}
:root .ivory-bloom .location-section{position:relative;aspect-ratio:auto;padding:48px 26px;display:flex;flex-direction:column;align-items:center;gap:16px;background-size:100% 100%;min-height:0}
:root .ivory-bloom .location-section>.invite-eyebrow,:root .ivory-bloom .location-section>h2,:root .ivory-bloom .location-section>p:not(.invite-eyebrow){position:relative;inset:auto;width:100%;max-width:100%!important;margin:0;white-space:normal}
:root .ivory-bloom .location-section>.invite-eyebrow{font-size:40px;line-height:1.2}
:root .ivory-bloom .location-section>h2{font-size:30px;line-height:1.3}
:root .ivory-bloom .location-section>p:not(.invite-eyebrow){font-size:18px;line-height:1.5}
:root .ivory-bloom:not(.maroon-wedding) .location-section{background:#faf4e8;isolation:isolate}
:root .ivory-bloom:not(.maroon-wedding) .location-section:before,:root .ivory-bloom:not(.maroon-wedding) .location-section:after{content:"";position:absolute;width:100px;height:100px;background:url('./date-flower-sticker.png') top left/contain no-repeat;pointer-events:none;z-index:-1}
:root .ivory-bloom:not(.maroon-wedding) .location-section:before{left:0;top:0}
:root .ivory-bloom:not(.maroon-wedding) .location-section:after{right:0;bottom:0;transform:rotate(180deg)}
:root .ivory-bloom .location-section .venue-art{display:block;position:relative;inset:auto;width:100%;height:180px;margin:8px 0 0;border:1px solid #c4a161;border-radius:100px 100px 6px 6px;opacity:1}
:root .ivory-bloom .location-section .venue-art img{filter:none;opacity:1;object-position:center 25%}
:root .ivory-bloom .venue-map-card{position:relative;inset:auto;width:100%;height:auto;border-radius:6px;overflow:hidden}
:root .ivory-bloom .venue-map-card .venue-map{position:relative;inset:auto;display:block;width:100%;height:220px;margin:0}
:root .ivory-bloom .venue-map-card .invite-button{position:relative;inset:auto;width:100%;min-height:48px;margin:0;justify-content:center;border-radius:0;font-size:17px;border:0;border-top:1px solid #c4a161;box-shadow:none;background:#fffaf0;color:#926016}
:root .ivory-bloom .invite-footer{aspect-ratio:auto;min-height:0;padding:40px 26px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;background-image:var(--maroon-paper,none)!important;background-color:#faf4e8}
:root .ivory-bloom .invite-footer :is(h2,.footer-blessings,strong,.family-hosts,small){position:relative;inset:auto;display:block;width:100%;max-width:100%;white-space:normal;margin:0;overflow-wrap:break-word}
:root .ivory-bloom .invite-footer h2{font-size:clamp(42px,12cqw,60px);line-height:1.15}
:root .ivory-bloom .invite-footer .footer-blessings{font-size:20px;line-height:1.4}
:root .ivory-bloom .invite-footer>strong{font-size:clamp(23px,6.5cqw,32px);line-height:1.3}
:root .ivory-bloom .invite-footer .family-hosts{font-size:17px;line-height:1.4}
:root .ivory-bloom .invite-footer>small{order:10;font-size:10px;padding-top:2px;line-height:1.5}
:root .ivory-bloom .invite-footer .couple-photo{position:relative;inset:auto;width:90%;height:clamp(230px,78cqw,340px);max-height:none;object-fit:contain;margin:4px 0 0;background:transparent;border-radius:0;order:5}
/* Reuse the transparent couple artwork without the tall, empty printed card. */
:root .ivory-bloom:not(.maroon-wedding) .invite-footer .couple-photo[src*="thankyou-couple-art"]{display:none}
:root .ivory-bloom:not(.maroon-wedding) .invite-footer:not(:has(.couple-photo:not([src*="thankyou-couple-art"])))::after{content:"";position:relative;inset:auto;display:block;width:90%;height:clamp(230px,78cqw,340px);margin-top:4px;background:url('./maroon-assets/couple-cutout.png') center bottom/contain no-repeat;order:5}
:root .ivory-bloom:not(.maroon-wedding) .invite-footer::before{content:"";position:absolute;top:0;left:0;width:70px;height:70px;background:url('./date-flower-sticker.png') top left/contain no-repeat;pointer-events:none}
/* Container sizing also covers narrow embedded previews on desktop. */
@container(max-width:340px){:root .ivory-bloom .location-section{padding:40px 20px 32px}:root .ivory-bloom .location-section>h2{font-size:26px}:root .ivory-bloom .invite-footer{padding:36px 20px 22px}:root .ivory-bloom .invite-footer .footer-blessings{font-size:18px}:root .ivory-bloom .invite-footer .family-hosts{font-size:16px}}
@media(max-width:1200px){.studio .workspace{grid-template-columns:210px minmax(0,1fr)}.studio .preview{position:relative;top:auto;grid-column:2;height:auto}.studio .phone-frame{max-width:380px;margin:auto}.studio .library{grid-row:1/3}}
@media(max-width:700px){.studio .workspace{display:block}.studio .library{position:relative;top:auto;height:auto}.studio .editor{padding:24px 16px}.studio .template-options{grid-template-columns:1fr}.studio .studio-header{gap:12px}.studio .header-right{gap:8px}.studio .brand strong{font-size:16px}.studio .brand-icon{width:34px;height:34px}.studio .editor-tabs button{padding:10px 12px}}
@media(max-width:380px){:root .ivory-bloom .hero-vellum{padding:72px 38px 380px}:root .ivory-bloom .sacred-hero h1 .hero-person{font-size:36px!important}:root .ivory-bloom .sacred-hero .bloom-video{height:290px}:root .ivory-bloom .hero-pillar-decor img{height:325px}.sacred-invitation .notes-section{grid-template-columns:1fr}.sacred-invitation .countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
