/* Miami Exterior Solutions – front-end design (matches the approved prototype) */
:root { --mes-navy:#0f2a3d; --mes-navy2:#173b54; --mes-teal:#0e8a88; --mes-teal-soft:#e3f4f3; --mes-coral:#ff6b4a; --mes-coral-d:#e8532f; --mes-gold:#f5b301; --mes-ink:#1b2430; --mes-muted:#5d6b7a; --mes-line:#e3e8ee; --mes-bg:#f6f8fa; --mes-shadow:0 2px 10px rgba(15,42,61,.07); --mes-shadow-lg:0 10px 30px rgba(15,42,61,.14); }

/* ---------- Base ---------- */
body.mes-site { font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; color:var(--mes-ink); background:var(--mes-bg); line-height:1.55; font-size:16px; -webkit-font-smoothing:antialiased; }
body.mes-site h1, body.mes-site h2, body.mes-site h3, body.mes-site h4 { font-family:inherit; color:var(--mes-ink); letter-spacing:-.4px; line-height:1.2; font-weight:800; }
body.mes-site h2 { font-size:28px; margin:0 0 18px; }
body.mes-site h3 { font-size:19px; font-weight:700; margin:0 0 8px; }
body.mes-site a { color:var(--mes-teal); }
body.mes-site a:hover { color:var(--mes-navy); }
body.mes-site .site-main, body.mes-site main.mes-main { max-width:1200px; margin:0 auto; padding:24px 20px 60px; }
body.mes-site .page-content > *:first-child { margin-top:0; }
body.mes-site .page-header { display:none; }

/* ---------- Buttons ---------- */
body.mes-site .mes-btn, body.mes-site a.mes-btn, body.mes-site button.mes-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--mes-coral) !important; color:#fff !important; padding:12px 22px; border-radius:10px; font-weight:700; font-size:15px; line-height:1.2; text-decoration:none !important; border:0 !important; cursor:pointer; font-family:inherit; transition:background .15s; box-shadow:none; }
body.mes-site .mes-btn:hover { background:var(--mes-coral-d) !important; color:#fff !important; }
body.mes-site .mes-btn.mes-btn-dark, body.mes-site a.mes-btn.mes-btn-dark { background:var(--mes-navy) !important; }
body.mes-site .mes-btn.mes-btn-dark:hover, body.mes-site a.mes-btn.mes-btn-dark:hover { background:var(--mes-navy2) !important; }
body.mes-site .mes-btn.mes-btn-ghost, body.mes-site a.mes-btn.mes-btn-ghost { background:transparent !important; border:1.5px solid rgba(255,255,255,.4) !important; margin-left:8px; }
body.mes-site .mes-btn.mes-btn-ghost:hover, body.mes-site a.mes-btn.mes-btn-ghost:hover { background:rgba(255,255,255,.1) !important; }
body.mes-site .mes-btn.mes-btn-ghost-dark, body.mes-site a.mes-btn.mes-btn-ghost-dark, body.mes-site button.mes-btn.mes-btn-ghost-dark { background:#fff !important; color:var(--mes-navy) !important; border:1.5px solid var(--mes-line) !important; }
body.mes-site .mes-btn.mes-btn-ghost-dark:hover, body.mes-site a.mes-btn.mes-btn-ghost-dark:hover, body.mes-site button.mes-btn.mes-btn-ghost-dark:hover { border-color:var(--mes-navy) !important; background:#fff !important; color:var(--mes-navy) !important; }
body.mes-site .mes-btn-sm { padding:8px 14px; font-size:14px; }
body.mes-site .mes-btn-block { width:100%; }

/* ---------- Heroes ---------- */
.mes-hero { background:radial-gradient(1000px 340px at 85% -10%, rgba(14,138,136,.45), transparent 60%), linear-gradient(160deg,var(--mes-navy) 0%,#0b2030 100%); color:#fff; border-radius:20px; padding:60px 48px 64px; margin:0 0 44px; }
.mes-hero-sm, .mes-hero-page { padding:44px 48px; }
.mes-hero-legal { padding:36px 48px; }
body.mes-site .mes-hero-title { color:#fff; font-size:clamp(30px,4.2vw,48px); line-height:1.1; margin:0 0 14px; letter-spacing:-1px; max-width:800px; }
.mes-hero-legal .mes-hero-title { font-size:clamp(28px,3.4vw,38px); margin:0; }
.mes-lead { color:#c9d6e2; font-size:18px; max-width:640px; margin:0 0 28px; }
.mes-hero-page .mes-lead { margin-bottom:0; }
.mes-lead-dark { font-size:18px; color:var(--mes-muted); max-width:820px; margin:0 0 26px; }
.mes-eyebrow { text-transform:uppercase; letter-spacing:1.4px; font-size:12px; font-weight:700; color:#7fd6d4; margin:0 0 10px; }
.mes-section .mes-eyebrow, .mes-card .mes-eyebrow { color:var(--mes-teal); }
.mes-crumbs { font-size:13px; color:#9fb3c4; margin-bottom:14px; }
body.mes-site .mes-crumbs a { color:#c9d6e2; text-decoration:none; }
body.mes-site .mes-crumbs a:hover { color:#fff; }
.mes-trust { list-style:none; padding:0; margin:26px 0 0; display:flex; gap:24px; flex-wrap:wrap; color:#c9d6e2; font-size:14px; }
.mes-trust li::before { content:"✓ "; color:var(--mes-coral); font-weight:800; }
@media (max-width:700px) { .mes-hero, .mes-hero-sm, .mes-hero-page, .mes-hero-legal { padding:36px 22px; border-radius:16px; } }

/* ---------- Search bar ---------- */
.mes-searchbar { background:#fff; border-radius:14px; padding:8px; display:flex; gap:8px; flex-wrap:wrap; box-shadow:var(--mes-shadow-lg); max-width:880px; }
.mes-searchbar .mes-field { flex:1 1 220px; display:flex; align-items:center; gap:8px; padding:0 12px; border-right:1px solid var(--mes-line); margin:0; }
.mes-searchbar .mes-field:last-of-type { border-right:0; }
.mes-searchbar select { border:0 !important; outline:none; font:inherit; font-size:16px; color:var(--mes-ink); width:100%; padding:13px 0 !important; background:transparent !important; box-shadow:none !important; }
.mes-ico { color:var(--mes-muted); }
@media (max-width:700px) { .mes-searchbar .mes-field { border-right:0; border-bottom:1px solid var(--mes-line); flex-basis:100%; } .mes-searchbar .mes-btn { width:100%; } }

/* ---------- Sections, chips, cards ---------- */
.mes-section { margin:0 0 48px; }
.mes-h2-spaced { margin-top:56px !important; }
.mes-narrow { max-width:820px; margin-left:auto; margin-right:auto; }
.mes-center { text-align:center; }
.mes-muted { color:var(--mes-muted); font-size:14px; }
.mes-cats, .mes-chips { display:flex; flex-wrap:wrap; gap:10px; }
.mes-chips { margin:0 0 24px; }
body.mes-site .mes-cat, body.mes-site .mes-chip { border:1.5px solid var(--mes-line); background:#fff; color:var(--mes-ink); padding:8px 15px; border-radius:999px; font-weight:600; font-size:14px; text-decoration:none; transition:border-color .15s; }
body.mes-site .mes-cat:hover, body.mes-site .mes-chip:hover { border-color:var(--mes-teal); color:var(--mes-teal); }
body.mes-site .mes-chip.is-active { background:var(--mes-navy); border-color:var(--mes-navy); color:#fff; }
.mes-cat span { color:var(--mes-muted); font-weight:500; margin-left:4px; font-size:13px; }
.mes-grid-2, .mes-grid-3 { display:grid; gap:20px; }
.mes-grid-2 { grid-template-columns:repeat(2,1fr); }
.mes-grid-3 { grid-template-columns:repeat(3,1fr); }
@media (max-width:900px) { .mes-grid-2, .mes-grid-3 { grid-template-columns:1fr; } }
.mes-card { background:#fff; border:1px solid var(--mes-line); border-radius:14px; padding:24px; box-shadow:var(--mes-shadow); margin-bottom:20px; }
.mes-grid-2 .mes-card, .mes-grid-3 .mes-card { margin-bottom:0; }
.mes-card h2 { font-size:20px !important; margin:0 0 14px !important; }
.mes-card p:last-child { margin-bottom:0; }
.mes-from { font-weight:700; color:var(--mes-navy); }
.mes-steps .mes-card h3::before { display:none; }

/* ---------- Homepage (full-width bands) ---------- */
body.mes-site { overflow-x:hidden; }
body.home.mes-site main.site-main { padding-top:0; padding-bottom:0; }
.mes-bleed { width:100vw; position:relative; left:50%; margin-left:-50vw; }
.mes-wrap { max-width:1200px; margin:0 auto; padding:0 20px; }
.mes-band-white { background:#fff; padding:76px 0; border-top:1px solid var(--mes-line); }
.mes-band-grey { background:var(--mes-bg); padding:76px 0; }
.mes-band-grey .mes-promo { margin-bottom:64px; }
.mes-kicker { text-transform:uppercase; letter-spacing:1.6px; font-size:12px; font-weight:800; color:var(--mes-teal); margin:0 0 6px; }
body.mes-site .mes-section-head h2 { font-size:clamp(26px,3vw,34px); letter-spacing:-.8px; }
.mes-center-head { justify-content:center; text-align:center; margin-bottom:36px; }

.mes-home-hero { background:radial-gradient(900px 420px at 88% 10%, rgba(14,138,136,.55), transparent 60%), radial-gradient(700px 380px at 0% 100%, rgba(255,107,74,.16), transparent 60%), linear-gradient(160deg,#0f2a3d 0%,#0a1c2a 100%); color:#fff; padding:84px 0 96px; overflow:hidden; }
.mes-home-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:44px 44px; mask-image:linear-gradient(180deg,#000 30%,transparent 100%); -webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 100%); pointer-events:none; }
.mes-home-hero-grid { position:relative; display:grid; grid-template-columns:1.35fr .9fr; gap:56px; align-items:center; }
body.mes-site .mes-home-hero .mes-hero-title { font-size:clamp(34px,5vw,58px); letter-spacing:-1.6px; line-height:1.05; margin-bottom:18px; }
.mes-hl { color:var(--mes-coral); }
.mes-home-hero .mes-lead { font-size:19px; margin-bottom:30px; }
.mes-home-hero .mes-searchbar { box-shadow:0 20px 50px rgba(0,0,0,.35); }
.mes-popular { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:18px; font-size:14px; color:#9fb3c4; }
.mes-popular > span { font-weight:600; margin-right:4px; }
body.mes-site .mes-popular a { color:#e6eef5; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); padding:6px 12px; border-radius:999px; text-decoration:none; transition:background .15s; }
body.mes-site .mes-popular a:hover { background:rgba(255,255,255,.16); color:#fff; }
.mes-hero-cards { position:relative; display:grid; gap:14px; }
body.mes-site .mes-hero-card { display:flex; gap:14px; align-items:center; background:rgba(255,255,255,.97); color:var(--mes-ink); border-radius:16px; padding:14px 16px; box-shadow:0 18px 40px rgba(0,0,0,.28); text-decoration:none; transition:transform .2s; }
body.mes-site .mes-hero-card:hover { transform:translateY(-3px); color:var(--mes-ink); }
.mes-hero-card-1 { margin-right:44px; }
.mes-hero-card-2 { margin-left:44px; }
.mes-hero-card-3 { margin-right:22px; margin-left:22px; }
.mes-hero-card .mes-mini-thumb { width:52px; height:52px; border-radius:12px; }
.mes-hero-card-body { display:flex; flex-direction:column; gap:3px; min-width:0; }
.mes-hero-card-body strong { font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mes-hero-card-body small { color:var(--mes-muted); font-size:13px; }
.mes-hero-card-body .mes-badge { align-self:flex-start; margin-top:2px; }
.mes-hero-quote { justify-self:center; display:inline-flex; align-items:center; gap:8px; background:var(--mes-coral); color:#fff; font-weight:700; font-size:13px; padding:8px 14px; border-radius:999px; box-shadow:0 10px 24px rgba(255,107,74,.35); }
.mes-hero-quote-dot { width:8px; height:8px; border-radius:50%; background:#fff; box-shadow:0 0 0 4px rgba(255,255,255,.3); }
@media (max-width:960px) { .mes-home-hero-grid { grid-template-columns:1fr; } .mes-hero-side { display:none; } .mes-home-hero { padding:56px 0 64px; } }

.mes-stats { background:#fff; border-bottom:1px solid var(--mes-line); }
.mes-stats-row { display:grid; grid-template-columns:repeat(4,1fr); }
.mes-stats-row > div { padding:26px 20px; text-align:center; border-left:1px solid var(--mes-line); }
.mes-stats-row > div:first-child { border-left:0; }
.mes-stats-row strong { display:block; font-size:30px; font-weight:800; letter-spacing:-1px; color:var(--mes-navy); line-height:1.1; }
.mes-stats-row span { color:var(--mes-muted); font-size:14px; }
@media (max-width:700px) { .mes-stats-row { grid-template-columns:repeat(2,1fr); } .mes-stats-row > div:nth-child(3) { border-left:0; } .mes-stats-row > div { border-top:1px solid var(--mes-line); } }

.mes-steps-row { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; position:relative; }
.mes-steps-row::before { content:""; position:absolute; top:27px; left:16%; right:16%; border-top:2px dashed #cfe7e6; }
.mes-step { text-align:center; position:relative; padding:0 10px; }
.mes-step-num { width:56px; height:56px; border-radius:50%; background:var(--mes-navy); color:#fff; display:grid; place-items:center; font-weight:800; font-size:20px; margin:0 auto 16px; box-shadow:0 0 0 8px #fff, 0 8px 20px rgba(15,42,61,.25); position:relative; }
.mes-step p { color:var(--mes-muted); max-width:300px; margin:0 auto; }
@media (max-width:760px) { .mes-steps-row { grid-template-columns:1fr; } .mes-steps-row::before { display:none; } }

.mes-why { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.mes-why-item { background:var(--mes-bg); border-radius:18px; padding:30px 26px; }
.mes-why-ico { width:54px; height:54px; border-radius:14px; background:var(--mes-teal-soft); color:var(--mes-teal); display:grid; place-items:center; margin-bottom:16px; }
.mes-why-ico svg { width:28px; height:28px; }
.mes-why-item p { color:var(--mes-muted); margin:0; }
@media (max-width:860px) { .mes-why { grid-template-columns:1fr; } }

/* ---------- Animations ---------- */
.mes-rotate { display:inline-block; position:relative; }
.mes-rotate-word { display:inline-block; transition:transform .3s ease, opacity .3s ease; }
.mes-rotate-word.is-out { transform:translateY(-40%); opacity:0; }
.mes-rotate-word.is-in { animation:mes-word-in .45s cubic-bezier(.2,.8,.2,1); }
@keyframes mes-word-in { from { transform:translateY(45%); opacity:0; } to { transform:none; opacity:1; } }
.mes-rotate-word::after { content:""; display:block; height:4px; border-radius:4px; background:linear-gradient(90deg,var(--mes-coral),#ffb199); margin-top:2px; transform-origin:left; animation:mes-underline 2.4s ease-in-out infinite; }
@keyframes mes-underline { 0% { transform:scaleX(0); } 20%, 80% { transform:scaleX(1); } 100% { transform:scaleX(0); } }
.mes-hero-card { animation:mes-float 6s ease-in-out infinite; }
.mes-hero-card-2 { animation-delay:-2s; }
.mes-hero-card-3 { animation-delay:-4s; }
@keyframes mes-float { 0%, 100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }
.mes-hero-quote-dot { animation:mes-pulse 1.8s ease-out infinite; }
@keyframes mes-pulse { 0% { box-shadow:0 0 0 0 rgba(255,255,255,.6); } 100% { box-shadow:0 0 0 10px rgba(255,255,255,0); } }
.mes-anim .mes-band-white .mes-section-head, .mes-anim .mes-band-grey .mes-section-head, .mes-anim .mes-trade-tile, .mes-anim .mes-city, .mes-anim .mes-step, .mes-anim .mes-why-item, .mes-anim .mes-results-grid .mes-listing, .mes-anim .mes-promo, .mes-anim .mes-reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.mes-anim .is-visible { opacity:1 !important; transform:none !important; }
body.mes-site .mes-trade-tile.is-visible:hover { transform:translateY(-3px) !important; }
@media (prefers-reduced-motion: reduce) { .mes-hero-card, .mes-hero-quote-dot, .mes-rotate-word::after { animation:none !important; } }

/* ---------- Trade tiles & city grid (Angi/Clutch-style browsing) ---------- */
.mes-section-head { display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
body.mes-site .mes-section-head h2 { margin:0; }
.mes-section-head a { font-weight:600; font-size:15px; text-decoration:none; }
.mes-trade-tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:14px; }
body.mes-site .mes-trade-tile { background:#fff; border:1px solid var(--mes-line); border-radius:14px; padding:18px 16px; display:flex; flex-direction:column; gap:6px; text-decoration:none; color:var(--mes-ink); box-shadow:var(--mes-shadow); transition:transform .15s, box-shadow .15s, border-color .15s; }
body.mes-site .mes-trade-tile:hover { transform:translateY(-2px); box-shadow:var(--mes-shadow-lg); border-color:var(--mes-teal); color:var(--mes-ink); }
.mes-trade-ico { width:48px; height:48px; border-radius:12px; display:grid; place-items:center; color:#fff; margin-bottom:6px; }
.mes-trade-ico .mes-icon { width:26px; height:26px; }
.mes-trade-name { font-weight:700; font-size:15px; line-height:1.25; }
.mes-trade-count { color:var(--mes-muted); font-size:13px; }
.mes-city-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; }
body.mes-site .mes-city { display:grid; grid-template-columns:auto 1fr auto; grid-template-rows:auto auto; column-gap:10px; align-items:center; background:#fff; border:1px solid var(--mes-line); border-radius:12px; padding:12px 14px; text-decoration:none; color:var(--mes-ink); transition:border-color .15s, box-shadow .15s; }
body.mes-site .mes-city:hover { border-color:var(--mes-teal); box-shadow:var(--mes-shadow); color:var(--mes-ink); }
.mes-city-pin { grid-row:1 / span 2; font-size:18px; }
.mes-city-name { font-weight:700; font-size:15px; }
.mes-city-count { grid-column:2; color:var(--mes-muted); font-size:13px; }
.mes-city-arrow { grid-row:1 / span 2; grid-column:3; color:var(--mes-teal); font-weight:700; }
.mes-searchbar input[type=text] { border:0 !important; outline:none; font:inherit; font-size:16px; color:var(--mes-ink); width:100%; padding:13px 0 !important; background:transparent !important; box-shadow:none !important; }

/* ---------- Directory layout ---------- */
.mes-dir-layout { display:grid; grid-template-columns:260px 1fr; gap:28px; align-items:start; }
@media (max-width:900px) { .mes-dir-layout { grid-template-columns:1fr; } }
.mes-filters { background:#fff; border:1px solid var(--mes-line); border-radius:14px; padding:20px; position:sticky; top:90px; }
.mes-filters h4 { margin:0 0 8px !important; font-size:12px !important; text-transform:uppercase; letter-spacing:1px; color:var(--mes-muted) !important; font-weight:700 !important; }
.mes-filters .mes-group { margin-bottom:18px; }
.mes-filters select, .mes-filters input { width:100%; padding:10px 12px !important; border-radius:9px !important; border:1.5px solid var(--mes-line) !important; font:inherit; font-size:15px; background:#fff; }
.mes-reset { display:block; text-align:center; margin-top:10px; font-size:14px; }
.mes-results-meta { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; color:var(--mes-muted); font-size:14px; margin-bottom:14px; }

/* ---------- Listing cards ---------- */
.mes-results-list .mes-listing { display:grid; grid-template-columns:132px 1fr auto; gap:20px; }
.mes-results-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:1000px) { .mes-results-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .mes-results-grid { grid-template-columns:1fr; } }
.mes-listing { background:#fff; border:1px solid var(--mes-line); border-radius:14px; padding:18px; margin-bottom:14px; box-shadow:var(--mes-shadow); transition:box-shadow .15s, transform .15s; }
.mes-results-grid .mes-listing { margin:0; display:flex; flex-direction:column; }
.mes-listing:hover { box-shadow:var(--mes-shadow-lg); }
.mes-tier-spotlight { border:2px solid var(--mes-gold); background:linear-gradient(180deg,#fffaf0 0%,#fff 50%); }
.mes-tier-featured { border:2px solid var(--mes-teal); }
body.mes-site .mes-thumb { width:132px; height:112px; border-radius:10px; display:grid; place-items:center; color:#fff; font-weight:800; font-size:32px; letter-spacing:-1px; text-decoration:none; }
body.mes-site .mes-results-grid .mes-thumb { width:100%; height:120px; margin-bottom:14px; }
.mes-listing h3 { font-size:18px !important; margin:0 0 6px !important; }
body.mes-site .mes-listing h3 a { color:var(--mes-ink); text-decoration:none; }
body.mes-site .mes-listing h3 a:hover { color:var(--mes-teal); }
.mes-meta { color:var(--mes-muted); font-size:14px; display:flex; gap:14px; flex-wrap:wrap; margin-bottom:8px; }
.mes-blurb { margin:0 0 10px; font-size:15px; color:#34404d; }
.mes-tags { display:flex; gap:6px; flex-wrap:wrap; }
.mes-tag { background:var(--mes-teal-soft); color:var(--mes-teal); font-size:12px; font-weight:600; padding:4px 9px; border-radius:6px; }
.mes-actions { display:flex; flex-direction:column; gap:8px; justify-content:center; min-width:150px; }
.mes-results-grid .mes-actions { flex-direction:row; margin-top:auto; padding-top:14px; min-width:0; }
.mes-results-grid .mes-actions .mes-btn { flex:1; }
.mes-results-grid .mes-blurb { display:none; }
@media (max-width:760px) { .mes-results-list .mes-listing { grid-template-columns:1fr; } body.mes-site .mes-results-list .mes-thumb { width:100%; height:96px; } .mes-actions { flex-direction:row; } .mes-actions .mes-btn { flex:1; } }
.mes-badges { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.mes-badge { display:inline-flex; align-items:center; font-size:11px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; padding:4px 9px; border-radius:6px; }
.mes-badge-spot { background:var(--mes-gold); color:#3b2a00; }
.mes-badge-feat { background:var(--mes-teal); color:#fff; }
.mes-badge-ver { background:#e7f0ff; color:#2456c7; }
.mes-badge-claimed { background:#e7f7ee; color:#145c33; }
.mes-empty { text-align:center; padding:50px 20px; color:var(--mes-muted); background:#fff; border:1px dashed var(--mes-line); border-radius:14px; }
.mes-pager { display:flex; gap:6px; justify-content:center; margin:26px 0 0; flex-wrap:wrap; }
body.mes-site .mes-page { min-width:40px; height:40px; display:grid; place-items:center; border-radius:10px; background:#fff; border:1.5px solid var(--mes-line); color:var(--mes-ink); font-weight:600; text-decoration:none; padding:0 10px; }
body.mes-site .mes-page:hover { border-color:var(--mes-teal); }
body.mes-site .mes-page.is-current { background:var(--mes-navy); border-color:var(--mes-navy); color:#fff; }
.mes-gap { align-self:center; color:var(--mes-muted); }

/* ---------- Listing visuals (logo or trade icon) ---------- */
body.mes-site .mes-thumb.has-icon { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#fff; }
.mes-thumb .mes-icon { width:44px; height:44px; }
.mes-thumb-label { font-size:10.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase; opacity:.85; text-align:center; padding:0 8px; line-height:1.2; }
body.mes-site .mes-thumb.has-logo, .mes-profile-logo.has-logo, .mes-mini-thumb.has-logo { border:1px solid var(--mes-line); overflow:hidden; }
.mes-thumb.has-logo img, .mes-profile-logo.has-logo img, .mes-mini-thumb.has-logo img { width:100%; height:100%; object-fit:contain; padding:10%; }
.mes-profile-logo .mes-icon { width:46px; height:46px; color:#fff; }
.mes-mini-thumb .mes-icon { width:24px; height:24px; color:#fff; }
.mes-profile-hero { position:relative; overflow:hidden; }
.mes-banner-pattern { position:absolute; inset:-20px; display:flex; flex-wrap:wrap; gap:46px 70px; padding:20px 40px; color:#fff; opacity:.10; transform:rotate(-8deg); }
.mes-banner-pattern .mes-icon { width:64px; height:64px; }

/* ---------- Single listing ---------- */
body.mes-site main.mes-profile { padding-top:0; }
.mes-profile-hero { height:200px; border-radius:0 0 20px 20px; margin:0 -20px; }
.mes-profile-head { background:#fff; border:1px solid var(--mes-line); border-radius:16px; box-shadow:var(--mes-shadow); margin:-60px 10px 0; padding:22px 26px; display:flex; gap:22px; align-items:center; flex-wrap:wrap; position:relative; }
.mes-profile-logo { width:92px; height:92px; border-radius:18px; border:4px solid #fff; box-shadow:var(--mes-shadow-lg); display:grid; place-items:center; color:#fff; font-size:32px; font-weight:800; margin-top:-56px; flex-shrink:0; }
.mes-profile-title { flex:1; min-width:240px; }
body.mes-site .mes-profile-title h1 { font-size:clamp(24px,3vw,32px); margin:0 0 6px; }
.mes-profile-title .mes-meta { margin:0; }
.mes-profile-layout { display:grid; grid-template-columns:1fr 380px; gap:28px; padding-top:28px; align-items:start; }
@media (max-width:960px) { .mes-profile-layout { grid-template-columns:1fr; } .mes-profile-head { margin:-50px 0 0; } }
.mes-sticky { position:sticky; top:90px; }
.mes-notice { background:var(--mes-teal-soft); border:1px solid #a9dcda; color:#0b5c5b; border-radius:12px; padding:14px 18px; font-size:15px; margin-bottom:20px; }
body.mes-site .mes-notice a { font-weight:700; }
.mes-services { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
.mes-services li { background:var(--mes-bg); border-radius:8px; padding:10px 12px; font-weight:600; font-size:15px; }
.mes-services li::before { content:"✓ "; color:var(--mes-teal); font-weight:800; }
.mes-facts { list-style:none; padding:0; margin:0; }
.mes-facts li { display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--mes-line); font-size:15px; }
.mes-facts li:last-child { border-bottom:0; }
.mes-facts li > span:first-child { color:var(--mes-muted); }
.mes-similar { display:grid; gap:10px; }
body.mes-site .mes-similar-item { display:flex; gap:12px; align-items:center; padding:10px; border-radius:10px; border:1px solid var(--mes-line); color:var(--mes-ink); text-decoration:none; }
body.mes-site .mes-similar-item:hover { border-color:var(--mes-teal); }
.mes-similar-item small { display:block; color:var(--mes-muted); font-size:13px; }
.mes-mini-thumb { width:44px; height:44px; border-radius:9px; display:grid; place-items:center; color:#fff; font-weight:800; font-size:15px; flex-shrink:0; }
.mes-table { width:100%; border-collapse:collapse; font-size:15px; margin:0 0 10px; }
.mes-table th, .mes-table td { padding:10px 12px; border-bottom:1px solid var(--mes-line); text-align:left; }
.mes-table th { background:var(--mes-bg); font-weight:700; }
.mes-ok { background:#e7f7ee; color:#145c33; font-weight:700; font-size:12px; padding:3px 8px; border-radius:6px; }

/* ---------- Promo, plans, checks, FAQ ---------- */
.mes-promo { background:linear-gradient(120deg,var(--mes-navy),var(--mes-navy2) 60%,var(--mes-teal) 140%); color:#fff; border-radius:20px; padding:42px; display:grid; grid-template-columns:1.4fr 1fr; gap:30px; align-items:center; margin:0 0 48px; }
body.mes-site .mes-promo h2 { color:#fff; margin:0 0 10px; font-size:30px; }
.mes-promo p { color:#cfdbe6; }
@media (max-width:800px) { .mes-promo { grid-template-columns:1fr; padding:28px; } }
.mes-checks { list-style:none; padding:0; margin:0 0 18px; display:grid; gap:10px; }
.mes-checks li { position:relative; padding-left:26px; }
.mes-checks li::before { content:"✓"; position:absolute; left:0; color:var(--mes-teal); font-weight:800; }
.mes-promo .mes-checks li::before { color:var(--mes-coral); }
.mes-promo .mes-value { font-size:17px; margin:0 0 12px; }
.mes-promo .mes-value s { color:#9fb3c6; margin-right:8px; }
.mes-promo .mes-value strong { color:#fff; background:var(--mes-coral); padding:3px 10px; border-radius:999px; font-size:14px; white-space:nowrap; }
.mes-value-list li { color:#cfdbe6; font-size:15px; line-height:1.45; }
.mes-value-list li strong { color:#fff; }
.mes-value-list li span { display:inline-block; margin-left:6px; font-size:12px; font-weight:700; color:var(--mes-coral); white-space:nowrap; }
.mes-checks li.no { color:#a0aab4; }
.mes-checks li.no::before { content:"–"; color:#c3cad1; }
.mes-plans { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:20px 0 16px; }
@media (max-width:900px) { .mes-plans { grid-template-columns:1fr; } }
.mes-plan { background:#fff; border:1px solid var(--mes-line); border-radius:18px; padding:30px; position:relative; display:flex; flex-direction:column; box-shadow:var(--mes-shadow); }
.mes-plan .mes-checks { flex:1; }
.mes-plan h3 { margin:0 !important; font-size:22px !important; }
.mes-plan-pop { border:2px solid var(--mes-teal); box-shadow:var(--mes-shadow-lg); }
.mes-plan-top { border:2px solid var(--mes-gold); }
.mes-ribbon { position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--mes-teal); color:#fff; font-size:12px; font-weight:700; padding:5px 12px; border-radius:999px; white-space:nowrap; }
.mes-price { font-size:44px; font-weight:800; letter-spacing:-1.5px; margin:10px 0 20px; line-height:1; }
.mes-price span { font-size:15px; font-weight:500; color:var(--mes-muted); letter-spacing:0; }
.mes-faq details { background:#fff; border:1px solid var(--mes-line); border-radius:12px; padding:16px 20px; margin-bottom:10px; }
.mes-faq summary { font-weight:700; cursor:pointer; }
.mes-faq p { color:var(--mes-muted); margin:10px 0 0; }

/* ---------- Legal ---------- */
.mes-legal { max-width:860px; background:#fff; border:1px solid var(--mes-line); border-radius:16px; padding:34px 40px; box-shadow:var(--mes-shadow); }
body.mes-site .mes-legal h2 { font-size:21px; margin:30px 0 10px; }
.mes-legal li { margin-bottom:6px; }
@media (max-width:700px) { .mes-legal { padding:24px 20px; } }

/* ---------- Gravity Forms ---------- */
body.mes-site .mes-form .gform_fields { row-gap:14px !important; }
body.mes-site .mes-form .gfield_label { font-size:14px !important; font-weight:600 !important; color:var(--mes-ink) !important; }
body.mes-site .mes-form input[type=text], body.mes-site .mes-form input[type=email], body.mes-site .mes-form input[type=tel], body.mes-site .mes-form input[type=url], body.mes-site .mes-form select, body.mes-site .mes-form textarea { width:100%; padding:11px 12px !important; border:1.5px solid var(--mes-line) !important; border-radius:9px !important; font:inherit !important; font-size:15px !important; background:#fff !important; box-shadow:none !important; min-height:0 !important; }
body.mes-site .mes-form input:focus, body.mes-site .mes-form select:focus, body.mes-site .mes-form textarea:focus { border-color:var(--mes-teal) !important; outline:none !important; }
body.mes-site .mes-form .gfield_description { font-size:12px !important; color:var(--mes-muted) !important; line-height:1.45 !important; }
body.mes-site .mes-form .gform_footer input[type=submit], body.mes-site .mes-form .gform_button { width:100%; background:var(--mes-coral) !important; color:#fff !important; border:0 !important; border-radius:10px !important; padding:13px 22px !important; font-weight:700 !important; font-size:15px !important; cursor:pointer; }
body.mes-site .mes-form .gform_button:hover { background:var(--mes-coral-d) !important; }
body.mes-site .mes-form .gfield_required { color:var(--mes-coral) !important; }

/* ---------- Logo, footer ---------- */
body.mes-site .mes-logo { display:inline-flex; align-items:center; gap:10px; font-weight:800; font-size:20px; letter-spacing:-.4px; color:var(--mes-navy); text-decoration:none; white-space:nowrap; }
.mes-logo b { color:var(--mes-coral); font-weight:800; }
.mes-logo-mark { width:34px; height:34px; border-radius:9px; background:linear-gradient(135deg,var(--mes-teal),var(--mes-navy)); color:#fff; display:grid; place-items:center; font-size:17px; }
body.mes-site .mes-logo-light { color:#fff; }
@media (max-width:480px) { body.mes-site .mes-logo { font-size:17px; } .mes-logo-mark { width:30px; height:30px; } }
.mes-footer { color:#b7c6d4; font-size:14px; max-width:1200px; margin:0 auto; padding:52px 20px 24px; }
.mes-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:30px; }
@media (max-width:900px) { .mes-footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:520px) { .mes-footer-grid { grid-template-columns:1fr; } }
body.mes-site .mes-footer h4 { color:#fff; font-size:13px; margin:0 0 12px; text-transform:uppercase; letter-spacing:1px; }
body.mes-site .mes-footer a { color:#b7c6d4; display:block; padding:3px 0; text-decoration:none; }
body.mes-site .mes-footer a:hover { color:#fff; }
body.mes-site .mes-footer .mes-logo { display:inline-flex; margin-bottom:12px; padding:0; color:#fff; }
.mes-footer p { margin:0 0 10px; }
.mes-footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:32px; padding-top:18px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:13px; }
.mes-footer-bottom .mes-footer-addr { font-size:11px; opacity:.45; }
.mes-legalbar { background:var(--mes-navy); color:#b7c6d4; font-size:13px; }
.mes-legalbar-in { max-width:1200px; margin:0 auto; padding:16px 20px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.mes-legalbar nav { display:flex; gap:16px; flex-wrap:wrap; }
.mes-legalbar a { color:#b7c6d4 !important; text-decoration:none; }

/* ---------- Get-matched chat ---------- */
body.mes-site .mes-chat-launcher { position:fixed; right:22px; bottom:22px; z-index:99990; display:inline-flex; align-items:center; gap:10px; background:var(--mes-navy) !important; color:#fff !important; border:0 !important; border-radius:999px; padding:14px 20px 14px 16px; font:inherit; font-weight:700; font-size:15px; cursor:pointer; box-shadow:0 12px 30px rgba(15,42,61,.35); transition:transform .2s, opacity .2s; }
body.mes-site .mes-chat-launcher:hover { transform:translateY(-2px); background:var(--mes-navy2) !important; }
.mes-chat-launcher svg { width:22px; height:22px; color:var(--mes-coral); }
.mes-chat-launcher.is-hidden { opacity:0; pointer-events:none; transform:scale(.9); }
.mes-chat-launcher::after { content:""; position:absolute; top:6px; right:8px; width:10px; height:10px; border-radius:50%; background:var(--mes-coral); box-shadow:0 0 0 3px var(--mes-navy); }
@media (max-width:600px) { .mes-chat-launcher span { display:none; } body.mes-site .mes-chat-launcher { padding:15px; } }
.mes-chat { position:fixed; right:22px; bottom:22px; z-index:99991; width:380px; max-width:calc(100vw - 24px); height:600px; max-height:calc(100vh - 44px); background:#fff; border-radius:20px; box-shadow:0 24px 60px rgba(15,42,61,.35); display:flex; flex-direction:column; overflow:hidden; animation:mes-chat-in .28s cubic-bezier(.2,.8,.2,1); font-size:15px; }
.mes-chat[hidden] { display:none; }
@keyframes mes-chat-in { from { opacity:0; transform:translateY(16px) scale(.98); } to { opacity:1; transform:none; } }
@media (max-width:600px) { .mes-chat { right:12px; bottom:12px; height:calc(100vh - 24px); } }
.mes-chat-head { display:flex; gap:12px; align-items:center; padding:16px 18px; background:linear-gradient(135deg,var(--mes-navy),var(--mes-navy2)); color:#fff; }
.mes-chat-head strong { display:block; font-size:16px; }
.mes-chat-head small { color:#9fb3c4; font-size:12.5px; }
.mes-chat-avatar { width:38px; height:38px; border-radius:12px; background:linear-gradient(135deg,var(--mes-teal),#11a7a4); display:grid; place-items:center; }
.mes-chat-avatar svg { width:20px; height:20px; color:#fff; }
body.mes-site .mes-chat-x { margin-left:auto; background:transparent !important; border:0 !important; color:#c9d6e2 !important; cursor:pointer; padding:6px; border-radius:8px; }
.mes-chat-x svg { width:20px; height:20px; display:block; }
body.mes-site .mes-chat-x:hover { background:rgba(255,255,255,.1) !important; }
.mes-chat-body { flex:1; overflow-y:auto; padding:18px 16px; display:flex; flex-direction:column; gap:10px; background:var(--mes-bg); }
.mes-msg { max-width:88%; padding:11px 14px; border-radius:16px; line-height:1.45; animation:mes-msg-in .25s ease; }
@keyframes mes-msg-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.mes-bot { background:#fff; border:1px solid var(--mes-line); border-bottom-left-radius:4px; align-self:flex-start; }
.mes-me { background:var(--mes-teal); color:#fff; border-bottom-right-radius:4px; align-self:flex-end; }
.mes-typing { display:flex; gap:4px; padding:14px 16px; }
.mes-typing span { width:7px; height:7px; border-radius:50%; background:#a3b1be; animation:mes-dot 1s infinite ease-in-out; }
.mes-typing span:nth-child(2) { animation-delay:.15s; } .mes-typing span:nth-child(3) { animation-delay:.3s; }
@keyframes mes-dot { 0%, 80%, 100% { transform:translateY(0); opacity:.5; } 40% { transform:translateY(-4px); opacity:1; } }
.mes-chat-input { padding:12px; border-top:1px solid var(--mes-line); background:#fff; max-height:46%; overflow-y:auto; }
.mes-chat-input:empty { display:none; }
.mes-chat-chips { display:flex; flex-wrap:wrap; gap:8px; }
body.mes-site .mes-chat-chip { background:#fff !important; color:var(--mes-navy) !important; border:1.5px solid var(--mes-line) !important; border-radius:999px; padding:8px 13px; font:inherit; font-size:14px; font-weight:600; cursor:pointer; transition:border-color .15s, background .15s; }
body.mes-site .mes-chat-chip:hover { border-color:var(--mes-teal) !important; background:var(--mes-teal-soft) !important; }
.mes-chat-form { display:flex; gap:8px; align-items:flex-end; }
.mes-chat-form input, .mes-chat-form textarea, .mes-chat-contact input:not([type=checkbox]) { flex:1; width:100%; border:1.5px solid var(--mes-line) !important; border-radius:12px !important; padding:11px 12px !important; font:inherit; font-size:15px; outline:none; background:#fff; resize:none; }
.mes-chat-form textarea { min-height:64px; }
.mes-chat-form input:focus, .mes-chat-form textarea:focus, .mes-chat-contact input:focus { border-color:var(--mes-teal) !important; }
body.mes-site .mes-chat-send { width:44px; height:44px; flex-shrink:0; border-radius:12px; background:var(--mes-coral) !important; color:#fff !important; border:0 !important; display:grid; place-items:center; cursor:pointer; padding:0; }
.mes-chat-send svg { width:20px; height:20px; }
body.mes-site .mes-chat-skip { background:transparent !important; border:0 !important; color:var(--mes-muted) !important; font:inherit; font-size:14px; cursor:pointer; padding:10px 6px; }
.mes-chat-recs { display:grid; gap:8px; margin-top:10px; }
body.mes-site .mes-chat-rec { display:flex; gap:10px; align-items:center; padding:10px; border:1px solid var(--mes-line); border-radius:12px; text-decoration:none; color:var(--mes-ink); background:var(--mes-bg); transition:border-color .15s; }
body.mes-site .mes-chat-rec:hover { border-color:var(--mes-teal); color:var(--mes-ink); }
.mes-chat-rec .mes-mini-thumb { width:40px; height:40px; }
.mes-chat-rec strong { display:block; font-size:14px; line-height:1.25; }
.mes-chat-rec small { display:block; color:var(--mes-muted); font-size:12px; }
.mes-chat-rec em { font-style:normal; color:#2456c7; font-size:11px; font-weight:700; }
.mes-chat-more { display:inline-block; margin-top:8px; font-weight:700; font-size:14px; }
.mes-chat-contact { display:grid; gap:8px; }
.mes-chat-consent { font-size:11.5px; color:var(--mes-muted); line-height:1.4; display:flex; gap:8px; align-items:flex-start; }
.mes-chat-consent input { margin-top:2px; flex-shrink:0; }
body.mes-site .mes-chat-submit { background:var(--mes-coral) !important; color:#fff !important; border:0 !important; border-radius:12px; padding:13px; font:inherit; font-weight:700; cursor:pointer; }
body.mes-site .mes-chat-submit:disabled { opacity:.6; }
.mes-hp { position:absolute !important; left:-9999px !important; }
/* ---------- Cookie notice ---------- */
.mes-cookie { position:fixed; left:16px; right:16px; bottom:16px; max-width:760px; margin:0 auto; background:#fff; color:var(--mes-ink); border:1px solid var(--mes-line); border-radius:14px; box-shadow:0 10px 30px rgba(15,42,61,.2); padding:16px 18px; display:flex; gap:16px; align-items:center; justify-content:space-between; z-index:99999; font-size:14px; }
.mes-cookie[hidden] { display:none; }
.mes-cookie p { margin:0; }
.mes-cookie div { display:flex; gap:8px; flex-shrink:0; }
@media (max-width:600px) { .mes-cookie { flex-direction:column; align-items:stretch; } }
@media (min-width:900px) { .mes-cookie { left:22px; right:auto; margin:0; max-width:640px; } }

/* ---------- UI icons (SVG, replace emoji) ---------- */
.mes-ui { width:1em; height:1em; flex-shrink:0; vertical-align:-.125em; }
.mes-mi { display:inline-flex; align-items:center; gap:5px; }
.mes-mi .mes-ui { color:var(--mes-teal); width:15px; height:15px; }
.mes-ico { display:inline-flex; }
.mes-ico .mes-ui { width:19px; height:19px; color:var(--mes-teal); }
.mes-badge .mes-ui { width:12px; height:12px; margin-right:4px; }
.mes-city-pin { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:var(--mes-teal-soft); }
.mes-city-pin .mes-ui { width:18px; height:18px; color:var(--mes-teal); }
.mes-city-arrow .mes-ui { width:18px; height:18px; transition:transform .15s; }
body.mes-site .mes-city:hover .mes-city-arrow .mes-ui { transform:translateX(3px); }
.mes-hero-card-body small.mes-mi .mes-ui { width:13px; height:13px; }
.mes-thumb .mes-icon, .mes-trade-ico .mes-icon, .mes-profile-logo .mes-icon { filter:drop-shadow(0 2px 4px rgba(0,0,0,.18)); }
.mes-trade-ico { box-shadow:inset 0 0 0 1px rgba(255,255,255,.15), 0 6px 14px rgba(15,42,61,.18); }

/* Rotating headline: calm mode (reduce-motion) = fade only */
.mes-rotate-calm .mes-rotate-word { transition:opacity .3s ease; transform:none !important; }
.mes-rotate-calm .mes-rotate-word.is-out { opacity:0; }
.mes-rotate-calm .mes-rotate-word::after { animation:none; transform:scaleX(1); }

/* Hero headline: rotating trade sits on its own fixed line so nothing shifts */
.mes-home-hero .mes-h1-line { display:block; }
.mes-home-hero .mes-rotate { display:block; height:1.18em; white-space:nowrap; overflow:visible; }
.mes-home-hero .mes-rotate-word { white-space:nowrap; }

/* In-page jumps land below the sticky header (+ WP admin bar) */
body.mes-site [id] { scroll-margin-top:96px; }
body.mes-site.admin-bar [id] { scroll-margin-top:128px; }
/* Highlight the quote form when arriving from "Request quote" */
#quote.mes-flash { animation:mes-flash 1.6s ease-out 1; }
@keyframes mes-flash { 0% { box-shadow:0 0 0 0 rgba(255,107,74,.55); border-color:var(--mes-coral); } 70% { box-shadow:0 0 0 14px rgba(255,107,74,0); border-color:var(--mes-coral); } 100% { box-shadow:var(--mes-shadow); } }
@media (prefers-reduced-motion: reduce) { #quote.mes-flash { animation:none; border-color:var(--mes-coral); } }
/* Sticky sidebar must sit below the sticky header */
body.mes-site .mes-sticky, body.mes-site .mes-filters { top:96px; }
body.mes-site.admin-bar .mes-sticky, body.mes-site.admin-bar .mes-filters { top:128px; }
/* Keep the chat button above the cookie notice while it's showing (phones) */
@media (max-width:899px) { .mes-cookie:not([hidden]) ~ .mes-chat-launcher { bottom:170px; } }

/* Pricing: 4 plans */
.mes-plans-4 { grid-template-columns:repeat(4,1fr); }
@media (max-width:1100px) { .mes-plans-4 { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .mes-plans-4 { grid-template-columns:1fr; } }
.mes-plans-4 .mes-plan { padding:26px 22px; }
.mes-plans-4 .mes-price { font-size:40px; margin-bottom:6px; }
.mes-price-alt { color:var(--mes-teal); font-weight:700; font-size:14px; margin:0 0 16px; min-height:20px; }
.mes-plan .mes-btn { width:100%; }
.mes-plan-link { display:block; text-align:center; margin-top:10px; font-size:14px; font-weight:600; }
.mes-steps-list { margin:0 0 16px; padding-left:20px; display:grid; gap:8px; }

.mes-notice-hot { background:#fff4ef; border-color:#ffc9b8; color:#8a2d12; }

/* For Businesses: choose one form */
.mes-findme { background:#fff; border:1px solid var(--mes-line); border-radius:14px; padding:18px 20px; margin:0 0 18px; }
.mes-findme label { display:block; font-weight:600; margin-bottom:8px; }
.mes-findme div { display:flex; gap:8px; }
.mes-findme input { flex:1; padding:11px 12px; border:1.5px solid var(--mes-line); border-radius:10px; font:inherit; }
.mes-choice { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:0 0 18px; }
@media (max-width:640px) { .mes-choice { grid-template-columns:1fr; } }
body.mes-site .mes-choice-btn { text-align:left; background:#fff !important; color:var(--mes-ink) !important; border:2px solid var(--mes-line) !important; border-radius:14px; padding:18px 20px; cursor:pointer; font:inherit; display:flex; flex-direction:column; gap:4px; transition:border-color .15s, box-shadow .15s; }
body.mes-site .mes-choice-btn:hover { border-color:var(--mes-teal) !important; }
body.mes-site .mes-choice-btn.is-active { border-color:var(--mes-teal) !important; box-shadow:0 0 0 4px var(--mes-teal-soft); }
.mes-choice-btn strong { font-size:17px; }
.mes-choice-btn span { color:var(--mes-muted); font-size:14px; }
.mes-pane[hidden] { display:none; }

/* Reviews */
.mes-rating { display:inline-flex; align-items:center; gap:6px; }
.mes-rating strong { font-size:14px; color:var(--mes-ink); }
.mes-stars { display:inline-flex; letter-spacing:1px; font-size:15px; line-height:1; }
.mes-star-full { color:var(--mes-gold); }
.mes-star-half { background:linear-gradient(90deg,var(--mes-gold) 50%,#d5dbe1 50%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.mes-star-empty { color:#d5dbe1; }
.mes-profile-rating { margin-top:6px; }
body.mes-site .mes-profile-rating a { text-decoration:none; }
.mes-review { border-top:1px solid var(--mes-line); padding:14px 0; }
.mes-review:first-of-type { border-top:0; }
.mes-review-top { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:6px; }
.mes-review p { margin:0; }
.mes-verified-review { font-size:12px; font-weight:700; color:#0a8a6a; background:#e6f6f1; padding:2px 8px; border-radius:999px; white-space:nowrap; }
.mes-review-form input[readonly] { background:#f3f5f8; color:var(--mes-muted); }
.mes-review-form { margin-top:12px; }
.mes-review-form summary { list-style:none; display:inline-flex; cursor:pointer; }
.mes-review-form summary::-webkit-details-marker { display:none; }
.mes-review-form form { display:grid; gap:12px; margin-top:14px; }
.mes-review-form label { display:grid; gap:6px; font-weight:600; font-size:14px; }
.mes-review-form input[type=text], .mes-review-form input[type=email], .mes-review-form textarea { padding:11px 12px; border:1.5px solid var(--mes-line); border-radius:9px; font:inherit; font-weight:400; }
.mes-review-form textarea { min-height:110px; }
.mes-form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:600px) { .mes-form-row { grid-template-columns:1fr; } }
.mes-review-form .mes-check { display:flex; gap:8px; align-items:flex-start; font-weight:400; color:var(--mes-muted); }
.mes-rate { border:0; padding:0; margin:0; display:inline-flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px; }
.mes-rate legend { font-weight:600; font-size:14px; margin-bottom:6px; width:100%; }
.mes-rate input { position:absolute; opacity:0; width:1px; height:1px; }
.mes-rate label { font-size:30px; color:#d5dbe1; cursor:pointer; line-height:1; }
.mes-rate input:checked ~ label, .mes-rate label:hover, .mes-rate label:hover ~ label { color:var(--mes-gold); }

body.mes-site .mes-google-btn { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1.5px solid var(--mes-line); border-radius:10px; font-weight:600; font-size:14px; color:var(--mes-ink); text-decoration:none; background:#fff; }
body.mes-site .mes-google-btn:hover { border-color:#4285f4; color:var(--mes-ink); }
.mes-g { width:20px; height:20px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:13px; color:#fff; background:conic-gradient(#ea4335 0 25%, #fbbc05 0 50%, #34a853 0 75%, #4285f4 0); }

/* Header on phones/tablets: logo left, menu button right, one row */
@media (max-width:1024px) {
  [data-elementor-type="header"] .elementor-section > .elementor-container { flex-wrap:nowrap !important; align-items:center !important; }
  [data-elementor-type="header"] .elementor-column { width:auto !important; }
  [data-elementor-type="header"] .elementor-column:first-child { flex:1 1 auto !important; min-width:0; }
  [data-elementor-type="header"] .elementor-column:nth-child(2) { flex:0 0 auto !important; }
  [data-elementor-type="header"] .elementor-column:nth-child(3) { display:none !important; }
  [data-elementor-type="header"] .elementor-widget-wrap { padding:0 !important; }
  [data-elementor-type="header"] .elementor-section { padding-top:10px !important; padding-bottom:10px !important; }
}
@media (max-width:420px) {
  body.mes-site [data-elementor-type="header"] .mes-logo { font-size:16px; gap:8px; }
  [data-elementor-type="header"] .mes-logo-mark { width:30px; height:30px; font-size:15px; }
}
/* Promo buttons wrap neatly */
body.mes-site .mes-promo .mes-btn { margin:8px 8px 0 0; }
body.mes-site .mes-btn.mes-btn-ghost, body.mes-site a.mes-btn.mes-btn-ghost { margin-left:0; }

/* ---------- Mobile overflow fixes ---------- */
body.mes-site .mes-choice-btn, body.mes-site .mes-choice-btn * { white-space:normal !important; overflow-wrap:anywhere; }
body.mes-site .mes-choice-btn { width:100%; min-width:0; }
.mes-choice { grid-template-columns:repeat(2, minmax(0,1fr)); }
@media (max-width:640px) { .mes-choice { grid-template-columns:minmax(0,1fr); } }
.mes-profile-layout { grid-template-columns:minmax(0,1fr) 380px; }
@media (max-width:960px) { .mes-profile-layout { grid-template-columns:minmax(0,1fr); } }
.mes-profile-layout > *, .mes-dir-layout > *, .mes-grid-2 > *, .mes-grid-3 > *, .mes-plans > * { min-width:0; }
.mes-dir-layout { grid-template-columns:260px minmax(0,1fr); }
@media (max-width:900px) { .mes-dir-layout { grid-template-columns:minmax(0,1fr); } }
.mes-card, .mes-notice, .mes-listing, .mes-legal { overflow-wrap:anywhere; }
.mes-table { table-layout:auto; }
.mes-table td, .mes-table th { overflow-wrap:anywhere; }
.mes-profile-head { min-width:0; }
.mes-profile-title h1 { overflow-wrap:anywhere; }
body.mes-site .mes-form .gform_wrapper, body.mes-site .mes-form .gform_body { max-width:100%; }
/* Full-width sections without horizontal scroll on scrollbar browsers */
.mes-bleed { width:auto; left:auto; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
html, body.mes-site { overflow-x:clip; }
