/* Site-only rules, loaded after app.css (which is generated from the design). */
:root{--ui-font:'Plus Jakarta Sans'}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:#FBF8F0;color:#172524;font-family:var(--ui-font),'Plus Jakarta Sans',system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid #0E4A47;outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.wrap{max-width:640px;margin:0 auto}
.only-d{display:none!important}
h1,h2{text-wrap:balance}

/* scripts other than Latin: headings use the script's own face */
body:not(.lang-en) h1,body:not(.lang-en) h2,body:not(.lang-en) h3,body:not(.lang-en) .p-name,body:not(.lang-en) .hstep b{font-family:var(--ui-font),sans-serif;font-weight:700;letter-spacing:0;line-height:1.3}
.lang-hi h1,.lang-hi h2,.lang-hi h3{font-family:'Tiro Devanagari Hindi',serif!important;font-weight:400!important}

/* top bar */
.nav{position:sticky;top:0;z-index:30}
.nav nav{display:none}
.nav nav a:hover,.foot-cols a:hover{color:#0E4A47;text-decoration:underline;text-underline-offset:4px}
.foot-cols a:hover{color:#FBF8F0}
.nav-login,.nav-cta{display:none!important}
.menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px}
.mnav{display:flex;flex-direction:column;background:#FBF8F0;border-top:1px solid #E4DFD0;padding:8px 20px 16px}
.mnav[hidden]{display:none}
.mnav a{padding:12px 0;font-weight:600;border-bottom:1px solid #EFEADB}
.langsw{position:relative}
.langsw summary{list-style:none;cursor:pointer}
.langsw summary::-webkit-details-marker{display:none}
.langmenu{position:absolute;right:0;top:44px;width:220px;background:#fff;border:1px solid #E4DFD0;border-radius:16px;padding:6px;box-shadow:0 18px 40px rgba(23,37,36,.18);display:flex;flex-direction:column;z-index:40}
.langmenu a{display:flex;justify-content:space-between;align-items:baseline;padding:10px 12px;border-radius:10px}
.langmenu a:hover,.langmenu a.on{background:#E6F0ED}
.langmenu b{font-size:16px}
.langmenu span{font-size:12px;color:#5C6B69;font-family:'Plus Jakarta Sans',sans-serif}

/* buttons and links behave like links */
.btn{cursor:pointer;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px)}
.btn.pri:hover{box-shadow:0 10px 22px rgba(201,133,8,.34)}
.btn.sec:hover{background:#F4F9F7}

/* invitation artwork scales with its container */
.inv{width:100%;aspect-ratio:150/218;border-radius:12px;container-type:inline-size}
.inv-arch{width:100%;height:100%}
.inv .inv-in{font-size:calc(100cqw / 150)!important;line-height:1.6}
.hero{overflow:hidden}
.nav nav a,.nav-login{white-space:nowrap}
.phone{width:220px}
.phone .inv{aspect-ratio:204/416;border-radius:26px}
.wa-prev .inv{width:44px;flex:none;border-radius:6px;aspect-ratio:44/58}
.tcard:hover .inv,.g-thumb:hover .inv{transform:translateY(-3px);box-shadow:0 18px 34px rgba(23,37,36,.24)}
.tcard .inv,.g-thumb .inv{transition:transform .25s,box-shadow .25s}
.g-thumb{display:block}
.home .tgrid .tcard:nth-child(n+5){display:none}

/* FAQ uses real <details> */
.faq summary{list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq[open] summary .ic{transform:rotate(45deg)}
.faq summary .ic{transition:transform .2s}

/* sticky call-to-action on phones */
.home{padding-bottom:76px}
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:25;padding-bottom:max(12px,env(safe-area-inset-bottom))}

/* gallery */
.gal{padding-bottom:56px}
.g-head .crumb a:hover{text-decoration:underline}
.g-search input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;color:#172524}
.g-search:focus-within{border-color:#0E4A47;box-shadow:0 0 0 4px rgba(14,74,71,.12)}
.g-main .chips.scroll{overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.g-main{gap:16px}
.g-sort select{appearance:none;font:inherit;font-size:13px;font-weight:600;color:#172524;padding-right:30px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23172524' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center}
a.fo:hover span:nth-child(2){color:#0E4A47}
.g-empty{display:flex;flex-direction:column;align-items:center;gap:16px;padding:56px 0;text-align:center}
.gal .ggrid{margin-bottom:0}

/* placeholder pages */
.stub{padding:72px 0 96px}
.stub .wrap{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.stub h1{font-size:34px;line-height:1.15}
.stub p{max-width:46ch}

@media (min-width:1024px){
  .wrap{max-width:1200px;width:auto;padding:0 32px}
  .only-d{display:revert!important}
  span.only-d,a.only-d{display:inline-flex!important}
  aside.only-d{display:flex!important}
  .only-m{display:none!important}
  .nav nav{display:flex;gap:28px}
  .hero-copy{width:auto;flex:1 1 560px;max-width:620px}
  .partner{gap:32px}
  .pt-copy{width:auto;flex:0 1 340px}
  .tier{min-width:0}
  .tier .pr{white-space:normal}
  .nav-login{display:inline!important}
  .nav-cta{display:inline-flex!important}
  .menu-btn,.mnav{display:none!important}
  .phone{width:268px}
  .home .tgrid .tcard:nth-child(n+5){display:flex}
  .home{padding-bottom:0}
  .hero-art{min-width:0}
  .stub h1{font-size:48px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* A design shown by its real preview picture. The picture is 600 x 1046; cards take the same shape so nothing is cut off.
   Smaller spots (the phone on the home page, the chat preview, table rows) keep their own shape and show the top of the picture. */
.inv.pic{display:block;padding:0}
.inv.pic>img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 0;display:block}
.g-thumb .inv.pic,.tcard .inv.pic,.pp-inv .inv.pic{aspect-ratio:600/1046}
.phone .inv.pic{aspect-ratio:600/1046}

/* Terms, Privacy and Refund pages */
.legal{padding:48px 0 88px}
.legal .wrap{max-width:780px}
.lg-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.lg-nav a{padding:8px 16px;border-radius:999px;border:1px solid rgba(14,74,71,.25);font-size:14px;font-weight:600;color:#0E4A47;text-decoration:none}
.lg-nav a[aria-current]{background:#0E4A47;color:#fff;border-color:#0E4A47}
.legal h1{font-size:34px;line-height:1.15}
.lg-date{margin:8px 0 28px;font-size:14px;opacity:.7}
.legal section{padding:22px 0;border-top:1px solid rgba(23,37,36,.1)}
.legal h2{font-size:20px;line-height:1.3;margin-bottom:10px}
.legal p,.legal li{font-size:16px;line-height:1.65}
.legal p+p,.legal ul+p,.legal ol+p,.legal p+ul,.legal p+ol{margin-top:12px}
.legal ul,.legal ol{padding-left:22px;display:flex;flex-direction:column;gap:8px}
.legal a{color:#0E4A47;font-weight:600}
.lg-co{margin-top:12px;padding:16px 18px;border-radius:12px;background:#fff;border:1px solid rgba(23,37,36,.12)}
@media (min-width:1024px){.legal h1{font-size:44px}}
