/*
 * ISOBAL page sections: hero, cards, bands, steps, levels, packages, faculty, FAQ.
 * Loaded after theme.css. Logical properties keep it RTL-ready.
 */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ---------- Sections ---------- */

/* Landing pages: sections run edge to edge with no gaps between them. */
.isobal-landing,
.isobal-landing__content,
.isobal-landing__content > * {
	margin-block: 0;
}

.isobal-section {
	padding-block: 64px;
}

.isobal-section--intro {
	padding-block: 56px 24px;
}

.isobal-section--intro + .isobal-section {
	padding-block-start: 32px;
}

.isobal-section--tall {
	padding-block: 96px 120px;
}

.isobal-section--white {
	background: var(--wp--preset--color--white);
}

.isobal-section--hero {
	padding-block: 56px;
	border-block-end: 1px solid rgba(27, 42, 74, 0.1);
}

.isobal-section--rule {
	border-block-start: 1px solid rgba(27, 42, 74, 0.1);
}

.isobal-section--navy,
.isobal-section--green {
	color: var(--wp--preset--color--off-white);
}

.isobal-section--navy {
	background: var(--wp--preset--color--navy);
}

.isobal-section--green {
	background: var(--wp--preset--color--green);
}

.isobal-section--navy :is(h1, h2, h3),
.isobal-section--green :is(h1, h2, h3) {
	color: inherit;
}

.isobal-section--navy .is-style-label {
	color: var(--wp--preset--color--gold);
}

.isobal-section--navy .isobal-lead,
.isobal-section--green p {
	color: rgba(247, 246, 242, 0.84);
}

.isobal-wrap {
	max-width: var(--isobal-wide);
	margin-inline: auto;
	padding-inline: var(--isobal-gutter);
}

.isobal-wrap > * {
	margin-block: 0;
}

.isobal-wrap > * + * {
	margin-block-start: 20px;
}

/* ---------- Type ---------- */

.isobal-landing h2 {
	font-size: clamp(26px, 3vw, 32px);
}

.isobal-display {
	font-size: clamp(38px, 4.6vw, 60px);
	line-height: 1.04;
	text-wrap: balance;
}

.isobal-page-title {
	font-size: clamp(34px, 3.8vw, 48px) !important;
	line-height: 1.08;
	text-wrap: balance;
}

.isobal-lead {
	font-size: 17px;
	line-height: 1.6;
	color: var(--wp--preset--color--slate);
	max-width: 52ch;
	text-wrap: pretty;
}

.isobal-meta {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}

.isobal-note {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	max-width: 80ch;
}

.isobal-section--navy .isobal-note {
	color: rgba(247, 246, 242, 0.65);
}

.isobal-wrap > .isobal-subhead {
	margin-block-start: 48px;
}

.isobal-landing .isobal-subhead {
	font-size: 24px;
}

.isobal-mono-label,
.isobal-muted-label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.isobal-muted-label.is-style-label {
	font-size: 11px;
	letter-spacing: 0.14em;
	color: var(--wp--preset--color--muted);
}

.isobal-more a {
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--green);
	text-decoration: none;
}

.isobal-more a:hover {
	color: var(--wp--preset--color--gold);
}

.isobal-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 16px;
}

.isobal-section-head > * {
	margin: 0;
}

.isobal-wrap > .isobal-section-head + * {
	margin-block-start: 30px;
}

/* ---------- Home hero ---------- */

.isobal-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	max-width: var(--isobal-wide);
	margin-inline: auto;
}

.isobal-landing__content > .isobal-hero {
	border-block-end: 1px solid rgba(27, 42, 74, 0.1);
}

.isobal-hero > * {
	margin: 0;
}

.isobal-hero__copy {
	padding: 72px var(--isobal-gutter);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
}

.isobal-hero__copy > * {
	margin: 0;
}

/* ---------- Two-column split ---------- */

.isobal-split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 32px 40px;
	align-items: center;
}

.isobal-split > *,
.isobal-split__text > * {
	margin: 0;
}

.isobal-split__text {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

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

.isobal-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(270px, 100%), 1fr));
	gap: 20px;
}

/* Grid children never take WordPress's flow-layout top margin. */
.isobal-cards > *,
.isobal-points > *,
.isobal-people > *,
.isobal-tiers > *,
.isobal-stats > * {
	margin-block: 0;
}

.isobal-cards--four {
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
}

.isobal-card {
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(27, 42, 74, 0.12);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	transition: border-color 0.15s ease;
}

.isobal-card:hover {
	border-color: var(--wp--preset--color--gold);
}

.isobal-card > * {
	margin: 0;
}

.isobal-card h3 {
	font-size: 23px;
}

.isobal-card p {
	font-size: 15px;
	color: var(--wp--preset--color--slate);
}

.isobal-card > .isobal-more {
	margin-block-start: auto;
}

.isobal-card p.isobal-card__no,
.isobal-point p.isobal-point__no {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	color: var(--wp--preset--color--green);
}

.isobal-section--green .isobal-point p.isobal-point__no {
	color: var(--wp--preset--color--off-white);
}

/* ---------- Panels and facts ---------- */

.isobal-panel {
	background: var(--wp--preset--color--off-white);
	border: 1px solid var(--isobal-rule);
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.isobal-panel > *,
.isobal-facts > *,
.isobal-fact > * {
	margin: 0;
}

.isobal-landing .isobal-panel__title {
	font-size: 20px;
}

.isobal-fact {
	display: grid;
	grid-template-columns: 116px 1fr;
	gap: 14px;
	padding-block: 11px;
	border-block-start: 1px solid rgba(27, 42, 74, 0.1);
	align-items: baseline;
}

.isobal-fact__key {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.isobal-fact__value {
	font-size: 15px;
}

/* ---------- Green points band ---------- */

.isobal-points {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 26px;
}

.isobal-point {
	display: flex;
	flex-direction: column;
	gap: 10px;
	border-inline-start: 1px solid rgba(201, 162, 74, 0.5);
	padding-inline-start: 18px;
}

.isobal-point > * {
	margin: 0;
}

.isobal-point h3 {
	font-size: 20px;
}

.isobal-point p {
	font-size: 14px;
}

/* ---------- Cross-sell ---------- */

.isobal-cross {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
}

.isobal-cross > *,
.isobal-cross__text > * {
	margin: 0;
}

.isobal-cross__text {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 56ch;
}

.isobal-landing .isobal-cross h2 {
	font-size: 26px;
}

/* ---------- "What we do not do" ---------- */

.isobal-notice {
	border: 1px solid rgba(201, 162, 74, 0.45);
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.isobal-notice > * {
	margin: 0;
}

.isobal-section--navy .isobal-notice__title {
	font-size: 20px;
	color: var(--wp--preset--color--gold);
}

.isobal-notice p {
	font-size: 14px;
	line-height: 1.65;
	color: rgba(247, 246, 242, 0.85);
}

/* ---------- Photo placeholders ---------- */

.isobal-photo-slot {
	position: relative;
	min-height: var(--isobal-slot-height, 300px);
	display: grid;
	place-items: center;
	overflow: hidden;
	margin: 0;
}

.isobal-photo-slot--navy {
	background: repeating-linear-gradient(45deg, #24355a 0 5px, var(--wp--preset--color--navy) 5px 14px);
}

.isobal-photo-slot--light {
	background: repeating-linear-gradient(45deg, #e2dfd6 0 4px, #f0eee8 4px 12px);
	border: 1px solid var(--isobal-rule);
}

.isobal-photo-slot__label {
	margin: 24px;
	padding: 20px 24px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-align: center;
	max-width: 30ch;
}

.isobal-photo-slot--navy .isobal-photo-slot__label {
	color: var(--wp--preset--color--gold);
	background: rgba(27, 42, 74, 0.72);
	border: 1px solid rgba(201, 162, 74, 0.55);
}

.isobal-photo-slot--light .isobal-photo-slot__label {
	color: var(--wp--preset--color--navy);
	background: rgba(247, 246, 242, 0.9);
	border: 1px solid rgba(27, 42, 74, 0.2);
}

.isobal-photo-slot__flag {
	position: absolute;
	inset-block-start: 0;
	inset-inline-end: 0;
	display: flex;
}

.isobal-photo-slot__flag span {
	width: 22px;
	height: 6px;
	background: var(--wp--preset--color--charcoal);
}

.isobal-photo-slot__flag span:nth-child(2) {
	background: var(--wp--preset--color--error);
}

.isobal-photo-slot__flag span:nth-child(3) {
	background: var(--wp--preset--color--gold);
}

.isobal-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 16px;
}

.isobal-gallery > * {
	margin: 0;
}

/* ---------- Empty states ---------- */

.isobal-empty {
	border: 1px dashed rgba(27, 42, 74, 0.3);
	padding: 20px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}

.isobal-section--navy .isobal-empty {
	border-color: rgba(247, 246, 242, 0.3);
	color: rgba(247, 246, 242, 0.6);
}

.isobal-section--navy .isobal-token,
.isobal-section--green .isobal-token {
	color: var(--wp--preset--color--off-white);
	background: rgba(201, 162, 74, 0.28);
}

/* ---------- Stats and proof ---------- */

.isobal-proof {
	display: grid;
	gap: 14px;
}

.isobal-proof > * {
	margin: 0;
}

.isobal-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
}

.isobal-stat {
	border: 1px solid rgba(201, 162, 74, 0.4);
	padding: 20px;
}

.isobal-stat > * {
	margin: 0;
}

.isobal-stat__value {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 22px;
	color: var(--wp--preset--color--navy);
}

.isobal-stat .isobal-stat__value {
	margin-block-end: 6px;
}

.isobal-section--navy .isobal-stat__value {
	color: var(--wp--preset--color--gold);
}

.isobal-stat__label {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}

.isobal-section--navy .isobal-stat__label {
	color: rgba(247, 246, 242, 0.7);
}

/* ---------- Testimonials ---------- */

.isobal-testimonials {
	display: grid;
	gap: 20px;
}

.isobal-testimonial {
	margin: 0;
	padding: 24px;
	border-inline-start: 2px solid var(--wp--preset--color--gold);
	background: var(--wp--preset--color--white);
}

.isobal-section--navy .isobal-testimonial {
	background: rgba(247, 246, 242, 0.06);
}

.isobal-testimonial blockquote {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	line-height: 1.4;
}

.isobal-testimonial blockquote p {
	margin: 0;
}

.isobal-testimonial figcaption {
	margin-block-start: 12px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}

/* ---------- Visa steps ---------- */

.isobal-steps {
	list-style: none;
	margin: 0;
	padding: 0;
}

.isobal-steps--strip {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
	gap: 1px;
	background: var(--isobal-rule);
	border: 1px solid var(--isobal-rule);
}

.isobal-steps__cell {
	background: var(--wp--preset--color--white);
	padding: 22px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-height: 130px;
}

.isobal-steps__cell p {
	margin: 0;
}

.isobal-steps__no {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	color: var(--wp--preset--color--green);
}

.isobal-steps__title {
	font-size: 15px;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	line-height: 1.35;
}

.isobal-steps__note {
	font-size: 13px;
	line-height: 1.5;
	color: var(--wp--preset--color--muted);
}

.isobal-steps__row {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) minmax(0, 0.9fr);
	gap: 22px;
	padding-block: 24px;
	border-block-start: 1px solid var(--isobal-rule);
	align-items: start;
}

.isobal-steps__big-no {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 30px;
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--navy);
}

.isobal-steps .isobal-steps__heading {
	margin: 0 0 7px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 18px;
	font-weight: 600;
}

.isobal-steps__body p {
	margin: 0;
	font-size: 15px;
	color: var(--wp--preset--color--slate);
}

.isobal-steps__need {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-inline-start: 18px;
	border-inline-start: 1px solid rgba(27, 42, 74, 0.12);
	font-size: 14px;
}

@media (max-width: 700px) {
	.isobal-steps__row {
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 14px 16px;
	}

	.isobal-steps__need {
		grid-column: 2;
	}
}

/* ---------- Subjects ---------- */

.isobal-subjects {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
	gap: 14px;
}

.isobal-subject {
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(27, 42, 74, 0.12);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.isobal-subject:hover {
	border-color: var(--wp--preset--color--gold);
}

.isobal-subject__name {
	font-size: 16px;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
}

.isobal-subject__levels {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	color: var(--wp--preset--color--muted);
}

/* ---------- German levels ---------- */

.isobal-levels {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: var(--isobal-rule);
	border: 1px solid var(--isobal-rule);
}

.isobal-level {
	background: var(--wp--preset--color--white);
	padding: 20px 22px;
	display: grid;
	grid-template-columns: 74px minmax(0, 1.4fr) minmax(0, 1fr) auto;
	gap: 18px;
	align-items: center;
}

.isobal-level__code {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 24px;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
}

.isobal-level__body p {
	margin: 0;
}

.isobal-level__body .isobal-level__name {
	font-size: 15px;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin-block-end: 3px;
}

.isobal-level__desc {
	font-size: 13px;
	line-height: 1.5;
	color: var(--wp--preset--color--muted);
}

.isobal-level__hours {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--muted);
}

.isobal-level__cta .wp-block-button__link {
	padding: 9px 14px;
	font-size: 13px;
	white-space: nowrap;
}

@media (max-width: 700px) {
	.isobal-level {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 10px 16px;
	}

	.isobal-level__hours,
	.isobal-level__cta {
		grid-column: 2;
	}

	.isobal-level__cta {
		justify-self: start;
	}
}

/* ---------- Packages and tabs ---------- */

.isobal-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	border-block-end: 1px solid var(--isobal-rule);
	margin-block: 26px 32px;
}

.isobal-tabs[hidden] {
	display: none;
}

.isobal-tabs__tab {
	font: inherit;
	font-size: 14px;
	min-height: 44px;
	padding: 12px 18px;
	background: transparent;
	border: 1px solid var(--isobal-rule);
	margin-block-end: -1px;
	color: var(--wp--preset--color--muted);
	cursor: pointer;
}

.isobal-tabs__tab[aria-selected="true"] {
	background: var(--wp--preset--color--off-white);
	border-block-end-color: var(--wp--preset--color--off-white);
	color: var(--wp--preset--color--navy);
	font-weight: 600;
}

.isobal-packages__panel + .isobal-packages__panel {
	margin-block-start: 48px;
}

.isobal-packages.is-tabbed .isobal-packages__panel + .isobal-packages__panel {
	margin-block-start: 0;
}

.isobal-landing .isobal-packages__heading {
	font-size: 24px;
	margin-block: 32px 20px;
}

.isobal-packages.is-tabbed .isobal-packages__heading {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

.isobal-tiers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 20px;
	align-items: stretch;
}

.isobal-tier {
	background: rgba(255, 255, 255, 0.6);
	border: 1px solid var(--isobal-rule);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.isobal-tier.is-featured {
	background: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--gold);
	box-shadow: 0 14px 34px rgba(27, 42, 74, 0.1);
}

.isobal-tier > * {
	margin: 0;
}

.isobal-tier__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}

.isobal-tier .isobal-tier__name {
	margin: 0;
	font-size: 24px;
}

.isobal-tier__badge {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--gold);
	padding: 4px 8px;
	white-space: nowrap;
}

.isobal-tier__fee {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 20px;
	color: var(--wp--preset--color--green);
}

.isobal-tier__who {
	font-size: 14px;
	color: var(--wp--preset--color--slate);
}

.isobal-tier > .isobal-tier__cta {
	margin-block-start: auto;
}

.isobal-tier__cta .wp-block-button__link {
	width: 100%;
	justify-content: center;
}

.isobal-bullets {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.isobal-bullets li {
	position: relative;
	padding-inline-start: 20px;
	font-size: 14px;
	line-height: 1.5;
}

.isobal-bullets li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 7px;
	width: 6px;
	height: 6px;
	background: var(--wp--preset--color--gold);
}

/* ---------- Faculty ---------- */

.isobal-people {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
	gap: 20px;
}

.isobal-person {
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(27, 42, 74, 0.12);
	padding: 16px;
}

.isobal-person > * {
	margin: 0;
}

.isobal-person__photo {
	display: block;
	aspect-ratio: 4 / 5;
	background: repeating-linear-gradient(45deg, #e2dfd6 0 4px, #f0eee8 4px 12px);
	margin-block-end: 14px;
	overflow: hidden;
}

.isobal-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.isobal-person .isobal-person__name {
	font-size: 19px;
}

.isobal-person__name a {
	color: var(--wp--preset--color--navy);
}

.isobal-person .isobal-person__role {
	margin-block-start: 4px;
	font-size: 14px;
	color: var(--wp--preset--color--green);
}

.isobal-person__spec {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}

.isobal-profile {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 40px;
	align-items: start;
}

.isobal-profile > *,
.isobal-profile__body > * {
	margin-block: 0;
}

.isobal-profile__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.isobal-profile-details__role {
	color: var(--wp--preset--color--green);
	font-weight: 600;
}

/* ---------- FAQ ---------- */

.isobal-faq {
	border-block-start: 1px solid var(--isobal-rule);
}

.isobal-faq__item {
	border-block-end: 1px solid var(--isobal-rule);
}

.isobal-faq__item summary {
	cursor: pointer;
	padding-block: 18px;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
}

.isobal-faq__answer {
	padding-block-end: 18px;
	color: var(--wp--preset--color--slate);
}

.isobal-faq__answer p {
	margin: 0 0 10px;
}

/* ---------- Contact details in page content ---------- */

.isobal-landing .isobal-contact-details {
	font-size: 15px;
}

/* ---------- Mobile ---------- */

@media (max-width: 600px) {
	.isobal-section {
		padding-block: 48px;
	}

	.isobal-section--tall {
		padding-block: 64px 80px;
	}

	.isobal-hero__copy {
		padding-block: 44px 40px;
	}

	.isobal-hero__media {
		--isobal-slot-height: 240px;
	}

	.isobal-fact {
		grid-template-columns: 96px 1fr;
	}
}
