/* Pro shablonlar — ChorLove uslubidagi karta hero, shrift, bezak */

.hero__orn {
  display: none;
  width: 2.75rem;
  height: 2.75rem;
  color: var(--rose);
  opacity: 0.78;
}

.invite-divider--dot {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  margin: 0.35rem auto 0.55rem;
  max-width: 12rem;
}

.invite-divider--dot .invite-divider__line {
  flex: 1;
  height: 1px;
  background: color-mix(in srgb, var(--rose) 55%, transparent);
}

.invite-divider--dot .invite-divider__dot {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--rose);
}

.hero__kicker,
.hero__headline {
  display: none;
  margin: 0;
  text-align: center;
}

.invite-gate__kicker,
.invite-gate__headline {
  display: none;
  margin: 0;
  text-align: center;
}

/* —— Umumiy karta uslubi —— */
.hero__cover {
  display: none;
}

.hero__stage {
  display: contents;
}

body.theme-style-card {
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-script: "Cormorant Garamond", Georgia, serif;
  --card-max: min(26.5rem, calc(100vw - 2rem));
  --card-radius: 0.65rem;
  --card-inset: 0.55rem;
  --card-pad-x: clamp(1rem, 3.5vw, 1.85rem);
  --card-pad-y: clamp(1.5rem, 4.5vw, 2.85rem);
  --gate-pad: max(0.85rem, env(safe-area-inset-top, 0px)) max(0.85rem, env(safe-area-inset-right, 0px)) max(0.85rem, env(safe-area-inset-bottom, 0px)) max(0.85rem, env(safe-area-inset-left, 0px));
  background:
    linear-gradient(180deg, var(--ambient-base-top, var(--bg)), var(--ambient-base-bot, var(--bg)));
}

body.theme-style-card .hero__orn {
  display: block;
}

body.theme-style-card .hero__corner {
  border: none !important;
  width: auto;
  height: auto;
  background: none;
  box-shadow: none;
}

body.theme-style-card .hero__spark,
body.theme-style-card .hero__eyebrow {
  display: none !important;
}

body.theme-style-card .hero__kicker {
  display: block;
  font-family: var(--font-ui, "DM Sans", system-ui, sans-serif);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: none;
  color: var(--text-muted);
  margin-bottom: 0.35rem;
}

body.theme-style-card .hero__headline {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2.35rem, 7vw, 3.15rem);
  font-weight: 500;
  font-style: italic;
  line-height: 1.1;
  letter-spacing: 0.01em;
  color: var(--text);
  margin: 0.15rem 0 0.2rem;
}

body.theme-style-card .invite-divider--dot {
  display: flex;
}

body.theme-style-card .invite-divider--lg {
  display: none;
}

/* Hero: previewdagi cover + markaziy karta */
body.theme-style-card .hero {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-height: auto;
  padding: 0 0 clamp(2rem, 5vw, 3rem);
  background-image:
    radial-gradient(ellipse 70% 40% at 50% 0%, color-mix(in srgb, var(--rose) 14%, transparent), transparent 60%),
    linear-gradient(180deg, var(--ambient-base-top), var(--ambient-base-bot));
}

body.theme-style-card .hero__cover {
  display: block;
  position: relative;
  width: 100%;
  height: clamp(10rem, 28vw, 14rem);
  overflow: hidden;
  background:
    radial-gradient(ellipse 55% 70% at 22% 35%, color-mix(in srgb, var(--rose) 28%, transparent), transparent 60%),
    radial-gradient(ellipse 50% 65% at 78% 40%, color-mix(in srgb, var(--gold) 22%, transparent), transparent 55%),
    linear-gradient(180deg,
      color-mix(in srgb, var(--rose) 42%, #fff) 0%,
      color-mix(in srgb, var(--blush) 80%, var(--rose)) 45%,
      color-mix(in srgb, var(--bg) 70%, transparent) 100%);
}

body.theme-style-card .hero__cover-mist {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}

body.theme-style-card .hero__cover-mist--a {
  width: 42%;
  height: 55%;
  left: -4%;
  top: 8%;
  background: color-mix(in srgb, var(--gold) 35%, transparent);
  opacity: 0.45;
}

body.theme-style-card .hero__cover-mist--b {
  width: 48%;
  height: 60%;
  right: -6%;
  top: 12%;
  background: color-mix(in srgb, var(--rose) 40%, transparent);
  opacity: 0.35;
}

body.theme-style-card .hero__cover-mist--c {
  width: 70%;
  height: 50%;
  left: 15%;
  bottom: -10%;
  background: color-mix(in srgb, var(--blush) 70%, #fff);
  opacity: 0.55;
}

body.theme-style-card .hero__cover-leaf {
  position: absolute;
  width: 3.2rem;
  height: 1.35rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--rose) 55%, transparent);
  opacity: 0.45;
}

body.theme-style-card .hero__cover-leaf--l {
  left: 8%;
  bottom: 18%;
  transform: rotate(-38deg);
}

body.theme-style-card .hero__cover-leaf--r {
  right: 8%;
  bottom: 22%;
  transform: rotate(32deg);
  background: color-mix(in srgb, var(--rose-deep) 50%, transparent);
}

body.theme-style-card .hero__stage {
  display: block;
  position: relative;
  z-index: 2;
  width: min(calc(100% - 1.75rem), var(--card-max));
  margin-top: -5.75rem;
  margin-bottom: 0.35rem;
}

body.theme-style-card .hero__frame {
  position: absolute;
  inset: 0;
  left: 0 !important;
  right: 0;
  top: 0;
  bottom: 0;
  transform: none !important;
  width: auto !important;
  max-width: none;
  opacity: 1 !important;
  border-radius: var(--card-radius);
  border: 1.5px solid color-mix(in srgb, var(--rose) 35%, transparent);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), color-mix(in srgb, var(--bg-elevated) 92%, transparent));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--rose) 12%, transparent),
    0 18px 40px rgba(20, 30, 24, 0.1);
  z-index: 0;
  pointer-events: none;
}

body.theme-style-card .hero__frame::before {
  content: "";
  position: absolute;
  inset: var(--card-inset);
  border-radius: calc(var(--card-radius) - 0.3rem);
  border: 1px solid color-mix(in srgb, var(--rose) 22%, transparent);
  pointer-events: none;
  box-shadow: none;
}

body.theme-style-card .hero__corners {
  position: absolute;
  inset: 0.9rem;
  left: auto !important;
  right: auto;
  top: auto;
  bottom: auto;
  transform: none !important;
  width: auto !important;
  max-width: none;
  z-index: 1;
  pointer-events: none;
}

body.theme-style-card .hero__corner--tl,
body.theme-style-card .hero__corner--tr,
body.theme-style-card .hero__corner--bl,
body.theme-style-card .hero__corner--br {
  inset: auto;
}

body.theme-style-card .hero__corner--tl { top: 0; left: 0; }
body.theme-style-card .hero__corner--tr { top: 0; right: 0; }
body.theme-style-card .hero__corner--bl { bottom: 0; left: 0; }
body.theme-style-card .hero__corner--br { bottom: 0; right: 0; }

body.theme-style-card .hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--card-pad-y) var(--card-pad-x) clamp(1.5rem, 4vw, 2.25rem);
  box-sizing: border-box;
}

body.theme-style-card .hero__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  margin: 0.35rem 0 0.15rem;
  max-width: 100%;
}

body.theme-style-card .hero__name {
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 5.2vw + 0.4rem, 2.55rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  filter: none;
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  color: var(--text);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.theme-style-card .hero__conj {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.15rem, 3vw, 1.45rem);
  color: var(--rose);
  margin: 0.05rem 0;
}

body.theme-style-card .hero__datedots {
  font-family: var(--font-ui, "DM Sans", system-ui, sans-serif);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  color: color-mix(in srgb, var(--rose) 70%, var(--text));
  margin-top: 0.35rem;
}

body.theme-style-card .hero__sub {
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-top: 0.25rem;
}

body.theme-style-card .hero__ayah {
  margin-top: 1.15rem;
}

body.theme-style-card .hero__ayah-line {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(0.95rem, 2.2vw, 1.1rem);
}

body.theme-style-card .hero__ayah-ref {
  letter-spacing: 0.06em;
}

body.theme-style-card .hero__actions {
  margin-top: 1.35rem;
  gap: 0.65rem;
  width: 100%;
  max-width: 100%;
}

body.theme-style-card .hero__actions .btn {
  min-height: 2.75rem;
  padding-inline: 0.85rem;
  font-size: clamp(0.82rem, 2.4vw, 0.95rem);
}

body.theme-style-card .btn--gold {
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

body.theme-style-card .btn--line {
  border-radius: 999px;
}

body.theme-style-card .hero__scroll {
  margin-top: 1.25rem;
}

body.theme-style-card .invite-divider__gem,
body.theme-style-card .invite-divider__flourish {
  color: var(--rose);
}

/* Sahifa bo‘limlari — xuddi shu karta uslubi */
body.theme-style-card .shell,
body.theme-style-card.layout-garden .shell,
body.theme-style-card.layout-gallery .shell,
body.theme-style-card.layout-formal .shell,
body.theme-style-card.layout-festival .shell,
body.theme-style-card.layout-editorial .shell,
body.theme-style-card.layout-romantic .shell {
  display: flex;
  flex-direction: column;
  width: min(calc(100% - 1.75rem), var(--card-max));
  max-width: var(--card-max);
  margin-inline: auto;
  gap: 1rem;
  padding-bottom: 6.5rem;
}

body.theme-style-card .shell > * {
  grid-column: auto !important;
}

body.theme-style-card .panel,
body.theme-style-card.layout-garden .panel,
body.theme-style-card.layout-formal .panel,
body.theme-style-card.layout-gallery .panel,
body.theme-style-card.layout-festival .panel,
body.theme-style-card.layout-editorial .panel {
  position: relative;
  border-radius: var(--card-radius);
  border: 1.5px solid color-mix(in srgb, var(--rose) 28%, transparent);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97), color-mix(in srgb, var(--bg-elevated) 90%, #fff));
  box-shadow: 0 14px 34px rgba(20, 30, 24, 0.07);
  padding: clamp(1.35rem, 4vw, 1.85rem) clamp(1.1rem, 3.5vw, 1.45rem);
}

body.theme-style-card .panel::before,
body.theme-style-card.layout-garden .panel::before {
  content: "";
  position: absolute;
  inset: var(--card-inset);
  border-radius: calc(var(--card-radius) - 0.28rem);
  border: 1px solid color-mix(in srgb, var(--rose) 18%, transparent);
  background: none;
  box-shadow: none;
  opacity: 1;
  pointer-events: none;
}

body.theme-style-card .panel > * {
  position: relative;
  z-index: 1;
}

body.theme-style-card .panel__accent {
  display: none;
}

body.theme-style-card .sec-head__tag {
  color: var(--rose);
  letter-spacing: 0.16em;
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 1;
}

/* Qorong‘i Pro shablonlar — o‘qilishi uchun kontrast */
body.theme-luxury_gold,
body.theme-green_gold,
body.theme-royal_red,
body.theme-royal_green,
body.theme-royal_blue,
body.theme-golden_card,
body.theme-red_rose {
  --text-muted: rgba(255, 248, 235, 0.84);
}

body.theme-luxury_gold.theme-style-card .sec-head__tag,
body.theme-green_gold.theme-style-card .sec-head__tag,
body.theme-royal_red.theme-style-card .sec-head__tag,
body.theme-royal_green.theme-style-card .sec-head__tag,
body.theme-royal_blue.theme-style-card .sec-head__tag,
body.theme-golden_card.theme-style-card .sec-head__tag,
body.theme-red_rose.theme-style-card .sec-head__tag,
body.theme-luxury_gold .sec-head__label,
body.theme-green_gold .sec-head__label,
body.theme-royal_red .sec-head__label,
body.theme-royal_green .sec-head__label,
body.theme-royal_blue .sec-head__label,
body.theme-golden_card .sec-head__label,
body.theme-red_rose .sec-head__label {
  color: var(--gold-bright, var(--gold));
}

body.theme-luxury_gold .count-lead,
body.theme-green_gold .count-lead,
body.theme-royal_red .count-lead,
body.theme-royal_green .count-lead,
body.theme-royal_blue .count-lead,
body.theme-golden_card .count-lead,
body.theme-red_rose .count-lead,
body.theme-luxury_gold .countdown__cap,
body.theme-green_gold .countdown__cap,
body.theme-royal_red .countdown__cap,
body.theme-royal_green .countdown__cap,
body.theme-royal_blue .countdown__cap,
body.theme-golden_card .countdown__cap,
body.theme-red_rose .countdown__cap,
body.theme-luxury_gold .mom-cal__legend,
body.theme-green_gold .mom-cal__legend,
body.theme-royal_red .mom-cal__legend,
body.theme-royal_green .mom-cal__legend,
body.theme-royal_blue .mom-cal__legend,
body.theme-golden_card .mom-cal__legend,
body.theme-red_rose .mom-cal__legend,
body.theme-luxury_gold .cal-month-label,
body.theme-green_gold .cal-month-label,
body.theme-royal_red .cal-month-label,
body.theme-royal_green .cal-month-label,
body.theme-royal_blue .cal-month-label,
body.theme-golden_card .cal-month-label,
body.theme-red_rose .cal-month-label,
body.theme-luxury_gold .hero__sub,
body.theme-green_gold .hero__sub,
body.theme-royal_red .hero__sub,
body.theme-royal_green .hero__sub,
body.theme-royal_blue .hero__sub,
body.theme-golden_card .hero__sub,
body.theme-red_rose .hero__sub,
body.theme-luxury_gold .invite-gate__hint,
body.theme-green_gold .invite-gate__hint,
body.theme-royal_red .invite-gate__hint,
body.theme-royal_green .invite-gate__hint,
body.theme-royal_blue .invite-gate__hint,
body.theme-golden_card .invite-gate__hint,
body.theme-red_rose .invite-gate__hint,
body.theme-luxury_gold .prose,
body.theme-green_gold .prose,
body.theme-royal_red .prose,
body.theme-royal_green .prose,
body.theme-royal_blue .prose,
body.theme-golden_card .prose,
body.theme-red_rose .prose {
  color: rgba(255, 248, 235, 0.86);
}

body.theme-luxury_gold .sec-head__title,
body.theme-green_gold .sec-head__title,
body.theme-royal_red .sec-head__title,
body.theme-royal_green .sec-head__title,
body.theme-royal_blue .sec-head__title,
body.theme-golden_card .sec-head__title,
body.theme-red_rose .sec-head__title,
body.theme-luxury_gold .lead,
body.theme-green_gold .lead,
body.theme-royal_red .lead,
body.theme-royal_green .lead,
body.theme-royal_blue .lead,
body.theme-golden_card .lead,
body.theme-red_rose .lead {
  color: var(--text);
}

body.theme-red_rose .btn--gold,
body.theme-red_rose.theme-style-card .invite-gate__lock,
body.theme-red_rose.theme-style-card .btn--gold {
  background: linear-gradient(135deg, #c03048, #7a1528);
  color: #f8ecee;
}

body.theme-royal_red .btn--gold,
body.theme-royal_red.theme-style-card .invite-gate__lock {
  background: linear-gradient(135deg, #c03048, #8b1a2b);
  color: #f8ecee;
}

/* Yorug‘ shablonlar — muted matn biroz qorong‘iroq */
body.theme-green_white,
body.theme-purple_flower,
body.theme-modern_floral,
body.theme-sakura,
body.theme-orchid,
body.theme-glass_pink,
body.theme-bahor,
body.theme-ivory_love,
body.theme-cloud_castle {
  --text-muted: color-mix(in srgb, var(--text) 68%, transparent);
}

body.theme-style-card .sec-head__title,
body.theme-style-card .sec-head__title--lg {
  font-family: var(--font-display);
  font-weight: 500;
  font-style: italic;
  letter-spacing: 0.01em;
}

body.theme-style-card .calendar-layout__orn {
  display: none !important;
}

body.theme-style-card .calendar-layout {
  display: block;
}

body.theme-style-card .calendar-layout__main {
  width: 100%;
}

body.theme-style-card .lead {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.25rem, 3.5vw, 1.55rem);
}

body.theme-style-card .prose,
body.theme-style-card .quote-block {
  font-size: 0.98rem;
  line-height: 1.7;
}

body.theme-style-card .countdown--lux .countdown__cell {
  border-radius: 0.75rem;
  border-color: color-mix(in srgb, var(--rose) 22%, transparent);
}

body.theme-style-card .dock {
  border-radius: 1.15rem;
  width: min(calc(100% - 1.25rem), calc(var(--card-max) + 2rem));
}

@media (max-width: 640px) {
  body.theme-style-card .hero__corner--tl { top: 0; left: 0; }
  body.theme-style-card .hero__corner--tr { top: 0; right: 0; }
  body.theme-style-card .hero__corner--bl { bottom: 0; left: 0; }
  body.theme-style-card .hero__corner--br { bottom: 0; right: 0; }

  body.theme-style-card .hero__orn {
    width: 2.15rem;
    height: 2.15rem;
  }

  body.theme-style-card .hero__corners {
    inset: 0.65rem;
  }
}

/* Gate — shablon kartasi (preview bilan bir xil) */
body.theme-style-card .invite-gate,
body.theme-is-pro .invite-gate--tpl {
  padding: var(--gate-pad, 1rem);
  background-image:
    radial-gradient(ellipse 70% 40% at 50% 0%, color-mix(in srgb, var(--rose) 14%, transparent), transparent 60%),
    linear-gradient(180deg, var(--ambient-base-top, var(--bg)), var(--ambient-base-bot, var(--bg)));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

body.theme-style-card .invite-gate__inner {
  width: 100%;
  max-width: min(94vw, calc(var(--card-max) + 2rem));
  margin-block: auto;
  padding-block: 0.5rem;
}

body.theme-style-card .invite-gate__card,
body.theme-style-card.layout-garden .invite-gate__card,
body.theme-style-card.layout-romantic .invite-gate__card,
body.theme-style-card.layout-formal .invite-gate__card,
body.theme-style-card.layout-gallery .invite-gate__card,
body.theme-style-card.layout-festival .invite-gate__card,
body.theme-style-card.layout-editorial .invite-gate__card {
  position: relative;
  width: 100%;
  max-width: min(100%, var(--card-max, 22.5rem));
  padding: var(--card-pad-y) var(--card-pad-x) clamp(1.35rem, 4vw, 1.85rem);
  border-radius: var(--card-radius);
  border: 1.5px solid color-mix(in srgb, var(--rose) 35%, transparent);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), color-mix(in srgb, var(--bg-elevated) 92%, #fff));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--rose) 12%, transparent),
    0 18px 44px rgba(20, 30, 24, 0.1);
  overflow: hidden;
  box-sizing: border-box;
}

body.theme-style-card .invite-gate__card::before,
body.theme-style-card.layout-garden .invite-gate__card::before {
  content: "";
  position: absolute;
  inset: 0.55rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in srgb, var(--rose) 28%, transparent);
  pointer-events: none;
  z-index: 0;
}

body.theme-style-card .invite-gate__corners {
  position: absolute;
  inset: 0.85rem;
  pointer-events: none;
  z-index: 1;
}

body.theme-style-card .invite-gate__corner {
  position: absolute;
  color: var(--rose);
  opacity: 0.82;
  line-height: 0;
}

body.theme-style-card .invite-gate__corner--tl { top: 0; left: 0; }
body.theme-style-card .invite-gate__corner--tr { top: 0; right: 0; }
body.theme-style-card .invite-gate__corner--bl { bottom: 0; left: 0; }
body.theme-style-card .invite-gate__corner--br { bottom: 0; right: 0; }

body.theme-style-card .invite-gate__orn {
  display: block;
  width: 2.35rem;
  height: 2.35rem;
}

body.theme-style-card .invite-gate__tpl {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

body.theme-style-card .invite-gate__kicker {
  display: block;
  font-family: var(--font-ui, "DM Sans", system-ui, sans-serif);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: none;
  color: var(--text-muted);
  margin: 0 0 0.45rem;
}

body.theme-style-card .invite-gate__headline {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2rem, 7vw, 2.65rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.1;
  color: var(--text);
  margin: 0 0 0.15rem;
}

body.theme-style-card .invite-divider--gate {
  display: flex;
  width: 100%;
  max-width: 9.5rem;
  margin: 0.55rem auto;
}

body.theme-style-card .invite-gate__names {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.05rem;
  margin: 0.15rem 0;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 5vw + 0.35rem, 2.35rem);
  font-weight: 500;
  line-height: 1.15;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  color: var(--text) !important;
  filter: none !important;
  max-width: 100%;
}

body.theme-style-card .invite-gate__name {
  display: block;
  color: inherit;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.theme-style-card .invite-gate__amp {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.72em;
  margin: 0.1rem 0;
  color: var(--rose);
}

body.theme-style-card .invite-gate__date-dots {
  margin: 0.2rem 0 0.85rem;
  font-family: var(--font-ui, "DM Sans", system-ui, sans-serif);
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: none;
  color: color-mix(in srgb, var(--rose) 72%, var(--text));
}

body.theme-style-card .invite-gate__hint {
  margin: 0 0 1.1rem;
  font-size: 0.8rem;
  color: var(--text-muted);
}

body.theme-style-card .invite-gate__guest {
  margin: 0 0 0.65rem;
  color: var(--champagne);
}

body.theme-style-card .invite-gate__lock,
body.theme-style-card.layout-garden .invite-gate__lock,
body.theme-style-card.layout-formal .invite-gate__lock,
body.theme-style-card.layout-gallery .invite-gate__lock,
body.theme-style-card.layout-festival .invite-gate__lock,
body.theme-style-card.layout-editorial .invite-gate__lock {
  width: auto;
  max-width: 100%;
  height: auto;
  min-height: 2.85rem;
  min-width: min(11.5rem, 100%);
  padding: 0.85rem clamp(1rem, 4vw, 1.55rem);
  margin: 0 auto;
  border-radius: 999px;
  border: none;
  background: linear-gradient(135deg, var(--rose), var(--rose-deep));
  color: #fffaf4;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--rose) 28%, transparent);
  box-sizing: border-box;
}

body.theme-style-card .invite-gate__lock:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px color-mix(in srgb, var(--rose) 34%, transparent);
}

body.theme-style-card .invite-gate__lock-ring,
body.theme-style-card .invite-gate__lock-heart {
  display: none !important;
  animation: none !important;
}

body.theme-style-card .invite-gate__lock-label--visible,
body.theme-style-card .invite-gate__lock--tpl .invite-gate__lock-label {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  clip: auto;
  overflow: visible;
  white-space: nowrap;
  font-family: var(--font-ui, "DM Sans", system-ui, sans-serif);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: inherit;
}

@media (max-width: 640px) {
  body.theme-style-card .invite-gate__orn {
    width: 1.85rem;
    height: 1.85rem;
  }

  body.theme-style-card .invite-gate__corners {
    inset: 0.65rem;
  }
}

/* —— Dark / formal Pro (Luxury Gold, Royal*, Green Gold) —— */
body.theme-luxury_gold,
body.theme-green_gold,
body.theme-royal_red,
body.theme-royal_green,
body.theme-royal_blue,
body.theme-golden_card {
  --font-display: "Cormorant Garamond", Georgia, serif;
}

body.theme-luxury_gold.theme-style-card .hero__frame,
body.theme-green_gold.theme-style-card .hero__frame,
body.theme-royal_red.theme-style-card .hero__frame,
body.theme-royal_green.theme-style-card .hero__frame,
body.theme-royal_blue.theme-style-card .hero__frame,
body.theme-golden_card.theme-style-card .hero__frame {
  background: linear-gradient(180deg, color-mix(in srgb, var(--bg-elevated) 92%, transparent), color-mix(in srgb, var(--bg) 95%, transparent));
  border-color: color-mix(in srgb, var(--gold) 45%, transparent);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--gold) 18%, transparent),
    0 22px 48px rgba(0, 0, 0, 0.35);
}

body.theme-luxury_gold.theme-style-card .hero__frame::before,
body.theme-green_gold.theme-style-card .hero__frame::before,
body.theme-royal_red.theme-style-card .hero__frame::before,
body.theme-royal_green.theme-style-card .hero__frame::before,
body.theme-royal_blue.theme-style-card .hero__frame::before,
body.theme-golden_card.theme-style-card .hero__frame::before {
  border-color: color-mix(in srgb, var(--gold) 35%, transparent);
}

body.theme-luxury_gold.theme-style-card .hero__orn,
body.theme-green_gold.theme-style-card .hero__orn,
body.theme-royal_red.theme-style-card .hero__orn,
body.theme-royal_green.theme-style-card .hero__orn,
body.theme-royal_blue.theme-style-card .hero__orn,
body.theme-golden_card.theme-style-card .hero__orn {
  color: var(--gold);
}

body.theme-luxury_gold.theme-style-card .invite-divider--dot .invite-divider__line,
body.theme-green_gold.theme-style-card .invite-divider--dot .invite-divider__line,
body.theme-royal_red.theme-style-card .invite-divider--dot .invite-divider__line,
body.theme-royal_green.theme-style-card .invite-divider--dot .invite-divider__line,
body.theme-royal_blue.theme-style-card .invite-divider--dot .invite-divider__line,
body.theme-golden_card.theme-style-card .invite-divider--dot .invite-divider__line {
  background: color-mix(in srgb, var(--gold) 55%, transparent);
}

body.theme-luxury_gold.theme-style-card .invite-divider--dot .invite-divider__dot,
body.theme-green_gold.theme-style-card .invite-divider--dot .invite-divider__dot,
body.theme-royal_red.theme-style-card .invite-divider--dot .invite-divider__dot,
body.theme-royal_green.theme-style-card .invite-divider--dot .invite-divider__dot,
body.theme-royal_blue.theme-style-card .invite-divider--dot .invite-divider__dot,
body.theme-golden_card.theme-style-card .invite-divider--dot .invite-divider__dot {
  background: var(--gold);
}

body.theme-luxury_gold.theme-style-card .hero__conj,
body.theme-green_gold.theme-style-card .hero__conj,
body.theme-royal_red.theme-style-card .hero__conj,
body.theme-royal_green.theme-style-card .hero__conj,
body.theme-royal_blue.theme-style-card .hero__conj,
body.theme-golden_card.theme-style-card .hero__conj {
  color: var(--gold);
}

body.theme-luxury_gold.theme-style-card .invite-gate__card,
body.theme-green_gold.theme-style-card .invite-gate__card,
body.theme-royal_red.theme-style-card .invite-gate__card,
body.theme-royal_green.theme-style-card .invite-gate__card,
body.theme-royal_blue.theme-style-card .invite-gate__card,
body.theme-golden_card.theme-style-card .invite-gate__card {
  background: linear-gradient(180deg, var(--bg-elevated), var(--bg));
  border-color: color-mix(in srgb, var(--gold) 40%, transparent);
  color: var(--text);
}

body.theme-luxury_gold.theme-style-card .invite-gate,
body.theme-green_gold.theme-style-card .invite-gate,
body.theme-royal_red.theme-style-card .invite-gate,
body.theme-royal_green.theme-style-card .invite-gate,
body.theme-royal_blue.theme-style-card .invite-gate,
body.theme-golden_card.theme-style-card .invite-gate {
  background-image: linear-gradient(180deg, var(--bg), var(--ambient-base-bot, var(--bg)));
}

body.theme-luxury_gold.theme-style-card .invite-gate__lock,
body.theme-green_gold.theme-style-card .invite-gate__lock,
body.theme-royal_red.theme-style-card .invite-gate__lock,
body.theme-royal_green.theme-style-card .invite-gate__lock,
body.theme-royal_blue.theme-style-card .invite-gate__lock,
body.theme-golden_card.theme-style-card .invite-gate__lock {
  background: linear-gradient(135deg, var(--gold), color-mix(in srgb, var(--gold) 70%, #000));
  color: var(--bg);
}

/* —— Green White: previewdagi yashil-oq karta —— */
body.theme-green_white.theme-style-card .hero,
body.theme-green_white.theme-style-card .invite-gate,
body.theme-green_white.theme-style-card {
  background-image:
    linear-gradient(180deg, #d8e8dc 0%, #eef6f0 28%, #f7fbf8 100%);
  background-color: #f7fbf8;
}

body.theme-green_white.theme-style-card .hero__cover {
  background:
    radial-gradient(ellipse 40% 55% at 25% 30%, rgba(138, 176, 144, 0.55), transparent 62%),
    radial-gradient(ellipse 45% 50% at 78% 35%, rgba(90, 138, 104, 0.35), transparent 58%),
    linear-gradient(180deg, #6a9a78 0%, #a8c9b0 42%, #dcead9 100%);
}

body.theme-green_white.theme-style-card .hero__cover-leaf {
  background: #4a7a58;
  opacity: 0.5;
}

body.theme-green_white.theme-style-card .hero__cover-leaf--r {
  background: #3d6a4a;
}

body.theme-green_white.theme-style-card .hero__frame,
body.theme-green_white.theme-style-card .invite-gate__card,
body.theme-green_white.theme-style-card .panel {
  background: linear-gradient(180deg, #ffffff, #f4faf6);
  border-color: #a8c9b4;
}

body.theme-green_white.theme-style-card .hero__frame::before,
body.theme-green_white.theme-style-card .invite-gate__card::before,
body.theme-green_white.theme-style-card .panel::before {
  border-color: rgba(47, 107, 79, 0.35);
}

body.theme-green_white.theme-style-card .hero__orn,
body.theme-green_white.theme-style-card .invite-gate__corner {
  color: #2f6b4f;
}

body.theme-green_white.theme-style-card .hero__headline,
body.theme-green_white.theme-style-card .invite-gate__headline,
body.theme-green_white.theme-style-card .hero__name,
body.theme-green_white.theme-style-card .invite-gate__names {
  color: #1a2e24 !important;
}

body.theme-green_white.theme-style-card .invite-gate__kicker,
body.theme-green_white.theme-style-card .hero__kicker {
  color: #5a7a66;
}

body.theme-green_white.theme-style-card .invite-gate__amp,
body.theme-green_white.theme-style-card .hero__conj {
  color: #2f6b4f;
}

body.theme-green_white.theme-style-card .invite-gate__date-dots,
body.theme-green_white.theme-style-card .hero__datedots {
  color: #4a7a5c;
}

body.theme-green_white.theme-style-card .btn--gold,
body.theme-green_white.theme-style-card .invite-gate__lock {
  background: linear-gradient(135deg, #3d8a62, #2f6b4f);
  color: #f4faf6;
}

/* —— Purple Flower —— */
body.theme-purple_flower.theme-style-card .hero,
body.theme-purple_flower.theme-style-card .invite-gate {
  background-image:
    radial-gradient(ellipse 55% 40% at 12% 8%, rgba(201, 160, 216, 0.4), transparent 50%),
    radial-gradient(ellipse 50% 35% at 90% 5%, rgba(123, 63, 160, 0.14), transparent 45%),
    linear-gradient(180deg, #fdfaff, #faf5ff);
}

body.theme-purple_flower.theme-style-card .hero__orn,
body.theme-purple_flower.theme-style-card .invite-gate__corner {
  color: #7b3fa0;
}

/* —— Modern Floral / Sakura / Orchid / Glass Pink —— */
body.theme-modern_floral.theme-style-card .hero,
body.theme-sakura.theme-style-card .hero,
body.theme-orchid.theme-style-card .hero,
body.theme-glass_pink.theme-style-card .hero,
body.theme-modern_floral.theme-style-card .invite-gate,
body.theme-sakura.theme-style-card .invite-gate,
body.theme-orchid.theme-style-card .invite-gate,
body.theme-glass_pink.theme-style-card .invite-gate {
  background-image:
    radial-gradient(ellipse 50% 40% at 10% 12%, rgba(255, 200, 215, 0.45), transparent 50%),
    radial-gradient(ellipse 45% 35% at 92% 6%, rgba(212, 132, 154, 0.16), transparent 45%),
    linear-gradient(180deg, #fffbfc, #fff8fa);
}

body.theme-modern_floral.theme-style-card .hero__orn,
body.theme-sakura.theme-style-card .hero__orn,
body.theme-orchid.theme-style-card .hero__orn,
body.theme-glass_pink.theme-style-card .hero__orn,
body.theme-modern_floral.theme-style-card .invite-gate__corner,
body.theme-sakura.theme-style-card .invite-gate__corner,
body.theme-orchid.theme-style-card .invite-gate__corner,
body.theme-glass_pink.theme-style-card .invite-gate__corner {
  color: var(--rose);
}

/* —— Cloud Castle —— */
body.theme-cloud_castle.theme-style-card .hero,
body.theme-cloud_castle.theme-style-card .invite-gate {
  background-image: linear-gradient(180deg, #b8d4ec 0%, #dceaf6 42%, #eef4fa 100%);
}

body.theme-cloud_castle.theme-style-card .hero__orn,
body.theme-cloud_castle.theme-style-card .invite-gate__corner {
  display: none;
}

/* —— Ivory Love —— */
body.theme-ivory_love.theme-style-card .hero,
body.theme-ivory_love.theme-style-card .invite-gate {
  background-image: linear-gradient(170deg, #fcfaf6 0%, #f3eee4 50%, #faf7f0 100%);
}

body.theme-ivory_love.theme-style-card .hero__orn,
body.theme-ivory_love.theme-style-card .invite-gate__corner {
  color: #a89070;
}

/* —— Bahor —— */
body.theme-bahor.theme-style-card .hero,
body.theme-bahor.theme-style-card .invite-gate {
  background-image:
    radial-gradient(circle at 20% 8%, rgba(224, 80, 112, 0.12), transparent 32%),
    radial-gradient(circle at 80% 6%, rgba(80, 128, 224, 0.1), transparent 28%),
    linear-gradient(180deg, #ffffff, #f7fcf9);
}

body.theme-bahor.theme-style-card .hero__orn,
body.theme-bahor.theme-style-card .invite-gate__corner {
  color: #5a9a78;
}

/* —— Red Rose: previewdagi yurak + atirgul —— */
.theme-heart {
  position: relative;
  width: min(100%, 22rem);
  margin: 0.35rem auto 0.5rem;
  aspect-ratio: 400 / 420;
}

.theme-heart__svg {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.theme-heart__inner {
  position: absolute;
  inset: 22% 18% 28%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 1;
  pointer-events: none;
}

.theme-heart__inner .invite-gate__headline,
.theme-heart__inner .hero__headline {
  color: #e0bc4a !important;
  font-size: clamp(1.55rem, 5vw, 2.15rem);
  margin: 0 0 0.35rem;
}

.theme-heart__inner .invite-gate__names,
.theme-heart__inner .hero__title {
  margin: 0;
  gap: 0.05rem;
}

.theme-heart__inner .invite-gate__name,
.theme-heart__inner .hero__name {
  color: #f8ecee !important;
  font-size: clamp(1.35rem, 4.2vw, 1.85rem);
}

.theme-heart__inner .invite-gate__amp,
.theme-heart__inner .hero__conj {
  color: #c9a227 !important;
  font-size: 0.85em;
}

body.theme-red_rose.theme-style-card,
body.theme-red_rose.theme-style-card .hero,
body.theme-red_rose.theme-style-card .invite-gate {
  background-color: #1a060c;
  background-image: linear-gradient(180deg, #4a1220 0%, #1a060c 100%);
}

body.theme-red_rose.theme-style-card .hero--heart {
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
}

body.theme-red_rose.theme-style-card .hero--heart .hero__stage {
  margin-top: 0;
  width: min(calc(100% - 1.5rem), 26rem);
}

body.theme-red_rose.theme-style-card .hero--heart .hero__frame {
  display: none;
}

body.theme-red_rose.theme-style-card .hero--heart .hero__content {
  padding-top: 0.5rem;
}

body.theme-red_rose.theme-style-card .invite-gate__card,
body.theme-red_rose.theme-style-card.layout-romantic .invite-gate__card {
  background: transparent;
  border: none;
  box-shadow: none;
  max-width: min(100%, 26rem);
  padding: 1.25rem 0.75rem 1.5rem;
}

body.theme-red_rose.theme-style-card .invite-gate__card::before {
  display: none;
}

body.theme-red_rose.theme-style-card .invite-gate__kicker,
body.theme-red_rose.theme-style-card .hero__kicker {
  color: #c9a227;
  letter-spacing: 0.28em;
}

body.theme-red_rose.theme-style-card .invite-gate__date-dots,
body.theme-red_rose.theme-style-card .hero__datedots {
  color: #c9a227;
}

body.theme-red_rose.theme-style-card .invite-gate__hint,
body.theme-red_rose.theme-style-card .hero__sub,
body.theme-red_rose.theme-style-card .hero__ayah-line,
body.theme-red_rose.theme-style-card .hero__ayah-ref {
  color: rgba(248, 236, 238, 0.65);
}

body.theme-red_rose.theme-style-card .invite-divider--dot .invite-divider__line {
  background: color-mix(in srgb, #c9a227 55%, transparent);
}

body.theme-red_rose.theme-style-card .invite-divider--dot .invite-divider__dot {
  background: #c9a227;
}

body.theme-red_rose.theme-style-card .invite-gate__lock,
body.theme-red_rose.theme-style-card .btn--gold {
  background: linear-gradient(135deg, #c03048, #7a1528);
  color: #f8ecee;
  box-shadow: 0 12px 28px rgba(192, 48, 72, 0.35);
}

body.theme-red_rose.theme-style-card .btn--line {
  border-color: color-mix(in srgb, #c9a227 45%, transparent);
  color: #f8ecee;
  background: transparent;
}

body.theme-red_rose.theme-style-card .panel {
  background: linear-gradient(180deg, #2a1018, #1a080c);
  border-color: color-mix(in srgb, #c9a227 40%, transparent);
  color: #f8ecee;
}

body.theme-red_rose.theme-style-card .panel::before {
  border-color: color-mix(in srgb, #c9a227 28%, transparent);
}

body.theme-red_rose.theme-style-card .lead,
body.theme-red_rose.theme-style-card .prose,
body.theme-red_rose.theme-style-card .quote-block,
body.theme-red_rose.theme-style-card .sec-head__title {
  color: #f8ecee;
}

body.theme-luxury_gold.theme-style-card .panel,
body.theme-green_gold.theme-style-card .panel,
body.theme-royal_red.theme-style-card .panel,
body.theme-royal_green.theme-style-card .panel,
body.theme-royal_blue.theme-style-card .panel,
body.theme-golden_card.theme-style-card .panel {
  background: linear-gradient(180deg, var(--bg-elevated), var(--bg));
  border-color: color-mix(in srgb, var(--gold) 40%, transparent);
  color: var(--text);
}

body.theme-luxury_gold.theme-style-card .panel::before,
body.theme-green_gold.theme-style-card .panel::before,
body.theme-royal_red.theme-style-card .panel::before,
body.theme-royal_green.theme-style-card .panel::before,
body.theme-royal_blue.theme-style-card .panel::before,
body.theme-golden_card.theme-style-card .panel::before {
  border-color: color-mix(in srgb, var(--gold) 28%, transparent);
}

body.theme-purple_flower.theme-style-card .hero__cover {
  background:
    radial-gradient(ellipse 50% 60% at 20% 30%, rgba(201, 160, 216, 0.55), transparent 60%),
    radial-gradient(ellipse 45% 55% at 85% 25%, rgba(123, 63, 160, 0.3), transparent 55%),
    linear-gradient(180deg, #c9a0d8, #efe4f6 70%, #fdfaff);
}

body.theme-modern_floral.theme-style-card .hero__cover,
body.theme-sakura.theme-style-card .hero__cover,
body.theme-orchid.theme-style-card .hero__cover,
body.theme-glass_pink.theme-style-card .hero__cover {
  background:
    radial-gradient(ellipse 50% 55% at 18% 40%, rgba(255, 180, 200, 0.55), transparent 60%),
    linear-gradient(180deg, #e8a0b4, #f8d5de 55%, #fff8fa);
}

body.theme-cloud_castle.theme-style-card .hero__cover {
  background:
    radial-gradient(ellipse 70% 50% at 50% 20%, rgba(168, 192, 212, 0.55), transparent 60%),
    linear-gradient(180deg, #7a9ab8, #c5d6e6 60%, #f2f6fa);
}

body.theme-ivory_love.theme-style-card .hero__cover {
  background: linear-gradient(180deg, #d4c4a8, #ebe2d2 55%, #fcfaf6);
}

body.theme-bahor.theme-style-card .hero__cover {
  background:
    radial-gradient(circle at 25% 30%, rgba(224, 80, 112, 0.28), transparent 40%),
    radial-gradient(circle at 75% 25%, rgba(80, 128, 224, 0.22), transparent 38%),
    linear-gradient(180deg, #7eb896, #d8efe0 65%, #f7fcf9);
}

body.theme-luxury_gold.theme-style-card .hero__cover,
body.theme-green_gold.theme-style-card .hero__cover,
body.theme-royal_red.theme-style-card .hero__cover,
body.theme-royal_green.theme-style-card .hero__cover,
body.theme-royal_blue.theme-style-card .hero__cover,
body.theme-golden_card.theme-style-card .hero__cover {
  background:
    radial-gradient(ellipse 55% 50% at 50% 20%, color-mix(in srgb, var(--gold) 35%, transparent), transparent 55%),
    linear-gradient(180deg, color-mix(in srgb, var(--bg) 70%, #000), var(--bg));
}

@media (max-width: 640px) {
  .theme-heart {
    width: min(100%, 18.5rem);
  }

  .theme-heart__inner {
    inset: 24% 16% 30%;
  }
}


/* —— Gul bezaklari (previewdagi blossomlar) —— */
.theme-decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: visible;
}

.theme-decor__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
}

.theme-decor__blob--tl {
  width: 11rem;
  height: 10rem;
  top: -3rem;
  left: -4rem;
  background: radial-gradient(circle, rgba(201, 160, 216, 0.55), transparent 70%);
}

.theme-decor__blob--tr {
  width: 10rem;
  height: 9rem;
  top: -2.5rem;
  right: -3.5rem;
  background: radial-gradient(circle, rgba(123, 63, 160, 0.35), transparent 70%);
}

.theme-decor__blob--bl {
  width: 10rem;
  height: 9rem;
  bottom: -3rem;
  left: -3.5rem;
  background: radial-gradient(circle, rgba(123, 63, 160, 0.3), transparent 70%);
}

.theme-decor__blob--br {
  width: 11rem;
  height: 10rem;
  bottom: -3.5rem;
  right: -4rem;
  background: radial-gradient(circle, rgba(201, 160, 216, 0.45), transparent 70%);
}

.theme-decor__blob--pink.theme-decor__blob--tl,
.theme-decor__blob--pink.theme-decor__blob--br {
  background: radial-gradient(circle, rgba(232, 160, 180, 0.5), transparent 70%);
}

.theme-decor__blob--pink.theme-decor__blob--tr,
.theme-decor__blob--pink.theme-decor__blob--bl {
  background: radial-gradient(circle, rgba(196, 91, 138, 0.32), transparent 70%);
}

.theme-decor__bloom {
  position: absolute;
  line-height: 0;
}

.theme-decor__bloom svg { display: block; }

.theme-decor__bloom--a { top: 0.85rem; left: 0.75rem; }
.theme-decor__bloom--b { top: 0.35rem; left: 3.85rem; }
.theme-decor__bloom--c { top: 3.4rem; left: 0.4rem; }
.theme-decor__bloom--d { top: 0.65rem; right: 0.75rem; }
.theme-decor__bloom--e { top: 2.85rem; right: 0.4rem; }
.theme-decor__bloom--f { bottom: 0.85rem; left: 0.7rem; }
.theme-decor__bloom--g { bottom: 0.35rem; left: 3.4rem; }
.theme-decor__bloom--h { bottom: 0.8rem; right: 0.75rem; }
.theme-decor__bloom--i { bottom: 0.3rem; right: 3.3rem; }

.theme-wave-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0.35rem 0 0.55rem;
}

.theme-wave {
  width: min(100%, 18rem);
  height: 1.1rem;
}

body.ornament-purple_flower.theme-style-card .invite-gate,
body.ornament-purple_flower.theme-style-card .hero,
body.ornament-purple_flower.theme-style-card {
  background-color: #faf6f0;
  background-image: linear-gradient(180deg, #faf6f0, #f3ebe0);
}

body.theme-style-card .invite-gate--bloom .invite-gate__card,
body.theme-style-card.layout-romantic .invite-gate--bloom .invite-gate__card {
  position: relative;
  overflow: visible;
  background: transparent;
  border: none;
  box-shadow: none;
  max-width: min(100%, 26rem);
  padding: 1.5rem 1rem 1.75rem;
}

body.theme-style-card .invite-gate--bloom .invite-gate__card::before {
  display: none;
}

body.theme-style-card .hero--bloom .hero__stage {
  margin-top: 0 !important;
  width: min(calc(100% - 1.25rem), var(--card-max, 26rem));
  position: relative;
  overflow: visible;
}

/* Gul/bloblar burchakda to‘liq ko‘rinsin — umumiy card overflow ni yumshatamiz */
body.theme-style-card .invite-gate--bloom,
body.theme-style-card .hero--bloom {
  overflow: visible;
}

body.theme-style-card .hero--bloom .hero__frame {
  display: none;
}

body.theme-style-card .hero--bloom {
  padding-top: clamp(1.1rem, 3.5vw, 1.85rem);
  padding-bottom: 0.75rem;
}

body.theme-style-card .hero--bloom .hero__content {
  padding-bottom: clamp(1.35rem, 3.5vw, 1.85rem);
}

body.ornament-purple_flower .invite-gate__kicker,
body.ornament-purple_flower .hero__kicker {
  color: #7b3fa0;
}

body.ornament-purple_flower .invite-gate__headline,
body.ornament-purple_flower .hero__headline,
body.ornament-purple_flower .invite-gate__names,
body.ornament-purple_flower .hero__name {
  color: #2a1838 !important;
}

body.ornament-purple_flower .invite-gate__amp,
body.ornament-purple_flower .hero__conj,
body.ornament-purple_flower .invite-divider--dot .invite-divider__dot {
  color: #c9a227;
  background-color: #c9a227;
}

body.ornament-purple_flower .invite-gate__date-dots,
body.ornament-purple_flower .hero__datedots {
  color: #7b3fa0;
}

body.ornament-purple_flower .invite-gate__lock,
body.ornament-purple_flower .btn--gold {
  background: linear-gradient(135deg, #9a5bc0, #7b3fa0);
  color: #faf6f0;
}

body.ornament-pink_floral.theme-style-card .invite-gate,
body.ornament-pink_floral.theme-style-card .hero,
body.ornament-sakura_floral.theme-style-card .invite-gate,
body.ornament-sakura_floral.theme-style-card .hero,
body.ornament-orchid_floral.theme-style-card .invite-gate,
body.ornament-orchid_floral.theme-style-card .hero,
body.theme-bahor.ornament-pink_floral.theme-style-card .invite-gate,
body.theme-bahor.ornament-pink_floral.theme-style-card .hero {
  background-image:
    radial-gradient(ellipse 50% 40% at 10% 12%, rgba(255, 200, 215, 0.45), transparent 50%),
    radial-gradient(ellipse 45% 35% at 92% 6%, rgba(212, 132, 154, 0.16), transparent 45%),
    linear-gradient(180deg, #fffbfc, #fff8fa);
}

body.theme-bahor.ornament-pink_floral.theme-style-card .invite-gate,
body.theme-bahor.ornament-pink_floral.theme-style-card .hero {
  background-image:
    radial-gradient(circle at 20% 8%, rgba(224, 80, 112, 0.12), transparent 32%),
    radial-gradient(circle at 80% 6%, rgba(80, 128, 224, 0.1), transparent 28%),
    linear-gradient(180deg, #ffffff, #f7fcf9);
}

@media (max-width: 640px) {
  .theme-decor__bloom--a { transform: scale(0.82); transform-origin: top left; }
  .theme-decor__bloom--d { transform: scale(0.82); transform-origin: top right; }
  .theme-decor__bloom--f { transform: scale(0.82); transform-origin: bottom left; }
  .theme-decor__bloom--h { transform: scale(0.82); transform-origin: bottom right; }
  .theme-decor__bloom--b,
  .theme-decor__bloom--c,
  .theme-decor__bloom--e,
  .theme-decor__bloom--g,
  .theme-decor__bloom--i { transform: scale(0.75); }
}

/* —— Formal / oriental / royal: preview bilan mutanosib —— */
.theme-formal__corners {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}

.theme-formal__corner {
  position: absolute;
  color: var(--gold, #c9a227);
  line-height: 0;
}

.theme-formal__corner--tl { top: 0.35rem; left: 0.35rem; }
.theme-formal__corner--tr { top: 0.35rem; right: 0.35rem; transform: scaleX(-1); }
.theme-formal__corner--bl { bottom: 0.35rem; left: 0.35rem; transform: scaleY(-1); }
.theme-formal__corner--br { bottom: 0.35rem; right: 0.35rem; transform: scale(-1); }

.theme-formal__orn {
  display: block;
  width: clamp(3.5rem, 18vw, 5.75rem);
  height: auto;
}

.theme-crest {
  display: flex;
  justify-content: center;
  color: var(--gold, #c9a227);
  margin: 0.15rem 0 0.55rem;
  line-height: 0;
}

.theme-royal-bands {
  display: flex;
  justify-content: center;
  width: 100%;
  color: var(--gold, #c9a227);
  margin: 0.25rem 0 0.65rem;
  line-height: 0;
}

.theme-royal-bands__svg {
  width: min(100%, 22rem);
  height: auto;
}

.theme-formal__footer {
  margin: 0.85rem 0 0.35rem;
  font-family: var(--font-display, Georgia, serif);
  font-size: 0.78rem;
  letter-spacing: 0.28em;
  text-transform: none;
  color: color-mix(in srgb, var(--gold, #c9a227) 85%, transparent);
  opacity: 0.85;
}

body.theme-style-card .invite-gate--formal .invite-gate__card,
body.theme-style-card .hero--formal .hero__stage {
  position: relative;
  overflow: visible;
}

body.theme-style-card .invite-gate--formal .invite-gate__corners,
body.theme-style-card .hero--formal .hero__corners {
  display: none;
}

body.theme-style-card .invite-gate--formal .invite-gate__tpl {
  position: relative;
  z-index: 3;
  padding: 1.75rem 1.35rem 1.5rem;
}

body.theme-style-card .hero--formal .hero__content {
  position: relative;
  z-index: 3;
  padding-top: 1.25rem;
}

body.theme-style-card .hero--formal {
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
}

body.theme-style-card .hero--formal .hero__cover {
  display: none;
}

/* Yulduzli sharqona naqsh — Green Gold preview */
body.decor-pattern-geo_stars,
body.decor-pattern-geo_stars .invite-gate,
body.decor-pattern-geo_stars .hero {
  background-color: #0f2a22;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M24 4 L30 18 L44 18 L33 28 L37 42 L24 34 L11 42 L15 28 L4 18 L18 18 Z' fill='none' stroke='%23c9a227' stroke-width='0.7' opacity='0.28'/%3E%3Crect x='20' y='20' width='8' height='8' transform='rotate(45 24 24)' fill='none' stroke='%23c9a227' stroke-width='0.5' opacity='0.2'/%3E%3C/svg%3E"),
    linear-gradient(180deg, #1a4a3c, #0a221c);
  background-size: 48px 48px, auto;
  background-repeat: repeat, no-repeat;
}

body.decor-pattern-geo_stars .ambient,
body.decor-pattern-geo_stars .ambient__orb,
body.decor-pattern-geo_stars .ambient__mesh {
  opacity: 0.15;
}

body.decor-pattern-clouds .invite-gate,
body.decor-pattern-clouds .hero {
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -5%, rgba(168, 192, 212, 0.45), transparent 55%),
    linear-gradient(180deg, #f8fafc, #f2f6fa);
}

/* —— Cloud Castle sahna (preview bilan bir xil) —— */
.theme-scene {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.theme-scene__sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #b8d4ec 0%, #dceaf6 45%, #eef4fa 100%);
}

.theme-scene__clouds {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(5.5rem, 20vw, 9.5rem);
  display: block;
}

.theme-scene__castle-wrap {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0.85rem auto 0;
  line-height: 0;
  pointer-events: none;
}

.theme-scene__castle {
  display: block;
  width: min(88%, 18rem);
  height: auto;
  max-height: 7.5rem;
}

body.theme-style-card .invite-gate--scene,
body.theme-style-card .hero--scene,
body.ornament-cloud_castle.theme-style-card,
body.ornament-cloud_castle.theme-style-card .invite-gate,
body.ornament-cloud_castle.theme-style-card .hero {
  background-color: #eef4fa;
  background-image: linear-gradient(180deg, #b8d4ec 0%, #dceaf6 42%, #eef4fa 100%);
}

body.theme-style-card .invite-gate--scene .invite-gate__card,
body.theme-style-card.layout-editorial .invite-gate--scene .invite-gate__card {
  position: relative;
  overflow: visible;
  background: transparent;
  border: none;
  box-shadow: none;
  max-width: min(100%, var(--card-max, 26rem));
  min-height: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.theme-style-card .invite-gate--scene .invite-gate__card::before {
  display: none;
}

body.theme-style-card .invite-gate--scene .invite-gate__corners,
body.theme-style-card .hero--scene .hero__corners {
  display: none !important;
}

body.theme-style-card .invite-gate--scene .invite-gate__tpl {
  position: relative;
  z-index: 2;
  padding: clamp(4.25rem, 14vw, 5.75rem) clamp(1rem, 3.5vw, 1.35rem) 0.85rem;
  gap: 0;
}

body.theme-style-card .invite-gate--scene .invite-gate__hint {
  margin-bottom: 0.85rem;
}

body.theme-style-card .invite-gate--scene .invite-gate__inner {
  max-width: min(96vw, calc(var(--card-max, 26rem) + 2rem));
}

body.theme-style-card .hero--scene {
  padding-top: 0;
  padding-bottom: 0.75rem;
  min-height: auto;
  margin-bottom: 0;
}

body.theme-style-card .hero--scene .hero__stage {
  position: relative;
  overflow: visible;
  width: min(calc(100% - 1.25rem), var(--card-max, 26rem));
  margin-top: 0 !important;
  margin-bottom: 0;
  border: none;
  box-shadow: none;
  background: transparent;
  border-radius: 0;
  min-height: 0;
}

body.theme-style-card .hero--scene .hero__frame,
body.theme-style-card .hero--scene .hero__cover {
  display: none !important;
}

body.theme-style-card .hero--scene .hero__content {
  position: relative;
  z-index: 2;
  padding: clamp(3.75rem, 12vw, 5.25rem) clamp(1rem, 3.5vw, 1.35rem) 0.35rem;
}

body.theme-style-card .hero--scene .hero__actions {
  margin-top: 1rem;
  margin-bottom: 0;
}

body.theme-style-card .hero--scene .hero__scroll {
  display: none;
}

body.ornament-cloud_castle.theme-style-card .shell {
  position: relative;
  z-index: 3;
  margin-top: 0.35rem;
}

body.ornament-cloud_castle .invite-gate__kicker,
body.ornament-cloud_castle .hero__kicker {
  color: #5b7c9e;
}

body.ornament-cloud_castle .invite-gate__names,
body.ornament-cloud_castle .hero__name {
  color: #1e2a38 !important;
}

body.ornament-cloud_castle .invite-gate__amp,
body.ornament-cloud_castle .hero__conj,
body.ornament-cloud_castle .invite-divider--dot .invite-divider__dot {
  color: #5b7c9e;
  background-color: #5b7c9e;
}

body.ornament-cloud_castle .invite-divider--dot .invite-divider__line {
  background: color-mix(in srgb, #5b7c9e 55%, transparent);
}

body.ornament-cloud_castle .invite-gate__date-dots,
body.ornament-cloud_castle .hero__datedots {
  color: #3d5a78;
}

body.ornament-cloud_castle .invite-gate__hint {
  color: #5b7c9e;
}

body.ornament-cloud_castle .invite-gate__lock,
body.ornament-cloud_castle .btn--gold {
  background: linear-gradient(135deg, #5b7c9e, #3d5a78);
  color: #f8fafc;
}

body.ornament-cloud_castle .ambient,
body.ornament-cloud_castle .ambient__orb {
  opacity: 0.1;
}

@media (max-width: 640px) {
  body.theme-style-card .invite-gate--scene .invite-gate__tpl,
  body.theme-style-card .hero--scene .hero__content {
    padding-top: clamp(3.5rem, 16vw, 4.75rem);
  }

  .theme-scene__castle {
    width: min(92%, 15.5rem);
    max-height: 6.25rem;
  }

  .theme-scene__castle-wrap {
    margin-top: 0.65rem;
  }
}

@media (min-width: 1024px) {
  body.theme-style-card .invite-gate--scene .invite-gate__card,
  body.theme-style-card .hero--scene .hero__stage {
    max-width: var(--card-max, 28rem);
    width: min(100%, var(--card-max, 28rem));
  }

  .theme-scene__castle {
    width: min(82%, 19rem);
    max-height: 8rem;
  }
}

body.decor-frame-double_gold.theme-style-card .invite-gate--formal .invite-gate__card,
body.decor-frame-double_gold.theme-style-card .hero--formal .hero__stage {
  border: 1.5px solid var(--gold, #c9a227);
  box-shadow: inset 0 0 0 6px transparent, inset 0 0 0 7px color-mix(in srgb, var(--gold, #c9a227) 40%, transparent);
  background: color-mix(in srgb, var(--bg-elevated, #0f2a22) 72%, transparent);
  border-radius: 0.35rem;
  max-width: min(100%, var(--card-max, 26.5rem));
  width: 100%;
  box-sizing: border-box;
}

body.decor-frame-double_gold.theme-style-card .invite-gate--formal .invite-gate__card::before,
body.decor-frame-double_gold.theme-style-card .hero--formal .hero__frame::before {
  display: none;
}

body.decor-frame-double_gold.theme-style-card .hero--formal .hero__frame {
  display: none;
}

body.theme-green_gold.theme-style-card .theme-formal__corner,
body.theme-green_gold.theme-style-card .theme-crest,
body.theme-luxury_gold.theme-style-card .theme-formal__corner,
body.theme-luxury_gold.theme-style-card .theme-crest,
body.theme-golden_card.theme-style-card .theme-formal__corner,
body.theme-golden_card.theme-style-card .theme-crest,
body.theme-royal_red.theme-style-card .theme-royal-bands,
body.theme-royal_green.theme-style-card .theme-royal-bands,
body.theme-royal_blue.theme-style-card .theme-royal-bands {
  color: #c9a227;
}

@media (max-width: 640px) {
  .theme-formal__orn {
    width: clamp(2.75rem, 16vw, 4.25rem);
  }
  .theme-formal__corner--tl { top: 0.2rem; left: 0.2rem; }
  .theme-formal__corner--tr { top: 0.2rem; right: 0.2rem; }
  .theme-formal__corner--bl { bottom: 0.2rem; left: 0.2rem; }
  .theme-formal__corner--br { bottom: 0.2rem; right: 0.2rem; }
}

/* =========================================================
   Responsive: phone / tablet / desktop / landscape
   ========================================================= */

/* Kichik telefonlar */
@media (max-width: 380px) {
  body.theme-style-card {
    --card-max: calc(100vw - 1.25rem);
    --card-pad-x: 0.85rem;
    --card-pad-y: 1.25rem;
    --card-inset: 0.4rem;
  }

  body.theme-style-card .hero__cover {
    height: clamp(7.5rem, 32vw, 10rem);
  }

  body.theme-style-card .hero__kicker,
  body.theme-style-card .invite-gate__kicker {
    font-size: 0.7rem;
    letter-spacing: 0.16em;
  }

  body.theme-style-card .hero__datedots,
  body.theme-style-card .invite-gate__date-dots {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
  }

  body.theme-style-card .hero__sub {
    font-size: 0.74rem;
  }

  body.theme-style-card .invite-gate__lock,
  body.theme-style-card.layout-garden .invite-gate__lock,
  body.theme-style-card.layout-formal .invite-gate__lock,
  body.theme-style-card.layout-gallery .invite-gate__lock,
  body.theme-style-card.layout-festival .invite-gate__lock,
  body.theme-style-card.layout-editorial .invite-gate__lock {
    min-width: 0;
    width: 100%;
    max-width: 16rem;
  }

  body.theme-style-card .invite-gate__lock-label--visible,
  body.theme-style-card .invite-gate__lock--tpl .invite-gate__lock-label {
    white-space: normal;
    font-size: 0.88rem;
    line-height: 1.25;
  }

  .theme-heart {
    width: min(100%, 16.5rem);
  }

  .theme-crest svg {
    width: 5.5rem;
    height: auto;
  }

  .theme-royal-bands__svg {
    width: min(100%, 16rem);
  }

  .theme-formal__footer {
    font-size: 0.68rem;
    letter-spacing: 0.18em;
  }

  body.theme-style-card .invite-gate--formal .invite-gate__tpl {
    padding: 1.15rem 0.75rem 1.15rem;
  }

  body.decor-frame-double_gold.theme-style-card .invite-gate--formal .invite-gate__card,
  body.decor-frame-double_gold.theme-style-card .hero--formal .hero__stage {
    box-shadow: inset 0 0 0 4px transparent, inset 0 0 0 5px color-mix(in srgb, var(--gold, #c9a227) 40%, transparent);
  }
}

/* Telefonlar */
@media (max-width: 640px) {
  body.theme-style-card {
    --card-max: min(24rem, calc(100vw - 1.5rem));
  }

  body.theme-style-card .hero__stage,
  body.theme-style-card .shell {
    width: min(calc(100% - 1.1rem), var(--card-max));
  }

  body.theme-style-card .hero--bloom .hero__stage,
  body.theme-red_rose.theme-style-card .hero--heart .hero__stage,
  body.theme-style-card .hero--formal .hero__stage {
    width: min(calc(100% - 1.1rem), var(--card-max));
  }

  body.theme-style-card .panel {
    padding-inline: clamp(0.95rem, 3.5vw, 1.35rem);
  }

  body.theme-style-card .dock {
    width: min(calc(100% - 0.75rem), calc(var(--card-max) + 1.5rem));
    border-radius: 1rem;
    font-size: 0.65rem;
  }

  body.theme-style-card .invite-gate--bloom .invite-gate__card,
  body.theme-style-card.layout-romantic .invite-gate--bloom .invite-gate__card {
    max-width: min(100%, var(--card-max));
    padding: 1.25rem 0.85rem 1.45rem;
  }

  .theme-wave {
    width: min(100%, 15rem);
  }

  .theme-decor__bloom--a { top: 0.55rem; left: 0.4rem; }
  .theme-decor__bloom--d { top: 0.45rem; right: 0.4rem; }
  .theme-decor__bloom--f { bottom: 0.55rem; left: 0.4rem; }
  .theme-decor__bloom--h { bottom: 0.5rem; right: 0.4rem; }
}

/* Planshet */
@media (min-width: 641px) and (max-width: 1023px) {
  body.theme-style-card {
    --card-max: min(28rem, calc(100vw - 3rem));
    --card-pad-x: clamp(1.35rem, 3vw, 2rem);
    --card-pad-y: clamp(1.85rem, 3.5vw, 2.75rem);
  }

  body.theme-style-card .hero__cover {
    height: clamp(11rem, 22vw, 15rem);
  }

  body.theme-style-card .hero__stage,
  body.theme-style-card .shell {
    width: min(calc(100% - 2.5rem), var(--card-max));
  }

  body.theme-style-card .invite-gate__card {
    max-width: min(100%, var(--card-max));
  }

  .theme-heart {
    width: min(100%, 24rem);
  }

  .theme-formal__orn {
    width: clamp(4rem, 12vw, 5.5rem);
  }
}

/* Desktop */
@media (min-width: 1024px) {
  body.theme-style-card {
    --card-max: 28rem;
    --card-pad-x: 2rem;
    --card-pad-y: 2.75rem;
  }

  body.theme-style-card .hero {
    padding-bottom: clamp(2.5rem, 4vw, 3.5rem);
  }

  body.theme-style-card .hero__cover {
    height: clamp(12rem, 16vw, 16rem);
  }

  body.theme-style-card .hero__stage,
  body.theme-style-card .shell {
    width: min(calc(100% - 3rem), var(--card-max));
  }

  body.theme-style-card .invite-gate__inner {
    max-width: min(92vw, calc(var(--card-max) + 3rem));
  }

  body.theme-style-card .dock {
    width: min(calc(100% - 2rem), calc(var(--card-max) + 3rem));
  }

  .theme-heart {
    width: min(100%, 24rem);
  }
}

/* Katta monitor */
@media (min-width: 1440px) {
  body.theme-style-card {
    --card-max: 30rem;
  }

  body.theme-style-card .hero__name {
    font-size: clamp(2.1rem, 1.6vw + 1rem, 2.75rem);
  }

  body.theme-style-card .invite-gate__names {
    font-size: clamp(1.9rem, 1.4vw + 0.9rem, 2.5rem);
  }
}

/* Past balandlik / landscape telefon — gate sig‘ishi */
@media (max-height: 700px) and (orientation: landscape) {
  body.theme-style-card .invite-gate,
  body.theme-is-pro .invite-gate--tpl {
    align-items: flex-start;
    padding-block: 0.65rem;
  }

  body.theme-style-card .invite-gate__inner {
    margin-block: 0.35rem auto;
  }

  body.theme-style-card .invite-gate__card {
    padding-block: 1rem;
  }

  body.theme-style-card .invite-gate__hint {
    margin-bottom: 0.65rem;
  }

  body.theme-style-card .invite-gate__lock {
    min-height: 2.45rem;
    padding-block: 0.65rem;
  }

  .theme-heart {
    width: min(42vh, 14rem);
  }

  .theme-crest {
    margin-bottom: 0.25rem;
  }

  .theme-crest svg {
    height: 2rem;
    width: auto;
  }

  .theme-royal-bands {
    margin-block: 0.15rem 0.35rem;
  }

  .theme-royal-bands__svg {
    height: 1.75rem;
    width: auto;
  }
}

@media (max-height: 640px) and (orientation: portrait) {
  body.theme-style-card .invite-gate__card {
    padding-block: 1.15rem;
  }

  body.theme-style-card .hero__cover {
    height: clamp(6.5rem, 22vh, 10rem);
  }

  .theme-heart {
    width: min(100%, 15rem);
  }
}

/* Touch: hover transform o‘chiriladi */
@media (hover: none) {
  body.theme-style-card .invite-gate__lock:hover {
    transform: none;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  body.theme-style-card .invite-gate__lock,
  body.theme-style-card .invite-gate__lock:hover {
    transition: none;
    transform: none;
  }
}

/* =========================================================
   Barcha Pro shablonlar — joylashuv / overlap / o‘lcham
   ========================================================= */

body.theme-style-card .hero--heart .hero__stage,
body.theme-style-card .hero--formal .hero__stage,
body.theme-style-card .hero--scene .hero__stage,
body.theme-style-card .hero--bloom .hero__stage {
  margin-top: 0 !important;
}

body.theme-style-card .shell {
  position: relative;
  z-index: 4;
}

body.theme-style-card .hero {
  z-index: 2;
}

body.theme-style-card .hero__actions {
  position: relative;
  z-index: 3;
}

body.theme-red_rose.theme-style-card .hero--heart {
  padding-bottom: 0.75rem;
}

body.theme-style-card .hero--formal {
  padding-bottom: 0.75rem;
}

body.theme-style-card .hero--formal .hero__stage {
  width: min(calc(100% - 1.25rem), var(--card-max, 26rem));
  overflow: visible;
}

/* Dock: tor ekranda ixcham */
@media (max-width: 640px) {
  body.theme-style-card .dock {
    gap: 0.1rem;
    padding-inline: 0.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: flex-start;
    scrollbar-width: none;
  }

  body.theme-style-card .dock::-webkit-scrollbar {
    display: none;
  }

  body.theme-style-card .dock__link {
    flex: 0 0 auto;
    min-width: 3.35rem;
    font-size: 0.58rem;
    letter-spacing: 0.02em;
  }
}

@media (min-width: 641px) and (max-width: 900px) {
  body.theme-style-card .dock {
    width: min(calc(100% - 1rem), calc(var(--card-max) + 4rem));
  }
}

/* Gate: barcha card shablonlarda ortiqcha balandlik yo‘q */
body.theme-style-card .invite-gate__card {
  min-height: 0;
}

body.theme-style-card .invite-gate--tpl .invite-gate__inner {
  max-height: none;
}
