.wy-form-wrap {
    --wy-primary: #1f6f63;
    --wy-primary-dark: #17554b;
    --wy-primary-light: #e9f5f2;
    --wy-error: #d64545;
    --wy-success: #1f7a4d;
    --wy-border: #dde3e0;
    --wy-text: #24312d;
    --wy-muted: #6b7770;
    --wy-card-bg: #ffffff;
    --wy-input-bg: #ffffff;

    /* فونت از قالب سایت ارث‌بری می‌شود، نه یک فونت ثابت جداگانه */
    font-family: inherit;
    color: var(--wy-text);
    max-width: 620px;
    margin: 0 auto;
}

.wy-form-wrap * { box-sizing: border-box; }

/* فیلدهای فرم (input/select/textarea/button) به‌طور پیش‌فرض مرورگر از فونت
   والد ارث نمی‌برند و فونت رابط کاربری سیستم را نشان می‌دهند؛ این‌جا صریحاً
   همان فونت قالب را روی خودشان هم اعمال می‌کنیم. */
.wy-form-wrap input,
.wy-form-wrap select,
.wy-form-wrap textarea,
.wy-form-wrap button {
    font-family: inherit;
}

/* --- سربرگ فرم --- */
.wy-form-header {
    text-align: center;
    margin-bottom: 22px;
}
.wy-form-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--wy-primary-light);
    font-size: 24px;
    margin-bottom: 10px;
}
.wy-form-eyebrow {
    margin: 0 0 2px;
    font-size: 13px;
    font-weight: 600;
    color: var(--wy-primary);
    letter-spacing: .3px;
}
.wy-form-title {
    margin: 0 0 6px;
    font-size: 21px;
    font-weight: 800;
    color: var(--wy-text);
    line-height: 1.5;
}
.wy-form-event-date {
    margin: 0;
    font-size: 14px;
    color: var(--wy-muted);
}

/* --- کارت فرم --- */
.wy-form {
    background: #fff;
    border: 1px solid var(--wy-border);
    border-radius: 16px;
    padding: 28px 26px;
    box-shadow: 0 6px 28px rgba(24, 60, 51, 0.07);
}

/* --- چیدمان فیلدها: دو ستون در دسکتاپ، یک ستون در موبایل --- */
.wy-fields-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 16px;
}
.wy-field-full { grid-column: 1 / -1; }

.wy-form .wy-field { margin-bottom: 16px; }

.wy-form label {
    display: block;
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 6px;
    color: var(--wy-text);
}

.wy-required { color: var(--wy-error); margin-right: 3px; }

.wy-form input[type="text"],
.wy-form input[type="tel"],
.wy-form input[type="email"],
.wy-form select,
.wy-form textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid var(--wy-border);
    border-radius: 9px;
    font-size: 15px;
    background: #fbfcfb;
    color: var(--wy-text);
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.wy-form textarea { resize: vertical; min-height: 90px; }

.wy-form input:focus,
.wy-form select:focus,
.wy-form textarea:focus {
    outline: none;
    border-color: var(--wy-primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(31, 111, 99, 0.15);
}

.wy-field.wy-has-error input,
.wy-field.wy-has-error select,
.wy-field.wy-has-error textarea {
    border-color: var(--wy-error);
}

.wy-field-error {
    color: var(--wy-error);
    font-size: 12.5px;
    margin-top: 5px;
    min-height: 0;
}

/* --- آپلود تصویر: کارت قابل‌کلیک به‌جای input خام و کم‌جذابیت مرورگر --- */
.wy-file-drop {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1.5px dashed var(--wy-border);
    border-radius: 9px;
    padding: 16px;
    background: #fbfcfb;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
    position: relative;
}
.wy-file-drop:hover { border-color: var(--wy-primary); background: var(--wy-primary-light); }
.wy-file-drop input[type="file"] {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    opacity: 0;
}
.wy-file-drop-text { font-size: 13.5px; color: var(--wy-muted); }

.wy-image-preview img {
    margin-top: 10px;
    max-width: 120px;
    max-height: 120px;
    border-radius: 8px;
    border: 1px solid var(--wy-border);
    object-fit: cover;
}

/* فیلد تله‌ی ربات — خارج از دید کاربر واقعی، اما برای ربات‌های ساده قابل‌مشاهده در DOM */
.wy-hp-field {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    left: -9999px;
    margin: 0; padding: 0;
}

.wy-form-message {
    display: none;
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 9px;
    font-size: 14.5px;
    line-height: 1.7;
}
.wy-form-message.wy-msg-success { display: block; background: #e9f6ef; color: var(--wy-success); border: 1px solid #b8e0c9; }
.wy-form-message.wy-msg-error { display: block; background: #fbeaea; color: var(--wy-error); border: 1px solid #f0c4c4; }

.wy-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background: var(--wy-primary);
    color: #fff;
    border: none;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 10px;
    cursor: pointer;
    transition: background .15s ease, transform .1s ease, box-shadow .15s ease;
    box-shadow: 0 4px 14px rgba(31, 111, 99, 0.25);
}
.wy-submit-btn:hover { background: var(--wy-primary-dark); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(31, 111, 99, 0.3); }
.wy-submit-btn:active { transform: translateY(0); }
.wy-submit-btn:disabled { opacity: .7; cursor: not-allowed; transform: none; }

.wy-btn-spinner {
    display: none;
    width: 16px; height: 16px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: wy-spin .7s linear infinite;
}
.wy-submitting .wy-btn-spinner { display: inline-block; }
.wy-submitting .wy-btn-text { opacity: .85; }

@keyframes wy-spin { to { transform: rotate(360deg); } }

.wy-form-notice {
    max-width: 560px;
    margin: 0 auto;
    padding: 16px 18px;
    border-radius: 10px;
    font-size: 15px;
    line-height: 1.8;
    text-align: center;
}
.wy-form-notice-closed { background: #fff6e6; color: #8a5a00; border: 1px solid #f3ddaa; }
.wy-form-notice-error { background: #fbeaea; color: #a12b2b; border: 1px solid #f0c4c4; }

@media (max-width: 560px) {
    .wy-fields-grid { grid-template-columns: 1fr; }
    .wy-form { padding: 22px 18px; border-radius: 12px; }
    .wy-form-title { font-size: 19px; }
}

/* ===================== جعبه‌ی قیمت و آفر ===================== */
.wy-price-box {
    position: relative;
    background: #fff;
    border: 1px solid var(--wy-border);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 18px;
    text-align: center;
    box-shadow: 0 4px 18px rgba(24, 60, 51, 0.05);
}
.wy-price-box-offer {
    border-color: #b8e0c9;
    background: linear-gradient(180deg, #f5fbf8 0%, #ffffff 100%);
}
.wy-price-badge {
    position: absolute;
    top: -11px;
    inset-inline-start: 18px;
    background: var(--wy-error);
    color: #fff;
    font-size: 12.5px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
    box-shadow: 0 3px 10px rgba(214, 69, 69, 0.28);
}
.wy-price-main {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.wy-price-old {
    font-size: 15px;
    color: #9aa5a0;
    text-decoration: line-through;
}
.wy-price-final {
    font-size: 24px;
    font-weight: 800;
    color: var(--wy-primary);
}
.wy-price-offer-title {
    margin: 0 0 10px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--wy-success);
}
.wy-price-notes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.wy-price-notes li {
    font-size: 13px;
    line-height: 1.9;
    color: var(--wy-muted);
}
.wy-price-notes strong { color: var(--wy-text); }
.wy-price-hint {
    margin: 12px 0 0;
    font-size: 12.5px;
    line-height: 1.9;
    color: var(--wy-muted);
}

.wy-retry-pay-btn {
    display: inline-block;
    margin-top: 10px;
    background: var(--wy-primary);
    color: #fff !important;
    text-decoration: none;
    padding: 10px 16px;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 700;
}
.wy-retry-pay-btn:hover { background: var(--wy-primary-dark); }

@media (max-width: 560px) {
    .wy-price-final { font-size: 21px; }
    .wy-price-box { padding: 16px 14px; }
}


/* =====================================================================
   لایه‌ی تقویت وزن رنگ‌ها
   ---------------------------------------------------------------------
   خیلی از قالب‌ها (به‌ویژه قالب‌های تیره و چیدمان‌های المنتور) روی تگ‌های
   عمومی مثل p و li رنگ متن می‌گذارند. آن قواعد وزنی برابر یا بیشتر از
   قواعد بالای همین فایل دارند و چون معمولاً دیرتر لود می‌شوند، برنده
   می‌شوند — نتیجه‌اش متن سفید روی کارت روشن است.

   این بلوک همان قواعد را با پیشوند ریشه تکرار می‌کند تا وزنشان یک کلاس
   بالاتر برود. اگر قالبی باز هم سرسخت بود، گزینه‌ی «اجبار رنگ‌ها» در
   صفحه‌ی «ظاهر و رنگ‌ها» لایه‌ی !important را فعال می‌کند.
   ===================================================================== */

.wy-form-wrap .wy-price-offer-title { color: var(--wy-success); }
.wy-form-wrap .wy-price-notes li { color: var(--wy-muted); }
.wy-form-wrap .wy-price-notes strong { color: var(--wy-text); }
.wy-form-wrap .wy-price-hint { color: var(--wy-muted); }
.wy-form-wrap .wy-price-old { color: #9aa5a0; }
.wy-form-wrap .wy-price-final { color: var(--wy-primary); }
.wy-form-wrap .wy-price-badge { color: #fff; }
.wy-form-wrap .wy-form-title { color: var(--wy-text); }
.wy-form-wrap .wy-form-eyebrow,
.wy-form-wrap .wy-form-event-date { color: var(--wy-muted); }
.wy-form-wrap .wy-field label,
.wy-form-wrap .wy-field-label { color: var(--wy-text); }
.wy-form-wrap .wy-field-hint,
.wy-form-wrap .wy-field small { color: var(--wy-muted); }
.wy-form-wrap .wy-field-error { color: var(--wy-error); }
.wy-form-wrap .wy-submit-btn,
.wy-form-wrap .wy-submit-btn span { color: #fff; }
.wy-form-wrap input,
.wy-form-wrap textarea,
.wy-form-wrap select { color: var(--wy-text); }
.wy-form-wrap input::placeholder,
.wy-form-wrap textarea::placeholder { color: var(--wy-muted); opacity: .75; }

/* ===================== انتخاب روش پرداخت در فرم ===================== */
.wy-method-picker { margin-bottom: 16px; }
.wy-method-picker-label {
    display: block;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--wy-text);
    margin-bottom: 8px;
}
.wy-method-options { display: flex; gap: 10px; }
.wy-method-option { flex: 1; cursor: pointer; }
.wy-method-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.wy-method-option-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 12px 8px;
    border: 1.5px solid var(--wy-border);
    border-radius: 10px;
    background: var(--wy-card-bg);
    font-size: 13px;
    font-weight: 600;
    color: var(--wy-muted);
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.wy-method-option input:checked + .wy-method-option-box {
    border-color: var(--wy-primary);
    background: var(--wy-primary-light);
    color: var(--wy-primary);
}
.wy-method-option input:focus-visible + .wy-method-option-box { outline: 2px solid var(--wy-primary); outline-offset: 2px; }
.wy-method-option-icon { font-size: 17px; }
.wy-form-wrap .wy-method-option-text { color: inherit; }

@media (max-width: 480px) {
    .wy-method-options { flex-direction: column; }
}

/* =====================================================================
   بهبود ظاهر فرم + تثبیت مقادیری که قالب‌ها بازنویسی می‌کردند
   ---------------------------------------------------------------------
   نکته‌ی مهم: `.wy-form` وزن یک کلاس دارد (0,0,1,0) و قواعدی مثل
   `.elementor-widget-container form` وزن (0,0,1,1) دارند — یعنی برنده
   می‌شوند و گردی کادر را صاف می‌کنند. همین اتفاق برای `button` هم می‌افتد.
   این‌جا همان قواعد با پیشوند ریشه تکرار شده‌اند تا وزنشان بالاتر برود، و
   مقادیر از متغیرهای قابل تنظیم در پنل خوانده می‌شوند.
   ===================================================================== */

.wy-form-wrap {
    --wy-radius-form: 16px;
    --wy-radius-box: 14px;
    --wy-radius-input: 9px;
    --wy-radius-btn: 10px;
    --wy-shadow: 0 6px 28px rgba(24, 60, 51, 0.07);
    --wy-btn-bg: var(--wy-primary);
    --wy-btn-text: #ffffff;
    --wy-btn-hover-bg: var(--wy-primary-dark);
    --wy-form-bg: var(--wy-card-bg);
    --wy-form-border: var(--wy-border);
}

.wy-form-wrap .wy-form {
    background: var(--wy-form-bg);
    border: 1px solid var(--wy-form-border);
    border-radius: var(--wy-radius-form);
    box-shadow: var(--wy-shadow);
}

.wy-form-wrap .wy-price-box { border-radius: var(--wy-radius-box); }

.wy-form-wrap input,
.wy-form-wrap textarea,
.wy-form-wrap select {
    border-radius: var(--wy-radius-input);
    background: var(--wy-input-bg);
    border: 1.5px solid var(--wy-border);
    transition: border-color .15s ease, box-shadow .15s ease;
}

/* حلقه‌ی فوکوس واضح‌تر — هم برای زیبایی و هم دسترس‌پذیری صفحه‌کلید */
.wy-form-wrap input:focus,
.wy-form-wrap textarea:focus,
.wy-form-wrap select:focus {
    outline: none;
    border-color: var(--wy-primary);
    /* پشتیبان برای مرورگرهای قدیمی‌تر که color-mix ندارند */
    box-shadow: 0 0 0 3px rgba(31, 111, 99, .16);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--wy-primary) 18%, transparent);
}

/* دکمه‌ی اصلی — زمینه و متن همیشه با هم تعریف می‌شوند */
.wy-form-wrap .wy-submit-btn {
    background: var(--wy-btn-bg);
    color: var(--wy-btn-text);
    border: none;
    border-radius: var(--wy-radius-btn);
}
.wy-form-wrap .wy-submit-btn span { color: var(--wy-btn-text); }
.wy-form-wrap .wy-submit-btn:hover {
    background: var(--wy-btn-hover-bg);
    color: var(--wy-btn-text);
}
.wy-form-wrap .wy-btn-spinner {
    border-color: var(--wy-btn-text);
    border-top-color: transparent;
}

.wy-form-wrap .wy-method-option-box { border-radius: var(--wy-radius-input); }

/* --- ریزه‌کاری‌های ظاهری --- */

/* فلش سلکت سفارشی: فلش پیش‌فرض مرورگر در RTL سمت اشتباه می‌افتد */
.wy-form-wrap select {
    appearance: none;
    -webkit-appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, var(--wy-muted) 50%),
                      linear-gradient(135deg, var(--wy-muted) 50%, transparent 50%);
    background-position: calc(14px) calc(50% + 2px), calc(19px) calc(50% + 2px);
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    padding-left: 34px;
}

/* ستاره‌ی فیلد اجباری کمی از برچسب فاصله بگیرد */
.wy-form-wrap .wy-required-star { margin-inline-start: 3px; color: var(--wy-error); }

/* جداکننده‌ی نرم بالای دکمه‌ی ارسال */
.wy-form-wrap .wy-submit-btn { margin-top: 4px; }

/* حالت غیرفعال دکمه هنگام ارسال */
.wy-form-wrap .wy-submit-btn:disabled,
.wy-form-wrap .wy-submit-btn.wy-submitting {
    opacity: .72;
    cursor: progress;
    transform: none;
}

/* پیام‌های فرم */
.wy-form-wrap .wy-form-message { border-radius: var(--wy-radius-input); }

/* ===================== کد تخفیف ===================== */
.wy-coupon-box {
    margin-bottom: 16px;
    padding: 14px 15px;
    border: 1px dashed var(--wy-border);
    border-radius: var(--wy-radius-input);
    background: var(--wy-input-bg);
    transition: border-color .15s ease, background .15s ease;
}
.wy-coupon-box.wy-coupon-applied {
    border-color: var(--wy-success);
    border-style: solid;
}
.wy-coupon-label {
    display: block;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--wy-text);
    margin-bottom: 8px;
}
.wy-coupon-row { display: flex; gap: 8px; }
.wy-coupon-row input {
    flex: 1;
    padding: 11px 13px;
    border: 1.5px solid var(--wy-border);
    border-radius: var(--wy-radius-input);
    font-size: 14px;
    font-family: inherit;
    letter-spacing: .5px;
    background: var(--wy-card-bg);
    color: var(--wy-text);
}
.wy-coupon-row input:focus { outline: none; border-color: var(--wy-primary); }
.wy-coupon-apply {
    flex: 0 0 auto;
    padding: 11px 20px;
    background: var(--wy-primary);
    color: #fff;
    border: none;
    border-radius: var(--wy-radius-input);
    font-size: 13.5px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background .15s ease;
}
.wy-coupon-apply:hover { background: var(--wy-primary-dark); }
.wy-coupon-apply:disabled { opacity: .6; cursor: progress; }

.wy-coupon-message {
    margin: 8px 0 0;
    font-size: 12.5px;
    line-height: 1.8;
    min-height: 1px;
}
.wy-form-wrap .wy-coupon-message { color: var(--wy-muted); }
.wy-form-wrap .wy-coupon-success { color: var(--wy-success); }
.wy-form-wrap .wy-coupon-error { color: var(--wy-error); }
.wy-form-wrap .wy-price-coupon-note strong { color: var(--wy-success); }

@media (max-width: 480px) {
    .wy-coupon-row { flex-direction: column; }
    .wy-coupon-apply { width: 100%; }
}
