/*
Theme Name: Mpofu Law Chambers
Theme URI: https://mpofulaw.co.zw
Description: Child theme of Hello Elementor for Mpofu Law Chambers. Holds the brand design system (colours, Cormorant Garamond + Work Sans, buttons, cards, forms) used by the Elementor pages and the ElementsKit header/footer. Add a CSS class from this file under Elementor → Advanced → CSS Classes to reuse a style.
Author: Solid Arts Creativity Studio
Template: hello-elementor
Version: 1.0.0
Requires PHP: 8.0
Text Domain: mpofulaw
*/

/* ==========================================================================
   CSS class reference (use in Elementor → Advanced → CSS Classes)
   Sections:   mlc-section  mlc-alt  mlc-dark  mlc-green  mlc-center  mlc-head-split
   Labels:     mlc-eyebrow  mlc-eyebrow--light  mlc-eyebrow--center
   Buttons:    mlc-btn-gold  mlc-btn-dark  mlc-btn-ghost
   Blocks:     mlc-hero  mlc-page-hero  mlc-attorney  mlc-pa-card  mlc-glass  mlc-about-band
               mlc-values  mlc-why  mlc-team-card  mlc-plate  mlc-steps  mlc-contact-bar
               mlc-form-split  mlc-bio  mlc-facts  mlc-service  mlc-boxlist  mlc-checks
               mlc-jump  mlc-mv  mlc-quote  mlc-gallery  mlc-faq  mlc-map
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  --green-950: #04241a;
  --green-900: #06331f;
  --green-800: #0a4f32;
  --green-700: #0f6440;
  --green-500: #239206;
  --gold-500: #cea042;
  --gold-400: #dfae4f;
  --gold-700: #8a6420;
  --silver: #c2c9cf;
  --sage: #cbd4cc;
  --sage-glass: rgba(203, 212, 204, .88);
  --ink: #14201b;
  --text: #26302c;
  --muted: #56625d;
  --line: #dfe4e1;
  --field: #eceeed;
  --mist: #f4f5f4;
  --focus: #b8861f;
  --success: #1d6b3a;
  --error: #b42318;
  --font-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-sans: "Work Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --section: clamp(3.75rem, 2.5rem + 4.5vw, 6.5rem);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --dur: .35s;
}

/* ---------- 2. Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { font-family: var(--font-sans); font-size: 1rem; line-height: 1.7; color: var(--text); background: #fff; -webkit-font-smoothing: antialiased; overflow-x: clip; }
h1, h2, h3, h4, h5, h6,
.elementor-widget-heading .elementor-heading-title { font-family: var(--font-serif); font-weight: 500; line-height: 1.12; color: var(--green-900); }
h1, .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.6rem, 1.5rem + 3.9vw, 4.6rem); }
h2, .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(2.1rem, 1.4rem + 2.4vw, 3.6rem); }
h3, .elementor-widget-heading h3.elementor-heading-title { font-size: clamp(1.45rem, 1.25rem + .7vw, 1.9rem); line-height: 1.2; }
h4, .elementor-widget-heading h4.elementor-heading-title { font-size: 1.35rem; }
a { color: var(--green-800); text-underline-offset: .2em; }
a:hover { color: var(--gold-700); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
::selection { background: var(--gold-400); color: var(--ink); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- 3. Sections ---------- */
.e-con.mlc-section { padding-top: var(--section); padding-bottom: var(--section); }
.e-con.mlc-alt { background-color: var(--mist); }
.e-con.mlc-dark { background-color: var(--green-950); color: #d6e1db; }
.e-con.mlc-green { background-color: var(--green-800); color: #e3ebe6; }
.mlc-dark .elementor-heading-title, .mlc-green .elementor-heading-title, .mlc-dark h3, .mlc-dark h4 { color: #fff; }
.mlc-dark .elementor-widget-text-editor, .mlc-green .elementor-widget-text-editor { color: #c9d6cf; }
.mlc-center { text-align: center; }
.mlc-head-split { margin-bottom: clamp(2rem, 4vw, 3rem); }
.mlc-muted .elementor-widget-text-editor, .elementor-widget-text-editor.mlc-muted { color: var(--muted); }

/* Eyebrow: gold bar above an uppercase, widely tracked label */
.mlc-eyebrow .elementor-heading-title {
  font-family: var(--font-sans) !important; font-size: .9rem !important; font-weight: 600 !important; line-height: 1.6 !important;
  letter-spacing: .28em; text-transform: uppercase; color: var(--ink) !important;
}
.mlc-eyebrow .elementor-heading-title::before { content: ""; display: block; width: 38px; height: 3px; background: var(--gold-500); margin-bottom: .7rem; }
.mlc-eyebrow--light .elementor-heading-title, .mlc-dark .mlc-eyebrow .elementor-heading-title, .mlc-green .mlc-eyebrow .elementor-heading-title { color: #fff !important; }
.mlc-eyebrow--center .elementor-heading-title::before, .mlc-center .mlc-eyebrow .elementor-heading-title::before { margin-inline: auto; }

/* ---------- 4. Buttons (square, bold, gold-bordered) ---------- */
.elementor-button, .btn {
  border-radius: 0 !important; font-family: var(--font-sans); font-weight: 700 !important; font-size: .95rem !important;
  padding: 1rem 2.4rem !important; line-height: 1.2; border: 1px solid var(--gold-500) !important; text-decoration: none;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease) !important;
}
.mlc-btn-gold .elementor-button, .btn--gold { background-color: var(--gold-500) !important; color: var(--ink) !important; }
.mlc-btn-gold .elementor-button:hover, .btn--gold:hover { background-color: var(--green-950) !important; color: #fff !important; border-color: var(--green-950) !important; }
.mlc-btn-dark .elementor-button { background-color: var(--green-950) !important; color: #f4f2ee !important; }
.mlc-btn-dark .elementor-button:hover { background-color: var(--gold-500) !important; color: var(--ink) !important; }
.mlc-btn-ghost .elementor-button { background-color: transparent !important; color: #fff !important; }
.mlc-btn-ghost .elementor-button:hover { background-color: var(--gold-500) !important; color: var(--ink) !important; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; cursor: pointer; }
.btn[disabled], .btn[aria-busy="true"] { opacity: .7; cursor: progress; }

/* ---------- 5. Heroes ---------- */
.e-con.mlc-hero { position: relative; isolation: isolate; text-align: center; }
.e-con.mlc-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(4,36,26,.95) 0%, rgba(4,36,26,.8) 45%, rgba(4,36,26,.35) 100%); pointer-events: none; }
.e-con.mlc-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 32%; z-index: 0; background: linear-gradient(180deg, rgba(255,255,255,0), #fff); pointer-events: none; }
.mlc-hero > .e-con-inner, .mlc-hero > .elementor-element { position: relative; z-index: 1; }
.mlc-hero .elementor-heading-title, .mlc-page-hero .elementor-heading-title { color: #fff; }
.mlc-hero .elementor-heading-title strong, .mlc-page-hero .elementor-heading-title strong { display: block; color: var(--gold-500); font-weight: 700; }
.mlc-hero .elementor-widget-text-editor { color: #e7eee9; font-size: 1.0625rem; max-width: 660px; margin-inline: auto; }
.mlc-hero .elementor-widget-text-editor strong { color: #fff; }

.e-con.mlc-page-hero { position: relative; isolation: isolate; text-align: center; color: #e7eee9; }
.e-con.mlc-page-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(4,36,26,.94) 0%, rgba(4,36,26,.82) 55%, rgba(4,36,26,.7) 100%); pointer-events: none; }
.mlc-page-hero > .e-con-inner, .mlc-page-hero > .elementor-element { position: relative; z-index: 1; }
.mlc-page-hero .elementor-widget-text-editor { color: #e7eee9; font-size: 1.0625rem; max-width: 680px; margin-inline: auto; }
.mlc-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; padding: 0; margin: 0; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.mlc-breadcrumbs li + li::before { content: "/"; margin-right: .5rem; color: var(--gold-500); }
.mlc-breadcrumbs a { color: #d6e1db; text-decoration: none; }
.mlc-breadcrumbs a:hover { color: #fff; text-decoration: underline; }
.mlc-breadcrumbs [aria-current] { color: var(--gold-400); }

/* ---------- 6. Attorney card ---------- */
.e-con.mlc-attorney { position: relative; z-index: 2; margin-top: clamp(-9rem, -12vw, -6rem); }
.e-con.mlc-attorney__card { position: relative; isolation: isolate; border: 1px solid #fff; box-shadow: 0 30px 60px -30px rgba(4,36,26,.55); }
.e-con.mlc-attorney__card::before { content: ""; position: absolute; inset: 0; z-index: 0; background: rgba(10, 79, 50, .92); pointer-events: none; }
.mlc-attorney__card > .elementor-element { position: relative; z-index: 1; }
.mlc-attorney__card .elementor-heading-title { color: #fff; }
.mlc-attorney__body .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(2rem, 1.5rem + 2vw, 3.4rem); }
.e-con.mlc-attorney__media { position: relative; align-self: flex-end; }
@media (min-width: 1025px) { .e-con.mlc-attorney__media { margin-top: -5rem; } }
.mlc-attorney__media .elementor-widget-image img { width: min(100%, 440px); filter: drop-shadow(0 25px 30px rgba(0,0,0,.35)); }
.mlc-attorney__media .mlc-plate { position: absolute; left: 50%; bottom: 2.25rem; transform: translateX(-50%); width: min(88%, 420px); }

.e-con.mlc-plate { background: var(--green-950); border-top: 3px solid var(--gold-500); text-align: center; padding: 1.1rem 1.4rem; }
.mlc-plate .mlc-plate__role .elementor-heading-title { font-family: var(--font-sans) !important; font-size: .74rem !important; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: #cfdcd5 !important; line-height: 1.4; }
.mlc-plate h3.elementor-heading-title, .mlc-plate .mlc-plate__name .elementor-heading-title { color: #fff !important; font-size: clamp(1.4rem, 1.2rem + .8vw, 2.1rem) !important; }
.mlc-plate a { color: inherit; text-decoration: none; }
.mlc-plate a:hover { color: var(--gold-400); }

/* Check list (Elementor Icon List with class mlc-checks) */
.mlc-checks .elementor-icon-list-icon i, .mlc-checks .elementor-icon-list-icon svg { color: var(--gold-500) !important; fill: var(--gold-500) !important; }
.mlc-checks .elementor-icon-list-item { align-items: flex-start !important; }
.mlc-checks .elementor-icon-list-icon { margin-top: .3em; }
.mlc-checks .elementor-icon-list-text { color: inherit; }
.mlc-attorney__card .mlc-checks .elementor-icon-list-text, .mlc-dark .mlc-checks .elementor-icon-list-text { color: #fff; }

/* ---------- 7. Practice-area cards ---------- */
.e-con.mlc-pa-card { position: relative; min-height: 300px; overflow: hidden; justify-content: flex-end; background-color: var(--green-950); transition: box-shadow var(--dur) var(--ease); }
.e-con.mlc-pa-card:hover { box-shadow: inset 0 0 0 3px var(--gold-500); }
.e-con.mlc-glass { background: var(--sage-glass); border: 1px solid #fff; padding: 1rem 1.2rem; transition: background-color var(--dur) var(--ease); }
.mlc-pa-card:hover .mlc-glass { background: var(--gold-500); border-color: var(--gold-500); }
.mlc-glass .elementor-icon { color: var(--green-800) !important; font-size: 28px; }
.mlc-glass .elementor-icon svg { fill: var(--green-800); width: 28px; height: 28px; }
.mlc-glass .elementor-heading-title { color: var(--ink) !important; font-weight: 600 !important; font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem) !important; }
.mlc-glass .elementor-heading-title a { color: inherit; text-decoration: none; }
.mlc-glass .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.mlc-glass .elementor-widget-text-editor { color: var(--ink); font-size: .92rem; line-height: 1.5; }

/* ---------- 8. About band ---------- */
.e-con.mlc-about-band__media { padding: 0 !important; }
.mlc-about-band__media .elementor-widget-image, .mlc-about-band__media .elementor-widget-image > *, .mlc-about-band__media .elementor-widget-image img { height: 100%; }
.mlc-about-band__media img { width: 100%; object-fit: cover; min-height: 380px; }
@media (min-width: 1025px) { .e-con.mlc-about-band__media { margin-top: -4.5rem; } }

/* ---------- 9. Values, why, mission ---------- */
.e-con.mlc-values { border-top: 1px solid var(--line); border-left: 1px solid var(--line); --gap: 0px; gap: 0 !important; }
.mlc-values > .elementor-element { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 2rem 1.75rem; text-align: left; transition: background-color var(--dur) var(--ease); }
.mlc-values > .elementor-element:hover { background: var(--mist); }
.mlc-dark .mlc-values, .mlc-dark .mlc-values > .elementor-element { border-color: rgba(255,255,255,.12); }
.mlc-dark .mlc-values > .elementor-element:hover { background: rgba(255,255,255,.04); }
.mlc-values .elementor-icon-box-wrapper, .mlc-why .elementor-icon-box-wrapper { text-align: left !important; }
.mlc-values .elementor-icon, .mlc-why .elementor-icon { color: var(--gold-500) !important; font-size: 30px !important; }
.mlc-values .elementor-icon svg, .mlc-why .elementor-icon svg { fill: var(--gold-500) !important; }
.mlc-values .elementor-icon-box-title, .mlc-why .elementor-icon-box-title { font-family: var(--font-serif); font-weight: 500; font-size: 1.5rem; line-height: 1.2; margin: .75rem 0 .35rem; color: var(--green-900); }
.mlc-values .elementor-icon-box-description, .mlc-why .elementor-icon-box-description { color: var(--muted); font-size: .95rem; margin: 0; }
.mlc-dark .elementor-icon-box-title { color: #fff !important; }
.mlc-dark .elementor-icon-box-description { color: #b9c8c0 !important; }

.e-con.mlc-why { border: 1px solid rgba(255,255,255,.12); gap: 0 !important; }
.mlc-why > .elementor-element { padding: 2.25rem 2rem; border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); }
.mlc-why .elementor-icon { border: 1px solid var(--gold-500); padding: 13px; font-size: 24px !important; }

.e-con.mlc-mv { background: var(--green-950); border-top: 2px solid var(--gold-500); padding: clamp(2rem, 4vw, 3rem); }
.mlc-mv .mlc-eyebrow .elementor-heading-title { color: var(--gold-400) !important; }
.mlc-mv .elementor-widget-text-editor { font-family: var(--font-serif); font-size: clamp(1.45rem, 1.2rem + 1vw, 1.95rem); line-height: 1.3; color: #fff !important; }
.mlc-quote blockquote { margin: 0; font-family: var(--font-serif); font-size: clamp(1.7rem, 1.3rem + 1.8vw, 2.6rem); line-height: 1.25; font-style: italic; color: #fff; text-align: center; }
.mlc-quote cite { display: block; margin-top: 1.25rem; font-style: normal; font-family: var(--font-sans); font-size: .82rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-400); font-weight: 600; }

/* ---------- 10. Team ---------- */
.e-con.mlc-team-card { position: relative; padding-bottom: 2.5rem !important; }
.mlc-team-card .elementor-widget-image { overflow: hidden; }
.mlc-team-card .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .8s var(--ease); }
.mlc-team-card:hover .elementor-widget-image img { transform: scale(1.04); }
.mlc-team-card .mlc-plate { position: absolute !important; left: 1rem; right: 1rem; bottom: 0; width: auto !important; }
.mlc-team-card .mlc-plate h3 a::after { content: ""; position: absolute; inset: -400px -20px 0; }

/* Bios (About) */
.e-con.mlc-bio { border-top: 1px solid var(--line); padding-top: clamp(2.5rem, 5vw, 4rem) !important; padding-bottom: clamp(2.5rem, 5vw, 4rem) !important; scroll-margin-top: 110px; }
.mlc-bio__media { position: relative; }
@media (min-width: 1025px) { .e-con.mlc-bio__media { position: sticky; top: 120px; } }
.mlc-bio__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.mlc-bio .mlc-subtitle { font-family: var(--font-serif); font-style: italic; font-size: 1.3rem; color: var(--muted); }
.e-con.mlc-facts { background: var(--green-950); color: #e3ebe6; padding: 1.75rem 2rem; }
.mlc-facts .elementor-heading-title { color: #fff !important; }
.mlc-facts .elementor-icon-list-text { color: #fff; }
.mlc-bio blockquote { margin: 0; padding-left: 1.25rem; border-left: 3px solid var(--gold-500); font-family: var(--font-serif); font-size: 1.5rem; font-style: italic; line-height: 1.35; color: var(--green-800); }

/* Steps */
.e-con.mlc-steps { border: 1px solid var(--line); gap: 0 !important; background: var(--line); }
.mlc-steps > .e-con { background: #fff; padding: 2rem 1.75rem !important; margin: 0 1px 1px 0; }
.mlc-step__num .elementor-heading-title { font-size: 2.6rem !important; font-weight: 600 !important; color: var(--gold-500) !important; line-height: 1 !important; }

/* ---------- 11. Services ---------- */
.mlc-jump .elementor-icon-list-item { border: 1px solid var(--gold-500); margin-bottom: .6rem !important; transition: background-color var(--dur) var(--ease); }
.mlc-jump .elementor-icon-list-item > a { padding: .95rem 1.25rem; font-weight: 700; color: var(--ink); width: 100%; }
.mlc-jump .elementor-icon-list-item:hover { background: var(--green-950); }
.mlc-jump .elementor-icon-list-item:hover a, .mlc-jump .elementor-icon-list-item:hover .elementor-icon-list-text { color: #fff; }
.mlc-jump .elementor-icon-list-icon i, .mlc-jump .elementor-icon-list-icon svg { color: var(--gold-700); fill: var(--gold-700); }

.e-con.mlc-service { scroll-margin-top: 110px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.e-con.mlc-service__media { min-height: 340px; justify-content: flex-end; }
.e-con.mlc-service__body { background: var(--green-950); color: #d6e1db; }
.mlc-service__body .elementor-heading-title { color: #fff; }
.mlc-service__body .elementor-widget-text-editor { color: #c9d6cf; }

.mlc-boxlist .elementor-icon-list-item { border: 1px solid var(--gold-500); padding: .8rem 1.25rem !important; margin-bottom: .65rem !important; }
.mlc-boxlist .elementor-icon-list-text { color: #fff; font-weight: 700; font-size: .95rem; }
.mlc-boxlist .elementor-icon-list-icon i, .mlc-boxlist .elementor-icon-list-icon svg { color: var(--gold-500); fill: var(--gold-500); font-size: 10px; }

/* ---------- 12. Contact bar, forms, map, FAQ, gallery ---------- */
.e-con.mlc-contact-bar__title { background: var(--green-800); }
.mlc-contact-bar__title .elementor-heading-title { color: #fff !important; }
.e-con.mlc-contact-bar__list { background: var(--green-950); }
.mlc-contact-bar ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .mlc-contact-bar ul { grid-template-columns: repeat(2, 1fr); } }
.mlc-contact-bar li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .7rem; }
.mlc-contact-bar .contact-bar__label { font-family: var(--font-serif); font-size: 1.75rem; line-height: 1.2; color: var(--gold-500); }
.mlc-contact-bar li a { color: #fff; font-weight: 700; font-size: .92rem; text-decoration: none; overflow-wrap: anywhere; }
.mlc-contact-bar li a:hover { color: var(--gold-400); text-decoration: underline; }

.mlc-note { display: flex; gap: .6rem; align-items: center; font-weight: 600; color: var(--ink); }

.form-required-note { font-size: .85rem; color: var(--muted); margin: 0 0 1rem; }
.form-grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .form-grid { grid-template-columns: 1fr 1fr; } .form-grid .full { grid-column: 1 / -1; } }
.field { display: flex; flex-direction: column; gap: .45rem; min-width: 0; border: 0; padding: 0; margin: 0; }
.field label, .field legend { font-size: .98rem; color: var(--ink); }
.field .req { color: var(--error); }
.field .hint, .enquiry-form .hint { font-size: .82rem; color: var(--muted); margin: 0; }
.field input, .field select, .field textarea {
  width: 100%; min-height: 60px; padding: 1.1rem 1.25rem; font: 400 1rem/1.4 var(--font-sans); color: var(--ink);
  background: var(--field); border: 1px solid transparent; border-radius: 0; box-shadow: none;
}
.field textarea { min-height: 170px; resize: vertical; }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--green-950) 50%), linear-gradient(135deg, var(--green-950) 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 17px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.75rem; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; background: #fff; border-color: var(--gold-500); box-shadow: 0 0 0 3px rgba(206,160,66,.35); }
.field [aria-invalid="true"] { border-color: var(--error); background: #fff6f5; }
.field-error { font-size: .85rem; color: var(--error); font-weight: 500; margin: 0; }
.field-error:empty { display: none; }
.radio-row { flex-direction: row !important; flex-wrap: wrap; gap: .5rem 1.75rem !important; }
.radio-row legend { width: 100%; margin-bottom: .5rem; padding: 0; }
.radio-row label, .consent label { display: inline-flex; gap: .55rem; align-items: center; font-size: .95rem; cursor: pointer; }
.radio-row input, .consent input { width: 20px !important; height: 20px; min-height: 0 !important; padding: 0 !important; accent-color: var(--green-800); flex: none; }
.consent label { align-items: flex-start; color: var(--muted); }
.consent input { margin-top: .2rem; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.form-actions .btn { min-width: 220px; }
.form-status { margin: 0; font-weight: 500; }
.form-status:empty { display: none; }
.form-status.is-success, .mlc-alert--success { color: var(--success); }
.form-status.is-error, .mlc-alert--error { color: var(--error); }
.mlc-alert { padding: 1rem 1.25rem; margin-bottom: 1.5rem; border-left: 3px solid currentColor; background: var(--mist); font-weight: 500; }

.news-form__row { display: flex; gap: .5rem; }
.news-form input[type="email"] { flex: 1; min-width: 0; min-height: 52px; padding: .75rem 1rem; font: 400 1rem var(--font-sans); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.25); color: #fff; border-radius: 0; }
.news-form input::placeholder { color: #9fb1a8; }
.news-form input:focus { outline: none; border-color: var(--gold-500); box-shadow: 0 0 0 3px rgba(206,160,66,.35); }
.news-form .form-status { margin-top: .75rem; }
.news-form .form-status.is-success { color: #8fd6a8; }
.news-form .form-status.is-error { color: #ffb4a9; }
@media (max-width: 480px) { .news-form__row { flex-direction: column; } }

.mlc-map iframe { filter: grayscale(.3); display: block; }

.mlc-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--line) !important; }
.mlc-faq .elementor-accordion .elementor-tab-title { padding: 1.35rem 0 !important; border: 0 !important; }
.mlc-faq .elementor-accordion-title, .mlc-faq .elementor-tab-title a { font-family: var(--font-serif); font-size: clamp(1.3rem, 1.15rem + .5vw, 1.65rem); font-weight: 600; color: var(--green-900) !important; text-decoration: none; }
.mlc-faq .elementor-accordion-icon { color: var(--gold-700) !important; }
.mlc-faq .elementor-tab-content { padding: 0 3rem 1.5rem 0 !important; border: 0 !important; color: var(--muted); }

.mlc-gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 0 !important; transition: transform .8s var(--ease), opacity var(--dur); }
.mlc-gallery .gallery-icon { overflow: hidden; outline-offset: -3px; }
.mlc-gallery .gallery-item:hover img { transform: scale(1.05); }
.mlc-gallery .gallery-caption { font-size: .86rem; color: var(--muted); text-align: left; padding-top: .5rem; }

/* ---------- 13. Blog cards & posts ---------- */
.post-grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); grid-template-columns: 1fr; }
@media (min-width: 640px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .post-grid { grid-template-columns: repeat(3, 1fr); } }
.post-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); transition: box-shadow var(--dur) var(--ease); }
.post-card:hover { box-shadow: 0 20px 40px -25px rgba(4,36,26,.45); }
.post-card__media { position: relative; overflow: hidden; background: var(--mist); }
.post-card__media img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .8s var(--ease); display: block; }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__cat { position: absolute; left: 1rem; bottom: 1rem; padding: .4rem .8rem; background: var(--sage-glass); border: 1px solid #fff; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }
.post-card__body { padding: 1.5rem 1.6rem 1.75rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.post-card__meta { display: flex; gap: 1rem; font-size: .8rem; color: var(--muted); margin: 0; }
.post-card h3 { font-size: 1.55rem; margin: 0; }
.post-card h3 a { color: var(--green-900); text-decoration: none; }
.post-card h3 a::after { content: ""; position: absolute; inset: 0; }
.post-card p { color: var(--muted); font-size: .96rem; margin: 0; }
.post-card .link-arrow { margin-top: auto; padding-top: .5rem; font-weight: 700; font-size: .9rem; color: var(--green-800); }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.filters button { min-height: 44px; padding: .5rem 1.15rem; border: 1px solid var(--gold-500); background: #fff; font: 700 .85rem var(--font-sans); color: var(--ink); cursor: pointer; border-radius: 0; }
.filters button:hover { background: var(--mist); color: var(--ink); }
.filters button[aria-pressed="true"] { background: var(--green-950); color: #fff; }
[data-filter-item][hidden] { display: none !important; }

/* Single post template (child theme single.php) */
.mlc-post-hero { position: relative; isolation: isolate; text-align: center; color: #e7eee9; padding: clamp(4.5rem, 9vw, 7rem) 1.25rem clamp(4rem, 8vw, 6rem); background: var(--green-950) center / cover no-repeat; }
.mlc-post-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(4,36,26,.94), rgba(4,36,26,.78)); }
.mlc-post-hero h1 { color: #fff; max-width: 980px; margin: 1rem auto; }
.mlc-post-hero .mlc-post-hero__lead { max-width: 680px; margin: 0 auto; font-size: 1.0625rem; }
.mlc-post-hero .mlc-eyebrow-text { font-size: .9rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: #fff; }
.mlc-post-hero .mlc-eyebrow-text::before { content: ""; display: block; width: 38px; height: 3px; background: var(--gold-500); margin: 0 auto .7rem; }
.article-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; font-size: .9rem; margin-top: 1.5rem; }
.mlc-article { max-width: 780px; margin: 0 auto; padding: var(--section) 1.25rem; font-size: 1.06rem; line-height: 1.8; }
.mlc-article h2 { font-size: clamp(1.8rem, 1.5rem + 1vw, 2.3rem); margin: 2.25em 0 .6em; }
.mlc-article li::marker { color: var(--gold-700); }
.mlc-article > p:first-of-type { font-size: 1.18rem; color: var(--ink); }
.key-points { margin: 2rem 0; padding: 1.75rem 2rem; background: var(--green-950); color: #e3ebe6; }
.key-points h2 { color: #fff; font-size: 1.6rem !important; margin: 0 0 .75rem !important; }
.key-points ul { margin: 0; }
.key-points li::marker { color: var(--gold-500); }
.callout { margin: 2.5rem 0; padding: 1.5rem 1.75rem; border: 1px solid var(--gold-500); font-size: .97rem; }
.callout strong { display: block; font-family: var(--font-serif); font-size: 1.35rem; color: var(--green-900); margin-bottom: .3rem; }
.article-footer { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; }
.mlc-related { background: var(--mist); padding: var(--section) 1.25rem; }
.mlc-related__inner { max-width: 1280px; margin: 0 auto; }
.mlc-404 { text-align: center; padding: calc(var(--section) * 1.2) 1.25rem; }
.mlc-404 .code { font-family: var(--font-serif); font-size: clamp(5rem, 15vw, 9rem); line-height: 1; color: var(--gold-700); margin: 0; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }

/* ---------- 14. Header (ElementsKit template) ---------- */
.ekit-template-content-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .ekit-template-content-header { top: 32px; }
.e-con.mlc-header { background: #fff; box-shadow: 0 1px 0 var(--line); transition: box-shadow var(--dur) var(--ease); }
.mlc-header.is-scrolled { box-shadow: 0 8px 28px -14px rgba(4, 36, 26, .45); }
.e-con.mlc-brand { position: relative; align-self: flex-start; background: var(--green-950); z-index: 3; }
.e-con.mlc-brand::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--gold-500); }
@media (min-width: 1025px) { .e-con.mlc-brand { margin-bottom: -36px; } }
.mlc-brand img { width: 100%; }
.mlc-nav .elementskit-navbar-nav > li > a { font-family: var(--font-sans) !important; font-size: .88rem !important; font-weight: 500 !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: var(--ink) !important; padding: .6rem .9rem !important; position: relative; }
.mlc-nav .elementskit-navbar-nav > li > a::after { content: ""; position: absolute; left: .9rem; right: .9rem; bottom: .25rem; height: 2px; background: var(--gold-500); transform: scaleX(0); transform-origin: left; transition: transform var(--dur) var(--ease); }
.mlc-nav .elementskit-navbar-nav > li > a:hover::after, .mlc-nav .elementskit-navbar-nav > li.current-menu-item > a::after { transform: scaleX(1); }
.mlc-nav .elementskit-navbar-nav > li.current-menu-item > a, .mlc-nav .elementskit-navbar-nav > li > a:hover { color: var(--green-800) !important; }
.mlc-nav .elementskit-menu-hamburger { border: 1px solid var(--gold-500) !important; border-radius: 0 !important; padding: 10px !important; }
.mlc-nav .elementskit-menu-hamburger .elementskit-menu-hamburger-icon { background-color: var(--green-950) !important; }
@media (max-width: 1024px) {
  .mlc-nav .elementskit-menu-container { background: var(--green-950) !important; }
  .mlc-nav .elementskit-navbar-nav > li > a { color: #fff !important; border-bottom: 1px solid rgba(255,255,255,.12); padding: 1rem 1.5rem !important; }
  .mlc-nav .elementskit-navbar-nav > li > a::after { display: none; }
  .mlc-nav .elementskit-navbar-nav > li.current-menu-item > a { color: var(--gold-400) !important; }
  .mlc-nav .elementskit-menu-close { border-color: var(--gold-500) !important; color: #fff !important; }
}
.header-phone { display: inline-flex; align-items: center; gap: .9rem; padding: .55rem 1.5rem .55rem .55rem; border: 1px solid var(--gold-500); color: var(--ink) !important; text-decoration: none; font-weight: 700; font-size: 1.02rem; white-space: nowrap; }
.header-phone__icon { display: grid; place-items: center; width: 40px; height: 40px; background: var(--gold-500); color: var(--ink); }
.header-phone__icon svg { width: 18px; height: 18px; }
.header-phone__label { display: block; font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-700); line-height: 1.2; }
.header-phone:hover { background: var(--green-950); color: #fff !important; }
.header-phone:hover .header-phone__label { color: var(--gold-400); }
@media (max-width: 1240px) { .header-phone__label { display: none; } .header-phone { padding-right: 1rem; } }
@media (max-width: 1024px) { .mlc-phone { display: none; } }

/* ---------- 15. Footer (ElementsKit template) ---------- */
.e-con.mlc-footer { background: var(--green-950); color: #fff; }
.e-con.mlc-footer__logo { background: var(--green-800); text-align: center; }
.mlc-footer__logo .elementor-widget-text-editor { font-family: var(--font-serif); font-style: italic; font-size: 1.3rem; line-height: 1.35; color: #e3ebe6; }
.mlc-footer .footer-title .elementor-heading-title { font-family: var(--font-sans) !important; font-size: 1.4rem !important; font-weight: 700 !important; color: #fff !important; }
.mlc-footer .elementor-widget-text-editor { color: #e3ebe6; }
.mlc-footer .elementor-widget-text-editor a { color: #fff; text-decoration: none; }
.mlc-footer .elementor-widget-text-editor a:hover { color: var(--gold-400); text-decoration: underline; }
.mlc-footer .footer-gold a { color: var(--gold-500) !important; }
.mlc-footer ul.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.mlc-footer .elementor-social-icon { background: transparent !important; border: 1px solid var(--gold-500); border-radius: 0 !important; }
.mlc-footer .elementor-social-icon:hover { background: var(--gold-500) !important; }
.mlc-footer .elementor-social-icon i, .mlc-footer .elementor-social-icon svg { color: #fff; fill: #fff; }
.mlc-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); font-size: .8rem; color: #b9c8c0; }
.mlc-footer-bottom .elementor-widget-text-editor { color: #b9c8c0; font-size: .8rem; }

.wa-float { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 90; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #1a7f4b; color: #fff !important; box-shadow: 0 10px 25px -8px rgba(0,0,0,.45); transition: transform var(--dur) var(--ease); }
.wa-float svg { width: 28px; height: 28px; fill: currentColor; }
.wa-float:hover { transform: scale(1.06); }

/* ---------- 16. Motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Theme templates (single post, 404) span the full width like Elementor pages */
body .site-main.mlc-full { max-width: none !important; width: 100%; margin: 0; padding: 0 !important; }
.mlc-note::before { content: ""; width: 10px; height: 10px; background: var(--gold-500); transform: rotate(45deg); flex: none; }

/* Phones: tighter inner padding on dark panels */
@media (max-width: 767px) {
  .e-con.mlc-attorney__body, .e-con.mlc-service__body, .mlc-about-band .e-con:not(.mlc-about-band__media),
  .e-con.mlc-contact-bar__title, .e-con.mlc-contact-bar__list, .mlc-footer > .e-con {
    --padding-left: 22px !important; --padding-right: 22px !important; --padding-top: 40px !important; --padding-bottom: 40px !important;
  }
  .e-con.mlc-attorney__body { --padding-top: 48px !important; }
  .e-con.mlc-hero { --padding-top: 72px !important; --padding-bottom: 180px !important; }
}

/* Legal pages (privacy, terms) */
.mlc-legal { font-size: 1.02rem; line-height: 1.8; }
.mlc-legal h2 { font-size: clamp(1.6rem, 1.4rem + .8vw, 2.1rem) !important; margin: 2em 0 .5em; }
.mlc-legal li::marker { color: var(--gold-700); }
