/*
Theme Name: TIS School Theme
Theme URI: https://thaiinternationalschool.ac.th/
Author: Thai International School
Description: A multilingual, Elementor-free theme for Thai International School and its custom page plugins.
Version: 1.3.4
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: tis-school-theme
*/

:root {
	--tis-color-navy: #071d49;
	--tis-color-navy-light: #102d67;
	--tis-color-gold: #d3a83f;
	--tis-color-gold-soft: #f6edd7;
	--tis-color-gold-ink: #765611;
	/* Backward-compatible plugin aliases now stay inside the school palette. */
	--tis-color-teal: #102d67;
	--tis-color-teal-dark: #071d49;
	--tis-color-ink: #172033;
	--tis-color-muted: #536078;
	--tis-color-line: #dfe5ee;
	--tis-color-surface: #f4f6fa;
	--tis-color-white: #fff;
	--tis-font-sans: Inter, system-ui, "Noto Sans Thai", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--tis-font-serif: Georgia, "Times New Roman", serif;
	--tis-weight-small: 500;
	--tis-weight-control: 600;
	--tis-weight-heading: 750;
	--tis-type-h1: clamp(2rem, 5vw, 3.65rem);
	--tis-type-h2: clamp(1.7rem, 3vw, 2.55rem);
	--tis-type-h3: 1.12rem;
	--tis-type-card-title: 1.28rem;
	--tis-type-lead: clamp(1.05rem, 2vw, 1.24rem);
	--tis-leading-body: 1.55;
	--tis-leading-heading: 1.15;
	--tis-radius-card: 20px;
	--tis-radius-hero: 26px;
	--tis-shadow-card: 0 18px 54px rgba(7, 29, 73, .1);
	--tis-container-content: 760px;
	--tis-container-wide: 1240px;
	--tis-container-page: 1328px;
}

html { scroll-behavior: smooth; }
html.tis-menu-lock { overflow: hidden; }
body.tis-school-theme {
	background: #fff;
	color: var(--tis-color-ink);
	font-family: var(--tis-font-sans);
	font-size: 16px;
	line-height: var(--tis-leading-body);
	margin: 0;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
body.tis-language-th,
body.tis-language-zh { letter-spacing: 0; }
body.tis-school-theme *,
body.tis-school-theme *::before,
body.tis-school-theme *::after { box-sizing: border-box; }
body.tis-school-theme img { height: auto; max-width: 100%; }
body.tis-school-theme a { color: var(--tis-color-navy-light); }
body.tis-school-theme :where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--tis-color-gold-ink);
	outline-offset: 4px;
}
body.tis-school-theme :where(h1, h2, h3, h4) {
	color: var(--tis-color-navy);
	font-family: var(--tis-font-sans);
	font-weight: var(--tis-weight-heading);
	letter-spacing: -.025em;
	line-height: var(--tis-leading-heading);
}
body.tis-language-th :where(h1, h2, h3, h4),
body.tis-language-zh :where(h1, h2, h3, h4) { letter-spacing: 0; line-height: 1.38; }
.tis-site-container { margin-inline: auto; max-width: var(--tis-container-wide); padding-inline: clamp(18px, 3.3vw, 40px); width: 100%; }
.tis-skip-link {
	background: var(--tis-color-gold);
	border-radius: 0 0 8px 0;
	color: var(--tis-color-navy) !important;
	font-weight: var(--tis-weight-control);
	left: 0;
	padding: 12px 18px;
	position: fixed;
	top: 0;
	transform: translateY(-120%);
	z-index: 10000;
}
.tis-skip-link:focus { transform: translateY(0); }

/* Header */
.tis-site-header {
	background: rgba(255, 255, 255, .98);
	border-bottom: 1px solid rgba(223, 229, 238, .84);
	box-shadow: 0 7px 28px rgba(7, 29, 73, .045);
	position: relative;
	z-index: 100;
}
.tis-site-topbar { background: var(--tis-color-navy); color: #fff; }
.tis-site-topbar > .tis-site-container {
	align-items: center;
	display: flex;
	gap: 20px;
	justify-content: space-between;
	min-height: 39px;
}
.tis-site-topbar p { color: #d6deec; font-size: 12px; font-weight: var(--tis-weight-small); letter-spacing: .035em; margin: 0; }
.tis-site-languages { align-items: center; display: flex; gap: 4px; }
.tis-site-languages a {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	color: #fff !important;
	display: inline-flex;
	font-size: 12px;
	font-weight: var(--tis-weight-control);
	justify-content: center;
	line-height: 1.2;
	min-height: 30px;
	padding: 5px 12px;
	text-decoration: none;
}
.tis-site-languages a:hover { background: rgba(255, 255, 255, .11); }
.tis-site-languages a.is-current { background: var(--tis-color-gold); border-color: var(--tis-color-gold); color: var(--tis-color-navy) !important; }
.tis-site-nav-row { align-items: center; display: grid; gap: 26px; grid-template-columns: auto minmax(0, 1fr); min-height: 92px; }
.tis-site-brand { align-items: center; color: var(--tis-color-navy) !important; display: inline-flex; flex: none; gap: 12px; text-decoration: none; }
.tis-site-brand img,
.tis-site-logo { display: block; height: 68px; object-fit: contain; width: 68px; }
.tis-site-brand span { display: flex; flex-direction: column; }
.tis-site-brand strong { font-size: 14px; font-weight: var(--tis-weight-control); line-height: 1.25; max-width: 135px; }
.tis-site-brand small { color: var(--tis-color-muted); font-size: 10px; font-weight: var(--tis-weight-small); letter-spacing: .08em; margin-top: 3px; text-transform: uppercase; }
.tis-site-navigation { justify-self: end; min-width: 0; }
.tis-site-menu { align-items: center; display: flex; gap: clamp(12px, 2vw, 28px); list-style: none; margin: 0; padding: 0; }
.tis-site-menu li { margin: 0; position: relative; }
.tis-site-menu a { color: var(--tis-color-navy) !important; display: inline-flex; font-size: 14px; font-weight: var(--tis-weight-control); min-height: 44px; padding: 10px 2px; position: relative; text-decoration: none; }
.tis-site-menu > li > a::after { background: var(--tis-color-gold); bottom: 4px; content: ""; height: 2px; left: 2px; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .18s ease; width: calc(100% - 4px); }
.tis-site-menu > li > a:hover::after,
.tis-site-menu > li.current-menu-item > a::after,
.tis-site-menu > li.current-menu-ancestor > a::after { transform: scaleX(1); }
.tis-site-menu .sub-menu {
	background: #fff;
	border: 1px solid var(--tis-color-line);
	border-radius: 14px;
	box-shadow: var(--tis-shadow-card);
	display: none;
	left: -18px;
	list-style: none;
	margin: 0;
	min-width: 230px;
	padding: 10px;
	position: absolute;
	top: 100%;
}
.tis-site-menu li:hover > .sub-menu,
.tis-site-menu li:focus-within > .sub-menu { display: block; }
.tis-site-menu .sub-menu a { border-radius: 8px; display: block; height: auto; min-height: 0; padding: 9px 10px; }
.tis-site-menu .sub-menu a:hover { background: var(--tis-color-surface); }

/* Elementor Pro template 10870 still wraps some live pages. Suppress only its
   obsolete Contact CTA; ordinary Contact links in the Primary menu are unaffected. */
body.tis-school-theme .elementor-element.elementor-element-06a9b86.elementor-widget-button[data-id="06a9b86"],
body.tis-school-theme .elementor-element.elementor-element-06a9b86.elementor-widget-button[data-id="06a9b86"] a[href="https://thaiinternationalschool.ac.th/?page_id=11618"] {
	display: none !important;
}

.tis-button {
	align-items: center;
	border: 1px solid transparent;
	border-radius: 999px;
	display: inline-flex;
	font-family: var(--tis-font-sans);
	font-size: 14px;
	font-weight: var(--tis-weight-control);
	gap: 16px;
	justify-content: center;
	line-height: 1.35;
	min-height: 47px;
	padding: 11px 21px;
	text-decoration: none !important;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.tis-button-gold { background: var(--tis-color-gold); color: var(--tis-color-navy) !important; }
.tis-button-gold:hover { background: #e4bd5b; transform: translateY(-1px); }
.tis-site-menu-toggle { align-items: center; background: transparent; border: 1px solid var(--tis-color-line); border-radius: 999px; color: var(--tis-color-navy); cursor: pointer; display: none; font: inherit; font-size: 14px; font-weight: var(--tis-weight-control); gap: 9px; min-height: 46px; padding: 9px 14px; }
.tis-site-menu-icon { display: grid; gap: 4px; width: 18px; }
.tis-site-menu-icon i { background: currentColor; border-radius: 2px; display: block; height: 2px; transition: transform .18s, opacity .18s; width: 100%; }
.tis-site-header.is-menu-open .tis-site-menu-icon i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.tis-site-header.is-menu-open .tis-site-menu-icon i:nth-child(2) { opacity: 0; }
.tis-site-header.is-menu-open .tis-site-menu-icon i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Core content */
.tis-experience-main { min-height: 45vh; overflow: hidden; }
.tis-default-main { min-height: 58vh; padding-block: clamp(56px, 8vw, 96px); }
.tis-prose { max-width: calc(var(--tis-container-content) + 80px); }
.tis-prose > * { max-width: var(--tis-container-content); }
.tis-prose > .alignwide { margin-left: 50%; max-width: var(--tis-container-wide); transform: translateX(-50%); width: calc(100vw - 36px); }
.tis-prose > .alignfull { margin-left: 50%; max-width: none; transform: translateX(-50%); width: 100vw; }
.tis-default-heading { border-bottom: 1px solid var(--tis-color-line); margin-bottom: 35px; padding-bottom: 24px; }
.tis-default-heading h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); margin: 0; }
.tis-prose :where(p, li) { font-size: 1rem; }
.tis-prose :where(h2) { font-size: clamp(1.8rem, 4vw, 2.8rem); margin-top: 2.4em; }
.tis-prose :where(h3) { font-size: clamp(1.35rem, 3vw, 1.8rem); margin-top: 2em; }
.tis-prose a { text-decoration-color: var(--tis-color-gold); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.tis-post-card { border-bottom: 1px solid var(--tis-color-line); padding-block: 24px; }
.tis-post-card h2 { margin: 0 0 10px; }
.tis-post-card h2 a { color: inherit !important; text-decoration: none; }
.tis-featured-image { border-radius: var(--tis-radius-card); margin: 0 0 38px; overflow: hidden; }
.tis-featured-image img { display: block; width: 100%; }
.tis-eyebrow { color: #8b691d; font-size: 12px; font-weight: var(--tis-weight-control); letter-spacing: .13em; text-transform: uppercase; }
.tis-empty-state { background: var(--tis-color-surface); border: 1px solid var(--tis-color-line); border-radius: var(--tis-radius-hero); max-width: 900px; padding-block: clamp(48px, 7vw, 80px); text-align: center; }
.tis-empty-state h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin: 0 auto 30px; }

/* Footer */
.tis-site-footer { background: var(--tis-color-navy); color: #d2dcec; margin-top: 0; padding-top: 64px; }
.tis-site-footer-grid { display: grid; gap: clamp(40px, 7vw, 96px); grid-template-columns: 1.2fr .9fr 1fr; padding-bottom: 52px; }
.tis-site-footer .tis-site-brand { color: #fff !important; margin-bottom: 22px; }
.tis-site-footer .tis-site-brand small,
.tis-site-footer p { color: #b9c6da; }
.tis-site-footer-intro > p { font-size: 14px; margin: 8px 0; max-width: 390px; }
.tis-site-footer h2 { color: #e8c66f; font-size: 13px; font-weight: var(--tis-weight-control); letter-spacing: .12em; margin: 0 0 18px; text-transform: uppercase; }
.tis-site-footer .tis-site-menu,
.tis-site-footer-menu { align-items: flex-start; display: grid; gap: 4px 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.tis-site-footer .tis-site-menu a,
.tis-site-footer-menu a { color: #d2dcec !important; font-size: 14px; min-height: 38px; padding: 6px 0; text-decoration: none; }
.tis-site-footer .tis-site-menu a::after { display: none; }
.tis-site-footer .tis-site-menu a:hover,
.tis-site-footer-menu a:hover { color: #fff !important; }
.tis-site-footer-contact { align-items: flex-start; display: flex; flex-direction: column; }
.tis-site-footer-contact > a:not(.tis-button) { color: #d2dcec !important; font-size: 14px; margin: 2px 0; text-decoration: none; }
.tis-site-footer-contact .tis-button { margin-top: 22px; }
.tis-site-footer-bottom { align-items: center; border-top: 1px solid rgba(255, 255, 255, .13); display: flex; gap: 24px; justify-content: space-between; min-height: 76px; }
.tis-site-footer-bottom p { font-size: 12px; margin: 0; }
.tis-site-footer-bottom nav { display: flex; gap: 18px; }
.tis-site-footer-bottom a { color: #d2dcec !important; font-size: 12px; text-decoration: none; }

/* Existing TIS plugin compatibility. Higher specificity preserves these values
   even when a plugin prints scoped CSS after wp_head during migration. */
body.tis-school-theme .tis-academics {
	--ta-navy: var(--tis-color-navy);
	--ta-navy-light: var(--tis-color-navy-light);
	--ta-gold: var(--tis-color-gold);
	--ta-gold-soft: var(--tis-color-gold-soft);
	--ta-teal: var(--tis-color-teal);
	--ta-ink: var(--tis-color-ink);
	--ta-muted: var(--tis-color-muted);
	--ta-line: var(--tis-color-line);
	--ta-surface: var(--tis-color-surface);
	font-family: var(--tis-font-sans);
}
body.tis-school-theme .tis-uniform {
	--tis-navy: var(--tis-color-navy);
	--tis-navy-2: var(--tis-color-navy-light);
	--tis-gold: var(--tis-color-gold);
	--tis-gold-soft: var(--tis-color-gold-soft);
	--tis-ink: var(--tis-color-ink);
	--tis-muted: var(--tis-color-muted);
	--tis-line: var(--tis-color-line);
	--tis-surface: var(--tis-color-surface);
	--tis-radius: var(--tis-radius-card);
	--tis-shadow: var(--tis-shadow-card);
	font-family: var(--tis-font-sans);
}
body.tis-school-theme .tis-asab-portal {
	--tis-asab-ink: var(--tis-color-ink);
	--tis-asab-muted: var(--tis-color-muted);
	--tis-asab-border: var(--tis-color-line);
	--tis-asab-panel-alt: var(--tis-color-surface);
	--tis-asab-accent: var(--tis-color-teal);
	--tis-asab-accent-dark: var(--tis-color-teal-dark);
	--tis-asab-sun: var(--tis-color-gold);
	--tis-asab-shadow: var(--tis-shadow-card);
	--tis-asab-radius: var(--tis-radius-card);
	font-family: var(--tis-font-sans);
}
body.tis-school-theme .tis-asab-portal,
body.tis-school-theme .tis-asab-portal :is(h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea, label, legend, summary, li, th, td, dt, dd, span, small, strong) {
	font-family: var(--tis-font-sans) !important;
}
body.tis-school-theme .tis-uniform-language-switcher,
body.tis-school-theme .tis-asab-language-switcher { font-family: var(--tis-font-sans); }

body.tis-school-theme .tis-asab-portal :is(
	.tis-asab-hero,
	.tis-asab-stat-card-accent,
	.tis-asab-stat-card-credit
) { background: linear-gradient(135deg, var(--tis-color-navy), var(--tis-color-navy-light)) !important; }
body.tis-school-theme .tis-asab-portal .tis-asab-button-primary {
	background: var(--tis-color-navy) !important;
	box-shadow: 0 10px 24px rgba(7, 29, 73, .18);
}

/* The ECA portals predate the shared theme and use local ink/muted tokens.
   Re-scope those tokens on every known dark portal surface so later plugin
   rules cannot put navy or gray copy back onto a navy card. */
body.tis-school-theme .tis-asab-portal .tis-asab-card {
	--tis-asab-ink: var(--tis-color-ink);
	--tis-asab-muted: var(--tis-color-muted);
	color: var(--tis-color-ink) !important;
}
body.tis-school-theme .tis-asab-portal .tis-asab-shell {
	--tis-asab-ink: var(--tis-color-ink);
	--tis-asab-muted: var(--tis-color-muted);
	background: linear-gradient(180deg, var(--tis-color-white), var(--tis-color-surface)) !important;
	color: var(--tis-color-ink) !important;
}
body.tis-school-theme .tis-asab-portal :is(
	.tis-asab-hero,
	.tis-asab-stat-card-accent,
	.tis-asab-stat-card-credit,
	.tis-asab-teacher-enrollment-totals > div,
	.tis-asab-teacher-student-count,
	.tis-asab-policy-center__mark,
	.tis-asab-policy-document__header
) {
	--tis-asab-ink: var(--tis-color-white);
	--tis-asab-muted: #d6deec;
	color: var(--tis-color-white) !important;
}
body.tis-school-theme .tis-asab-portal .tis-asab-hero :is(h1, h2, h3, h4, h5, h6, p, li, dt, dd, strong, small, label, summary),
body.tis-school-theme .tis-asab-portal :is(.tis-asab-stat-card-accent, .tis-asab-stat-card-credit) :is(h1, h2, h3, h4, h5, h6, p, strong, span, small),
body.tis-school-theme .tis-asab-portal .tis-asab-teacher-enrollment-totals > div :is(strong, span, small),
body.tis-school-theme .tis-asab-portal .tis-asab-teacher-student-count :is(strong, span, small),
body.tis-school-theme .tis-asab-portal :is(.tis-asab-policy-center__mark, .tis-asab-policy-document__header) :is(h1, h2, h3, h4, h5, h6, p, strong, span, small) {
	color: var(--tis-color-white) !important;
	-webkit-text-fill-color: var(--tis-color-white) !important;
}
body.tis-school-theme .tis-asab-portal :is(
	.tis-asab-hero,
	.tis-asab-stat-card-accent,
	.tis-asab-stat-card-credit,
	.tis-asab-teacher-enrollment-totals > div,
	.tis-asab-teacher-student-count,
	.tis-asab-policy-document__header
) a:not(.tis-asab-button) {
	color: #e8c66f !important;
	text-decoration-color: currentColor;
}
body.tis-school-theme .tis-asab-portal :is(
	a.tis-asab-button-primary,
	a.tis-asab-button-primary:visited,
	button.tis-asab-button-primary,
	.tis-asab-scroller-arrow,
	.tis-asab-policy-action--primary
),
body.tis-school-theme .tis-asab-portal :is(
	.tis-asab-button-primary,
	.tis-asab-scroller-arrow,
	.tis-asab-policy-action--primary
) :is(span, strong) {
	color: var(--tis-color-white) !important;
	-webkit-text-fill-color: var(--tis-color-white) !important;
}
body.tis-school-theme .tis-asab-portal :is(
	.tis-asab-button-primary,
	.tis-asab-scroller-arrow,
	.tis-asab-policy-action--primary,
	.tis-asab-policy-center__mark
) svg {
	color: inherit;
}

/* Uniform Shop typography is the shared baseline for every TIS experience.
   These selectors deliberately outrank plugin CSS that may load after the
   theme, so one theme update normalizes the whole site. */
body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
) {
	font-family: var(--tis-font-sans);
	font-size: 1rem;
	line-height: var(--tis-leading-body);
}

body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
) :is(h1, h2) {
	font-family: inherit;
	font-weight: var(--tis-weight-heading) !important;
	letter-spacing: -.025em;
	line-height: var(--tis-leading-heading);
}

body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-asab-portal
) :is(h3, h4) {
	font-family: inherit;
	font-weight: var(--tis-weight-control) !important;
	letter-spacing: -.015em;
	line-height: var(--tis-leading-heading);
}

body.tis-school-theme .tis-home .th-pathway-list h3,
body.tis-school-theme .tis-academics .ta-first-milestone h3 {
	font-weight: var(--tis-weight-heading) !important;
}

body.tis-school-theme :is(
	.tis-home .th-hero h1,
	.tis-about .tab-hero h1,
	.tis-admissions .tad-hero h1,
	.tis-tuition .ttf-hero h1,
	.tis-academics .ta-hero h1,
	.tis-contact .tct-hero h1,
	.tis-food-menu .tfm-hero h1,
	.tis-blog .tb-hero h1,
	.tis-privacy-policy .tpp-hero h1,
	.tis-visitor-code .tvc-hero h1,
	.tis-data-privacy-ai-policy .tdpa-hero h1,
	.tis-asab-portal h1,
	.tis-default-heading h1,
	.tis-empty-state h1
) { font-size: var(--tis-type-h1) !important; }

body.tis-school-theme .tis-home .th-section-heading h2,
body.tis-school-theme .tis-home .th-intro h2,
body.tis-school-theme .tis-home .th-pathways h2,
body.tis-school-theme .tis-home .th-faq h2,
body.tis-school-theme .tis-home .th-visit h2,
body.tis-school-theme .tis-about :is(.tab-purpose, .tab-director, .tab-story, .tab-values, .tab-place, .tab-cta) h2,
body.tis-school-theme .tis-admissions .tad-intro h2,
body.tis-school-theme .tis-admissions .tad-planning h2,
body.tis-school-theme .tis-admissions .tad-contact h2,
body.tis-school-theme .tis-tuition .ttf-section-heading h2,
body.tis-school-theme .tis-tuition .ttf-cta h2,
body.tis-school-theme .tis-academics :is(.ta-intro, .ta-milestones .ta-section-heading, .ta-beyond, .ta-next-chapter) h2,
body.tis-school-theme .tis-contact :is(.tct-section-heading, .tct-next) h2,
body.tis-school-theme .tis-food-menu :is(.tfm-section-heading, .tfm-dietary) h2,
body.tis-school-theme .tis-visitor-code .tvc-essentials .tvc-section-intro h2,
body.tis-school-theme .tis-data-privacy-ai-policy .tdpa-principles > h2,
body.tis-school-theme .tis-prose h2 {
	font-size: var(--tis-type-h2) !important;
}

body.tis-school-theme .tis-prose .tis-post-card h2 {
	font-size: var(--tis-type-card-title) !important;
}

body.tis-school-theme :is(
	.tis-home .th-feature-card h3,
	.tis-home .th-program-copy h3,
	.tis-home .th-subject-list h3,
	.tis-about .tab-timeline h3,
	.tis-about .tab-value-grid h3,
	.tis-admissions .tad-step h3,
	.tis-tuition .ttf-discount h3,
	.tis-tuition .ttf-note h3,
	.tis-academics .ta-program h3,
	.tis-academics .ta-guide h3
) { font-size: var(--tis-type-card-title) !important; }

body.tis-school-theme .tis-blog :is(.tb-featured, .tb-empty) h2 {
	font-size: var(--tis-type-h2) !important;
}

body.tis-school-theme .tis-blog .tb-card h2 {
	font-size: var(--tis-type-card-title) !important;
}

body.tis-school-theme .tis-privacy-policy .tpp-toc h2 {
	font-size: 1rem !important;
	font-weight: var(--tis-weight-control) !important;
	letter-spacing: 0;
}

body.tis-school-theme .tis-privacy-policy .tpp-section h2 {
	font-size: clamp(1.55rem, 2.5vw, 2.15rem) !important;
}

/* Policy pages share the theme scale, while their compact navigation and
   support headings keep the lighter hierarchy designed for dense guidance. */
body.tis-school-theme .tis-visitor-code .tvc-scope h2 {
	font-size: clamp(1.45rem, 2.2vw, 1.9rem) !important;
}

body.tis-school-theme .tis-visitor-code .tvc-toc h2 {
	font-size: 1rem !important;
	font-weight: var(--tis-weight-control) !important;
	letter-spacing: 0;
}

body.tis-school-theme .tis-visitor-code .tvc-contact h2 {
	font-size: clamp(1.45rem, 2.2vw, 1.95rem) !important;
}

body.tis-school-theme .tis-data-privacy-ai-policy .tdpa-contents h2 {
	font-size: 1.05rem !important;
	font-weight: var(--tis-weight-control) !important;
	letter-spacing: 0;
}

body.tis-school-theme .tis-data-privacy-ai-policy .tdpa-contact h2 {
	font-size: 1.3rem !important;
}

body.tis-school-theme :is(
	.tis-home .th-hero-intro,
	.tis-about .tab-lede,
	.tis-admissions .tad-lede,
	.tis-tuition .ttf-lede,
	.tis-uniform .tis-uniform__intro
) {
	font-size: var(--tis-type-lead) !important;
	line-height: 1.65;
}

body.tis-school-theme .tis-home .th-faq-list summary {
	font-size: var(--tis-type-h3) !important;
	font-weight: var(--tis-weight-control) !important;
	line-height: 1.45;
}
body.tis-school-theme .tis-home .th-quote-card blockquote p {
	font-size: 1rem !important;
	font-weight: 400 !important;
	line-height: 1.6;
}
body.tis-school-theme .tis-about .tab-motto li,
body.tis-school-theme .tis-about .tab-director-copy blockquote strong,
body.tis-school-theme .tis-tuition tbody th { font-weight: var(--tis-weight-control) !important; }

/* Strong, predictable contrast. Light panels always use navy headings; only
   known navy panels receive white headings. This guards against page-builder
   heading colors leaking into plugin-rendered pages. */
@media screen {
	body.tis-school-theme :is(
		.tis-home,
		.tis-about,
		.tis-admissions,
		.tis-tuition,
		.tis-academics,
		.tis-contact,
		.tis-food-menu,
		.tis-blog,
		.tis-privacy-policy,
		.tis-visitor-code,
		.tis-data-privacy-ai-policy,
		.tis-uniform
	) :is(h1, h2, h3, h4) { color: var(--tis-color-navy) !important; }

	body.tis-school-theme :is(
		.tis-home .th-hero,
		.tis-home .th-pathways,
		.tis-home .th-visit,
		.tis-about .tab-hero,
		.tis-about .tab-place,
		.tis-about .tab-cta,
		.tis-admissions .tad-hero,
		.tis-admissions .tad-contact,
		.tis-tuition .ttf-hero,
		.tis-tuition .ttf-cta,
		.tis-academics .ta-hero,
		.tis-academics .ta-first-milestone,
		.tis-academics .ta-next-chapter,
		.tis-contact .tct-hero,
		.tis-contact .tct-next,
		.tis-food-menu .tfm-hero,
		.tis-food-menu .tfm-dietary,
		.tis-blog .tb-hero,
		.tis-privacy-policy .tpp-hero,
		.tis-visitor-code .tvc-hero,
		.tis-visitor-code .tvc-contact,
		.tis-data-privacy-ai-policy .tdpa-hero,
		.tis-data-privacy-ai-policy .tdpa-contact,
		.tis-uniform .tis-uniform-checkout__summary,
		.tis-uniform .tis-uniform-summary__hero
	) :is(h1, h2, h3, h4) { color: var(--tis-color-white) !important; }

	body.tis-school-theme .tis-asab-portal .tis-asab-hero :is(h1, h2, h3, h4) {
		color: var(--tis-color-white) !important;
	}

	/* Contact 1.0.0 shipped this callout as a light panel. Keep the complete
	   navy/gold treatment in the theme so updating the theme alone repairs
	   the low-contrast white heading on sites that still run that plugin. */
	body.tis-school-theme .tis-contact .tct-next {
		background: var(--tis-color-navy) !important;
		border-color: var(--tis-color-navy) !important;
		color: var(--tis-color-white) !important;
	}
	body.tis-school-theme .tis-contact .tct-next .tct-button-navy {
		background: var(--tis-color-gold) !important;
		border-color: var(--tis-color-gold) !important;
		color: var(--tis-color-navy) !important;
	}
	body.tis-school-theme .tis-contact .tct-next .tct-button-navy:hover {
		background: #e4bd5b !important;
	}

	/* Keep supporting copy legible if a page builder or an older plugin version
	   injects a generic paragraph/link color after the theme stylesheet. */
	body.tis-school-theme :is(
		.tis-contact .tct-hero .tct-lede,
		.tis-contact .tct-direct > a span,
		.tis-food-menu .tfm-hero .tfm-lede,
		.tis-food-menu .tfm-provider p,
		.tis-food-menu .tfm-dietary > div > p:last-child,
		.tis-blog .tb-hero .tb-lead,
		.tis-privacy-policy .tpp-hero .tpp-intro,
		.tis-privacy-policy .tpp-hero .tpp-updated span,
		.tis-visitor-code .tvc-hero :is(.tvc-status-copy, .tvc-intro, .tvc-prepared),
		.tis-visitor-code .tvc-contact p,
		.tis-data-privacy-ai-policy .tdpa-hero :is(.tdpa-intro, .tdpa-meta p),
		.tis-data-privacy-ai-policy .tdpa-contact :is(p, address span)
	) { color: #d6deec !important; }
	body.tis-school-theme :is(
		.tis-contact .tct-direct > a,
		.tis-contact .tct-direct > a strong,
		.tis-food-menu .tfm-provider strong,
		.tis-privacy-policy .tpp-hero .tpp-updated,
		.tis-privacy-policy .tpp-hero .tpp-updated time
	) { color: var(--tis-color-white) !important; }
	body.tis-school-theme :is(
		.tis-contact .tct-hero .tct-button-gold,
		.tis-food-menu .tfm-hero .tfm-button-gold,
		.tis-food-menu .tfm-dietary .tfm-button-gold
	) {
		background: var(--tis-color-gold) !important;
		border-color: var(--tis-color-gold) !important;
		color: var(--tis-color-navy) !important;
	}
}

body.tis-school-theme :is(
	.tis-eyebrow,
	.tis-home .th-eyebrow,
	.tis-home .th-card-number,
	.tis-about .tab-eyebrow,
	.tis-admissions .tad-eyebrow,
	.tis-tuition .ttf-eyebrow,
	.tis-academics .ta-eyebrow,
	.tis-contact .tct-eyebrow,
	.tis-food-menu .tfm-eyebrow,
	.tis-blog .tb-eyebrow,
	.tis-privacy-policy .tpp-eyebrow,
	.tis-visitor-code .tvc-eyebrow,
	.tis-data-privacy-ai-policy .tdpa-eyebrow,
	.tis-uniform .tis-uniform__eyebrow,
	.tis-uniform .tis-uniform-product-card__round
) { color: var(--tis-color-gold-ink) !important; }

body.tis-school-theme :is(
	.tis-home .th-hero,
	.tis-home .th-pathways,
	.tis-home .th-visit,
	.tis-about .tab-hero,
	.tis-about .tab-place,
	.tis-about .tab-cta,
	.tis-admissions .tad-hero,
	.tis-admissions .tad-contact,
	.tis-tuition .ttf-hero,
	.tis-tuition .ttf-cta,
	.tis-academics .ta-hero,
	.tis-academics .ta-first-milestone,
	.tis-academics .ta-next-chapter,
	.tis-contact .tct-hero,
	.tis-contact .tct-next,
	.tis-food-menu .tfm-hero,
	.tis-food-menu .tfm-dietary,
	.tis-blog .tb-hero,
	.tis-privacy-policy .tpp-hero,
	.tis-visitor-code .tvc-hero,
	.tis-visitor-code .tvc-contact,
	.tis-data-privacy-ai-policy .tdpa-hero,
	.tis-data-privacy-ai-policy .tdpa-contact,
	.tis-asab-portal .tis-asab-hero
) :is([class*="eyebrow"], [class*="kicker"]) { color: #e8c66f !important; }

/* Remove the remaining green-tinted decorative panels while keeping semantic
   success/error notices intact. */
body.tis-school-theme .tis-about .tab-value-grid article:nth-child(3),
body.tis-school-theme .tis-academics .ta-domain-grid article:nth-child(3) {
	background: var(--tis-color-surface);
	border-color: var(--tis-color-line);
}

/* A quieter editorial rhythm: the content remains complete, but headings and
   supporting cards no longer dominate the page. */
body.tis-school-theme .tis-home .th-section { padding-block: clamp(64px, 7vw, 96px); }
body.tis-school-theme .tis-home .th-section-heading { margin-bottom: clamp(30px, 4vw, 48px); }
body.tis-school-theme .tis-home .th-feature-card,
body.tis-school-theme .tis-home .th-quote-card { min-height: 0; }
body.tis-school-theme .tis-home .th-card-number { margin-bottom: 32px; }
body.tis-school-theme .tis-about .tab-section { margin-top: clamp(60px, 7vw, 90px); }
body.tis-school-theme .tis-admissions :is(.tad-intro, .tad-planning, .tad-contact),
body.tis-school-theme .tis-tuition :is(.ttf-section, .ttf-cta) { margin-top: clamp(58px, 7vw, 84px); }

body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
)[lang="th"],
body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
)[lang="zh-Hans"] { line-height: 1.7; }

body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
)[lang="th"] :is(h1, h2, h3, h4),
body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
)[lang="zh-Hans"] :is(h1, h2, h3, h4) {
	letter-spacing: 0;
	line-height: 1.38;
}

body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
)[lang="th"] :is([class*="eyebrow"], [class*="kicker"]),
body.tis-school-theme :is(
	.tis-home,
	.tis-about,
	.tis-admissions,
	.tis-tuition,
	.tis-academics,
	.tis-contact,
	.tis-food-menu,
	.tis-blog,
	.tis-privacy-policy,
	.tis-visitor-code,
	.tis-data-privacy-ai-policy,
	.tis-uniform,
	.tis-asab-portal
)[lang="zh-Hans"] :is([class*="eyebrow"], [class*="kicker"]) {
	letter-spacing: 0;
	text-transform: none;
}

/* Small type stays deliberately lighter than display headings and prices.
   These theme-level rules let all TIS experiences inherit the adjustment
   without requiring a new version of every page or service plugin. */
body.tis-school-theme :is(
	.tis-site-topbar p,
	.tis-site-brand small,
	.tis-eyebrow,
	.tis-site-footer h2,
	.tis-site-footer-bottom p,
	.tis-site-footer-bottom a,
	.th-eyebrow,
	.th-hero-mark small,
	.th-proof li,
	.th-accreditation,
	.th-card-number,
	.th-pathway-list > li > span,
	.th-quote-card figcaption strong,
	.tab-eyebrow,
	.tab-hero-media figcaption,
	.tab-facts dt,
	.tab-timeline-word,
	.tad-eyebrow,
	.tad-tag,
	.ttf-eyebrow,
	.ttf-year-card > span,
	.ttf-frequency,
	.ttf-discount > span,
	.tis-tuition thead th,
	.ta-small-label,
	.ta-eyebrow,
	.ta-foundations strong,
	.ta-domain-label,
	.ta-document-icon,
	.ta-beyond figcaption span,
	.ta-related > span,
	.tct-language-label,
	.tct-eyebrow,
	.tct-direct-label,
	.tct-direct > a span,
	.tct-detail-label,
	.tfm-eyebrow,
	.tfm-provider > span,
	.tfm-menu-status,
	.tfm-period,
	.tb-eyebrow,
	.tb-meta,
	.tb-field label,
	.tpp-eyebrow,
	.tpp-updated,
	.tpp-section-mark,
	.tvc-status,
	.tvc-status-copy,
	.tvc-eyebrow,
	.tvc-prepared,
	.tvc-section-number,
	.tvc-summary-copy > span,
	.tvc-contact address span,
	.tvc-sources-body p,
	.tdpa-eyebrow,
	.tdpa-meta,
	.tdpa-principle-grid article > span,
	.tdpa-contents li,
	.tdpa-section-summary,
	.tdpa-references p,
	.tdpa-contact address span,
	.tis-uniform__eyebrow,
	.tis-uniform-grade-filter label > span,
	.tis-uniform-product-card__status,
	.tis-uniform-product-card__tags span,
	.tis-uniform-product-card__round,
	.tis-uniform-product-card__price small,
	.tis-uniform-product__taxonomy span,
	.tis-uniform-component-option legend small,
	.tis-uniform-size-group__heading span,
	.tis-uniform-size-card__difference,
	.tis-uniform-size-card__measurements,
	.tis-uniform-size-stepper > span,
	.tis-uniform-size-reference th,
	.tis-uniform-summary__eyebrow,
	.tis-uniform-summary__metrics span,
	.tis-uniform-summary__filters label,
	.tis-uniform-summary th
) { font-weight: var(--tis-weight-small) !important; }

body.tis-school-theme :is(
	.tis-site-brand strong,
	.tis-site-languages a,
	.tis-site-menu a,
	.tis-button,
	.tis-site-menu-toggle,
	.th-language-switcher a,
	.th-button,
	.th-text-link,
	.tab-language-switcher a,
	.tab-button,
	.tad-language-switcher a,
	.tad-button,
	.tad-fees > a,
	.ttf-language-switcher a,
	.ttf-button,
	.ta-button,
	.ta-text-link,
	.ta-grade-tabs a,
	.ta-grade-controls button,
	.ta-grade-controls a,
	.ta-language-switcher a,
	.ta-related a,
	.tct-language-switcher a,
	.tct-button,
	.tfm-language-switcher a,
	.tfm-button,
	.tfm-menu-actions a,
	.tfm-transcript summary,
	.tb-language-switcher a,
	.tb-filters button,
	.tb-clear,
	.tb-read-more,
	.tb-pagination,
	.tpp-language-switcher a,
	.tpp-toc a,
	.tvc-language-switcher a,
	.tvc-summary-copy strong,
	.tvc-contact address a,
	.tvc-sources-body a,
	.tdpa-language-switcher a,
	.tdpa-contents h2,
	.tdpa-section-title,
	.tdpa-references summary,
	.tis-uniform-language-switcher,
	.tis-uniform-file-upload__button,
	.tis-uniform__header nav > a,
	.tis-uniform-category-tabs button,
	.tis-uniform-button,
	.tis-uniform__back a,
	.tis-uniform-sizing-group-choice label,
	.tis-uniform-size-card__top label,
	.tis-uniform-size-error,
	.tis-uniform-size-reference summary,
	.tis-uniform-cart-item__quantity label,
	.tis-uniform-checkout label,
	.tis-uniform-summary__google summary
) { font-weight: var(--tis-weight-control) !important; }

/* ASAB/ECA plugins share the theme contract but are delivered separately. */
body.tis-school-theme .tis-asab-portal :is([class*="eyebrow"], [class*="kicker"], [class*="badge"], [class*="tag"]) {
	font-weight: var(--tis-weight-small) !important;
}
body.tis-school-theme .tis-asab-portal :is(a[class*="button"], button[class*="button"], [role="button"]) {
	font-weight: var(--tis-weight-control) !important;
}
body.tis-school-theme .tis-asab-portal :is(
	.tis-asab-stat-card span,
	.tis-asab-review-meta span,
	.tis-asab-disclosure-count,
	.tis-asab-payment-bank-details dt,
	.tis-asab-table th,
	.tis-asab-teacher-enrollment-totals span,
	.tis-asab-teacher-student-count span,
	.tis-asab-calendar-enrollment-count span,
	.tis-asab-scroller-hint,
	.tis-asab-scroller-status
) { font-weight: var(--tis-weight-small) !important; }

@media (max-width: 1120px) {
	.tis-site-brand span { display: none; }
	.tis-site-menu { gap: 14px; }
	.tis-site-menu a { font-size: 13px; }
}

@media (max-width: 1040px) {
	.tis-site-nav-row { gap: 15px; grid-template-columns: 1fr auto; min-height: 82px; }
	.tis-site-brand span { display: flex; }
	.tis-site-header.has-menu-js .tis-site-menu-toggle { display: inline-flex; }
	.tis-site-navigation {
		background: #fff;
		border-bottom: 1px solid var(--tis-color-line);
		box-shadow: 0 24px 38px rgba(7, 29, 73, .12);
		display: block;
		grid-column: 1 / -1;
		justify-self: stretch;
		padding: 18px clamp(18px, 4vw, 40px) 28px;
		position: static;
		width: 100%;
	}
	.tis-site-header.has-menu-js .tis-site-navigation { display: none; left: 0; max-height: calc(100vh - 121px); overflow-y: auto; position: absolute; top: 100%; }
	.tis-site-header.has-menu-js.is-menu-open .tis-site-navigation { display: block; }
	.tis-site-navigation .tis-site-menu { align-items: stretch; display: grid; gap: 0; }
	.tis-site-navigation .tis-site-menu > li { border-bottom: 1px solid var(--tis-color-line); }
	.tis-site-navigation .tis-site-menu a { display: flex; font-size: 16px; justify-content: space-between; padding: 13px 4px; }
	.tis-site-navigation .tis-site-menu a::after { display: none; }
	.tis-site-navigation .tis-site-menu .sub-menu { border: 0; border-radius: 0; box-shadow: none; display: block; margin: 0 0 8px 18px; padding: 0; position: static; }
	.tis-site-navigation .tis-site-menu .sub-menu a { color: var(--tis-color-muted) !important; font-size: 14px; }
}

@media (max-width: 720px) {
	.tis-site-topbar > .tis-site-container { align-items: flex-start; flex-direction: column; gap: 7px; padding-block: 8px; }
	.tis-site-topbar p { font-size: 11px; }
	.tis-site-languages { width: 100%; }
	.tis-site-languages a { flex: 1; }
	.tis-site-nav-row { grid-template-columns: 1fr auto; }
	.tis-site-brand img,
	.tis-site-logo { height: 58px; width: 58px; }
	.tis-site-brand span { display: none; }
	.tis-site-footer-grid { grid-template-columns: 1fr; }
	.tis-site-footer .tis-site-brand span { display: flex; }
	.tis-site-footer-bottom { align-items: flex-start; flex-direction: column; padding-block: 22px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media print {
	.tis-site-header,
	.tis-site-footer,
	.tis-skip-link { display: none !important; }
	.tis-default-main { padding: 0; }
}
