/* ============================================================
   Transform Pilot — shared design system : LAYOUT
   Host-container reset (gated on the page body class so it cannot
   leak), the 1300px wrap, section scaffolding, base typography.
   ============================================================ */

/* Host reset — only on pages that opt in via body class. Mirrors the
   approved page 41848 host reset so the full-bleed sections work. */
body.tp-ds-page #main,
body.tp-ds-page #content,
body.tp-ds-page .wf-wrap,
body.tp-ds-page .wf-container-main,
body.tp-ds-page .content-main,
body.tp-ds-page .entry-content {
	max-width: none;
	width: auto;
	padding-left: 0;
	padding-right: 0;
	margin-left: 0;
	margin-right: 0;
}

body.tp-ds-page #main {
	padding-top: 0;
	padding-bottom: 0;
}

body.tp-ds-page .page-title,
body.tp-ds-page .entry-title,
body.tp-ds-page #fancy-header,
body.tp-ds-page .breadcrumbs {
	display: none;
}

body.tp-ds-page {
	overflow-x: hidden;
}

/* Wrap — reproduces Elementor's boxed inner so the content edge matches
   the header and footer inner edges at every viewport. */
.tp-ds .tp-wrap {
	width: 100%;
	max-width: calc(var(--tp-content-width) + (2 * var(--tp-gutter)));
	margin: 0 auto;
	padding-inline: var(--tp-gutter);
}

.tp-ds .tp-editorial {
	max-width: 760px;
}

/* base elements */
.tp-ds p { margin: 0; }
.tp-ds ul, .tp-ds ol { margin: 0; padding: 0; list-style: none; }
.tp-ds h1, .tp-ds h2, .tp-ds h3 {
	margin: 0;
	color: inherit;
	font-family: inherit;
	letter-spacing: -0.01em;
}
.tp-ds img, .tp-ds svg { max-width: 100%; }

/* section rhythm */
.tp-ds .tp-section { padding: 56px 0; }
.tp-ds .tp-section--tight { padding: 44px 0; }
.tp-ds .tp-section--light { background: var(--tp-bg-light); }
.tp-ds .tp-section--white { background: var(--tp-bg-white); }
.tp-ds .tp-section--navy { background: var(--tp-navy); color: var(--tp-on-dark); }

/* shared heading scale */
.tp-ds .tp-h2 {
	font-size: clamp(25px, 2.3vw, 33px);
	font-weight: 700;
	line-height: 1.2;
	color: var(--tp-on-light);
}
.tp-ds .tp-section--navy .tp-h2 { color: var(--tp-on-dark); }

.tp-ds .tp-eyebrow {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-bottom: 14px;
	color: var(--tp-teal);
}
.tp-ds .tp-section--navy .tp-eyebrow,
.tp-ds .tp-hero .tp-eyebrow { color: var(--tp-cyan); }

.tp-ds .tp-lede {
	font-size: 17px;
	line-height: 1.7;
	color: var(--tp-on-light-strong);
}
.tp-ds .tp-section--navy .tp-lede { color: var(--tp-on-dark-muted); }

.tp-ds .tp-rule {
	display: block;
	width: 44px;
	height: 3px;
	border-radius: 3px;
	background: var(--tp-teal);
	margin-bottom: 20px;
}
.tp-ds .tp-rule--cyan { background: var(--tp-cyan); }
.tp-ds .tp-rule--center { margin-left: auto; margin-right: auto; }

.tp-ds .tp-center { text-align: center; }
.tp-ds .tp-arrow { display: inline-block; transform: translateY(-1px); }
