/*
 * PlumbJax 2026 design layer.
 * Colours and sizes read Divi 5 global colours (--gcid-*) and number variables (--gvid-*),
 * so changing them in Divi's Global Variables updates this file too. Everything here is
 * scoped to classes added in the Divi builder (Advanced → CSS Class) or to the shared
 * header/footer, so existing pages are untouched unless they opt in.
 */

:root {
	--pj-pink: var(--gcid-primary-color, #C8106E);
	--pj-green: var(--gcid-secondary-color, #2F6E0A);
	--pj-ink: var(--gcid-heading-color, #121212);
	--pj-ink-2: var(--gcid-pj-ink-2, #3A3F37);
	--pj-muted: var(--gcid-pj-muted, #4A4F47);
	--pj-lime: var(--gcid-pj-lime, #84D82B);
	--pj-sage: var(--gcid-brand-light, #F3F7EC);
	--pj-sage-border: var(--gcid-pj-sage-border, #D9E3CC);
	--pj-border: var(--gcid-pj-border, #E1E6DA);
	--pj-neutral: var(--gcid-pj-neutral, #F7F7F5);
	--pj-pink-tint: var(--gcid-pj-pink-tint, #FCE7F1);
	--pj-green-tint: var(--gcid-pj-green-tint, #EAF6DA);
	--pj-whatsapp: var(--gcid-pj-whatsapp, #1B7F3B);
	--pj-star: var(--gcid-pj-star, #E8A400);
	--pj-input: var(--gcid-pj-input-border, #C9D2BE);
	--pj-h1: var(--gvid-uiqq99fs8s, clamp(2.5rem, 1.6rem + 3vw, 3.625rem));
	--pj-h2: var(--gvid-ujslod1uyz, clamp(2rem, 1.5rem + 1.6vw, 2.75rem));
	--pj-h3: var(--gvid-eh9rdk20x8, 1.375rem);
	--pj-lead: var(--gvid-pj-lead, 1.125rem);
	--pj-r-sm: var(--gvid-pj-radius-sm, 12px);
	--pj-r-md: var(--gvid-pj-radius-md, 18px);
	--pj-r-lg: var(--gvid-pj-radius-lg, 24px);
	--pj-r-xl: var(--gvid-pj-radius-xl, 28px);
	--pj-shadow-sm: 0 6px 18px rgba(18, 18, 18, .18);
	--pj-shadow-md: 0 10px 30px rgba(18, 18, 18, .08);
	--pj-shadow-lg: 0 16px 40px rgba(18, 18, 18, .12);
	--pj-wa-icon: url("../img/whatsapp.png");
	--pj-phone-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--pj-check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--pj-arrow-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--pj-pin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

/* ---------- Base typography ---------- */
body { color: var(--pj-ink-2); }
h1, h2, h3, h4, h5, h6 { color: var(--pj-ink); }
h1, h2 { font-weight: 800; letter-spacing: -0.03em; line-height: 1.06; }
h3, h4 { font-weight: 700; line-height: 1.2; }
.pj-redesign .et_pb_text .et_pb_text_inner h1 { font-size: var(--pj-h1) !important; line-height: 1.02; letter-spacing: -1.5px; padding-bottom: 0; }
.pj-redesign .et_pb_text .et_pb_text_inner h2 { font-size: var(--pj-h2) !important; padding-bottom: 0; }
.pj-redesign h3 { font-size: var(--pj-h3); padding-bottom: 0; }
.pj-redesign p { padding-bottom: 0; }
.pj-redesign .et_pb_text_inner > * + * { margin-top: 14px; }
.pj-accent { color: var(--pj-pink); }
.pj-eyebrow { font-weight: 700 !important; color: var(--pj-pink); letter-spacing: 1.5px; font-size: 14px !important; text-transform: uppercase; line-height: 1.4; }
.pj-eyebrow + h2, .pj-eyebrow + h1 { margin-top: 6px !important; }
.pj-lead { font-size: var(--pj-lead); color: var(--pj-ink-2); max-width: 560px; }
.pj-muted { color: var(--pj-muted); }
.pj-small { font-size: 14px; }
.pj-redesign a:not(.et_pb_button) { color: var(--pj-green); font-weight: 700; }
.pj-redesign a:not(.et_pb_button):hover { color: #1F4D05; }

/* On dark backgrounds (Ink sections, pink panel, ink cards). */
.pj-on-dark.pj-on-dark, .pj-on-dark.pj-on-dark .et_pb_text_inner h1, .pj-on-dark.pj-on-dark .et_pb_text_inner h2, .pj-on-dark.pj-on-dark .et_pb_text_inner h3, .pj-on-dark.pj-on-dark .et_pb_text_inner strong { color: #FFFFFF !important; }
.pj-on-dark p, .pj-on-dark li { color: #D6D6D6; }
.pj-on-dark .pj-eyebrow { color: var(--pj-lime); }
.pj-on-pink p { color: #FFE6F1; }

/* ---------- Buttons ---------- */
.et_pb_button { transition: transform .12s ease, box-shadow .12s ease, background-color .15s ease, color .15s ease !important; }
.et_pb_button:hover { transform: translateY(-1px); box-shadow: var(--pj-shadow-sm); }
.et_pb_button:focus-visible, .pj-chip:focus-visible, .pj-quote input:focus-visible, .pj-header a:focus-visible { outline: 3px solid var(--pj-pink); outline-offset: 2px; }
/* Button icons are background layers (Divi suppresses ::before on buttons). */
html body .et_pb_button.pj-btn-wa.pj-btn-wa {
	background-image: url("../img/whatsapp.png"), radial-gradient(circle at 26px 50%, #FFFFFF 0 14px, transparent 14.5px) !important;
	background-repeat: no-repeat !important; background-size: 20px 20px, auto !important; background-position: 16px 50%, 0 0 !important;
	padding-left: 50px !important;
}
html body .et_pb_button.pj-btn-tel.pj-btn-tel {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-size: 18px 18px !important; background-position: 20px 50% !important;
	padding-left: 48px !important;
}
html body .et_pb_button.pj-btn-tel.pj-btn-tel.pj-btn-lg { background-position: 24px 50% !important; padding-left: 52px !important; }
html body .et_pb_button.pj-btn-wa.pj-btn-wa.pj-btn-lg { padding-left: 54px !important; }
.et_pb_button_module_wrapper:has(.pj-btn-block) { width: 100%; max-width: none; align-self: stretch; }
.et_pb_button.pj-btn-block { width: 100% !important; box-sizing: border-box; }
.et_pb_button.pj-btn-block { display: flex !important; justify-content: center; border-radius: var(--pj-r-sm) !important; font-weight: 800 !important; min-height: 52px; align-items: center; }
.et_pb_button.pj-btn-lg { font-size: 18px !important; font-weight: 800 !important; min-height: 56px; padding-left: 26px !important; padding-right: 26px !important; }
.pj-actions { margin-top: 6px; }
.pj-actions .et_pb_button_module_wrapper { margin: 0 !important; }

/* ---------- Header (Theme Builder header) ---------- */
.pj-header-top { border-bottom: 1px solid #E6E9E2; }
.pj-header-top .et_pb_row { align-items: center; }
.pj-logo img { height: 84px; width: auto; }
.pj-header-contact { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.pj-header-contact .pj-gs { height: 52px; width: auto; display: block; }
.pj-header-contact .pj-callout { display: flex; flex-direction: column; text-align: right; line-height: 1.2; }
.pj-header-contact .pj-callout span { font-size: 13px; font-weight: 600; color: var(--pj-muted); }
.pj-header-contact .pj-callout a { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 26px; color: var(--pj-ink) !important; text-decoration: none; }
.pj-pill { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 48px; min-height: 48px; padding: 0 16px; border-radius: 999px; font-weight: 700; text-decoration: none !important; transition: transform .12s ease, box-shadow .12s ease; }
.pj-pill:hover { transform: translateY(-1px); box-shadow: var(--pj-shadow-sm); }
.pj-pill--outline { border: 2px solid var(--pj-ink); color: var(--pj-ink) !important; }
.pj-pill--wa { background: var(--pj-whatsapp); color: #FFFFFF !important; padding-left: 8px; }
.pj-pill--wa::before { content: ""; width: 32px; height: 32px; border-radius: 50%; background: #FFFFFF var(--pj-wa-icon) center / 24px no-repeat; flex: none; }
.pj-pill--outline::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--pj-phone-icon) center / contain no-repeat; mask: var(--pj-phone-icon) center / contain no-repeat; }

.pj-navbar { background: var(--pj-ink); }
.pj-navbar .et_pb_menu, .pj-navbar .et_pb_menu__wrap { background: transparent !important; }
.pj-navbar .et_pb_menu__wrap { justify-content: center !important; }
.pj-navbar .et-menu > li { padding: 0 !important; }
.pj-navbar .et-menu > li > a {
	color: #FFFFFF !important; font-weight: 700; font-size: 16px !important; padding: 0 14px !important;
	min-height: 56px; display: inline-flex !important; align-items: center; opacity: 1 !important;
}
.pj-navbar .et-menu > li.menu-item-has-children > a { padding-right: 30px !important; }
.pj-navbar .et-menu > li.menu-item-has-children > a::after { color: inherit; right: 10px; top: 50%; transform: translateY(-50%); }
.pj-navbar .et-menu > li > a:hover, .pj-navbar .et-menu > li:hover > a, .pj-navbar .et-menu > li.current-menu-ancestor > a { color: var(--pj-lime) !important; }
.pj-navbar .et-menu .sub-menu {
	width: 300px !important; padding: 8px !important; border: 0 !important; border-radius: 0 0 14px 14px;
	background: #FFFFFF !important; box-shadow: 0 16px 32px rgba(18, 18, 18, .18); top: 100% !important;
}
.pj-navbar .et-menu .sub-menu li { padding: 0 !important; width: 100%; }
.pj-navbar .et-menu .sub-menu a {
	width: 100% !important; color: var(--pj-ink) !important; font-size: 15px !important; font-weight: 600;
	min-height: 44px; display: flex !important; align-items: center; padding: 0 12px !important; border-radius: 10px; opacity: 1 !important;
}
.pj-navbar .et-menu .sub-menu a:hover { background: var(--pj-sage) !important; color: var(--pj-ink) !important; }
/* Mobile menu: full-width "Menu" bar, white panel. */
.pj-navbar .et_mobile_nav_menu { width: 100%; float: none; margin: 0 !important; }
.pj-navbar .et_pb_menu__wrap { margin-top: 0 !important; }
.pj-navbar .mobile_nav { display: block; }
.pj-navbar .mobile_menu_bar { display: flex !important; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 52px; background: transparent !important; padding: 0 !important; border-radius: 0 !important; }
.pj-navbar .mobile_menu_bar::before { color: #FFFFFF !important; position: static !important; font-size: 28px !important; }
.pj-navbar .mobile_menu_bar::after { content: "Menu"; color: #FFFFFF; font-weight: 700; font-size: 16px; }
.pj-navbar .et_mobile_menu { border-top: 0 !important; padding: 0 !important; box-shadow: 0 16px 32px rgba(18, 18, 18, .18); max-height: 75vh; overflow-y: auto; }
.pj-navbar .et_mobile_menu li a { color: var(--pj-ink) !important; font-weight: 600; min-height: 48px; display: flex; align-items: center; padding: 0 16px !important; border-bottom: 1px solid #E6E9E2 !important; }
.pj-navbar .et_mobile_menu .sub-menu li a { font-size: 15px; font-weight: 500; padding-left: 28px !important; min-height: 44px; }
@media (max-width: 980px) {
	.pj-header-contact .pj-gs, .pj-header-contact .pj-callout { display: none; }
	.pj-logo img { height: 56px; }
	.pj-pill span { display: none; }
	.pj-pill { padding: 0 14px; }
	.pj-pill--wa { padding: 0 8px; }
}

/* ---------- Chips ---------- */
.pj-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 !important; padding: 0 !important; }
.pj-chips li { display: inline-flex; align-items: center; gap: 6px; background: #FFFFFF; border: 1px solid var(--pj-sage-border); border-radius: 999px; padding: 6px 12px; font-size: 14px; font-weight: 600; color: var(--pj-ink); line-height: 1.3; }
.pj-chips li::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--pj-green); -webkit-mask: var(--pj-check-icon) center / contain no-repeat; mask: var(--pj-check-icon) center / contain no-repeat; }

/* ---------- Hero ---------- */
.pj-hero .et_pb_row { align-items: center; }
.pj-hero-media { position: relative; }
.pj-hero-media .et_pb_image img { height: 600px; width: 100%; object-fit: cover; border-radius: var(--pj-r-xl) !important; }
.pj-hero-note {
	position: absolute !important; left: 20px; right: 20px; bottom: 20px; max-width: 360px; margin: 0 !important;
	background: rgba(255, 255, 255, .96); border-radius: 16px; padding: 14px 16px; box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
}
.pj-hero-note .et_pb_text_inner { display: flex; gap: 12px; align-items: center; font-size: 15px; line-height: 1.35; color: var(--pj-ink); }
.pj-hero-note .et_pb_text_inner::before { content: ""; width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--pj-lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / 24px no-repeat; }
.pj-hero-note p { margin: 0; color: var(--pj-ink); }

/* Quick quote picker (Code module + js/pj-design.js). */
.pj-quote { background: #FFFFFF; border-radius: 20px; padding: 22px; box-shadow: var(--pj-shadow-md); border: 1px solid #E3EAD8; display: flex; flex-direction: column; gap: 14px; }
.pj-quote__title { font-weight: 700; font-size: 18px; color: var(--pj-ink); }
.pj-quote__jobs { display: flex; flex-wrap: wrap; gap: 8px; }
.pj-chip { min-height: 44px; padding: 0 16px; border-radius: 999px; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; background: #FFFFFF; color: var(--pj-ink); border: 1.5px solid var(--pj-input); }
.pj-chip[aria-pressed="true"] { background: var(--pj-ink); color: #FFFFFF; border-color: var(--pj-ink); }
.pj-quote__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.pj-quote__field { display: flex; flex-direction: column; gap: 4px; flex: 1 1 160px; }
.pj-quote__field label { font-size: 14px; font-weight: 600; color: var(--pj-ink-2); }
.pj-quote__field input { min-height: 48px; border: 1.5px solid var(--pj-input); border-radius: var(--pj-r-sm); padding: 0 14px; font: inherit; font-size: 17px; text-transform: uppercase; color: var(--pj-ink); background: #FFFFFF; }
.pj-quote__go { flex: 2 1 240px; display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-height: 52px; border-radius: var(--pj-r-sm); background: var(--pj-whatsapp); color: #FFFFFF !important; text-decoration: none !important; font-weight: 700 !important; font-size: 17px; transition: transform .12s ease, box-shadow .12s ease; }
.pj-quote__go:hover { transform: translateY(-1px); box-shadow: var(--pj-shadow-sm); }
.pj-quote__go::before { content: ""; width: 30px; height: 30px; border-radius: 50%; background: #FFFFFF var(--pj-wa-icon) center / 22px no-repeat; flex: none; }
.pj-quote__alt { font-size: 14px; color: var(--pj-muted); margin: 0; }

/* ---------- Trust bar ---------- */
.pj-trust { border-bottom: 1px solid #E6E9E2; }
.pj-trust .et_pb_blurb_content { display: flex !important; flex-direction: row !important; align-items: center; gap: 12px; text-align: left; max-width: none; }
.pj-trust .et_pb_blurb_container { padding-left: 0 !important; }
.pj-trust .et_pb_main_blurb_image { margin: 0 !important; width: auto !important; }
.pj-trust .et_pb_main_blurb_image img { height: 52px; width: auto; }
.pj-trust .et_pb_module_header { padding: 0 !important; }
.pj-trust .pj-trust-link .et_pb_blurb_description { color: var(--pj-green); text-decoration: underline; }

/* ---------- Cards ---------- */
.pj-card { transition: border-color .15s ease; }
.pj-card:hover { border-color: var(--pj-lime) !important; }
.pj-card .et_pb_blurb_content { display: flex; flex-direction: column; height: 100%; max-width: none; }
.pj-card .et_pb_blurb_container { display: flex; flex-direction: column; flex: 1; }
.pj-card .et_pb_blurb_description { display: flex; flex-direction: column; gap: 12px; flex: 1; }
.pj-card .et_pb_main_blurb_image { margin-bottom: 14px !important; align-self: flex-start; text-align: left; width: auto !important; line-height: 0; }
.pj-card .et_pb_main_blurb_image .et_pb_image_wrap { display: inline-flex; }
.pj-card .et_pb_module_header { padding-bottom: 10px !important; }
.pj-card p { margin: 0 !important; padding: 0 !important; }
.pj-card .pj-price { font-weight: 700; color: var(--pj-ink); }
.pj-cta { margin-top: auto !important; font-weight: 700; color: var(--pj-green); display: inline-flex; gap: 6px; align-items: center; }
.pj-cta::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--pj-arrow-icon) center / contain no-repeat; mask: var(--pj-arrow-icon) center / contain no-repeat; }
.pj-cards .et_pb_column { display: flex; flex-direction: column; }
.pj-cards .et_pb_column > .et_pb_module { flex: 1; }
.pj-cards { column-gap: 18px !important; row-gap: 18px !important; }
.pj-cards + .pj-cards { margin-top: 18px; }

/* ---------- Price cards ---------- */
.pj-prices > .et_pb_column { display: flex; flex-direction: column; gap: 16px; }
.pj-prices > .et_pb_column > .et_pb_module { margin: 0 !important; }
.pj-prices > .et_pb_column > .et_pb_button_module_wrapper { margin-top: auto !important; }
.pj-prices { column-gap: 18px !important; }
.pj-label { font-weight: 700; color: var(--pj-pink); font-size: 15px; letter-spacing: 1px; text-transform: uppercase; margin: 0; }
.pj-on-dark .pj-label { color: var(--pj-lime); }
.pj-label--green { color: var(--pj-green); }
.pj-price-big { display: flex; align-items: baseline; gap: 10px; margin: 0; }
.pj-price-big strong { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 56px; line-height: 1; color: inherit; }
.pj-price-big span { font-size: 15px; line-height: 1.35; color: var(--pj-muted); }
.pj-on-dark .pj-price-big span { color: #CFCFCF; }
.pj-price-big--sm strong { font-size: 32px; }
.pj-note { background: var(--pj-green-tint); border-radius: var(--pj-r-sm); padding: 12px 14px; font-weight: 700; color: var(--pj-ink); margin: 0; }
.pj-plan { display: block; background: #1E1E1E; border: 1px solid #333333; border-radius: var(--pj-r-sm); padding: 12px 14px; color: #FFFFFF !important; font-weight: 400 !important; text-decoration: none; font-size: 15px; }
.pj-plan strong { color: var(--pj-lime) !important; }
.pj-small-print { font-size: 14px; color: #BDBDBD; border-top: 1px solid #333333; padding-top: 12px; margin: 0; }
.pj-landlord { column-gap: 36px !important; align-items: center; }
.pj-landlord-add { background: var(--pj-green-tint); border-radius: 16px; padding: 18px !important; }
.pj-landlord-add .et_pb_module { margin-bottom: 12px !important; }

/* Tick lists. */
.pj-ticks { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 9px; font-size: 16px; }
.pj-ticks li { display: flex; gap: 10px; align-items: flex-start; padding: 0 !important; color: inherit; line-height: 1.45; }
.pj-ticks li::before { content: ""; width: 20px; height: 20px; margin-top: 2px; flex: none; background: var(--pj-green); -webkit-mask: var(--pj-check-icon) center / 16px no-repeat; mask: var(--pj-check-icon) center / 16px no-repeat; }
.pj-on-dark .pj-ticks li { color: #FFFFFF; }
.pj-on-dark .pj-ticks li::before { background: var(--pj-lime); }

/* ---------- Promise list (dark section) ---------- */
.pj-promise { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 14px; }
.pj-promise li { display: flex; gap: 14px; align-items: flex-start; padding: 0 !important; color: #D6D6D6; }
.pj-promise li::before { content: ""; width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--pj-lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 16px no-repeat; }
.pj-promise strong { color: #FFFFFF; }

/* ---------- Steps ---------- */
.pj-steps { list-style: none !important; padding: 0 !important; margin: 0 !important; counter-reset: pjstep; display: flex; flex-direction: column; gap: 28px; }
.pj-steps li { counter-increment: pjstep; display: flex; gap: 18px; align-items: flex-start; padding: 0 !important; }
.pj-steps li::before { content: counter(pjstep); font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 22px; width: 52px; height: 52px; flex: none; border-radius: 16px; background: var(--pj-pink); color: #FFFFFF; display: flex; align-items: center; justify-content: center; }
.pj-steps strong { display: block; font-size: 20px; color: var(--pj-ink); margin-bottom: 2px; }

/* ---------- Media with badges ---------- */
.pj-media-tall .et_pb_image img { height: 560px; width: 100%; object-fit: cover; border-radius: var(--pj-r-xl) !important; }
.pj-media-480 .et_pb_image img { height: 480px; width: 100%; object-fit: cover; border-radius: var(--pj-r-lg) !important; }
.pj-media-380 .et_pb_image img { height: 380px; width: 100%; object-fit: cover; object-position: 60% center; border-radius: var(--pj-r-lg) !important; }
.pj-badge-wrap { position: relative; }
.pj-badge { position: absolute !important; top: 20px; left: 20px; margin: 0 !important; background: var(--pj-lime); color: var(--pj-ink); border-radius: 16px; padding: 14px 18px; font-family: 'Bricolage Grotesque', sans-serif; line-height: 1.05; width: auto !important; }
.pj-badge strong { display: block; font-weight: 800; font-size: 34px; color: var(--pj-ink); }
.pj-badge span { font-weight: 700; font-size: 14px; }

/* Warranty table + feature tiles. */
.pj-table { border: 1.5px solid var(--pj-border); border-radius: 16px; overflow: hidden; margin: 0; }
.pj-table > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 16px; border-top: 1px solid var(--pj-border); color: var(--pj-ink); }
.pj-table > div:first-child { border-top: 0; background: var(--pj-sage); font-weight: 700; }
.pj-table > div.pj-table__foot { font-size: 14px; color: var(--pj-muted); padding: 10px 16px; }
.pj-table strong { text-align: right; }
.pj-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; list-style: none !important; padding: 0 !important; margin: 0 !important; }
.pj-features li { display: flex; gap: 10px; align-items: center; padding: 14px !important; border: 1.5px solid var(--pj-border); border-radius: 14px; color: var(--pj-ink); }
.pj-features li::before { content: ""; width: 20px; height: 20px; flex: none; background: var(--pj-green); -webkit-mask: var(--pj-check-icon) center / 16px no-repeat; mask: var(--pj-check-icon) center / 16px no-repeat; }

/* ---------- Reviews ---------- */
.pj-rating { display: inline-flex; align-items: center; gap: 14px; background: #FFFFFF; border: 1.5px solid var(--pj-border); border-radius: 16px; padding: 12px 18px; }
.pj-rating__score { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 34px; line-height: 1; color: var(--pj-ink); }
.pj-rating__meta { display: flex; flex-direction: column; gap: 2px; }
.pj-rating__meta a + a { font-weight: 400 !important; font-size: 14px; color: var(--pj-muted) !important; }
.pj-stars { color: var(--pj-star); letter-spacing: 2px; font-size: 18px; line-height: 1.2; }
.pj-review { margin: 0; display: flex; flex-direction: column; gap: 14px; height: 100%; }
.pj-review blockquote { margin: 0; padding: 0; border: 0; color: #2A2E28; font-size: 17px; font-style: normal; }
.pj-review figcaption { margin-top: auto; display: flex; flex-direction: column; gap: 2px; color: var(--pj-ink); }
.pj-review figcaption span { font-size: 14px; color: var(--pj-muted); }
.pj-reviews-row { column-gap: 18px !important; }
.pj-reviews-row > .et_pb_column > .et_pb_module, .pj-reviews-row .et_pb_text_inner { height: 100%; }
.pj-head-split { align-items: flex-end !important; }

/* ---------- Brand marquee ---------- */
.pj-mq-title { font-weight: 700; font-size: 14px; color: var(--pj-muted); letter-spacing: 1.5px; text-align: center; text-transform: uppercase; }
.pj-mq { overflow: hidden; background: #FFFFFF; border-radius: 20px; border: 1.5px solid var(--pj-border); padding: 22px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.pj-mq__track { display: flex; align-items: center; width: max-content; animation: pjmq 32s linear infinite; }
.pj-mq:hover .pj-mq__track { animation-play-state: paused; }
.pj-mq__track img { height: 60px; width: auto; display: block; flex: none; margin-right: 64px; }
@keyframes pjmq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.pj-mq { -webkit-mask-image: none; mask-image: none; }
	.pj-mq__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; gap: 32px; }
	.pj-mq__track img { margin-right: 0; }
	.pj-mq__track .pj-mq-dup { display: none; }
	.et_pb_button:hover, .pj-pill:hover, .pj-quote__go:hover { transform: none; }
}

/* ---------- Emergency CTA panel ---------- */
.pj-cta-panel { align-items: center; }
.pj-cta-panel .pj-actions { justify-content: flex-end; }
@media (max-width: 980px) { .pj-cta-panel .pj-actions { justify-content: flex-start; } }

/* ---------- Areas ---------- */
.pj-areas-hero .et_pb_image img { width: 100%; height: 520px; object-fit: cover; object-position: 70% 40%; border-radius: 0 !important; display: block; }
.pj-areas-card { position: relative; z-index: 2; box-shadow: var(--pj-shadow-lg); }
.pj-towns-main, .pj-towns { display: flex; flex-wrap: wrap; list-style: none !important; padding: 0 !important; margin: 0 !important; }
.pj-towns-main { gap: 10px; }
.pj-towns { gap: 8px; }
.pj-towns-main li, .pj-towns li { padding: 0 !important; }
.pj-towns-main a, .pj-towns a { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; text-decoration: none !important; transition: background-color .15s ease, transform .12s ease; }
.pj-towns-main a { min-height: 52px; padding: 0 22px; background: var(--pj-ink); color: #FFFFFF !important; font-weight: 800 !important; font-size: 18px; }
.pj-towns a { min-height: 40px; padding: 0 14px; background: var(--pj-sage); color: var(--pj-ink) !important; font-weight: 600 !important; font-size: 15px; }
.pj-towns a:hover { background: var(--pj-green-tint); }
.pj-towns-main a:hover { background: var(--pj-pink); }
.pj-towns-main a::before, .pj-towns a::before { content: ""; width: 16px; height: 16px; flex: none; background: currentColor; -webkit-mask: var(--pj-pin-icon) center / contain no-repeat; mask: var(--pj-pin-icon) center / contain no-repeat; }
.pj-towns-main a::before { width: 18px; height: 18px; }

/* ---------- Footer contact ---------- */
.pj-footer .pj-big-phone { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 40px; color: var(--pj-lime) !important; text-decoration: none; line-height: 1.1; }
.pj-footer-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; color: #D6D6D6; font-size: 16px; }
.pj-footer-info b { display: block; color: #FFFFFF; margin-bottom: 4px; }
.pj-footer-info a { color: #D6D6D6 !important; font-weight: 400 !important; text-decoration: underline; }
.pj-footer-info .pj-gs-row { display: flex; gap: 12px; align-items: center; color: #FFFFFF; font-weight: 700; }
.pj-footer-info .pj-gs-row img { height: 56px; width: auto; }
.pj-footer .pj-form { background: #FFFFFF; border-radius: var(--pj-r-lg); padding: 28px !important; }
.pj-form .et_pb_contact_main_title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 24px !important; color: var(--pj-ink) !important; padding-bottom: 14px; }
.pj-form .et_pb_contact_field { padding-left: 0 !important; margin-bottom: 14px !important; width: 100% !important; }
.pj-form .et_pb_contact_field .et_pb_contact_form_label { display: block !important; font-weight: 600; font-size: 15px; color: var(--pj-ink); margin-bottom: 6px; }
.pj-form input.input, .pj-form textarea.input { background: #FFFFFF !important; border: 1.5px solid var(--pj-input) !important; border-radius: var(--pj-r-sm) !important; padding: 12px 14px !important; font-size: 16px !important; color: var(--pj-ink) !important; min-height: 48px; }
.pj-form .et_contact_bottom_container { float: none; width: 100%; margin-top: 4px; display: block; text-align: left; }
.pj-form .et_pb_contact_submit { width: 100%; min-height: 54px; border: 0 !important; border-radius: var(--pj-r-sm) !important; background: var(--pj-pink) !important; color: #FFFFFF !important; font-weight: 800 !important; font-size: 17px !important; margin: 0 !important; }
.pj-form .et_pb_contact_submit::after { display: none !important; }
.pj-form .et_pb_contact_submit:hover { background: var(--pj-ink) !important; padding: 0 !important; }
.pj-legal { border-top: 1px solid #2E2E2E; }
.pj-legal .et_pb_text_inner, .pj-legal .et_pb_text_inner p { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.pj-legal.pj-legal .et_pb_text_inner p, .pj-legal.pj-legal .et_pb_text_inner span { font-size: 13px !important; color: #A8A8A8 !important; line-height: 1.5; }
.pj-legal a { color: #A8A8A8 !important; font-weight: 400 !important; }

/* ---------- Mobile action bar ---------- */
.pj-mbar { display: none; }
@media (max-width: 760px) {
	.pj-mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: #FFFFFF; border-top: 1px solid var(--pj-border); box-shadow: 0 -6px 18px rgba(0, 0, 0, .08); }
	.pj-mbar a { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; border-radius: var(--pj-r-sm); font-weight: 700; text-decoration: none; }
	.pj-mbar .pj-mbar__call { border: 2px solid var(--pj-ink); color: var(--pj-ink) !important; }
	.pj-mbar .pj-mbar__call::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--pj-phone-icon) center / contain no-repeat; mask: var(--pj-phone-icon) center / contain no-repeat; }
	.pj-mbar .pj-mbar__wa { flex: 1.4; background: var(--pj-whatsapp); color: #FFFFFF !important; }
	.pj-mbar .pj-mbar__wa::before { content: ""; width: 28px; height: 28px; border-radius: 50%; background: #FFFFFF var(--pj-wa-icon) center / 20px no-repeat; }
	body { padding-bottom: 72px; }
	/* The WATI chat bubble would sit on top of the bar. */
	#wa-widget-send-button, .wa-chat-box, [class*="wa-widget"] { bottom: 84px !important; }
	.pj-hero-media .et_pb_image img { height: 380px; }
	.pj-media-tall .et_pb_image img, .pj-media-480 .et_pb_image img { height: 380px; }
	.pj-areas-hero .et_pb_image img { height: 300px; }
	.pj-price-big strong { font-size: 48px; }
}

/* Images fill their column. */
.pj-redesign .et_pb_image, .pj-redesign .et_pb_image .et_pb_image_wrap, .pj-redesign .et_pb_image img { width: 100%; max-width: 100%; display: block; }

/* Neutralise legacy list "card" styling from the old theme CSS inside redesigned sections. */
.pj-redesign .et_pb_text_inner ul, .pj-redesign .et_pb_text_inner ol { background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
.pj-areas-hero .et_pb_image_wrap, .pj-areas-hero img { border-radius: 0 !important; }
.pj-form input.input::placeholder, .pj-form textarea.input::placeholder { color: transparent; }
@media (max-width: 767px) {
	.pj-header-top .et_pb_row { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box; }
}
.pj-card .et_pb_blurb_content { row-gap: 0 !important; gap: 0 !important; }
.pj-card .et_pb_main_blurb_image .et-pb-icon { margin-bottom: 0 !important; }
.pj-card .et_pb_main_blurb_image .et_pb_image_wrap { height: auto; }

/* ---------- Price list ---------- */
.pj-way h3 { font-size: 22px !important; font-weight: 800; margin-bottom: 8px; }
.pj-way p { color: var(--pj-ink-2); }
.pj-plan-banner { display: block; background: var(--pj-ink); border-radius: 16px; padding: 18px 22px; color: #FFFFFF !important; font-weight: 400 !important; text-decoration: none; }
.pj-plan-banner strong { color: var(--pj-lime) !important; }
.pj-plan-banner:hover { color: #FFFFFF !important; box-shadow: var(--pj-shadow-sm); }
.pj-ptable { border-radius: 22px; border: 1.5px solid var(--pj-border); overflow: hidden; background: #FFFFFF; }
.pj-redesign .et_pb_text .et_pb_text_inner h2.pj-ptable__title { margin: 0 !important; padding: 18px 16px !important; background: var(--pj-sage); font-size: 22px !important; font-weight: 800; letter-spacing: 0; line-height: 1.2; }
.pj-ptable table { width: 100%; border-collapse: collapse; border: 0 !important; margin: 0 !important; font-size: 16px; }
.pj-ptable th, .pj-ptable td { border: 0 !important; padding: 14px 16px !important; vertical-align: top; text-align: right; white-space: nowrap; }
.pj-ptable th { padding: 12px 16px !important; font-size: 14px; letter-spacing: .5px; color: var(--pj-muted); font-weight: 700; background: none; }
.pj-ptable th:first-child, .pj-ptable td:first-child { text-align: left; white-space: normal; width: 100%; }
.pj-ptable tbody tr { border-top: 1px solid #E6E9E2; }
.pj-ptable td:nth-child(2) { color: var(--pj-muted); }
.pj-ptable td:nth-child(3) { font-weight: 800; color: var(--pj-ink); }
.pj-ptable__job { display: block; font-weight: 600; color: var(--pj-ink); }
.pj-ptable__note { display: block; color: var(--pj-muted); font-size: 14px; }
@media (max-width: 480px) { .pj-ptable th, .pj-ptable td { padding-left: 12px !important; padding-right: 12px !important; } .pj-ptable { font-size: 15px; } }
html body .et_pb_button.pj-btn-on-white { background-color: #FFFFFF !important; }

/* ---------- Bathrooms ---------- */
.pj-ticks--lg { font-size: 17px; gap: 10px; }
.pj-duo { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; width: 100%; }
.pj-duo .et_pb_image { margin: 0 !important; }
.pj-duo .et_pb_image img { height: 520px; width: 100%; object-fit: cover; object-position: center 40%; border-radius: var(--pj-r-lg) !important; }
.pj-duo .pj-duo-b { margin-top: 40px !important; }
@media (max-width: 767px) { .pj-duo .et_pb_image img { height: 300px; } .pj-duo .pj-duo-b { margin-top: 24px !important; } }

/* Process tabs. Without JS every panel shows in order. */
.pj-steps-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 12px; scroll-margin-top: 80px; }
.pj-steps-ui:not(.is-enhanced) .pj-steps-tabs { display: none; }
.pj-step-tab { display: flex; gap: 14px; align-items: center; min-height: 84px; padding: 14px 16px; border-radius: 18px; cursor: pointer; font: inherit; text-align: left; background: #FFFFFF; color: var(--pj-ink); border: 2px solid var(--pj-border); transition: border-color .15s ease; }
.pj-step-tab:hover { border-color: var(--pj-ink); }
.pj-step-tab:focus-visible, .pj-step-btn:focus-visible { outline: 3px solid var(--pj-pink); outline-offset: 2px; }
.pj-step-tab__n { flex: none; width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 20px; background: var(--pj-pink-tint); color: var(--pj-pink); }
.pj-step-tab__t { display: flex; flex-direction: column; gap: 2px; }
.pj-step-tab__t strong { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 18px; color: inherit; }
.pj-step-tab__t span { font-size: 14px; opacity: .85; }
.pj-step-tab[aria-selected="true"] { background: var(--pj-ink); color: #FFFFFF; border-color: var(--pj-ink); }
.pj-step-tab[aria-selected="true"] .pj-step-tab__n { background: var(--pj-lime); color: var(--pj-ink); }
.pj-step-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 32px 48px; align-items: center; background: var(--pj-neutral); border-radius: var(--pj-r-xl); padding: 36px; margin-top: 12px; }
.pj-step-panel[hidden] { display: none; }
.pj-step-panel__body { display: flex; flex-direction: column; gap: 16px; }
.pj-redesign .pj-step-panel h3 { font-size: 34px !important; font-weight: 800; line-height: 1.1; margin: 0; }
.pj-step-panel .pj-eyebrow + h3 { margin-top: -8px; }
.pj-step-cta { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 24px 0 12px; border-radius: 999px; background: var(--pj-pink); color: #FFFFFF !important; text-decoration: none; font-weight: 800 !important; margin-top: 6px; transition: transform .12s ease, box-shadow .12s ease; }
.pj-step-cta::before { content: ""; width: 30px; height: 30px; border-radius: 50%; flex: none; background: #FFFFFF url("../img/whatsapp.png") center / 22px no-repeat; }
.pj-step-cta:hover { transform: translateY(-1px); box-shadow: var(--pj-shadow-sm); }
.pj-step-nav { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.pj-steps-ui:not(.is-enhanced) .pj-step-nav { display: none; }
.pj-step-btn { min-height: 48px; padding: 0 20px; border-radius: 999px; font: inherit; font-weight: 700; cursor: pointer; background: #FFFFFF; color: var(--pj-ink); border: 2px solid var(--pj-ink); }
.pj-step-btn[disabled] { opacity: .4; cursor: default; }
.pj-step-btn--dark { background: var(--pj-ink); color: #FFFFFF; }
.pj-step-img { width: 100%; height: 440px; object-fit: cover; object-position: center 30%; border-radius: 22px; display: block; }
.pj-step-img--plan { object-fit: contain; background: #F6F8FB; border: 1.5px solid var(--pj-border); }
.pj-step-img--tall { height: 600px; object-position: center 60%; }
@media (max-width: 767px) { .pj-step-panel { padding: 22px; } .pj-step-img, .pj-step-img--tall { height: 320px; } .pj-redesign .pj-step-panel h3 { font-size: 28px !important; } }

/* Plan → 3D → finished */
.pj-fig .et_pb_image img { height: 360px; width: 100%; object-fit: cover; border-radius: 20px !important; }
.pj-fig .pj-img-contain img { object-fit: contain; background: #FFFFFF; border: 1.5px solid var(--pj-border); }
.pj-fig .et_pb_module { margin: 0 !important; }
.pj-figcap { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--pj-ink); margin: 0; }
.pj-figcap span { flex: none; width: 32px; height: 32px; border-radius: 10px; background: var(--pj-pink-tint); color: var(--pj-pink); display: flex; align-items: center; justify-content: center; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; }
.pj-figcap span.is-lime { background: var(--pj-lime); color: var(--pj-ink); }

/* Price tiers */
.pj-tier .et_pb_text_inner { display: flex; flex-direction: column; gap: 10px; }
.pj-tier .pj-label { color: #CFCFCF; }
.pj-tier-price { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 48px; line-height: 1; margin: 0 !important; color: #FFFFFF; }
.pj-tier--hl.pj-tier--hl .et_pb_text_inner, .pj-tier--hl.pj-tier--hl .et_pb_text_inner p { color: var(--pj-ink) !important; }
@media (max-width: 767px) { .pj-tier-price { font-size: 40px; } }

/* Gallery */
.pj-gallery-title { font-weight: 700; font-size: 18px; color: var(--pj-ink); }
.pj-gallery .et_pb_image img { height: 380px; width: 100%; object-fit: cover; border-radius: 18px !important; }
@media (max-width: 767px) { .pj-gallery .et_pb_image img { height: 240px; } }

/* ---------- Service pages (kitchens / bathrooms) ---------- */
.pj-hero-media--plain .et_pb_image img { height: 520px; }
.pj-acc-logo { height: 64px !important; width: auto !important; display: block; margin-bottom: 6px; }
.pj-redesign .et_pb_text .et_pb_text_inner .pj-ideas h3, .pj-redesign .et_pb_text .et_pb_text_inner .pj-why h3 { font-size: 20px !important; margin: 0; }
.pj-ideas { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 18px; }
.pj-ideas li { display: flex; flex-direction: column; gap: 10px; padding: 24px !important; background: #FFFFFF; border: 1.5px solid var(--pj-border); border-radius: var(--pj-r-md); transition: border-color .15s ease; }
.pj-ideas li:hover { border-color: var(--pj-lime); }
.pj-idea-n { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: var(--pj-pink-tint); color: var(--pj-pink); font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 20px; }
.pj-ideas p { margin: 0 !important; color: var(--pj-ink-2); font-size: 16px; }
.pj-ideas-after { margin-top: 28px; max-width: 820px; }
.pj-article { font-size: 17px; line-height: 1.7; color: var(--pj-ink-2); }
.pj-redesign .et_pb_text .et_pb_text_inner .pj-article h2 { font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem) !important; margin: 44px 0 14px !important; }
.pj-redesign .et_pb_text .et_pb_text_inner .pj-article h2:first-child { margin-top: 0 !important; }
.pj-article h3, .pj-article h4 { margin: 28px 0 8px !important; font-size: 20px; }
.pj-article p { margin: 0 0 14px !important; }
.pj-article ul, .pj-article ol { margin: 0 0 14px 1.2em !important; }
.pj-why { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.pj-why li { display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 24px 64px !important; position: relative; background: #1E1E1E; border: 1px solid #333333; border-radius: var(--pj-r-md); }
.pj-why li::before { content: ""; position: absolute; left: 20px; top: 24px; width: 32px; height: 32px; border-radius: 50%; background: var(--pj-lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121212' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 16px no-repeat; }
.pj-why p { margin: 0 !important; font-size: 16px; }
@media (max-width: 767px) { .pj-hero-media--plain .et_pb_image img { height: 320px; } }
.pj-hero--article.pj-redesign .et_pb_text .et_pb_text_inner h1 { font-size: clamp(2rem, 1.5rem + 1.6vw, 2.875rem) !important; line-height: 1.08; letter-spacing: -1px; }

/* ---------- Shared templates (town pages, boiler pages, posts, default) ---------- */
.pj-hero-media--dyn .et_pb_image img { height: 440px; }
.pj-features--white li { background: #FFFFFF; }
.pj-video iframe, .pj-video .fluid-width-video-wrapper { border-radius: var(--pj-r-lg); overflow: hidden; }
.pj-form-col .pj-form { background: #FFFFFF; border-radius: var(--pj-r-lg); padding: 28px !important; color: var(--pj-ink); max-width: none !important; }
.pj-form-col .pj-form .et_pb_contact_main_title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 24px !important; color: var(--pj-ink) !important; text-align: left !important; padding-bottom: 14px; }
.pj-form-col .pj-form::before, .pj-form-col .pj-form .et_pb_contact_main_title::before { content: none !important; display: none !important; }
.pj-form-col .et_pb_contact_field { padding-left: 0 !important; margin-bottom: 14px !important; width: 100% !important; }
.pj-form-col .et_pb_contact_field[data-id="page_name"], .pj-form-col .et_pb_contact_field[data-id="page_url"] { display: none !important; }
.pj-form-col input.input, .pj-form-col textarea.input { background: #FFFFFF !important; border: 1.5px solid var(--pj-input) !important; border-radius: var(--pj-r-sm) !important; padding: 12px 14px !important; font-size: 16px !important; color: var(--pj-ink) !important; min-height: 48px; }
.pj-form-col .et_contact_bottom_container { float: none; width: 100%; display: block; text-align: left; margin-top: 4px; }
.pj-form-col .et_pb_contact_submit { width: 100%; min-height: 54px; border: 0 !important; border-radius: var(--pj-r-sm) !important; background: var(--pj-pink) !important; color: #FFFFFF !important; font-weight: 800 !important; font-size: 17px !important; margin: 0 !important; padding: 0 !important; }
.pj-form-col .et_pb_contact_submit::after { display: none !important; }
.pj-form-col .et_pb_contact_submit:hover { background: var(--pj-ink) !important; }
.pj-blog .et_pb_post { background: #FFFFFF; border: 1.5px solid var(--pj-border) !important; border-radius: var(--pj-r-md); overflow: hidden; padding: 0 0 20px !important; box-shadow: none !important; transition: border-color .15s ease; }
.pj-blog .et_pb_post:hover { border-color: var(--pj-lime) !important; }
.pj-blog .et_pb_post .entry-featured-image-url { margin-bottom: 16px; }
.pj-blog .et_pb_post .entry-featured-image-url img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.pj-blog .et_pb_post .entry-title, .pj-blog .et_pb_post .post-meta, .pj-blog .et_pb_post .post-content { padding-left: 20px; padding-right: 20px; }
.pj-blog .et_pb_post .entry-title { font-size: 20px !important; line-height: 1.25; }
.pj-blog .et_pb_post .entry-title a { color: var(--pj-ink) !important; }
.pj-blog .et_pb_post .post-meta { color: var(--pj-muted); font-size: 14px; }
.pj-blog .more-link { color: var(--pj-green) !important; font-weight: 700; }
.pj-reviews-widget .ti-widget { font-family: inherit; }
.pj-post-body .pj-post-col > .et_pb_image img { max-height: 460px; object-fit: cover; }
.pj-post-body .et_pb_post_content { font-size: 17px; line-height: 1.7; }
.pj-post-body .et_pb_post_content h2 { font-size: clamp(1.5rem, 1.25rem + .8vw, 2rem) !important; margin-top: 32px; }
.pj-form-col .pj-form.pj-form .et_pb_contact_main_title { content: normal; }
.pj-form-col .pj-form .et_pb_contact_main_title::before { content: none !important; display: none !important; }
.pj-form-col .pj-form { border: 0 !important; box-shadow: none !important; }
.pj-center, .pj-center .et_pb_text_inner { text-align: center; }
.pj-actions--center { justify-content: center; }
.pj-404 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: clamp(5rem, 3rem + 8vw, 9rem); line-height: 1; color: var(--pj-pink); margin: 0 !important; }
.pj-search { max-width: 560px; }
.pj-search input.et_pb_s { border: 1.5px solid var(--pj-input) !important; border-radius: var(--pj-r-sm) 0 0 var(--pj-r-sm) !important; min-height: 52px; padding: 0 16px !important; background: #FFFFFF !important; font-size: 16px; }
.pj-search .et_pb_searchsubmit { background: var(--pj-ink) !important; color: #FFFFFF !important; border-radius: 0 var(--pj-r-sm) var(--pj-r-sm) 0 !important; font-weight: 700; }
/* Page content inside the shared templates: same container width and readable body text as the redesign. */
.pj-tpl-content .et_pb_post_content .et_pb_row { max-width: 1152px !important; }
.pj-tpl-content .et_pb_post_content .et_pb_text_inner p, .pj-tpl-content .et_pb_post_content .et_pb_text_inner li { font-size: 17px; line-height: 1.65; }

/* ---------- Boiler repair ---------- */
.pj-ticks--inline { flex-direction: row; flex-wrap: wrap; gap: 10px 22px; font-weight: 600; }
.pj-caption { font-size: 14px !important; color: var(--pj-muted) !important; margin: 0 !important; }
.pj-symptoms { list-style: none !important; padding: 0 !important; margin: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 14px; }
.pj-symptoms li { padding: 0 !important; }
.pj-symptoms a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px 22px; border-radius: 18px; background: #FFFFFF; border: 1.5px solid var(--pj-border); color: var(--pj-ink) !important; font-weight: 400 !important; text-decoration: none; transition: border-color .15s ease; box-sizing: border-box; }
.pj-symptoms a:hover { border-color: var(--pj-lime); }
.pj-symptoms strong { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 20px; }
.pj-symptoms span { color: var(--pj-ink-2); font-size: 16px; }
.pj-symptoms em { margin-top: auto; font-style: normal; font-weight: 700; color: var(--pj-green); font-size: 15px; }
.pj-alert { margin-top: 28px !important; padding: 16px 18px; border-radius: 14px; background: #FFF6D6; border: 1.5px solid #F2C94C; color: var(--pj-ink); font-size: 16px; }
.pj-alert a { font-weight: 800 !important; }
.pj-cost { display: flex; flex-direction: column; gap: 14px; padding: 26px; border-radius: 22px; background: var(--pj-ink); }
.pj-cost .pj-price-big strong { font-size: 52px; color: #FFFFFF; }
.pj-cost__note { background: var(--pj-lime); color: var(--pj-ink) !important; border-radius: 12px; padding: 12px 14px; font-weight: 700; margin: 0 !important; }
.pj-cost__link { color: var(--pj-lime) !important; font-size: 15px; }
.pj-redesign .et_pb_text_inner .pj-cost > * + * { margin-top: 0; }
.pj-steps--last-lime li:last-child::before { background: var(--pj-lime); color: var(--pj-ink); }
.pj-banner-link { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; padding: 26px 30px; border-radius: 22px; background: var(--pj-sage); border: 1.5px solid var(--pj-sage-border); color: var(--pj-ink) !important; font-weight: 400 !important; text-decoration: none; transition: border-color .15s ease; }
.pj-banner-link:hover { border-color: var(--pj-lime); }
.pj-banner-link > span { display: flex; flex-direction: column; gap: 4px; }
.pj-banner-link strong { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 26px; line-height: 1.15; }
.pj-banner-link > span > span { color: var(--pj-ink-2); }
.pj-banner-link em { font-style: normal; font-weight: 800; color: var(--pj-green); }
.pj-crosses { list-style: none !important; padding: 0 !important; margin: 9px 0 0 !important; display: flex; flex-direction: column; gap: 9px; font-size: 16px; }
.pj-crosses li { display: flex; gap: 10px; align-items: flex-start; padding: 0 !important; color: var(--pj-ink); }
.pj-crosses li::before { content: ""; width: 20px; height: 20px; margin-top: 2px; flex: none; background: #8A5A00; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / 16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / 16px no-repeat; }
.pj-redesign .et_pb_text .et_pb_text_inner .pj-option h3, .pj-option h3 { font-size: 26px !important; font-weight: 800; }
.pj-option .pj-ticks li { color: var(--pj-ink); }
.pj-quote-banner { display: flex; gap: 18px; align-items: flex-start; padding: 26px 28px; border-radius: 22px; background: var(--pj-ink); }
.pj-quote-banner > span { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 40px; line-height: 1; color: var(--pj-lime); }
.pj-quote-banner strong { display: block; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 24px; color: #FFFFFF; margin-bottom: 6px; }
.pj-quote-banner p { color: #E6E6E6 !important; margin: 0 !important; }
.et_pb_button.pj-btn-block { max-width: none !important; }

/* Blog lists: responsive card grid (Divi's flex row doesn't wrap). */
.pj-blog .et_pb_blog_posts { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 18px; flex-wrap: wrap; }
.pj-blog .et_pb_blog_posts > .et_pb_post { width: auto !important; max-width: none !important; margin: 0 !important; display: flex; flex-direction: column; }
.pj-blog .et_pb_post .post-content { flex: 1; display: flex; flex-direction: column; }
.pj-blog .et_pb_post .post-content .more-link { margin-top: auto; }
.pj-blog .et_pb_post .entry-title { margin-top: 0; }
.pj-blog .pagination:empty, .pj-blog .pagination:not(:has(a)) { display: none; }

/* ---------- Contact page ---------- */
.pj-contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 14px; margin-top: 22px !important; }
.pj-contact-card { display: flex; flex-direction: column; gap: 4px; padding: 20px 22px; border-radius: 18px; background: var(--pj-sage); border: 1.5px solid var(--pj-sage-border); color: var(--pj-ink) !important; font-weight: 400 !important; text-decoration: none; transition: border-color .15s ease; }
.pj-contact-card:hover { border-color: var(--pj-lime); }
.pj-contact-card span { font-weight: 700; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; color: var(--pj-pink); }
.pj-contact-card strong { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 30px; line-height: 1.1; }
.pj-contact-card em { font-style: normal; font-size: 15px; color: var(--pj-muted); }
.pj-contact-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; margin-top: 22px !important; color: var(--pj-ink-2); }
.pj-contact-info b { display: block; color: var(--pj-ink); margin-bottom: 4px; }
.pj-form-col--card .pj-form { border: 1.5px solid var(--pj-border) !important; box-shadow: var(--pj-shadow-md) !important; }
/* The footer's own contact block would repeat this page. */
.page-id-105 .pj-footer > .et_pb_row:first-of-type { display: none; }
.page-id-105 .pj-footer .pj-legal { margin-top: 0 !important; }
.page-id-105 .pj-footer { padding-top: 8px !important; }
.pj-contact-card strong { font-size: clamp(22px, 1.2rem + .6vw, 26px); white-space: nowrap; }
