/* ============================================================
   Mirador Law - Home v4 stylesheet
   Scoped under .mdl-home-v4 so every rule wins specificity over
   Bootstrap, theme-style.css, home-style.css, and responsive.css.
   Breakpoints: 1100 / 992 / 768.
   ============================================================ */

/* Hard reset on the wrapper to neutralize Bootstrap leakage */
.mdl-home-v4,
.mdl-home-v4 *,
.mdl-home-v4 *::before,
.mdl-home-v4 *::after {
	box-sizing: border-box;
}
.mdl-home-v4 {
	/* Tokens */
	--mdl-gold:        #CAA45D;
	--mdl-gold-dark:   #B5903F;
	--mdl-prussian:    #243952;
	--mdl-prussian-d:  #1A2A3D;
	--mdl-slate:       #4E6072;
	--mdl-slate-light: #647C90;
	--mdl-paynes:      #506272;
	--mdl-light-blue:  #BECCD7;
	--mdl-azure:       #E8F6F8;
	--mdl-bg-light:    #F3F5F7;
	--mdl-bg-card:     #F4F4F4;
	--mdl-rule:        #DEE3E8;
	--mdl-font:        'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--mdl-container:   1366px;
	--mdl-gutter:      32px;
	--mdl-section-y:   80px;

	font-family: var(--mdl-font);
	font-weight: 400;
	font-size: 17px;
	line-height: 27px;
	color: var(--mdl-prussian);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Belt-and-braces: kill any padding-left:15px Bootstrap leaves on .row,.col,.container inside */
.mdl-home-v4 .row,
.mdl-home-v4 [class^="col-"],
.mdl-home-v4 [class*=" col-"] {
	margin: 0 !important;
	padding: 0 !important;
}

.mdl-home-v4 img { max-width: 100%; height: auto; display: block; }
.mdl-home-v4 a { color: var(--mdl-gold); text-decoration: none; }
.mdl-home-v4 a:hover { color: var(--mdl-gold-dark); }
.mdl-home-v4 button { font-family: inherit; cursor: pointer; }
.mdl-home-v4 h1, .mdl-home-v4 h2, .mdl-home-v4 h3, .mdl-home-v4 h4, .mdl-home-v4 h5, .mdl-home-v4 h6 {
	margin: 0; font-family: var(--mdl-font); line-height: 1.2;
}
.mdl-home-v4 p { margin: 0; }
.mdl-home-v4 hr { border: 0; }
.mdl-home-v4 .mdl-screen-reader-text {
	position: absolute !important; width: 1px !important; height: 1px !important;
	padding: 0 !important; margin: -1px !important; overflow: hidden !important;
	clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

/* Centred section wrapper. Each section has its own __wrap or __inner div
   so we don't reuse a single container class that might collide.            */
.mdl-home-v4 .mdl-team__wrap,
.mdl-home-v4 .mdl-trial__inner,
.mdl-home-v4 .mdl-vantage__inner,
.mdl-home-v4 .mdl-testimonials__wrap,
.mdl-home-v4 .mdl-verdicts__wrap,
.mdl-home-v4 .mdl-press__wrap,
.mdl-home-v4 .mdl-news__wrap,
.mdl-home-v4 .mdl-consult__inner,
.mdl-home-v4 .mdl-locations__wrap,
.mdl-home-v4 .mdl-cta__inner,
.mdl-home-v4 .mdl-hero__inner,
.mdl-home-v4 .mdl-awards__wrap {
	max-width: var(--mdl-container);
	margin-left: auto; margin-right: auto;
	padding-left: var(--mdl-gutter);
	padding-right: var(--mdl-gutter);
	width: 100%;
}

/* ------------------------------------------------------------
   Typography helpers
   ------------------------------------------------------------ */

/* Belt-and-suspenders: prevent any inner element from forcing the
 * page to scroll horizontally on mobile. If a section misbehaves
 * (e.g. an iframe with a fixed width, a long URL in copy, a wide
 * data table) it gets clipped instead of dragging the whole page
 * sideways. */
@media (max-width: 992px) {
	html, body { overflow-x: hidden !important; max-width: 100% !important; }
	.mdl-home-v4 { max-width: 100vw; overflow-x: hidden; }
}

.mdl-home-v4 .mdl-h2 {
	font-weight: 700; font-size: 32px; line-height: 38px;
	text-transform: uppercase; letter-spacing: 0;
	/* Safety: long single-word titles must wrap on narrow viewports
	 * instead of overflowing the container. */
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
	max-width: 100%;
}
.mdl-home-v4 .mdl-h2--prussian { color: var(--mdl-prussian); }
.mdl-home-v4 .mdl-h2--light    { color: var(--mdl-light-blue); }
.mdl-home-v4 .mdl-h4 { font-weight: 600; font-size: 21px; line-height: 31px; }
.mdl-home-v4 .mdl-h4--paynes { color: var(--mdl-paynes); }

/* ------------------------------------------------------------
   Buttons
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 14px 60px;
	font-family: var(--mdl-font);
	font-weight: 500; font-size: 16px; line-height: 24px;
	letter-spacing: 1px; text-transform: uppercase; text-decoration: none;
	border: 0; cursor: pointer; white-space: nowrap;
	transition: background-color .2s ease, transform .15s ease;
}
.mdl-home-v4 .mdl-btn--gold       { background: var(--mdl-gold); color: #fff; }
.mdl-home-v4 .mdl-btn--gold:hover { background: var(--mdl-gold-dark); color: #fff; }
.mdl-home-v4 .mdl-btn--prussian       { background: var(--mdl-prussian); color: #fff; padding: 14px 48px; }
.mdl-home-v4 .mdl-btn--prussian:hover { background: var(--mdl-prussian-d); color: #fff; }
.mdl-home-v4 .mdl-btn--lg { padding: 14px 60px; min-width: 380px; }

.mdl-home-v4 .mdl-readmore {
	display: inline-block;
	font-weight: 500; font-size: 14px; line-height: 24px;
	letter-spacing: 1px; text-transform: uppercase; color: var(--mdl-gold);
}
.mdl-home-v4 .mdl-readmore:hover { color: var(--mdl-gold-dark); }

/* ------------------------------------------------------------
   SECTION 1 - HERO
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-hero {
	position: relative; overflow: hidden;
	min-height: 720px;
	display: flex; align-items: flex-end;
	margin: 0;
}
.mdl-home-v4 .mdl-hero__media { position: absolute; inset: 0; z-index: 0; }
.mdl-home-v4 .mdl-hero__video,
.mdl-home-v4 .mdl-hero__poster {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.mdl-home-v4 .mdl-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(179deg, rgba(0,0,0,0) 1%, rgba(0,0,0,.4) 100%);
}
.mdl-home-v4 .mdl-hero__inner {
	position: relative; z-index: 1; text-align: center;
	padding-top: 0;             /* no top padding */
	padding-bottom: 80px;       /* breathing room from next section */
	display: flex; flex-direction: column; align-items: center; gap: 32px;
}
.mdl-home-v4 .mdl-hero__title {
	color: #fff;
	font-weight: 700; font-size: 46px; line-height: 58px;
	text-transform: uppercase; margin: 0;
	max-width: 1220px; letter-spacing: 0;
}
.mdl-home-v4 .mdl-hero__sub {
	color: #fff;
	font-weight: 600; font-size: 21px; line-height: 31px;
	margin: -20px 0 0; max-width: 1137px;
}
.mdl-home-v4 .mdl-hero__actions { display: flex; gap: 32px; justify-content: center; flex-wrap: wrap; }
.mdl-home-v4 .mdl-hero__phone {
	color: #fff; font-weight: 500; font-size: 17px; line-height: 27px; margin: 0;
}
.mdl-home-v4 .mdl-hero__phone a { color: #fff; }
.mdl-home-v4 .mdl-hero__phone a:hover { color: var(--mdl-gold); }

/* ------------------------------------------------------------
   SECTION 2 - VANTAGE POINT
   No background pattern or overlay - user uploads their own image
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-vantage {
	position: relative;
	background-color: #0A0A0A;
	color: #fff;
	padding: 64px 0;
	overflow: hidden;
}
/* When a custom background image is uploaded, drop the dark base so the image is the only thing visible */
.mdl-home-v4 .mdl-vantage.mdl-vantage--has-bg { background-color: transparent; }
.mdl-home-v4 .mdl-vantage__inner { position: relative; z-index: 1; text-align: center; }
.mdl-home-v4 .mdl-vantage__inner .mdl-h2 { color: #E8F6F8; margin-bottom: 32px; }
.mdl-home-v4 .mdl-vantage__copy {
	color: #fff;
	font-weight: 400; font-size: 21px; line-height: 31px;
	max-width: 980px; margin: 0 auto;
}

/* ------------------------------------------------------------
   SECTION 3+4 - TEAM PHOTO + EXPERIENCE CARD
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-team {
	position: relative; background: #fff; padding-bottom: 80px;
}
.mdl-home-v4 .mdl-team__photo {
	height: 480px; overflow: hidden; position: relative;
}
.mdl-home-v4 .mdl-team__photo-img {
    width: 100%; height: 100%; object-fit: cover; object-position: center top;
}
.mdl-home-v4 .mdl-team__wrap { position: relative; z-index: 2; }
.mdl-home-v4 .mdl-team__card {
	background: var(--mdl-prussian);
	color: #fff;
	padding: 64px 80px;
	margin-top: -120px;
	text-align: center;
	max-width: 1357px;
	margin-left: auto; margin-right: auto;
}
.mdl-home-v4 .mdl-team__title {
	color: var(--mdl-light-blue);
	font-weight: 700; font-size: 32px; line-height: 38px;
	text-transform: uppercase; margin-bottom: 18px;
}
.mdl-home-v4 .mdl-team__lede {
	color: var(--mdl-azure);
	font-weight: 600; font-size: 21px; line-height: 31px;
	margin-bottom: 18px; max-width: 1236px; margin-left: auto; margin-right: auto;
}
.mdl-home-v4 .mdl-team__body {
	color: var(--mdl-azure);
	font-weight: 400; font-size: 17px; line-height: 27px;
	margin-bottom: 32px; max-width: 1236px; margin-left: auto; margin-right: auto;
}

/* ------------------------------------------------------------
   SECTION 5 - TRIAL-READY ADVANTAGE
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-trial {
	background: #FDFDFD;
	padding: calc(var(--mdl-section-y) + 40px) 0 var(--mdl-section-y);
}
.mdl-home-v4 .mdl-trial__inner {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 64px;
	align-items: center;
}
.mdl-home-v4 .mdl-trial__copy { display: flex; flex-direction: column; gap: 18px; }
.mdl-home-v4 .mdl-trial__copy .mdl-h2 { margin-bottom: 0; }
.mdl-home-v4 .mdl-trial__lede {
	color: var(--mdl-paynes);
	font-weight: 600; font-size: 21px; line-height: 31px;
}
.mdl-home-v4 .mdl-trial__body {
	color: var(--mdl-paynes);
	font-weight: 400; font-size: 17px; line-height: 27px;
}
.mdl-home-v4 .mdl-trial__copy .mdl-btn { margin-top: 14px; align-self: flex-start; }
.mdl-home-v4 .mdl-trial__media {
	position: relative !important;
	height: 460px !important;
	background: transparent !important;
	overflow: hidden !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
.mdl-home-v4 .mdl-trial__media .mdl-video-trigger {
	position: relative !important;
	height: 100% !important;
	width: 100% !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
}
.mdl-home-v4 .mdl-trial__media .mdl-video-trigger__thumb,
.mdl-home-v4 .mdl-trial__media img.mdl-video-trigger__thumb {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	min-width: 100% !important;
	min-height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Video trigger reusable component */
.mdl-home-v4 .mdl-video-trigger {
	position: relative; display: block; width: 100%;
	padding: 0; background: transparent; border: 0;
	overflow: hidden; cursor: pointer;
	box-shadow: 0 4px 12px rgba(0,0,0,.25);
}
.mdl-home-v4 .mdl-video-trigger__thumb {
	width: 100%; height: auto; display: block;
	transition: transform .4s ease;
}
.mdl-home-v4 .mdl-video-trigger:hover .mdl-video-trigger__thumb { transform: scale(1.02); }
.mdl-home-v4 .mdl-video-trigger__play {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%,-50%);
	width: 88px; height: 88px; pointer-events: none;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,.3));
	transition: transform .2s ease;
}
.mdl-home-v4 .mdl-video-trigger__play img { width: 88px; height: 88px; }
.mdl-home-v4 .mdl-video-trigger:hover .mdl-video-trigger__play { transform: translate(-50%,-50%) scale(1.08); }

/* ------------------------------------------------------------
   SECTION 6 - CLIENT TESTIMONIALS
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-testimonials {
	background: var(--mdl-bg-light);
	padding: var(--mdl-section-y) 0 40px;
}
.mdl-home-v4 .mdl-section-head {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; margin-bottom: 40px; flex-wrap: wrap;
}
.mdl-home-v4 .mdl-section-head--center {
	flex-direction: column; text-align: center; gap: 14px;
}
.mdl-home-v4 .mdl-section-head__sub { margin-top: 4px; }
.mdl-home-v4 .mdl-testimonials__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
}
.mdl-home-v4 .mdl-testimonial {
	background: var(--mdl-prussian);
	display: flex; flex-direction: column;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}
/* Kill theme's gold hover border around testimonial cards / video triggers */
.mdl-home-v4 .mdl-testimonial,
.mdl-home-v4 .mdl-testimonial:hover,
.mdl-home-v4 .mdl-testimonial:focus,
.mdl-home-v4 .mdl-testimonial:focus-within,
.mdl-home-v4 .mdl-testimonial__media,
.mdl-home-v4 .mdl-testimonial__media:hover,
.mdl-home-v4 .mdl-testimonial__media:focus,
.mdl-home-v4 .mdl-testimonial .mdl-video-trigger,
.mdl-home-v4 .mdl-testimonial .mdl-video-trigger:hover,
.mdl-home-v4 .mdl-testimonial .mdl-video-trigger:focus,
.mdl-home-v4 .mdl-testimonial .mdl-video-trigger:focus-visible,
.mdl-home-v4 .mdl-testimonial a,
.mdl-home-v4 .mdl-testimonial a:hover,
.mdl-home-v4 .mdl-testimonial a:focus {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	background-clip: padding-box !important;
}
.mdl-home-v4 .mdl-testimonial__media {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 320px !important;
	padding: 0 !important;
	box-shadow: none !important;
	background: transparent;
	border: 0;
	overflow: hidden !important;
}
/* Stretch the image to fill the 320px box regardless of its natural dimensions.
   Defeats the existing theme's `img { max-width: 100%; height: auto }` rule. */
.mdl-home-v4 .mdl-testimonial__media .mdl-video-trigger__thumb,
.mdl-home-v4 .mdl-testimonial__media img.mdl-video-trigger__thumb {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	min-width: 100% !important;
	min-height: 100% !important;
	object-fit: cover !important;
	object-position: center center !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}
.mdl-home-v4 .mdl-testimonial__media .mdl-video-trigger__play { z-index: 2; }
.mdl-home-v4 .mdl-testimonial__caption { padding: 24px; text-align: center; }
.mdl-home-v4 .mdl-testimonial__name {
	color: #fff;
	font-weight: 600; font-size: 21px; line-height: 31px; margin-bottom: 4px;
}
.mdl-home-v4 .mdl-testimonial__sub {
	color: var(--mdl-gold);
	font-weight: 600; font-size: 18px; line-height: 28px;
}

/* ------------------------------------------------------------
   SECTION 7 - AWARDS STRIP
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-awards { background: var(--mdl-slate); padding: var(--mdl-section-y) 0; }
.mdl-home-v4 .mdl-awards__title {
	text-align: center;
	color: var(--mdl-azure, #E8F6F8);
	text-transform: uppercase;
	margin-bottom: 36px;
}
.mdl-home-v4 .mdl-awards__grid {
	display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
}
.mdl-home-v4 .mdl-award {
	background: var(--mdl-slate-light);
	padding: 12px;
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 1 / 1;
}
.mdl-home-v4 .mdl-award__img {
	max-width: 100%; max-height: 100%; object-fit: contain; background: #fff;
}

/* ------------------------------------------------------------
   SECTION 8 - VERDICTS / RESULTS WON
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-verdicts {
	position: relative;
	background-color: var(--mdl-prussian);
	/* Drop your background image in here (or set it inline on the section).
	   The prussian color shows through as a fallback / behind transparency. */
	background-image: var(--mdl-verdicts-bg, none);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: var(--mdl-section-y) 0;
	overflow: hidden;
}
/* Readability veil over the background image — sits under the content.
   Only visible once a background image is set. */
.mdl-home-v4 .mdl-verdicts::before {
	content: "";
	position: absolute; inset: 0;
	background: rgba(36, 57, 82, .55);
	pointer-events: none;
}
.mdl-home-v4 .mdl-verdicts__wrap { position: relative; z-index: 1; }
.mdl-home-v4 .mdl-verdicts .mdl-h2 { color: #fff; }
.mdl-home-v4 .mdl-verdicts__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;             /* equal row heights */
	gap: 24px;
}
/* Hard cap at 3 cards — defensive in case any fallback path returns more */
.mdl-home-v4 .mdl-verdicts__grid > .mdl-verdict:nth-child(n+4) { display: none !important; }
.mdl-home-v4 .mdl-verdict {
	background: rgba(78, 96, 114, .92);   /* slate, slightly translucent over the image */
	border-top: 4px solid var(--mdl-gold);
	padding: 36px 28px;
	text-align: center;
	color: #fff;
	display: flex; flex-direction: column; gap: 14px;
	min-height: 220px;
	justify-content: center;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.mdl-home-v4 .mdl-verdict:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 24px rgba(0,0,0,.25);
	color: #fff;
}
.mdl-home-v4 .mdl-verdict__amount {
	font-weight: 700; font-size: 36px; line-height: 1;
	letter-spacing: .5px; color: #fff;
}
.mdl-home-v4 .mdl-verdict__desc {
	font-weight: 400; font-size: 17px; line-height: 26px;
	color: #fff; min-height: 52px;
}
.mdl-home-v4 .mdl-verdict__more {
	display: inline-block; margin-top: 4px;
	font-weight: 500; font-size: 14px; letter-spacing: 1px;
	text-transform: uppercase; color: var(--mdl-gold);
}

/* ------------------------------------------------------------
   SECTION 9 - RECENT PRESS
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-press {
	background: var(--mdl-slate-light);
	padding: var(--mdl-section-y) 0;
}
.mdl-home-v4 .mdl-press .mdl-h2--light { color: #fff; }
/* Press grid: 3 columns × 2 rows, equal heights so Read More aligns
   across all 6 cards. Cap at 6 — anything beyond is hidden (the
   WP_Query is already limited, this is defensive). */
.mdl-home-v4 .mdl-press__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;          /* every row the same height */
	gap: 24px;
}
.mdl-home-v4 .mdl-press__grid > .mdl-press__card:nth-child(n+7) { display: none !important; }
.mdl-home-v4 .mdl-press__card {
	background: #fff;
	padding: 28px;
	display: flex; flex-direction: column; gap: 14px;
	color: inherit;
	text-decoration: none !important;
	border: 1px solid transparent;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	cursor: pointer;
	height: 100%;                /* fill the grid cell */
}
.mdl-home-v4 .mdl-press__card:hover,
.mdl-home-v4 .mdl-press__card:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 12px 24px rgba(0,0,0,.12);
	border-color: var(--mdl-light-blue);
}
.mdl-home-v4 .mdl-press__card:focus-visible { outline: 2px solid var(--mdl-gold); outline-offset: 2px; }
.mdl-home-v4 .mdl-press__card:hover .mdl-readmore { color: var(--mdl-gold-dark); }
.mdl-home-v4 .mdl-press__card-title {
	color: var(--mdl-prussian);
	font-weight: 700; font-size: 20px; line-height: 28px;
	text-transform: none !important;   /* normal case per figma — defeats any inherited uppercase */
	letter-spacing: 0 !important;
}
.mdl-home-v4 .mdl-press__card-rule {
	border-top: 1px solid var(--mdl-rule); margin: 0;
}
.mdl-home-v4 .mdl-press__card-body {
	color: var(--mdl-prussian);
	font-weight: 400; font-size: 15px; line-height: 24px;
	/* Truncate to 4 lines across every card so all 6 cards in the grid
	   reach the same visual height — keeps the Read More row aligned. */
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* Read More sticks to the bottom of each card so all 6 align in a clean
   horizontal line across both rows. */
.mdl-home-v4 .mdl-press__card .mdl-readmore {
	margin-top: auto;
}

/* ------------------------------------------------------------
   SECTION 10 - RECENT NEWS
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-news {
	background: #fff;
	padding: var(--mdl-section-y) 0;
}
.mdl-home-v4 .mdl-news__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;          /* equal row heights so Read More aligns */
	gap: 24px;
}
/* Hard cap at 3 cards - if anything injects extras they're hidden */
.mdl-home-v4 .mdl-news__grid > .mdl-news__card:nth-child(n+4) { display: none !important; }
.mdl-home-v4 .mdl-news__card {
	background: var(--mdl-bg-card);
	display: flex; flex-direction: column;
	color: inherit;
	text-decoration: none !important;
	border: 1px solid transparent;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	cursor: pointer;
	height: 100%;                 /* fill the grid cell */
}
.mdl-home-v4 .mdl-news__card:hover,
.mdl-home-v4 .mdl-news__card:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 12px 24px rgba(0,0,0,.12);
	border-color: var(--mdl-light-blue);
}
.mdl-home-v4 .mdl-news__card:focus-visible { outline: 2px solid var(--mdl-gold); outline-offset: 2px; }
.mdl-home-v4 .mdl-news__card:hover .mdl-readmore { color: var(--mdl-gold-dark); }
.mdl-home-v4 .mdl-news__thumb {
	display: block !important;
	position: relative !important;
	/* 25px inset on top + left + right so the image floats inside the card
	   instead of running edge-to-edge. Bottom inset is handled by the body's
	   top padding, so they stay flush together with no double-gap. */
	margin: 25px 25px 0 !important;
	width: calc(100% - 50px) !important;
	height: 0 !important;
	padding-top: calc(100% - 50px) !important;  /* maintain 1:1 with new width */
	padding-bottom: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	overflow: hidden !important;
}
.mdl-home-v4 .mdl-news__thumb img {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	min-width: 100% !important;
	min-height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: transform .4s ease;
}
.mdl-home-v4 .mdl-news__card:hover .mdl-news__thumb img { transform: scale(1.04); }
.mdl-home-v4 .mdl-news__body {
	padding: 28px 25px;
	display: flex; flex-direction: column; gap: 16px; flex: 1;
}
.mdl-home-v4 .mdl-news__title {
	color: var(--mdl-prussian);
	font-weight: 600; font-size: 21px; line-height: 28px;
	text-transform: none !important;   /* normal case per figma */
	letter-spacing: 0 !important;
}
.mdl-home-v4 .mdl-news__body .mdl-readmore { margin-top: auto; }
.mdl-home-v4 .mdl-news__rule {
	border-top: 1px solid var(--mdl-rule); margin: 0;
}
.mdl-home-v4 .mdl-news__excerpt {
	color: var(--mdl-prussian);
	font-weight: 400; font-size: 15px; line-height: 24px;
	/* Truncate to 4 lines — equal card heights regardless of source length */
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 0 0 auto;
}

/* ------------------------------------------------------------
   SECTION 11 - CONSULTATION FORM
   No background pattern - user can upload their own image
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-consult {
	position: relative;
	background-color: var(--mdl-slate);
	padding: 80px 0;
	overflow: hidden;
}
.mdl-home-v4 .mdl-consult.mdl-consult--has-bg { background-color: transparent; }
.mdl-home-v4 .mdl-consult__inner { position: relative; z-index: 1; text-align: center; }
.mdl-home-v4 .mdl-consult__diamond {
	display: block; margin: 0 auto 28px;
	max-width: 260px; max-height: 260px;
	width: auto; height: auto;
}
.mdl-home-v4 .mdl-consult__card {
	background: #fff;
	padding: 56px 64px 44px;
	text-align: left;
	max-width: 1160px;
	margin: 0 auto;
}
.mdl-home-v4 .mdl-consult__title { text-align: center; margin-bottom: 36px; }
.mdl-home-v4 .mdl-consult__notice {
	padding: 14px 18px; margin-bottom: 24px;
	font-size: 15px; line-height: 22px;
}
.mdl-home-v4 .mdl-consult__notice--ok  { background: #E8F5E9; color: #1B5E20; border-left: 4px solid #2E7D32; }
.mdl-home-v4 .mdl-consult__notice--err { background: #FBEAEA; color: #7A1F1F; border-left: 4px solid #B71C1C; }

.mdl-home-v4 .mdl-form { display: flex; flex-direction: column; gap: 32px; margin: 0; }
.mdl-home-v4 .mdl-form__row {
	display: grid; grid-template-columns: 1fr 1fr; gap: 56px;
}
.mdl-home-v4 .mdl-form__field { display: flex; flex-direction: column; }
.mdl-home-v4 .mdl-form__field--full { width: 100%; }
.mdl-home-v4 .mdl-form__label {
	color: var(--mdl-prussian);
	font-size: 14px; font-weight: 500; margin-bottom: 8px;
}
.mdl-home-v4 .mdl-form__field input[type="text"],
.mdl-home-v4 .mdl-form__field input[type="email"],
.mdl-home-v4 .mdl-form__field input[type="tel"],
.mdl-home-v4 .mdl-form__field textarea {
	font-family: inherit; font-size: 16px;
	color: var(--mdl-prussian);
	background: transparent;
	border: 0;
	border-bottom: 1px solid #B7BFC7;
	border-radius: 0;
	padding: 8px 0;
	outline: none;
	transition: border-color .2s ease;
	width: 100%;
	box-shadow: none;
}
.mdl-home-v4 .mdl-form__field input:focus,
.mdl-home-v4 .mdl-form__field textarea:focus { border-bottom-color: var(--mdl-gold); }
.mdl-home-v4 .mdl-form__field textarea { resize: vertical; min-height: 120px; }
.mdl-home-v4 .mdl-form__hp { position: absolute !important; left: -9999px !important; }
.mdl-home-v4 .mdl-form__footer {
	display: flex; align-items: center; justify-content: space-between;
	gap: 32px; flex-wrap: wrap;
}
.mdl-home-v4 .mdl-form__check {
	display: flex; align-items: center; gap: 12px;
	color: var(--mdl-prussian); font-size: 15px; margin: 0;
}
.mdl-home-v4 .mdl-form__check input {
	width: 20px; height: 20px; accent-color: var(--mdl-prussian); margin: 0;
}
.mdl-home-v4 .mdl-form__check a { color: var(--mdl-prussian); text-decoration: underline; }

/* ------------------------------------------------------------
   Gravity Forms — styled to match the v4 design when
   `[gravityform id="X" title="true"]` is used in the consult section.
   Targets gform_wrapper inside .mdl-consult__card.
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-consult__card .gform_wrapper { width: 100%; }
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_title {
	color: var(--mdl-prussian) !important;
	font-family: var(--mdl-font) !important;
	font-weight: 700 !important;
	font-size: 28px !important;
	text-align: center !important;
	margin-bottom: 24px !important;
	display: none;  /* hide GF title - section already has its own H2 */
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_description {
	color: var(--mdl-paynes) !important;
	font-size: 15px !important;
	margin-bottom: 28px !important;
	display: block !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 32px 56px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield {
	display: flex !important;
	flex-direction: column !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield--width-full,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield.gfield_html,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_type_textarea,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_type_consent,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_type_section,
.mdl-home-v4 .mdl-consult__card .gform_wrapper li.gfield:has(textarea),
.mdl-home-v4 .mdl-consult__card .gform_wrapper li.gfield:has(input[type="checkbox"]) {
	grid-column: 1 / -1 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_label,
.mdl-home-v4 .mdl-consult__card .gform_wrapper legend.gfield_label {
	color: var(--mdl-prussian) !important;
	font-family: var(--mdl-font) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	margin: 0 0 8px 0 !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_required {
	color: var(--mdl-gold) !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container input[type="text"],
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container input[type="email"],
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container input[type="tel"],
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container input[type="url"],
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container input[type="number"],
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container textarea,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container select {
	font-family: var(--mdl-font) !important;
	font-size: 16px !important;
	color: var(--mdl-prussian) !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid #B7BFC7 !important;
	border-radius: 0 !important;
	padding: 8px 0 !important;
	outline: none !important;
	width: 100% !important;
	max-width: 100% !important;
	box-shadow: none !important;
	margin: 0 !important;
	min-height: auto !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container input:focus,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container textarea:focus,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container select:focus {
	border-bottom-color: var(--mdl-gold) !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_container textarea {
	resize: vertical !important;
	min-height: 120px !important;
	padding: 8px 0 !important;
}
/* Name and date composite fields */
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_complex {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 24px !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_complex span {
	display: flex !important;
	flex-direction: column !important;
}
/* Checkbox / consent */
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_checkbox,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_consent {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_checkbox input[type="checkbox"],
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_consent input[type="checkbox"] {
	width: 20px !important;
	height: 20px !important;
	accent-color: var(--mdl-prussian);
	margin: 0 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_consent_label,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gchoice label {
	color: var(--mdl-prussian) !important;
	font-size: 15px !important;
}
/* ============================================================
 * Gravity Forms 2.5+ WRAPPER LAYOUT RESET
 * GF 2.5+ ships with `gravity-theme` CSS that turns `.gform_wrapper`
 * into a flex or grid container. Depending on the version, that
 * positioning sometimes throws the `.gform_validation_errors` panel
 * to the bottom of the wrapper instead of the top - making it
 * overlap with the consent checkbox + submit row.
 *
 * Fix: force the wrapper to normal block flow so children stack in
 * DOM order, then belt-and-suspender the error panel with `order`
 * and `grid-row` so even if some other rule re-enables flex/grid,
 * the error still pins to the top.
 * ============================================================ */
.mdl-home-v4 .mdl-consult__card .gform_wrapper,
.mdl-home-v4 .mdl-consult__card div.gform_wrapper {
	display: block !important;
	flex-direction: initial !important;
	grid-template-columns: initial !important;
	grid-template-rows: initial !important;
	grid-template-areas: initial !important;
}
/* Validation errors - per-field messages */
.mdl-home-v4 .mdl-consult__card .gform_wrapper .validation_error,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_error .gfield_label {
	color: #B71C1C !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gfield_validation_message {
	color: #B71C1C !important;
	font-size: 13px !important;
	margin-top: 6px !important;
}
/* GF 2.5+ summary error box - pin it to the top, full width */
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors,
.mdl-home-v4 .mdl-consult__card .gform_wrapper div.gform_validation_errors,
.mdl-home-v4 .mdl-consult__card div.gform_wrapper > .gform_validation_errors {
	display: block !important;
	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 18px 0 !important;
	padding: 14px 18px !important;
	background: rgba(183, 28, 28, .08) !important;
	border: 1px solid rgba(183, 28, 28, .25) !important;
	border-left: 4px solid #B71C1C !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	color: #B71C1C !important;
	z-index: 5 !important;
	clear: both !important;
	float: none !important;
	/* Belt-and-suspenders: if some parent rule re-enables flex/grid,
	 * these properties keep the error panel at the top of the order. */
	order: -999 !important;
	grid-column: 1 / -1 !important;
	grid-row: 1 !important;
	align-self: stretch !important;
	justify-self: stretch !important;
	top: auto !important;
	bottom: auto !important;
	left: auto !important;
	right: auto !important;
	transform: none !important;
}
/* Summary heading - "There was a problem with your submission..." */
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors h2,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors .gform_submission_error,
.mdl-home-v4 .mdl-consult__card .gform_wrapper h2.gform_submission_error {
	margin: 0 !important;
	padding: 0 !important;
	color: #B71C1C !important;
	font-family: var(--mdl-font, "Montserrat", sans-serif) !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	background: transparent !important;
	border: 0 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors .gform-icon {
	display: none !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors > ol {
	margin: 8px 0 0 18px !important;
	padding: 0 !important;
	list-style: decimal !important;
	color: #B71C1C !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors > ol li {
	margin: 2px 0 !important;
	padding: 0 !important;
	background: transparent !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_validation_errors > ol li a {
	color: #B71C1C !important;
	text-decoration: underline !important;
}
/* Submit button */
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_footer,
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_page_footer {
	display: flex !important;
	justify-content: flex-end !important;
	margin: 24px 0 0 0 !important;
	padding: 0 !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_button {
	background: var(--mdl-prussian) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 14px 48px !important;
	font-family: var(--mdl-font) !important;
	font-weight: 500 !important;
	font-size: 16px !important;
	line-height: 24px !important;
	letter-spacing: 1px !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: background-color .2s ease !important;
	box-shadow: none !important;
}
.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_button:hover {
	background: #1A2A3D !important;
}
/* Submission confirmation */
.mdl-home-v4 .mdl-consult__card .gform_confirmation_message,
.mdl-home-v4 .mdl-consult__card .gform_confirmation_wrapper {
	color: var(--mdl-prussian) !important;
	font-size: 17px !important;
	text-align: center !important;
	padding: 24px !important;
	background: #E8F5E9;
	border-left: 4px solid #2E7D32;
}
/* Mobile - single column */
@media (max-width: 768px) {
	.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_fields {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}
	.mdl-home-v4 .mdl-consult__card .gform_wrapper .ginput_complex {
		grid-template-columns: 1fr !important;
	}
	.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_footer {
		justify-content: stretch !important;
	}
	.mdl-home-v4 .mdl-consult__card .gform_wrapper .gform_button {
		width: 100% !important;
	}
}

/* ------------------------------------------------------------
   SECTION 12 - LOCATIONS + MAP
   Cards row is centered at 1366px (matches other sections).
   Map below uses full-bleed pattern to span the viewport width.
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-locations {
	background: #fff;
	padding: var(--mdl-section-y) 0 0;
}
.mdl-home-v4 .mdl-locations__title { text-align: center; margin-bottom: 36px; }
.mdl-home-v4 .mdl-locations__inner { position: relative; }
.mdl-home-v4 .mdl-locations__cards {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
	position: relative; z-index: 2; margin-bottom: -180px;
}
/* Full-bleed map: break out of the 1366px container to span the entire viewport */
.mdl-home-v4 .mdl-locations__map {
	position: relative;
	overflow: hidden;
	padding-top: 60px;
	width: 100vw;
	left: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	max-width: 100vw;
}
.mdl-home-v4 .mdl-loc-card {
	background: #fff;
	box-shadow: 0 10px 30px rgba(36, 57, 82, .15);
	padding: 24px 22px;
	display: flex; flex-direction: column; gap: 14px;
}
.mdl-home-v4 .mdl-loc-card__title {
	color: var(--mdl-prussian);
	font-weight: 700; font-size: 18px; letter-spacing: .5px; margin: 0;
}
.mdl-home-v4 .mdl-loc-card__addr {
	display: flex; gap: 10px;
	color: var(--mdl-prussian);
	font-size: 15px; line-height: 22px;
}
.mdl-home-v4 .mdl-loc-card__addr p { margin: 0; }
.mdl-home-v4 .mdl-loc-card__icon {
	width: 20px; height: 20px; flex-shrink: 0;
	opacity: .7; color: var(--mdl-prussian);
}
.mdl-home-v4 .mdl-loc-card__dirs {
	color: var(--mdl-prussian);
	font-size: 14px; font-weight: 600; text-decoration: underline;
	width: max-content;
}
.mdl-home-v4 .mdl-loc-card__phone {
	display: inline-flex; align-items: center; gap: 10px;
	color: var(--mdl-prussian);
	font-size: 15px; font-weight: 500; width: max-content;
}
.mdl-home-v4 .mdl-loc-card__phone:hover { color: var(--mdl-gold); }
.mdl-home-v4 .mdl-locations__map iframe {
	width: 100%; height: 540px; border: 0; display: block;
}
.mdl-home-v4 .mdl-locations__map-img {
	width: 100%; height: 540px; object-fit: cover;
}

/* ------------------------------------------------------------
   SECTION 13 - STRATEGIC ADVANTAGE CTA
   ------------------------------------------------------------ */
.mdl-home-v4 .mdl-cta {
	background: var(--mdl-light-blue);
	padding: 64px 0;
	text-align: center;
}
.mdl-home-v4 .mdl-cta__inner {
	display: flex; flex-direction: column; align-items: center; gap: 18px;
	max-width: 900px; margin: 0 auto;
}
.mdl-home-v4 .mdl-cta__eyebrow {
	color: var(--mdl-prussian);
	font-weight: 600; font-size: 18px; line-height: 1.4;
	text-transform: uppercase; letter-spacing: 1.5px; margin: 0;
}
.mdl-home-v4 .mdl-cta__inner .mdl-h2 { margin: 0; }
.mdl-home-v4 .mdl-cta__sub {
	color: var(--mdl-paynes);
	font-weight: 600; font-size: 21px; line-height: 31px; margin: 0;
}
.mdl-home-v4 .mdl-cta__inner .mdl-btn { margin-top: 14px; }

/* ------------------------------------------------------------
   Video modal
   ------------------------------------------------------------ */
.mdl-modal {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center;
	padding: 32px;
}
.mdl-modal[hidden] { display: none; }
.mdl-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.85); }
.mdl-modal__panel { position: relative; z-index: 1; width: 100%; max-width: 1024px; background: #000; }
.mdl-modal__close {
	position: absolute; top: -40px; right: 0;
	background: transparent; color: #fff; border: 0; font-size: 32px; line-height: 1; cursor: pointer;
}
.mdl-modal__embed { position: relative; padding-top: 56.25%; }
.mdl-modal__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ============================================================
   Responsive
   ============================================================ */

/* 992 */
@media (max-width: 992px) {
	.mdl-home-v4 { --mdl-section-y: 56px; }
	.mdl-home-v4 .mdl-h2 { font-size: 28px; line-height: 34px; }
	.mdl-home-v4 .mdl-hero { min-height: 520px; }
	.mdl-home-v4 .mdl-hero__title { font-size: 36px; line-height: 46px; }
	.mdl-home-v4 .mdl-hero__sub { font-size: 18px; line-height: 28px; }
	.mdl-home-v4 .mdl-btn--lg { min-width: 0; padding: 14px 36px; }
	.mdl-home-v4 .mdl-team__photo { height: 360px; }
	.mdl-home-v4 .mdl-team__card { padding: 48px 32px; margin-top: -80px; }
	.mdl-home-v4 .mdl-trial__inner { grid-template-columns: 1fr; gap: 40px; }
	.mdl-home-v4 .mdl-press__grid,
	.mdl-home-v4 .mdl-news__grid,
	.mdl-home-v4 .mdl-locations__cards { grid-template-columns: 1fr 1fr; }
	.mdl-home-v4 .mdl-locations__cards { margin-bottom: -120px; }
	.mdl-home-v4 .mdl-awards__grid { grid-template-columns: repeat(3, 1fr); }
}

/* 768 */
@media (max-width: 768px) {
	.mdl-home-v4 { --mdl-section-y: 48px; --mdl-gutter: 20px; }
	.mdl-home-v4 .mdl-h2 { font-size: 22px; line-height: 28px; }
	.mdl-home-v4 .mdl-hero { min-height: 520px; }
	.mdl-home-v4 .mdl-hero__title { font-size: 24px; line-height: 30px; }
	.mdl-home-v4 .mdl-hero__sub { font-size: 14px; line-height: 22px; }
	.mdl-home-v4 .mdl-vantage { padding: 48px 0; }
	.mdl-home-v4 .mdl-vantage__copy { font-size: 15px; line-height: 24px; }
	.mdl-home-v4 .mdl-team__photo { height: 240px; }
	.mdl-home-v4 .mdl-team__card { padding: 36px 20px; margin-top: -40px; }
	.mdl-home-v4 .mdl-team__lede { font-size: 17px; line-height: 26px; }
	.mdl-home-v4 .mdl-team__body { font-size: 15px; line-height: 24px; }
	.mdl-home-v4 .mdl-trial__lede { font-size: 18px; line-height: 28px; }
	.mdl-home-v4 .mdl-testimonials__grid { grid-template-columns: 1fr; }
	.mdl-home-v4 .mdl-awards__grid { grid-template-columns: repeat(2, 1fr); }
	.mdl-home-v4 .mdl-verdicts__grid,
	.mdl-home-v4 .mdl-press__grid,
	.mdl-home-v4 .mdl-news__grid,
	.mdl-home-v4 .mdl-locations__cards { grid-template-columns: 1fr; }
	.mdl-home-v4 .mdl-locations__cards { margin-bottom: 24px; }
	.mdl-home-v4 .mdl-locations__map { padding-top: 0; }
	.mdl-home-v4 .mdl-consult__card { padding: 32px 20px; }
	.mdl-home-v4 .mdl-form__row { grid-template-columns: 1fr; gap: 24px; }
	.mdl-home-v4 .mdl-form__footer { flex-direction: column; align-items: stretch; gap: 18px; }
	.mdl-home-v4 .mdl-form__footer .mdl-btn { width: 100%; }
	.mdl-home-v4 .mdl-section-head { gap: 16px; }
	.mdl-home-v4 .mdl-section-head .mdl-btn { padding: 12px 32px; }

	/* CTA-before-footer button: allow text wrap so long labels don't
	   overflow the button background on narrow phones. */
	.mdl-home-v4 .mdl-cta__inner .mdl-btn {
		white-space: normal !important;
		max-width: 100% !important;
		padding: 14px 24px !important;
		font-size: 13px !important;
		line-height: 1.35 !important;
		letter-spacing: 1px !important;
		word-break: keep-all;
	}
	.mdl-home-v4 .mdl-cta {
		padding: 48px 20px;
		overflow-wrap: break-word;
	}
	.mdl-home-v4 .mdl-cta__inner {
		padding: 0;
		max-width: 100%;
		gap: 14px;
	}
	.mdl-home-v4 .mdl-cta__eyebrow { font-size: 13px; letter-spacing: 1.2px; }
	.mdl-home-v4 .mdl-cta__inner .mdl-h2 {
		font-size: 22px;
		line-height: 28px;
		overflow-wrap: break-word;
		max-width: 100%;
	}
	.mdl-home-v4 .mdl-cta__sub { font-size: 16px; line-height: 24px; }
}

/* Extra-narrow phones (≤ 380 px) - shrink CTA further to keep
 * everything inside the viewport and prevent horizontal scrolling. */
@media (max-width: 380px) {
	.mdl-home-v4 .mdl-cta { padding: 40px 14px; }
	.mdl-home-v4 .mdl-cta__inner .mdl-h2 { font-size: 19px; line-height: 26px; }
	.mdl-home-v4 .mdl-cta__sub { font-size: 15px; line-height: 22px; }
	.mdl-home-v4 .mdl-cta__inner .mdl-btn {
		font-size: 12px !important;
		padding: 12px 18px !important;
	}
}

/* ============================================================
   GLOBAL MOBILE TEXT-SHRINK LAYER
   Applied to ALL v4 pages (home, press, news, location, contact,
   thank-you, testimonials, personal-injury, case-result).
   Desktop sizes are preserved; this only reduces typography
   below 768px so long headings and body copy stay legible on
   phone screens without overflowing the viewport.
   ============================================================ */
@media (max-width: 768px) {
	/* All hero / page H1s (e.g. "PRESS", "NEWS", "CLIENT TESTIMONIALS") */
	.mdl-home-v4 .mdl-press-hero__title,
	.mdl-home-v4 .mdl-news-hero__title,
	.mdl-home-v4 .mdl-test-v4__title,
	.mdl-home-v4 .mdl-location-v4__title,
	.mdl-home-v4 .mdl-contact-v4__title,
	.mdl-home-v4 .mdl-thankyou-v4__title {
		font-size: 32px !important;
		line-height: 40px !important;
	}
	/* All hero subtitles */
	.mdl-home-v4 .mdl-press-hero__sub,
	.mdl-home-v4 .mdl-news-hero__sub,
	.mdl-home-v4 .mdl-test-v4__intro,
	.mdl-home-v4 .mdl-location-v4__intro,
	.mdl-home-v4 .mdl-contact-v4__intro {
		font-size: 16px !important;
		line-height: 24px !important;
	}
	/* Card titles inside Press / News list - keep Figma 21/31 but a touch
	 * smaller on phones so 3 cards stack cleanly without long titles
	 * pushing card heights uneven. */
	.mdl-home-v4 .mdl-press-card__title,
	.mdl-home-v4 .mdl-news-card__title {
		font-size: 18px !important;
		line-height: 26px !important;
	}
	/* Card excerpts */
	.mdl-home-v4 .mdl-press-card__excerpt,
	.mdl-home-v4 .mdl-news-card__excerpt {
		font-size: 14px !important;
		line-height: 22px !important;
	}
	/* Search + select fields */
	.mdl-home-v4 .mdl-press-controls__input,
	.mdl-home-v4 .mdl-news-controls__input,
	.mdl-home-v4 .mdl-press-controls__select {
		font-size: 15px !important;
	}
	/* All H4s (sub-headings, sidebar headings, card sub-titles) */
	.mdl-home-v4 .mdl-h4 { font-size: 17px !important; line-height: 25px !important; }
	/* Section eyebrow labels */
	.mdl-home-v4 .mdl-eyebrow,
	.mdl-home-v4 .mdl-cta__eyebrow,
	.mdl-home-v4 .mdl-section-head__eyebrow {
		font-size: 12px !important;
		letter-spacing: 1.2px !important;
	}
	/* Body copy inside content blocks - leave Gravity Forms alone (it
	 * has its own sizing) but shrink generic prose. */
	.mdl-home-v4 .mdl-press-card__date,
	.mdl-home-v4 .mdl-news-card__date,
	.mdl-home-v4 .mdl-press-card__author {
		font-size: 12px !important;
	}
	/* "Read More" / "Load More" buttons */
	.mdl-home-v4 .mdl-press-card__more,
	.mdl-home-v4 .mdl-news-card__more {
		font-size: 13px !important;
		letter-spacing: 1.5px !important;
	}
	.mdl-home-v4 .mdl-press-loadmore,
	.mdl-home-v4 .mdl-news-loadmore {
		font-size: 12px !important;
		padding: 12px 24px !important;
	}
}

/* Extra-narrow (≤ 380 px) - one more notch down for very small phones */
@media (max-width: 380px) {
	.mdl-home-v4 .mdl-press-hero__title,
	.mdl-home-v4 .mdl-news-hero__title,
	.mdl-home-v4 .mdl-test-v4__title,
	.mdl-home-v4 .mdl-location-v4__title,
	.mdl-home-v4 .mdl-contact-v4__title,
	.mdl-home-v4 .mdl-thankyou-v4__title {
		font-size: 26px !important;
		line-height: 34px !important;
	}
	.mdl-home-v4 .mdl-press-hero__sub,
	.mdl-home-v4 .mdl-news-hero__sub {
		font-size: 14px !important;
		line-height: 22px !important;
	}
	.mdl-home-v4 .mdl-press-card__title,
	.mdl-home-v4 .mdl-news-card__title {
		font-size: 16px !important;
		line-height: 24px !important;
	}
}

/* ============================================================
   SITE-WIDE TITLE TRUNCATION
   Consistent line-clamping for every card title and excerpt across
   the site so titles of different lengths don't make card heights
   uneven. Card titles clamp at 2 lines, excerpts at 3 lines.
   Applies to: Recent Press, Recent News, Case Results, Locations,
   Practice Areas, Testimonials, and any other card list section.
   ============================================================ */

/* Card titles - 2-line max with ellipsis. */
.mdl-press-card__title,
.mdl-news-card__title,
.mdl-result-card__title,
.mdl-location-card__title,
.mdl-loc-card__title,
.mdl-pa-card__title,
.mdl-home-v4 .mdl-press-card__title,
.mdl-home-v4 .mdl-news-card__title,
.mdl-home-v4 .mdl-verdicts__card-title,
.mdl-home-v4 .mdl-press__card-title,
.mdl-home-v4 .mdl-news__card-title,
.mdl-home-v4 .mdl-locations__card-title,
.mdl-home-v4 .mdl-result-card__title {
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 2 !important;
	line-clamp: 2 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	min-height: calc(1.4em * 2);
}

/* Card excerpts / descriptions - 3-line max with ellipsis. */
.mdl-press-card__excerpt,
.mdl-news-card__excerpt,
.mdl-result-card__excerpt,
.mdl-location-card__excerpt,
.mdl-loc-card__excerpt,
.mdl-home-v4 .mdl-press-card__excerpt,
.mdl-home-v4 .mdl-news-card__excerpt,
.mdl-home-v4 .mdl-press__card-excerpt,
.mdl-home-v4 .mdl-news__card-excerpt,
.mdl-home-v4 .mdl-verdicts__card-meta,
.mdl-home-v4 .mdl-result-card__excerpt {
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 3 !important;
	line-clamp: 3 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

/* Testimonial caption sub-line - 2-line max. */
.mdl-home-v4 .mdl-testimonial__sub {
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 2 !important;
	line-clamp: 2 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

/* ==========================================================================
   Mobile hero fallback still (over the video). Full-res mobile image shows on
   small screens where video autoplay is unreliable; hidden on desktop where the
   video plays. Absolutely positioned to cover the hero media box.
   ========================================================================== */
.mdl-home-v4 .mdl-hero__poster--mobile {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: none;            /* desktop: video shows, hide the still */
	z-index: 1;
}
@media (max-width: 768px) {
	.mdl-home-v4 .mdl-hero__poster--mobile { display: block; }
	/* Keep the video behind the still on mobile (still may load faster/sharper) */
	.mdl-home-v4 .mdl-hero__video { z-index: 0; }
}
