/* Invitation card — guest pages + admin editor/preview. One file. */

.poster-stage{padding:22px 0 40px;display:flex;flex-direction:column;align-items:center;gap:18px}
.poster{
  width:min(100% , 420px);aspect-ratio:1000/1700;line-height:1.75;
  position:relative;overflow:hidden;border-radius:16px;
  background:
    radial-gradient(70% 40% at 50% 0%, #14513c 0%, transparent 60%),
    radial-gradient(80% 40% at 50% 100%, #0b3535 0%, transparent 60%),
    linear-gradient(180deg,var(--emerald-900) 0%, var(--emerald-950) 55%, #041813 100%);
  border:1px solid var(--gold-dim);
  box-shadow:var(--shadow);
  display:flex;flex-direction:column;
  padding:5.5% 6% 4.5%;
  container-type:inline-size;
}
.poster .p-frame{
  position:absolute;inset:3.2%;border:1px solid var(--gold-dim);border-radius:8px;pointer-events:none;
}
.poster .p-frame::before{
  content:"";position:absolute;inset:6px;border:1px solid rgba(200,162,83,.16);border-radius:5px;
}
.poster .p-geo{
  position:absolute;inset:0;pointer-events:none;opacity:.09;
  background-image:repeating-linear-gradient(60deg,var(--gold) 0 1px,transparent 1px 22px),
                   repeating-linear-gradient(-60deg,var(--gold) 0 1px,transparent 1px 22px);
  mask-image:radial-gradient(70% 55% at 50% 45%, transparent 30%, #000 100%);
}
.poster > *{position:relative;z-index:2}

/* پوسٹر کے اندر تمام سائز container query units پر — ہر چوڑائی پر ایک جیسا تناسب */
.p-top{text-align:center}
.p-bism{font-family:var(--ar);font-size:3.2cqw;color:var(--gold-2);line-height:1.7}
.p-arabic{font-family:var(--ar);font-size:7cqw;font-weight:700;color:var(--gold);line-height:1.5;margin-top:1.2cqw}
.p-title{font-size:7.6cqw;font-weight:700;line-height:1.7;margin:1.6cqw 0 0}
.p-title span{display:block;color:var(--gold-2);font-size:6.4cqw}
.p-year{font-family:var(--lat);font-size:5.2cqw;letter-spacing:.32em;color:var(--gold);margin-top:.4cqw}
.p-sub{font-size:3.3cqw;color:var(--ink-soft);line-height:1.85;margin:1.2cqw auto 0;max-width:90%}

.p-divider{display:flex;align-items:center;gap:2.4cqw;margin:2.6cqw 0}
.p-divider span{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim),transparent)}
.p-divider i{font-family:var(--ar);font-style:normal;font-size:4.4cqw;color:var(--gold)}

.p-guest{text-align:center}
.p-guest .k{font-size:3.2cqw;color:var(--muted);letter-spacing:.1em}
.p-guest .name{
  font-size:7.2cqw;font-weight:700;line-height:1.8;color:#fff;
  margin:.4cqw 0 0;overflow-wrap:anywhere;
  text-shadow:0 0 8cqw rgba(200,162,83,.35);
}
.p-guest .name.long{font-size:6cqw}
.p-guest .name.x-long{font-size:4.8cqw}
.p-guest .city{font-size:3.6cqw;color:var(--gold-2);margin-top:.2cqw}

.p-info{
  margin-top:auto;display:grid;gap:1.6cqw;text-align:center;
  border-top:1px solid var(--gold-dim);border-bottom:1px solid var(--gold-dim);
  padding:3cqw 0;
}
.p-info .row{display:flex;justify-content:center;gap:1.6cqw;align-items:baseline;flex-wrap:wrap}
.p-info .k{font-size:3cqw;color:var(--gold)}
.p-info .v{font-size:4cqw;color:var(--ink)}

.p-qr{display:flex;align-items:center;justify-content:center;gap:4cqw;margin-top:3.4cqw}
.p-qr .qbox{background:#fff;padding:2cqw;border-radius:2cqw;flex:none;line-height:0}
.p-qr .qbox img{width:22cqw;height:22cqw;image-rendering:pixelated}
.p-qr .qmeta{text-align:start}
.p-qr .qlabel{font-family:var(--lat);font-size:2.8cqw;letter-spacing:.22em;color:var(--muted)}
.p-qr .qid{font-family:var(--lat);font-size:5cqw;letter-spacing:.14em;color:var(--gold-2);font-weight:600;line-height:1.4}
.p-foot{text-align:center;font-size:2.9cqw;color:var(--muted);margin-top:2.6cqw}

.poster-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;width:min(100%,420px)}
.poster-actions .btn{flex:1 1 46%;padding-inline:14px;font-size:16px}
.poster-actions .btn.wide{flex:1 1 100%}

/* ٹیمپلیٹ سے بنا دعوت نامہ — بیک گراؤنڈ + صرف رکھے ہوئے عناصر */
.tpl-poster{
  padding:0;display:block;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  border:none;
}
.tpl-poster .tf{position:absolute;overflow-wrap:anywhere}

.tpl-poster .tf-deco{display:flex;align-items:center;justify-content:center;gap:.55em;line-height:1}
.tpl-poster .tf-deco .d-line{
  flex:1;height:max(1px,.055em);
  background:linear-gradient(90deg,transparent,currentColor,transparent);
}
.tpl-poster .tf-deco .d-mark{font-family:var(--ar);font-style:normal;font-size:1em;line-height:1}
.tpl-poster .tf-deco.is-rule .d-line{background:linear-gradient(90deg,transparent,currentColor 18%,currentColor 82%,transparent)}
.tpl-poster .tf-deco.is-frame{border:max(1px,.05em) solid currentColor;border-radius:.35em}
.tpl-poster .tf-deco.is-frame::before{
  content:"";position:absolute;inset:.22em;border:max(1px,.03em) solid currentColor;
  opacity:.45;border-radius:.25em;
}
.tpl-poster .tf-map{aspect-ratio:1/1}
.tpl-poster .tf-map a{display:block;width:100%;height:100%}
.tpl-poster .tf-map-pin{width:100%;height:100%;display:block}

.tpl-poster .tf-img{width:100%;height:auto;display:block}
.tpl-poster .tf-qr{width:100%;height:auto;background:#fff;padding:4%;border-radius:4%;display:block}
.tpl-poster .tf-qr-sample{
  aspect-ratio:1/1;width:100%;background:#fff;color:#111;border-radius:4%;
  display:grid;place-items:center;overflow:hidden;
  min-width:0;min-height:0;font-size:3cqw;line-height:1;font-family:var(--lat);font-weight:700;
}
.tpl-poster .tf-qr-sample > *{min-width:0;min-height:0}

.tpl-poster.is-system{border:1px solid var(--gold-dim)}
.tpl-poster.is-system .p-geo,
.tpl-poster.is-system .p-frame{z-index:1}
.tpl-poster .tf{z-index:2}
.tpl-poster .tf[data-key="invitation_id"]{
  letter-spacing:.14em;font-variant-numeric:tabular-nums;
}
.tpl-poster .tf[data-key="event_year"]{
  letter-spacing:.32em;font-variant-numeric:tabular-nums;
}
.tpl-poster .tf[data-key="event_name_en"]{letter-spacing:.06em}
.poster .p-wm{
  position:absolute;inset-inline:8%;bottom:1.6%;z-index:5;
  text-align:center;pointer-events:none;
  font-family:var(--lat);font-size:3.1cqw;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(232,201,126,.42);font-weight:600;
}
