/*
 * ZarinPal Form — public forms, hand-off and result pages (RTL).
 *
 * Structure: one shared base driven by design tokens, then one skin per
 * template (.irf-t-{id}). Every template styles the same markup, so the
 * payment flow never depends on the look. Fonts: fonts.css (El Messiri /
 * Vazirmatn for Persian, Outfit for Latin).
 */

/* ------------------------------------------------------------------ tokens */
.irf, .irf-page, .irf-stage {
  --irf-accent: #eab308;
  --irf-on-accent: #0b0b0f;
  --irf-ink: #0f172a;
  --irf-ink-2: #475569;
  --irf-muted: #64748b;
  --irf-line: #e2e8f0;
  --irf-line-strong: #cbd5e1;
  --irf-surface: #ffffff;
  --irf-soft: #f8fafc;
  --irf-field-bg: #ffffff;
  --irf-field-border: #cbd5e1;
  --irf-card-bg: #ffffff;
  --irf-card-border: #e2e8f0;
  --irf-card-shadow: 0 18px 48px rgba(15, 23, 42, .08);
  --irf-card-radius: 22px;
  --irf-field-radius: 12px;
  --irf-btn-radius: 14px;
  --irf-danger: #b91c1c;
  --irf-danger-soft: #fef2f2;
  --irf-success: #15803d;
  --irf-max: 640px;
  --irf-font: "Outfit", "El Messiri", "Vazirmatn", Tahoma, "Segoe UI", Arial, sans-serif;
}
.irf-font-elmessiri { --irf-font: "Outfit", "El Messiri", Tahoma, "Segoe UI", Arial, sans-serif; }
.irf-font-vazirmatn { --irf-font: "Outfit", "Vazirmatn", Tahoma, "Segoe UI", Arial, sans-serif; }
.irf-font-inherit { --irf-font: inherit; }
.irf-font-system { --irf-font: Tahoma, "Segoe UI", Arial, sans-serif; }

/* ------------------------------------------------------------------ base */
.irf-stage { box-sizing: border-box; }
.irf {
  direction: rtl;
  text-align: right;
  font-family: var(--irf-font);
  color: var(--irf-ink);
  max-width: var(--irf-max);
  margin: 0 auto;
  box-sizing: border-box;
  line-height: 1.85;
  font-size: 16px;
}
.irf *, .irf *::before, .irf *::after { box-sizing: border-box; }
.irf [hidden] { display: none !important; }
.irf-card-wrap {
  position: relative;
  background: var(--irf-card-bg);
  border: 1px solid var(--irf-card-border);
  border-radius: var(--irf-card-radius);
  box-shadow: var(--irf-card-shadow);
  padding: clamp(20px, 4.5vw, 40px);
  overflow: hidden;
}
.irf-glow { display: none; }

.irf-head { text-align: center; margin-bottom: 22px; }
.irf-badge-icon {
  display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 18px;
  color: var(--irf-accent); background: color-mix(in srgb, var(--irf-accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--irf-accent) 32%, transparent); margin-bottom: 14px;
}
.irf-title { margin: 0 0 4px; font-size: clamp(21px, 3.4vw, 27px); font-weight: 700; line-height: 1.55; color: var(--irf-ink); letter-spacing: 0; }
.irf-subtitle { margin: 0; color: var(--irf-muted); font-size: 13.5px; font-weight: 500; }
.irf-desc { color: var(--irf-ink-2); margin: 0 0 20px; font-size: 15px; text-align: center; }
.irf-desc p { margin: 0 0 8px; }
.irf-preview-badge { background: #fef3c7; color: #92400e; border-radius: 10px; padding: 8px 12px; font-size: 13px; margin-bottom: 14px; text-align: center; }

.irf-grid { display: flex; flex-wrap: wrap; gap: 18px 14px; }
.irf-field { flex: 1 1 100%; min-width: 0; }
.irf-w-75 { flex-basis: calc(75% - 7px); }
.irf-w-66 { flex-basis: calc(66.66% - 7px); }
.irf-w-50 { flex-basis: calc(50% - 7px); }
.irf-w-33 { flex-basis: calc(33.33% - 10px); }
.irf-w-25 { flex-basis: calc(25% - 11px); }
@media (max-width: 600px) {
  .irf-w-75, .irf-w-66, .irf-w-50, .irf-w-33, .irf-w-25 { flex-basis: 100%; }
}

.irf-label, .irf-choices legend { display: block; font-weight: 600; font-size: 14px; margin: 0 0 8px; color: var(--irf-ink); padding: 0; }
.irf-sublabel { display: block; font-size: 13px; color: var(--irf-ink-2); margin: 8px 0 4px; }
.irf-req { color: #ef4444; }
.irf-help { font-size: 13px; color: var(--irf-muted); margin: 6px 0 0; }
.irf-error { color: var(--irf-danger); font-size: 13px; margin: 6px 0 0; font-weight: 600; }

.irf-input {
  width: 100%;
  min-height: 50px;
  border: 1.5px solid var(--irf-field-border);
  border-radius: var(--irf-field-radius);
  background: var(--irf-field-bg);
  color: var(--irf-ink);
  padding: 11px 14px;
  font: inherit;
  font-size: 16px;
  transition: border-color .18s, box-shadow .18s, background-color .18s;
  appearance: none;
}
.irf-input::placeholder { color: var(--irf-muted); opacity: .8; }
select.irf-input { background-image: linear-gradient(45deg, transparent 50%, var(--irf-muted) 50%), linear-gradient(135deg, var(--irf-muted) 50%, transparent 50%); background-position: 18px 22px, 24px 22px; background-size: 6px 6px; background-repeat: no-repeat; padding-left: 40px; }
select.irf-input[multiple] { background-image: none; padding-left: 14px; }
textarea.irf-input { min-height: 116px; resize: vertical; }
.irf-input:focus { outline: none; border-color: var(--irf-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--irf-accent) 20%, transparent); }
.irf-input[readonly] { opacity: .8; }
.irf-invalid .irf-input, .irf-invalid .irf-choice, .irf-invalid .irf-check { border-color: var(--irf-danger); }
.irf-input[dir="ltr"] { text-align: left; }

/* inputs with an icon (inline-start; LTR inputs keep the icon on the left) */
.irf-control { position: relative; }
.irf-ico { position: absolute; top: 15px; right: 14px; color: var(--irf-muted); pointer-events: none; display: flex; transition: color .18s; }
.irf-control--icon .irf-input { padding-right: 44px; }
.irf-control--ltr .irf-ico { right: auto; left: 14px; }
.irf-control--ltr .irf-input { padding-right: 14px; padding-left: 44px; }
.irf-control:focus-within .irf-ico { color: var(--irf-accent); }
.irf-control--icon textarea.irf-input + .irf-ico, .irf-control--icon .irf-ico:has(+ textarea) { top: 14px; }
.irf-svg { display: block; flex: none; }

/* choices: list, cards, image cards */
.irf-choices { border: 0; margin: 0; padding: 0; display: grid; gap: 12px; min-width: 0; }
.irf-choice {
  position: relative; display: flex; align-items: center; gap: 12px;
  border: 1.5px solid var(--irf-field-border); border-radius: calc(var(--irf-field-radius) + 2px);
  padding: 13px 15px; cursor: pointer; background: var(--irf-field-bg);
  transition: border-color .18s, background-color .18s, box-shadow .18s, transform .12s;
  min-height: 52px;
}
.irf-choice:hover { border-color: color-mix(in srgb, var(--irf-accent) 70%, var(--irf-field-border)); }
.irf-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.irf-choice-body { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.irf-choice-top { display: flex; align-items: center; gap: 10px; }
.irf-choice-mark { width: 20px; height: 20px; border: 2px solid var(--irf-field-border); border-radius: 50%; flex: none; position: relative; background: transparent; transition: all .18s; }
.irf-choice input[type="checkbox"] ~ .irf-choice-body .irf-choice-mark { border-radius: 6px; }
.irf-choice input:checked ~ .irf-choice-body .irf-choice-mark { border-color: var(--irf-accent); background: var(--irf-accent); box-shadow: inset 0 0 0 3px var(--irf-field-bg); }
.irf-choice input:focus-visible ~ .irf-choice-body .irf-choice-mark { outline: 3px solid color-mix(in srgb, var(--irf-accent) 45%, transparent); outline-offset: 2px; }
.irf-choice:has(input:checked) { border-color: var(--irf-accent); background: color-mix(in srgb, var(--irf-accent) 9%, var(--irf-field-bg)); box-shadow: 0 0 0 1px var(--irf-accent), 0 10px 26px color-mix(in srgb, var(--irf-accent) 14%, transparent); }
.irf-choice-label { flex: 1; font-weight: 600; }
.irf-choice-badge { font-size: 11.5px; font-weight: 700; padding: 1px 9px; border-radius: 999px; color: var(--irf-on-accent); background: var(--irf-accent); white-space: nowrap; }
.irf-choice-desc { color: var(--irf-ink-2); font-size: 13.5px; line-height: 1.8; }
.irf-choice-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 2px; }
.irf-choice-duration { font-size: 12.5px; color: var(--irf-muted); border: 1px solid var(--irf-line-strong); border-radius: 999px; padding: 0 10px; white-space: nowrap; }
.irf-choice-price { font-weight: 700; white-space: nowrap; color: var(--irf-ink); font-size: 15.5px; margin-inline-start: auto; }
.irf-choices--cards .irf-choice { align-items: stretch; padding: 16px; }
@media (min-width: 640px) {
  .irf-choices--cards { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
  .irf-choices--cards legend { grid-column: 1 / -1; }
  .irf-choices--cards .irf-choice { min-height: 118px; }
  .irf-choices--cards .irf-choice-meta { margin-top: auto; }
  .irf-choices--cards .irf-choice-price { font-size: 18px; }
  .irf-cols-1 { grid-template-columns: 1fr !important; }
  .irf-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .irf-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .irf-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
.irf-choice--media { flex-direction: column; align-items: stretch; padding: 0 !important; overflow: hidden; }
.irf-choice--media .irf-choice-body { padding: 14px 16px 16px; }
.irf-choice-media { display: block; background: var(--irf-soft); line-height: 0; }
.irf-choice-media img { display: block; width: 100%; height: 150px; object-fit: cover; margin: 0 auto; }

.irf-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: 500; font-size: 14px; border: 1.5px solid transparent; border-radius: 10px; padding: 6px 4px; }
.irf-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.irf-check-mark { width: 22px; height: 22px; border: 2px solid var(--irf-field-border); border-radius: 7px; flex: none; margin-top: 3px; background: var(--irf-field-bg); position: relative; transition: all .18s; }
.irf-check input:checked + .irf-check-mark { background: var(--irf-accent); border-color: var(--irf-accent); }
.irf-check input:checked + .irf-check-mark::after { content: ""; position: absolute; left: 6px; top: 1px; width: 6px; height: 12px; border: solid var(--irf-on-accent); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.irf-check input:focus-visible + .irf-check-mark { outline: 3px solid color-mix(in srgb, var(--irf-accent) 45%, transparent); outline-offset: 2px; }

/* terms & accordion (native <details>) */
.irf-terms, .irf-acc-item { border: 1px solid var(--irf-line); border-radius: var(--irf-field-radius); background: var(--irf-soft); overflow: hidden; }
.irf-terms { margin-bottom: 10px; }
.irf-accordion { display: grid; gap: 10px; }
.irf-terms summary, .irf-acc-title { cursor: pointer; padding: 13px 16px; font-weight: 600; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 50px; }
.irf-terms summary::-webkit-details-marker, .irf-acc-title::-webkit-details-marker { display: none; }
.irf-terms summary::after, .irf-acc-title::after { content: ""; width: 9px; height: 9px; border: solid var(--irf-accent); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s; flex: none; margin-top: -4px; }
.irf-terms[open] summary::after, .irf-acc-item[open] .irf-acc-title::after { transform: rotate(-135deg); margin-top: 4px; }
.irf-terms summary:focus-visible, .irf-acc-title:focus-visible { outline: 3px solid color-mix(in srgb, var(--irf-accent) 45%, transparent); outline-offset: -3px; }
.irf-terms-body, .irf-acc-body { padding: 0 16px 14px; font-size: 14px; color: var(--irf-ink-2); max-height: 360px; overflow: auto; }
.irf-terms-body ol, .irf-terms-body ul, .irf-acc-body ol, .irf-acc-body ul, .irf-html ol, .irf-html ul { padding-right: 20px; margin: 0 0 8px; }
.irf-terms-body li, .irf-acc-body li { margin-bottom: 6px; }

/* HTML block helpers: .irf-callout, .irf-note, .irf-columns */
.irf-html { color: var(--irf-ink-2); font-size: 15px; }
.irf-html h2, .irf-html h3, .irf-html h4 { color: var(--irf-ink); margin: 0 0 8px; line-height: 1.6; }
.irf-html p { margin: 0 0 10px; }
.irf-html a { color: var(--irf-accent); }
.irf-html details { border: 1px solid var(--irf-line); border-radius: var(--irf-field-radius); background: var(--irf-soft); padding: 0 16px; margin-bottom: 10px; }
.irf-html summary { cursor: pointer; padding: 12px 0; font-weight: 600; color: var(--irf-ink); }
.irf-html .irf-callout, .irf-html .irf-note { border-inline-start: 3px solid var(--irf-accent); background: color-mix(in srgb, var(--irf-accent) 8%, transparent); border-radius: 10px; padding: 12px 14px; margin: 0 0 12px; }
.irf-html .irf-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.irf-html .irf-checklist { list-style: none; padding: 0; margin: 0 0 10px; }
.irf-html .irf-checklist li { position: relative; padding-inline-start: 26px; margin-bottom: 8px; }
.irf-html .irf-checklist li::before { content: ""; position: absolute; inset-inline-start: 2px; top: .45em; width: 12px; height: 7px; border: solid var(--irf-accent); border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.irf-html table { width: 100%; border-collapse: collapse; font-size: 14px; }
.irf-html th, .irf-html td { border-bottom: 1px solid var(--irf-line); padding: 8px 6px; text-align: right; }

/* image block */
.irf-figure { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.irf-figure--center { align-items: center; }
.irf-figure--right { align-items: flex-start; }
.irf-figure--left { align-items: flex-end; }
.irf-image { display: block; height: auto; }
.irf-figure figcaption { font-size: 13px; color: var(--irf-muted); text-align: center; }

.irf-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border: 1px dashed var(--irf-line-strong); border-radius: var(--irf-field-radius); background: var(--irf-soft); }
.irf-item-label { font-weight: 600; }
.irf-item-price { font-weight: 700; white-space: nowrap; }
.irf-item--discount .irf-item-price { color: var(--irf-success); }
.irf-stepper { display: inline-flex; align-items: stretch; border: 1.5px solid var(--irf-field-border); border-radius: var(--irf-field-radius); overflow: hidden; background: var(--irf-field-bg); }
.irf-stepper .irf-input { width: 72px; min-height: 46px; border: 0; border-radius: 0; text-align: center; box-shadow: none; }
.irf-step { width: 46px; border: 0; background: var(--irf-soft); color: var(--irf-ink); font-size: 20px; cursor: pointer; }
.irf-step:hover { background: color-mix(in srgb, var(--irf-accent) 14%, var(--irf-soft)); }
.irf-affix { position: relative; }
.irf-affix .irf-input { padding-left: 64px; }
.irf-affix-text { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--irf-muted); font-size: 14px; }
.irf-heading { margin: 10px 0 0; font-weight: 700; color: var(--irf-ink); }
.irf-paragraph { color: var(--irf-ink-2); }
.irf-divider { border: 0; border-top: 1px solid var(--irf-line); margin: 4px 0; }

/* order summary (chosen plan + total) */
.irf-summary {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  margin: 22px 0 4px; padding: 16px 18px; border-radius: calc(var(--irf-field-radius) + 2px);
  background: color-mix(in srgb, var(--irf-accent) 7%, var(--irf-soft)); border: 1px solid color-mix(in srgb, var(--irf-accent) 22%, var(--irf-line));
}
.irf-field .irf-summary { margin: 4px 0 0; }
.irf-summary-plan, .irf-summary-total { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.irf-summary-total { text-align: left; align-items: flex-end; }
.irf-summary-k { font-size: 12px; color: var(--irf-muted); }
.irf-summary-v { font-weight: 600; font-size: 14.5px; color: var(--irf-ink); }
.irf-total-value { font-size: 21px; font-weight: 700; color: var(--irf-accent); white-space: nowrap; }
.irf-total { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 20px 0 6px; padding: 16px 18px; border-radius: 14px; background: var(--irf-soft); font-weight: 700; }

/* alerts */
.irf-alert { border-radius: 12px; padding: 12px 14px; margin: 16px 0 0; font-size: 14px; font-weight: 600; }
.irf-alert--error { background: var(--irf-danger-soft); color: var(--irf-danger); border: 1px solid #fecaca; }
.irf-alert--info { background: #eff6ff; color: #1e3a8a; border: 1px solid #bfdbfe; }
.irf-notice { font-family: var(--irf-font, Tahoma); direction: rtl; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; border-radius: 12px; padding: 12px 16px; }

/* submit */
.irf-submit, .irf-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; min-height: 56px; margin-top: 20px; border: 0; border-radius: var(--irf-btn-radius);
  background: var(--irf-accent); color: var(--irf-on-accent); font: inherit; font-size: 17px; font-weight: 700;
  cursor: pointer; text-decoration: none; transition: filter .2s, transform .12s, box-shadow .2s;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--irf-accent) 28%, transparent);
}
.irf-submit:hover, .irf-button:hover { filter: brightness(1.07); color: var(--irf-on-accent); }
.irf-submit:active { transform: scale(.985); }
.irf-submit:disabled { opacity: .75; cursor: progress; }
.irf-submit:focus-visible, .irf-button:focus-visible { outline: 3px solid color-mix(in srgb, var(--irf-accent) 50%, transparent); outline-offset: 3px; }
.irf-submit-arrow { transition: transform .2s; }
.irf-submit:hover .irf-submit-arrow { transform: translateX(-4px); }
.irf-submit.is-loading .irf-submit-arrow { display: none; }
.irf-spinner { display: none; width: 18px; height: 18px; border: 2.5px solid color-mix(in srgb, var(--irf-on-accent) 35%, transparent); border-top-color: var(--irf-on-accent); border-radius: 50%; animation: irf-spin .8s linear infinite; }
.irf-submit.is-loading .irf-spinner { display: inline-block; }

.irf-secure { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 12.5px; color: var(--irf-muted); margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--irf-line); text-align: center; }
.irf-secure-icon { color: #10b981; }
.irf-hp { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.irf-done { text-align: center; padding: 24px 8px; }
.irf-done-message { font-size: 17px; font-weight: 700; color: var(--irf-success); }
.irf-vpn { display: flex; align-items: flex-start; gap: 8px; margin: 14px 0 0; padding: 10px 12px; border-radius: 12px; background: #fffbeb; border: 1px solid #fde68a; color: #92400e; font-size: 13px; line-height: 1.8; text-align: right; }
.irf-vpn svg { flex: 0 0 auto; margin-top: 3px; }
@keyframes irf-spin { to { transform: rotate(360deg); } }

/* ------------------------------------------------------------------ stage */
.irf-stage--on { padding: clamp(16px, 4vw, 44px) clamp(12px, 3vw, 28px); border-radius: 28px; }

/* ================================================================== TEMPLATES */

/* ---- Golden Glassmorphism — Default (dark) ---- */
.irf-t-golden-glass {
  --irf-ink: #ffffff;
  --irf-ink-2: #d4d4d8;
  --irf-muted: #9ca3af;
  --irf-line: rgba(255, 255, 255, .08);
  --irf-line-strong: rgba(255, 255, 255, .16);
  --irf-soft: rgba(24, 24, 27, .6);
  --irf-field-bg: rgba(24, 24, 27, .8);
  --irf-field-border: rgba(82, 82, 91, .8);
  --irf-card-bg: rgba(18, 18, 24, .65);
  --irf-card-border: rgba(255, 255, 255, .12);
  --irf-card-shadow: 0 30px 80px rgba(0, 0, 0, .55);
  --irf-card-radius: 0;
  --irf-field-radius: 12px;
  --irf-btn-radius: 0;
  --irf-danger: #f87171;
  --irf-danger-soft: rgba(127, 29, 29, .25);
  --irf-success: #4ade80;
}
.irf-stage--golden-glass.irf-stage--on, .irf-page.irf-t-golden-glass {
  background-color: #050507;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(234, 179, 8, .12) 0%, transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(217, 119, 6, .10) 0%, transparent 50%),
    radial-gradient(circle at 50% 50%, rgba(0, 0, 0, .85) 0%, transparent 100%);
}
.irf-t-golden-glass .irf-card-wrap {
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  clip-path: polygon(24px 0%, calc(100% - 24px) 0%, 100% 24px, 100% calc(100% - 24px), calc(100% - 24px) 100%, 24px 100%, 0% calc(100% - 24px), 0% 24px);
}
.irf-t-golden-glass .irf-glow { display: block; position: absolute; top: 0; right: 25%; left: 25%; height: 2px; background: linear-gradient(90deg, transparent, rgba(234, 179, 8, .55), transparent); }
.irf-t-golden-glass .irf-badge-icon { color: #eab308; background: rgba(234, 179, 8, .1); border-color: rgba(234, 179, 8, .3); box-shadow: 0 10px 26px rgba(234, 179, 8, .12); }
.irf-t-golden-glass .irf-subtitle { text-transform: uppercase; letter-spacing: .04em; font-size: 12px; }
.irf-t-golden-glass .irf-label, .irf-t-golden-glass .irf-choices legend { color: #d4d4d8; font-size: 13px; font-weight: 500; }
.irf-t-golden-glass .irf-input::placeholder { color: #71717a; }
.irf-t-golden-glass .irf-input:focus { box-shadow: 0 0 0 1px rgba(234, 179, 8, .5); }
.irf-t-golden-glass select.irf-input option { background: #18181b; color: #fff; }
.irf-t-golden-glass .irf-ico { color: #71717a; }
.irf-t-golden-glass .irf-choice:has(input:checked) { background: rgba(234, 179, 8, .08); box-shadow: 0 0 0 1px rgba(234, 179, 8, .6), 0 10px 30px rgba(234, 179, 8, .10); }
.irf-t-golden-glass .irf-choice-price, .irf-t-golden-glass .irf-total-value { color: #facc15; }
.irf-t-golden-glass .irf-summary { background: rgba(24, 24, 27, .6); border-color: rgba(255, 255, 255, .05); }
.irf-t-golden-glass .irf-submit, .irf-t-golden-glass .irf-button {
  background: linear-gradient(90deg, #eab308, #f59e0b); color: #000; font-weight: 700;
  clip-path: polygon(12px 0%, calc(100% - 12px) 0%, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0% calc(100% - 12px), 0% 12px);
  box-shadow: 0 10px 30px rgba(234, 179, 8, .25);
}
.irf-t-golden-glass .irf-submit:hover { background: linear-gradient(90deg, #facc15, #fbbf24); filter: none; }
.irf-t-golden-glass .irf-secure { border-top-color: rgba(255, 255, 255, .05); color: #71717a; }
.irf-t-golden-glass .irf-vpn { background: rgba(120, 53, 15, .22); border-color: rgba(234, 179, 8, .25); color: #fcd34d; }
.irf-t-golden-glass .irf-alert--info { background: rgba(30, 58, 138, .25); border-color: rgba(96, 165, 250, .3); color: #bfdbfe; }
.irf-t-golden-glass .irf-alert--error { border-color: rgba(248, 113, 113, .35); }
.irf-t-golden-glass .irf-preview-badge { background: rgba(234, 179, 8, .14); color: #fde68a; }
.irf-t-golden-glass ::selection { background: #eab308; color: #000; }

/* ---- Aurora (dark, cyan) ---- */
.irf-t-aurora {
  --irf-ink: #f1f5f9;
  --irf-ink-2: #cbd5e1;
  --irf-muted: #94a3b8;
  --irf-line: rgba(148, 163, 184, .14);
  --irf-line-strong: rgba(148, 163, 184, .28);
  --irf-soft: rgba(15, 23, 42, .55);
  --irf-field-bg: rgba(2, 6, 23, .55);
  --irf-field-border: rgba(71, 85, 105, .7);
  --irf-card-bg: rgba(15, 23, 42, .68);
  --irf-card-border: rgba(148, 163, 184, .18);
  --irf-card-shadow: 0 30px 80px rgba(2, 6, 23, .6);
  --irf-card-radius: 26px;
  --irf-danger: #fca5a5;
  --irf-danger-soft: rgba(127, 29, 29, .25);
  --irf-success: #6ee7b7;
}
.irf-stage--aurora.irf-stage--on, .irf-page.irf-t-aurora {
  background-color: #0b1024;
  background-image:
    radial-gradient(ellipse at 20% 10%, rgba(34, 211, 238, .18) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 90%, rgba(16, 185, 129, .14) 0%, transparent 55%),
    radial-gradient(ellipse at 60% 40%, rgba(59, 130, 246, .12) 0%, transparent 60%);
}
.irf-t-aurora .irf-card-wrap { backdrop-filter: blur(22px) saturate(160%); -webkit-backdrop-filter: blur(22px) saturate(160%); }
.irf-t-aurora .irf-glow { display: block; position: absolute; top: 0; right: 20%; left: 20%; height: 2px; background: linear-gradient(90deg, transparent, rgba(34, 211, 238, .6), transparent); }
.irf-t-aurora .irf-submit { background: linear-gradient(90deg, #22d3ee, #38bdf8); color: #04121a; }
.irf-t-aurora .irf-vpn { background: rgba(120, 53, 15, .22); border-color: rgba(251, 191, 36, .25); color: #fcd34d; }
.irf-t-aurora select.irf-input option { background: #0f172a; color: #fff; }

/* ---- Modern (light, soft) ---- */
.irf-t-modern { --irf-card-radius: 26px; --irf-field-radius: 14px; --irf-btn-radius: 16px; --irf-card-border: rgba(15, 23, 42, .06); --irf-card-shadow: 0 30px 70px rgba(79, 70, 229, .12), 0 2px 6px rgba(15, 23, 42, .04); --irf-field-border: #dbe1ea; --irf-soft: #f5f7fb; }
.irf-stage--modern.irf-stage--on, .irf-page.irf-t-modern { background: linear-gradient(160deg, #eef2ff 0%, #f8fafc 60%, #ecfeff 100%); }
.irf-t-modern .irf-card-wrap { padding-top: 0; }
.irf-t-modern .irf-head { margin: 0 calc(-1 * clamp(20px, 4.5vw, 40px)) 24px; padding: 28px clamp(20px, 4.5vw, 40px) 22px; background: linear-gradient(135deg, color-mix(in srgb, var(--irf-accent) 12%, #fff), #fff 70%); border-bottom: 1px solid var(--irf-line); }
.irf-t-modern .irf-badge-icon { background: var(--irf-accent); color: var(--irf-on-accent); border: 0; box-shadow: 0 12px 26px color-mix(in srgb, var(--irf-accent) 35%, transparent); }

/* ---- Minimal ---- */
.irf-t-minimal { --irf-card-bg: transparent; --irf-card-border: transparent; --irf-card-shadow: none; --irf-field-radius: 10px; --irf-btn-radius: 10px; --irf-field-border: #d1d5db; --irf-soft: #f9fafb; }
.irf-t-minimal .irf-card-wrap { padding-inline: 0; }
.irf-t-minimal .irf-head { text-align: right; border-bottom: 1px solid var(--irf-line); padding-bottom: 16px; }
.irf-t-minimal .irf-badge-icon { display: none; }
.irf-t-minimal .irf-desc { text-align: right; }
.irf-t-minimal .irf-submit { box-shadow: none; }
.irf-t-minimal .irf-choice:has(input:checked) { box-shadow: 0 0 0 1px var(--irf-accent); }

/* ---- Glassmorphism (light) ---- */
.irf-t-glass-light { --irf-card-bg: rgba(255, 255, 255, .58); --irf-card-border: rgba(255, 255, 255, .75); --irf-card-shadow: 0 24px 60px rgba(14, 165, 233, .16); --irf-field-bg: rgba(255, 255, 255, .7); --irf-field-border: rgba(148, 163, 184, .45); --irf-soft: rgba(255, 255, 255, .55); --irf-card-radius: 28px; --irf-field-radius: 14px; --irf-btn-radius: 16px; }
.irf-stage--glass-light.irf-stage--on, .irf-page.irf-t-glass-light {
  background-color: #e0f2fe;
  background-image: radial-gradient(circle at 12% 18%, rgba(56, 189, 248, .35) 0%, transparent 42%), radial-gradient(circle at 88% 82%, rgba(45, 212, 191, .3) 0%, transparent 45%), radial-gradient(circle at 70% 20%, rgba(251, 191, 36, .22) 0%, transparent 40%);
}
.irf-t-glass-light .irf-card-wrap { backdrop-filter: blur(18px) saturate(170%); -webkit-backdrop-filter: blur(18px) saturate(170%); }

/* ---- Clean (classic) ---- */
.irf-t-clean { --irf-card-radius: 20px; --irf-field-radius: 12px; --irf-btn-radius: 14px; }
.irf-stage--clean.irf-stage--on, .irf-page.irf-t-clean { background: #f1f5f9; }
.irf-t-clean .irf-head { text-align: right; }
.irf-t-clean .irf-badge-icon { display: none; }
.irf-t-clean .irf-desc { text-align: right; }

/* ---- Professional (navy header band) ---- */
.irf-t-professional { --irf-card-radius: 12px; --irf-field-radius: 8px; --irf-btn-radius: 8px; --irf-card-shadow: 0 16px 40px rgba(15, 23, 42, .12); --irf-field-border: #cfd6e0; }
.irf-stage--professional.irf-stage--on, .irf-page.irf-t-professional { background: #e9edf3; }
.irf-t-professional .irf-card-wrap { padding-top: 0; }
.irf-t-professional .irf-head { margin: 0 calc(-1 * clamp(20px, 4.5vw, 40px)) 26px; padding: 26px clamp(20px, 4.5vw, 40px); background: #0f172a; text-align: right; display: grid; grid-template-columns: auto 1fr; column-gap: 16px; align-items: center; }
.irf-t-professional .irf-head .irf-badge-icon { grid-row: span 2; margin: 0; background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 255, 255, .16); }
.irf-t-professional .irf-title { color: #fff; font-size: 22px; }
.irf-t-professional .irf-subtitle { color: #94a3b8; }
.irf-t-professional .irf-desc { text-align: right; }
.irf-t-professional .irf-submit { box-shadow: none; }

/* ------------------------------------------------------------------ responsive / motion */
@media (max-width: 480px) {
  .irf-card-wrap { padding: 20px 16px; }
  .irf-t-golden-glass .irf-card-wrap { clip-path: polygon(16px 0%, calc(100% - 16px) 0%, 100% 16px, 100% calc(100% - 16px), calc(100% - 16px) 100%, 16px 100%, 0% calc(100% - 16px), 0% 16px); }
  .irf-t-modern .irf-head, .irf-t-professional .irf-head { margin-inline: -16px; padding-inline: 16px; }
  .irf-summary-total { align-items: flex-start; text-align: right; }
  .irf-stage--on { border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .irf *, .irf-page * { transition: none !important; animation-duration: 2s !important; }
}

/* ================================================================== pages (standalone / hand-off / result) */
.irf-page { margin: 0; min-height: 100vh; background: #f1f5f9; font-family: var(--irf-font); color: var(--irf-ink); direction: rtl; }
.irf-page-header { padding: 18px 20px; text-align: center; }
.irf-brand { font-weight: 700; font-size: 20px; color: var(--irf-ink); letter-spacing: .5px; }
.irf-page.irf-t-golden-glass .irf-brand, .irf-page.irf-t-aurora .irf-brand { color: var(--irf-accent); }
.irf-page-main { padding: 0 16px 40px; }
.irf-page .irf-stage--on { padding: 0; border-radius: 0; background: none !important; }
.irf-page--embed { background: transparent !important; min-height: 0; }
.irf-page--embed .irf-page-main { padding: 0; }
.irf-card { max-width: 520px; margin: 8vh auto 24px; background: var(--irf-card-bg); border: 1px solid var(--irf-card-border); border-radius: 22px; box-shadow: var(--irf-card-shadow); padding: clamp(22px, 5vw, 38px); text-align: center; box-sizing: border-box; width: calc(100% - 32px); }
.irf-card-title { font-size: 22px; margin: 14px 0 8px; font-weight: 700; }
.irf-message { color: var(--irf-ink-2); line-height: 1.9; margin: 0 0 18px; white-space: pre-line; }
.irf-muted { color: var(--irf-ink-2); margin: 6px 0; }
.irf-small { color: var(--irf-muted); font-size: 13px; margin-top: 16px; }
.irf-small a { color: var(--irf-accent); }
.irf-loader { width: 46px; height: 46px; margin: 4px auto 0; border: 4px solid var(--irf-line); border-top-color: var(--irf-accent); border-radius: 50%; animation: irf-spin .9s linear infinite; }
.irf-status-icon { width: 64px; height: 64px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; }
.irf-status-icon svg { width: 34px; height: 34px; }
.irf-status-icon--success { background: #dcfce7; color: #15803d; }
.irf-status-icon--pending { background: #fef3c7; color: #b45309; }
.irf-status-icon--error { background: #fee2e2; color: #b91c1c; }
.irf-receipt { display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; text-align: right; border-top: 1px solid var(--irf-line); padding-top: 16px; margin: 0 0 8px; }
.irf-receipt dt { color: var(--irf-muted); font-size: 14px; }
.irf-receipt dd { margin: 0; font-weight: 700; text-align: left; overflow-wrap: anywhere; }
.irf-actions { display: grid; gap: 10px; margin-top: 10px; }
.irf-actions form { margin: 0; }
.irf-button--ghost { background: transparent !important; color: var(--irf-ink) !important; border: 1.5px solid var(--irf-line-strong); box-shadow: none !important; clip-path: none !important; }
.irf-button--ghost:hover { background: var(--irf-soft) !important; }
.irf-page.irf-t-golden-glass .irf-card, .irf-page.irf-t-aurora .irf-card { backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%); }
.irf-page.irf-t-golden-glass .irf-card { border-radius: 0; clip-path: polygon(24px 0%, calc(100% - 24px) 0%, 100% 24px, 100% calc(100% - 24px), calc(100% - 24px) 100%, 24px 100%, 0% calc(100% - 24px), 0% 24px); }
.irf-page.irf-t-golden-glass .irf-status-icon--success, .irf-page.irf-t-aurora .irf-status-icon--success { background: rgba(21, 128, 61, .2); color: #4ade80; }
.irf-page.irf-t-golden-glass .irf-status-icon--pending, .irf-page.irf-t-aurora .irf-status-icon--pending { background: rgba(180, 83, 9, .22); color: #fbbf24; }
.irf-page.irf-t-golden-glass .irf-status-icon--error, .irf-page.irf-t-aurora .irf-status-icon--error { background: rgba(185, 28, 28, .22); color: #f87171; }
.irf-page.irf-t-golden-glass .irf-vpn { background: rgba(120, 53, 15, .22); border-color: rgba(234, 179, 8, .25); color: #fcd34d; }
