@charset "UTF-8";
/* =========================================================================
   EZ Reservation — صفحهٔ رزرو اتاق فرار [ez_room_page]
   تم: «Graphite & Crimson / Liquid Glass» — همان توکن‌های پنل مجموعه‌دار
   (assets/ez-owner-panel.css) و داشبورد کاربر، تا کل سایت یکدست بماند.
   ========================================================================= */

.ez-rp {
	/* — سطوح خاکستری تیره — */
	--ez-void:      #08090b;
	--ez-graphite:  #101216;
	--ez-slate:     #171a20;
	--ez-steel:     #1f232b;

	/* — قرمز نشان —
	   رنگ اصلی تلاش می‌کند رنگ قالب سایت را بگیرد (المنتور یا theme.json وردپرس)
	   و اگر چنین متغیری تعریف نشده باشد، همان قرمز پیش‌فرض افزونه می‌ماند. بقیهٔ
	   رنگ‌ها از همین یکی مشتق می‌شوند، پس با عوض کردنش کل صفحه هماهنگ عوض می‌شود:
	       .ez-rp { --ez-red: #0a84ff; } */
	/* عمداً رنگ قالب را خودکار نمی‌گیریم: اگر رنگ اصلی قالب تیره باشد، همهٔ
	   رنگ‌های مشتق‌شده (آیکن‌ها، دکمه‌ها، مبلغ کل) تیره و ناخوانا می‌شوند.
	   برای هماهنگ کردن با قالب، همین یک خط را در CSS سفارشی بازنویسی کنید:
	       .ez-rp { --ez-red: #0a84ff; } */
	--ez-red:       #e2142c;
	/* رنگ متن/آیکن؛ همیشه روشن‌تر از رنگ نشان تا روی زمینهٔ تیره خوانا بماند. */
	--ez-red-hot:   color-mix(in srgb, var(--ez-red) 62%, #fff);
	--ez-red-glow:  color-mix(in srgb, var(--ez-red) 45%, transparent);
	--ez-red-faint: color-mix(in srgb, var(--ez-red) 12%, transparent);

	/* — متن — */
	--ez-text:      #eef1f5;
	--ez-text-soft: #b6bdc9;
	--ez-muted:     #7f889a;

	/* — وضعیت — */
	--ez-ok:        #2fd6a0;
	--ez-warn:      #f0a93b;

	/* — شیشهٔ مایع — */
	--ez-glass-bg:     linear-gradient(155deg, rgba(255,255,255,.075) 0%, rgba(255,255,255,.022) 46%, rgba(255,255,255,.05) 100%);
	--ez-glass-border: rgba(255,255,255,.09);
	--ez-glass-shadow: 0 22px 48px -18px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.10);

	/* — هندسه — */
	--ez-r-sm: 10px;
	--ez-r-md: 16px;
	--ez-r-lg: 22px;
	--ez-r-xl: 28px;

	--ez-font: 'Vazirmatn', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--ez-ease: cubic-bezier(.22,.68,.32,1);

	position: relative;
	direction: rtl;
	font-family: var(--ez-font);
	color: var(--ez-text);
	background-color: var(--ez-void);
	background-image:
		radial-gradient(60rem 34rem at 92% -12%, color-mix(in srgb, var(--ez-red) 20%, transparent), transparent 62%),
		radial-gradient(48rem 30rem at 8% 108%, color-mix(in srgb, var(--ez-red) 10%, transparent), transparent 60%);
	border: 1px solid rgba(255,255,255,.07);
	border-radius: var(--ez-r-xl);
	padding: 0 0 26px;
	/* بدون max-width، صفحه در قالب‌های تمام‌عرض تا لبهٔ نمایشگر کشیده می‌شد و
	   خطوط متن بیش از حد بلند می‌شدند؛ همان سقفی که صفحهٔ گیم‌نت دارد. */
	width: 100%;
	max-width: 1180px;
	margin: 22px auto;
	overflow: hidden;
	isolation: isolate;
}

.ez-rp *,
.ez-rp *::before,
.ez-rp *::after { box-sizing: border-box; }

.ez-rp .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	line-height: 1;
	flex-shrink: 0;
}

/* -------------------------------------------------------------------------
   هیرو
   ------------------------------------------------------------------------- */
.ez-rp-hero {
	position: relative;
	min-height: 340px;
	display: flex;
	align-items: flex-end;
	padding: 34px 28px 28px;
	background-color: var(--ez-graphite);
	background-image: var(--ez-rp-hero-image, none);
	background-size: cover;
	background-position: center;
}

/* سایه فقط جایی که متن هست تیره باشد. قبلاً کل تصویر دست‌کم ۳۵٪ تیره می‌شد و
   عکسِ اتاق عملاً دیده نمی‌شد؛ حالا بالای هیرو تقریباً شفاف است. */
.ez-rp-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg,
		rgba(8,9,11,.96) 0%,
		rgba(8,9,11,.88) 18%,
		rgba(8,9,11,.55) 42%,
		rgba(8,9,11,.22) 70%,
		rgba(8,9,11,.06) 100%);
	pointer-events: none;
}

.ez-rp-hero__inner { position: relative; width: 100%; }

/* آواتار مربعِ گردگوشه در گوشهٔ چپِ بنر — همان چیدمان صفحهٔ کانال یوتیوب.
   بنر، تصویر طراحی‌شدهٔ مجموعه است و این، عکس خودِ اتاق. متن هیرو در RTL از
   راست شروع می‌شود، پس آواتارِ چپ با آن تداخل ندارد. */
.ez-rp-hero__avatar {
	position: absolute;
	left: 0;
	bottom: 2px;
	width: 108px;
	height: 108px;
	border-radius: 22px;
	overflow: hidden;
	border: 3px solid rgba(255,255,255,.16);
	background: var(--ez-graphite);
	box-shadow: 0 14px 38px rgba(0,0,0,.6);
}

.ez-rp-hero__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* جا باز کردن برای آواتارِ شناور، وگرنه چیپ‌های آمار از زیرش رد می‌شوند. */
.ez-rp-hero__inner:has(.ez-rp-hero__avatar) { padding-left: 128px; }

/* در عرض کم، آواتارِ شناور روی متن می‌افتد؛ آنجا کوچک‌تر و بالای بلوک متن. */
@media (max-width: 720px) {
	.ez-rp-hero__inner:has(.ez-rp-hero__avatar) { padding-left: 0; }

	.ez-rp-hero__avatar {
		position: static;
		width: 74px;
		height: 74px;
		border-radius: 16px;
		margin-bottom: 12px;
	}
}

.ez-rp-hero__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }

.ez-rp-tag {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	color: #ffd7dc;
	background: var(--ez-red-faint);
	border: 1px solid color-mix(in srgb, var(--ez-red) 42%, transparent);
}

.ez-rp-hero__title {
	margin: 0 0 8px;
	font-size: clamp(26px, 4vw, 42px);
	font-weight: 800;
	line-height: 1.2;
	color: #fff;
	text-shadow: 0 4px 26px rgba(0,0,0,.75);
}

.ez-rp-hero__meta {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 18px;
	font-size: 14px;
	color: var(--ez-text-soft);
	text-shadow: 0 2px 10px rgba(0,0,0,.85);
}

/* آمار سریع اتاق */
.ez-rp-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ez-rp-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 104px;
	padding: 12px 16px;
	border-radius: var(--ez-r-md);
	background: var(--ez-glass-bg);
	border: 1px solid var(--ez-glass-border);
	backdrop-filter: blur(18px) saturate(150%);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
}

.ez-rp-stat .dashicons { color: var(--ez-red-hot); margin-bottom: 2px; }
.ez-rp-stat b { font-size: 17px; font-weight: 800; color: #fff; }
.ez-rp-stat small { font-size: 11px; color: var(--ez-muted); }

/* -------------------------------------------------------------------------
   چیدمان دو ستونه
   ------------------------------------------------------------------------- */
.ez-rp-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 20px;
	padding: 24px 26px 0;
	align-items: start;
}

.ez-rp-main { display: grid; gap: 16px; min-width: 0; }

/* min-width:0 روی هر دو ستون لازم است: بدون آن، «کمینهٔ خودکار» آیتم گرید
   اجازه نمی‌دهد ستون از عرضِ محتوایش کوچک‌تر شود و نوار افقی روزها (حدود
   ۸۰۰px) کل ستون را در حالت تک‌ستونه به ۸۵۰px پهن می‌کرد؛ چون .ez-rp
   خودش overflow:hidden دارد، صفحه در موبایل بریده می‌شد. */
.ez-rp-side { position: sticky; top: 20px; min-width: 0; }

@media (max-width: 980px) {
	.ez-rp-grid { grid-template-columns: 1fr; padding-inline: 16px; }
	.ez-rp-side { position: static; }
}

/* -------------------------------------------------------------------------
   کارت‌های محتوا
   ------------------------------------------------------------------------- */
.ez-rp-card {
	padding: 20px 22px;
	border-radius: var(--ez-r-lg);
	background: var(--ez-glass-bg);
	border: 1px solid var(--ez-glass-border);
	box-shadow: var(--ez-glass-shadow);
	backdrop-filter: blur(20px) saturate(150%);
	-webkit-backdrop-filter: blur(20px) saturate(150%);
}

.ez-rp-card__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
}

.ez-rp-card__title .dashicons { color: var(--ez-red-hot); }

.ez-rp-card--rules { border-color: rgba(240,169,59,.28); }
.ez-rp-card--rules .ez-rp-card__title .dashicons { color: var(--ez-warn); }

.ez-rp-prose { font-size: 14.5px; line-height: 2; color: var(--ez-text-soft); }
.ez-rp-prose p { margin: 0 0 10px; }
.ez-rp-prose p:last-child { margin-bottom: 0; }
.ez-rp-prose ul, .ez-rp-prose ol { padding-inline-start: 20px; margin: 0 0 10px; }

/* متن داستان/قوانین از ویرایشگر می‌آید و معمولاً رنگ inline دارد که برای
   زمینهٔ روشن نوشته شده؛ روی کارت تیرهٔ این صفحه تقریباً نامرئی می‌شد.
   اینجا رنگ متن به رنگ خوانای کارت برگردانده می‌شود. عنوان‌ها سفید و
   لینک‌ها با رنگ نشان می‌مانند تا سلسله‌مراتب حفظ شود. */
.ez-rp-prose [style*="color"],
.ez-rp-prose span,
.ez-rp-prose font,
.ez-rp-prose p,
.ez-rp-prose li,
.ez-rp-prose div { color: inherit !important; }

.ez-rp-prose h1, .ez-rp-prose h2, .ez-rp-prose h3,
.ez-rp-prose h4, .ez-rp-prose h5, .ez-rp-prose h6,
.ez-rp-prose strong, .ez-rp-prose b { color: #fff !important; }

.ez-rp-prose h1, .ez-rp-prose h2, .ez-rp-prose h3,
.ez-rp-prose h4, .ez-rp-prose h5, .ez-rp-prose h6 {
	margin: 14px 0 8px;
	line-height: 1.6;
}

.ez-rp-prose a { color: var(--ez-red-hot) !important; }

/* پس‌زمینهٔ روشنِ چسبیده به متن هم از ویرایشگر می‌آید و کادر سفید ایجاد می‌کند. */
.ez-rp-prose [style*="background"] { background: transparent !important; }

.ez-rp-address { margin: 0; font-size: 14px; line-height: 1.9; color: var(--ez-text-soft); }

/* گالری */
.ez-rp-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 10px;
}

/* ویدیو تیزر — نسبت ۱۶:۹ و کاملاً واکنش‌گرا */
.ez-rp-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var(--ez-r-md);
	overflow: hidden;
	background: #000;
	border: 1px solid rgba(255,255,255,.1);
}

.ez-rp-video iframe,
.ez-rp-video video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.ez-rp-gallery__item { margin: 0; border-radius: var(--ez-r-md); overflow: hidden; aspect-ratio: 4 / 3; }
.ez-rp-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s var(--ez-ease); }
.ez-rp-gallery__item:hover img { transform: scale(1.06); }

/* -------------------------------------------------------------------------
   جعبهٔ رزرو
   ------------------------------------------------------------------------- */
.ez-rp-booking {
	padding: 22px;
	border-radius: var(--ez-r-lg);
	background: linear-gradient(160deg, color-mix(in srgb, var(--ez-red) 10%, transparent) 0%, rgba(255,255,255,.03) 40%, rgba(255,255,255,.05) 100%);
	border: 1px solid color-mix(in srgb, var(--ez-red) 24%, transparent);
	box-shadow: var(--ez-glass-shadow);
	backdrop-filter: blur(22px) saturate(150%);
	-webkit-backdrop-filter: blur(22px) saturate(150%);
}

.ez-rp-booking__head { margin-bottom: 18px; }
.ez-rp-booking__kicker {
	display: block;
	font-size: 11px;
	letter-spacing: .16em;
	color: var(--ez-red-hot);
	text-transform: uppercase;
	margin-bottom: 4px;
}
.ez-rp-booking__head h2 { margin: 0; font-size: 20px; font-weight: 800; color: #fff; }

/* گیت (نیاز به ورود / بدون سانس) */
.ez-rp-gate {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 28px 18px;
	text-align: center;
	border-radius: var(--ez-r-md);
	background: rgba(255,255,255,.04);
	border: 1px dashed rgba(255,255,255,.16);
}
.ez-rp-gate .dashicons { font-size: 30px; width: 30px; height: 30px; color: var(--ez-muted); }
.ez-rp-gate p { margin: 0; font-size: 14px; color: var(--ez-text-soft); }

/* گام‌ها */
.ez-rp-step { margin-bottom: 20px; }
.ez-rp-step__head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.ez-rp-step__head h3 { margin: 0; font-size: 14.5px; font-weight: 700; color: #fff; }

.ez-rp-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(140deg, var(--ez-red) 0%, var(--ez-red-hot) 100%);
	box-shadow: 0 0 0 3px var(--ez-red-faint);
}

.ez-rp-hint { margin: 8px 0 0; font-size: 12px; color: var(--ez-muted); }

/* -------------------------------------------------------------------------
   حالت گام‌به‌گام (فقط گوشی — کلاس is-stepper را جاوااسکریپت می‌گذارد)
   ------------------------------------------------------------------------- */
.ez-rp-form.is-stepper .ez-rp-step { display: none; }
.ez-rp-form.is-stepper .ez-rp-step.is-current { display: block; animation: ez-rp-step-in .28s var(--ez-ease); }

@keyframes ez-rp-step-in {
	from { opacity: 0; transform: translateX(-14px); }
	to   { opacity: 1; transform: translateX(0); }
}

/* فاکتور و دکمهٔ پرداخت فقط در گام آخر؛ وگرنه کاربر وسط راه دکمهٔ
   «ادامه و پرداخت» را می‌بیند و فکر می‌کند فرم تمام شده است. */
.ez-rp-form.is-stepper .ez-rp-invoice,
.ez-rp-form.is-stepper [data-ez-rp-submit],
.ez-rp-form.is-stepper .ez-rp-note { display: none; }

.ez-rp-form.is-stepper.is-last-step .ez-rp-invoice { display: block; }
.ez-rp-form.is-stepper.is-last-step [data-ez-rp-submit] { display: inline-flex; }
.ez-rp-form.is-stepper.is-last-step .ez-rp-note { display: block; }

.ez-rp-stepper-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid rgba(255,255,255,.09);
}

.ez-rp-stepper-nav .ez-rp-btn { padding: 9px 14px; font-size: 13px; }
.ez-rp-stepper-nav .ez-rp-btn:disabled { opacity: .35; }
.ez-rp-stepper-count { font-size: 12px; color: var(--ez-muted); white-space: nowrap; }

/* روزها */
/* ریل افقی روزها با دکمهٔ چپ/راست — بدون این دکمه‌ها، در ستون باریک رزرو
   فقط دو کارت دیده می‌شد و معلوم نبود بقیه با اسکرول در دسترس‌اند. */
.ez-rp-rail { position: relative; display: flex; align-items: center; gap: 6px; }

.ez-rp-rail__btn {
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	cursor: pointer;
	color: var(--ez-text-soft);
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.14);
	transition: background .16s var(--ez-ease), color .16s var(--ez-ease), opacity .16s var(--ez-ease);
}

.ez-rp-rail__btn:hover { color: #fff; background: var(--ez-red-faint); border-color: color-mix(in srgb, var(--ez-red) 50%, transparent); }
.ez-rp-rail__btn:disabled { opacity: .25; cursor: default; }
.ez-rp-rail.is-static .ez-rp-rail__btn { display: none; }
.ez-rp-rail__btn .dashicons { font-size: 16px; width: 16px; height: 16px; }

.ez-rp-days {
	display: flex;
	gap: 8px;
	flex: 1;
	min-width: 0;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	padding-bottom: 6px;
	scrollbar-width: thin;
}

.ez-rp-day {
	flex: 0 0 auto;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 96px;
	padding: 11px 12px;
	border-radius: var(--ez-r-md);
	cursor: pointer;
	text-align: center;
	font-family: inherit;
	color: var(--ez-text-soft);
	background: rgba(255,255,255,.045);
	border: 1px solid rgba(255,255,255,.10);
	transition: border-color .18s var(--ez-ease), background .18s var(--ez-ease), transform .18s var(--ez-ease);
}

.ez-rp-day:hover { border-color: rgba(255,255,255,.26); transform: translateY(-2px); }

.ez-rp-day.is-active {
	color: #fff;
	background: var(--ez-red-faint);
	border-color: color-mix(in srgb, var(--ez-red) 60%, transparent);
	box-shadow: 0 8px 22px -12px var(--ez-red-glow);
}

.ez-rp-day__weekday { font-size: 13px; font-weight: 700; }
.ez-rp-day__date { font-size: 11.5px; opacity: .82; }
.ez-rp-day__count { font-size: 10.5px; color: var(--ez-ok); }

/* سانس‌ها */
/* min(100%,88px) یعنی در ستون باریک رزرو هم دست‌کم دو ساعت در هر ردیف جا
   می‌شود؛ با 104px ثابت، در عرض‌های کم تک‌ستونه می‌شد و کاربر برای دیدن
   بقیهٔ ساعت‌ها باید خیلی اسکرول می‌کرد. */
.ez-rp-slot-group { display: none; grid-template-columns: repeat(auto-fill, minmax(min(100%, 88px), 1fr)); gap: 8px; }
.ez-rp-slot-group.is-active { display: grid; }

.ez-rp-slot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 11px 8px;
	border-radius: var(--ez-r-sm);
	cursor: pointer;
	font-family: inherit;
	color: var(--ez-text-soft);
	background: rgba(255,255,255,.045);
	border: 1px solid rgba(255,255,255,.10);
	transition: border-color .18s var(--ez-ease), background .18s var(--ez-ease), transform .18s var(--ez-ease);
}

.ez-rp-slot:hover { border-color: rgba(255,255,255,.28); transform: translateY(-2px); }

.ez-rp-slot.is-selected {
	color: #fff;
	background: linear-gradient(140deg, color-mix(in srgb, var(--ez-red) 32%, transparent) 0%, color-mix(in srgb, var(--ez-red) 14%, transparent) 100%);
	border-color: var(--ez-red);
	box-shadow: 0 10px 24px -14px var(--ez-red-glow);
}

.ez-rp-slot__time { font-size: 15px; font-weight: 800; letter-spacing: .02em; }
.ez-rp-slot__price { font-size: 11px; opacity: .8; }

/* شمارندهٔ نفرات */
.ez-rp-counter {
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: 200px;
}

.ez-rp-counter__btn {
	width: 38px;
	height: 38px;
	border-radius: var(--ez-r-sm);
	cursor: pointer;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.14);
	transition: background .16s var(--ez-ease), border-color .16s var(--ez-ease);
}

.ez-rp-counter__btn:hover { background: var(--ez-red-faint); border-color: color-mix(in srgb, var(--ez-red) 50%, transparent); }

.ez-rp-counter input {
	flex: 1;
	height: 38px;
	min-width: 0;
	padding: 0 8px;
	border-radius: var(--ez-r-sm);
	text-align: center;
	font-family: inherit;
	font-size: 16px;
	font-weight: 800;
	color: #fff;
	background: rgba(0,0,0,.35);
	border: 1px solid rgba(255,255,255,.14);
	-moz-appearance: textfield;
}

.ez-rp-counter input::-webkit-outer-spin-button,
.ez-rp-counter input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* فیلدهای مشخصات */
.ez-rp-fields { display: grid; gap: 12px; }
.ez-rp-field { display: flex; flex-direction: column; gap: 5px; }
.ez-rp-field > span { font-size: 12.5px; color: var(--ez-text-soft); }

.ez-rp-field input {
	width: 100%;
	height: 42px;
	padding: 0 12px;
	border-radius: var(--ez-r-sm);
	font-family: inherit;
	font-size: 14px;
	color: #fff;
	background: rgba(0,0,0,.35);
	border: 1px solid rgba(255,255,255,.14);
	transition: border-color .16s var(--ez-ease), box-shadow .16s var(--ez-ease);
}

.ez-rp-field input:focus {
	outline: none;
	border-color: var(--ez-red);
	box-shadow: 0 0 0 3px var(--ez-red-faint);
}

.ez-rp-field input[name="mobile"] { direction: ltr; text-align: right; }

/* فاکتور */
.ez-rp-invoice {
	margin: 18px 0 14px;
	padding: 14px 16px;
	border-radius: var(--ez-r-md);
	background: rgba(0,0,0,.32);
	border: 1px solid rgba(255,255,255,.09);
}

.ez-rp-invoice__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	padding: 6px 0;
	font-size: 12.5px;
	color: var(--ez-muted);
}

.ez-rp-invoice__row b { font-size: 12.5px; font-weight: 600; color: var(--ez-text-soft); text-align: left; }

.ez-rp-invoice__row--total {
	margin-top: 6px;
	padding-top: 12px;
	border-top: 1px dashed rgba(255,255,255,.14);
	font-size: 14px;
	color: #fff;
}

.ez-rp-invoice__row--total b { font-size: 19px; font-weight: 800; color: var(--ez-red-hot); }

/* دکمه‌ها */
.ez-rp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 12px 20px;
	border-radius: var(--ez-r-md);
	cursor: pointer;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
	transition: transform .16s var(--ez-ease), box-shadow .16s var(--ez-ease), opacity .16s var(--ez-ease);
}

.ez-rp-btn--primary {
	color: #fff;
	background: linear-gradient(140deg, var(--ez-red) 0%, var(--ez-red-hot) 100%);
	box-shadow: 0 14px 30px -14px var(--ez-red-glow);
}

.ez-rp-btn--primary:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 18px 36px -14px var(--ez-red-glow); }
.ez-rp-btn--block { width: 100%; }

.ez-rp-btn:disabled { opacity: .42; cursor: not-allowed; transform: none; box-shadow: none; }
.ez-rp-btn.is-loading { opacity: .7; pointer-events: none; }

.ez-rp-note { margin: 10px 0 0; font-size: 11.5px; line-height: 1.8; color: var(--ez-muted); text-align: center; }

.ez-rp-btn--ghost {
	color: var(--ez-text);
	background: rgba(255,255,255,.05);
	border-color: rgba(255,255,255,.14);
	padding: 10px 16px;
	font-size: 13.5px;
}

.ez-rp-btn--ghost:hover { background: var(--ez-red-faint); border-color: color-mix(in srgb, var(--ez-red) 50%, transparent); }

/* -------------------------------------------------------------------------
   اعضای گروه + انتخابگر «تیم من»
   ------------------------------------------------------------------------- */
.ez-rp-roster__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 12px 0 0; }

.ez-rp-roster__status { flex: 1; min-width: 0; font-size: 12px; line-height: 1.7; color: var(--ez-ok); }
.ez-rp-roster__status.is-error { color: var(--ez-warn); }

.ez-rp-teams { display: grid; gap: 8px; margin-top: 12px; }

.ez-rp-team {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 10px 12px;
	border-radius: var(--ez-r-md);
	cursor: pointer;
	text-align: start;
	font-family: inherit;
	color: var(--ez-text);
	background: var(--ez-glass-bg);
	border: 1px solid var(--ez-glass-border);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	transition: border-color .16s var(--ez-ease), background .16s var(--ez-ease), transform .16s var(--ez-ease);
}

.ez-rp-team:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--ez-red) 45%, transparent); }
.ez-rp-team.is-selected { border-color: var(--ez-red); background: var(--ez-red-faint); }
.ez-rp-team.is-loading { opacity: .6; pointer-events: none; }

.ez-rp-team__avatar {
	width: 38px;
	height: 38px;
	flex-shrink: 0;
	border-radius: 50%;
	object-fit: cover;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
}

.ez-rp-team__avatar--empty {
	display: grid;
	place-items: center;
	font-size: 18px;
	color: var(--ez-muted);
}

.ez-rp-team__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.ez-rp-team__name { font-size: 13.5px; font-weight: 700; color: #fff; }
.ez-rp-team__meta { font-size: 11.5px; color: var(--ez-muted); }
.ez-rp-team__meta i { font-style: normal; opacity: .6; }

.ez-rp-team__pick { color: var(--ez-red); opacity: 0; transition: opacity .16s var(--ez-ease); }
.ez-rp-team.is-selected .ez-rp-team__pick { opacity: 1; }

/* ردیف‌های عضو */
.ez-rp-members { display: grid; gap: 10px; margin-top: 12px; }

/* ردیف عضو عمداً «سرستون + فیلدها» است نه یک ردیف افقی: ستون رزرو باریک است و
   با چیدمان افقی، شمارهٔ عضو و دکمهٔ حذف نسبت به فیلدهای درهم‌رفته بد می‌افتادند. */
.ez-rp-member {
	padding: 12px;
	border-radius: var(--ez-r-md);
	background: rgba(0,0,0,.24);
	border: 1px solid rgba(255,255,255,.09);
}

.ez-rp-member__head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }

.ez-rp-member__index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	border-radius: 50%;
	font-size: 11.5px;
	font-weight: 700;
	color: var(--ez-text-soft);
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
}

.ez-rp-member__label { flex: 1; min-width: 0; font-size: 12px; color: var(--ez-muted); }

/* دو ستونه تا وقتی جا هست؛ زیر ~۳۱۰px عرضِ مفید، تک‌ستونه می‌شود. */
.ez-rp-member__fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
	gap: 10px;
	min-width: 0;
}

.ez-rp-member__remove {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	border-radius: var(--ez-r-sm);
	cursor: pointer;
	color: var(--ez-text-soft);
	background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.12);
	transition: color .16s var(--ez-ease), background .16s var(--ez-ease), border-color .16s var(--ez-ease);
}

.ez-rp-member__remove:hover {
	color: #fff;
	background: color-mix(in srgb, var(--ez-red) 22%, transparent);
	border-color: color-mix(in srgb, var(--ez-red) 50%, transparent);
}

.ez-rp-members:empty + [data-ez-rp-member-add] { margin-top: 12px; }

/* -------------------------------------------------------------------------
   امکانات اضافه (ماژول مشترک NFE_Amenities)
   ------------------------------------------------------------------------- */
.ez-rp .nfe-amenity-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.ez-rp .nfe-amenity-chips li { margin: 0; }

.ez-rp .nfe-amenity-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 13px;
	border-radius: 999px;
	font-size: 13px;
	line-height: 1;
	color: var(--ez-text-soft);
	background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.11);
}

.ez-rp .nfe-amenity-chip.is-paid { color: #fff; background: var(--ez-red-faint); border-color: color-mix(in srgb, var(--ez-red) 42%, transparent); }
.ez-rp .nfe-amenity-chip .dashicons { font-size: 16px; width: 16px; height: 16px; color: var(--ez-red-hot); }
.ez-rp .nfe-amenity-chip__price { font-style: normal; font-size: 11.5px; color: var(--ez-warn); }
.ez-rp .nfe-amenity-icon-img { width: 18px; height: 18px; border-radius: 5px; object-fit: cover; }

.ez-rp .nfe-extras { display: grid; gap: 9px; }

.ez-rp .nfe-extra-option {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 13px;
	border-radius: var(--ez-r-md);
	cursor: pointer;
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.10);
	transition: border-color .16s var(--ez-ease), background .16s var(--ez-ease);
}

.ez-rp .nfe-extra-option:hover { border-color: rgba(255,255,255,.26); }
.ez-rp .nfe-extra-option:has(input:checked) { background: var(--ez-red-faint); border-color: color-mix(in srgb, var(--ez-red) 55%, transparent); }

.ez-rp .nfe-extra-option input[type="checkbox"] { width: 18px; height: 18px; margin: 0; flex: 0 0 auto; accent-color: var(--ez-red); }
.ez-rp .nfe-extra-option__icon { display: inline-flex; align-items: center; color: var(--ez-red-hot); }
.ez-rp .nfe-extra-option__icon .dashicons { font-size: 20px; width: 20px; height: 20px; }
.ez-rp .nfe-extra-option__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.ez-rp .nfe-extra-option__name { font-size: 13.5px; font-weight: 600; color: #fff; }
.ez-rp .nfe-extra-option__desc { font-size: 11.5px; color: var(--ez-muted); }
.ez-rp .nfe-extra-option__price { font-size: 12.5px; font-weight: 700; color: var(--ez-warn); white-space: nowrap; }

/* -------------------------------------------------------------------------
   پیام‌ها و حالت خالی
   ------------------------------------------------------------------------- */
.ez-rp-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 60px 24px;
	text-align: center;
}

.ez-rp-empty .dashicons { font-size: 34px; width: 34px; height: 34px; color: var(--ez-muted); }
.ez-rp-empty h2 { margin: 0; font-size: 19px; color: #fff; }
.ez-rp-empty p { margin: 0; font-size: 14px; color: var(--ez-muted); }

.ez-rp .ez-booking-notice {
	margin: 18px 26px 0;
	padding: 13px 16px;
	border-radius: var(--ez-r-md);
	font-size: 14px;
	border: 1px solid rgba(255,255,255,.12);
	background: rgba(255,255,255,.05);
}

.ez-rp .ez-booking-notice p { margin: 0; }
.ez-rp .ez-booking-notice--error { border-color: rgba(255,90,104,.45); background: rgba(255,90,104,.12); color: #ffc4c9; }
.ez-rp .ez-booking-notice--success { border-color: rgba(47,214,160,.45); background: rgba(47,214,160,.12); color: #b7f4de; }

/* Safari روی iOS ورودی با فونت کوچک‌تر از ۱۶px را هنگام فوکوس زوم می‌کند. */
@media (max-width: 782px) {
	.ez-rp input { font-size: 16px; }
	.ez-rp-hero { min-height: 260px; padding: 26px 18px 22px; }
	.ez-rp-stat { min-width: 88px; padding: 10px 12px; }
}
