/**
 * Sacred Minimalist — design tokens + utilities (overrides WordPress global styles).
 */

:root {
	--tqe-primary: #6a2b08;
	--tqe-primary-container: #88411e;
	--tqe-on-primary: #ffffff;
	--tqe-on-primary-container: #ffbb9e;
	--tqe-on-surface: #1b1b1c;
	--tqe-on-surface-variant: #54433c;
	--tqe-background: #fcf9f8;
	--tqe-background-main: #fffdf8;
	--tqe-background-alt: #f7f2eb;
	--tqe-surface: #fcf9f8;
	--tqe-surface-container-low: #f6f3f2;
	--tqe-surface-container: #f0eded;
	--tqe-surface-container-high: #eae7e7;
	--tqe-secondary: #795830;
	--tqe-success-deep: #2d7a46;
	--tqe-error: #ba1a1a;
	--tqe-text-muted: #666666;
	--tqe-outline-variant: #dac1b8;
	--tqe-container-max: 1280px;
	--tqe-font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--tqe-font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
}

/* Reset WordPress / block theme bleed */
body.tqe-site {
	background-color: var(--tqe-background-main) !important;
	color: var(--tqe-on-surface) !important;
	font-family: var(--tqe-font-sans) !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	padding-top: 0 !important;
}

body.tqe-site h1,
body.tqe-site h2,
body.tqe-site h3,
body.tqe-site h4,
body.tqe-site h5,
body.tqe-site h6 {
	font-family: var(--tqe-font-serif) !important;
	color: var(--tqe-primary) !important;
	font-weight: 600 !important;
	margin: 0;
}

body.tqe-site p {
	color: var(--tqe-on-surface-variant);
}

body.tqe-site a:not([class*='bg-']):not(.tqe-brand) {
	color: inherit;
}

/* Hide WP custom logo (use Stitch brand mark only) */
body.tqe-site .custom-logo-link,
body.tqe-site img.custom-logo {
	display: none !important;
}

/* Header */
.tqe-header {
	border-bottom: 1px solid rgba(106, 43, 8, 0.05);
}

.tqe-brand__name {
	font-family: var(--tqe-font-serif) !important;
	font-size: 1.125rem !important;
	line-height: 1.25 !important;
	letter-spacing: 0.12em !important;
	color: var(--tqe-primary) !important;
}

/* —— Colors —— */
.text-primary { color: var(--tqe-primary) !important; }
.text-on-surface { color: var(--tqe-on-surface) !important; }
.text-on-surface-variant { color: var(--tqe-on-surface-variant) !important; }
.text-on-primary { color: #ffffff !important; }
.text-on-primary-container { color: var(--tqe-on-primary-container) !important; }
.bg-primary-container { background-color: var(--tqe-primary-container) !important; }
.text-on-primary\/80 { color: rgba(255, 255, 255, 0.85) !important; }
.text-text-muted { color: var(--tqe-text-muted) !important; }
.text-secondary { color: var(--tqe-secondary) !important; }
.text-error { color: var(--tqe-error) !important; }

.bg-background { background-color: var(--tqe-background) !important; }
.bg-background-main { background-color: var(--tqe-background-main) !important; }
.bg-background-alt { background-color: var(--tqe-background-alt) !important; }
.bg-surface { background-color: var(--tqe-surface) !important; }
.bg-surface\/80 { background-color: rgba(252, 249, 248, 0.8) !important; }
.bg-surface-container-low { background-color: var(--tqe-surface-container-low) !important; }
.bg-surface-container { background-color: var(--tqe-surface-container) !important; }
.bg-surface-container-high { background-color: var(--tqe-surface-container-high) !important; }
.bg-primary { background-color: var(--tqe-primary) !important; }
.bg-primary-container { background-color: var(--tqe-primary-container) !important; }
.bg-success-deep { background-color: var(--tqe-success-deep) !important; }

.border-primary\/5 { border-color: rgba(106, 43, 8, 0.05) !important; }
.border-primary\/10 { border-color: rgba(106, 43, 8, 0.1) !important; }
.border-primary\/20 { border-color: rgba(106, 43, 8, 0.2) !important; }

/* —— Typography scale (Stitch) —— */
.font-display-lg,
.font-headline-lg,
.font-headline-md,
.font-headline-sm,
[class*='font-headline'],
[class*='font-display'] {
	font-family: var(--tqe-font-serif) !important;
}

.font-body-lg,
.font-body-md,
.font-body-sm,
.font-label-md,
.font-label-sm,
[class*='font-body'],
[class*='font-label'] {
	font-family: var(--tqe-font-sans) !important;
}

.text-display-lg,
.text-display-lg-mobile {
	font-family: var(--tqe-font-serif) !important;
	font-weight: 700 !important;
	color: var(--tqe-primary) !important;
	line-height: 1.1 !important;
}

.text-display-lg-mobile {
	font-size: 2.5rem !important;
	letter-spacing: -0.01em !important;
}

@media (min-width: 768px) {
	.md\:text-display-lg {
		font-size: 4rem !important;
		line-height: 1.125 !important;
		letter-spacing: -0.02em !important;
	}
}

.text-headline-lg { font-size: 2.5rem !important; line-height: 1.2 !important; }
.text-headline-md { font-size: 2rem !important; line-height: 1.25 !important; }
.text-headline-sm { font-size: 1.5rem !important; line-height: 1.33 !important; }
.text-body-lg { font-size: 1.125rem !important; line-height: 1.55 !important; }
.text-body-md { font-size: 1rem !important; line-height: 1.5 !important; }
.text-body-sm { font-size: 0.875rem !important; line-height: 1.43 !important; }
.text-label-md {
	font-size: 0.875rem !important;
	line-height: 1.14 !important;
	font-weight: 600 !important;
	letter-spacing: 0.05em !important;
}
.text-label-sm {
	font-size: 0.75rem !important;
	line-height: 1.17 !important;
	font-weight: 500 !important;
}

/* —— Layout —— */
.max-w-container-max { max-width: var(--tqe-container-max) !important; }
.px-margin-mobile { padding-left: 20px !important; padding-right: 20px !important; }
.px-margin-desktop { padding-left: 20px !important; padding-right: 20px !important; }
@media (min-width: 768px) {
	.px-margin-desktop { padding-left: 64px !important; padding-right: 64px !important; }
}
.gap-gutter { gap: 24px !important; }

/* —— Effects —— */
.backdrop-blur-xl {
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
}

.material-symbols-outlined {
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	vertical-align: middle;
	line-height: 1;
}

/* Focus rings — replace browser/Tailwind default blue with brand primary */
:root,
body.tqe-site,
body.tqe-site *,
body.tqe-site *::before,
body.tqe-site *::after {
	--tw-ring-color: rgba(106, 43, 8, 0.35);
}

body.tqe-site {
	accent-color: var(--tqe-primary);
}

body.tqe-site *:focus:not(:focus-visible) {
	outline: none;
}

body.tqe-site a:focus-visible,
body.tqe-site button:focus-visible,
body.tqe-site input:focus-visible,
body.tqe-site select:focus-visible,
body.tqe-site textarea:focus-visible,
body.tqe-site [tabindex]:not([tabindex='-1']):focus-visible {
	outline: 2px solid var(--tqe-primary);
	outline-offset: 2px;
}

body.tqe-site .tqe-input:focus,
body.tqe-site .tqe-input:focus-visible,
body.tqe-site .tqe-textarea:focus,
body.tqe-site .tqe-textarea:focus-visible,
body.tqe-site #tqe-course-search:focus,
body.tqe-site #tqe-course-search:focus-visible,
body.tqe-site .tqe-forminator-wrap .forminator-input:focus,
body.tqe-site .tqe-forminator-wrap .forminator-input:focus-visible,
body.tqe-site .tqe-forminator-wrap .forminator-textarea:focus,
body.tqe-site .tqe-forminator-wrap .forminator-textarea:focus-visible,
body.tqe-site .tqe-forminator-wrap select:focus,
body.tqe-site .tqe-forminator-wrap select:focus-visible,
body.tqe-site .faq-trigger:focus,
body.tqe-site .faq-trigger:focus-visible {
	outline: none;
}

body.tqe-site .tqe-whatsapp-sticky__toggle:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

/* Admin bar offset */
body.admin-bar .tqe-header { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .tqe-header { top: 46px; }
	body.admin-bar .tqe-main { padding-top: calc(72px + 46px) !important; }
}
