/* Ghalamoom visual system 2026 — editorial creative academy */
:root {
	--gh-vs-radius: var(--gh-radius-card);
	--gh-vs-shadow: var(--gh-shadow-2);
	--gh-vs-hairline: color-mix(in srgb, var(--gh-border-default) 72%, transparent);
	--gh-header-sticky-top: 14px;
	/* ارتفاع واقعی قاب هدر = ارتفاع محتوای ۷۲px + دو خط مرزی یک‌پیکسلی. */
	--gh-header-sticky-height: 74px;
	--gh-sticky-gap: 18px;
	--gh-sticky-offset: calc(var(--gh-header-sticky-top) + var(--gh-header-sticky-height) + var(--gh-sticky-gap));
}

body { line-height: 1.85; letter-spacing: -.012em; }
body::before {
	content: ''; position: fixed; inset: 0; z-index: -2; pointer-events: none;
	background: radial-gradient(circle at 8% 18%, color-mix(in srgb, var(--gh-accent-solid) 5%, transparent), transparent 30rem), radial-gradient(circle at 92% 72%, color-mix(in srgb, var(--gh-accent-solid) 4%, transparent), transparent 34rem);
}
h1, h2, h3, h4 { letter-spacing: -.045em; font-variation-settings: 'wght' 850; }
p { text-wrap: pretty; }
.gh-container { width: min(100% - 48px, 1280px); max-width: 1280px; }
.gh-section { padding-block: clamp(56px, 7vw, 88px); }
.gh-section.gh-section-connected { padding-block: clamp(36px, 4vw, 54px); }
.gh-section.gh-section-detached { padding-block: clamp(78px, 9vw, 112px); }
.gh-section + .gh-section { border: 0; }

.gh-header { top: 14px; width: min(100% - 36px, 1280px); border-radius: var(--gh-radius-card); border-color: var(--gh-vs-hairline); box-shadow: var(--gh-shadow-2); }
.gh-header::before { border-radius: inherit; background: color-mix(in srgb, var(--gh-bg-page) 82%, transparent); backdrop-filter: blur(24px) saturate(1.4); }
.gh-header-inner { height: 72px; }
.gh-logo { gap: 10px; font-size: 20px; letter-spacing: -.05em; }
.gh-logo-mark { width: 29px; }
.gh-menu { gap: 2px; }
.gh-menu > li > a { min-height: 42px; padding-inline: 15px; font-size: 13.5px; }
.gh-menu > li > a::after { inset-inline: 19px; bottom: 5px; }
.gh-icon-btn { border: 1px solid transparent; }
.gh-icon-btn:hover { border-color: var(--gh-border-subtle); }
.gh-account-trigger { min-height: 44px; box-shadow: var(--gh-shadow-1); }

.gh-btn { min-height: 46px; padding-inline: 21px; border-radius: var(--gh-radius-control); font-size: 14px; }
.gh-btn-lg { min-height: 56px; padding-inline: 30px; border-radius: var(--gh-radius-group); font-size: 15.5px; }
.gh-btn-sm { min-height: 38px; border-radius: var(--gh-radius-compact); }
.gh-btn-primary { box-shadow: var(--gh-shadow-accent); }
.gh-btn-primary:hover { transform: translateY(-2px); box-shadow: var(--gh-shadow-accent-hover); }
.gh-btn-secondary { border-color: var(--gh-border-default); box-shadow: none; }

.gh-hero { min-height: min(900px, calc(100svh - 12px)); padding-block: 136px 64px; border: 0; background: transparent; }
.gh-hero::before { inset: 72px 3% auto; height: 650px; background-size: 56px 56px; opacity: .32; mask-image: radial-gradient(ellipse 72% 68% at center, #000 0, transparent 74%); }
.gh-hero::after { top: 43%; width: min(800px, 78vw); border-color: color-mix(in srgb, var(--gh-accent-border) 42%, transparent); box-shadow: 0 0 0 100px color-mix(in srgb, var(--gh-accent-surface) 15%, transparent), 0 0 0 200px color-mix(in srgb, var(--gh-accent-surface) 8%, transparent); }
.gh-hero-brandline { margin-bottom: 24px; text-transform: uppercase; letter-spacing: .09em; }
.gh-hero-eyebrow { padding: 8px 16px; box-shadow: var(--gh-shadow-1); }
.gh-hero h1 { max-width: 1040px; margin-block: 24px 20px; font-size: clamp(50px, 7.5vw, 96px); line-height: 1.12; letter-spacing: -.075em; }
.gh-hero-rotate { text-decoration: none; color: var(--gh-accent-text); position: relative; }
.gh-hero-rotate::after { content: ''; position: absolute; inset-inline: 2%; bottom: .03em; height: .1em; border-radius: 99px; background: var(--gh-accent-solid); opacity: .3; transform: rotate(-1deg); }
.gh-hero > .gh-container > p { max-width: 720px; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.95; }
.gh-hero-ctas { margin-top: 34px; gap: 12px; }
.gh-hero-ctas .gh-btn { min-width: 210px; }
.gh-hero-assurance { margin-top: 26px; }
.gh-proof-band { width: min(100%, 1000px); margin-top: 54px; padding: 8px; border-radius: var(--gh-r-xl); border-color: var(--gh-vs-hairline); box-shadow: var(--gh-vs-shadow); }
.gh-proof { min-height: 88px; }
.gh-proof b { font-size: 20px; letter-spacing: -.035em; }
.gh-proof .gh-rating-value {
	direction: rtl;
	unicode-bidi: isolate;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: .12em;
	letter-spacing: 0;
	font-variant-numeric: tabular-nums;
}
.gh-rating-value > bdi {
	direction: ltr;
	unicode-bidi: isolate;
	color: inherit;
	font: inherit;
}
.gh-rating-value > small {
	color: var(--gh-text-tertiary);
	font-size: .58em;
	font-weight: 750;
	letter-spacing: 0;
	white-space: nowrap;
}
.gh-trust-metrics .gh-rating-value {
	display: inline-flex;
	align-items: baseline;
	gap: .3em;
	direction: rtl;
	unicode-bidi: isolate;
}
.gh-trust-metrics .gh-rating-value > small {
	color: var(--gh-text-tertiary);
	font-size: 11px;
}

.gh-sec-head { margin-bottom: 34px; align-items: end; }
.gh-sec-head h2 { max-width: 760px; font-size: clamp(30px, 4vw, 48px); line-height: 1.28; }
.gh-sec-head h2::before { width: 48px; height: 5px; margin-bottom: 16px; }
.gh-sec-tools { gap: 10px; }
.gh-slider-arrows { padding: 4px; border: 1px solid var(--gh-border-subtle); border-radius: var(--gh-r-md); background: var(--gh-bg-surface); }
.gh-slider-arrows .gh-icon-btn {
	border-radius: max(0px, calc(var(--gh-r-md) - 4px));
}

.gh-path-steps { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.gh-pstep { min-height: 102px; padding: 18px; border-radius: var(--gh-r-xl); }
.gh-pstep:hover { transform: translateY(-4px); }
.gh-pstep-dot { width: 48px; height: 48px; border-radius: var(--gh-r-md); }

.gh-grid-cards { gap: 24px; }
.gh-card { border-color: var(--gh-vs-hairline); border-radius: var(--gh-vs-radius); box-shadow: var(--gh-shadow-1); transition: transform .28s var(--gh-ease-out), box-shadow .28s var(--gh-ease-out), border-color .28s var(--gh-ease-out); }
.gh-card:hover { transform: translateY(-4px); box-shadow: var(--gh-shadow-2); }
.gh-card-cover { margin: 8px; border-radius: var(--gh-radius-card-inset-8); }
.gh-card-body { padding: 20px 22px 23px; }
.gh-card-title { font-size: 19px; line-height: 1.55; }
.gh-card-title a { color: var(--gh-text-primary); }
.gh-course-tag { padding: 6px 10px; border-radius: var(--gh-r-sm); font-size: 11px; }
.gh-course-meta { margin-top: 15px; }
.gh-card-foot { margin-top: 20px; padding-top: 18px; }
.gh-card-course::after { inset-inline: 28px; height: 4px; }
.gh-card-course .gh-card-cover { aspect-ratio: 4 / 3; }
.gh-price { font-size: 17px; }
.gh-badge-sale-ribbon { top: 18px; inset-inline-start: 18px; border-radius: var(--gh-r-sm); }

/* کارت دوره — ساختار حرفه‌ای با سلسله‌مراتب روشن، نشانه‌های اعتماد و دسترسی سریع.
   رنگ دوره فقط در واکنش ظریف قاب استفاده می‌شود؛ سطح اصلی خنثی می‌ماند تا کارت فانتزی نشود. */
.gh-card-course {
	display: flex;
	flex-direction: column;
	border-color: var(--gh-border-default);
	box-shadow: var(--gh-shadow-1);
}

.gh-card-course::after { display: none; }

.gh-card-course:hover,
.gh-card-course:focus-within {
	border-color: color-mix(in srgb, var(--gh-course-accent) 48%, var(--gh-border-default));
	box-shadow: var(--gh-shadow-2);
}

.gh-course-card-media {
	position: relative;
	margin: 8px;
	overflow: hidden;
	border-radius: var(--gh-radius-card-inset-8);
	background: var(--gh-bg-sunken);
}

.gh-card-course .gh-course-card-media .gh-card-cover {
	margin: 0;
	border-radius: inherit;
}

.gh-course-card-media::after {
	content: '';
	position: absolute;
	inset: 42% 0 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--gh-stone-950) 48%, transparent));
	opacity: 0;
	transition: opacity var(--gh-dur-base) var(--gh-ease-out);
}

.gh-card-course:hover .gh-course-card-media::after,
.gh-card-course:focus-within .gh-course-card-media::after {
	opacity: 1;
}

.gh-course-quick-btn {
	position: absolute;
	z-index: 3;
	inset-inline: 12px;
	inset-block-end: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	padding-inline: 14px;
	border: 1px solid color-mix(in srgb, var(--gh-white) 42%, transparent);
	border-radius: var(--gh-radius-control);
	background: color-mix(in srgb, var(--gh-stone-950) 72%, transparent);
	color: var(--gh-white);
	font-size: 12.5px;
	font-weight: 800;
	backdrop-filter: blur(14px);
	cursor: pointer;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity var(--gh-dur-fast) var(--gh-ease-out), transform var(--gh-dur-base) var(--gh-ease-out), background var(--gh-dur-fast) var(--gh-ease-out);
}

.gh-course-quick-btn svg { width: 17px; height: 17px; }
.gh-course-quick-btn:hover { background: var(--gh-accent-solid); }

.gh-card-course:hover .gh-course-quick-btn,
.gh-card-course:focus-within .gh-course-quick-btn {
	opacity: 1;
	transform: translateY(0);
}

.gh-course-card-media > .gh-badge-sale-ribbon {
	inset-block-start: 12px;
	inset-inline-start: 12px;
	inset-inline-end: auto;
	right: 12px;
	left: auto;
	padding: 6px 10px;
	font-size: 12.5px;
	line-height: 1.3;
	letter-spacing: normal;
}

.gh-card-course .gh-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px 17px 18px;
}

.gh-card-course .gh-course-card-identity { gap: 10px; }
.gh-card-course .gh-course-card-identity .gh-course-tag { flex: 1; width: auto; }
.gh-card-course .gh-card-title { min-height: 2.9em; margin-block-start: 14px; font-size: 16px; line-height: 1.45; }
.gh-card-course .gh-card-title a:hover { color: var(--gh-accent-text); }
.gh-card-course .gh-course-meta { gap: 8px 12px; margin-block-start: 12px; }
.gh-card-course .gh-course-meta span { display: inline-flex; align-items: center; white-space: nowrap; }
.gh-card-course .gh-course-meta svg { margin-inline-end: 5px; flex: none; }
.gh-card-course .gh-card-foot { margin-block-start: auto; padding-block-start: 15px; border-block-start-style: solid; }
.gh-card-course .gh-card-foot .gh-btn { min-width: 92px; }

@media (hover: none) {
	.gh-course-quick-btn {
		inset-inline: auto 10px;
		width: 42px;
		min-height: 42px;
		padding: 0;
		opacity: 1;
		transform: none;
	}
	.gh-course-quick-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* تایمر تخفیف دوره‌ها در ابزار سرتیتر، کنار «همه دوره‌ها». */
.gh-course-sale-tools { flex-wrap: wrap; justify-content: flex-end; }
.gh-course-sale-countdown {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 4px 8px 4px 10px;
	border: 1px solid var(--gh-danger-surface);
	border-radius: var(--gh-radius-control);
	background: color-mix(in srgb, var(--gh-danger-surface) 48%, var(--gh-bg-raised));
}
.gh-course-sale-countdown > span { color: var(--gh-danger-text); font-size: 11.5px; font-weight: 850; white-space: nowrap; }
.gh-course-sale-countdown .gh-countdown { gap: 3px; }
.gh-course-sale-countdown .gh-cd-box { min-width: 30px; padding: 3px 2px; border: 0; background: var(--gh-bg-raised); }
.gh-course-sale-countdown .gh-cd-box b { font-size: 12px; }
.gh-course-sale-countdown .gh-cd-box span { display: none; }
.gh-course-sale-countdown .gh-cd-sep { font-size: 11px; }

/* پنجره اطلاعات سریع دوره */
.gh-course-quick-modal {
	position: relative;
	width: min(600px, calc(100vw - 32px));
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--gh-border-default);
}
.gh-course-quick-close {
	position: absolute;
	z-index: 3;
	inset-block-start: 14px;
	inset-inline-end: 14px;
	border-color: color-mix(in srgb, var(--gh-white) 34%, transparent);
	background: color-mix(in srgb, var(--gh-stone-950) 62%, transparent);
	color: var(--gh-white);
	backdrop-filter: blur(10px);
}
.gh-course-quick-cover { height: 220px; background: var(--gh-bg-sunken); }
.gh-course-quick-cover img { width: 100%; height: 100%; object-fit: cover; }
.gh-course-quick-body { padding: 24px; }
.gh-course-quick-modal .gh-popup-head { align-items: flex-start; margin-block-end: 14px; }
.gh-course-quick-modal .gh-popup-head > div { min-width: 0; flex: 1; }
.gh-course-quick-modal .gh-popup-head h2 { font-size: 21px; }
.gh-course-quick-kicker { display: block; margin-block-end: 3px; color: var(--gh-accent-text); font-size: 11px; font-weight: 850; }
.gh-course-quick-modal .gh-popup-pitch { margin-block-end: 16px; font-size: 14px; line-height: 1.9; }
.gh-course-quick-modal .gh-popup-points { padding: 14px; border: 1px solid var(--gh-border-subtle); border-radius: var(--gh-radius-control); background: var(--gh-bg-sunken); }
.gh-course-quick-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding-block-start: 18px;
	border-block-start: 1px solid var(--gh-border-subtle);
}
.gh-course-quick-foot strong { font-size: 17px; font-weight: 900; font-variant-numeric: tabular-nums; }

@media (max-width: 640px) {
	.gh-course-sale-tools { width: 100%; justify-content: space-between; }
	.gh-course-sale-countdown { order: 2; width: 100%; justify-content: space-between; }
	.gh-course-quick-cover { height: 170px; }
	.gh-course-quick-body { padding: 20px; }
	.gh-course-quick-foot { align-items: stretch; flex-direction: column; }
	.gh-course-quick-foot .gh-btn { width: 100%; }
}

.gh-slider-track { gap: 24px; padding-bottom: 28px; }
.gh-pf-card { border-radius: var(--gh-vs-radius); }
.gh-pf-cover { min-height: 340px; }
.gh-pf-overlay { padding: 70px 22px 22px; }
.gh-review-card { min-height: 250px; background: linear-gradient(145deg, color-mix(in srgb, var(--gh-accent-surface) 48%, transparent), transparent 54%), var(--gh-bg-raised); }
.gh-review-txt { font-size: 15px; line-height: 2; }

.gh-course-hd, .gh-archive-head, .gh-discovery-hero { border-radius: var(--gh-radius-section); border-color: var(--gh-vs-hairline); box-shadow: var(--gh-vs-shadow); }
.gh-course-hd { margin-top: 54px; padding: clamp(36px, 6vw, 78px); }
.gh-course-hd h1 { max-width: 900px; font-size: clamp(44px, 6.4vw, 78px); line-height: 1.18; }
.gh-course-lead { max-width: 760px; font-size: clamp(16px, 1.7vw, 20px); }
.gh-course-layout { grid-template-columns: minmax(0, 1fr) 400px; gap: 52px; padding-block: 40px 100px; }
.gh-course-desc { padding: clamp(26px, 4vw, 44px); border-radius: var(--gh-radius-card); box-shadow: var(--gh-shadow-1); }
.gh-course-desc p { font-size: 16px; line-height: 2.05; }
.gh-course-section-head { margin-block: 72px 28px; }
.gh-course-body > .gh-course-overview-head { margin-block: 0 28px; }
.gh-course-section-head .gh-sec-title { font-size: clamp(30px, 4vw, 42px); }
.gh-chapter { border-radius: var(--gh-r-md); }
.gh-chapter summary { min-height: 68px; padding: 18px 20px; }
.gh-buybox { top: var(--gh-sticky-offset); border-radius: var(--gh-radius-card); box-shadow: none; }
.gh-buybox-cover { border-radius: var(--gh-radius-card-inset-8); }
.gh-buybox-body { padding: 26px; }
.gh-buybox .gh-btn-primary { min-height: 54px; }

.gh-archive-head { padding: clamp(38px, 6vw, 76px); margin-bottom: 42px; }
.gh-archive-head h1 { max-width: 820px; font-size: clamp(44px, 6vw, 76px); line-height: 1.18; }
.gh-archive-head > p { max-width: 700px; font-size: clamp(15px, 1.5vw, 18px); }
.gh-fonts-main .gh-grid-cards, .post-type-archive-gh_course .gh-grid-cards, .home .gh-grid-cards { gap: 22px; }
.gh-font-specimen { min-height: 340px; }
.gh-font-specimen.is-compact { padding: 22px; }
.gh-font-specimen.is-compact strong { font-size: clamp(34px, 4vw, 48px); }
.gh-font-layout { gap: 48px; }
.gh-font-head { padding-bottom: 24px; border-bottom: 1px solid var(--gh-border-subtle); }
.gh-font-title { font-size: clamp(40px, 6vw, 70px); }
.gh-font-preview, .gh-font-lab, .gh-font-card { border-radius: var(--gh-radius-card); box-shadow: var(--gh-shadow-1); }

.gh-field input, .gh-field textarea, .gh-field select, .woocommerce input.input-text, .woocommerce textarea, .woocommerce select { min-height: 50px; border-radius: var(--gh-r-md); border-color: var(--gh-border-default); background: var(--gh-bg-surface); }
.gh-popup { border-radius: var(--gh-radius-card); }
.gh-commerce-page, .gh-login-page, .gh-support, .gh-about { padding-block-start: 48px; }
.gh-commerce-content, .gh-commerce-assurance, .gh-login-card, .gh-support-card, .gh-page-article { border-radius: var(--gh-radius-card); border-color: var(--gh-vs-hairline); box-shadow: var(--gh-shadow-1); }
.gh-commerce-hero h1 { font-size: clamp(42px, 6vw, 68px); }
.gh-commerce-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 30px; }
.gh-commerce-content { padding: clamp(22px, 4vw, 38px); }

.gh-footer { margin-top: 100px; border-radius: var(--gh-r-2xl) var(--gh-r-2xl) 0 0; background: radial-gradient(circle at 85% 10%, color-mix(in srgb, var(--gh-accent-surface) 70%, transparent), transparent 28rem), var(--gh-bg-surface); }
.gh-footer-sitemap { padding-block: 70px 54px; gap: 48px; }
.gh-footer-col h3 { margin-bottom: 20px; font-size: 14px; }
.gh-footer-col ul { gap: 12px; }
.gh-footer-col a { font-size: 14px; }
.gh-footer-social a { width: 42px; height: 42px; border-radius: var(--gh-r-md); }

@media (max-width: 1100px) {
	.gh-course-layout { grid-template-columns: minmax(0, 1fr) 360px; gap: 34px; }
	.gh-menu > li > a { padding-inline: 11px; }
}
@media (max-width: 900px) {
	:root {
		--gh-header-sticky-top: 8px;
		--gh-header-sticky-height: 66px;
		--gh-sticky-gap: 14px;
	}
	.gh-container { width: min(100% - 30px, 1280px); }
	.gh-header { top: 8px; width: calc(100% - 18px); }
	.gh-header-inner { height: 64px; }
	.gh-hero { min-height: auto; padding-block: 140px 54px; }
	.gh-hero h1 { font-size: clamp(44px, 10vw, 70px); }
	.gh-course-layout { grid-template-columns: 1fr; }
	.gh-buybox { position: static; }
	.gh-footer-sitemap { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.gh-container { width: min(100% - 24px, 1280px); }
	.gh-section { padding-block: 58px; }
	.gh-header { border-radius: var(--gh-radius-group); }
	.gh-hero { padding-block: 126px 44px; }
	.gh-hero h1 { font-size: clamp(40px, 12vw, 56px); }
	.gh-hero > .gh-container > p { font-size: 15.5px; }
	.gh-proof-band { grid-template-columns: repeat(2, 1fr); margin-top: 38px; }
	.gh-proof { min-height: 76px; }
	.gh-sec-head h2 { font-size: 30px; }
	.gh-grid-cards { gap: 18px; }
	.gh-card:hover { transform: translateY(-4px); }
	.gh-course-hd, .gh-archive-head, .gh-discovery-hero { border-radius: var(--gh-radius-card); }
	.gh-course-hd { margin-top: 30px; padding: 30px 22px; }
	.gh-course-hd h1, .gh-archive-head h1 { font-size: clamp(38px, 11vw, 52px); }
	.gh-course-layout { padding-block: 34px 70px; }
	.gh-course-desc { padding: 22px; }
	.gh-footer { margin-top: 70px; border-radius: var(--gh-radius-card) var(--gh-radius-card) 0 0; }
	.gh-footer-sitemap { grid-template-columns: 1fr 1fr; gap: 36px 22px; padding-block: 52px 42px; }
	.gh-footer-brand { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
	.gh-card, .gh-btn, .gh-pstep { transition: none; }
}

/* فارسی باید با اتصال طبیعی حروف نمایش داده شود؛ فشرده‌سازی یا بازکردن فاصله ممنوع است. */
html[dir="rtl"] body,
html[dir="rtl"] body * {
	letter-spacing: normal !important;
	font-kerning: normal;
}

/* مقیاس خوانای میانه برای تیترها و متن‌های اصلی فارسی. */
.gh-hero h1 { font-size: clamp(36px, 5vw, 58px); line-height: 1.35; }
.gh-sec-head h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.45; }
.gh-course-hd h1 { font-size: clamp(36px, 5vw, 58px); line-height: 1.4; }
.gh-course-section-head .gh-sec-title { font-size: clamp(26px, 3vw, 36px); }
.gh-archive-head h1,
.gh-font-title,
.gh-commerce-hero h1,
.gh-about-id h1,
.gh-login-intro h1,
.gh-discovery-hero h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.4; }
.gh-font-specimen.is-compact strong { font-size: clamp(30px, 3.5vw, 42px); }
.gh-card-title { font-size: clamp(16px, 1.4vw, 18px); }
.gh-card-kicker,
.gh-discovery-section-head span,
.gh-qb-step small,
.gh-cd-box span { font-size: 11px; }

@media (max-width: 640px) {
	.gh-hero h1,
	.gh-course-hd h1,
	.gh-archive-head h1,
	.gh-font-title,
	.gh-commerce-hero h1,
	.gh-about-id h1,
	.gh-login-intro h1,
	.gh-discovery-hero h1 { font-size: clamp(31px, 9vw, 42px); }
	.gh-sec-head h2,
	.gh-course-section-head .gh-sec-title { font-size: clamp(23px, 7vw, 30px); }
}

/* ---------- اسلایدرها: فضای امن برای سایه و حرکت کارت ----------
 * خود track باید اسکرول‌پذیر بماند، بنابراین سایه با overflow بریده می‌شود مگر این‌که
 * داخل ناحیه‌ی اسکرول فضای واقعی داشته باشد. مارجین منفی اثر این فضای محافظ را روی
 * فاصله‌ی سکشن‌ها خنثی می‌کند.
 */
.gh-slider-track {
	--gh-slider-gap: 24px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	gap: var(--gh-slider-gap);
	padding: 30px 0 42px;
	margin: -30px 0 -42px;
	scroll-padding-inline: 0;
	overscroll-behavior-inline: contain;
	cursor: grab;
	touch-action: pan-y;
	-webkit-user-select: none;
	user-select: none;
}

.gh-slider-track.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	scroll-snap-type: none;
}

.gh-slider-track img,
.gh-slider-track a {
	-webkit-user-drag: none;
}

.gh-slider-track > .gh-slide {
	width: auto;
	max-width: 100%;
	flex: 0 0 calc(25% - 18px);
}

/* ---------- کارت مشترک مجله: تصویر زیرین + پنل اطلاعات شناور ---------- */
.gh-journal-card {
	--gh-journal-color: var(--gh-accent-solid);
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 440px;
	padding: 0;
	overflow: hidden;
	border-color: color-mix(in srgb, var(--gh-stone-950) 24%, var(--gh-border-default));
	background: var(--gh-stone-950);
	box-shadow:
		0 8px 22px color-mix(in srgb, var(--gh-journal-color) 8%, transparent),
		var(--gh-shadow-1);
}

.gh-journal-card .gh-card-cover {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	margin: 0;
	border-radius: inherit;
	background: var(--gh-stone-800);
}

.gh-journal-card .gh-card-cover::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(0deg, color-mix(in srgb, var(--gh-stone-950) 64%, transparent), transparent 54%);
	opacity: .5;
	transition: opacity .32s var(--gh-ease-out);
}

.gh-journal-card .gh-card-cover img {
	height: 100%;
	object-fit: cover;
}

.gh-journal-card .gh-card-body {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	min-height: 214px;
	margin: auto 14px 14px;
	padding: 22px 20px 20px;
	overflow: hidden;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-group);
	background: color-mix(in srgb, var(--gh-bg-raised) 96%, transparent);
	box-shadow:
		0 10px 26px color-mix(in srgb, var(--gh-journal-color) 17%, transparent),
		var(--gh-shadow-1);
	backdrop-filter: blur(16px);
	transition:
		box-shadow .32s var(--gh-ease-out),
		border-color .32s var(--gh-ease-out);
}

.gh-journal-card .gh-card-body::before {
	content: '';
	display: block;
	width: 28px;
	height: 3px;
	margin-block-end: 14px;
	border-radius: var(--gh-r-full);
	background: var(--gh-accent-solid);
	transform-origin: right center;
	transition: width .32s var(--gh-ease-out);
}

.gh-journal-card .gh-card-kicker {
	margin-block-end: 6px;
	letter-spacing: normal;
}

.gh-journal-card .gh-card-title {
	margin: 0;
	line-height: 1.65;
}

.gh-journal-card .gh-card-excerpt {
	margin-block-start: 12px;
	line-height: 1.85;
}

.gh-journal-card .gh-article-meta {
	margin-block-start: 26px;
	padding-block-start: 17px;
}

.gh-journal-card:hover .gh-card-cover img {
	transform: scale(1.065);
	filter: saturate(1.08) contrast(1.04);
}

.gh-journal-card:hover .gh-card-cover::after {
	opacity: .28;
}

.gh-journal-card:hover .gh-card-body {
	border-color: var(--gh-accent-border);
	box-shadow:
		0 14px 30px color-mix(in srgb, var(--gh-journal-color) 23%, transparent),
		var(--gh-shadow-2);
}

.gh-journal-card:hover .gh-card-body::before {
	width: 54px;
}

@media (max-width: 640px) {
	.gh-slider-track {
		--gh-slider-gap: 16px;
		padding: 22px 0 34px;
		margin: -22px 0 -34px;
		scroll-padding-inline: 0;
	}
	.gh-slider-track > .gh-slide { flex-basis: 100%; }

	.gh-journal-card .gh-card-body {
		min-height: 200px;
		margin: auto 10px 10px;
		padding: 19px 17px 18px;
	}

	.gh-journal-card {
		min-height: 420px;
	}
}

/* ============================================================
 * مودال‌های viewport-safe + کارت استاندارد نظر
 * ============================================================ */
.gh-popup {
	position: fixed;
	inset: 0;
	margin: auto;
	max-height: calc(100dvh - 32px);
	overscroll-behavior: contain;
}

.gh-popup::backdrop {
	background: color-mix(in srgb, var(--gh-stone-950) 62%, transparent);
	backdrop-filter: blur(7px);
}

.gh-course-quick-modal {
	position: fixed;
	inset: 0;
	margin: auto;
	max-height: min(86dvh, 720px);
}

.gh-course-quick-modal[open] {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
}

.gh-course-quick-body {
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.gh-slide-review.gh-review-card,
.gh-grid-cards > .gh-review-card {
	height: 320px;
	min-height: 320px;
}

.gh-review-card .gh-card-body {
	min-height: 0;
}

.gh-review-card .gh-review-txt {
	display: -webkit-box;
	flex: 1;
	min-height: 0;
	margin: 12px 0 8px;
	overflow: hidden;
	color: var(--gh-text-secondary);
	font-size: 14px;
	line-height: 2;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
}

.gh-review-open {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 6px;
	margin-block: 2px 12px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--gh-accent-text);
	font-size: 12px;
	font-weight: 900;
	cursor: pointer;
	text-decoration: none;
}

.gh-review-open svg {
	width: 14px;
	height: 14px;
	transition: transform var(--gh-dur-fast) var(--gh-ease-out);
}

.gh-review-open:hover svg {
	transform: translateX(-3px);
}

.gh-review-card .gh-review-person {
	margin-block-start: auto;
}

.gh-review-card-audio audio {
	width: 100%;
	margin-block: 10px;
}

.gh-review-card-audio .gh-review-txt {
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.gh-review-modal {
	width: min(680px, calc(100vw - 32px));
	height: min(680px, calc(100dvh - 32px));
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--gh-border-default);
}

.gh-review-modal[open] {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
}

.gh-review-modal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 20px;
	border-block-end: 1px solid var(--gh-border-subtle);
}

.gh-review-modal-head h2 {
	margin: 2px 0 0;
	font-size: 19px;
}

.gh-review-modal-kicker {
	color: var(--gh-accent-text);
	font-size: 11.5px;
	font-weight: 900;
}

.gh-review-modal-body {
	min-height: 0;
	padding: clamp(22px, 4vw, 36px);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.gh-review-modal-proof {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-block-end: 20px;
}

.gh-review-modal-proof .gh-stars {
	margin: 0;
	color: var(--gh-warning-solid);
	font-size: 18px;
	letter-spacing: 2px;
}

.gh-review-modal-text {
	margin: 0;
	color: var(--gh-text-primary);
	font-size: clamp(15px, 1.5vw, 17px);
	line-height: 2.15;
	white-space: pre-line;
}

.gh-review-modal-audio {
	margin-block-start: 20px;
}

.gh-review-modal-audio audio {
	width: 100%;
}

.gh-review-modal-person {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-block-start: 28px;
	padding-block-start: 20px;
	border-block-start: 1px solid var(--gh-border-subtle);
}

.gh-review-modal-avatar {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border-radius: var(--gh-radius-compact);
	background: var(--gh-accent-surface);
	color: var(--gh-accent-text);
	font-size: 17px;
	font-weight: 950;
}

.gh-review-modal-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gh-review-modal-person > span:nth-child(2) {
	min-width: 0;
	flex: 1;
}

.gh-review-modal-person b,
.gh-review-modal-person small {
	display: block;
}

.gh-review-modal-person b {
	font-size: 14px;
}

.gh-review-modal-person small {
	margin-block-start: 3px;
	color: var(--gh-text-tertiary);
	font-size: 11.5px;
}

.gh-review-modal-nav {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) 42px;
	align-items: center;
	gap: 10px;
	padding: 12px 20px;
	border-block-start: 1px solid var(--gh-border-subtle);
	background: var(--gh-bg-sunken);
}

.gh-review-modal-nav > span {
	color: var(--gh-text-secondary);
	font-size: 12px;
	font-weight: 850;
	text-align: center;
}

.gh-review-modal.is-switching .gh-review-modal-body {
	animation: gh-review-modal-switch 220ms var(--gh-ease-out);
}

@keyframes gh-review-modal-switch {
	from { opacity: 0; transform: translateX(10px); }
	to { opacity: 1; transform: none; }
}

@media (max-width: 640px) {
	.gh-slide-review.gh-review-card,
	.gh-grid-cards > .gh-review-card {
		height: 300px;
		min-height: 300px;
	}

	.gh-review-modal {
		width: calc(100vw - 20px);
		height: calc(100dvh - 20px);
	}

	.gh-review-modal-head {
		padding: 14px 16px;
	}

	.gh-review-modal-body {
		padding: 20px 18px;
	}

	.gh-review-modal-person {
		align-items: flex-start;
		flex-wrap: wrap;
	}

	.gh-review-modal-person .gh-btn {
		width: 100%;
	}
}

@media (min-width: 641px) and (max-width: 900px) {
	.gh-slider-track { --gh-slider-gap: 18px; }
	.gh-slider-track > .gh-slide { flex-basis: calc(50% - 9px); }
}

@media (min-width: 901px) and (max-width: 1199px) {
	.gh-slider-track { --gh-slider-gap: 20px; }
	.gh-slider-track > .gh-slide { flex-basis: calc(33.333333% - 13.333333px); }
}

@media (prefers-reduced-motion: reduce) {
	.gh-journal-card .gh-card-cover img,
	.gh-journal-card .gh-card-cover::after,
	.gh-journal-card .gh-card-body,
	.gh-journal-card .gh-card-body::before {
		transition: none;
	}
}

/* هدر و پنل تخفیف یک واحد چسبان‌اند؛ پنل باریک‌تر، زیر قاب و پشت آن جمع می‌شود. */
.gh-header-stack {
	position: sticky;
	inset-block-start: var(--gh-header-sticky-top);
	z-index: 100;
	isolation: isolate;
	width: min(100% - 36px, 1280px);
	margin-inline: auto;
}

.gh-header-stack > .gh-header {
	position: relative;
	inset-block-start: auto;
	z-index: 2;
	width: 100%;
	margin-inline: 0;
}

.gh-header-stack > .gh-sale-banner {
	position: absolute;
	inset-block-start: calc(100% - 1px);
	inset-inline: 32px;
	z-index: 1;
	overflow: hidden;
	color: var(--gh-accent-on-solid);
	border: 1px solid color-mix(in srgb, var(--gh-accent-on-solid) 14%, transparent);
	border-block-start: 0;
	border-radius: 0 0 var(--gh-radius-card) var(--gh-radius-card);
	background:
		linear-gradient(
			110deg,
			color-mix(in srgb, var(--gh-accent-solid) 88%, var(--gh-stone-950)),
			var(--gh-accent-solid)
		);
	box-shadow: 0 10px 24px color-mix(in srgb, var(--gh-accent-solid) 16%, transparent);
	transform: translate3d(0, 0, 0) scaleY(1);
	transform-origin: top center;
	clip-path: inset(0 0 0 0 round 0 0 var(--gh-radius-card) var(--gh-radius-card));
	opacity: 1;
	visibility: visible;
	transition:
		transform .46s var(--gh-ease-out),
		clip-path .42s var(--gh-ease-out),
		opacity .3s var(--gh-ease-out),
		visibility 0s linear 0s;
	will-change: transform, clip-path, opacity;
	backface-visibility: hidden;
}

.gh-header-stack.is-sale-hidden > .gh-sale-banner {
	transform: translate3d(0, calc(-100% - 6px), 0) scaleY(.92);
	clip-path: inset(0 0 100% 0 round 0 0 var(--gh-radius-card) var(--gh-radius-card));
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		transform .4s var(--gh-ease-in-out),
		clip-path .36s var(--gh-ease-in-out),
		opacity .26s var(--gh-ease-out),
		visibility 0s linear .4s;
}

.gh-header-stack .gh-sale-banner-inner {
	width: 100%;
	max-width: none;
	min-height: 48px;
	padding: 6px 14px;
	gap: 14px;
	flex-wrap: nowrap;
}

.gh-header-stack .gh-sale-banner-text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gh-header-stack .gh-sale-banner-cta {
	flex: none;
	min-height: 34px;
	padding-inline: 15px;
	border: 1px solid color-mix(in srgb, var(--gh-accent-on-solid) 20%, transparent);
	box-shadow: none;
}

@media (max-width: 900px) {
	.gh-header-stack {
		width: calc(100% - 18px);
	}

	.gh-header-stack > .gh-sale-banner {
		inset-inline: 14px;
		border-radius: 0 0 var(--gh-radius-group) var(--gh-radius-group);
	}

	.gh-header-stack .gh-sale-banner-inner {
		min-height: 44px;
		padding-inline: 10px;
		gap: 8px;
	}

	.gh-header-stack .gh-sale-banner-text {
		font-size: 12px;
	}

	.gh-header-stack .gh-sale-banner-text svg {
		width: 16px;
		height: 16px;
	}
}

@media (max-width: 640px) {
	.gh-header-stack .gh-sale-banner-text {
		flex: 1 1 auto;
	}

	.gh-header-stack .gh-sale-banner-cta {
		display: none;
	}

	.gh-header-stack .gh-countdown-sm .gh-cd-box {
		min-width: 27px;
		padding: 3px 2px;
	}

	.gh-header-stack .gh-countdown-sm .gh-cd-box span,
	.gh-header-stack .gh-cd-sep {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gh-header-stack > .gh-sale-banner,
	.gh-header-stack.is-sale-hidden > .gh-sale-banner {
		transition-duration: .01ms;
		transition-delay: 0s;
		clip-path: none;
	}
}

/* قانون کادر یکنواخت:
 * فریم‌ها در هر چهار ضلع ضخامت برابر دارند. حالت فعال/فوکوس با تغییر رنگ کل کادر
 * و سایه‌ی محیطی مشخص می‌شود، نه با استروک یا هایلایت ضخیم در یک ضلع.
 * جداکننده‌های واقعی محتوا (جدول، فهرست و برش بلیت) از این قانون مستقل‌اند.
 */
:root {
	--gh-frame-border-width: 1px;
}

.gh-account-trigger {
	box-shadow: var(--gh-shadow-1);
}

.gh-btn-primary {
	box-shadow: var(--gh-shadow-accent);
}

.gh-btn-secondary {
	box-shadow: none;
}

.gh-qb-chip {
	border-width: var(--gh-frame-border-width);
	box-shadow: none;
}

.gh-qb-step.is-on {
	border-color: var(--gh-accent-solid);
	box-shadow: 0 6px 14px color-mix(in srgb, var(--gh-accent-solid) 10%, transparent);
}

.gh-course-mark.gh-course-mark {
	border-width: var(--gh-frame-border-width);
	box-shadow: var(--gh-shadow-1);
}

.gh-search-modal-head:focus-within {
	border-block-end-color: var(--gh-border-subtle);
	box-shadow: none;
}

.gh-search-modal:has(.gh-search-modal-head:focus-within) {
	border-color: var(--gh-accent-solid);
	box-shadow: var(--gh-shadow-3), var(--gh-focus-ring);
}

.gh-notif-item.is-new {
	border-color: var(--gh-accent-border);
}

.gh-notif-item.is-new::before {
	display: none;
}

.gh-header-stack > .gh-sale-banner {
	border-block-start: var(--gh-frame-border-width) solid color-mix(in srgb, var(--gh-accent-on-solid) 14%, transparent);
}

/* ============================================================
 * سیستم مرکزی چیدمان و فاصله
 * همه‌ی صفحات هم‌ساختار از یک شبکه و مقیاس ۸پیکسلی استفاده می‌کنند.
 * ============================================================ */
:root {
	--gh-layout-max: 1280px;
	--gh-layout-edge: 24px;
	--gh-layout-sidebar-sm: 240px;
	--gh-layout-sidebar: 320px;
	--gh-layout-sidebar-wide: 380px;
	--gh-layout-column-gap: 40px;
	--gh-grid-gap: 24px;
	--gh-grid-gap-compact: 16px;
	--gh-flow-gap: 32px;
	--gh-heading-content-gap: 24px;
	--gh-section-related-gap: 48px;
	--gh-section-gap: clamp(64px, 7vw, 88px);
	--gh-section-detached-gap: clamp(80px, 9vw, 112px);
	--gh-page-pad-start: 40px;
	--gh-page-pad-end: 80px;
}

.gh-container {
	width: min(calc(100% - (var(--gh-layout-edge) * 2)), var(--gh-layout-max));
	max-width: var(--gh-layout-max);
}

.gh-section {
	padding-block: var(--gh-section-gap);
}

.gh-section.gh-section-connected {
	padding-block: var(--gh-section-related-gap);
}

.gh-section.gh-section-detached {
	padding-block: var(--gh-section-detached-gap);
}

.gh-sec-head {
	margin-block-end: var(--gh-flow-gap);
}

/* شبکه‌ی کارت عمومی: همه آرشیوها و بخش‌های کارتی در دسکتاپ چهار ستون و یک gap دارند. */
.gh-grid-cards,
.gh-fonts-main .gh-grid-cards,
.post-type-archive-gh_course .gh-grid-cards,
.home .gh-grid-cards,
.gh-about .gh-grid-cards {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--gh-grid-gap);
}

.gh-path-steps,
.gh-path-steps-full {
	gap: var(--gh-grid-gap);
}

/* گرید داخل ستون محتوای محدود، نسخه‌ی دو ستونه‌ی همان سیستم است. */
.gh-course-body .gh-grid-cards {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--gh-grid-gap);
}

.gh-course-body .gh-certs-gallery-course {
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--gh-course-stack-gap, 12px);
}

.gh-bundle-pick,
.gh-qb-chips {
	gap: var(--gh-grid-gap-compact);
}

/* شبکه‌های دارای محتوای اصلی + سایدبار */
.gh-course-layout,
.gh-font-layout,
.gh-about-bio-layout,
.gh-bundle-layout,
.gh-project-layout,
.gh-commerce-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--gh-layout-sidebar);
	column-gap: var(--gh-layout-column-gap);
	row-gap: var(--gh-flow-gap);
	align-items: start;
}

.gh-course-layout {
	grid-template-columns: minmax(0, 1fr) var(--gh-layout-sidebar-wide);
	padding-block: var(--gh-page-pad-start) var(--gh-page-pad-end);
}

.gh-article-layout {
	grid-template-columns: var(--gh-layout-sidebar-sm) minmax(0, 680px);
	gap: var(--gh-layout-column-gap);
	padding-block: var(--gh-page-pad-start) var(--gh-page-pad-end);
}

.gh-project-layout {
	padding-block: var(--gh-flow-gap) 0;
}

.gh-bundle-layout {
	margin-block-start: var(--gh-flow-gap);
}

/* ریتم عمودی محتوای دوره: عنوان هر بخش با محتوای خودش نزدیک و از بخش قبل دورتر است. */
.gh-course-section-head {
	margin-block: var(--gh-section-related-gap) var(--gh-heading-content-gap);
}

.gh-course-overview-head {
	margin-block-start: 0;
}

.gh-course-body > .gh-sec-title {
	margin-block: var(--gh-section-related-gap) var(--gh-heading-content-gap);
}

.gh-chapter {
	margin-block-end: var(--gh-course-stack-gap, 12px);
}

.single-gh_course .gh-course-body {
	--gh-course-stack-gap: 12px;
}

.gh-about-side {
	gap: var(--gh-grid-gap-compact);
}

@media (max-width: 1180px) {
	:root {
		--gh-layout-sidebar-wide: 320px;
		--gh-layout-column-gap: 28px;
		--gh-grid-gap: 20px;
	}

	.gh-grid-cards,
	.gh-fonts-main .gh-grid-cards,
	.post-type-archive-gh_course .gh-grid-cards,
	.home .gh-grid-cards,
	.gh-about .gh-grid-cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	:root {
		--gh-layout-edge: 18px;
		--gh-layout-column-gap: 24px;
		--gh-grid-gap: 18px;
		--gh-flow-gap: 24px;
		--gh-section-related-gap: 40px;
		--gh-page-pad-start: 32px;
		--gh-page-pad-end: 64px;
	}

	.gh-course-layout,
	.gh-font-layout,
	.gh-about-bio-layout,
	.gh-bundle-layout,
	.gh-project-layout,
	.gh-commerce-layout,
	.gh-article-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--gh-flow-gap);
	}

	.gh-grid-cards,
	.gh-fonts-main .gh-grid-cards,
	.post-type-archive-gh_course .gh-grid-cards,
	.home .gh-grid-cards,
	.gh-about .gh-grid-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	:root {
		--gh-layout-edge: 14px;
		--gh-grid-gap: 16px;
		--gh-section-gap: 56px;
		--gh-section-detached-gap: 72px;
		--gh-page-pad-start: 28px;
		--gh-page-pad-end: 56px;
	}

	.gh-grid-cards,
	.gh-fonts-main .gh-grid-cards,
	.post-type-archive-gh_course .gh-grid-cards,
	.home .gh-grid-cards,
	.gh-about .gh-grid-cards,
	.gh-course-body .gh-grid-cards {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* فضای ابتدای صفحه دقیقاً به‌اندازه پنل تخفیف رزرو می‌شود؛ مقدار واقعی را JS از ارتفاع
 * رندرشده‌ی پنل می‌خواند تا در زوم، موبایل و متن‌های متفاوت هم کارت اول زیر آن نرود. */
.gh-header-stack.has-sale {
	margin-block-end: var(--gh-sale-panel-height, 48px);
}

html.gh-sale-panel-visible {
	--gh-sticky-offset: calc(
		var(--gh-header-sticky-top) +
		var(--gh-header-sticky-height) +
		var(--gh-sale-panel-height, 48px) +
		var(--gh-sticky-gap)
	);
}

/* ============================================================
 * کارت خرید دوره — نسخه‌ی فشرده، اطلاعات‌محور و سازگار با viewport کوتاه
 * ============================================================ */
.gh-buybox {
	position: sticky;
	top: var(--gh-sticky-offset);
	display: flex;
	flex-direction: column;
	max-height: calc(100svh - var(--gh-sticky-offset) - 16px);
	overflow: hidden;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-card);
	background: var(--gh-bg-raised);
	box-shadow: var(--gh-shadow-2);
}

.gh-buybox::before {
	display: none;
}

.gh-buybox-cover {
	flex: none;
	height: clamp(124px, 14vw, 168px);
	aspect-ratio: auto;
	margin: 10px 10px 0;
	border-radius: var(--gh-radius-card-inset-10);
}

.gh-buybox-cover > .gh-badge-sale-ribbon {
	inset-block-start: 12px;
	inset-inline-start: 12px;
	inset-inline-end: auto;
	right: 12px;
	left: auto;
	width: auto;
	max-width: calc(100% - 24px);
	padding: 7px 11px;
	border: 1px solid color-mix(in srgb, var(--gh-white) 28%, transparent);
	border-radius: var(--gh-radius-compact);
	box-shadow: 0 6px 16px color-mix(in srgb, var(--gh-danger-solid) 22%, transparent);
	font-size: 12px;
	line-height: 1.25;
	white-space: nowrap;
}

.gh-buybox-body {
	min-height: 0;
	padding: 18px 20px 20px;
	gap: 12px;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--gh-border-strong) transparent;
}

.gh-buybox-body::-webkit-scrollbar { width: 5px; }
.gh-buybox-body::-webkit-scrollbar-track { background: transparent; }
.gh-buybox-body::-webkit-scrollbar-thumb { background: var(--gh-border-strong); border-radius: var(--gh-r-full); }

.gh-buybox-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
}

.gh-buybox-title-row > div {
	min-width: 0;
}

.gh-buybox-title-row .gh-course-mark {
	--gh-course-mark-size: 44px;
	--gh-course-mark-font-size: 15px;
	flex: none;
}

.gh-buybox-title {
	margin: 4px 0 0;
	color: var(--gh-text-primary);
	font-size: 17px;
	font-weight: 900;
	line-height: 1.55;
}

.gh-buybox-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.gh-buybox-meta span {
	display: inline-flex;
	align-items: center;
	min-height: 27px;
	padding-inline: 9px;
	border: 1px solid var(--gh-border-subtle);
	border-radius: var(--gh-r-full);
	background: var(--gh-bg-sunken);
	color: var(--gh-text-secondary);
	font-size: 10.5px;
	font-weight: 750;
	white-space: nowrap;
}

.gh-buybox .gh-bigprice {
	display: flex;
	align-items: baseline;
	gap: 9px;
	margin-block-start: 2px;
}

.gh-buybox .gh-bigprice::before {
	content: 'هزینه ثبت‌نام';
	flex-basis: 100%;
	color: var(--gh-text-tertiary);
	font-size: 10.5px;
	font-weight: 750;
}

.gh-buybox .gh-bigprice b {
	font-size: clamp(24px, 2.5vw, 30px);
	line-height: 1.35;
}

.gh-buybox-offer {
	padding: 11px 12px 12px;
	border: 1px solid var(--gh-danger-surface);
	border-radius: var(--gh-radius-group);
	background: color-mix(in srgb, var(--gh-danger-surface) 42%, var(--gh-bg-raised));
}

.gh-buybox-offer .gh-cd-label {
	margin-block-end: 8px;
	font-size: 11px;
}

.gh-buybox-offer .gh-countdown {
	gap: 5px;
}

.gh-buybox-offer .gh-countdown .gh-cd-box {
	min-width: 0;
	padding: 6px 3px;
	border-color: color-mix(in srgb, var(--gh-danger-text) 12%, var(--gh-border-subtle));
	background: var(--gh-bg-raised);
}

.gh-buybox-offer .gh-countdown .gh-cd-box b {
	font-size: 15px;
}

.gh-buybox-offer .gh-countdown .gh-cd-box span {
	font-size: 10px;
}

.gh-buybox-submit {
	width: 100%;
	margin-block-start: 2px;
}

.gh-buybox-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px 12px;
	margin: 0;
	padding: 2px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.gh-buybox-list li {
	align-items: flex-start;
	min-width: 0;
	font-size: 11.5px;
	line-height: 1.75;
}

.gh-buybox-list svg {
	width: 17px;
	height: 17px;
	margin-block-start: 2px;
	margin-inline-end: 6px;
	padding: 3px;
	border-radius: 50%;
	background: var(--gh-success-surface);
}

.gh-buybox-bundle-cta {
	justify-content: flex-start;
	min-height: 38px;
	margin-block-start: 0;
	padding: 10px 2px 0;
	border-block-start: 1px solid var(--gh-border-subtle);
	border-radius: 0;
	font-size: 11.5px;
}

.gh-buybox-bundle-cta span {
	flex: 1;
}

@media (min-width: 901px) and (max-height: 760px) {
	.gh-buybox-cover {
		height: 102px;
	}

	.gh-buybox-body {
		padding: 14px 18px 12px;
		gap: 8px;
	}

	.gh-buybox-title-row .gh-course-mark {
		--gh-course-mark-size: 38px;
		--gh-course-mark-font-size: 13px;
	}

	.gh-buybox-meta span:nth-child(3),
	.gh-buybox-list li:nth-child(n+3) {
		display: none;
	}

	.gh-buybox-offer {
		padding-block: 8px;
	}
}

@media (max-width: 900px) {
	.gh-buybox {
		position: static;
		max-height: none;
		overflow: visible;
	}

	.gh-buybox-body {
		overflow: visible;
	}

	.gh-buybox-cover {
		height: clamp(150px, 42vw, 240px);
	}
}

@media (max-width: 560px) {
	.gh-buybox-body {
		padding: 17px 16px 18px;
	}

	.gh-buybox-list {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* عنوان کوتاه تمام کارت‌های ابتدای صفحات از یک کامپوننت مرکزی می‌آید:
   آیکون و متن هم‌ردیف، با فاصله‌ی ثابت و بدون کادر/پس‌زمینه‌ی رنگی دور متن. */
.gh-archive-head:has(> .gh-page-hero-mark) {
	padding-block-start: clamp(116px, 9vw, 136px);
}

.gh-page-hero-mark {
	position: absolute;
	z-index: 2;
	inset-block-start: clamp(32px, 4vw, 48px);
	inset-inline-start: clamp(30px, 5vw, 58px);
	display: inline-flex;
	align-items: center;
	gap: 14px;
	max-width: calc(100% - clamp(60px, 10vw, 116px));
}

.gh-page-hero-mark .gh-page-hero-icon {
	position: static;
	inset: auto;
	flex: none;
	width: 58px;
	height: 58px;
	margin: 0;
}

.gh-page-hero-label {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--gh-accent-text);
	font-size: var(--gh-font-kicker);
	font-weight: 850;
	line-height: 1.65;
	letter-spacing: 0;
}

/* صفحهٔ استعلام: ابزار اصلی به‌جای تصویر، در نیمهٔ چپ همان کارت معرفی قرار می‌گیرد. */
.gh-verify-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
	grid-template-areas:
		"title tools"
		"lead tools";
	column-gap: clamp(28px, 5vw, 72px);
	row-gap: 14px;
	align-items: center;
	min-height: 430px;
	padding-block-start: clamp(116px, 9vw, 136px);
}

.gh-verify-hero > h1 {
	grid-area: title;
	align-self: end;
	margin: 0;
}

.gh-verify-hero > p {
	grid-area: lead;
	align-self: start;
	margin: 0;
}

.gh-verify-hero-tools {
	grid-area: tools;
	display: grid;
	gap: 14px;
	min-width: 0;
}

.gh-verify-hero .gh-verify-form {
	margin: 0;
	padding: 18px;
	box-shadow: var(--gh-shadow-1);
}

.gh-verify-hero .gh-verify-points {
	margin: 0;
	border-radius: var(--gh-radius-card);
	background: var(--gh-bg-sunken);
}

.gh-verify-hero + .gh-verify-result {
	margin-block-start: 22px;
}

/* سایر kickerهای هم‌خانواده در صفحه‌ی اصلی، دوره و اسلایدرها نیز روی یک اندازه‌اند. */
.gh-course-kicker,
.gh-archive-kicker,
.gh-hero-eyebrow {
	font-size: var(--gh-font-kicker);
}

.gh-hero-brandline {
	font-size: var(--gh-font-caption);
}

/* بازبینی مقیاس متن‌های کمکی: هیچ متادیتا یا برچسب کاربردی از ۱۲px کوچک‌تر نباشد. */
.gh-cd-box span,
.gh-account-notifs li time,
.gh-font-specimen-kicker,
.gh-font-specimen-name small,
.gh-cert-mini-code,
.gh-aichat-head span,
.gh-aichat-src,
.gh-course-tag,
.gh-search-sec-title,
.gh-search-item-meta,
.gh-maker-info small,
.gh-comment-head time,
.gh-certg-date,
.gh-review-person span span,
.gh-review-kind,
.gh-pitch-points span,
.gh-toc-label,
.gh-curio-hours,
.gh-person span span,
.gh-mega-label,
.gh-mega-course small,
.gh-course-quick-kicker,
.gh-trust-metrics span,
.gh-verify-form > small,
.gh-login-benefits li,
.gh-login-card .gh-field small,
.gh-buybox-meta span,
.gh-buybox .gh-bigprice::before,
.gh-buybox-offer .gh-cd-label,
.gh-buybox-offer .gh-countdown .gh-cd-box span,
.gh-buybox-list li,
.gh-buybox-bundle-cta {
	font-size: var(--gh-font-micro);
}

@media (max-width: 640px) {
	.gh-archive-head:has(> .gh-page-hero-mark) {
		padding-block-start: 104px;
	}

	.gh-page-hero-mark {
		inset-block-start: 24px;
		inset-inline: 20px auto;
		gap: 12px;
		max-width: calc(100% - 40px);
	}

	.gh-page-hero-mark .gh-page-hero-icon {
		width: 52px;
		height: 52px;
	}
}

@media (max-width: 900px) {
	.gh-verify-hero {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"title"
			"lead"
			"tools";
		min-height: 0;
		row-gap: 12px;
	}

	.gh-verify-hero-tools {
		margin-block-start: 18px;
	}
}

@media (max-width: 640px) {
	.gh-verify-hero {
		padding-block-start: 104px;
	}

	.gh-verify-hero .gh-verify-form {
		padding: 15px;
	}
}

/* ============================================================
 * کارت خرید دوره — ساختار حرفه‌ای، پیش‌نمایش و حالت فشرده‌ی اسکرول
 * ============================================================ */
.single-gh_course .gh-course-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	grid-template-rows: auto 1fr;
	column-gap: 52px;
	row-gap: 0;
	align-items: start;
	padding-block: 0 100px;
}

.single-gh_course .gh-course-hd {
	grid-column: 1 / -1;
	grid-row: 1;
	width: 100%;
	margin-block-start: 54px;
}

.single-gh_course .gh-course-body {
	grid-column: 1;
	grid-row: 2;
	min-width: 0;
	padding-block-start: 40px;
}

.gh-buybox {
	grid-column: 2;
	grid-row: 1 / 3;
	align-self: start;
	z-index: 4;
	margin-block-start: 86px;
	margin-inline-end: 32px;
	border-color: var(--gh-border-default);
	box-shadow: var(--gh-shadow-1);
	transition:
		box-shadow var(--gh-dur-base) var(--gh-ease-out),
		border-color var(--gh-dur-base) var(--gh-ease-out);
}

.gh-buybox:hover {
	border-color: var(--gh-border-strong);
	box-shadow: var(--gh-shadow-2);
}

.gh-buybox-media {
	display: grid;
	grid-template-rows: 1fr;
	flex: none;
	min-height: 0;
	opacity: 1;
	transform: translateY(0);
	transition:
		grid-template-rows 420ms var(--gh-ease-out),
		opacity 240ms var(--gh-ease-out),
		transform 420ms var(--gh-ease-out);
}

.gh-buybox-media-inner {
	min-height: 0;
	overflow: hidden;
}

.gh-buybox-cover {
	height: clamp(168px, 17vw, 210px);
	margin: 10px 10px 0;
	isolation: isolate;
	background: var(--gh-bg-sunken);
}

.gh-buybox-cover::after {
	content: '';
	position: absolute;
	inset: 45% 0 0;
	z-index: 0;
	pointer-events: none;
	background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--gh-black) 72%, transparent));
}

.gh-buybox-cover > img,
.gh-buybox-cover > svg {
	position: relative;
	z-index: 0;
}

.gh-buybox-preview-trigger {
	position: absolute;
	z-index: 3;
	inset-inline: 14px;
	inset-block-end: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 16px;
	border: 1px solid color-mix(in srgb, var(--gh-white) 24%, transparent);
	border-radius: var(--gh-radius-control);
	background: color-mix(in srgb, var(--gh-stone-950) 78%, transparent);
	color: var(--gh-white);
	font: inherit;
	font-size: 13.5px;
	font-weight: 850;
	cursor: pointer;
	backdrop-filter: blur(14px) saturate(1.2);
	transition:
		background var(--gh-dur-fast) var(--gh-ease-out),
		transform var(--gh-dur-fast) var(--gh-ease-out);
}

.gh-buybox-preview-trigger:hover {
	background: color-mix(in srgb, var(--gh-stone-950) 90%, transparent);
	transform: translateY(-2px);
}

.gh-buybox-preview-play {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	flex: none;
	border-radius: 50%;
	background: var(--gh-white);
	color: var(--gh-stone-950);
}

.gh-buybox-preview-play svg {
	width: 15px;
	height: 15px;
	transform: translateX(-1px);
}

.gh-buybox-body {
	padding: 20px 22px 22px;
	gap: 13px;
}

.gh-buybox-title-row {
	align-items: center;
	padding-block-end: 1px;
}

.gh-buybox-title {
	margin-block-start: 3px;
	font-size: 18px;
}

.gh-buybox-meta {
	gap: 8px;
	padding-block-end: 13px;
	border-block-end: 1px solid var(--gh-border-subtle);
}

.gh-buybox-meta span {
	min-height: 30px;
	padding-inline: 10px;
	background: transparent;
	font-size: 12px;
}

.gh-buybox .gh-bigprice {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 3px 10px;
	margin: 0;
}

.gh-buybox .gh-bigprice::before {
	grid-column: 1 / -1;
}

.gh-buybox .gh-bigprice b {
	grid-column: 1;
	font-size: clamp(27px, 2.4vw, 32px);
}

.gh-buybox .gh-bigprice s {
	grid-column: 2;
	margin-block-end: 5px;
	white-space: nowrap;
}

.gh-buybox-offer {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-color: color-mix(in srgb, var(--gh-danger-text) 18%, var(--gh-border-subtle));
	background: color-mix(in srgb, var(--gh-danger-surface) 30%, var(--gh-bg-raised));
}

.gh-buybox-offer .gh-cd-label {
	max-width: 78px;
	margin: 0;
	line-height: 1.6;
}

.gh-buybox-offer .gh-countdown {
	gap: 4px;
}

.gh-buybox-offer .gh-countdown .gh-cd-box {
	min-height: 46px;
	padding: 4px 2px;
	border-color: var(--gh-border-subtle);
	border-radius: var(--gh-radius-compact);
}

.gh-buybox-submit {
	min-height: 56px;
}

.gh-buybox-purchase-note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: -3px 0 1px;
	color: var(--gh-text-tertiary);
	font-size: 12px;
	font-weight: 650;
	line-height: 1.6;
}

.gh-buybox-purchase-note svg {
	width: 16px;
	height: 16px;
	flex: none;
	color: var(--gh-success-text);
}

.gh-buybox-list {
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	padding: 13px 0 0;
	border-block-start: 1px solid var(--gh-border-subtle);
}

.gh-buybox-list li {
	font-size: 12px;
}

.gh-buybox-bundle-cta {
	min-height: 42px;
	padding-block-start: 10px;
}

.gh-buybox.is-compact .gh-buybox-media {
	grid-template-rows: 0fr;
	opacity: 0;
	transform: translateY(-10px);
}

.gh-buybox.is-compact .gh-buybox-body {
	padding-block-start: 18px;
}

.gh-buybox.is-compact .gh-buybox-title {
	font-size: 17px;
}

.gh-buybox.is-compact .gh-buybox-meta {
	padding-block-end: 10px;
}

@media (min-width: 901px) and (max-height: 820px) {
	.gh-buybox-cover {
		height: 140px;
	}

	.gh-buybox-body {
		padding: 15px 19px 16px;
		gap: 9px;
	}

	.gh-buybox-offer {
		padding-block: 7px;
	}

	.gh-buybox-purchase-note,
	.gh-buybox-list li:nth-child(n+3) {
		display: none;
	}
}

@media (min-width: 901px) and (max-width: 1120px) {
	.single-gh_course .gh-course-layout {
		grid-template-columns: minmax(0, 1fr) 360px;
		column-gap: 34px;
	}
}

@media (max-width: 900px) {
	.single-gh_course .gh-course-layout {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		padding-block-end: 70px;
	}

	.single-gh_course .gh-course-hd {
		grid-column: 1;
		grid-row: 1;
		margin-block-start: 38px;
	}

	.single-gh_course .gh-buybox {
		grid-column: 1;
		grid-row: 2;
		margin-block-start: 24px;
		margin-inline-end: 0;
	}

	.single-gh_course .gh-course-body {
		grid-column: 1;
		grid-row: 3;
		padding-block-start: 34px;
	}

	.gh-buybox-media {
		grid-template-rows: 1fr !important;
		opacity: 1 !important;
		transform: none !important;
	}

	.gh-buybox-cover {
		height: clamp(190px, 48vw, 320px);
	}
}

@media (max-width: 520px) {
	.gh-buybox-body {
		padding: 18px 16px 20px;
	}

	.gh-buybox-offer {
		grid-template-columns: minmax(0, 1fr);
	}

	.gh-buybox-offer .gh-cd-label {
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gh-buybox-media {
		transition: none;
	}
}

/* دکمه‌ها در هیچ حالت تعاملی زیرخط نمی‌گیرند؛ شامل لینک‌های دکمه‌ای داخل محتوای مقاله. */
:where(
	button,
	[role="button"],
	.gh-btn,
	.gh-icon-btn,
	.gh-bookmark-btn,
	.gh-course-quick-btn,
	a.button,
	.button,
	.gh-discovery-nav a,
	input[type="button"],
	input[type="submit"],
	input[type="reset"]
),
:where(
	button,
	[role="button"],
	.gh-btn,
	.gh-icon-btn,
	.gh-bookmark-btn,
	.gh-course-quick-btn,
	a.button,
	.button,
	.gh-discovery-nav a
):is(:hover, :focus, :focus-visible, :active, :visited) {
	text-decoration: none !important;
	text-decoration-line: none !important;
}

/* ============================================================
 * قیف خرید ووکامرس — فارسی، مینیمال و هماهنگ با سیستم قلموم
 * ============================================================ */
.gh-commerce-page {
	padding-block-start: clamp(42px, 5vw, 64px);
}

.gh-commerce-hero {
	max-width: 820px;
	margin-block-end: 24px;
}

.gh-checkout-steps {
	gap: 10px;
	margin: 26px 0 28px;
	padding: 8px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-group);
	background: var(--gh-bg-sunken);
}

.gh-checkout-steps li {
	min-height: 54px;
	padding: 8px 12px;
	border: 1px solid transparent;
	border-radius: var(--gh-radius-control);
	font-size: 13px;
}

.gh-checkout-steps li:not(:last-child)::after {
	display: none;
}

.gh-checkout-steps li.is-current {
	border-color: var(--gh-border-default);
	background: var(--gh-bg-raised);
	box-shadow: var(--gh-shadow-1);
}

.gh-checkout-steps li.is-done {
	background: color-mix(in srgb, var(--gh-success-surface) 55%, transparent);
}

.gh-checkout-steps b {
	width: 36px;
	height: 36px;
	font-size: 13px;
}

.gh-commerce-layout {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.gh-commerce-content {
	width: 100%;
	padding: clamp(22px, 3.4vw, 38px);
	box-shadow: none;
}

.gh-commerce-assurance {
	position: static;
	display: grid;
	grid-template-columns: 190px minmax(0, 1fr) auto;
	align-items: center;
	gap: 20px;
	padding: 18px 22px;
	background: var(--gh-bg-raised);
}

.gh-commerce-assurance h2 {
	margin: 0;
}

.gh-commerce-assurance ul {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.gh-commerce-assurance li {
	padding-inline-start: 20px;
}

.gh-commerce-assurance li span {
	font-size: 12px;
}

.gh-commerce-assurance > a {
	margin: 0;
	padding: 9px 12px;
	border-radius: var(--gh-radius-compact);
	background: var(--gh-accent-surface);
	font-size: 12px;
	white-space: nowrap;
}

.gh-commerce-content .woocommerce {
	font-family: inherit;
	color: var(--gh-text-primary);
}

.gh-commerce-content .woocommerce :where(a, button, input, select, textarea) {
	font-family: inherit;
}

.gh-commerce-content .woocommerce :where(.button, button.button, input.button, #place_order) {
	min-height: 48px;
	padding: 10px 20px !important;
	border: 1px solid transparent !important;
	border-radius: var(--gh-radius-control) !important;
	background: var(--gh-accent-solid) !important;
	color: var(--gh-accent-on-solid) !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	line-height: 1.5 !important;
	box-shadow: none !important;
	transition:
		transform var(--gh-dur-fast) var(--gh-ease-out),
		background var(--gh-dur-fast) var(--gh-ease-out);
}

.gh-commerce-content .woocommerce :where(.button, button.button, input.button, #place_order):hover {
	background: var(--gh-accent-hover) !important;
	transform: translateY(-1px);
}

.gh-commerce-content .woocommerce :where(input.input-text, textarea, select) {
	min-height: 52px;
	padding: 10px 13px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-control);
	background: var(--gh-bg-surface);
	color: var(--gh-text-primary);
}

.gh-commerce-content .woocommerce :where(input.input-text, textarea, select):focus {
	outline: none;
	border-color: var(--gh-accent-solid);
	box-shadow: var(--gh-focus-ring);
}

.gh-commerce-content .woocommerce :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	margin-block-end: 20px;
	padding: 14px 16px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-control);
	background: var(--gh-bg-sunken);
	color: var(--gh-text-primary);
}

.gh-commerce-content .woocommerce :where(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	display: none;
}

/* سبد خرید کلاسیک — فهرست دوره‌ها + خلاصه‌ی چسبان */
.woocommerce-cart .gh-commerce-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 350px;
	align-items: start;
	gap: 28px;
}

.woocommerce-cart .gh-commerce-content .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce-cart .woocommerce-cart-form {
	grid-column: 1;
	min-width: 0;
}

.woocommerce-cart .cart-collaterals {
	grid-column: 2;
}

.woocommerce-cart table.shop_table {
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0 12px;
}

.woocommerce-cart table.shop_table thead th {
	padding: 0 14px 10px;
	border: 0;
	color: var(--gh-text-tertiary);
	font-size: 12px;
}

.woocommerce-cart table.shop_table tbody tr.cart_item td {
	padding: 14px 10px;
	border-block: 1px solid var(--gh-border-default);
	background: var(--gh-bg-surface);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table tbody tr.cart_item td:first-child {
	border-inline-start: 1px solid var(--gh-border-default);
	border-start-start-radius: var(--gh-radius-control);
	border-end-start-radius: var(--gh-radius-control);
}

.woocommerce-cart table.shop_table tbody tr.cart_item td:last-child {
	border-inline-end: 1px solid var(--gh-border-default);
	border-start-end-radius: var(--gh-radius-control);
	border-end-end-radius: var(--gh-radius-control);
}

.woocommerce-cart td.product-thumbnail {
	width: 100px;
}

.woocommerce-cart td.product-thumbnail img {
	width: 88px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--gh-radius-compact);
}

.woocommerce-cart td.product-name a {
	color: var(--gh-text-primary);
	font-size: 14px;
	font-weight: 900;
}

.woocommerce-cart td.product-price,
.woocommerce-cart td.product-subtotal {
	direction: rtl;
	unicode-bidi: isolate;
	font-weight: 850;
	white-space: nowrap;
}

.woocommerce-cart td.product-quantity {
	display: none;
}

.woocommerce-cart td.product-remove {
	width: 42px;
}

.woocommerce-cart td.product-remove a.remove {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: var(--gh-radius-compact);
	background: var(--gh-danger-surface);
	color: var(--gh-danger-text) !important;
	font-size: 0;
}

.woocommerce-cart td.product-remove a.remove::before {
	content: '×';
	font-size: 22px;
	line-height: 1;
}

.woocommerce-cart tr:not(.cart_item) td.actions {
	padding: 16px 0 0;
	border: 0;
}

.woocommerce-cart .coupon {
	display: flex;
	gap: 8px;
}

.woocommerce-cart .coupon label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.woocommerce-cart .coupon #coupon_code {
	width: min(240px, 100%);
}

.woocommerce-cart .cart_totals {
	position: sticky;
	top: var(--gh-sticky-offset);
	float: none !important;
	width: 100% !important;
	padding: 22px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-card);
	background: var(--gh-bg-sunken);
}

.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 18px;
	font-size: 20px;
}

.woocommerce-cart .cart_totals table {
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
	padding: 13px 0;
	border-color: var(--gh-border-subtle);
}

.woocommerce-cart .cart_totals td {
	text-align: end;
	font-weight: 850;
}

.woocommerce-cart .wc-proceed-to-checkout {
	padding: 16px 0 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0;
}

/* تسویه‌حساب کلاسیک — فرم ضروری سمت راست، سفارش و پرداخت سمت چپ */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	align-items: start;
	gap: 12px 30px;
}

.woocommerce-checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / 3;
	width: 100%;
	padding: 24px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-card);
	background: var(--gh-bg-surface);
}

.woocommerce-checkout #customer_details .col-1 {
	float: none;
	width: 100%;
}

.woocommerce-checkout #customer_details .col-2 {
	display: none;
}

.woocommerce-checkout .woocommerce-billing-fields h3 {
	margin: 0 0 8px;
	font-size: 22px;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
	margin-block-start: 20px;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide {
	grid-column: 1 / -1;
}

.woocommerce-checkout .form-row label {
	margin-block-end: 7px;
	color: var(--gh-text-secondary);
	font-size: 12px;
	font-weight: 800;
}

.woocommerce-checkout #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	align-self: end;
	margin: 0;
	padding-inline: 4px;
}

.woocommerce-checkout #order_review {
	grid-column: 2;
	grid-row: 2;
	position: sticky;
	top: var(--gh-sticky-offset);
	padding: 20px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-card);
	background: var(--gh-bg-sunken);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	margin: 0 0 16px;
	border: 0;
	border-collapse: collapse;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	padding: 12px 0;
	border-color: var(--gh-border-subtle);
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	text-align: end;
	font-weight: 850;
}

.woocommerce-checkout .woocommerce-checkout-payment {
	border-radius: var(--gh-radius-control) !important;
	background: var(--gh-bg-surface) !important;
}

.woocommerce-checkout .wc_payment_methods {
	padding: 0 !important;
	border: 0 !important;
}

.woocommerce-checkout .wc_payment_method {
	padding: 13px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-control);
}

.woocommerce-checkout .wc_payment_method + .wc_payment_method {
	margin-block-start: 8px;
}

.woocommerce-checkout .woocommerce-checkout-payment .place-order {
	padding: 16px 0 0 !important;
}

.woocommerce-checkout #place_order {
	width: 100%;
	min-height: 56px;
}

/* پیشنهاد دوره‌ی دیده‌شده — بعد از جریان اصلی خرید */
.gh-commerce-upsell {
	display: grid;
	grid-template-columns: 210px minmax(0, 1fr) 230px;
	align-items: stretch;
	gap: 22px;
	margin-block-start: 24px;
	padding: 12px;
	border: 1px solid var(--gh-border-default);
	border-radius: var(--gh-radius-card);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--gh-upsell-course) 8%, transparent), transparent 50%),
		var(--gh-bg-raised);
}

.gh-commerce-upsell-media {
	min-height: 142px;
	overflow: hidden;
	border-radius: max(0px, calc(var(--gh-radius-card) - 12px));
	background: var(--gh-bg-sunken);
}

.gh-commerce-upsell-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gh-commerce-upsell-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	background: var(--gh-upsell-course);
	color: var(--gh-white);
	font-size: 34px;
	font-weight: 950;
}

.gh-commerce-upsell-copy {
	align-self: center;
	min-width: 0;
	padding-block: 10px;
}

.gh-commerce-upsell-kicker {
	color: var(--gh-accent-text);
	font-size: 12px;
	font-weight: 900;
}

.gh-commerce-upsell-copy h2 {
	margin: 5px 0 4px;
	font-size: 21px;
}

.gh-commerce-upsell-copy p {
	margin: 0;
	color: var(--gh-text-secondary);
	font-size: 13px;
}

.gh-commerce-upsell-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-block-start: 13px;
}

.gh-commerce-upsell-facts span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 34px;
	padding-inline: 10px;
	border: 1px solid var(--gh-border-subtle);
	border-radius: var(--gh-radius-compact);
	background: var(--gh-bg-surface);
	color: var(--gh-text-secondary);
	font-size: 11.5px;
}

.gh-commerce-upsell-facts b {
	color: var(--gh-success-text);
	font-size: 13px;
}

.gh-commerce-upsell-actions {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
	padding: 12px;
	border-radius: var(--gh-radius-group);
	background: var(--gh-bg-sunken);
}

.gh-commerce-upsell-price {
	color: var(--gh-text-primary);
	font-size: 18px;
	font-weight: 950;
	text-align: center;
}

.gh-commerce-upsell-actions .gh-btn {
	width: 100%;
}

.gh-commerce-upsell-more {
	color: var(--gh-text-secondary);
	font-size: 11.5px;
	font-weight: 800;
	text-align: center;
	text-decoration: none;
}

@media (max-width: 980px) {
	.gh-commerce-assurance {
		grid-template-columns: 1fr;
	}

	.gh-commerce-assurance ul {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gh-commerce-assurance > a {
		justify-self: start;
	}

	.woocommerce-cart .gh-commerce-content > .woocommerce,
	.woocommerce-checkout form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .woocommerce-cart-form,
	.woocommerce-cart .cart-collaterals,
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		grid-column: 1;
	}

	.woocommerce-cart .cart_totals,
	.woocommerce-checkout #order_review {
		position: static;
	}

	.woocommerce-checkout #customer_details {
		grid-row: 1;
	}

	.woocommerce-checkout #order_review_heading {
		grid-row: 2;
		margin-block-start: 18px;
	}

	.woocommerce-checkout #order_review {
		grid-row: 3;
	}

	.gh-commerce-upsell {
		grid-template-columns: 180px minmax(0, 1fr);
	}

	.gh-commerce-upsell-actions {
		grid-column: 1 / -1;
		flex-direction: row;
		align-items: center;
	}

	.gh-commerce-upsell-actions > * {
		flex: 1;
	}
}

@media (max-width: 640px) {
	.gh-checkout-steps {
		gap: 5px;
	}

	.gh-checkout-steps li {
		justify-content: center;
		padding-inline: 6px;
	}

	.gh-commerce-content {
		padding: 14px;
	}

	.gh-commerce-assurance ul {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart table.shop_table thead,
	.woocommerce-cart td.product-price,
	.woocommerce-cart td.product-subtotal {
		display: none;
	}

	.woocommerce-cart table.shop_table tbody tr.cart_item {
		display: grid;
		grid-template-columns: 38px 82px minmax(0, 1fr);
		align-items: center;
		padding: 10px;
		border: 1px solid var(--gh-border-default);
		border-radius: var(--gh-radius-control);
		background: var(--gh-bg-surface);
	}

	.woocommerce-cart table.shop_table tbody tr.cart_item td {
		display: block;
		width: auto;
		padding: 5px;
		border: 0 !important;
		background: transparent;
	}

	.woocommerce-cart td.product-thumbnail img {
		width: 72px;
		height: 54px;
	}

	.woocommerce-cart tr:not(.cart_item) td.actions,
	.woocommerce-cart .coupon {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
	}

	.woocommerce-cart .coupon #coupon_code {
		width: 100%;
	}

	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review {
		padding: 16px;
	}

	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row {
		grid-column: 1;
	}

	.gh-commerce-upsell {
		grid-template-columns: minmax(0, 1fr);
		padding: 10px;
	}

	.gh-commerce-upsell-media {
		min-height: 180px;
	}

	.gh-commerce-upsell-actions {
		grid-column: 1;
		flex-direction: column;
	}
}
