/* Royal Haveli: one mobile composition on every screen. Decorative SVGs
   contain no invitation text; all names, events and forms stay editable. */
body[data-theme="haveli"]{background:var(--paper);color:var(--ink)}
body[data-theme="haveli"] #invitation{background-color:var(--paper);background-image:url('/themes/royal-haveli/walnut-paper.svg'),radial-gradient(ellipse at 10% 20%,#76503115,transparent 60%);background-size:640px 640px,100% 100%;color:var(--base-text)}
body[data-theme="haveli"] #invitation .topbar{position:relative;z-index:4;width:100%;min-height:64px;height:auto;padding:12px 18px;gap:8px;background:transparent;color:var(--base-heading);border:0}
body[data-theme="haveli"] #invitation .topbar .monogram{font-size:22px;max-width:45%;overflow-wrap:anywhere}
body[data-theme="haveli"] #invitation .mini-nav{max-width:52%;margin-inline-start:auto;gap:8px}
body[data-theme="haveli"] #invitation .mini-nav a{font-size:10px}
body[data-theme="haveli"] #invitation :is(.hero,.section){position:relative;width:100%;min-height:0;padding:42px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:transparent;color:var(--base-text);border:0;overflow-wrap:anywhere}
body[data-theme="haveli"] #invitation .section:before,body[data-theme="haveli"] #invitation .section:after{content:'';position:absolute;width:105px;height:155px;background:url('/themes/royal-haveli/corner-vine.svg') left top/contain no-repeat;opacity:.32;pointer-events:none;z-index:0}
body[data-theme="haveli"] #invitation .section:before{left:3px;top:8px}
body[data-theme="haveli"] #invitation .section:after{right:3px;bottom:5px;transform:rotate(180deg)}
body[data-theme="haveli"] #invitation .section:nth-child(even):before{transform:scaleX(-1);left:auto;right:3px}
body[data-theme="haveli"] #invitation .section:nth-child(even):after{transform:scaleY(-1);right:auto;left:3px}
body[data-theme="haveli"] #invitation :is(#rsvp,#blessings):before{opacity:.2;width:85px}
body[data-theme="haveli"] #invitation .section>.haveli-card{position:relative;z-index:1;width:100%;min-width:0;max-width:100%;margin:0;padding:12px 0;background:transparent;border:0;border-radius:0;box-shadow:none;text-align:center;box-sizing:border-box}
body[data-theme="haveli"] #invitation .hero:before,body[data-theme="haveli"] #invitation .hero:after{display:none}
body[data-theme="haveli"] #invitation .haveli-hero{padding:0 20px 30px;overflow:hidden}
body[data-theme="haveli"] #invitation .haveli-palace-scene{position:relative;width:calc(100% + 40px);height:420px;margin:0 -20px;flex:none}
body[data-theme="haveli"] #invitation .haveli-palace-scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 44%}
body[data-theme="haveli"] #invitation .haveli-palace-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,color-mix(in srgb,var(--paper) 25%,transparent) 66%,var(--paper) 100%);pointer-events:none}
body[data-theme="haveli"] #invitation .haveli-hero>.haveli-card{position:relative;z-index:1;width:100%;margin:-65px 0 0;padding:86px 24px 38px;background:transparent;border:0;box-shadow:none;text-align:center;box-sizing:border-box}
body[data-theme="haveli"] #invitation .haveli-hero>.haveli-card:before{content:'';position:absolute;inset:0;z-index:-1;background:url('/themes/royal-haveli/hero-frame.svg') center/100% 100% no-repeat;pointer-events:none}
body[data-theme="haveli"] #invitation .haveli-brand{margin-bottom:22px}
body[data-theme="haveli"] #invitation h1{font-size:42px;line-height:1.15;margin:24px 0;color:var(--base-text);font-weight:400;overflow-wrap:anywhere}
body[data-theme="haveli"] #invitation .hero h1 span{display:block;font-size:30px;line-height:1.4;color:var(--base-heading)}
body[data-theme="haveli"] #invitation h2{font-size:32px;font-weight:400;line-height:1.2;color:var(--base-heading);font-style:normal;margin:14px 0 20px}
body[data-theme="haveli"] #invitation h3{font-size:25px;font-weight:400;line-height:1.3;color:var(--base-heading);overflow-wrap:anywhere}
body[data-theme="haveli"] #invitation p{font-size:18px;line-height:1.65;max-width:100%;color:var(--base-muted)}
body[data-theme="haveli"] #invitation .haveli-card>p{margin:18px auto}
body[data-theme="haveli"] #invitation .small{font-size:9px;line-height:1.8;letter-spacing:2px;color:var(--base-heading)}
body[data-theme="haveli"] #invitation .ornament{font-size:17px;margin:22px auto;color:var(--base-heading)}
body[data-theme="haveli"] #invitation .ornament:before,body[data-theme="haveli"] #invitation .ornament:after{width:38px;margin:0 12px}
body[data-theme="haveli"] #invitation .button{border:1px solid var(--base-border);border-radius:4px;font:600 11px/1.6 Arial,sans-serif;padding:13px 16px;letter-spacing:.5px;background:var(--base-primary);color:var(--base-on-primary);min-height:46px;text-decoration:none;max-width:100%;white-space:normal}
body[data-theme="haveli"] #invitation .guest-actions{display:flex;flex-direction:column;justify-content:center;gap:10px;margin-top:20px}
body[data-theme="haveli"] #invitation .guest-actions>.button{flex:0 0 auto;width:100%}
body[data-theme="haveli"] #invitation .haveli-scroll{margin-top:22px;text-align:center;font-size:28px;color:var(--base-heading)}
body[data-theme="haveli"] #invitation .haveli-scroll small{display:block;font:8px/1.8 Arial;letter-spacing:2px}
body[data-theme="haveli"] #invitation .haveli-event-list{display:grid;gap:18px;margin-top:26px}
body[data-theme="haveli"] #invitation .haveli-event-card{position:relative;min-width:0;padding:24px 20px;border:1px solid color-mix(in srgb,var(--gold) 65%,transparent);background:linear-gradient(135deg,#b9915010,transparent 65%);text-align:center}
body[data-theme="haveli"] #invitation .haveli-event-card:before,body[data-theme="haveli"] #invitation .haveli-event-card:after{content:'❧';position:absolute;font-size:19px;color:var(--gold);line-height:1;pointer-events:none}
body[data-theme="haveli"] #invitation .haveli-event-card:before{left:5px;top:5px}
body[data-theme="haveli"] #invitation .haveli-event-card:after{right:5px;bottom:5px;transform:rotate(180deg)}
body[data-theme="haveli"] #invitation .haveli-event-mark{font-size:23px;color:var(--gold)}
body[data-theme="haveli"] #invitation .haveli-event-title{font-size:30px;margin:12px 0}
body[data-theme="haveli"] #invitation .haveli-event-card p{font-size:16px;margin:9px 0}
body[data-theme="haveli"] #invitation .haveli-event-venue{font-style:italic}
body[data-theme="haveli"] #invitation #family{padding-block:28px}
body[data-theme="haveli"] #invitation #family .quote{font-size:25px;font-style:italic;line-height:1.5;color:var(--base-text)}
body[data-theme="haveli"] #invitation .counter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:28px;width:100%;direction:ltr}
body[data-theme="haveli"] #invitation .counter>div{min-width:0;padding:13px 3px;border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);border-radius:6px}
body[data-theme="haveli"] #invitation .counter strong{font-size:28px;line-height:1.2;color:var(--base-text)}
body[data-theme="haveli"] #invitation .counter span{font-size:8px;letter-spacing:0;color:var(--base-muted)}
body[data-theme="haveli"] #invitation .portrait{width:min(100%,280px);height:auto;aspect-ratio:4/5;border-radius:140px 140px 5px 5px;border:1px solid var(--gold);object-fit:cover;margin:20px auto}
body[data-theme="haveli"] #invitation .moment{margin:24px 8px;padding-inline-start:20px}
body[data-theme="haveli"] #invitation :is(.form-box,.message,.upload-panel,.voice-card,.venue-frame){width:100%;min-width:0;max-width:100%;background:transparent;box-shadow:none;outline:none}
body[data-theme="haveli"] #invitation :is(.form-box,.message){text-align:start;padding:0;margin-top:25px}
body[data-theme="haveli"] #invitation :is(input,textarea,select){font:16px/1.5 Georgia,serif;width:100%;max-width:100%;min-width:0;border-radius:4px;padding:12px;min-height:48px;box-sizing:border-box}
body[data-theme="haveli"] #invitation :is(.form-box,.message) label{display:block;font-size:16px;margin:16px 0 8px}
body[data-theme="haveli"] #invitation :is(.message,.form-box) .button{width:100%;margin-top:18px}
body[data-theme="haveli"] #invitation .venue-frame{padding:18px 0 0;margin-top:20px;border:0}
body[data-theme="haveli"] #invitation :is(.venue-image,.haveli-venue-illustration){width:100%;max-width:100%;height:220px;margin:24px auto;border:1px solid var(--gold);border-radius:110px 110px 4px 4px;overflow:hidden;object-fit:cover}
body[data-theme="haveli"] #invitation .haveli-venue-illustration img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 65%}
body[data-theme="haveli"] #invitation .upload-panel{padding:0}
body[data-theme="haveli"] #invitation .invitation-faq summary{font-size:18px;line-height:1.5;padding-block:8px}
body[data-theme="haveli"] #invitation footer{position:relative;min-height:0;padding:40px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;background:transparent;color:var(--base-text);text-align:center;overflow-wrap:anywhere}
body[data-theme="haveli"] #invitation footer>*{max-width:100%}
body[data-theme="haveli"] #invitation footer .script{font-size:32px;line-height:1.3}
body[data-theme="haveli"] #invitation footer .invitation-company{margin-top:24px;padding-top:24px}
body[data-theme="haveli"] #invitation .op-haveli .haveli-intro h2{font-size:27px;line-height:1.18}
body[data-theme="haveli"] #invitation .haveli-intro p{color:#fff6e3}
body[data-theme="haveli"][dir="rtl"] #invitation :is(h1,h2,p,.haveli-event-title){line-height:1.85}
body[data-theme="haveli"][dir="rtl"] #invitation .small{letter-spacing:0;font-size:13px}
body[data-theme="haveli"] #invitation .voice-composer{grid-template-columns:minmax(0,1fr);gap:18px}
body[data-theme="haveli"] #invitation .photo-selection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
