:root {
	--bg: #f7f6f1;
	--surface: #ffffff;
	--ink: #16171c;
	--ink-2: #282a32;
	--ink-cover: #1c1e26;
	--muted: #6b6f79;
	--muted-2: #9a9da6;
	--line: #e9e6de;
	--accent: #ff751f;
	--accent-d: #e85f0a;
	--accent-soft: #ffeee0;
	--gold: #f5a623;
	--green: #12a150;
	--green-soft: #e4f6ec;
	--fd: "Bricolage Grotesque", "Manrope", system-ui, sans-serif;
	--f: "Manrope", system-ui, -apple-system, sans-serif;
	--wrap: 1200px;
	/* Sticky header height, and the same value plus a gap for scroll anchoring.
	   Both shrink with the header inside the mobile breakpoint. */
	--header-h: 72px;
	--header-h-scroll: 88px;
	/* Horizontal gutter; the `env()` term keeps content clear of the rounded
	   corners / notch when a phone is held in landscape. */
	--gutter: 22px;
	/* Minimum comfortable hit area for anything tappable. */
	--tap: 44px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--sh: 0 12px 34px -14px rgba(22, 23, 28, 0.22);
	--sh-lg: 0 34px 66px -26px rgba(22, 23, 28, 0.34);
	--brush: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6.5 C 28 2.5, 70 2.5, 118 4.5' stroke='%23FF751F' stroke-width='4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
html {
	scroll-behavior: smooth;
	/* Sticky header height + breathing room, so in-page anchors don't land
	   underneath the bar. */
	scroll-padding-top: var(--header-h-scroll);
	/* Stop iOS from inflating text when a phone is rotated to landscape.
	   Safari still only understands the prefixed property. */
	/* stylelint-disable-next-line property-no-vendor-prefix */
	-webkit-text-size-adjust: 100%;
	/* `clip` contains stray overflow without turning <html> into a scroll
	   container, so `position: sticky` on the header keeps working. */
	overflow-x: clip;
}
body {
	font-family: var(--f);
	background: var(--bg);
	color: var(--ink);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	/* `hidden` is the fallback for browsers without `clip` (Safari < 16). */
	overflow-x: hidden;
	overflow-x: clip;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	/* Grey flash on tap is replaced by the explicit :active states below. */
	-webkit-tap-highlight-color: transparent;
}

/* The open drawer pins the page instead of scrolling it. `position: fixed` is
   used rather than `overflow: hidden` because iOS Safari ignores the latter on
   <body> and scrolls the page behind the overlay anyway. `top` is set from JS
   to the current scroll offset so nothing appears to jump. */
body.drawer-open {
	position: fixed;
	left: 0;
	right: 0;
	width: 100%;
}

/* Media never widens its container, whatever intrinsic size it carries. */
img,
svg,
video,
canvas,
iframe {
	max-width: 100%;
}

/* A long unbreakable run — a product title, a URL, an e-mail address — must
   break rather than push the layout sideways on a narrow screen. */
h1,
h2,
h3,
h4,
p,
li,
a,
td,
th,
label,
blockquote {
	overflow-wrap: break-word;
}

/*
 * Grid and flex items default to a `min-content` minimum, so one wide child
 * can force its track past the container and shove the whole page sideways.
 * Opting the layout wrappers out of that keeps overflow local to the element
 * that causes it.
 */
.hero-grid > *,
.contact-grid > *,
.detail-grid > *,
.auth-shell > *,
.grid > *,
.v-grid > *,
.teach-grid > *,
.feat-grid > *,
.steps-grid > *,
.plan-grid > *,
.stats-grid > *,
.foot-top > *,
.hukukup-checkout .co-grid > *,
.woocommerce-cart .woocommerce > * {
	min-width: 0;
}
.site-main {
	flex: 1 0 auto;
}
body > footer {
	flex-shrink: 0;
}
a {
	color: inherit;
	text-decoration: none;
}
h1,
h2 {
	font-family: var(--fd);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.08;
}
h3 {
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.2;
}
::selection {
	background: var(--accent);
	color: #fff;
}
:focus-visible {
	outline: 2.5px solid var(--accent);
	outline-offset: 3px;
	border-radius: 4px;
}
.wrap {
	max-width: var(--wrap);
	margin: 0 auto;
	padding-left: max(var(--gutter), env(safe-area-inset-left));
	padding-right: max(var(--gutter), env(safe-area-inset-right));
}

/* Scoped so it beats WooCommerce's `.woocommerce-page img { height: auto }`,
 * which would otherwise collapse the intrinsic-less SVG logo to 0×0. */
.brand-logo .logo-svg,
.foot-brand .logo-svg {
	width: auto;
	display: block;
}
.brand-logo .logo-svg {
	height: 42px;
}
.foot-brand .logo-svg {
	height: 31px;
}
.eyebrow {
	display: inline-block;
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--accent-d);
	text-transform: uppercase;
	padding-bottom: 11px;
	background: var(--brush) left bottom/100% 7px no-repeat;
}
.pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 12.5px;
	font-weight: 700;
	padding: 6px 12px;
	border-radius: 100px;
}
.pill-soft {
	background: var(--accent-soft);
	color: var(--accent-d);
}
.stars {
	color: var(--gold);
	letter-spacing: 1px;
	font-size: 13px;
}

.btn {
	font-family: var(--f);
	font-size: 15px;
	font-weight: 700;
	padding: 13px 22px;
	border-radius: 12px;
	cursor: pointer;
	border: 1.5px solid transparent;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	transition:
		transform 0.18s var(--ease),
		box-shadow 0.2s,
		background 0.2s,
		border-color 0.2s,
		color 0.2s;
	white-space: nowrap;
}
.btn-primary {
	background: var(--accent);
	color: #fff;
	box-shadow: 0 8px 20px -8px rgba(255, 117, 31, 0.65);
}
.btn-primary:hover {
	background: var(--accent-d);
	transform: translateY(-2px);
	box-shadow: 0 14px 26px -8px rgba(255, 117, 31, 0.6);
}
.btn-ink {
	background: var(--ink);
	color: #fff;
}
.btn-ink:hover {
	background: var(--ink-2);
	transform: translateY(-2px);
}
.btn-ghost {
	background: #fff;
	color: var(--ink);
	border-color: var(--line);
}
.btn-ghost:hover {
	border-color: var(--accent);
	color: var(--accent-d);
}
.btn-sm {
	padding: 10px 16px;
	font-size: 14px;
	border-radius: 10px;
}
.btn-lg {
	padding: 15px 26px;
	font-size: 16px;
}

/* TOP BAR */

/*
 * A slim utility strip above the header for the free, editorial resources.
 * It scrolls away with the page — only the main header stays sticky — and is
 * replaced by its own group inside the drawer on small screens.
 */
.topbar {
	background: var(--ink);
	color: rgba(255, 255, 255, 0.72);
}
.topbar-inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	min-height: 38px;
}
.topbar-note {
	margin-right: auto;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.42);
}
.topbar a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 38px;
	padding: 0 14px;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	color: rgba(255, 255, 255, 0.74);
	transition: color 0.2s var(--ease);
}
.topbar a:last-child {
	padding-right: 0;
}
.topbar a + a {
	border-left: 1px solid rgba(255, 255, 255, 0.12);
}
.topbar a svg {
	flex: none;
	color: var(--accent);
	opacity: 0.9;
}
.topbar a:hover {
	color: #fff;
}
.topbar a[aria-current="page"] {
	color: #fff;
	box-shadow: inset 0 -2px 0 var(--accent);
}

/* HEADER */
header {
	position: sticky;
	top: 0;
	z-index: 70;
	background: rgba(247, 246, 241, 0.85);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--line);
}
.nav {
	display: flex;
	align-items: center;
	gap: 26px;
	height: var(--header-h);
}
.brand-logo {
	display: flex;
	align-items: center;
}
.nav-links {
	display: flex;
	gap: 24px;
	margin-left: 6px;
}
.nav-links a {
	position: relative;
	font-size: 14.5px;
	font-weight: 600;
	white-space: nowrap;
	color: var(--ink-2);
	transition: color 0.2s;
}
.nav-links a:hover {
	color: var(--accent-d);
}
.nav-links a[aria-current="page"] {
	color: var(--accent-d);
	font-weight: 700;
}
/* A short rule under the active link, drawn without shifting the baseline. */
.nav-links a[aria-current="page"]::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -7px;
	height: 2px;
	border-radius: 2px;
	background: var(--accent);
}
.nav-search {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 9px;
	background: #fff;
	border: 1.5px solid var(--line);
	border-radius: 11px;
	padding: 9px 13px;
	width: 220px;
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
.nav-search:focus-within {
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--accent-soft);
}
.nav-search input {
	border: none;
	outline: none;
	font-family: var(--f);
	font-size: 14px;
	width: 100%;
	background: transparent;
	color: var(--ink);
}
.nav-search svg {
	color: var(--muted-2);
	flex: none;
}
.nav-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 12px;
}
.login {
	font-size: 14.5px;
	font-weight: 700;
	color: var(--ink-2);
}
.login:hover {
	color: var(--accent-d);
}
.cart-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 15px;
	border-radius: 12px;
	border: 1.5px solid var(--line);
	color: var(--ink-2);
	font-size: 14.5px;
	font-weight: 700;
	flex: none;
	transition:
		border-color 0.2s var(--ease),
		color 0.2s var(--ease);
}
.cart-link:hover {
	border-color: var(--accent);
	color: var(--accent-d);
}
.cart-link svg {
	flex: none;
}
.cart-count {
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 100px;
	background: var(--accent);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.cart-count[hidden] {
	display: none;
}
.menu-btn {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--ink);
	padding: 4px;
}

.drawer {
	position: fixed;
	inset: 0;
	z-index: 80;
	background: rgba(22, 23, 28, 0.5);
	backdrop-filter: blur(2px);
	opacity: 0;
	pointer-events: none;
	/* `visibility` keeps the closed drawer's links out of the tab order; the
	   delay lets the fade-out finish before it is taken away. */
	visibility: hidden;
	transition:
		opacity 0.25s var(--ease),
		visibility 0s linear 0.25s;
}
.drawer.open {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
	transition:
		opacity 0.25s var(--ease),
		visibility 0s;
}
.drawer-panel {
	position: absolute;
	right: 0;
	top: 0;
	height: 100%;
	width: min(360px, 88vw);
	background: #fff;
	transform: translateX(100%);
	transition: transform 0.3s var(--ease);
	padding: 12px max(18px, env(safe-area-inset-right))
		max(18px, env(safe-area-inset-bottom)) 18px;
	display: flex;
	flex-direction: column;
	/* A short phone in landscape cannot show the whole menu at once. */
	overflow-y: auto;
	overscroll-behavior: contain;
	box-shadow: -22px 0 54px -24px rgb(22 23 28 / 45%);
}
.drawer.open .drawer-panel {
	transform: none;
}
.drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}
.drawer-head .logo-svg {
	height: 30px;
	width: auto;
	display: block;
}
.drawer-panel .x {
	display: grid;
	place-items: center;
	width: var(--tap);
	height: var(--tap);
	margin-right: -8px;
	border: none;
	border-radius: 12px;
	background: none;
	color: var(--ink);
	cursor: pointer;
}
.drawer-panel .x:active {
	background: var(--bg);
}
.drawer-nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-top: 6px;
	border-top: 1px solid var(--line);
}
.drawer-nav a {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 12px 14px;
	border-radius: 12px;
	font-size: 16.5px;
	font-weight: 700;
	color: var(--ink-2);
}
.drawer-nav a:hover,
.drawer-nav a:active {
	background: var(--bg);
}
.drawer-nav a[aria-current="page"] {
	background: var(--accent-soft);
	color: var(--accent-d);
}
/* The top bar's resource links, grouped under their own label in the drawer. */
.drawer-sub {
	margin-top: 10px;
	padding-top: 10px;
}
.drawer-sub-title {
	padding: 0 14px 4px;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
}
.drawer-sub a {
	gap: 11px;
	min-height: 46px;
	font-size: 15.5px;
	font-weight: 600;
	color: var(--muted);
}
.drawer-sub a svg {
	flex: none;
	color: var(--accent);
}
.drawer-actions {
	display: grid;
	gap: 10px;
	margin-top: auto;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.drawer-actions .btn {
	width: 100%;
	min-height: 50px;
	justify-content: center;
}

/* HERO */
.hero {
	padding: 58px 0 74px;
	position: relative;
}
.hero-grid {
	display: grid;
	grid-template-columns: 1.04fr 0.96fr;
	gap: 52px;
	align-items: center;
}
.hero h1 {
	font-size: clamp(2.5rem, 5vw, 4rem);
	margin: 20px 0;
}
.hero h1 .mark {
	position: relative;
	white-space: nowrap;
	color: var(--accent);
	font-style: italic;
	font-weight: 500;
}
.hero h1 .mark .brush {
	position: absolute;
	left: -1%;
	right: -1%;
	bottom: -12px;
	width: 102%;
	max-width: none;
	height: 16px;
	color: var(--accent);
}
.hero-sub {
	font-size: 1.13rem;
	color: var(--muted);
	max-width: 42ch;
	margin-bottom: 28px;
}
.hero-cta {
	display: flex;
	gap: 13px;
	flex-wrap: wrap;
	margin-bottom: 26px;
}
.assure {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-2);
}
.assure span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.assure svg {
	color: var(--green);
	flex: none;
}

/* hero stage */
.stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 440px;
}
.float {
	position: absolute;
	background: #fff;
	border-radius: 18px;
	box-shadow: var(--sh-lg);
	border: 1px solid var(--line);
}
.player {
	width: 100%;
	max-width: 430px;
	left: 0;
	top: 24px;
	overflow: hidden;
}
.player .screen {
	height: 190px;
	background: linear-gradient(135deg, #20222b, #33363f);
	position: relative;
	display: grid;
	place-items: center;
}
.player .screen::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		120% 90% at 82% 8%,
		rgba(255, 117, 31, 0.35),
		transparent 55%
	);
}
.play-btn {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--accent);
	display: grid;
	place-items: center;
	box-shadow: 0 12px 26px -8px rgba(255, 117, 31, 0.75);
	position: relative;
	z-index: 2;
}
.play-btn svg {
	color: #fff;
	margin-left: 3px;
}
.player .live {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	backdrop-filter: blur(6px);
	font-size: 11.5px;
	font-weight: 700;
	padding: 5px 11px;
	border-radius: 100px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.player .live .dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #38e08a;
	box-shadow: 0 0 0 4px rgba(56, 224, 138, 0.3);
}
.player .body {
	padding: 16px 18px;
}
.player .cat {
	font-size: 11.5px;
	font-weight: 800;
	color: var(--accent-d);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.player .ttl {
	font-size: 16.5px;
	font-weight: 800;
	margin: 5px 0 12px;
}
.prog {
	height: 7px;
	border-radius: 100px;
	background: var(--line);
	overflow: hidden;
}
.prog i {
	display: block;
	height: 100%;
	width: 64%;
	background: linear-gradient(90deg, var(--accent), #ff9d4d);
	border-radius: 100px;
}
.player .meta {
	display: flex;
	justify-content: space-between;
	font-size: 12.5px;
	color: var(--muted);
	margin-top: 9px;
	font-weight: 600;
}
.card-quiz {
	width: 214px;
	right: -6px;
	top: 0;
	padding: 15px 16px;
	z-index: 3;
}
.card-quiz .top {
	display: flex;
	align-items: center;
	gap: 10px;
}
.card-quiz .ic {
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: var(--green-soft);
	display: grid;
	place-items: center;
	color: var(--green);
	flex: none;
}
.card-quiz .lbl {
	font-size: 12px;
	color: var(--muted);
	font-weight: 600;
}
.card-quiz .val {
	font-size: 17px;
	font-weight: 800;
}
.card-quiz .bar {
	display: flex;
	gap: 4px;
	margin-top: 12px;
}
.card-quiz .bar span {
	height: 6px;
	flex: 1;
	border-radius: 3px;
	background: var(--line);
}
.card-quiz .bar span.on {
	background: var(--green);
}
.card-pdf {
	width: 230px;
	right: 12px;
	bottom: 6px;
	padding: 14px 16px;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 12px;
}
.card-pdf .ic {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: var(--accent-soft);
	display: grid;
	place-items: center;
	color: var(--accent);
	flex: none;
}
.card-pdf .t {
	font-size: 14px;
	font-weight: 800;
}
.card-pdf .s {
	font-size: 12px;
	color: var(--muted);
	font-weight: 600;
}
.blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(8px);
	z-index: -1;
}

/* hero roadmap */
.roadmap {
	position: relative;
	width: 100%;
	max-width: 400px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 20px;
	box-shadow: var(--sh-lg);
	padding: 22px 24px 24px;
	z-index: 2;
}
.rm-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 18px;
}
.rm-eyebrow {
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--accent-d);
}
.rm-pct {
	font-size: 12px;
	font-weight: 700;
	color: var(--muted);
	background: var(--bg);
	border: 1px solid var(--line);
	padding: 3px 11px;
	border-radius: 100px;
}
.rm-path {
	list-style: none;
	position: relative;
	padding-left: 40px;
}
.rm-path::before {
	content: "";
	position: absolute;
	left: 15px;
	top: 18px;
	bottom: 18px;
	width: 2px;
	background: var(--line);
}
.rm-node {
	position: relative;
	padding: 10px 0;
}
.rm-node b {
	display: block;
	font-size: 14.5px;
	font-weight: 800;
	color: var(--ink);
}
.rm-node small {
	display: block;
	font-size: 12px;
	color: var(--muted);
	font-weight: 600;
	margin-top: 1px;
}
.rm-dot {
	position: absolute;
	left: -40px;
	top: 8px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--line);
	display: grid;
	place-items: center;
	color: var(--muted-2);
}
.rm-node.done .rm-dot {
	background: var(--green-soft);
	border-color: var(--green);
	color: var(--green);
}
.rm-node.current .rm-dot {
	background: var(--accent);
	border-color: var(--accent);
	box-shadow: 0 0 0 5px var(--accent-soft);
}
.rm-node.current b {
	color: var(--accent-d);
}
.rm-node.goal {
	background: linear-gradient(120deg, #20222b, #33363f);
	border-radius: 14px;
	padding: 13px 15px;
	margin: 0 0 8px -8px;
}
.rm-node.goal b {
	color: #fff;
}
.rm-node.goal small {
	color: rgba(255, 255, 255, 0.72);
}
.rm-node.goal .rm-dot {
	left: -32px;
	top: 50%;
	transform: translateY(-50%);
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

/* strip */
.strip {
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: #fff;
}
.strip .wrap {
	display: flex;
	align-items: center;
	gap: 12px 38px;
	flex-wrap: wrap;
	padding-top: 22px;
	padding-bottom: 22px;
	justify-content: center;
}
.strip .lbl {
	font-size: 13px;
	font-weight: 700;
	color: var(--muted-2);
}
.strip .item {
	font-size: 15px;
	font-weight: 800;
	color: var(--ink-2);
	opacity: 0.85;
}
button.item {
	font-family: inherit;
	background: none;
	border: 0;
	padding: 4px 2px;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	transition:
		color 0.18s var(--ease),
		opacity 0.18s var(--ease),
		border-color 0.18s var(--ease);
}
button.item:hover {
	opacity: 1;
	color: var(--accent-d);
}
button.item.active {
	opacity: 1;
	color: var(--accent-d);
	border-bottom-color: var(--accent);
}
button.item.disabled {
	opacity: 0.4;
	cursor: default;
}
button.item.disabled:hover {
	color: var(--ink-2);
}

/* SECTIONS */
.section {
	padding: 82px 0;
}
.head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 30px;
	flex-wrap: wrap;
}
.head .l {
	max-width: 620px;
}
.head h2 {
	font-size: clamp(1.8rem, 3.3vw, 2.65rem);
	margin: 14px 0 8px;
}
.head p {
	color: var(--muted);
	font-size: 1.05rem;
}
.center {
	text-align: center;
	margin: 0 auto 40px;
	max-width: 640px;
}
.center h2 {
	font-size: clamp(1.8rem, 3.3vw, 2.65rem);
	margin: 14px 0 8px;
}
.center p {
	color: var(--muted);
	font-size: 1.05rem;
}

/* STEPS */
.steps {
	background: #fff;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.step {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 28px 24px;
	position: relative;
}
.step .no {
	font-family: var(--fd);
	font-size: 15px;
	font-weight: 600;
	color: var(--accent-d);
	font-variant-numeric: tabular-nums;
}
.step .si {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: #fff;
	border: 1px solid var(--line);
	display: grid;
	place-items: center;
	color: var(--ink);
	margin: 14px 0 16px;
}
.step h3 {
	font-size: 18px;
	margin-bottom: 8px;
}
.step p {
	font-size: 14.5px;
	color: var(--muted);
}

/* COURSES */
.filters {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 30px;
}
.chip {
	font-family: var(--f);
	font-size: 14px;
	font-weight: 700;
	padding: 9px 16px;
	border-radius: 100px;
	background: #fff;
	border: 1.5px solid var(--line);
	color: var(--ink-2);
	cursor: pointer;
	transition: all 0.2s var(--ease);
}
.chip:hover {
	border-color: var(--accent);
	color: var(--accent-d);
}
.chip.active {
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
}
.grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.course {
	position: relative;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition:
		transform 0.22s var(--ease),
		box-shadow 0.22s;
	cursor: pointer;
}
.course:hover {
	transform: translateY(-5px);
	box-shadow: var(--sh);
}
.cover {
	height: 150px;
	position: relative;
	display: flex;
	align-items: flex-end;
	padding: 14px;
	overflow: hidden;
	background: linear-gradient(150deg, #1c1e26, #2e313d);
}
a.cover {
	text-decoration: none;
	color: inherit;
	/* Above the card's stretched link (::after, z-index 5) so a click on the
	   image is handled by this single link — no first-click/second-click race. */
	z-index: 6;
}
.cover::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		85% 80% at 84% 16%,
		rgba(255, 117, 31, 0.4),
		transparent 55%
	);
}
.cover::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--accent);
}
.cover .glyph {
	position: absolute;
	right: -6px;
	top: -20px;
	font-family: var(--fd);
	font-size: 118px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.13);
	line-height: 1;
}
.cover .tag {
	position: relative;
	z-index: 2;
	background: rgba(255, 255, 255, 0.95);
	color: var(--ink);
	font-size: 11.5px;
	font-weight: 800;
	padding: 5px 11px;
	border-radius: 100px;
}
.cover.flag {
	background: linear-gradient(135deg, #ff751f, #ff9c48);
}
.cover.flag::before {
	background: radial-gradient(
		85% 80% at 84% 16%,
		rgba(255, 255, 255, 0.32),
		transparent 55%
	);
}
.cover.flag::after {
	background: rgba(255, 255, 255, 0.5);
}
.cover.flag .glyph {
	color: rgba(255, 255, 255, 0.22);
}
.badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	font-size: 11px;
	font-weight: 800;
	padding: 5px 10px;
	border-radius: 100px;
	color: #fff;
}
.badge.best {
	background: #fff;
	color: var(--accent-d);
}
.badge.pop {
	background: var(--accent);
}
.badge.new {
	background: var(--green);
}
.c-body {
	padding: 16px 17px 18px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.c-body h3 {
	font-size: 16.5px;
	line-height: 1.28;
	margin-bottom: 10px;
}
.c-inst {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}
.c-inst .a {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	flex: none;
}
.c-inst span {
	font-size: 13px;
	color: var(--muted);
	font-weight: 600;
}
.c-meta {
	display: flex;
	gap: 13px;
	font-size: 12.5px;
	color: var(--muted);
	font-weight: 600;
	margin-bottom: 12px;
	flex-wrap: wrap;
}
.c-meta .m {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.c-meta svg {
	color: var(--muted-2);
	flex: none;
}
.c-rate {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	margin-bottom: 14px;
}
.c-rate b {
	font-weight: 800;
}
.c-rate .cnt {
	color: var(--muted);
	font-weight: 600;
}
.c-foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 14px;
	border-top: 1px solid var(--line);
}
.price {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}
.price .now,
.price .single {
	font-size: 19px;
	font-weight: 800;
}
.price .old {
	font-size: 13px;
	color: var(--muted-2);
	text-decoration: line-through;
	font-weight: 600;
}
.a1 {
	background: #ff751f;
}
.a2 {
	background: #3b4252;
}
.a3 {
	background: #e85f0a;
}
.a4 {
	background: #2e313d;
}
.a5 {
	background: #12a150;
}

/* PRICING */
.pricing {
	background: #fff;
	border-top: 1px solid var(--line);
}
.plan-grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr 1fr;
	gap: 22px;
	align-items: stretch;
}
.plan {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 28px 26px;
	display: flex;
	flex-direction: column;
	position: relative;
}
.plan.hot {
	background: var(--ink);
	color: #fff;
	border-color: var(--ink);
}
.plan .pk {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--accent-d);
	margin-bottom: 12px;
}
.plan.hot .pk {
	color: var(--accent);
}
.plan h3 {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.5rem;
	letter-spacing: -0.01em;
	margin-bottom: 6px;
}
.plan .desc {
	font-size: 14px;
	color: var(--muted);
	margin-bottom: 18px;
}
.plan.hot .desc {
	color: #c7c4c0;
}
.plan .amt {
	display: flex;
	align-items: baseline;
	gap: 9px;
	margin-bottom: 4px;
}
.plan .amt .n {
	font-family: var(--fd);
	font-size: 2.1rem;
	font-weight: 600;
}
.plan .amt .o {
	font-size: 1rem;
	color: var(--muted-2);
	text-decoration: line-through;
	font-weight: 600;
}
.plan .rng {
	font-size: 12.5px;
	color: var(--muted);
	font-weight: 600;
	margin-bottom: 20px;
}
.plan.hot .rng {
	color: #a7a4a0;
}
.plan ul {
	list-style: none;
	display: grid;
	gap: 11px;
	margin-bottom: 14px;
	flex: 1;
}
.plan li {
	font-size: 14px;
	font-weight: 600;
	display: flex;
	gap: 10px;
	color: var(--ink-2);
}
.plan.hot li {
	color: #dcdad6;
}
.plan li svg {
	color: var(--accent);
	flex: none;
	margin-top: 2px;
}
.plan .btn {
	width: 100%;
	justify-content: center;
}
.plan .assure-mini {
	font-size: 12px;
	color: var(--muted);
	margin-top: 12px;
	text-align: center;
}
.plan.hot .assure-mini {
	color: #a7a4a0;
}
.stamp {
	position: absolute;
	top: -13px;
	right: 22px;
	transform: rotate(-5deg);
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: 0.04em;
	color: #fff;
	background: var(--accent);
	padding: 7px 12px;
	border-radius: 8px;
	box-shadow: 0 8px 18px -8px rgba(255, 117, 31, 0.75);
	border: 1.5px solid rgba(255, 255, 255, 0.35);
}

/* CURRICULUM */
.acc {
	display: grid;
	gap: 12px;
	max-width: 820px;
	margin: 0 auto;
}
.ai {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.ai > button {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--f);
	text-align: left;
}
.ai .num {
	font-family: var(--fd);
	font-size: 14px;
	font-weight: 600;
	color: var(--accent-d);
	font-variant-numeric: tabular-nums;
	flex: none;
}
.ai .t {
	font-size: 16px;
	font-weight: 800;
	color: var(--ink);
	flex: 1;
}
.ai .mt {
	font-size: 12.5px;
	color: var(--muted);
	font-weight: 700;
}
.ai .cx {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--bg);
	display: grid;
	place-items: center;
	color: var(--ink);
	flex: none;
	transition:
		transform 0.25s,
		background 0.2s,
		color 0.2s;
}
.ai.open .cx {
	transform: rotate(45deg);
	background: var(--accent);
	color: #fff;
}
.ai .panel {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s var(--ease);
}
.ai .pin {
	padding: 0 20px 18px 56px;
	display: grid;
	gap: 9px;
}
.ai .pin .row {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--ink-2);
}
.ai .pin .row svg {
	color: var(--muted-2);
	flex: none;
}
.ai .pin .qz {
	font-size: 11px;
	font-weight: 800;
	color: var(--green);
	background: var(--green-soft);
	padding: 3px 9px;
	border-radius: 100px;
	margin-left: auto;
}

/* FEATURES */
.feat-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.feat {
	padding: 26px 22px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--line);
	transition: transform 0.2s var(--ease);
}
.feat:hover {
	transform: translateY(-4px);
}
.feat .fic {
	width: 48px;
	height: 48px;
	border-radius: 13px;
	display: grid;
	place-items: center;
	color: #fff;
	margin-bottom: 16px;
}
.feat h3 {
	font-size: 17px;
	margin-bottom: 7px;
}
.feat p {
	font-size: 14px;
	color: var(--muted);
}

/* STATS */
.stats {
	background: var(--ink);
	color: #fff;
	border-radius: 24px;
	padding: 44px 30px;
	position: relative;
	overflow: hidden;
}
.stats::before {
	content: "";
	position: absolute;
	right: -70px;
	top: -70px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(255, 117, 31, 0.22),
		transparent 65%
	);
}
.stats::after {
	content: "";
	position: absolute;
	left: -40px;
	bottom: -90px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(255, 117, 31, 0.12),
		transparent 65%
	);
}
.stats-grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	text-align: center;
}
.stats .n {
	font-family: var(--fd);
	font-size: clamp(2.1rem, 4vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #fff;
}
.stats .n em {
	font-style: normal;
	color: var(--accent);
}
.stats .l {
	font-size: 14px;
	opacity: 0.72;
	font-weight: 600;
	margin-top: 2px;
}
.stats .sep {
	position: absolute;
	top: 12%;
	bottom: 12%;
	width: 1px;
	background: rgba(255, 255, 255, 0.14);
}

/* INSTRUCTORS */
.teach-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.teach {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 26px;
	transition:
		transform 0.2s var(--ease),
		box-shadow 0.2s;
}
.teach:hover {
	transform: translateY(-4px);
	box-shadow: var(--sh);
}
.teach .row {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 16px;
}
.teach .ph {
	width: 64px;
	height: 64px;
	border-radius: 18px;
	display: grid;
	place-items: center;
	color: #fff;
	font-family: var(--fd);
	font-size: 22px;
	font-weight: 600;
	flex: none;
}
.teach .nm {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 18px;
	letter-spacing: -0.01em;
}
.teach .rl {
	font-size: 13px;
	color: var(--accent-d);
	font-weight: 700;
}
.teach p {
	font-size: 14px;
	color: var(--muted);
	margin-bottom: 14px;
}
.teach .tags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.teach .tags span {
	font-size: 12px;
	font-weight: 700;
	background: var(--accent-soft);
	color: var(--accent-d);
	padding: 5px 10px;
	border-radius: 100px;
}

/* VOICES */
.voices {
	background: #fff;
	border-top: 1px solid var(--line);
}
.v-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.v {
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.v .stars {
	font-size: 15px;
}
.v .q {
	font-family: var(--fd);
	font-size: 16px;
	line-height: 1.45;
	color: var(--ink);
	font-weight: 500;
}
.v .who {
	margin-top: auto;
	display: flex;
	align-items: center;
	gap: 12px;
}
.v .who .a {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: #fff;
	font-weight: 800;
	font-size: 14px;
	flex: none;
}
.v .who .nm {
	font-size: 14px;
	font-weight: 800;
}
.v .who .ex {
	font-size: 12.5px;
	color: var(--green);
	font-weight: 700;
}

/* FAQ */
.faq {
	display: grid;
	gap: 12px;
	max-width: 820px;
	margin: 0 auto;
}
.fq {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.fq > button {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--f);
	text-align: left;
	font-size: 16px;
	font-weight: 700;
	color: var(--ink);
}
.fq .cx {
	margin-left: auto;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--bg);
	display: grid;
	place-items: center;
	flex: none;
	transition:
		transform 0.25s,
		background 0.2s,
		color 0.2s;
}
.fq.open .cx {
	transform: rotate(45deg);
	background: var(--accent);
	color: #fff;
}
.fq .panel {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s var(--ease);
}
.fq .pin {
	padding: 0 20px 18px;
	font-size: 14.5px;
	color: var(--muted);
	line-height: 1.6;
}

/* FINAL CTA */
.cta-band {
	background: var(--ink);
	color: #fff;
	border-radius: 26px;
	padding: 58px 40px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.cta-band::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		70% 120% at 50% 0%,
		rgba(255, 117, 31, 0.3),
		transparent 55%
	);
}
.cta-band .in {
	position: relative;
	max-width: 620px;
	margin: 0 auto;
}
.cta-band h2 {
	font-size: clamp(2rem, 4.2vw, 3.1rem);
	margin-bottom: 14px;
}
.cta-band h2 em {
	font-style: italic;
	color: var(--accent);
	font-weight: 500;
}
.cta-band p {
	color: #c7c4c0;
	font-size: 1.1rem;
	margin-bottom: 28px;
}

/* FOOTER */
footer {
	background: #fff;
	border-top: 1px solid var(--line);
	padding: 52px 0 26px;
}
.foot-top {
	display: grid;
	grid-template-columns: 1.6fr repeat(4, 1fr);
	gap: 30px;
	padding-bottom: 34px;
	border-bottom: 1px solid var(--line);
}
.foot-brand p {
	font-size: 13.5px;
	color: var(--muted);
	max-width: 34ch;
	margin-top: 14px;
	line-height: 1.6;
}
.foot-col h4 {
	font-size: 13px;
	font-weight: 800;
	margin-bottom: 14px;
}
.foot-col a {
	display: block;
	font-size: 14px;
	color: var(--muted);
	padding: 5px 0;
	transition: color 0.2s;
}
.foot-col a:hover {
	color: var(--accent-d);
}
.foot-bot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 22px;
	font-size: 13px;
	color: var(--muted-2);
	flex-wrap: wrap;
	gap: 10px;
}

.reveal {
	opacity: 0;
	transform: translateY(20px);
	transition:
		opacity 0.6s var(--ease),
		transform 0.6s var(--ease);
}
.reveal.in {
	opacity: 1;
	transform: none;
}

@media (max-width: 980px) {
	.topbar,
	.nav-links,
	.nav-search {
		display: none;
	}
	.menu-btn {
		display: grid;
		margin-left: auto;
	}
	.hero-grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.stage {
		min-height: 0;
		margin-top: 8px;
	}
	.grid,
	.v-grid,
	.teach-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.feat-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.steps-grid {
		grid-template-columns: 1fr;
	}
	.plan-grid {
		grid-template-columns: 1fr;
		max-width: 460px;
		margin: 0 auto;
	}
	.stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 30px 24px;
	}
	.stats .sep {
		display: none;
	}
	.foot-top {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.section {
		padding: 58px 0;
	}
	.grid,
	.v-grid,
	.teach-grid,
	.feat-grid {
		grid-template-columns: 1fr;
	}
	.hero-cta .btn {
		flex: 1;
		justify-content: center;
	}
	.stage {
		min-height: 0;
	}
	.card-quiz {
		right: 0;
		scale: 0.92;
	}
	.card-pdf {
		right: 0;
	}
	.foot-top {
		grid-template-columns: 1fr 1fr;
	}
	.cta-band,
	.stats {
		padding-left: 24px;
		padding-right: 24px;
	}
	.ai .pin {
		padding-left: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation: none !important;
		transition: none !important;
	}
	.reveal {
		opacity: 1;
		transform: none;
	}
}

/* INNER PAGES */
.page-hero {
	padding: 54px 0 10px;
}
.page-hero h1 {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 14px 0 8px;
}
.page-hero p {
	color: var(--muted);
	font-size: 1.05rem;
	max-width: 620px;
	margin: 0 auto;
}
.book .cover {
	height: 140px;
}

/* CONTACT */
.contact-grid {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 28px;
	align-items: start;
}
.contact-info {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 28px 26px;
}
.contact-info h3 {
	font-size: 18px;
	margin-bottom: 18px;
}
.contact-info ul {
	list-style: none;
	display: grid;
	gap: 16px;
}
.contact-info li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 14.5px;
	color: var(--ink-2);
	font-weight: 600;
	line-height: 1.5;
}
.contact-info li strong {
	color: var(--ink);
}
.contact-info .ci-lead {
	margin: -6px 0 18px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--muted);
}
.contact-info .ci-note {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--line);
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--muted);
	font-weight: 500;
}
.contact-info .ci-ic {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: var(--accent-soft);
	color: var(--accent-d);
	display: grid;
	place-items: center;
	flex: none;
}
.contact-info a:hover {
	color: var(--accent-d);
}
.contact-form {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 28px 26px;
	display: grid;
	gap: 16px;
}
.contact-form .field {
	display: grid;
	gap: 7px;
}
.contact-form label {
	font-size: 13.5px;
	font-weight: 700;
	color: var(--ink-2);
}
.contact-form input,
.contact-form textarea {
	font-family: var(--f);
	font-size: 15px;
	color: var(--ink);
	background: var(--bg);
	border: 1.5px solid var(--line);
	border-radius: 12px;
	padding: 12px 14px;
	width: 100%;
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
.contact-form textarea {
	resize: vertical;
	min-height: 128px;
}
.contact-form input:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--accent-soft);
}
.contact-form .btn {
	justify-self: start;
}
.notice {
	border-radius: 14px;
	padding: 15px 18px;
	font-size: 14.5px;
	font-weight: 600;
	margin-bottom: 24px;
	border: 1px solid var(--line);
}
.notice-ok {
	background: var(--green-soft);
	color: var(--green);
	border-color: transparent;
}
.notice-err {
	background: var(--accent-soft);
	color: var(--accent-d);
	border-color: transparent;
}

@media (max-width: 780px) {
	.contact-grid {
		grid-template-columns: 1fr;
	}
}

/* CLICKABLE CARDS (stretched link) */
.course .card-link::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Above the cover badge (3) and tag (2) so the whole card is clickable. */
	z-index: 5;
}

/* DETAIL PAGES */
.back-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 700;
	color: var(--muted);
	margin-bottom: 22px;
}
.back-link:hover {
	color: var(--accent-d);
}
.detail-grid {
	display: grid;
	grid-template-columns: 1.4fr 0.9fr;
	gap: 36px;
	align-items: start;
}
.detail-body h1 {
	font-size: clamp(1.8rem, 3.4vw, 2.6rem);
	margin: 12px 0 16px;
}
.detail-body .c-inst {
	margin-bottom: 14px;
}
.detail-body .c-meta {
	margin-bottom: 20px;
	font-size: 13.5px;
}
.detail-desc {
	color: var(--muted);
	font-size: 1.05rem;
	margin-bottom: 26px;
	max-width: 60ch;
}
.detail-sub {
	font-size: 18px;
	margin-bottom: 14px;
}
.detail-list {
	list-style: none;
	display: grid;
	gap: 12px;
}
.detail-list li {
	display: flex;
	gap: 10px;
	font-size: 15px;
	color: var(--ink-2);
}
.detail-list li svg {
	color: var(--accent);
	flex: none;
	margin-top: 2px;
}
.detail-buy {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 20px;
	overflow: hidden;
	position: sticky;
	top: 92px;
	box-shadow: var(--sh);
}
.detail-cover {
	height: 180px;
}
.detail-buy .buy-body {
	padding: 22px;
	display: grid;
	gap: 12px;
}
.detail-buy .price .now,
.detail-buy .price .single {
	font-size: 26px;
	font-weight: 800;
}
.detail-buy .btn {
	width: 100%;
	justify-content: center;
}
.detail-buy .assure-mini {
	font-size: 12px;
	color: var(--muted);
	text-align: center;
	margin-top: 4px;
}

@media (max-width: 820px) {
	.detail-grid {
		grid-template-columns: 1fr;
	}
	.detail-buy {
		position: static;
	}
}

/* WOOCOMMERCE — MY ACCOUNT / LOGIN */
.woocommerce-account .woocommerce {
	max-width: 1000px;
	margin: 0 auto;
}
.woocommerce-account .woocommerce .u-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: start;
}
/* Woo's clearfix pseudo-elements would otherwise become stray grid items. */
.woocommerce-account .woocommerce .u-columns::before,
.woocommerce-account .woocommerce .u-columns::after {
	display: none;
}
.woocommerce-account .woocommerce .u-columns .u-column1,
.woocommerce-account .woocommerce .u-columns .u-column2 {
	width: auto;
	max-width: none;
	float: none;
	margin: 0;
}
.woocommerce-account .woocommerce h2 {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.5rem;
	letter-spacing: -0.01em;
	margin-bottom: 16px;
}
.woocommerce-account .woocommerce form.woocommerce-form-login,
.woocommerce-account .woocommerce form.woocommerce-form-register,
.woocommerce-account .woocommerce form.edit-account,
.woocommerce-account .woocommerce form.woocommerce-EditAccountForm {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 18px;
	box-shadow: var(--sh);
	padding: 28px 26px;
}
.woocommerce-account .woocommerce .woocommerce-form-row label,
.woocommerce-account .woocommerce .form-row label {
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-2);
	margin-bottom: 6px;
	display: block;
}
.woocommerce-account .woocommerce .input-text,
.woocommerce-account .woocommerce input[type="text"],
.woocommerce-account .woocommerce input[type="email"],
.woocommerce-account .woocommerce input[type="password"] {
	font-family: var(--f);
	font-size: 15px;
	color: var(--ink);
	background: var(--bg);
	border: 1.5px solid var(--line);
	border-radius: 12px;
	padding: 11px 13px;
	width: 100%;
	box-sizing: border-box;
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
.woocommerce-account .woocommerce .input-text:focus,
.woocommerce-account .woocommerce input[type="text"]:focus,
.woocommerce-account .woocommerce input[type="email"]:focus,
.woocommerce-account .woocommerce input[type="password"]:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--accent-soft);
}
.woocommerce-account .woocommerce button.button,
.woocommerce-account .woocommerce input.button,
.woocommerce-account .woocommerce a.button {
	font-family: var(--f);
	font-size: 15px;
	font-weight: 700;
	background: var(--accent);
	color: #fff;
	border: none;
	border-radius: 12px;
	padding: 12px 22px;
	box-shadow: 0 8px 20px -8px rgb(255 117 31 / 65%);
	transition:
		background 0.2s,
		transform 0.18s,
		box-shadow 0.2s;
}
.woocommerce-account .woocommerce button.button:hover,
.woocommerce-account .woocommerce input.button:hover,
.woocommerce-account .woocommerce a.button:hover {
	background: var(--accent-d);
	transform: translateY(-1px);
}
.woocommerce-account .woocommerce .woocommerce-form-login__rememberme {
	font-weight: 600;
	color: var(--muted);
}
.woocommerce-account .woocommerce .lost_password a,
.woocommerce-account .woocommerce .woocommerce-LostPassword a {
	color: var(--muted);
	font-weight: 600;
}
.woocommerce-account .woocommerce .lost_password a:hover,
.woocommerce-account .woocommerce .woocommerce-LostPassword a:hover {
	color: var(--accent-d);
}

/* Logged-in dashboard */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	display: grid;
	gap: 4px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 10px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 11px 14px;
	border-radius: 10px;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--ink-2);
	transition:
		background 0.2s,
		color 0.2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--bg);
	color: var(--accent-d);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	background: var(--ink);
	color: #fff;
}
.woocommerce-account .woocommerce-MyAccount-content {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 26px;
}
.woocommerce-account .woocommerce-MyAccount-content a {
	color: var(--accent-d);
	font-weight: 600;
}

@media (max-width: 720px) {
	.woocommerce-account .woocommerce .u-columns {
		grid-template-columns: 1fr;
	}
}

/* ENTERPRISE AUTH (account login / register) */
.auth {
	padding: 48px 0 72px;
}
.auth-shell {
	max-width: 1060px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.04fr 1fr;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 28px;
	overflow: hidden;
	box-shadow:
		0 1px 0 rgb(255 255 255 / 60%) inset,
		0 40px 80px -32px rgb(22 23 28 / 40%),
		0 12px 30px -18px rgb(22 23 28 / 30%);
}
.auth-brand {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	color: #fff;
	padding: 48px 44px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 26px;
	background:
		radial-gradient(
			120% 90% at 88% 6%,
			rgb(255 117 31 / 34%),
			transparent 52%
		),
		radial-gradient(
			90% 70% at 0% 100%,
			rgb(255 117 31 / 12%),
			transparent 55%
		),
		linear-gradient(160deg, #23262f 0%, #1a1c24 46%, #131419 100%);
}
.auth-brand::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(
		rgb(255 255 255 / 6%) 1px,
		transparent 1px
	);
	background-size: 22px 22px;
	mask-image: linear-gradient(180deg, #000 0%, transparent 70%);
	pointer-events: none;
}
.auth-brand > * {
	position: relative;
}
.auth-eyebrow {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ffb680;
	background: rgb(255 117 31 / 12%);
	border: 1px solid rgb(255 117 31 / 26%);
	padding: 6px 13px;
	border-radius: 100px;
}
.auth-headline {
	font-family: var(--fd);
	font-weight: 600;
	font-size: clamp(1.7rem, 2.6vw, 2.3rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 12px 0;
	color: #fff;
}
.auth-headline em {
	font-style: italic;
	color: var(--accent);
}
.auth-lead {
	color: #c7c4c0;
	font-size: 1rem;
	max-width: 38ch;
}
.auth-benefits {
	list-style: none;
	display: grid;
	gap: 13px;
	margin: 0;
	padding: 0;
}
.auth-benefits li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14.5px;
	font-weight: 600;
	color: #e4e2de;
}
.auth-benefits li svg {
	width: 28px;
	height: 28px;
	padding: 6px;
	box-sizing: border-box;
	border-radius: 9px;
	background: rgb(255 117 31 / 15%);
	color: var(--accent);
	flex: none;
}
.auth-quote {
	margin: 4px 0 0;
	padding: 20px;
	border-radius: 16px;
	background: rgb(255 255 255 / 6%);
	border: 1px solid rgb(255 255 255 / 12%);
	backdrop-filter: blur(6px);
}
.auth-quote-stars {
	color: var(--gold);
	letter-spacing: 2px;
	font-size: 13px;
}
.auth-quote blockquote {
	margin: 10px 0 16px;
	font-family: var(--fd);
	font-weight: 500;
	font-size: 1.02rem;
	line-height: 1.5;
	color: #fff;
}
.auth-quote figcaption {
	display: flex;
	align-items: center;
	gap: 12px;
}
.auth-quote-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	flex: none;
	font-size: 13px;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(135deg, var(--accent), #ff9d4d);
}
.auth-quote-meta {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}
.auth-quote-meta b {
	font-size: 14px;
	color: #fff;
}
.auth-quote-meta small {
	font-size: 12.5px;
	color: #12d97e;
	font-weight: 600;
}
.auth-trust {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding-top: 4px;
	font-size: 12.5px;
	font-weight: 600;
	color: #a7a4a0;
}
.auth-trust .stars {
	color: var(--gold);
	font-size: 13px;
}
.auth-forms {
	padding: 46px 42px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
}
.auth-head .auth-title {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.7rem;
	letter-spacing: -0.01em;
	margin-bottom: 6px;
	color: var(--ink);
}
.auth-head .auth-subtitle {
	font-size: 14.5px;
	color: var(--muted);
}
.auth-switch {
	font-size: 14px;
	color: var(--muted);
	padding-top: 18px;
	margin-top: 6px;
	border-top: 1px solid var(--line);
}
.auth-link {
	font-family: var(--f);
	font-size: 14px;
	font-weight: 700;
	color: var(--accent-d);
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
}
.auth-link:hover {
	text-decoration: underline;
}
/* Login / register text swap. */
.auth-forms .a-register {
	display: none;
}
.auth-forms.show-register .a-login {
	display: none;
}
.auth-forms.show-register .a-register {
	display: inline;
}

/* WooCommerce output inside the auth panel */
.woocommerce-account .auth-body .woocommerce {
	max-width: none;
	margin: 0;
}
.woocommerce-account .auth-body .woocommerce .u-columns {
	display: block;
}
.woocommerce-account .auth-body .u-column2 {
	display: none;
}
.auth-forms.show-register .u-column1 {
	display: none;
}
.auth-forms.show-register .u-column2 {
	display: block;
}
.woocommerce-account .auth-body .woocommerce h2 {
	display: none;
}
.woocommerce-account .auth-body .woocommerce form.woocommerce-form-login,
.woocommerce-account .auth-body .woocommerce form.woocommerce-form-register {
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
}
.woocommerce-account .auth-body .woocommerce .form-row {
	margin-bottom: 16px;
}
.auth-body .woocommerce-LostPassword {
	margin-top: 14px;
	margin-bottom: 0;
}
.auth-body .woocommerce-privacy-policy-text p {
	font-size: 12.5px;
	color: var(--muted);
	margin-bottom: 16px;
}

/* Elite form polish */
.woocommerce-account .auth-body .woocommerce .input-text {
	background: #fff;
	border-color: #e6e2d9;
	border-radius: 12px;
	padding: 13px 15px;
	font-size: 15px;
	box-shadow: 0 1px 2px rgb(22 23 28 / 4%);
}
.woocommerce-account .auth-body .woocommerce .password-input {
	position: relative;
	display: block;
}
.woocommerce-account .auth-body .woocommerce .password-input .input-text {
	padding-right: 46px;
}
.auth-body .show-password-input {
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--muted-2);
	cursor: pointer;
}
.auth-body .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	margin-bottom: 14px;
	font-size: 14px;
}
.auth-body .woocommerce-form-login__rememberme input {
	appearance: none;
	width: 18px;
	height: 18px;
	margin: 0 9px 0 0;
	border: 1.5px solid #d9d4c9;
	border-radius: 5px;
	cursor: pointer;
	transition:
		background 0.15s,
		border-color 0.15s;
}
.auth-body .woocommerce-form-login__rememberme input:checked {
	border-color: var(--accent);
	background: var(--accent)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
		center / 12px no-repeat;
}
.woocommerce-account .auth-body .woocommerce button.button {
	width: 100%;
	justify-content: center;
	text-align: center;
	margin-top: 4px;
	padding: 14px 22px;
	font-size: 15px;
	letter-spacing: 0.01em;
	background: linear-gradient(180deg, #ff8a3d, var(--accent));
	box-shadow:
		0 10px 22px -8px rgb(255 117 31 / 60%),
		0 1px 0 rgb(255 255 255 / 30%) inset;
}
.woocommerce-account .auth-body .woocommerce button.button:hover {
	background: linear-gradient(180deg, var(--accent), var(--accent-d));
	transform: translateY(-2px);
	box-shadow: 0 16px 30px -10px rgb(255 117 31 / 62%);
}

/* Free-trial form (custom, non-Woo) */
.auth-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.auth-form .field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.pw-field {
	position: relative;
}
.auth-form .pw-field input {
	padding-right: 46px;
}
.pw-toggle {
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: none;
	border-radius: 8px;
	background: none;
	color: var(--muted-2);
	cursor: pointer;
	transition: color 0.2s;
}
.pw-toggle:hover {
	color: var(--accent-d);
}
.pw-toggle .pw-eye-off {
	display: none;
}
.pw-toggle.showing .pw-eye {
	display: none;
}
.pw-toggle.showing .pw-eye-off {
	display: block;
}
.auth-form label {
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-2);
}
.auth-form input[type="text"],
.auth-form input[type="email"],
.auth-form input[type="password"] {
	font-family: var(--f);
	font-size: 15px;
	color: var(--ink);
	background: #fff;
	border: 1.5px solid #e6e2d9;
	border-radius: 12px;
	padding: 13px 15px;
	width: 100%;
	box-shadow: 0 1px 2px rgb(22 23 28 / 4%);
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
}
.auth-form input:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 4px var(--accent-soft);
}
.auth-form .field small {
	font-size: 12.5px;
	color: var(--muted);
}
.auth-consent {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin-top: 2px;
	padding: 13px 15px;
	font-size: 13.5px;
	color: var(--muted);
	line-height: 1.5;
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 12px;
	cursor: pointer;
}
.auth-consent input {
	appearance: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	flex: none;
	border: 1.5px solid #d9d4c9;
	border-radius: 5px;
	cursor: pointer;
	transition:
		background 0.15s,
		border-color 0.15s;
}
.auth-consent input:checked {
	border-color: var(--accent);
	background: var(--accent)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
		center / 12px no-repeat;
}
.auth-submit {
	width: 100%;
	justify-content: center;
	margin-top: 6px;
	padding: 15px 22px;
	font-size: 15.5px;
	background: linear-gradient(180deg, #ff8a3d, var(--accent));
	box-shadow:
		0 10px 22px -8px rgb(255 117 31 / 60%),
		0 1px 0 rgb(255 255 255 / 30%) inset;
}
.auth-submit:hover {
	background: linear-gradient(180deg, var(--accent), var(--accent-d));
}

@media (max-width: 860px) {
	.auth-shell {
		grid-template-columns: 1fr;
	}
	.auth-brand {
		padding: 34px 28px;
		gap: 20px;
	}
	.auth-forms {
		padding: 30px 24px;
	}
}

/* WooCommerce product cards (Kurslar page) */
.product-card .cover {
	height: auto;
	aspect-ratio: 4 / 3;
}
.product-card .cover.has-img {
	padding: 0;
	background: #20222b;
}
.product-card .cover.has-img img {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}
/* Scrim under the category tag so it stays readable over busy cover art. */
.product-card .cover.has-img::before {
	z-index: 1;
	background: linear-gradient(to top, rgb(18 20 26 / 52%), transparent 24%);
}
.product-card .cover.has-img::after {
	display: none;
}
.product-card .cover .tag,
.product-card .cover .badge {
	z-index: 2;
}
/* Year tag sits flush in the cover's bottom-left corner (no gap). */
.course .cover .tag {
	position: absolute;
	left: 0;
	bottom: 0;
	margin: 0;
	border-radius: 0 8px 0 0;
}
.product-card .c-body h3 {
	font-size: 16px;
	line-height: 1.3;
	margin-bottom: 14px;
}
.product-card .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	line-height: 1.2;
}
.product-card .price ins {
	text-decoration: none;
}
.product-card .price .woocommerce-Price-amount {
	font-size: 18px;
	font-weight: 800;
	color: var(--ink);
}
.product-card .price del .woocommerce-Price-amount {
	font-size: 13px;
	font-weight: 600;
	color: var(--muted-2);
	text-decoration: line-through;
}
.product-card .price .woocommerce-price-suffix {
	display: none;
}

/* --- Resource sections (Sınav Rehberi · Mevzuat · Ücretsiz İçerikler) ----- */

.resource-intro {
	max-width: 72ch;
	margin-bottom: 24px;
	color: var(--muted);
}
.chip-count {
	margin-left: 6px;
	font-size: 11.5px;
	font-weight: 800;
	color: var(--muted-2);
}
.chip.active .chip-count {
	color: rgba(255, 255, 255, 0.6);
}
.chip-empty {
	opacity: 0.55;
}

/*
 * A vertical list rather than a card grid: same-shaped articles are compared
 * down one column, which scans faster than a mosaic of equal cards.
 */
.resource-list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	border-top: 1px solid var(--line);
}
.resource-row {
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr);
	gap: 22px;
	padding: 22px 0;
	border-bottom: 1px solid var(--line);
}
/*
 * 16:9 like the generated cover cards, so a card is never cropped through its
 * own title; a photo uploaded later crops harmlessly at the same ratio.
 */
.resource-row .row-media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	border-radius: 14px;
	overflow: hidden;
	background: linear-gradient(150deg, #1c1e26, #2e313d);
}
.resource-row .row-media::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(
		85% 80% at 84% 16%,
		rgba(255, 117, 31, 0.4),
		transparent 55%
	);
}
.resource-row .row-media .glyph {
	position: absolute;
	right: -4px;
	top: -14px;
	font-family: var(--fd);
	font-size: 82px;
	font-weight: 600;
	line-height: 1;
	color: rgba(255, 255, 255, 0.14);
}
.resource-row .row-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.row-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 12px;
	margin-bottom: 8px;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--muted-2);
}
.row-cat {
	color: var(--accent-d);
}
.row-cat:hover {
	text-decoration: underline;
}
.row-title {
	font-size: 19px;
	line-height: 1.3;
	margin-bottom: 8px;
}
.row-title a {
	color: var(--ink);
	transition: color 0.2s var(--ease);
}
.resource-row:hover .row-title a {
	color: var(--accent-d);
}
.row-excerpt {
	max-width: 68ch;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--muted);
	margin-bottom: 10px;
}
.row-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--ink-2);
}
.resource-row:hover .row-more {
	color: var(--accent-d);
}
.row-more svg {
	transition: transform 0.2s var(--ease);
}
.resource-row:hover .row-more svg {
	transform: translateX(3px);
}

/* The newest entry opens the list at a larger size. */
.resource-row.is-featured {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 0 0 30px;
}
.resource-row.is-featured .row-media {
	aspect-ratio: 16 / 9;
	border-radius: 18px;
}
.resource-row.is-featured .row-media .glyph {
	font-size: 150px;
	top: -26px;
}
.resource-row.is-featured .row-title {
	font-family: var(--fd);
	font-size: clamp(1.4rem, 2.4vw, 1.9rem);
	line-height: 1.18;
	letter-spacing: -0.01em;
	margin-bottom: 12px;
}
.resource-row.is-featured .row-excerpt {
	font-size: 15.5px;
}

.resource-empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	padding: 34px 0;
	color: var(--muted);
}

/* Exam hub: one silo's courses and resources on a single page. */
.hub-block {
	margin-bottom: 44px;
}
.hub-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--line);
}
.hub-head h2 {
	font-size: 1.35rem;
}
.hub-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.hub-item {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 20px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: #fff;
	transition:
		border-color 0.2s var(--ease),
		transform 0.2s var(--ease);
}
.hub-item:hover {
	border-color: var(--accent);
	transform: translateY(-3px);
}
.hub-item-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	color: var(--muted-2);
}
.hub-item-title {
	font-family: var(--fd);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ink);
}
.hub-item-excerpt {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--muted);
}
.hub-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 22px;
	font-size: 14px;
	font-weight: 700;
	color: var(--accent-d);
}
.hub-link:hover {
	text-decoration: underline;
}

.pagination {
	margin-top: 30px;
}
.pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
}
.pagination a,
.pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border-radius: 11px;
	border: 1.5px solid var(--line);
	background: #fff;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-2);
}
.pagination a:hover {
	border-color: var(--accent);
	color: var(--accent-d);
}
.pagination .current {
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
}
.pagination .dots {
	border-color: transparent;
	background: none;
}

/* --- Single resource entry ---------------------------------------------- */

/* Reading progress, pinned under the sticky header. */
.read-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	z-index: 90;
	background: transparent;
	pointer-events: none;
}
.read-progress span {
	display: block;
	height: 100%;
	background: var(--accent);
	transform: scaleX(0);
	transform-origin: 0 50%;
}

/*
 * The site header is styled off the bare `header` selector, so the article's
 * own <header> has to opt back out of the sticky bar's looks.
 */
.article-head {
	position: static;
	z-index: auto;
	background: none;
	backdrop-filter: none;
	padding: 34px 0 26px;
	border-bottom: 1px solid var(--line);
}
.article-head h1 {
	max-width: 18ch;
	font-size: clamp(1.9rem, 4vw, 2.9rem);
	line-height: 1.12;
	letter-spacing: -0.02em;
	margin-bottom: 14px;
}
.eyebrow-link {
	display: inline-block;
	margin-bottom: 12px;
}
.eyebrow-link:hover {
	color: var(--accent-d);
}
.article-lead {
	max-width: 62ch;
	font-size: 17.5px;
	line-height: 1.6;
	color: var(--muted);
	margin-bottom: 18px;
}
.article-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 18px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--muted);
}
.article-meta .am {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.article-meta svg {
	color: var(--muted-2);
	flex: none;
}
.breadcrumbs {
	margin-bottom: 14px;
	font-size: 13px;
	color: var(--muted-2);
}
.breadcrumbs a {
	color: var(--muted);
	font-weight: 600;
}
.breadcrumbs a:hover {
	color: var(--accent-d);
}
.breadcrumbs-center {
	margin-bottom: 10px;
}

/*
 * Article column capped near 70 characters — the readability sweet spot — with
 * the table of contents parked in the leftover space beside it.
 */
.article-grid {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 48px;
	padding-top: 34px;
	padding-bottom: 10px;
}
.article-grid > .article-body:only-child {
	grid-column: 1 / -1;
	max-width: 72ch;
	margin: 0 auto;
}
.article-body {
	max-width: 72ch;
}
.article-body .entry-content {
	font-size: 17px;
	line-height: 1.75;
}
.article-body .entry-content h2 {
	font-size: 1.45rem;
	line-height: 1.25;
	margin: 34px 0 12px;
	scroll-margin-top: calc(var(--header-h) + 22px);
}
.article-body .entry-content h3 {
	font-size: 1.15rem;
	margin: 26px 0 10px;
	scroll-margin-top: calc(var(--header-h) + 22px);
}
.article-body .entry-content p {
	margin-bottom: 18px;
}

.article-toc {
	position: sticky;
	top: calc(var(--header-h) + 18px);
	align-self: start;
	max-height: calc(100vh - var(--header-h) - 40px);
	overflow-y: auto;
}
.toc-box > summary {
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
	cursor: pointer;
	margin-bottom: 10px;
}
.toc-box nav {
	display: flex;
	flex-direction: column;
	border-left: 2px solid var(--line);
}
.toc-box a {
	padding: 7px 0 7px 14px;
	margin-left: -2px;
	border-left: 2px solid transparent;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--muted);
	transition:
		color 0.2s var(--ease),
		border-color 0.2s var(--ease);
}
.toc-box a:hover {
	color: var(--ink);
}
.toc-box a.active {
	color: var(--accent-d);
	border-left-color: var(--accent);
}
.toc-box a.toc-l3 {
	padding-left: 26px;
	font-size: 13.5px;
}

.chip-static {
	display: inline-flex;
	align-items: center;
	padding: 6px 13px;
	font-size: 12.5px;
	cursor: default;
}
.resource-figure {
	margin-bottom: 26px;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--line);
}
.resource-figure img {
	display: block;
	width: 100%;
	height: auto;
}

.article-share {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 34px;
	padding-top: 22px;
	border-top: 1px solid var(--line);
}
.share-label {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
	margin-right: 4px;
}
.share-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 38px;
	padding: 0 14px;
	border-radius: 10px;
	border: 1.5px solid var(--line);
	background: #fff;
	font-family: var(--f);
	font-size: 13.5px;
	font-weight: 700;
	color: var(--ink-2);
	cursor: pointer;
	transition:
		border-color 0.2s var(--ease),
		color 0.2s var(--ease);
}
.share-btn:hover {
	border-color: var(--accent);
	color: var(--accent-d);
}
.share-btn.copied {
	border-color: var(--green);
	color: var(--green);
}

.author-box {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	margin-top: 30px;
	padding: 22px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: #fff;
}
.author-box .author-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	flex: none;
}
.author-kicker {
	display: block;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
	margin-bottom: 4px;
}
.author-text h3 {
	font-size: 1.05rem;
	margin-bottom: 8px;
}
.author-text p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--muted);
	margin-bottom: 10px;
}
.author-link {
	font-size: 13.5px;
	font-weight: 700;
	color: var(--accent-d);
}
.author-link:hover {
	text-decoration: underline;
}

.resource-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 36px;
	padding: 24px 26px;
	border-radius: 18px;
	background: linear-gradient(150deg, #1c1e26, #2e313d);
	color: #fff;
}
.resource-cta h3 {
	font-size: 1.15rem;
	margin-bottom: 6px;
}
.resource-cta p {
	font-size: 14.5px;
	color: rgba(255, 255, 255, 0.72);
}
.resource-cta-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.resource-cta .btn-ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.3);
	color: #fff;
}
.resource-cta .btn-ghost:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: #fff;
	color: #fff;
}

.article-related {
	padding-top: 10px;
}
.related-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 20px;
}
.related-head h2 {
	font-size: 1.35rem;
}
.related-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.related-item {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 20px;
	border-radius: 16px;
	border: 1px solid var(--line);
	background: #fff;
	transition:
		border-color 0.2s var(--ease),
		transform 0.2s var(--ease);
}
.related-item:hover {
	border-color: var(--accent);
	transform: translateY(-3px);
}
.related-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	color: var(--muted-2);
}
.related-cat {
	color: var(--accent-d);
}
.related-title {
	font-family: var(--fd);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ink);
}
.related-excerpt {
	font-size: 13.5px;
	color: var(--muted);
	line-height: 1.5;
}

/* WOOCOMMERCE — shop & single product */
.woo-page {
	padding-bottom: 44px;
}
.woo-page .product .product_title {
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	margin-bottom: 12px;
}
.woo-page .product .price,
.woo-page .product p.price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 18px;
	color: var(--ink);
	font-size: 1.5rem;
	font-weight: 800;
}
.woo-page .product .price del {
	color: var(--muted-2);
	font-weight: 600;
	font-size: 1rem;
}
.woo-page .product .price ins {
	text-decoration: none;
}
.woo-page .product .price .woocommerce-price-suffix {
	font-size: 12px;
	font-weight: 600;
	color: var(--muted);
}
.woo-page .woocommerce-product-details__short-description {
	color: var(--muted);
	margin-bottom: 22px;
}
.woo-page a.button,
.woo-page button.button,
.woo-page input.button,
.woo-page .single_add_to_cart_button {
	font-family: var(--f);
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(180deg, #ff8a3d, var(--accent));
	border: none;
	border-radius: 12px;
	padding: 13px 26px;
	box-shadow: 0 10px 22px -8px rgb(255 117 31 / 55%);
	transition:
		transform 0.18s,
		box-shadow 0.2s,
		background 0.2s;
}
.woo-page a.button:hover,
.woo-page button.button:hover,
.woo-page input.button:hover,
.woo-page .single_add_to_cart_button:hover {
	background: linear-gradient(180deg, var(--accent), var(--accent-d));
	transform: translateY(-2px);
}
.woo-page .quantity input.qty {
	border: 1.5px solid var(--line);
	border-radius: 10px;
	padding: 10px 8px;
	font-family: var(--f);
}
.woo-page .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 22px;
	padding: 0;
	border: none;
}
.woo-page .woocommerce-tabs ul.tabs::before {
	display: none;
}
.woo-page .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 100px;
}
.woo-page .woocommerce-tabs ul.tabs li::before,
.woo-page .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woo-page .woocommerce-tabs ul.tabs li a {
	padding: 9px 18px;
	color: var(--ink-2);
	font-weight: 700;
}
.woo-page .woocommerce-tabs ul.tabs li.active {
	background: var(--ink);
	border-color: var(--ink);
}
.woo-page .woocommerce-tabs ul.tabs li.active a {
	color: #fff;
}
.woo-page .woocommerce-Tabs-panel h2 {
	font-size: 1.4rem;
	margin-bottom: 14px;
}
.woo-page ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woo-page ul.products::before,
.woo-page ul.products::after {
	display: none;
}
.woo-page ul.products li.product {
	width: auto;
	margin: 0;
	float: none;
	position: relative;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 14px;
	transition:
		transform 0.22s var(--ease),
		box-shadow 0.22s;
}
.woo-page ul.products li.product:hover {
	transform: translateY(-5px);
	box-shadow: var(--sh);
}
.woo-page ul.products li.product img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 10px;
	margin-bottom: 12px;
}
.woo-page ul.products li.product .onsale {
	position: absolute;
	top: 20px;
	left: 20px;
	z-index: 2;
	margin: 0;
	min-width: 0;
	min-height: 0;
	padding: 4px 10px;
	border-radius: 100px;
	background: var(--accent);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.5;
}
.woo-page ul.products li.product .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 12px;
	padding: 9px 16px;
	border-radius: 10px;
	background: var(--ink);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s;
}
.woo-page ul.products li.product .button:hover {
	background: var(--accent);
}
.woo-page ul.products li.product .woocommerce-loop-product__title {
	padding: 0 0 8px;
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.3;
}
.woo-page ul.products li.product .price {
	font-size: 15px;
	color: var(--ink);
}
.woo-page .related > h2,
.woo-page .upsells > h2 {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.6rem;
	margin: 40px 0 20px;
}

@media (max-width: 900px) {
	.woo-page ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.woo-page ul.products {
		grid-template-columns: 1fr;
	}
}

/* LearnDash course detail */
.course-hero {
	padding: 40px 0 6px;
}
.course-hero h1 {
	margin-top: 14px;
	font-size: clamp(1.7rem, 3.4vw, 2.6rem);
}
.ld-course .learndash-wrapper .ld-expand-button {
	background-color: var(--accent);
	border-color: var(--accent);
}
.ld-course .learndash-wrapper .ld-expand-button:hover {
	background-color: var(--accent-d);
	border-color: var(--accent-d);
}

/* Elite single product detail */
.woo-page .woocommerce-breadcrumb {
	margin-bottom: 20px;
	font-size: 13px;
	color: var(--muted-2);
}
.woo-page .woocommerce-breadcrumb a {
	color: var(--muted);
	font-weight: 600;
}
.woo-page .woocommerce-breadcrumb a:hover {
	color: var(--accent-d);
}
.woo-page .product-top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 44px;
	margin-bottom: 12px;
}
.woo-page .product-top .woocommerce-product-gallery {
	width: calc(50% - 22px);
	margin: 0;
	float: none;
	position: relative;
}
.woo-page .product-top .woocommerce-product-gallery img {
	border-radius: 16px;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.woo-page .product-top .summary {
	width: calc(50% - 22px);
	margin: 0;
	float: none;
	position: sticky;
	top: 92px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 28px 26px;
	box-shadow: var(--sh);
}
.woo-page .summary .product_title {
	font-size: clamp(1.35rem, 2.4vw, 1.8rem);
	margin-bottom: 12px;
}
.pd-inst {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-2);
}
.pd-ava {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--accent);
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 12px;
	font-weight: 800;
	flex: none;
}
.pd-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}
.pd-meta li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--muted);
}
.pd-meta li svg {
	color: var(--muted-2);
	flex: none;
}
.pd-includes {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.pd-includes-title {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--ink-2);
}
.pd-includes ul {
	display: grid;
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}
.pd-includes li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: 14px;
	color: var(--ink-2);
}
.pd-includes li svg {
	color: var(--accent);
	flex: none;
	margin-top: 1px;
}
.pd-trust {
	margin-top: 14px;
	font-size: 12.5px;
	color: var(--muted);
}
.woo-page .summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 4px;
}
/* Tabs as pills (higher specificity than WC defaults) */
.woo-page div.product .woocommerce-tabs {
	margin-top: 48px;
}
.woo-page div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
	padding: 0;
	border: none !important;
}
.woo-page div.product .woocommerce-tabs ul.tabs::before,
.woo-page div.product .woocommerce-tabs ul.tabs::after {
	display: none !important;
	border: 0 !important;
}
.woo-page div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 100px;
}
.woo-page div.product .woocommerce-tabs ul.tabs li::before,
.woo-page div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woo-page div.product .woocommerce-tabs ul.tabs li a {
	padding: 9px 18px;
	color: var(--ink-2);
	font-weight: 700;
}
.woo-page div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--ink);
	border-color: var(--ink);
}
.woo-page div.product .woocommerce-tabs ul.tabs li.active a {
	color: #fff;
}
.woo-page .woocommerce-Tabs-panel img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}

/* Sale flash on the gallery */
.woo-page .product-top .onsale {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	margin: 0;
	min-width: 0;
	min-height: 0;
	padding: 5px 12px;
	border-radius: 100px;
	background: var(--accent);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.5;
}

/* Price */
.woo-page .summary .price {
	display: flex;
	flex-flow: row wrap;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 16px;
	color: var(--ink);
	font-size: 26px;
	font-weight: 800;
	line-height: 1.1;
}
.woo-page .summary .price del {
	opacity: 1;
	font-size: 16px;
	font-weight: 600;
	color: var(--muted-2);
}
.woo-page .summary .price ins {
	text-decoration: none;
	color: var(--accent-d);
}

/* Stock */
.woo-page .summary .stock {
	margin: 0 0 14px;
	font-size: 13px;
	font-weight: 700;
}
.woo-page .summary .stock.in-stock {
	color: var(--green);
}
.woo-page .summary .stock.out-of-stock {
	color: var(--accent-d);
}

/* Quantity + add-to-cart */
.woo-page .summary .quantity .qty {
	width: 76px;
	min-height: 50px;
	padding: 10px 12px;
	border: 1.5px solid var(--line);
	border-radius: 12px;
	font-family: var(--f);
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	color: var(--ink);
	background: #fff;
}
/* `.alt` is what WooCommerce's own `button.button.alt` purple rule hangs off;
   matching it here is what makes the brand colour win. */
.woo-page .summary button.single_add_to_cart_button,
.woo-page .summary button.single_add_to_cart_button.alt {
	flex: 1 1 200px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 13px 22px;
	border: 0;
	border-radius: 12px;
	background: var(--accent);
	color: #fff;
	font-family: var(--f);
	font-size: 16px;
	font-weight: 800;
	cursor: pointer;
	transition:
		background 0.2s,
		transform 0.18s var(--ease);
}
.woo-page .summary button.single_add_to_cart_button:hover,
.woo-page .summary button.single_add_to_cart_button.alt:hover {
	background: var(--accent-d);
	transform: translateY(-1px);
}

/* Product meta */
.woo-page .summary .product_meta {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--line);
	font-size: 13px;
	color: var(--muted);
}
.woo-page .summary .product_meta > span {
	display: block;
	margin-bottom: 4px;
}
.woo-page .summary .product_meta a {
	color: var(--ink-2);
	font-weight: 600;
}
.woo-page .summary .product_meta a:hover {
	color: var(--accent-d);
}

@media (max-width: 820px) {
	.woo-page .product-top {
		gap: 24px;
	}
	.woo-page .product-top .woocommerce-product-gallery,
	.woo-page .product-top .summary {
		width: 100%;
	}
	.woo-page .product-top .summary {
		position: static;
	}
}

/* WooCommerce checkout */
/* ===== Classic cart page ===== */
.woocommerce-cart .entry-content {
	max-width: 1080px;
	margin: 0 auto;
}
.woocommerce-cart table.shop_table {
	margin-bottom: 0;
	border: 1px solid var(--line);
	border-radius: 16px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--surface);
}
.woocommerce-cart table.shop_table th {
	padding: 14px 16px;
	background: var(--bg);
	font-size: 12.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--ink-2);
	border: 0;
}
.woocommerce-cart table.shop_table td {
	padding: 16px;
	border-top: 1px solid var(--line);
	vertical-align: middle;
}
.woocommerce-cart table.shop_table td.product-thumbnail {
	width: 84px;
}
.woocommerce-cart table.shop_table td.product-thumbnail img {
	width: 64px;
	height: 64px;
	max-width: none;
	object-fit: cover;
	border-radius: 10px;
}
.woocommerce-cart table.shop_table td.product-name a {
	color: var(--ink);
	font-weight: 700;
}
.woocommerce-cart table.shop_table td.product-name a:hover {
	color: var(--accent-d);
}
.woocommerce-cart .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--bg);
	color: var(--muted) !important;
	font-size: 18px;
	line-height: 1;
	transition:
		background 0.2s,
		color 0.2s;
}
.woocommerce-cart .product-remove a.remove:hover {
	background: var(--accent-soft);
	color: var(--accent-d) !important;
}
.woocommerce-cart .quantity .qty {
	width: 74px;
	min-height: 44px;
	padding: 8px 10px;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	font-family: var(--f);
	font-weight: 700;
	text-align: center;
}
.woocommerce-cart td.actions .coupon .input-text {
	min-height: 44px;
	margin-right: 8px;
	padding: 10px 12px;
	border: 1.5px solid var(--line);
	border-radius: 10px;
}
.woocommerce-cart td.actions .button {
	min-height: 44px;
	padding: 11px 18px;
	border: 0;
	border-radius: 10px;
	background: var(--ink);
	color: #fff;
	font-weight: 700;
}
.woocommerce-cart td.actions .button:hover {
	background: var(--accent);
}
/* Sepeti güncelle butonu disabled iken de yazı görünür kalsın (WooCommerce color:inherit'i ezer) */
.woocommerce-cart td.actions .button:disabled,
.woocommerce-cart td.actions .button.disabled,
.woocommerce-cart td.actions .button[disabled] {
	color: #fff;
}
/* Sepet sayfası: iki kolon (sol ürünler / sağ sticky toplamlar) */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 30px 34px;
	align-items: start;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty {
	display: none;
}
.woocommerce-cart .woocommerce-cart-form {
	grid-column: 1;
	margin: 0;
}
.woocommerce-cart .cart-collaterals {
	grid-column: 2;
	width: auto;
	float: none;
	position: sticky;
	top: 24px;
}
.woocommerce-cart .cart-collaterals .cross-sells {
	display: none;
}

@media (max-width: 900px) {
	.woocommerce-cart .woocommerce {
		grid-template-columns: 1fr;
	}
	.woocommerce-cart .cart-collaterals {
		grid-column: 1;
		position: static;
	}
}
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	max-width: none;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 26px 28px;
	box-shadow: 0 12px 30px -18px rgb(22 23 28 / 22%);
}
.woocommerce-cart .cart_totals h2 {
	font-size: 1.2rem;
	font-weight: 800;
	margin-bottom: 18px;
}
.woocommerce-cart .cart_totals table,
.woocommerce-cart .cart_totals table.shop_table {
	width: 100%;
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: transparent;
	border-collapse: collapse;
	margin: 0;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	padding: 14px 0;
	border: 0;
	border-top: 1px solid var(--line);
	font-size: 14.5px;
	background: transparent;
	vertical-align: top;
}
.woocommerce-cart .cart_totals table th {
	width: 42%;
	text-align: left;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	color: var(--ink-2);
	white-space: nowrap;
}
.woocommerce-cart .cart_totals table td {
	text-align: right;
	font-weight: 700;
	color: var(--ink);
}
.woocommerce-cart .cart_totals table tr:first-child th,
.woocommerce-cart .cart_totals table tr:first-child td {
	border-top: 0;
	padding-top: 0;
}
/* Gönderim satırı */
.woocommerce-cart .cart_totals .shipping td {
	text-align: left;
	font-weight: 500;
	color: var(--ink-2);
	line-height: 1.55;
}
.woocommerce-cart .cart_totals .shipping .shipping-calculator-button {
	display: inline-block;
	margin-top: 6px;
	color: var(--accent-d);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.woocommerce-cart .cart_totals .shipping .shipping-calculator-button:hover {
	color: var(--accent);
}
/* Toplam satırı vurgusu */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	border-top: 2px solid var(--ink);
	padding-top: 16px;
}
.woocommerce-cart .cart_totals .order-total th {
	font-weight: 800;
	font-size: 15px;
	color: var(--ink);
}
.woocommerce-cart .cart_totals .order-total td {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ink);
	line-height: 1.2;
}
.woocommerce-cart .cart_totals .order-total .includes_tax,
.woocommerce-cart .cart_totals .order-total td small {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	font-weight: 500;
	color: #8a8f98;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 15px 22px;
	border: 0;
	border-radius: 12px;
	/* WooCommerce sets its default purple with high specificity. */
	background: linear-gradient(180deg, #ff8a3d, var(--accent)) !important;
	color: #fff !important;
	font-family: var(--f);
	font-size: 15.5px;
	font-weight: 800;
	text-align: center;
	box-shadow: 0 10px 22px -8px rgb(255 117 31 / 55%);
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: linear-gradient(180deg, var(--accent), var(--accent-d)) !important;
}
/* The shipping calculator and the review form ship unstyled from WooCommerce;
   give their fields the same treatment as the rest of the theme's inputs. */
.woocommerce-cart .shipping-calculator-form .input-text,
.woocommerce-cart .shipping-calculator-form select,
.woo-page #review_form input[type="text"],
.woo-page #review_form input[type="email"],
.woo-page #review_form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 11px 13px;
	border: 1.5px solid var(--line);
	border-radius: 10px;
	background: #fff;
	font-family: var(--f);
	font-size: 15px;
	color: var(--ink);
}
.woocommerce-cart .shipping-calculator-form .input-text:focus,
.woocommerce-cart .shipping-calculator-form select:focus,
.woo-page #review_form input[type="text"]:focus,
.woo-page #review_form input[type="email"]:focus,
.woo-page #review_form textarea:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--accent-soft);
}
.woocommerce-cart .cart-empty {
	border-top-color: var(--accent);
	border-radius: 10px;
}
.woocommerce-cart .return-to-shop .button {
	display: inline-flex;
	padding: 13px 22px;
	border-radius: 12px;
	background: var(--accent);
	color: #fff;
	font-weight: 700;
}
.woocommerce-cart .return-to-shop .button:hover {
	background: var(--accent-d);
}

.woocommerce-checkout form.checkout .form-row label {
	font-size: 14px;
	font-weight: 600;
	color: var(--ink-2);
}
.woocommerce-checkout form.checkout .input-text,
.woocommerce-checkout form.checkout textarea,
.woocommerce-checkout form.checkout select {
	border: 1.5px solid var(--line);
	border-radius: 10px;
	padding: 11px 13px;
	min-height: 46px;
	font-family: var(--f);
	font-size: 15px;
	box-sizing: border-box;
}
.woocommerce-checkout form.checkout .input-text:focus,
.woocommerce-checkout form.checkout textarea:focus,
.woocommerce-checkout form.checkout select:focus {
	border-color: var(--accent);
	box-shadow: 0 0 0 3px var(--accent-soft);
	outline: none;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table {
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.woocommerce-checkout #payment {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 16px;
}
.woocommerce-checkout #place_order {
	width: 100%;
	padding: 15px 22px;
	border: none;
	border-radius: 12px;
	/* WooCommerce sets its default purple with high specificity. */
	background: linear-gradient(180deg, #ff8a3d, var(--accent)) !important;
	color: #fff !important;
	font-family: var(--f);
	font-size: 15.5px;
	font-weight: 700;
	box-shadow: 0 10px 22px -8px rgb(255 117 31 / 55%);
	transition:
		background 0.2s,
		transform 0.18s;
}
.woocommerce-checkout #place_order:hover {
	background: linear-gradient(
		180deg,
		var(--accent),
		var(--accent-d)
	) !important;
	transform: translateY(-1px);
}
/* ===== WooCommerce notices (added-to-cart etc.) ===== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0 0 24px;
	padding: 15px 18px;
	/* !important defeats WooCommerce's own full/top borders on these notices. */
	border: 1px solid var(--line) !important;
	border-left-width: 4px !important;
	border-radius: 12px !important;
	background: var(--surface);
	box-shadow: var(--sh);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--ink-2);
	list-style: none;
}
.woocommerce-message {
	border-left-color: var(--green) !important;
}
.woocommerce-info {
	border-left-color: var(--accent) !important;
}
.woocommerce-error {
	border-left-color: #e0483d !important;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	position: static;
	top: auto;
	left: auto;
	margin: 0;
	font-size: 18px;
	flex: none;
}
.woocommerce-message::before {
	color: var(--green);
}
.woocommerce-info::before {
	color: var(--accent-d);
}
.woocommerce-error::before {
	color: #e0483d;
}
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
	float: none;
	margin: 0 0 0 auto;
	padding: 9px 16px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--ink) !important;
	color: #fff !important;
	font-size: 13.5px;
	font-weight: 700;
}
.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover,
.woocommerce-error a.button:hover {
	background: var(--accent) !important;
}

/* ===== Stripe-style elite checkout ===== */
.woocommerce-checkout .entry-content {
	max-width: 1080px;
	margin: 0 auto;
}
.hukukup-checkout .co-grid {
	display: grid;
	grid-template-columns: 1.45fr 1fr;
	gap: 40px;
	align-items: start;
}
.hukukup-checkout .co-heading,
.hukukup-checkout .woocommerce-billing-fields > h3,
.hukukup-checkout .woocommerce-shipping-fields h3,
.hukukup-checkout .woocommerce-additional-fields > h3 {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.15rem;
	letter-spacing: -0.01em;
	margin: 0 0 16px;
	color: var(--ink);
}
/* Left column cards */
.hukukup-checkout .woocommerce-billing-fields,
.hukukup-checkout .woocommerce-shipping-fields,
.hukukup-checkout .woocommerce-additional-fields,
.hukukup-checkout .co-payment {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 18px;
}
.hukukup-checkout .woocommerce-additional-fields {
	margin-bottom: 18px;
}
/* Virtual courses need no shipping — hide the empty shipping card WooCommerce
   still outputs, so it doesn't show as a blank box. */
.hukukup-checkout .woocommerce-shipping-fields:not(:has(*)) {
	display: none;
}
/* Fields */
.hukukup-checkout .form-row {
	margin: 0 0 14px;
	padding: 0;
}
.hukukup-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ink-2);
}
.hukukup-checkout .form-row .required {
	color: var(--accent-d);
	text-decoration: none;
}
.hukukup-checkout .input-text,
.hukukup-checkout select,
.hukukup-checkout textarea,
.hukukup-checkout .select2-selection {
	width: 100%;
	box-sizing: border-box;
	border: 1.5px solid var(--line) !important;
	border-radius: 10px !important;
	background: var(--bg);
	font-family: var(--f);
	font-size: 15px;
	color: var(--ink);
}
.hukukup-checkout .input-text,
.hukukup-checkout textarea {
	padding: 12px 14px;
}
.hukukup-checkout .select2-container .select2-selection--single {
	height: 46px;
	display: flex;
	align-items: center;
	padding: 0 6px;
}
.hukukup-checkout select {
	height: 46px;
	padding: 0 12px;
}
.hukukup-checkout .input-text:focus,
.hukukup-checkout textarea:focus,
.hukukup-checkout select:focus {
	border-color: var(--accent) !important;
	box-shadow: 0 0 0 3px var(--accent-soft);
	outline: none;
}
/* `form.checkout` in the selector beats WooCommerce's own
   `.woocommerce form .form-row-first { width: 47% }`. */
form.checkout.hukukup-checkout .form-row-first,
form.checkout.hukukup-checkout .form-row-last {
	width: calc(50% - 7px);
	float: none;
	display: inline-block;
	vertical-align: top;
}
form.checkout.hukukup-checkout .form-row-first {
	margin-right: 12px;
}
/* Shipping toggle */
.hukukup-checkout .woocommerce-shipping-fields h3 label {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--ink);
	cursor: pointer;
}
/* Order summary (right, sticky) */
.hukukup-checkout .co-aside {
	position: sticky;
	top: 92px;
}
.hukukup-checkout .co-summary {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 24px 22px;
	box-shadow: var(--sh);
}
.hukukup-checkout .co-summary .shop_table {
	width: 100%;
	margin: 0;
	border: none;
	border-radius: 0;
}
.hukukup-checkout .co-summary .shop_table td,
.hukukup-checkout .co-summary .shop_table th {
	border: none;
	padding: 12px 0;
	background: none;
	vertical-align: top;
}
.hukukup-checkout .co-summary tbody .product-name {
	width: 100%;
}
.hukukup-checkout .co-summary tbody .product-total {
	padding-left: 12px;
	white-space: nowrap;
}
.hukukup-checkout .co-summary tbody tr:not(:last-child) td {
	border-bottom: 1px solid var(--line);
}
.hukukup-checkout .co-item {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
.hukukup-checkout .co-item-info {
	flex: 1;
	min-width: 0;
}
.hukukup-checkout .co-thumb {
	position: relative;
	width: 54px;
	height: 54px;
	flex: none;
}
.hukukup-checkout .co-thumb img {
	width: 54px;
	height: 54px;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid var(--line);
}
.hukukup-checkout .co-qty {
	position: absolute;
	top: -8px;
	right: -8px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	display: grid;
	place-items: center;
	border-radius: 100px;
	background: var(--ink);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}
.hukukup-checkout .co-item-name {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--ink);
}
.hukukup-checkout .co-summary .product-total,
.hukukup-checkout .co-summary tfoot td {
	text-align: right;
	font-weight: 700;
	font-size: 13.5px;
}
/* Shipping row: full-width, wrapping message (not clipped in the price column). */
.hukukup-checkout .co-summary tfoot tr.shipping th,
.hukukup-checkout .co-summary tfoot tr.shipping td {
	display: block;
	width: 100%;
	padding: 4px 0;
	text-align: left;
	white-space: normal;
	font-weight: 600;
	font-size: 13px;
}
.hukukup-checkout .co-summary tfoot tr.shipping th {
	color: var(--muted);
	padding-top: 12px;
}
.hukukup-checkout .co-summary tfoot tr.shipping .woocommerce-shipping-destination,
.hukukup-checkout .co-summary tfoot tr.shipping td {
	color: var(--muted);
	font-weight: 500;
}
.hukukup-checkout .co-summary tfoot th {
	text-align: left;
	font-weight: 600;
	color: var(--muted);
}
.hukukup-checkout .co-summary tfoot .order-total th {
	font-family: var(--fd);
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--ink);
	padding-top: 15px;
}
.hukukup-checkout .co-summary tfoot .order-total td {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ink);
	padding-top: 15px;
}
.hukukup-checkout .co-summary tfoot .order-total th,
.hukukup-checkout .co-summary tfoot .order-total td {
	border-top: 1.5px solid var(--line);
}
.hukukup-checkout .co-summary .order-total .includes_tax,
.hukukup-checkout .co-summary tfoot small {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--muted);
}
/* Payment box */
.hukukup-checkout .co-payment #payment {
	background: none;
	border: none;
	padding: 0;
	border-radius: 0;
}
.hukukup-checkout .co-payment ul.payment_methods {
	margin: 0 0 18px;
	padding: 6px;
	border: 1px solid var(--line);
	border-radius: 12px;
	list-style: none;
	background: var(--bg);
}
.hukukup-checkout .co-payment ul.payment_methods li {
	margin: 0;
	padding: 13px 14px;
	border-radius: 9px;
	list-style: none;
}
.hukukup-checkout .co-payment ul.payment_methods li:hover {
	background: var(--surface);
}
.hukukup-checkout .co-payment .payment_box {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: 14px 16px;
	margin: 4px 0 0;
	font-size: 13.5px;
	color: var(--muted);
}
.hukukup-checkout .co-payment .payment_box::before {
	display: none;
}
.hukukup-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 4px 0 18px;
	font-size: 13px;
}
.hukukup-checkout .place-order {
	padding: 0;
	margin: 0;
}

@media (max-width: 900px) {
	.hukukup-checkout .co-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.hukukup-checkout .co-aside {
		position: static;
		order: -1;
	}
}

/* ==========================================================================
   MOBILE
   Everything below refines the small-screen experience. It is deliberately the
   last block in the file so it wins over the earlier per-component media
   queries at equal specificity.
   ========================================================================== */

/* --- Touch input -------------------------------------------------------- */

/*
 * :hover on a touch screen latches after a tap and stays until the next tap
 * elsewhere, so a tapped card stays lifted and shadowed. Neutralise the lift
 * effects on pointer-less devices and give tactile press feedback instead.
 */
@media (hover: none) {
	.btn-primary:hover,
	.btn-ink:hover,
	.course:hover,
	.feat:hover,
	.teach:hover,
	.woo-page ul.products li.product:hover,
	.woo-page a.button:hover,
	.woo-page button.button:hover,
	.woo-page input.button:hover,
	.woo-page .summary button.single_add_to_cart_button:hover,
	.woocommerce-account .woocommerce button.button:hover,
	.woocommerce-account .woocommerce input.button:hover,
	.woocommerce-account .woocommerce a.button:hover,
	.woocommerce-checkout #place_order:hover {
		transform: none;
	}
	.course:hover,
	.teach:hover,
	.woo-page ul.products li.product:hover {
		box-shadow: none;
	}

	.btn:active,
	.chip:active,
	.cart-link:active,
	button.item:active,
	.course:active,
	.woo-page ul.products li.product:active {
		transform: scale(0.985);
	}
}

/* Anything tappable gets a real hit area rather than a text-sized one. */
@media (max-width: 980px) {
	.btn {
		min-height: var(--tap);
	}
	.btn-sm {
		min-height: var(--tap);
		padding: 11px 16px;
	}
	.btn-lg {
		min-height: 50px;
	}
	.chip {
		min-height: var(--tap);
		padding: 10px 18px;
	}
	.woo-page ul.products li.product .button {
		min-height: var(--tap);
	}
	button.item {
		min-height: 40px;
		padding: 8px 2px;
	}
	.back-link {
		min-height: var(--tap);
	}
	.ai > button,
	.fq > button {
		min-height: 58px;
	}
	.foot-col a {
		padding: 11px 0;
	}
	.brand-logo {
		min-height: var(--tap);
	}
	.pw-toggle {
		width: var(--tap);
		height: var(--tap);
		right: 4px;
	}
	.auth-body .show-password-input,
	.hukukup-checkout .show-password-input,
	.woocommerce-checkout .show-password-input {
		display: grid;
		place-items: center;
		width: var(--tap);
		height: var(--tap);
		right: 4px;
	}
	/*
	 * Inline links inside running text: vertical padding on an inline box
	 * enlarges the hit area without changing line height, so the type stays
	 * where it is. `.auth-link` and the shipping toggle are inline-block, so
	 * they need the padding cancelled by an equal negative margin instead.
	 */
	.woocommerce-breadcrumb a,
	.woo-page .summary .product_meta a {
		padding: 12px 0;
	}
	.auth-link,
	.woocommerce-cart .cart_totals .shipping .shipping-calculator-button {
		padding-top: 13px;
		padding-bottom: 13px;
		margin-top: -13px;
		margin-bottom: -13px;
	}
	.woocommerce-cart .cart_totals .shipping .shipping-calculator-button {
		margin-top: -7px;
	}
	.auth-consent input,
	.auth-body .woocommerce-form-login__rememberme input {
		width: 22px;
		height: 22px;
	}
	.woocommerce-cart .product-remove a.remove {
		width: var(--tap);
		height: var(--tap);
		font-size: 22px;
	}
}

/*
 * iOS Safari zooms the whole page in when a focused field's text is under
 * 16px, and never zooms back out. Every text-entry control is pinned to 16px
 * on small screens for that reason alone.
 */
/*
 * Each selector below mirrors the rule that sets the field's desktop size, so
 * it wins on identical specificity by coming later in the file. A single
 * catch-all `input` rule would lose to the more specific WooCommerce overrides.
 */
@media (max-width: 980px) {
	.contact-form input,
	.contact-form textarea,
	.auth-form input[type="text"],
	.auth-form input[type="email"],
	.auth-form input[type="password"],
	.hukukup-checkout .input-text,
	.hukukup-checkout select,
	.hukukup-checkout textarea,
	.hukukup-checkout .select2-selection,
	.woocommerce-account .woocommerce .input-text,
	.woocommerce-account .woocommerce input[type="text"],
	.woocommerce-account .woocommerce input[type="email"],
	.woocommerce-account .woocommerce input[type="password"],
	.woocommerce-account .auth-body .woocommerce .input-text,
	.woocommerce-checkout form.checkout .input-text,
	.woocommerce-checkout form.checkout select,
	.woocommerce-checkout form.checkout textarea,
	.woo-page .quantity input.qty,
	.woo-page .summary .quantity .qty,
	.woocommerce-cart .quantity .qty,
	.woocommerce-cart td.actions .coupon .input-text,
	.woocommerce-cart .shipping-calculator-form .input-text,
	.woocommerce-cart .shipping-calculator-form select,
	.woo-page #review_form input[type="text"],
	.woo-page #review_form input[type="email"],
	.woo-page #review_form textarea {
		font-size: 16px;
	}
	.contact-form input,
	.contact-form textarea,
	.auth-form input[type="text"],
	.auth-form input[type="email"],
	.auth-form input[type="password"],
	.hukukup-checkout .input-text,
	.hukukup-checkout textarea,
	.woocommerce-account .woocommerce .input-text,
	.woocommerce-cart .shipping-calculator-form .input-text,
	.woocommerce-cart .shipping-calculator-form select,
	.woo-page #review_form input[type="text"],
	.woo-page #review_form input[type="email"] {
		min-height: 48px;
	}
	.contact-form textarea,
	.hukukup-checkout textarea {
		min-height: 120px;
	}
}

/* --- Header ------------------------------------------------------------- */

@media (max-width: 980px) {
	:root {
		--header-h: 60px;
		--header-h-scroll: 76px;
	}

	header {
		padding-left: env(safe-area-inset-left);
		padding-right: env(safe-area-inset-right);
	}
	.nav {
		height: var(--header-h);
		gap: 12px;
	}
	.brand-logo .logo-svg {
		height: 32px;
	}

	/*
	 * The account link and the primary CTA are both duplicated inside the
	 * drawer, so out here only the cart survives — as an icon with a badge.
	 * Previously all three stayed visible and pushed the menu button clean off
	 * the right edge of the screen.
	 */
	.nav-actions {
		margin-left: auto;
		gap: 4px;
	}
	.nav-actions .login,
	.nav-actions .btn {
		display: none;
	}
	.cart-link {
		position: relative;
		width: var(--tap);
		height: var(--tap);
		padding: 0;
		justify-content: center;
		border-color: transparent;
	}
	.cart-label {
		display: none;
	}
	.cart-count {
		position: absolute;
		top: 4px;
		right: 2px;
		min-width: 17px;
		height: 17px;
		padding: 0 4px;
		font-size: 10px;
		/* Ring in the header colour so the badge reads clearly over the icon. */
		box-shadow: 0 0 0 2px var(--bg);
	}
	.menu-btn {
		display: grid;
		place-items: center;
		width: var(--tap);
		height: var(--tap);
		margin-left: 0;
		padding: 0;
		border-radius: 12px;
	}
}

/* --- Hero --------------------------------------------------------------- */

@media (max-width: 980px) {
	.hero {
		padding: 34px 0 48px;
	}
	.hero-grid {
		gap: 26px;
	}
	/*
	 * `.mark` is nowrap so its brush underline tracks the text, which made the
	 * headline wider than the phone at the old 2.5rem floor. Scaling with the
	 * viewport keeps the single line inside the gutters instead.
	 */
	.hero h1 {
		font-size: clamp(1.85rem, 8.4vw, 3.4rem);
		margin: 14px 0 16px;
	}
	/* No bleed past the text: at phone widths the headline nearly fills the
	   gutter, so the 1% overhang would be clipped mid-stroke. */
	.hero h1 .mark .brush {
		left: 0;
		right: 0;
		bottom: -7px;
		width: 100%;
		height: 12px;
	}
	.hero-sub {
		font-size: 1.02rem;
		max-width: none;
		margin-bottom: 22px;
	}
	.hero-cta {
		gap: 10px;
		margin-bottom: 20px;
	}
	.assure {
		gap: 8px 16px;
	}

	.stage {
		display: block;
		min-height: 0;
		margin-top: 0;
	}
	.blob {
		display: none;
	}
	.roadmap {
		max-width: none;
		padding: 20px 18px 18px;
	}
	/*
	 * The floating cards are positioned against a tall desktop stage; on a
	 * phone they landed on top of the roadmap and hid its last two rows, so
	 * they drop back into normal flow underneath it.
	 */
	.float {
		position: static;
		width: auto;
		margin-top: 12px;
		scale: 1;
	}
}

@media (max-width: 420px) {
	.hero-cta {
		display: grid;
		grid-template-columns: 1fr;
	}
	.hero-cta .btn {
		justify-content: center;
	}
}

/* --- Sections and headings ---------------------------------------------- */

@media (max-width: 640px) {
	.section {
		padding: 52px 0;
	}
	.head {
		margin-bottom: 22px;
	}
	.head h2,
	.center h2 {
		font-size: clamp(1.55rem, 6.6vw, 2.2rem);
	}
	.head p,
	.center p {
		font-size: 1rem;
	}
	.center {
		margin-bottom: 28px;
	}
	.page-hero {
		padding: 32px 0 6px;
	}
	.page-hero h1 {
		font-size: clamp(1.7rem, 7.2vw, 2.4rem);
	}
	.page-hero p {
		font-size: 1rem;
	}

	.steps-grid,
	.grid,
	.v-grid,
	.teach-grid,
	.feat-grid {
		gap: 16px;
	}
	.step,
	.teach,
	.v {
		padding: 22px 20px;
	}
	.feat {
		padding: 22px 20px;
	}

	.stats {
		padding: 30px 20px;
		border-radius: 20px;
	}
	.stats-grid {
		gap: 26px 16px;
	}
	.cta-band {
		padding: 40px 22px;
		border-radius: 20px;
	}
	.cta-band h2 {
		font-size: clamp(1.7rem, 7.2vw, 2.4rem);
	}
	.cta-band p {
		font-size: 1rem;
		margin-bottom: 22px;
	}
	.cta-band .hero-cta,
	.cta-band .btn {
		justify-content: center;
	}

	.acc,
	.faq {
		gap: 10px;
	}
	.ai > button,
	.fq > button {
		gap: 10px;
		padding: 16px;
	}
	.ai .t,
	.fq > button {
		font-size: 15px;
	}
	.ai .mt {
		display: none;
	}
	.ai .pin,
	.fq .pin {
		padding: 0 16px 16px;
	}
}

/* Narrow phones: tighten the gutter so cards keep their internal breathing
   room instead of losing it to page padding. */
@media (max-width: 380px) {
	:root {
		--gutter: 16px;
	}
}

/* --- Cards -------------------------------------------------------------- */

@media (max-width: 640px) {
	.c-body {
		padding: 15px 15px 16px;
	}
	.c-foot {
		gap: 12px;
		flex-wrap: wrap;
	}
	.product-card .c-body h3 {
		font-size: 15.5px;
	}
	.filters {
		gap: 8px;
		margin-bottom: 22px;
	}
}

/* --- Footer ------------------------------------------------------------- */

@media (max-width: 640px) {
	footer {
		padding: 38px 0 calc(22px + env(safe-area-inset-bottom));
	}
	.foot-top {
		grid-template-columns: 1fr 1fr;
		gap: 24px 18px;
		padding-bottom: 26px;
	}
	.foot-brand {
		grid-column: 1 / -1;
	}
	.foot-brand p {
		max-width: none;
	}
	.foot-bot {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
}

/* --- Contact ------------------------------------------------------------ */

@media (max-width: 640px) {
	.contact-info,
	.contact-form {
		padding: 22px 18px;
		border-radius: 16px;
	}
	.contact-form .btn {
		justify-self: stretch;
		justify-content: center;
	}
}

/* --- Auth (login / register / free trial) -------------------------------- */

@media (max-width: 860px) {
	/* Form first: the brand panel is tall, and burying the login fields under
	   it means scrolling past a full screen of marketing to sign in. */
	.auth-forms {
		order: -1;
	}
}

@media (max-width: 640px) {
	.auth {
		padding: 24px 0 48px;
	}
	.auth-shell {
		border-radius: 20px;
	}
	.auth-brand {
		padding: 26px 20px;
		gap: 18px;
	}
	.auth-headline {
		font-size: clamp(1.45rem, 6.4vw, 2rem);
	}
	.auth-lead {
		max-width: none;
	}
	.auth-forms {
		padding: 26px 20px;
		gap: 18px;
	}
	.auth-head .auth-title {
		font-size: 1.45rem;
	}
	.auth-submit,
	.woocommerce-account .auth-body .woocommerce button.button {
		min-height: 52px;
	}
}

/* --- WooCommerce: product detail ---------------------------------------- */

@media (max-width: 640px) {
	.woo-page .product-top .summary {
		padding: 20px 16px;
		border-radius: 16px;
	}
	.woo-page .product-top .woocommerce-product-gallery img {
		border-radius: 14px;
	}
	/* Full-width primary CTA; the quantity field is often hidden (single-sale
	   products), which left the button floating mid-row. */
	.woo-page .summary form.cart {
		flex-direction: column;
		align-items: stretch;
	}
	.woo-page .summary .quantity .qty {
		width: 100%;
	}
	.woo-page .summary button.single_add_to_cart_button,
	.woo-page .summary button.single_add_to_cart_button.alt {
		/* `flex: 1 1 200px` sizes the main axis, which is now vertical — it
		   would make the button 200px tall. */
		flex: none;
		width: 100%;
		min-height: 52px;
	}
	/* Tabs scroll sideways rather than stacking into a tall pile of pills. */
	.woo-page div.product .woocommerce-tabs ul.tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		margin-bottom: 18px;
		padding-bottom: 2px;
	}
	.woo-page div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
		display: none;
	}
	.woo-page div.product .woocommerce-tabs ul.tabs li {
		flex: none;
	}
	.woo-page div.product .woocommerce-tabs ul.tabs li a {
		display: block;
		min-height: var(--tap);
		padding: 11px 16px;
		white-space: nowrap;
	}
	.woo-page .woocommerce-Tabs-panel table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
	}
}

/* --- WooCommerce: cart --------------------------------------------------- */

/*
 * WooCommerce's small-screen stylesheet flattens the cart table into stacked
 * rows with `!important`, which fights the card styling above and drops the
 * product thumbnail. These rules re-form each line item as a proper card.
 */
@media (max-width: 768px) {
	.woocommerce-cart table.shop_table.shop_table_responsive {
		border: 0;
		border-radius: 0;
		background: none;
		overflow: visible;
	}
	.woocommerce-cart table.shop_table.shop_table_responsive tbody tr.cart_item {
		display: block;
		position: relative;
		margin-bottom: 12px;
		padding: 14px 16px 8px;
		background: var(--surface);
		border: 1px solid var(--line);
		border-radius: 16px;
	}
	.woocommerce-cart table.shop_table.shop_table_responsive tbody tr.cart_item td {
		padding: 10px 0 !important;
		border: 0 !important;
		border-top: 1px solid var(--line) !important;
		font-size: 14px;
	}
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td::before {
		float: none !important;
		color: var(--muted);
		font-weight: 600;
	}
	/* Label left / value right on one line. */
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-price,
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-quantity,
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-subtotal {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		text-align: right !important;
	}
	/* Thumbnail and title lead the card, with no data-title prefix. */
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-thumbnail {
		display: block !important;
		width: auto;
		padding-top: 0 !important;
		padding-bottom: 10px !important;
		border-top: 0 !important;
		text-align: left !important;
	}
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-thumbnail::before,
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-name::before {
		display: none !important;
	}
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-thumbnail
		img {
		display: block;
		width: 72px;
		height: 72px;
	}
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-name {
		padding-top: 0 !important;
		padding-right: 44px !important;
		border-top: 0 !important;
		text-align: left !important;
		font-size: 15px;
		font-weight: 700;
		line-height: 1.35;
	}
	/* Remove sits in the card's top-right corner as a full-size target. */
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-remove {
		position: absolute;
		top: 8px;
		right: 8px;
		padding: 0 !important;
		border: 0 !important;
	}
	.woocommerce-cart
		table.shop_table.shop_table_responsive
		tbody
		tr.cart_item
		td.product-remove::before {
		display: none !important;
	}
	.woocommerce-cart .quantity .qty {
		width: 88px;
	}

	/* Coupon + update actions stack full width. */
	.woocommerce-cart table.shop_table.shop_table_responsive td.actions {
		display: block !important;
		padding: 0 !important;
		border: 0 !important;
		text-align: left !important;
	}
	.woocommerce-cart table.shop_table.shop_table_responsive td.actions::before {
		display: none !important;
	}
	.woocommerce-cart td.actions .coupon {
		display: flex;
		gap: 8px;
		margin-bottom: 10px;
	}
	.woocommerce-cart td.actions .coupon .input-text {
		flex: 1;
		min-width: 0;
		margin-right: 0;
		min-height: 48px;
	}
	.woocommerce-cart td.actions .button {
		min-height: 48px;
		width: 100%;
	}
	.woocommerce-cart td.actions .coupon .button {
		width: auto;
		flex: none;
	}
	.woocommerce-cart .cart_totals {
		padding: 22px 18px;
	}
	.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
		min-height: 54px;
	}
}

/* --- WooCommerce: checkout ---------------------------------------------- */

@media (max-width: 640px) {
	/* Two half-width columns leave ~140px per field on a phone; stack them. */
	form.checkout.hukukup-checkout .form-row-first,
	form.checkout.hukukup-checkout .form-row-last {
		width: 100%;
		margin-right: 0;
		display: block;
	}
	.hukukup-checkout .woocommerce-billing-fields,
	.hukukup-checkout .woocommerce-shipping-fields,
	.hukukup-checkout .woocommerce-additional-fields,
	.hukukup-checkout .co-payment,
	.hukukup-checkout .co-summary {
		padding: 18px 16px;
		border-radius: 14px;
	}
	.hukukup-checkout .co-summary .shop_table td,
	.hukukup-checkout .co-summary .shop_table th {
		padding: 10px 0;
	}
	.hukukup-checkout .co-thumb,
	.hukukup-checkout .co-thumb img {
		width: 48px;
		height: 48px;
	}
	/* `anywhere` (unlike `break-word`) also lowers the element's min-content
	   width, which is what stops a long course title from widening the summary
	   table past the screen. */
	.hukukup-checkout .co-item-name,
	.woocommerce-cart table.shop_table.shop_table_responsive td.product-name {
		overflow-wrap: anywhere;
	}
	.hukukup-checkout .co-payment ul.payment_methods li {
		padding: 14px 12px;
	}
	.woocommerce-checkout #place_order {
		min-height: 54px;
	}
	.woocommerce-message,
	.woocommerce-info,
	.woocommerce-error {
		padding: 14px 15px;
		font-size: 14px;
	}
	.woocommerce-message a.button,
	.woocommerce-info a.button,
	.woocommerce-error a.button {
		margin-left: 0;
		min-height: var(--tap);
		display: inline-flex;
		align-items: center;
	}
}

/* --- WooCommerce: my account -------------------------------------------- */

@media (max-width: 720px) {
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		gap: 6px;
		margin-bottom: 16px;
		scrollbar-width: none;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation ul li {
		flex: none;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
		white-space: nowrap;
	}
	.woocommerce-account .woocommerce-MyAccount-content {
		padding: 20px 16px;
	}
	/* Order/download tables are wider than a phone; give them their own
	   horizontal scroller instead of stretching the page. */
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
	}
}

/* --- Detail pages -------------------------------------------------------- */

@media (max-width: 640px) {
	.detail-grid {
		gap: 24px;
	}
	.detail-buy .buy-body {
		padding: 18px;
	}
	.detail-cover {
		height: 140px;
	}
}

/* --- Resource articles --------------------------------------------------- */

@media (max-width: 1024px) {
	/* Not enough room for a side rail: the contents collapse above the text. */
	.article-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.article-toc {
		position: static;
		max-height: none;
	}
	.toc-box {
		padding: 14px 16px;
		border: 1px solid var(--line);
		border-radius: 14px;
		background: #fff;
	}
	.toc-box > summary {
		margin-bottom: 0;
	}
	.toc-box[open] > summary {
		margin-bottom: 10px;
	}
	.article-body,
	.article-body .entry-content {
		max-width: none;
	}
	.related-list,
	.hub-list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 860px) {
	.resource-row {
		grid-template-columns: 112px minmax(0, 1fr);
		gap: 16px;
		padding: 18px 0;
	}
	.resource-row.is-featured {
		grid-template-columns: 1fr;
		gap: 16px;
		padding-bottom: 24px;
	}
	.resource-row.is-featured .row-media {
		aspect-ratio: 16 / 9;
	}
	.row-title {
		font-size: 17px;
	}
	.resource-row.is-featured .row-title {
		font-size: 1.4rem;
	}
	.row-excerpt {
		font-size: 14px;
	}
}

@media (max-width: 560px) {
	/*
	 * A 16:9 thumbnail this narrow would be an unreadable sliver, so the phone
	 * list drops to text only — the featured block keeps its cover.
	 */
	.resource-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
		padding: 16px 0;
	}
	.resource-row:not(.is-featured) .row-media {
		display: none;
	}
	.resource-row:not(.is-featured) .row-more {
		display: none;
	}
	.row-meta {
		gap: 4px 10px;
		font-size: 12px;
	}
}

@media (max-width: 720px) {
	.article-head {
		padding: 22px 0 20px;
	}
	.article-head h1 {
		max-width: none;
	}
	.article-lead {
		font-size: 16px;
	}
	.article-body .entry-content {
		font-size: 16.5px;
	}
	.related-list,
	.hub-list {
		grid-template-columns: 1fr;
	}
	.related-head,
	.hub-head {
		flex-direction: column;
		align-items: flex-start;
	}
	.resource-cta {
		flex-direction: column;
		align-items: flex-start;
		padding: 22px;
	}
	.resource-cta-actions .btn {
		min-height: var(--tap);
	}
	.share-btn span {
		display: none;
	}
	.share-btn {
		width: var(--tap);
		justify-content: center;
		padding: 0;
	}
	.share-copy span {
		display: none;
	}
}

/* --- Landscape phones ---------------------------------------------------- */

@media (max-height: 480px) and (orientation: landscape) {
	.hero {
		padding: 24px 0 32px;
	}
	.section {
		padding: 40px 0;
	}
	.drawer-panel {
		padding-top: 8px;
	}
	.drawer-nav a {
		min-height: 44px;
		padding: 8px 14px;
	}
}
