/* ==========================================================================
   TOMAHAWK MEDIA GROUP — BRAND DESIGN SYSTEM  v2.0
   Implements Tomahawk Media Group Brand Guide v1.0.

   Palette : Navy #0E2F5A · Slate Gray #6B7280 · Steel Silver #B8BEC7 · White
   Type    : Montserrat (bold geometric headings) + Source Sans 3 (body)
   Voice   : professional, consultative, executive, measurable
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
	/* Brand palette — exact values from the brand guide */
	--tmg-navy: #0e2f5a;
	--tmg-slate: #6b7280;
	--tmg-silver: #b8bec7;
	--tmg-white: #ffffff;

	/* Derived tones. navy-deep is sampled from the logo artwork itself; mist
	   and line are desaturated steps off Steel Silver; body is a darkened
	   Slate so long-form copy clears WCAG AA comfortably. */
	--tmg-navy-deep: #0a2244;
	--tmg-navy-soft: #17457d;
	--tmg-mist: #f4f6f9;
	--tmg-mist-2: #eaeef4;
	--tmg-line: #e2e6ec;
	--tmg-line-strong: #cdd4dd;
	--tmg-body: #4a5563;

	/* Text roles */
	--tmg-heading: var(--tmg-navy);
	--tmg-text: var(--tmg-body);
	--tmg-muted: var(--tmg-slate);

	/* Type */
	--tmg-display: "Montserrat", "Avenir Next", "Gotham", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--tmg-font: "Source Sans 3", "Source Sans Pro", Calibri, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--tmg-eyebrow-tracking: 0.2em;

	/* Rhythm */
	--tmg-radius: 4px;
	--tmg-radius-lg: 8px;
	--tmg-maxw: 1200px;
	--tmg-shadow: 0 1px 2px rgba(14, 47, 90, 0.04), 0 8px 24px rgba(14, 47, 90, 0.06);
	--tmg-shadow-lift: 0 2px 4px rgba(14, 47, 90, 0.06), 0 18px 40px rgba(14, 47, 90, 0.12);
	--tmg-transition: 200ms cubic-bezier(0.2, 0.6, 0.3, 1);
}

/* --------------------------------------------------------------------------
   2. BASE
   -------------------------------------------------------------------------- */
body,
body.elementor-page {
	background-color: var(--tmg-white);
	color: var(--tmg-text);
	font-family: var(--tmg-font);
	font-weight: 400;
	font-size: 17.5px;
	line-height: 1.68;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	font-family: var(--tmg-display);
	color: var(--tmg-heading);
	font-weight: 700;
	line-height: 1.16;
	letter-spacing: -0.012em;
	margin-top: 0;
}

h1, .elementor-widget-heading h1.elementor-heading-title {
	font-size: clamp(2.1rem, 1.3rem + 3.1vw, 3.6rem);
	font-weight: 800;
	letter-spacing: -0.02em;
}

h2, .elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.7rem, 1.2rem + 1.9vw, 2.6rem);
	font-weight: 800;
	letter-spacing: -0.016em;
}

h3, .elementor-widget-heading h3.elementor-heading-title {
	font-size: clamp(1.18rem, 1.05rem + 0.5vw, 1.42rem);
	font-weight: 700;
}

h4, .elementor-widget-heading h4.elementor-heading-title {
	font-size: 1.08rem;
	font-weight: 700;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--tmg-navy); text-decoration: none; transition: color var(--tmg-transition); }
a:hover { color: var(--tmg-navy-soft); text-decoration: underline; text-underline-offset: 3px; }

strong, b { color: var(--tmg-navy); font-weight: 700; }

::selection { background: var(--tmg-navy); color: var(--tmg-white); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.elementor-button:focus-visible {
	outline: 2px solid var(--tmg-navy);
	outline-offset: 3px;
	border-radius: 2px;
}

/* --------------------------------------------------------------------------
   3. THE SIGNATURE ELEMENT — GROWTH BARS
   The logo carries a rising bar chart for business performance. That motif
   becomes the section marker: four ascending bars resolving into brand navy,
   so the structural furniture of the site states the brand's own claim —
   measurable outcomes — rather than merely decorating.
   -------------------------------------------------------------------------- */
.tmg-eyebrow::after {
	content: "";
	display: block;
	width: 44px;
	height: 14px;
	margin-top: 11px;
	background-repeat: no-repeat;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='14' viewBox='0 0 44 14'%3E%3Crect x='0' y='10' width='7' height='4' fill='%23B8BEC7'/%3E%3Crect x='12' y='7' width='7' height='7' fill='%236B7280'/%3E%3Crect x='24' y='3.5' width='7' height='10.5' fill='%230E2F5A'/%3E%3Crect x='36' y='0' width='7' height='14' fill='%230E2F5A'/%3E%3C/svg%3E");
}

.tmg-text-center .tmg-eyebrow::after,
.tmg-eyebrow--center::after { margin-left: auto; margin-right: auto; }

.tmg-section--navy .tmg-eyebrow::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='14' viewBox='0 0 44 14'%3E%3Crect x='0' y='10' width='7' height='4' fill='%236B7280'/%3E%3Crect x='12' y='7' width='7' height='7' fill='%23B8BEC7'/%3E%3Crect x='24' y='3.5' width='7' height='10.5' fill='%23FFFFFF'/%3E%3Crect x='36' y='0' width='7' height='14' fill='%23FFFFFF'/%3E%3C/svg%3E");
}

.tmg-section--rule { border-top: 1px solid var(--tmg-line); }

/* --------------------------------------------------------------------------
   4. SECTION FURNITURE
   -------------------------------------------------------------------------- */
.tmg-eyebrow .elementor-heading-title,
.tmg-eyebrow {
	font-family: var(--tmg-display) !important;
	font-size: 0.72rem !important;
	font-weight: 700;
	letter-spacing: var(--tmg-eyebrow-tracking);
	text-transform: uppercase;
	color: var(--tmg-navy);
	line-height: 1.4;
}

.tmg-lead .elementor-widget-container,
.tmg-lead {
	font-size: clamp(1.05rem, 0.98rem + 0.4vw, 1.28rem);
	line-height: 1.6;
	color: var(--tmg-text);
}

.tmg-lead strong { color: var(--tmg-navy); }

.tmg-section--light { background-color: var(--tmg-white); }
.tmg-section--mist { background-color: var(--tmg-mist); }

.tmg-section--navy {
	background-color: var(--tmg-navy);
	background-image: linear-gradient(160deg, var(--tmg-navy) 0%, var(--tmg-navy-deep) 100%);
	color: rgba(255, 255, 255, 0.86);
}

.tmg-section--navy .elementor-heading-title,
.tmg-section--navy h1, .tmg-section--navy h2,
.tmg-section--navy h3, .tmg-section--navy h4 { color: var(--tmg-white); }

.tmg-section--navy .tmg-eyebrow .elementor-heading-title,
.tmg-section--navy .tmg-eyebrow { color: var(--tmg-silver); }

.tmg-section--navy .elementor-widget-text-editor,
.tmg-section--navy .tmg-lead { color: rgba(255, 255, 255, 0.86); }

.tmg-section--navy strong { color: var(--tmg-white); }
.tmg-section--navy a { color: var(--tmg-white); }

/* --------------------------------------------------------------------------
   5. HERO
   -------------------------------------------------------------------------- */
.tmg-hero {
	position: relative;
	overflow: hidden;
	background-color: var(--tmg-white);
	background-image: linear-gradient(180deg, var(--tmg-mist) 0%, var(--tmg-white) 62%);
	border-bottom: 1px solid var(--tmg-line);
}

.tmg-hero .elementor-heading-title { text-wrap: balance; }
.tmg-hero--page { padding-top: clamp(64px, 8vw, 112px); }

.tmg-hero--home::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 520px;
	height: 260px;
	pointer-events: none;
	background-repeat: no-repeat;
	background-position: right bottom;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='260' viewBox='0 0 520 260'%3E%3Cg fill='%230E2F5A' opacity='0.07'%3E%3Crect x='0' y='200' width='58' height='60'/%3E%3Crect x='76' y='160' width='58' height='100'/%3E%3Crect x='152' y='116' width='58' height='144'/%3E%3Crect x='228' y='78' width='58' height='182'/%3E%3Crect x='304' y='44' width='58' height='216'/%3E%3Crect x='380' y='16' width='58' height='244'/%3E%3Crect x='456' y='0' width='58' height='260'/%3E%3C/g%3E%3C/svg%3E");
}

@media (max-width: 900px) { .tmg-hero--home::after { display: none; } }

/* --------------------------------------------------------------------------
   6. CARDS AND GRIDS
   -------------------------------------------------------------------------- */
.tmg-card {
	background-color: var(--tmg-white);
	border: 1px solid var(--tmg-line);
	border-radius: var(--tmg-radius-lg);
	position: relative;
	overflow: hidden;
	box-shadow: var(--tmg-shadow);
	transition: border-color var(--tmg-transition), transform var(--tmg-transition), box-shadow var(--tmg-transition);
}

.tmg-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--tmg-navy), var(--tmg-navy-soft));
	opacity: 0;
	transition: opacity var(--tmg-transition);
}

.tmg-card:hover {
	border-color: var(--tmg-line-strong);
	transform: translateY(-3px);
	box-shadow: var(--tmg-shadow-lift);
}

.tmg-card:hover::before { opacity: 1; }
.tmg-card--link:focus-within { border-color: var(--tmg-navy); }

.tmg-section--mist .tmg-card { background-color: var(--tmg-white); }

.tmg-section--navy .tmg-card {
	background-color: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.16);
	box-shadow: none;
}
.tmg-section--navy .tmg-card:hover { border-color: rgba(255, 255, 255, 0.34); }
.tmg-section--navy .tmg-card::before { background: var(--tmg-white); }

.tmg-problem .elementor-widget-container,
.tmg-problem { color: var(--tmg-muted); font-style: italic; }

.tmg-solution .elementor-widget-container,
.tmg-solution { color: var(--tmg-navy); font-weight: 600; }

/* Capability pictograms lifted from the logo's own service icon set */
.tmg-pillar-icon {
	width: 54px;
	height: 54px;
	object-fit: contain;
	object-position: left center;
	display: block;
	margin-bottom: 4px;
}

.tmg-text-center .tmg-pillar-icon { object-position: center; margin-inline: auto; }

/* --------------------------------------------------------------------------
   7. PHASE / SEQUENCE MARKERS
   -------------------------------------------------------------------------- */
.tmg-phase { position: relative; }

.tmg-phase .tmg-phase-num .elementor-heading-title,
.tmg-phase-num {
	font-family: var(--tmg-display) !important;
	font-size: 2.9rem !important;
	font-weight: 800;
	line-height: 1;
	color: var(--tmg-silver);
	letter-spacing: -0.03em;
	transition: color var(--tmg-transition);
}

.tmg-phase:hover .tmg-phase-num .elementor-heading-title { color: var(--tmg-navy); }
.tmg-section--navy .tmg-phase-num .elementor-heading-title { color: rgba(255, 255, 255, 0.45); }
.tmg-section--navy .tmg-phase:hover .tmg-phase-num .elementor-heading-title { color: var(--tmg-white); }

/* --------------------------------------------------------------------------
   8. BUTTONS
   -------------------------------------------------------------------------- */
.elementor-button {
	font-family: var(--tmg-display);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-size: 0.8rem;
	border-radius: var(--tmg-radius);
	padding: 15px 30px;
	transition: all var(--tmg-transition);
	border: 1px solid transparent;
}

.elementor-button:hover { text-decoration: none; }

.tmg-btn-primary .elementor-button {
	background-color: var(--tmg-navy);
	color: var(--tmg-white);
	border-color: var(--tmg-navy);
}

.tmg-btn-primary .elementor-button:hover,
.tmg-btn-primary .elementor-button:focus {
	background-color: var(--tmg-navy-soft);
	border-color: var(--tmg-navy-soft);
	color: var(--tmg-white);
	box-shadow: var(--tmg-shadow-lift);
}

.tmg-btn-ghost .elementor-button {
	background-color: transparent;
	color: var(--tmg-navy);
	border-color: var(--tmg-line-strong);
}

.tmg-btn-ghost .elementor-button:hover,
.tmg-btn-ghost .elementor-button:focus {
	border-color: var(--tmg-navy);
	color: var(--tmg-navy);
	background-color: var(--tmg-mist);
}

.tmg-section--navy .tmg-btn-primary .elementor-button {
	background-color: var(--tmg-white);
	border-color: var(--tmg-white);
	color: var(--tmg-navy);
}
.tmg-section--navy .tmg-btn-primary .elementor-button:hover {
	background-color: var(--tmg-mist);
	border-color: var(--tmg-mist);
}
.tmg-section--navy .tmg-btn-ghost .elementor-button {
	color: var(--tmg-white);
	border-color: rgba(255, 255, 255, 0.4);
}
.tmg-section--navy .tmg-btn-ghost .elementor-button:hover {
	border-color: var(--tmg-white);
	background-color: rgba(255, 255, 255, 0.08);
	color: var(--tmg-white);
}

/* --------------------------------------------------------------------------
   9. LISTS
   -------------------------------------------------------------------------- */
.tmg-list .elementor-icon-list-item {
	border-bottom: 1px solid var(--tmg-line);
	padding-top: 10px;
	padding-bottom: 10px;
}

.tmg-list .elementor-icon-list-item:last-child { border-bottom: 0; }

.tmg-list .elementor-icon-list-text {
	color: var(--tmg-text);
	font-size: 0.97rem;
	line-height: 1.5;
}

.tmg-list .elementor-icon-list-icon svg,
.tmg-list .elementor-icon-list-icon i { color: var(--tmg-navy); fill: var(--tmg-navy); }

.tmg-section--navy .tmg-list .elementor-icon-list-item { border-color: rgba(255, 255, 255, 0.14); }
.tmg-section--navy .tmg-list .elementor-icon-list-text { color: rgba(255, 255, 255, 0.86); }
.tmg-section--navy .tmg-list .elementor-icon-list-icon svg { fill: var(--tmg-silver); }

.elementor-widget-text-editor ul { padding-left: 1.1em; margin: 0 0 1.1em; }
.elementor-widget-text-editor li { margin-bottom: 0.45em; }
.elementor-widget-text-editor li::marker { color: var(--tmg-navy); }

/* --------------------------------------------------------------------------
   10. SITE HEADER / FOOTER
   -------------------------------------------------------------------------- */
.site-header,
header.site-header {
	background-color: rgba(255, 255, 255, 0.94);
	backdrop-filter: saturate(150%) blur(10px);
	-webkit-backdrop-filter: saturate(150%) blur(10px);
	border-bottom: 1px solid var(--tmg-line);
	padding-top: 14px;
	padding-bottom: 14px;
	position: sticky;
	top: 0;
	z-index: 500;
}

.site-header .site-branding img,
.site-header .custom-logo { max-height: 76px; width: auto; }

.site-header .site-title a,
.site-header .site-title { color: var(--tmg-navy); font-weight: 800; letter-spacing: -0.01em; }
.site-header .site-description { color: var(--tmg-muted); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; }

.site-navigation ul.menu > li > a,
.site-header nav a {
	font-family: var(--tmg-display);
	color: var(--tmg-body);
	font-weight: 600;
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 10px 14px;
	position: relative;
	transition: color var(--tmg-transition);
}

.site-navigation ul.menu > li > a:hover,
.site-header nav a:hover { color: var(--tmg-navy); text-decoration: none; }

.site-navigation ul.menu > li.current-menu-item > a,
.site-navigation ul.menu > li.current_page_item > a { color: var(--tmg-navy); }

.site-navigation ul.menu > li.current-menu-item > a::after,
.site-navigation ul.menu > li.current_page_item > a::after {
	content: "";
	position: absolute;
	left: 14px; right: 14px; bottom: 2px;
	height: 2px;
	background: var(--tmg-navy);
}

.site-navigation ul.menu ul {
	background: var(--tmg-white);
	border: 1px solid var(--tmg-line);
	border-radius: var(--tmg-radius);
	box-shadow: var(--tmg-shadow-lift);
	padding: 6px 0;
	min-width: 260px;
}

.site-navigation ul.menu ul li a {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.92rem;
	padding: 9px 16px;
	display: block;
	color: var(--tmg-body);
}

.site-navigation ul.menu ul li a:hover { background: var(--tmg-mist); color: var(--tmg-navy); }

.site-footer,
.tmg-footer {
	background-color: var(--tmg-navy);
	background-image: linear-gradient(160deg, var(--tmg-navy) 0%, var(--tmg-navy-deep) 100%);
	color: rgba(255, 255, 255, 0.76);
	border-top: 0;
}

.tmg-footer-inner {
	max-width: var(--tmg-maxw);
	margin: 0 auto;
	padding: 60px 24px 44px;
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr;
	gap: 44px;
}

.tmg-footer h4 {
	font-family: var(--tmg-display);
	font-size: 0.72rem;
	letter-spacing: var(--tmg-eyebrow-tracking);
	text-transform: uppercase;
	color: var(--tmg-silver);
	margin-bottom: 16px;
}

.tmg-footer ul { list-style: none; margin: 0; padding: 0; }
.tmg-footer li { margin-bottom: 9px; }
.tmg-footer a { color: rgba(255, 255, 255, 0.82); font-size: 0.94rem; }
.tmg-footer a:hover { color: var(--tmg-white); }
.tmg-footer-logo img { max-width: 250px; height: auto; margin-bottom: 18px; }
.tmg-footer-blurb { color: rgba(255, 255, 255, 0.72); font-size: 0.92rem; line-height: 1.62; max-width: 44ch; }

.tmg-footer-legal {
	max-width: var(--tmg-maxw);
	margin: 0 auto;
	padding: 20px 24px 46px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	justify-content: space-between;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.82rem;
}

.tmg-footer-pillars {
	font-family: var(--tmg-display);
	color: var(--tmg-silver);
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-top: 16px;
	font-weight: 700;
}

@media (max-width: 880px) { .tmg-footer-inner { grid-template-columns: 1fr; gap: 32px; } }

/* --------------------------------------------------------------------------
   11. FORMS
   -------------------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="search"], textarea, select,
.elementor-field-textual {
	background-color: var(--tmg-white) !important;
	border: 1px solid var(--tmg-line-strong) !important;
	color: var(--tmg-navy) !important;
	border-radius: var(--tmg-radius) !important;
	padding: 13px 15px !important;
	font-family: var(--tmg-font) !important;
	font-size: 0.98rem !important;
	transition: border-color var(--tmg-transition), box-shadow var(--tmg-transition);
}

input::placeholder, textarea::placeholder, .elementor-field-textual::placeholder { color: var(--tmg-silver) !important; }

input:focus, textarea:focus, select:focus, .elementor-field-textual:focus {
	border-color: var(--tmg-navy) !important;
	box-shadow: 0 0 0 3px rgba(14, 47, 90, 0.12) !important;
	outline: none;
}

.elementor-field-label { color: var(--tmg-navy) !important; font-weight: 600; font-size: 0.85rem; }

/* --------------------------------------------------------------------------
   12. BLOG / ARCHIVE
   -------------------------------------------------------------------------- */
.tmg-archive-wrap { max-width: var(--tmg-maxw); margin: 0 auto; padding: 60px 24px 88px; }

article.post, .tmg-post-card {
	background: var(--tmg-white);
	border: 1px solid var(--tmg-line);
	border-radius: var(--tmg-radius-lg);
	padding: 28px;
	margin-bottom: 24px;
	box-shadow: var(--tmg-shadow);
}

article.post .entry-title a { color: var(--tmg-navy); }
article.post .entry-title a:hover { color: var(--tmg-navy-soft); }

.entry-meta, .post-meta {
	font-family: var(--tmg-display);
	color: var(--tmg-muted);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
}

.entry-content { color: var(--tmg-text); }
.entry-content h2, .entry-content h3 { margin-top: 1.7em; }

blockquote {
	border-left: 3px solid var(--tmg-navy);
	margin: 1.7em 0;
	padding: 4px 0 4px 22px;
	color: var(--tmg-navy);
	font-size: 1.1rem;
	font-style: italic;
}

table { width: 100%; border-collapse: collapse; margin: 1.5em 0; }
th, td { border: 1px solid var(--tmg-line); padding: 12px 14px; text-align: left; }
th {
	background: var(--tmg-mist);
	color: var(--tmg-navy);
	font-family: var(--tmg-display);
	font-weight: 700;
	font-size: 0.8rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   13. UTILITIES
   -------------------------------------------------------------------------- */
.tmg-text-center { text-align: center; }
.tmg-measure .elementor-widget-container { max-width: 68ch; }
.tmg-measure.tmg-text-center .elementor-widget-container { margin-left: auto; margin-right: auto; }
.tmg-divider-hair { border-top: 1px solid var(--tmg-line); }

.skip-link:focus { background: var(--tmg-navy); color: var(--tmg-white); padding: 10px 16px; z-index: 9999; }

/* --------------------------------------------------------------------------
   14. MOTION
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.tmg-card:hover { transform: none; }
}

/* --------------------------------------------------------------------------
   15. GRID SYSTEM
   Applied to Elementor containers set to full content width, so the class
   lands directly on the flex container and can be promoted to CSS Grid.
   Change the modifier class in Elementor › Advanced › CSS Classes to re-flow
   any grid without touching this file.
   -------------------------------------------------------------------------- */
.tmg-grid { display: grid !important; gap: 24px; width: 100%; align-items: stretch; }

.tmg-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tmg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tmg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tmg-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tmg-grid--7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.tmg-grid--split { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; }
.tmg-grid--sidebar { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; }

.tmg-grid > .e-con,
.tmg-grid > .elementor-element { min-width: 0; }

.tmg-card { padding: 30px; }
.tmg-card--tight { padding: 22px; }
.tmg-card--roomy { padding: 38px; }

@media (max-width: 1024px) {
	.tmg-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tmg-grid--7 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tmg-grid--split, .tmg-grid--sidebar { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 900px) {
	.tmg-grid--3, .tmg-grid--4, .tmg-grid--7 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.tmg-grid, .tmg-grid--2, .tmg-grid--3, .tmg-grid--4,
	.tmg-grid--5, .tmg-grid--7 { grid-template-columns: 1fr; gap: 18px; }
	.tmg-card { padding: 24px; }
}

/* --------------------------------------------------------------------------
   16. TIGHT-COLUMN CORRECTIONS
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6, p, li, a,
.elementor-heading-title,
.elementor-icon-list-text { overflow-wrap: break-word; word-break: normal; }

.tmg-grid--5 .tmg-card,
.tmg-grid--7 .tmg-card { padding: 24px 19px; }
.tmg-grid--5 .elementor-widget-heading .elementor-heading-title,
.tmg-grid--7 .elementor-widget-heading .elementor-heading-title { font-size: 1.02rem; letter-spacing: 0; line-height: 1.3; }
.tmg-grid--5 .elementor-widget-text-editor,
.tmg-grid--7 .elementor-widget-text-editor { font-size: 0.89rem; line-height: 1.55; }
.tmg-grid--5 .tmg-pillar-icon,
.tmg-grid--7 .tmg-pillar-icon { width: 44px; height: 44px; }
.tmg-grid--4 .elementor-widget-heading h3.elementor-heading-title { font-size: 1.14rem; }

.tmg-card .elementor-widget-heading h3.elementor-heading-title { font-size: 1.15rem; line-height: 1.32; }

/* The eyebrow style is borrowed for inline meta lines (phase timing, job
   title); the growth-bar tick belongs only to true section eyebrows. */
.elementor-widget-text-editor.tmg-eyebrow::after { display: none; }
.elementor-widget-text-editor.tmg-eyebrow .elementor-widget-container p { margin-bottom: 0; }

@media (max-width: 1024px) {
	.tmg-grid--5 .elementor-widget-heading .elementor-heading-title,
	.tmg-grid--7 .elementor-widget-heading .elementor-heading-title { font-size: 1.1rem; }
}

/* --------------------------------------------------------------------------
   17. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) { body { font-size: 17px; } }

@media (max-width: 767px) {
	body { font-size: 16.5px; line-height: 1.62; }
	.elementor-button { width: 100%; text-align: center; }
	.tmg-phase .tmg-phase-num .elementor-heading-title,
	.tmg-phase-num { font-size: 2.3rem !important; }
	.site-header { position: static; }
	.site-header .site-branding img, .site-header .custom-logo { max-height: 58px; }
	.tmg-footer-legal { flex-direction: column; }
}
