/**
 * Home page. Section vertical rhythm (100px top/bottom for most sections,
 * 200px/100px for the hero, 50px for the CTA banner) and the grid gaps
 * (10px hero row, 20px grids, 50px feature boxes) come from the live site's
 * own generated CSS for post 99 — see migration/reference-css/home-full.css,
 * grep ".elementor-99". Fine per-breakpoint percentages were not chased to
 * the same exhaustive depth as header/footer; this is a faithful, token-driven
 * translation pending a visual QA pass once Elementor is off and the theme
 * can actually be seen rendering on its own.
 */

.home-page section {
	padding: 100px 0;
}

@media (max-width: 767px) {
	.home-page section {
		padding: 60px 0;
	}
}

/* ---------------- Hero ----------------
 * Exact values from the live site's generated CSS for post 99
 * (migration/reference-css/home-full.css, elements 2920a3be / 45aaa6b1 /
 * 3307658b / 443c0312). Full-bleed office bg + #1C3A59 @60% overlay; left
 * column 55% with 200/100 padding; right column 45% whose own bg is the
 * attorney cut-out (bottom-anchored) with the white Harvard card at its foot.
 */
/* .home-page prefix raises specificity above the generic
   `.home-page section { padding: 100px 0 }` rule so the hero keeps its own
   zero section-padding (its 200/100 spacing lives on the left column). */
.home-page .home-hero {
	position: relative;
	padding: 0;
	background-color: var(--plf-color-secondary);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	overflow: hidden;
}

/* #1C3A59 overlay at 0.6, above the bg but below content */
.home-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--plf-color-secondary);
	opacity: 0.6;
	z-index: 0;
}

.home-hero__row {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: stretch;
}

.home-hero__left {
	width: 55%;
	padding: 200px 0 100px;
}

.home-hero__left .kicker {
	margin-bottom: 20px;
}

.home-hero__heading {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: var(--plf-hero-size);
	line-height: 1.1em;
	text-transform: capitalize;
	color: var(--plf-color-accent);
	margin: 0 0 20px;
}

.home-hero__heading .highlight {
	color: var(--plf-color-yellow);
	font-size: var(--plf-hero-highlight-size);
}

.home-hero__body {
	max-width: 560px;
	color: var(--plf-color-accent);
	margin-bottom: 0;
}

.home-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 15px;
	padding-top: 20px;
}

.home-hero__right {
	width: 45%;
	min-height: 570px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% auto;
}

/* White "Harvard" card at the bottom of the right column */
.home-hero__card {
	display: flex;
	align-items: center;
	gap: 23px;
	width: 75%;
	margin: 0 0 0 auto;
	padding: 20px;
	background: var(--plf-color-accent);
}

.home-hero__card-crest {
	flex: 0 0 auto;
	width: 137.07px;
}

.home-hero__card-crest img {
	width: 137.07px;
	height: 34.9px;
	max-width: 100%;
}

.home-hero__card-text {
	border-left: 1px solid var(--plf-color-border);
	padding-left: 11px;
}

.home-hero__card-caption {
	font-size: 16px;
	line-height: 21px;
	color: var(--plf-color-text-black);
	margin: 0;
}

.home-hero__card-name {
	font-size: 14px;
	font-weight: 600;
	line-height: 21px;
	color: var(--plf-color-primary);
	margin: 0;
}

@media (min-width: 1025px) {
	.home-hero__heading {
		font-size: var(--plf-hero-size);
	}
}

@media (max-width: 1024px) {
	.home-hero__heading {
		font-size: var(--plf-hero-size-mobile);
	}
	.home-hero__heading .highlight {
		font-size: var(--plf-hero-size-mobile);
	}
	.home-hero__left {
		padding: 100px 0 50px;
	}
	.home-hero__right {
		min-height: 400px;
	}
}

@media (max-width: 767px) {
	.home-hero__row {
		flex-direction: column;
	}
	.home-hero__left {
		width: 100%;
		padding: 80px 0;
		text-align: center;
	}
	/* Attorney photo + Harvard card are hidden on mobile — the original shows
	   just the office background with the centred text and buttons. */
	.home-hero__right {
		display: none;
	}
	.home-hero__ctas {
		justify-content: center;
	}
}

/* ---------------- Intro: Credentials collage + About ----------------
 * In the original these are ONE section (element 1efe148b): a 50/50 row with
 * the credentials photo-collage on the left and the About text on the right.
 * White section, 100px/100px padding (50px mobile). Stacks at <=1024px.
 */
.home-page .home-intro {
	padding: 100px 0;
}

@media (max-width: 767px) {
	.home-page .home-intro {
		padding: 50px 0;
	}
}

.home-intro__row {
	display: flex;
	align-items: stretch;
	gap: 20px;
}

@media (max-width: 1024px) {
	.home-intro__row {
		flex-direction: column;
		gap: 30px;
	}
}

/* -------- Left half: credentials collage (60% photo + 40% stack) -------- */
.home-credentials {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	gap: 10px;
	align-items: stretch;
}

@media (max-width: 1024px) {
	.home-credentials {
		flex: 0 0 auto;
		flex-direction: column;
		width: 100%;
	}
	.home-credentials__photo,
	.home-credentials__stack {
		flex: 0 0 auto;
		width: 100%;
	}
}

.home-credentials__photo {
	flex: 1 1 60%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 500px;
	padding: 20px 15px;
	background: center / cover no-repeat;
}

.home-credentials__badge-card {
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 10px 20px;
	background: var(--plf-color-accent);
}

/* On mobile the badge stacks and centres: icon on top, then title + name. */
@media (max-width: 767px) {
	.home-credentials__badge-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 18px;
		padding: 15px 20px;
	}
}

.home-credentials__badge-icon {
	flex: 0 0 auto;
	font-size: 50px;
	color: var(--plf-color-primary);
}

.home-credentials__badge-title {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 23px;
	line-height: 34px;
	color: var(--plf-color-secondary);
	margin: 0;
}

.home-credentials__badge-name {
	font-family: var(--plf-font-body);
	font-weight: 600;
	font-size: 14px;
	line-height: 21px;
	color: var(--plf-color-primary);
	margin: 0;
}

@media (min-width: 1025px) {
	.home-credentials__badge-name {
		display: none;
	}
}

.home-credentials__stack {
	flex: 1 1 40%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

@media (max-width: 767px) {
	.home-credentials__stack {
		gap: 10px;
	}
}

.home-credentials__counter {
	background: var(--plf-color-secondary);
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 20px 15px;
}

.home-credentials__counter-value {
	margin: 0;
	line-height: 1.2em;
}

.home-credentials__counter-number,
.home-credentials__counter-suffix {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 45px;
	line-height: 1.2em;
	color: var(--plf-color-yellow);
}

@media (max-width: 1024px) {
	.home-credentials__counter-number,
	.home-credentials__counter-suffix {
		font-size: 32px;
	}
}

.home-credentials__counter-label {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-accent);
	text-align: center;
	margin: 6px 0 0;
}

@media (max-width: 1024px) {
	.home-credentials__counter-label {
		font-size: 16px;
	}
}

.home-credentials__video {
	flex: 1 1 auto;
	min-height: 455px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: center / cover no-repeat;
	background-color: var(--plf-color-secondary);
}

.home-credentials__video-btn {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--plf-color-accent);
	color: var(--plf-color-primary);
	font-size: 21px;
	text-decoration: none;
	transition: background-color 0.3s, color 0.3s;
}

.home-credentials__video-btn:hover {
	background: var(--plf-color-primary);
	color: var(--plf-color-accent);
}

/* -------- Right half: About text -------- */
.home-about {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
}

@media (max-width: 1024px) {
	.home-about {
		flex: 0 0 auto;
		width: 100%;
	}
}

.home-about__content {
	padding-left: 30px;
}

@media (max-width: 1024px) {
	.home-about__content {
		padding-left: 0;
		text-align: center;
	}
}

.home-about .kicker {
	margin-bottom: 20px;
}

.home-about__content > p:not(.kicker) {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
	margin: 0 0 20px;
}

@media (max-width: 767px) {
	.home-about__content > p:not(.kicker) {
		font-size: 16px;
	}
}

.home-about__features {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0 0 20px;
}

.home-about__feature {
	display: flex;
	align-items: flex-end;
	gap: 15px;
	text-align: start;
}

@media (max-width: 767px) {
	.home-about__feature {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}
}

.home-about__feature i {
	flex: 0 0 auto;
	font-size: 35px;
	line-height: 1;
	color: var(--plf-color-primary);
	background: var(--plf-color-accent);
	border: 1px solid var(--plf-color-primary);
	padding: 25px;
}

.home-about__feature-title {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 35px;
	line-height: 1.3em;
	text-transform: capitalize;
	color: var(--plf-color-secondary);
	margin: 0 0 5px;
}

@media (max-width: 767px) {
	.home-about__feature-title {
		font-size: 24px;
	}
}

.home-about__feature-desc {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
	margin: 0;
}

@media (max-width: 1024px) {
	.home-about__feature-desc {
		font-size: 16px;
	}
}

.home-about .btn {
	margin-top: 10px;
}

/* ---------------- Carousel (awards band) ----------------
 * Full-width primary-blue band. Badges are uniform 442x250 PNGs sized by
 * WIDTH (~9 across, like the original swiper) so they stay small and even;
 * continuous marquee via app.js initCarousels().
 */
.home-page .home-carousel {
	background: var(--plf-color-primary);
	padding: 15px 0;
	overflow: hidden;
}

.home-carousel__track {
	display: flex;
	align-items: center;
	width: max-content;
}

.home-carousel__slide {
	flex: 0 0 auto;
	margin-right: 54px;
}

@media (max-width: 767px) {
	.home-carousel__slide {
		margin-right: 30px;
	}
}

.home-carousel__slide img {
	width: 155.77px;
	height: 88.11px;
	max-width: none;
	object-fit: contain;
	display: block;
}

@media (max-width: 767px) {
	.home-carousel__slide img {
		width: 80.99px;
		height: 45.81px;
	}
}

/* ---------------- Practice Areas ----------------
 * Cream section; two-column intro (heading left / copy + CTA right); 3-up card
 * grid (1-up <=1024). Cards are transparent with a 1px border; a solid icon
 * badge overlaps the image bottom; a solid "Learn more" button at the foot.
 */
.home-practice {
	background: var(--plf-color-bg-cream);
}

.home-practice__intro {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 40px;
	width: 100%;
	margin: 0 0 40px;
	text-align: left;
}

.home-practice__intro-left {
	flex: 1 1 0;
	min-width: 0;
}

.home-practice__intro-left .kicker {
	margin-bottom: 20px;
}

.home-practice__intro-left h1,
.home-practice__intro-left h2 {
	margin-bottom: 0;
}

.home-practice__intro-right {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}

.home-practice__intro-right p {
	margin-bottom: 20px;
}

@media (max-width: 1024px) {
	.home-practice__intro {
		flex-direction: column;
		align-items: center;
		text-align: center;
		width: 100%;
		gap: 20px;
	}
	.home-practice__intro-left,
	.home-practice__intro-right {
		flex-basis: auto;
		width: 100%;
		align-items: center;
		text-align: center;
	}
}

.home-practice__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

@media (max-width: 1024px) {
	.home-practice__grid {
		grid-template-columns: 1fr;
		max-width: 480px;
		margin: 0 auto;
	}
}

.home-practice__card {
	background: none;
	border: 1px solid var(--plf-color-border);
	padding: 20px 20px 40px;
	display: flex;
	flex-direction: column;
}

.home-practice__card-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 800 / 535;
	object-fit: cover;
}

.home-practice__card-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin-top: -50px;
	text-align: center;
}

.home-practice__card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--plf-color-primary);
	color: #fff;
	font-size: 30px;
	line-height: 1;
	padding: 20px;
}

.home-practice__card-body h3 {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 35px;
	line-height: 1.3em;
	text-transform: capitalize;
	color: var(--plf-color-primary);
	margin: 0 0 5px;
}

.home-practice__card-body p {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
	margin: 0;
}

@media (max-width: 767px) {
	.home-practice__card-body h3 {
		font-size: 30px;
	}
	.home-practice__card-body p {
		font-size: 16px;
	}
}

.home-practice__card-link {
	align-self: center;
	margin-top: 20px;
}

/* ---------------- Feature / Why Choose Us ----------------
 * White section; photo left / text right (50/50, stacks <=1024). Two icon
 * boxes sit in a row inside the text column below the CTA.
 */
.home-feature__grid {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 50px;
}

.home-feature__image {
	flex: 1 1 0;
	min-width: 0;
	align-self: stretch;
	min-height: 600px;
	background: center / cover no-repeat;
}

.home-feature__content {
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 1024px) {
	.home-feature__grid {
		flex-direction: column;
	}
	.home-feature__image,
	.home-feature__content {
		flex-basis: auto;
		width: 100%;
	}
	.home-feature__image {
		min-height: 350px;
	}
	.home-feature__content {
		text-align: center;
	}
}

@media (max-width: 767px) {
	.home-feature__image {
		min-height: 235px;
	}
}

.home-feature .kicker {
	margin-bottom: 20px;
}

.home-feature__content > p:not(.kicker) {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
	padding-bottom: 10px;
}

@media (max-width: 767px) {
	.home-feature__content > p:not(.kicker) {
		font-size: 16px;
	}
}

.home-feature .btn {
	margin-top: 30px;
}

.home-feature__boxes {
	display: flex;
	flex-direction: row;
	gap: 20px;
}

@media (max-width: 767px) {
	.home-feature__boxes {
		flex-direction: column;
	}
}

.home-feature__box {
	flex: 1 1 0;
	background: transparent;
	border: 1px solid var(--plf-color-border);
	padding: 20px;
	text-align: center;
}

.home-feature__box i {
	font-size: 50px;
	line-height: 1;
	color: var(--plf-color-primary);
	display: inline-block;
	margin-bottom: 10px;
}

.home-feature__box h3 {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3em;
	text-transform: capitalize;
	color: var(--plf-color-primary);
	margin: 0;
}

.home-feature__box p {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
	margin: 10px 0 0;
}

@media (max-width: 767px) {
	.home-feature__box h3 {
		font-size: 24px;
	}
	.home-feature__box p {
		font-size: 16px;
	}
}

/* ---------------- Team / Meet Our Team ----------------
 * Cream section; two-column intro (heading left / copy + CTA right) over a
 * 4-up grid. Each card: photo with a white info card overlapping its bottom
 * and a LinkedIn badge floated onto the photo's lower-right.
 */
.home-team {
	background-color: var(--plf-color-bg-cream);
}

.home-page .home-team {
	padding: 100px 0 140px;
}

@media (max-width: 767px) {
	.home-page .home-team {
		padding: 50px 0;
	}
}

/* Our Firm page only: the "Why Choose Us" band gets the cream background
   (with its own vertical rhythm, since the section has no padding of its own);
   the intro and team bands stay white. Scoped so the homepage is unaffected. */
.our-firm-page .home-feature {
	background-color: var(--plf-color-bg-cream);
	padding: 100px 0;
}

.our-firm-page .home-team {
	background-color: transparent;
}

@media (max-width: 767px) {
	.our-firm-page .home-feature {
		padding: 50px 0;
	}
}

.home-team__intro {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 40px;
	margin-bottom: 20px;
}

.home-team__intro-left {
	flex: 1 1 0;
	min-width: 0;
}

.home-team__intro-left .kicker {
	margin-bottom: 20px;
}

.home-team__intro-left h1,
.home-team__intro-left h2 {
	margin-bottom: 0;
}

.home-team__intro-right {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}

.home-team__intro-right p {
	margin-bottom: 20px;
}

@media (max-width: 1024px) {
	.home-team__intro {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 20px;
	}
	.home-team__intro-left,
	.home-team__intro-right {
		flex-basis: auto;
		width: 100%;
		align-items: center;
		text-align: center;
	}
}

.home-team__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	column-gap: 30px;
	row-gap: 20px;
	padding-top: 20px;
}

@media (max-width: 1024px) {
	.home-team__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.home-team__grid {
		grid-template-columns: 1fr;
		/* 20px here + the container's 10px = 30px breathing room each side of the photo. */
		padding-left: 20px;
		padding-right: 20px;
	}
}

.home-team__member {
	display: flex;
	flex-direction: column;
}

.home-team__member-photo {
	min-height: 350px;
	background: center / cover no-repeat;
}

.home-team__member-info {
	position: relative;
	background: var(--plf-color-accent);
	border: 1px solid var(--plf-color-border);
	padding: 20px;
	/* Slipped left over the photo: left edge sticks out ~20px, right edge inset
	   ~20px (matches the original's margin-left:-20px offset). */
	margin: -50px 20px 0 -20px;
}

.home-team__member-name {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3em;
	text-transform: capitalize;
	color: var(--plf-color-secondary);
	margin: 0;
}

.home-team__member-role {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-primary);
	margin: 0;
}

@media (max-width: 767px) {
	.home-team__member-name {
		font-size: 24px;
	}
	.home-team__member-role {
		font-size: 16px;
	}
}

/* Name + LinkedIn badge share the card's top row — badge sits right after
   the name (name left, badge right), matching the original. */
.home-team__member-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.home-team__member-head .home-team__member-name {
	margin: 0;
}

.home-team__member-social {
	flex: 0 0 auto;
	/* Nudge up so the badge sits level with the name on the same line. */
	margin-top: -10px;
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--plf-color-primary);
	color: var(--plf-color-accent);
	font-size: 15px;
	text-decoration: none;
	transition: background-color 0.3s;
}

.home-team__member-social:hover {
	background: var(--plf-color-secondary);
}

/* ---------------- CTA Banner ----------------
 * Fixed office background + navy overlay. Content left (51%); attorney cut-out
 * right (55%) rising above the band. Image hidden <=1024px; band gains its own
 * padding once stacked.
 */
.home-page .home-cta-banner {
	position: relative;
	overflow: visible;
	padding: 0;
	background: center / cover no-repeat;
	background-color: var(--plf-color-secondary);
	background-attachment: fixed;
}

.home-cta-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--plf-color-secondary);
	opacity: 0.7;
	z-index: 0;
}

.home-cta-banner__row {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 0;
}

.home-cta-banner__content {
	width: 51%;
	padding: 50px 0;
	color: var(--plf-color-accent);
}

.home-cta-banner__content .kicker {
	margin-bottom: 20px;
}

.home-cta-banner__content h2 {
	color: var(--plf-color-accent);
}

.home-cta-banner__content > p:not(.kicker) {
	color: var(--plf-color-accent);
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
}

.home-cta-banner__divider {
	width: 100%;
	border: 0;
	border-top: 1px solid var(--plf-color-border);
	margin: 0 0 20px;
	padding: 0;
}

.home-cta-banner__side {
	width: 55%;
	align-self: flex-end;
	text-align: right;
}

.home-cta-banner__side img {
	display: inline-block;
	width: 86%;
	/* -91px lifts him above the band; -7px bottom pulls him down flush so no
	   gap shows below him before the next section. */
	margin: -91px 0 -7px;
	border-radius: 0;
}

@media (max-width: 1024px) {
	.home-page .home-cta-banner {
		padding: 100px 0;
		background-attachment: scroll;
	}
	.home-cta-banner__row {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.home-cta-banner__content {
		width: 80%;
		padding: 0;
	}
	.home-cta-banner__side {
		display: none;
	}
}

@media (max-width: 767px) {
	.home-page .home-cta-banner {
		padding: 50px 0;
	}
	.home-cta-banner__content {
		width: 100%;
	}
	.home-cta-banner__content > p:not(.kicker) {
		font-size: 16px;
	}
}

/* ---------------- Testimonials ----------------
 * White section; two-column intro (heading left / copy + CTA right) over a
 * 3-up grid (2-up tablet, 1-up mobile) of centered cream cards.
 */
.home-testimonials__intro {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 40px;
	margin-bottom: 20px;
}

.home-testimonials__intro-left {
	flex: 1 1 0;
	min-width: 0;
}

.home-testimonials__intro-left .kicker {
	margin-bottom: 20px;
}

.home-testimonials__intro-left h1,
.home-testimonials__intro-left h2 {
	margin-bottom: 0;
}

.home-testimonials__intro-right {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}

.home-testimonials__intro-right p {
	margin-bottom: 20px;
}

@media (max-width: 1024px) {
	.home-testimonials__intro {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 20px;
	}
	.home-testimonials__intro-left,
	.home-testimonials__intro-right {
		flex-basis: auto;
		width: 100%;
		align-items: center;
		text-align: center;
	}
}

.home-testimonials__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 15px;
	padding-top: 20px;
}

@media (max-width: 1024px) {
	.home-testimonials__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}
}

@media (max-width: 767px) {
	/* Reviews become a swipeable slider — one card per view, swipe only (no arrows). */
	.home-testimonials__grid {
		display: flex;
		grid-template-columns: none;
		gap: 20px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.home-testimonials__grid::-webkit-scrollbar {
		display: none;
	}
	.home-testimonials__card {
		flex: 0 0 100%;
		scroll-snap-align: center;
	}
}

.home-testimonials__card {
	position: relative;
	overflow: hidden;
	background: var(--plf-color-bg-cream);
	padding: 45px 30px 40px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

/* Blue quarter-circle wedge filling the card's top-right corner, quote icon
   tucked toward the corner (matches the original testimonial card). */
.home-testimonials__quote-badge {
	position: absolute;
	top: 0;
	right: 0;
	width: 90px;
	height: 90px;
	border-bottom-left-radius: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	padding: 15px 16px 0 0;
	background: var(--plf-color-primary);
	color: var(--plf-color-accent);
	font-size: 30px;
}

.home-testimonials__avatar img {
	width: 68px;
	height: 68px;
	border-radius: 50%;
	object-fit: cover;
}

.home-testimonials__author-name {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3em;
	text-transform: capitalize;
	color: var(--plf-color-secondary);
	margin: 0;
}

.home-testimonials__author-case {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-primary);
	margin: 0;
}

.home-testimonials__stars {
	display: flex;
	gap: 5px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.home-testimonials__stars i {
	color: var(--plf-color-primary);
	font-size: 15px;
}

.home-testimonials__quote {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
	margin: 0;
}

@media (max-width: 767px) {
	.home-testimonials__author-name {
		font-size: 24px;
	}
	.home-testimonials__quote {
		font-size: 16px;
	}
}

/* ---------------- Contact ----------------
 * Cream section; two columns (info left / form right). Framed contact items
 * (icon in a bordered white square). The form column has no card background.
 */
.home-contact {
	background: var(--plf-color-bg-cream);
}

.home-contact__grid {
	display: flex;
	flex-direction: row;
	gap: 0;
}

.home-contact__info {
	flex: 1 1 0;
	min-width: 0;
}

.home-contact__form {
	flex: 1 1 0;
	min-width: 0;
	padding-left: 70px;
	background: none;
}

@media (max-width: 1024px) {
	.home-contact__grid {
		flex-direction: column;
		gap: 30px;
	}
	.home-contact__info,
	.home-contact__form {
		flex-basis: auto;
	}
	.home-contact__form {
		padding-left: 0;
	}
}

.home-contact .kicker {
	margin-bottom: 20px;
}

.home-contact__info > p:not(.kicker) {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-text-black);
}

.home-contact__items {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 30px;
}

.home-contact__item {
	display: flex;
	align-items: center;
	gap: 15px;
	text-align: start;
}

.home-contact__item-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 30px;
	line-height: 1;
	padding: 20px;
	border: 1px solid var(--plf-color-primary);
	background: var(--plf-color-accent);
	color: var(--plf-color-primary);
}

.home-contact__item-title {
	font-family: var(--plf-font-body);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.4em;
	color: var(--plf-color-primary);
	margin: 0 0 5px;
}

.home-contact__item a {
	font-family: var(--plf-font-display);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.3em;
	color: var(--plf-color-secondary);
	text-decoration: none;
}

@media (max-width: 767px) {
	.home-contact__item a {
		font-size: 22px;
	}
}
