/*
Theme Name: Hello M Pigott
Template: hello-elementor
Description: Child theme for M Pigott Contracting. Fonts, design system and schema. Content is edited in Elementor.
Author: Visual Branding Inc.
Author URI: https://visualbranding.ca/
Version: 1.0.0
Text Domain: hello-mpigott
*/

/* ---------- Fonts (self-hosted, SIL Open Font License): Anton headings + Barlow body, same as the business cards ---------- */
@font-face { font-family: "Anton"; src: url("fonts/Anton-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("fonts/Barlow-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("fonts/Barlow-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("fonts/Barlow-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* ---------- Palette (rebrand 2026-11-06 to the business-card colours; pairs checked AA with contrast-check.py) ----------
   navy #00274A (brand, dark sections)   card-dark #0A3560   line-dark #3C628A
   red #ED1C24 (accent, shapes + large text only)   CTA button #D21A21 with white text (5.4:1)   dark red #92181B (small red text, 8.9:1 on white, 6.7:1 on mist)
   charcoal #231F20 (text on light, 12:1 on mist)   white #FFFFFF   mist #D9E0E8
   text on navy #F8FAFC, muted on navy #B4C0CF (8.2:1)  muted on light #45484F (6.9:1 on mist)                    */
:root {
	--mp-ink: #00274A; --mp-card-dark: #0A3560; --mp-line-dark: #3C628A;
	--mp-paper: #FFFFFF; --mp-mist: #D9E0E8; --mp-line-light: #8796AA;
	--mp-text-on-dark: #F8FAFC; --mp-muted-on-dark: #B4C0CF;
	--mp-text: #231F20; --mp-muted: #45484F;
	--mp-accent: #D21A21; --mp-accent-hover: #92181B; --mp-red: #ED1C24; --mp-red-dark: #92181B;
	--mp-radius: 10px; --mp-gap: 24px;
	--mp-head: "Anton", "Arial Narrow", Impact, sans-serif;
	--mp-body: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { font-family: var(--mp-body); font-size: 16px; line-height: 1.6; color: var(--mp-text); background: var(--mp-paper); overflow-x: hidden; }
body h1, body h2, body h3, body h4, body .elementor-heading-title { font-family: var(--mp-head); font-weight: 400; line-height: 1.15; letter-spacing: .01em; color: inherit; }
body h1, body h1.elementor-heading-title { font-size: clamp(34px, 5.2vw, 56px); }
body h2, body h2.elementor-heading-title { font-size: clamp(28px, 3.6vw, 40px); }
body h3, body h3.elementor-heading-title { font-size: clamp(21px, 2.2vw, 24px); font-weight: 400; }
body p { margin: 0 0 1em; }
body p:last-child { margin-bottom: 0; }
body a { color: inherit; text-underline-offset: 3px; }
body .elementor-widget-text-editor { font-size: 16px; line-height: 1.65; }
body .elementor-widget-text-editor ul { margin: 0; padding-left: 1.2em; }
body .elementor-widget-text-editor li { margin: 0 0 .4em; }
:focus-visible { outline: 3px solid var(--mp-accent); outline-offset: 3px; border-radius: 4px; }

/* ---------- Sections ---------- */
body .e-con.mp-sec { --padding-top: 80px; --padding-bottom: 80px; --padding-left: 20px; --padding-right: 20px; }
body .e-con.mp-sec-tight { --padding-top: 48px; --padding-bottom: 48px; --padding-left: 20px; --padding-right: 20px; }
body .e-con.mp-dark { background-color: var(--mp-ink); color: var(--mp-text-on-dark); }
body .e-con.mp-dark .elementor-widget-text-editor, body .e-con.mp-dark .mp-muted { color: var(--mp-muted-on-dark); }
body .e-con.mp-mist { background-color: var(--mp-mist); color: var(--mp-text); }
body .e-con.mp-mist .elementor-widget-text-editor { color: var(--mp-muted); }
body .e-con.mp-paper { background-color: var(--mp-paper); color: var(--mp-text); }
body .e-con.mp-paper .elementor-widget-text-editor { color: #4A4F57; }
body .e-con.mp-paper .mp-card .elementor-widget-text-editor, body .e-con.mp-mist .mp-card .elementor-widget-text-editor { color: #4A4F57; }
body .e-con.mp-dark .elementor-heading-title, body .e-con.mp-dark h2, body .e-con.mp-dark h3 { color: var(--mp-text-on-dark); }
body .e-con.mp-mist .elementor-heading-title, body .e-con.mp-paper .elementor-heading-title { color: var(--mp-text); }

/* Eyebrow label above a heading */
body .mp-eyebrow .elementor-heading-title { font-family: var(--mp-body); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; line-height: 1.4; }
body .e-con.mp-dark .mp-eyebrow .elementor-heading-title { color: var(--mp-muted-on-dark); }
body .e-con.mp-mist .mp-eyebrow .elementor-heading-title, body .e-con.mp-paper .mp-eyebrow .elementor-heading-title { color: var(--mp-muted); }
body .mp-lead { font-size: 18px; max-width: 46em; }
body .mp-center { text-align: center; margin-left: auto; margin-right: auto; }

/* Hero with photo: overlay set in Elementor (ink at 78%); text kept to the left column */
body .e-con.mp-hero { --min-height: 620px; --padding-top: 96px; --padding-bottom: 96px; --padding-left: 20px; --padding-right: 20px; color: var(--mp-text-on-dark); }
body .e-con.mp-hero .elementor-heading-title { color: var(--mp-text-on-dark); }
body .e-con.mp-hero .elementor-widget-text-editor { color: #DCE3EC; font-size: 18px; }
body .e-con.mp-hero .mp-eyebrow .elementor-heading-title { color: #DCE3EC; }
body .e-con.mp-hero-inner { max-width: 720px; }
body .e-con.mp-hero-sm { --min-height: 420px; --padding-top: 80px; --padding-bottom: 72px; }

/* ---------- Grids (CSS grid, one column on phones) ---------- */
body .e-con.mp-grid { display: grid !important; gap: var(--mp-gap); grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; width: 100%; }
body .e-con.mp-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .e-con.mp-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .e-con.mp-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body .e-con.mp-split { display: grid !important; gap: 48px; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; width: 100%; }
body .e-con.mp-split-rev { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
@media (max-width: 1024px) {
	body .e-con.mp-grid, body .e-con.mp-grid-4, body .e-con.mp-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .e-con.mp-split, body .e-con.mp-split-rev { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 640px) {
	body .e-con.mp-grid, body .e-con.mp-grid-2, body .e-con.mp-grid-4 { grid-template-columns: minmax(0, 1fr); }
	body .e-con.mp-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	body .e-con.mp-sec { --padding-top: 56px; --padding-bottom: 56px; }
	body .e-con.mp-hero { --min-height: 0px; --padding-top: 64px; --padding-bottom: 64px; }
	body .e-con.mp-hero-sm { --padding-top: 56px; --padding-bottom: 48px; }
	body .mp-lead, body .e-con.mp-hero .elementor-widget-text-editor { font-size: 17px; }
}

/* ---------- Cards ---------- */
body .e-con.mp-card { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 24px; --padding-right: 24px; --gap: 12px; background: var(--mp-paper); border: 1px solid var(--mp-line-light); border-radius: var(--mp-radius); box-shadow: 0 1px 2px rgba(0,39,74,.06), 0 6px 18px rgba(0,39,74,.06); color: var(--mp-text); height: 100%; overflow: hidden; }
body .e-con.mp-card .elementor-heading-title { color: var(--mp-text); }
body .e-con.mp-dark .e-con.mp-card { background: var(--mp-card-dark); border-color: var(--mp-line-dark); box-shadow: none; color: var(--mp-text-on-dark); }
body .e-con.mp-dark .e-con.mp-card .elementor-heading-title { color: var(--mp-text-on-dark); }
body .e-con.mp-dark .e-con.mp-card .elementor-widget-text-editor { color: var(--mp-muted-on-dark); }
body .e-con.mp-card-media { --padding-top: 0px; --padding-left: 0px; --padding-right: 0px; }
body .e-con.mp-card-media > .elementor-widget-image { margin: 0 0 8px; }
body .e-con.mp-card-media > :not(.elementor-widget-image) { padding-left: 24px; padding-right: 24px; }
body .mp-card-media .elementor-widget-image img, body .mp-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
body .mp-photo img { border-radius: var(--mp-radius); aspect-ratio: 4 / 3; }
body .mp-card .mp-push { margin-top: auto; }

/* Line icons (inline SVG inside an HTML widget) */
body .mp-icon { width: 48px; height: 48px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: #EEF2F6; border: 1px solid var(--mp-line-light); color: var(--mp-text); }
body .mp-dark .mp-icon { background: #0F4278; border-color: var(--mp-line-dark); color: var(--mp-text-on-dark); }
body .mp-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Fact strip */
body .mp-fact { display: flex; gap: 12px; align-items: flex-start; }
body .mp-fact strong { display: block; font-family: var(--mp-head); font-size: 19px; font-weight: 400; line-height: 1.25; color: var(--mp-text-on-dark); }
body .mp-fact span { display: block; font-size: 14px; color: var(--mp-muted-on-dark); margin-top: 2px; }
body .mp-fact .mp-icon { flex: 0 0 48px; }

/* Steps */
body .mp-step-no { font-family: var(--mp-head); font-weight: 400; font-size: 15px; letter-spacing: .1em; color: var(--mp-muted); }
body .mp-dark .mp-step-no { color: var(--mp-muted-on-dark); }

/* Ticked list */
body .mp-ticks ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
body .mp-ticks li { position: relative; padding-left: 30px; margin: 0; }
body .mp-ticks li::before { content: ""; position: absolute; left: 0; top: .3em; width: 18px; height: 18px; border-radius: 50%; border: 1.8px solid currentColor; opacity: .9; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2345484F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; }
body .mp-dark .mp-ticks li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B4C0CF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E"); }

/* Area chips (links) */
body .mp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
body .mp-chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--mp-line-dark); background: var(--mp-card-dark); color: var(--mp-text-on-dark); text-decoration: none; font-weight: 500; font-size: 15px; transition: background .12s, border-color .12s; }
body .mp-chips a:hover { background: #124676; border-color: var(--mp-muted-on-dark); }
body .mp-paper .mp-chips a, body .mp-mist .mp-chips a { background: var(--mp-paper); border-color: var(--mp-line-light); color: var(--mp-text); }
body .mp-paper .mp-chips a:hover, body .mp-mist .mp-chips a:hover { background: #EEF2F6; }

/* ---------- Buttons ---------- */
body .elementor-widget-button .elementor-button { font-family: var(--mp-body); font-weight: 600; font-size: 16px; line-height: 1.2; min-height: 48px; padding: 14px 24px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; transition: background-color .12s, border-color .12s, color .12s, transform .12s; }
body .elementor-widget-button .elementor-button:active { transform: translateY(1px); }
body .mp-btn-cta .elementor-button { background-color: var(--mp-accent); color: #FFFFFF; border: 1px solid var(--mp-accent); }
body .mp-btn-cta .elementor-button:hover, body .mp-btn-cta .elementor-button:focus-visible { background-color: var(--mp-accent-hover); border-color: var(--mp-accent-hover); color: #FFFFFF; }
body .mp-btn-ghost .elementor-button { background-color: rgba(255,255,255,.08); color: var(--mp-text-on-dark); border: 1px solid var(--mp-muted-on-dark); }
body .mp-btn-ghost .elementor-button:hover { background-color: rgba(255,255,255,.12); color: var(--mp-text-on-dark); }
body .mp-btn-line .elementor-button { background-color: transparent; color: var(--mp-text); border: 1px solid #45484F; }
body .mp-btn-line .elementor-button:hover { background-color: #EEF2F6; color: var(--mp-text); }
body .mp-btn-link .elementor-button { background: none; border: 0; padding: 8px 0; min-height: 44px; color: var(--mp-text); text-decoration: underline; text-underline-offset: 4px; }
body .mp-dark .mp-btn-link .elementor-button { color: var(--mp-text-on-dark); }
body .mp-btn-link .elementor-button:hover { text-decoration-thickness: 2px; }
body .e-con.mp-btns { --gap: 12px; --flex-wrap: wrap; --align-items: center; }
@media (max-width: 640px) {
	body .e-con.mp-btns > .elementor-widget-button { width: 100%; }
	body .e-con.mp-btns .elementor-button { width: 100%; }
}

/* ---------- FAQ (Elementor nested accordion) ---------- */
body .elementor-widget-n-accordion.mp-faq { --n-accordion-title-font-size: 19px; --n-accordion-border-width: 0px; --n-accordion-item-title-space-between: 12px !important; --n-accordion-padding: 18px 20px; --n-accordion-icon-size: 16px; --n-accordion-title-normal-color: #231F20; --n-accordion-title-hover-color: #231F20; --n-accordion-title-active-color: #231F20; --n-accordion-icon-gap: 0 14px; }
body .mp-faq .e-n-accordion-item:not(:last-child) { margin-block-end: 12px !important; }
body .mp-faq .e-n-accordion-item { border: 1px solid var(--mp-line-light); border-radius: var(--mp-radius); background: var(--mp-paper); overflow: hidden; }
body .mp-faq .e-n-accordion-item-title { border: 0 !important; background: transparent; min-height: 56px; }
body .mp-faq .e-n-accordion-item-title-text, body .mp-faq .e-n-accordion-item-title-text h3 { font-family: var(--mp-head); font-weight: 400; font-size: 19px !important; line-height: 1.3; color: var(--mp-text); }
body .mp-faq .e-n-accordion-item-title-icon svg { fill: var(--mp-text); }
body .mp-faq .e-n-accordion-item > .e-con { --padding-top: 0px; --padding-bottom: 20px; --padding-left: 50px; --padding-right: 20px; border: 0 !important; }
body .mp-faq .elementor-widget-text-editor { color: #4A4F57; }
body .mp-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 640px) { body .mp-faq .e-n-accordion-item > .e-con { --padding-left: 20px; } body .mp-faq .e-n-accordion-item-title-text, body .mp-faq .e-n-accordion-item-title-text h3 { font-size: 18px !important; } }

/* ---------- Contact form (WPForms Lite) ---------- */
body .mp-form .wpforms-container { margin: 0; }
body .mp-form .wpforms-field { padding: 0 0 16px; }
body .mp-form .wpforms-field-label { font-family: var(--mp-body); font-weight: 600; font-size: 15px; color: var(--mp-text); margin-bottom: 6px; }
body .mp-form .wpforms-required-label { color: #92181B; }
body .mp-form input[type=text], body .mp-form input[type=email], body .mp-form input[type=tel], body .mp-form select, body .mp-form textarea { width: 100%; max-width: 100% !important; min-height: 48px; padding: 10px 14px; font: 16px/1.4 var(--mp-body); color: var(--mp-text); background: #FFFFFF; border: 1px solid #64748B; border-radius: 8px; }
body .mp-form textarea { min-height: 140px; }
body .mp-form input:focus, body .mp-form select:focus, body .mp-form textarea:focus { outline: 3px solid var(--mp-accent); outline-offset: 1px; border-color: var(--mp-ink); }
body .mp-form .wpforms-field-sublabel, body .mp-form .wpforms-field-description { font-size: 13px; color: #4A4F57; }
body .mp-form button[type=submit], body .mp-form .wpforms-submit { min-height: 48px; padding: 14px 28px; font: 600 16px/1.2 var(--mp-body); color: #FFFFFF !important; background: var(--mp-accent) !important; border: 1px solid var(--mp-accent) !important; border-radius: 8px; cursor: pointer; width: 100%; }
body .mp-form .wpforms-submit:hover { background: var(--mp-accent-hover) !important; }
body .mp-form .wpforms-error, body .mp-form label.wpforms-error { color: #92181B; font-size: 14px; }
body .mp-form .wpforms-confirmation-container-full { background: #EEF2F6; border: 1px solid var(--mp-line-light); color: var(--mp-text); border-radius: 8px; }

/* Contact details list */
body .mp-contact-list { display: grid; gap: 16px; }
body .mp-contact-list a, body .mp-contact-list div.mp-row { display: flex; gap: 14px; align-items: center; text-decoration: none; color: inherit; min-height: 48px; }
body .mp-contact-list small { display: block; font-size: 13px; color: var(--mp-muted-on-dark); letter-spacing: .04em; }
body .mp-contact-list b { display: block; font-size: 18px; font-weight: 600; color: var(--mp-text-on-dark); word-break: break-word; }
body .mp-contact-list a:hover b { text-decoration: underline; text-underline-offset: 4px; }

/* Project placeholder tiles */
body .mp-tile .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; }

/* ---------- Header (Elementor Header & Footer Builder) ---------- */
body .ehf-header #masthead { position: sticky; top: 0; z-index: 99; }
body.admin-bar .ehf-header #masthead { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ehf-header #masthead { top: 0; } }
body .e-con.mp-header { background: var(--mp-ink); border-bottom: 1px solid #0D3A63; --padding-top: 10px; --padding-bottom: 10px; --padding-left: 20px; --padding-right: 20px; --min-height: 72px; }
body .mp-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--mp-text-on-dark); min-height: 48px; }
body .mp-brand svg { width: 40px; height: 40px; flex: 0 0 40px; }
body .mp-brand .mp-brand-text { display: flex; flex-direction: column; line-height: 1; }
body .mp-brand .mp-brand-name { font-family: var(--mp-head); font-weight: 400; font-size: 24px; letter-spacing: .04em; color: var(--mp-text-on-dark); }
body .mp-brand .mp-brand-sub { font-family: var(--mp-body); font-weight: 600; font-size: 11px; letter-spacing: .28em; color: var(--mp-muted-on-dark); margin-top: 5px; }
body .mp-hdr-call { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 8px; border: 1px solid var(--mp-line-dark); background: var(--mp-card-dark); color: var(--mp-text-on-dark); text-decoration: none; font-weight: 600; font-size: 15px; white-space: nowrap; transition: background .12s, border-color .12s; }
body .mp-hdr-call:hover { background: #124676; border-color: var(--mp-muted-on-dark); }
body .mp-hdr-call svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1024px) { body .mp-hdr-call { width: 44px; padding: 0; justify-content: center; } body .mp-hdr-call span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }
@media (max-width: 380px) { body .mp-brand .mp-brand-name { font-size: 20px; } body .mp-brand svg { width: 34px; height: 34px; flex-basis: 34px; } body .mp-brand .mp-brand-sub { font-size: 10px; letter-spacing: .22em; } }

/* HFE navigation menu */
body .mp-nav .hfe-nav-menu a.hfe-menu-item, body .mp-nav .hfe-nav-menu a.hfe-sub-menu-item { font-family: var(--mp-body); font-size: 15px; font-weight: 500; color: #DCE3EC; padding: 12px 14px; min-height: 44px; display: flex; align-items: center; }
body .mp-nav .hfe-nav-menu a.hfe-menu-item:hover, body .mp-nav .hfe-nav-menu .current-menu-item > a.hfe-menu-item, body .mp-nav .hfe-nav-menu .current-menu-ancestor > a.hfe-menu-item { color: #FFFFFF; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
body .mp-nav .hfe-nav-menu .sub-menu { background: var(--mp-card-dark); border: 1px solid var(--mp-line-dark); border-radius: 8px; padding: 6px 0; min-width: 240px; }
body .mp-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item { color: var(--mp-text-on-dark); }
body .mp-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover { background: #124676; }
body .mp-nav .hfe-nav-menu-icon { color: var(--mp-text-on-dark); border: 1px solid var(--mp-line-dark); border-radius: 8px; background: var(--mp-card-dark); width: 44px; height: 44px; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 !important; }
body .mp-nav .hfe-nav-menu-icon svg { fill: var(--mp-text-on-dark); width: 20px; height: 20px; }
@media (max-width: 1024px) {
	body .mp-nav nav.hfe-dropdown { background: var(--mp-ink) !important; border-top: 1px solid #0D3A63; border-bottom: 1px solid #0D3A63; box-shadow: 0 12px 24px rgba(0,0,0,.35); }
	body .mp-nav nav.hfe-dropdown a.hfe-menu-item, body .mp-nav nav.hfe-dropdown a.hfe-sub-menu-item { color: var(--mp-text-on-dark) !important; padding: 14px 20px !important; border-bottom: 1px solid #0D3A63; background: transparent !important; }
	body .mp-nav nav.hfe-dropdown .sub-menu { background: #00203D !important; border: 0; border-radius: 0; padding: 0; }
	body .mp-nav nav.hfe-dropdown .sub-menu a.hfe-sub-menu-item { padding-left: 36px !important; }
	body .mp-nav nav.hfe-dropdown .hfe-menu-toggle { color: var(--mp-text-on-dark); }
}

/* ---------- Footer ---------- */
body .e-con.mp-footer { background: #001C36; color: var(--mp-muted-on-dark); --padding-top: 64px; --padding-bottom: 24px; --padding-left: 20px; --padding-right: 20px; }
body .mp-footer .elementor-heading-title { color: var(--mp-text-on-dark); }
body .mp-footer h4.elementor-heading-title { font-family: var(--mp-body); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--mp-text-on-dark); }
body .mp-footer .elementor-widget-text-editor, body .mp-footer p { color: #B4C0CF; font-size: 15px; }
body .mp-footer ul.mp-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
body .mp-footer ul.mp-links a { display: inline-flex; align-items: center; min-height: 36px; color: #DCE3EC; text-decoration: none; font-size: 15px; }
body .mp-footer ul.mp-links a:hover { color: #FFFFFF; text-decoration: underline; }
body .mp-footer .mp-legal { border-top: 1px solid #0A3560; padding-top: 20px; font-size: 13px; color: #B4C0CF; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
body .mp-footer .mp-legal a { color: #DCE3EC; }
@media (max-width: 1024px) { body .mp-footer .e-con.mp-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body .mp-footer .e-con.mp-grid-4 { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Plain pages (privacy policy) ---------- */
body .site-main.page .page-header, body main#content .page-header { max-width: 800px; margin: 0 auto; padding: 64px 20px 8px; }
body main#content .page-content { max-width: 800px; margin: 0 auto; padding: 0 20px 72px; color: #3A3F47; }
body main#content .page-content h2 { font-size: 26px; margin: 32px 0 12px; color: var(--mp-text); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* ---------- Layout helpers used by the page builder JSON ---------- */
body .e-con.mp-grid, body .e-con.mp-split, body .e-con.mp-stack, body .e-con.mp-btns { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
body .e-con.mp-stack { --gap: 16px; }
body .e-con.mp-sec, body .e-con.mp-sec-tight, body .e-con.mp-hero { --gap: 32px; }
body .e-con.mp-sec.mp-pt0 { --padding-top: 0px; }
body .e-con.mp-btns { margin-top: 8px; }
body .e-con.mp-card-call { background: var(--mp-ink); border-color: var(--mp-ink); color: var(--mp-text-on-dark); }
body .e-con.mp-card-call .elementor-heading-title { color: var(--mp-text-on-dark); }
body .e-con.mp-card-call .mp-icon { background: #0F4278; border-color: var(--mp-line-dark); color: var(--mp-text-on-dark); }
body .e-con.mp-contact-split { align-items: start; }
body .e-con.mp-card[id] { scroll-margin-top: 96px; }
@media (max-width: 1024px) {
	body .e-con.mp-header .mp-brandw { flex: 0 0 auto; min-width: 0; }
	body .e-con.mp-header .mp-hdr-callw { order: 2; margin-left: auto; flex: 0 0 auto; }
	body .e-con.mp-header .mp-nav { order: 3; flex: 0 0 auto !important; width: auto !important; --flex-grow: 0; }
	body .mp-nav .hfe-nav-menu__toggle { margin: 0; }
}

/* Mobile menu: the hidden menu takes no width; it opens as a full-width panel under the header */
@media (max-width: 1024px) {
	body .e-con.mp-header { position: relative; } body .e-con.mp-header > .e-con-inner { position: static; }
	body .e-con.mp-header .mp-nav, body .e-con.mp-header .mp-nav .hfe-nav-menu { position: static !important; width: auto !important; }
	body .e-con.mp-header .mp-nav nav.hfe-nav-menu__layout-horizontal { position: absolute !important; top: 100% !important; left: 0 !important; right: 0 !important; width: auto !important; background: var(--mp-ink); border-bottom: 1px solid #0D3A63; box-shadow: 0 16px 32px rgba(0,0,0,.4); }
	body .e-con.mp-header .mp-nav nav.hfe-nav-menu__layout-horizontal a.hfe-menu-item, body .e-con.mp-header .mp-nav nav.hfe-nav-menu__layout-horizontal a.hfe-sub-menu-item { color: var(--mp-text-on-dark) !important; padding: 14px 20px !important; border-top: 1px solid #0D3A63; background: transparent !important; text-decoration: none !important; }
	body .e-con.mp-header .mp-nav nav.hfe-nav-menu__layout-horizontal .sub-menu { background: #00203D !important; border: 0; border-radius: 0; padding: 0; position: static !important; }
	body .e-con.mp-header .mp-nav nav.hfe-nav-menu__layout-horizontal .sub-menu a.hfe-sub-menu-item { padding-left: 40px !important; }
	body .mp-nav .hfe-nav-menu__toggle { display: flex !important; align-items: center; }
}

@media (max-width: 400px) { body .mp-contact-list b { font-size: 16px; } body .mp-contact-list a[href^="mailto"] b { font-size: 15px; } }


/* ---------- Rebrand 2026-11-06: new logo (red roof + navy wordmark, as on the business cards), navy-led look ---------- */
body .mp-brand img { display: block; height: 76px; width: auto; }
body .e-con.mp-header { --min-height: 92px; border-bottom: 3px solid var(--mp-red); }
body .mp-brand { min-height: 0; }
body .e-con.mp-footer { border-top: 3px solid var(--mp-red); }
body .mp-footer .mp-brand img { height: 112px; }
body .e-con.mp-paper .mp-eyebrow .elementor-heading-title, body .e-con.mp-mist .mp-eyebrow .elementor-heading-title { color: var(--mp-red-dark); }
body .mp-step-no { color: var(--mp-red-dark); }
body .mp-faq .e-n-accordion-item-title-text, body .mp-faq .e-n-accordion-item-title-text h3 { letter-spacing: .01em; }
body .mp-hdr-call { border-color: var(--mp-line-dark); }
@media (max-width: 1024px) { body .mp-brand img { height: 64px; } body .e-con.mp-header { --min-height: 80px; } }
@media (max-height: 500px) and (orientation: landscape) { body .mp-brand img { height: 52px; } body .e-con.mp-header { --min-height: 66px; } }
@media (max-width: 380px) { body .mp-brand img { height: 56px; } }

/* Proof strip + Google reviews (Steward #1487, 2026-11-06) */
body .e-con.mp-trust-sec { --padding-top: 28px; --padding-bottom: 28px; }
body .mp-trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; width: 100%; }
body .mp-trust-i { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
body .mp-trust-i .mp-icon { flex: 0 0 48px; }
body .mp-trust-i strong { display: block; font-family: var(--mp-head); font-size: 19px; font-weight: 400; line-height: 1.25; color: var(--mp-text); }
body .mp-trust-i span:not(.mp-icon) { display: block; font-size: 14px; color: var(--mp-muted); margin-top: 2px; overflow-wrap: anywhere; }
body .mp-trust-i a { color: var(--mp-text); text-decoration: underline; text-underline-offset: 3px; }
body .mp-rev-sum { margin: 0; color: var(--mp-muted); font-size: 16px; }
body .mp-rev-sum strong { color: var(--mp-text); }
body .mp-review blockquote { margin: 12px 0; padding: 0; border: 0; font-size: 16px; line-height: 1.55; color: #4A4F57; }
body .mp-review .mp-rev-by { margin: 0; font-size: 14px; font-weight: 600; color: var(--mp-text); }
body .mp-stars { display: flex; gap: 3px; }
body .mp-stars svg { width: 20px; height: 20px; fill: var(--mp-ink); }
@media (max-width: 1024px) { body .mp-trust { grid-template-columns: minmax(0, 1fr); gap: 16px; } }

/* Mike portrait placeholder on Home (Steward #1487, Sunny chat #16073): delete vb-placeholder + vb-ph-mike on that image when the real photo arrives */
body .vb-placeholder.vb-ph-mike { border-radius: var(--mp-radius); overflow: hidden; }
body .vb-placeholder.vb-ph-mike::after { content: "YOUR PHOTO: a professional photo of Mike goes here"; font-size: clamp(16px, 1.8vw, 20px); letter-spacing: .08em; line-height: 1.35; padding: 24px; }
