/* LTS Editor Phase 4 — core layout and content components */
:root {
	--lts-core-navy: var(--lts-design-navy, #102b46);
	--lts-core-deep-navy: var(--lts-design-deep-navy, #0b2137);
	--lts-core-blue: var(--lts-design-blue, #1b4f7a);
	--lts-core-gold: var(--lts-design-gold, #c6a74a);
	--lts-core-gold-soft: var(--lts-design-gold-soft, #f6edcf);
	--lts-core-paper: var(--lts-design-paper, #ffffff);
	--lts-core-surface: var(--lts-design-surface, #f5f7fa);
	--lts-core-ink: var(--lts-design-ink, #202b37);
	--lts-core-muted: var(--lts-design-muted, #667482);
	--lts-core-line: var(--lts-design-border, #dce2e8);
	--lts-core-radius: var(--lts-design-radius-card, 12px);
	--lts-core-shadow: 0 14px 34px rgba(16, 43, 70, 0.08);
	--lts-core-gap-small: 0.75rem;
	--lts-core-gap-medium: 1.25rem;
	--lts-core-gap-large: 2rem;
	--lts-core-gap-xlarge: clamp(2.25rem, 5vw, 4rem);
}

.lts-core-section,
.lts-core-grid,
.lts-core-stack,
.lts-core-card,
.lts-core-tabs,
.lts-core-tab,
.lts-core-icon {
	box-sizing: border-box;
}

/* Sections and content-width containers. */
.lts-core-section {
	position: relative;
	width: 100%;
}

.lts-core-section.is-surface-transparent { background: transparent; }
.lts-core-section.is-surface-paper { background: var(--lts-core-paper); }
.lts-core-section.is-surface-surface { background: var(--lts-core-surface); }
.lts-core-section.is-surface-gold-soft { background: linear-gradient(180deg, #fffdf7, var(--lts-core-gold-soft)); }
.lts-core-section.is-surface-navy { background: linear-gradient(135deg, var(--lts-core-deep-navy), var(--lts-core-navy)); color: #fff; }
.lts-core-section.is-surface-navy :where(h1,h2,h3,h4,h5,h6,p,li) { color: inherit; }

.lts-core-section.is-padding-none { padding-block: 0; }
.lts-core-section.is-padding-compact { padding-block: clamp(1.5rem, 3vw, 2.25rem); }
.lts-core-section.is-padding-standard { padding-block: clamp(2.5rem, 5vw, 4rem); }
.lts-core-section.is-padding-large { padding-block: clamp(3.5rem, 7vw, 6rem); }
.lts-core-section.is-padding-display { padding-block: clamp(5rem, 10vw, 9rem); }

.lts-core-section__inner {
	width: min(100% - 2rem, 76rem);
	margin-inline: auto;
}
.lts-core-section.is-width-reading > .lts-core-section__inner { width: min(100% - 2rem, 48rem); }
.lts-core-section.is-width-wide > .lts-core-section__inner { width: min(100% - 2rem, 76rem); }
.lts-core-section.is-width-full > .lts-core-section__inner { width: 100%; }

/* Responsive grid and stack. */
.lts-core-grid {
	display: grid;
	grid-template-columns: repeat(var(--lts-grid-desktop, 3), minmax(0, 1fr));
	align-items: start;
}
.lts-core-grid.is-gap-small { gap: var(--lts-core-gap-small); }
.lts-core-grid.is-gap-medium { gap: var(--lts-core-gap-medium); }
.lts-core-grid.is-gap-large { gap: var(--lts-core-gap-large); }
.lts-core-grid.is-gap-xlarge { gap: var(--lts-core-gap-xlarge); }
.lts-core-grid.has-equal-height { align-items: stretch; }
.lts-core-grid.has-equal-height > * { height: 100%; }

.lts-core-stack {
	display: flex;
	flex-direction: column;
}
.lts-core-stack.is-gap-small { gap: var(--lts-core-gap-small); }
.lts-core-stack.is-gap-medium { gap: var(--lts-core-gap-medium); }
.lts-core-stack.is-gap-large { gap: var(--lts-core-gap-large); }
.lts-core-stack.is-gap-xlarge { gap: var(--lts-core-gap-xlarge); }
.lts-core-stack.is-align-stretch { align-items: stretch; }
.lts-core-stack.is-align-start { align-items: flex-start; }
.lts-core-stack.is-align-center { align-items: center; }
.lts-core-stack.is-align-end { align-items: flex-end; }

/* Reusable card. */
.lts-core-card {
	position: relative;
	padding: clamp(1.25rem, 3vw, 2rem);
	border-radius: var(--lts-core-radius);
	background: var(--lts-core-paper);
	color: var(--lts-core-ink);
}
.lts-core-card > :first-child { margin-top: 0; }
.lts-core-card > :last-child { margin-bottom: 0; }
.lts-core-card.is-variant-standard { border: 1px solid var(--lts-core-line); }
.lts-core-card.is-variant-elevated { border: 1px solid rgba(220, 226, 232, 0.8); box-shadow: var(--lts-core-shadow); }
.lts-core-card.is-variant-outlined { border: 2px solid var(--lts-core-line); background: transparent; }
.lts-core-card.is-variant-minimal { padding: 0; background: transparent; }
.lts-core-card.is-variant-accent { border: 1px solid var(--lts-core-line); border-top: 5px solid var(--lts-card-accent, var(--lts-core-gold)); }
.lts-core-card.is-accent-gold { --lts-card-accent: var(--lts-core-gold); }
.lts-core-card.is-accent-navy { --lts-card-accent: var(--lts-core-navy); }
.lts-core-card.is-accent-blue { --lts-card-accent: var(--lts-core-blue); }

/* Accessible tabs. */
.lts-core-tabs {
	width: 100%;
	border: 1px solid var(--lts-core-line);
	border-radius: var(--lts-core-radius);
	background: var(--lts-core-paper);
	box-shadow: 0 8px 24px rgba(16, 43, 70, 0.05);
	overflow: hidden;
}
.lts-core-tabs__list {
	display: flex;
	gap: 0;
	border-bottom: 1px solid var(--lts-core-line);
	background: #f7f9fb;
	overflow-x: auto;
}
.lts-core-tab__button {
	appearance: none;
	min-height: 48px;
	padding: 0.75rem 1.1rem;
	border: 0;
	border-right: 1px solid var(--lts-core-line);
	background: transparent;
	color: var(--lts-core-muted);
	font: inherit;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
}
.lts-core-tab__button:hover { color: var(--lts-core-navy); background: rgba(255,255,255,0.72); }
.lts-core-tab__button:focus-visible { position: relative; z-index: 2; outline: 3px solid rgba(27,79,122,0.3); outline-offset: -3px; }
.lts-core-tab__button.is-active,
.lts-core-tab__button[aria-selected="true"] { color: var(--lts-core-navy); background: #fff; box-shadow: inset 0 -3px 0 var(--lts-core-gold); }
.lts-core-tab__panel { padding: clamp(1.25rem, 4vw, 2.5rem); }
.lts-core-tab__panel[hidden] { display: none; }
.lts-core-tab__panel > :first-child { margin-top: 0; }
.lts-core-tab__panel > :last-child { margin-bottom: 0; }

.lts-core-tabs.is-orientation-vertical[data-lts-tabs-ready="true"] {
	display: grid;
	grid-template-columns: minmax(11rem, 0.32fr) minmax(0, 1fr);
}
.lts-core-tabs.is-orientation-vertical .lts-core-tabs__list {
	flex-direction: column;
	border-right: 1px solid var(--lts-core-line);
	border-bottom: 0;
}
.lts-core-tabs.is-orientation-vertical .lts-core-tab__button {
	width: 100%;
	border-right: 0;
	border-bottom: 1px solid var(--lts-core-line);
	text-align: left;
}
.lts-core-tabs.is-orientation-vertical .lts-core-tab__button.is-active,
.lts-core-tabs.is-orientation-vertical .lts-core-tab__button[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--lts-core-gold); }
.lts-core-tabs.is-orientation-vertical .lts-core-tab { grid-column: 2; grid-row: 1; }

/* Preset icon. */
.lts-core-icon {
	display: inline-grid;
	place-items: center;
	width: 1em;
	height: 1em;
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 700;
	line-height: 1;
	vertical-align: middle;
}
.lts-core-icon.is-size-small { font-size: 1.1rem; }
.lts-core-icon.is-size-medium { font-size: 1.65rem; }
.lts-core-icon.is-size-large { font-size: 2.4rem; }
.lts-core-icon.is-size-display { font-size: clamp(3rem, 8vw, 5rem); }
.lts-core-icon.is-tone-gold { color: var(--lts-core-gold); }
.lts-core-icon.is-tone-navy { color: var(--lts-core-navy); }
.lts-core-icon.is-tone-blue { color: var(--lts-core-blue); }
.lts-core-icon.is-tone-ink { color: var(--lts-core-ink); }
.lts-core-icon.is-tone-paper { color: #fff; }

/* Phase 4 native-block patterns. */
.lts-layout-hero-centered,
.lts-layout-hero-split,
.lts-layout-band,
.lts-content-section-intro,
.lts-content-callout,
.lts-content-stat-row,
.lts-content-steps,
.lts-content-timeline,
.lts-content-icon-list,
.lts-lts-context,
.lts-lts-doctrine,
.lts-lts-oia,
.lts-lts-cross-references,
.lts-lts-summary {
	box-sizing: border-box;
}

.lts-layout-hero-centered {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(4rem, 10vw, 8rem) clamp(1.5rem, 6vw, 5rem);
	background: linear-gradient(135deg, var(--lts-core-deep-navy), var(--lts-core-blue));
	color: #fff;
	text-align: center;
}
.lts-layout-hero-centered :where(h1,h2,h3,p) { color: inherit; }
.lts-layout-hero-centered::before {
	content: '';
	position: absolute;
	z-index: -1;
	inset: auto -7rem -10rem auto;
	width: 24rem;
	height: 24rem;
	border: 1px solid rgba(198,167,74,0.42);
	border-radius: 50%;
	box-shadow: 0 0 0 3rem rgba(198,167,74,0.05), 0 0 0 6rem rgba(198,167,74,0.035);
}
.lts-layout-hero-centered > * { max-width: 52rem; margin-inline: auto; }
.lts-layout-hero-centered .wp-block-buttons { justify-content: center; }

.lts-layout-hero-split { padding: clamp(2rem, 5vw, 4.5rem); border-radius: var(--lts-core-radius); background: linear-gradient(135deg, #f8fafc, #fffdf7); border: 1px solid var(--lts-core-line); }
.lts-layout-band { padding: clamp(2rem, 5vw, 4rem); background: var(--lts-core-navy); color: #fff; }
.lts-layout-band :where(h1,h2,h3,p) { color: inherit; }

.lts-content-section-intro { max-width: 50rem; }
.lts-content-section-intro.is-centered { margin-inline: auto; text-align: center; }
.lts-content-lead { font-size: clamp(1.1rem, 2.5vw, 1.35rem); line-height: 1.7; color: #425264; }
.lts-content-callout { padding: clamp(1.25rem, 3vw, 2rem); border-left: 5px solid var(--lts-core-gold); border-radius: 0 var(--lts-core-radius) var(--lts-core-radius) 0; background: #fffdf7; }
.lts-content-callout.is-information { border-left-color: var(--lts-core-blue); background: #f6faff; }
.lts-content-callout.is-warning { border-left-color: #a65f21; background: #fff8f0; }

.lts-content-stat-row .wp-block-column { padding: 1.25rem; border: 1px solid var(--lts-core-line); border-radius: var(--lts-core-radius); text-align: center; background: #fff; }
.lts-content-stat-number { margin-bottom: 0.25rem !important; color: var(--lts-core-navy); font-size: clamp(2rem, 5vw, 3rem) !important; font-weight: 800; line-height: 1; }
.lts-content-stat-label { margin-top: 0 !important; color: var(--lts-core-muted); font-size: 0.82rem !important; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }

.lts-content-icon-list .wp-block-column,
.lts-content-steps .wp-block-column { display: flex; flex-direction: column; gap: 0.6rem; }
.lts-content-step-number { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; margin: 0 !important; border-radius: 50%; background: var(--lts-core-navy); color: #fff; font-weight: 800; }
.lts-content-timeline { border-left: 2px solid var(--lts-core-line); padding-left: 1.5rem; }
.lts-content-timeline > * { position: relative; }
.lts-content-timeline > *::before { content: ''; position: absolute; left: calc(-1.5rem - 6px); top: 0.65em; width: 10px; height: 10px; border-radius: 50%; background: var(--lts-core-gold); box-shadow: 0 0 0 4px #fff; }

.lts-lts-context,
.lts-lts-doctrine,
.lts-lts-oia,
.lts-lts-cross-references,
.lts-lts-summary { padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid var(--lts-core-line); border-radius: var(--lts-core-radius); background: #fff; }
.lts-lts-context { border-top: 4px solid var(--lts-core-blue); background: #f8fbfe; }
.lts-lts-doctrine { border-top: 4px solid var(--lts-core-navy); }
.lts-lts-summary { border-top: 4px solid var(--lts-core-gold); background: linear-gradient(180deg, #fffdf8, #fff); }
.lts-lts-cross-references ul { columns: 2; column-gap: 2rem; }
.lts-lts-oia > .wp-block-columns > .wp-block-column { padding: 1.25rem; border: 1px solid var(--lts-core-line); border-radius: 10px; }

@media (max-width: 900px) {
	.lts-core-grid { grid-template-columns: repeat(var(--lts-grid-tablet, 2), minmax(0, 1fr)); }
	.lts-core-tabs.is-orientation-vertical[data-lts-tabs-ready="true"] { grid-template-columns: 1fr; }
	.lts-core-tabs.is-orientation-vertical .lts-core-tabs__list { flex-direction: row; border-right: 0; border-bottom: 1px solid var(--lts-core-line); }
	.lts-core-tabs.is-orientation-vertical .lts-core-tab { grid-column: 1; grid-row: auto; }
	.lts-lts-cross-references ul { columns: 1; }
}

@media (max-width: 600px) {
	.lts-core-grid { grid-template-columns: repeat(var(--lts-grid-mobile, 1), minmax(0, 1fr)); }
	.lts-core-section__inner { width: min(100% - 1.25rem, 76rem); }
	.lts-core-section.is-width-reading > .lts-core-section__inner,
	.lts-core-section.is-width-wide > .lts-core-section__inner { width: min(100% - 1.25rem, 48rem); }
	.lts-core-tab__button { min-height: 44px; padding-inline: 0.85rem; }
	.lts-core-tab__panel { padding: 1.15rem; }
}
