/**
 * Plumber About — frontend styles
 *
 * A heading and text on the left, images on the right. Self-contained: it sets
 * its own box-sizing so it renders the same in any theme. The accent colour is
 * supplied per-instance as --pa-accent on the .plumber-about element.
 */

.plumber-about {
	--pa-accent: #e07a3f;
	--pa-heading: #0a2540;
	--pa-body: #4a5568;
	--pa-radius: 18px;

	width: 100%;
	margin: 0;
}

.plumber-about,
.plumber-about *,
.plumber-about *::before,
.plumber-about *::after {
	box-sizing: border-box;
}

.plumber-about__inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 5rem) clamp(1.25rem, 5vw, 3rem);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2.5rem, 6vw, 5rem);
	align-items: center;
}

.plumber-about--no-image .plumber-about__inner {
	grid-template-columns: 1fr;
	max-width: 760px;
}

/* --- Content (left) --------------------------------------------------- */
.plumber-about__heading {
	margin: 0 0 1.35rem;
	font-family: var(--pa-font-heading, inherit);
	font-size: clamp(1.75rem, 3.6vw, 2.6rem);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -0.015em;
	color: var(--pa-heading);
	text-wrap: balance;
}

/* Short accent rule under the heading. */
.plumber-about__heading::after {
	content: "";
	display: block;
	width: 3rem;
	height: 3px;
	margin-top: 1rem;
	background: var(--pa-accent);
	border-radius: 3px;
}

.plumber-about__body {
	font-family: var(--pa-font-body, inherit);
	font-size: clamp(1rem, 1.4vw, 1.0625rem);
	line-height: 1.75;
	color: var(--pa-body);
}
.plumber-about__body p { margin: 0 0 1.1rem; }
.plumber-about__body p:last-child { margin-bottom: 0; }

/* --- Social icons ----------------------------------------------------- */
.plumber-about__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 1.85rem;
}
.plumber-about__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	color: var(--pa-heading);
	background: color-mix(in srgb, var(--pa-heading) 8%, transparent);
	transition: transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
	text-decoration: none !important;
}
.plumber-about__social svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: currentColor;
}
.plumber-about__social:hover,
.plumber-about__social:focus-visible {
	transform: translateY(-2px);
	background: var(--pa-accent);
	color: #fff;
}
.plumber-about__social:focus-visible {
	outline: 3px solid var(--pa-accent);
	outline-offset: 3px;
}

/* --- Media (right) ---------------------------------------------------- */
.plumber-about__media {
	position: relative;
	isolation: isolate;
}
.plumber-about__image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--pa-radius);
	box-shadow: 0 30px 60px -32px rgba(10, 37, 64, 0.5);
}

/* When a second image is present the main one leaves room for the overlap. */
.plumber-about__media--stacked { padding-bottom: 2.5rem; padding-right: 2.5rem; }
.plumber-about__image--secondary {
	position: absolute;
	z-index: 2;
	right: 0;
	bottom: 0;
	width: 48%;
	aspect-ratio: 1 / 1;
	border: 6px solid #fff;
	box-shadow: 0 18px 40px -18px rgba(10, 37, 64, 0.55);
}

/* --- Tablet: stack to one column, image first ------------------------- */
@media (max-width: 860px) {
	.plumber-about__inner {
		grid-template-columns: 1fr;
		gap: clamp(2rem, 7vw, 3rem);
	}
	.plumber-about__media {
		order: 1;
		width: 100%;
		max-width: 440px;
		margin: 0 auto;
	}
	.plumber-about__content { order: 2; }
}

/* --- Phone: one clean image ------------------------------------------- */
@media (max-width: 540px) {
	.plumber-about__media--stacked { padding-bottom: 0; padding-right: 0; }
	.plumber-about__image--secondary { display: none; }
	.plumber-about__image { aspect-ratio: 16 / 11; }
	.plumber-about__media { max-width: 100%; }
}

/* --- Older browsers without color-mix --------------------------------- */
@supports not (background: color-mix(in srgb, red, blue)) {
	.plumber-about__social { background: rgba(10, 37, 64, 0.08); }
}

@media (prefers-reduced-motion: reduce) {
	.plumber-about__social { transition: none; }
}
