/* JBS Theme Child — shared base (buttons, forms, cards) — DSDT brand */

html {
	height: 100%;
}

body,
button,
input,
select,
textarea {
	font-family: var(--jbs-font);
}

body {
	color: var(--jbs-text);
	background: var(--jbs-page-bg);
	font-weight: var(--jbs-font-weight-light);
}

/* Sticky footer: keep site footer pinned to the viewport bottom on short pages. */
body.jbs-theme-child {
	min-height: 100%;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}

body.jbs-theme-child #jbs-main.jbs-site-main {
	flex: 1 0 auto;
	width: 100%;
	/* Keeps breathing room above the footer on both short and long pages. */
	padding-bottom: var(--jbs-section-pad, clamp(2.75rem, 4.5vw, 4rem));
}

body.jbs-theme-child .jbs-site-footer {
	flex-shrink: 0;
	width: 100%;
	margin-top: auto;
}

h1,
h2,
h3,
h4,
h5,
h6,
.jbs-section-title,
.jbs-udemy-card__title,
.jbs-search-results__title {
	font-family: var(--jbs-font-display);
	font-weight: var(--jbs-font-weight-bold);
}

.jbs-udemy-header__brand-text {
	font-family: var(--jbs-font-display);
	font-weight: var(--jbs-font-weight-bold);
}

p,
li,
.jbs-section-subtitle,
.jbs-udemy-card__instructor,
.jbs-udemy-card__ratings-count,
.jbs-search-results__count,
.jbs-search-results__empty {
	font-family: var(--jbs-font);
	font-weight: var(--jbs-font-weight-light);
}

button,
input,
select,
textarea {
	font-weight: 400;
}

/*
 * Section headings — neutral by default (navy on light surfaces).
 * Brand blue is reserved for eyebrows, links, primary buttons, and stat values
 * so it reads as an accent rather than dominating every section.
 */
.jbs-section-title,
.jbs-cta__title {
	font-weight: var(--jbs-font-weight-bold);
	color: var(--dsdt-navy);
	letter-spacing: -0.01em;
	line-height: 1.2;
}

.jbs-section-title {
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	margin: 0 0 var(--jbs-space-3);
}

/* Inverse context: dark navy or photographic backgrounds use white headings. */
.jbs-section--inverse .jbs-section-title,
.jbs-section--inverse .jbs-cta__title,
.jbs-cta--image .jbs-cta__title,
.jbs-cta--navy .jbs-cta__title,
.jbs-hero-slide .jbs-hero__title {
	color: var(--dsdt-white);
}

.jbs-section--inverse .jbs-section-desc,
.jbs-section--inverse .jbs-section-subtitle,
.jbs-section--inverse .jbs-cta__desc,
.jbs-cta--image .jbs-cta__desc,
.jbs-cta--navy .jbs-cta__desc {
	color: color-mix(in srgb, var(--dsdt-white) 82%, transparent);
}

@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.jbs-section--inverse .jbs-section-desc,
	.jbs-section--inverse .jbs-section-subtitle,
	.jbs-section--inverse .jbs-cta__desc,
	.jbs-cta--image .jbs-cta__desc,
	.jbs-cta--navy .jbs-cta__desc {
		color: rgba(255, 255, 255, 0.82);
	}
}

.jbs-hero__title {
	font-weight: var(--jbs-font-weight-bold);
}

.jbs-cta__desc {
	color: var(--jbs-muted);
}

/* Eyebrow: small blue label — the intentional accent above a heading. */
.jbs-eyebrow {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--jbs-accent);
	margin: 0 0 var(--jbs-space-2);
}

.jbs-section--inverse .jbs-eyebrow,
.jbs-hero-slide .jbs-eyebrow {
	color: color-mix(in srgb, var(--dsdt-white) 85%, transparent);
}

@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.jbs-section--inverse .jbs-eyebrow,
	.jbs-hero-slide .jbs-eyebrow {
		color: rgba(255, 255, 255, 0.85);
	}
}

.jbs-btn,
.jbs-theme-child .tutor-btn-primary,
.jbs-theme-child .tutor-btn.tutor-btn-primary,
.jbs-theme-child .button,
.jbs-theme-child .button-primary {
	font-weight: var(--jbs-font-weight-bold);
}

.jbs-btn,
.jbs-theme-child .tutor-btn-primary,
.jbs-theme-child .tutor-btn.tutor-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.75rem 1.5rem;
	border-radius: 0;
	border: 1px solid var(--jbs-accent);
	background: var(--jbs-accent);
	color: var(--dsdt-white) !important;
	font-family: var(--jbs-font);
	font-weight: var(--jbs-font-weight-bold);
	font-size: 0.95rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.jbs-btn:hover,
.jbs-theme-child .tutor-btn-primary:hover {
	background: var(--jbs-accent-hover);
	border-color: var(--jbs-accent-hover);
}

.jbs-btn:focus-visible,
.jbs-theme-child .tutor-btn-primary:focus-visible {
	outline: none;
	box-shadow: var(--jbs-shadow-sm), var(--jbs-focus-ring);
}

.jbs-btn--secondary {
	background: var(--jbs-secondary);
	border-color: var(--jbs-secondary);
	box-shadow: none;
}

.jbs-btn--secondary:hover {
	background: color-mix(in srgb, var(--dsdt-navy) 88%, white);
	border-color: color-mix(in srgb, var(--dsdt-navy) 88%, white);
}

@supports not (color: color-mix(in srgb, red 50%, blue)) {
	.jbs-btn--secondary:hover {
		background: #0a1a33;
		border-color: #0a1a33;
	}
}

/* Outline: neutral secondary action on light surfaces. */
.jbs-btn--outline,
.jbs-section a.jbs-btn--outline,
.jbs-site-main a.jbs-btn--outline {
	background: transparent;
	color: var(--jbs-text) !important;
	border: 1px solid var(--jbs-text);
	box-shadow: none;
}

.jbs-btn--outline:hover {
	background: var(--jbs-surface-alt);
	border-color: var(--jbs-text);
}

/* Outline on dark / photographic backgrounds.
 * Must beat `.jbs-section a.jbs-btn--outline { color: text }` or the label stays navy-on-navy. */
.jbs-section--inverse a.jbs-btn--outline,
.jbs-section.jbs-cta--image a.jbs-btn--outline,
.jbs-section.jbs-cta--navy a.jbs-btn--outline,
.jbs-hero-slide a.jbs-btn--outline,
.jbs-section--inverse .jbs-btn--outline,
.jbs-cta--image .jbs-btn--outline,
.jbs-cta--navy .jbs-btn--outline,
.jbs-hero-slide .jbs-btn--outline {
	color: var(--dsdt-white) !important;
	border-color: rgba(255, 255, 255, 0.85);
	background: transparent;
}

.jbs-section--inverse a.jbs-btn--outline:hover,
.jbs-section.jbs-cta--image a.jbs-btn--outline:hover,
.jbs-section.jbs-cta--navy a.jbs-btn--outline:hover,
.jbs-hero-slide a.jbs-btn--outline:hover,
.jbs-section--inverse .jbs-btn--outline:hover,
.jbs-cta--image .jbs-btn--outline:hover,
.jbs-cta--navy .jbs-btn--outline:hover,
.jbs-hero-slide .jbs-btn--outline:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--dsdt-white);
	color: var(--dsdt-white) !important;
}

/* Ghost: quiet action (used on hero slides and inline card CTAs). */
.jbs-btn--ghost,
.jbs-section a.jbs-btn--ghost,
.jbs-site-main a.jbs-btn--ghost {
	background: transparent;
	color: var(--jbs-text) !important;
	border: 1px solid var(--jbs-text);
	box-shadow: none;
}

.jbs-btn--ghost:hover {
	background: var(--jbs-surface-alt);
	border-color: var(--jbs-text);
}

.jbs-hero-slide a.jbs-btn--ghost,
.jbs-hero a.jbs-btn--ghost {
	color: var(--dsdt-white) !important;
	border-color: rgba(255, 255, 255, 0.85);
}

.jbs-hero-slide a.jbs-btn--ghost:hover,
.jbs-hero a.jbs-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--dsdt-white);
}

/*
 * WordPress .button → theme button system (frontend).
 * Beat .wp-core-ui .button (Tutor/WP buttons.css) on dashboard surfaces.
 */
.jbs-theme-child .button,
.jbs-theme-child button.button,
.jbs-theme-child a.button,
.jbs-theme-child input.button,
.jbs-theme-child input[type="submit"].button,
.jbs-theme-child input[type="button"].button,
.jbs-theme-child.wp-core-ui .button,
.jbs-theme-child .wp-core-ui .button,
.jbs-theme-child .tutor-dashboard .button,
.jbs-theme-child .tutor-dashboard button.button,
.jbs-theme-child .tutor-dashboard a.button,
.jbs-theme-child .am-dashboard-panel .button,
.jbs-theme-child .am-dashboard-panel button.button,
.jbs-theme-child .am-actions .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	box-sizing: border-box;
	padding: 0.65rem 1.1rem !important;
	min-height: 2.5rem !important;
	height: auto !important;
	line-height: 1.2 !important;
	border-radius: 0 !important;
	border: 1px solid var(--jbs-border) !important;
	background: var(--jbs-surface) !important;
	color: var(--jbs-ink) !important;
	font-family: var(--jbs-font) !important;
	font-weight: 700 !important;
	font-size: 0.875rem !important;
	letter-spacing: 0;
	text-decoration: none !important;
	text-shadow: none !important;
	cursor: pointer;
	box-shadow: none !important;
	white-space: nowrap;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.jbs-theme-child .button:hover,
.jbs-theme-child .button:focus,
.jbs-theme-child button.button:hover,
.jbs-theme-child button.button:focus,
.jbs-theme-child a.button:hover,
.jbs-theme-child a.button:focus,
.jbs-theme-child input.button:hover,
.jbs-theme-child input.button:focus,
.jbs-theme-child.wp-core-ui .button:hover,
.jbs-theme-child .wp-core-ui .button:hover,
.jbs-theme-child .tutor-dashboard .button:hover,
.jbs-theme-child .am-dashboard-panel .button:hover,
.jbs-theme-child .am-actions .button:hover {
	background: #f8fafc !important;
	border-color: var(--jbs-muted) !important;
	color: var(--jbs-ink) !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

.jbs-theme-child .button:focus-visible,
.jbs-theme-child button.button:focus-visible,
.jbs-theme-child a.button:focus-visible {
	outline: none;
	box-shadow: var(--jbs-focus-ring) !important;
}

.jbs-theme-child .button-primary,
.jbs-theme-child .button.button-primary,
.jbs-theme-child button.button-primary,
.jbs-theme-child a.button-primary,
.jbs-theme-child input.button-primary,
.jbs-theme-child.wp-core-ui .button-primary,
.jbs-theme-child .wp-core-ui .button-primary,
.jbs-theme-child .tutor-dashboard .button-primary,
.jbs-theme-child .am-dashboard-panel .button-primary {
	background: var(--jbs-accent) !important;
	border-color: var(--jbs-accent) !important;
	color: var(--dsdt-white) !important;
}

.jbs-theme-child .button-primary:hover,
.jbs-theme-child .button-primary:focus,
.jbs-theme-child .button.button-primary:hover,
.jbs-theme-child .button.button-primary:focus,
.jbs-theme-child button.button-primary:hover,
.jbs-theme-child button.button-primary:focus,
.jbs-theme-child a.button-primary:hover,
.jbs-theme-child a.button-primary:focus,
.jbs-theme-child input.button-primary:hover,
.jbs-theme-child input.button-primary:focus,
.jbs-theme-child.wp-core-ui .button-primary:hover,
.jbs-theme-child .wp-core-ui .button-primary:hover,
.jbs-theme-child .tutor-dashboard .button-primary:hover,
.jbs-theme-child .am-dashboard-panel .button-primary:hover {
	background: var(--jbs-accent-hover) !important;
	border-color: var(--jbs-accent-hover) !important;
	color: var(--dsdt-white) !important;
}

.jbs-theme-child .button-small,
.jbs-theme-child .button.button-small,
.jbs-theme-child.wp-core-ui .button-small,
.jbs-theme-child .wp-core-ui .button-small,
.jbs-theme-child .tutor-dashboard .button-small,
.jbs-theme-child .am-actions .button-small {
	padding: 0.45rem 0.85rem !important;
	min-height: 2.125rem !important;
	font-size: 0.8125rem !important;
}

.jbs-theme-child .button-link-delete,
.jbs-theme-child .button.button-link-delete,
.jbs-theme-child.wp-core-ui .button-link-delete,
.jbs-theme-child .wp-core-ui .button-link-delete,
.jbs-theme-child .tutor-dashboard .button-link-delete,
.jbs-theme-child .am-actions .button-link-delete {
	background: transparent !important;
	border-color: transparent !important;
	color: var(--jbs-danger) !important;
	box-shadow: none !important;
	min-height: 0 !important;
	padding: 0.35rem 0.5rem !important;
}

.jbs-theme-child .button-link-delete:hover,
.jbs-theme-child .button-link-delete:focus,
.jbs-theme-child .button.button-link-delete:hover,
.jbs-theme-child .button.button-link-delete:focus,
.jbs-theme-child .tutor-dashboard .button-link-delete:hover,
.jbs-theme-child .am-actions .button-link-delete:hover {
	background: rgba(211, 47, 47, 0.08) !important;
	border-color: transparent !important;
	color: var(--jbs-danger) !important;
}

.jbs-theme-child .button:disabled,
.jbs-theme-child .button.disabled,
.jbs-theme-child button.button:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}

/* Compact action clusters in tables */
.jbs-theme-child .tutor-dashboard .am-table .button,
.jbs-theme-child .tutor-dashboard table .button,
.jbs-theme-child .am-actions .button {
	vertical-align: middle;
	margin: 0 0.35rem 0.25rem 0;
}

/* Section lead text — one treatment for both parent (.jbs-section-desc) and child (.jbs-section-subtitle). */
.jbs-section-subtitle,
.jbs-section-desc {
	margin: 0 0 var(--jbs-space-6);
	color: var(--jbs-muted);
	font-size: 1.05rem;
	line-height: 1.6;
	max-width: 40rem;
}

.jbs-section-empty {
	margin: 0;
	padding: var(--jbs-space-5);
	background: var(--jbs-surface);
	border: 1px dashed var(--jbs-border);
	border-radius: var(--jbs-radius);
	color: var(--jbs-muted);
	text-align: center;
}

.jbs-section-actions {
	margin-top: var(--jbs-space-5);
	text-align: center;
}

.jbs-theme-child .tutor-form-control,
.jbs-theme-child .tutor-input,
.jbs-theme-child input.tutor-form-control,
.jbs-theme-child textarea.tutor-form-control,
.jbs-theme-child select.tutor-form-control {
	border-radius: var(--jbs-radius-sm);
	border-color: var(--jbs-border);
	background: var(--jbs-surface);
	font-family: var(--jbs-font);
}

.jbs-theme-child .tutor-form-control:focus,
.jbs-theme-child .tutor-input:focus {
	border-color: var(--jbs-accent);
	box-shadow: var(--jbs-focus-ring);
	outline: none;
}

.jbs-theme-child .tutor-card:not(.tutor-course-card):not(.jbs-udemy-card-wrap) {
	border-radius: var(--jbs-radius);
	border-color: var(--jbs-border);
	box-shadow: var(--jbs-shadow-sm);
	overflow: hidden;
	background: var(--jbs-surface);
}

/* Public footer styles live in assets/css/footer.css */
