/* ============================================================
   MEDIHIKE DESIGN SYSTEM - mirrors Lovable src/styles.css
   Colors converted from source OKLCH tokens (plan section 9).
   Utility classes are applied via Elementor "CSS Classes".
   ============================================================ */

:root {
  --mh-brand: #00b0e2;
  --mh-brand-soft: #b4e7fd;
  --mh-brand-deep: #0076a5;
  --mh-leaf: #3a8259;
  --mh-leaf-soft: #b8dbc3;
  --mh-ink: #0b151c;
  --mh-ink-soft: #505a61;
  --mh-surface: #ffffff;
  --mh-surface-2: #f4f9fb;
  --mh-bg: #fafdfe;
  --mh-secondary: #f0f6f8;
  --mh-border: #dde3e6;

  --mh-grad-brand: linear-gradient(115deg, #00b0e2 0%, #009fa0 48%, #3a8259 100%);
  --mh-grad-soft: linear-gradient(140deg, #eaf6fd 0%, #ffffff 55%, #eaf6ef 100%);
  --mh-grad-ink: linear-gradient(160deg, #0d1c27 0%, #030f17 100%);

  --mh-shadow-soft: 0 1px 2px rgba(11, 21, 28, 0.04), 0 12px 32px -12px rgba(11, 21, 28, 0.12);
  --mh-shadow-lift: 0 2px 4px rgba(11, 21, 28, 0.05), 0 28px 60px -24px rgba(11, 21, 28, 0.22);
  --mh-shadow-glow: 0 30px 90px -40px rgba(0, 176, 226, 0.55);

  --mh-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --mh-ease-spring: cubic-bezier(0.34, 1.4, 0.5, 1);
  --mh-font-display: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --mh-font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
  --mh-radius-card: 1.75rem;
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }
html.mh-lock { overflow: hidden; }
body {
  background-color: var(--mh-bg);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "cv02", "cv03", "ss01";
  overflow-x: hidden;
}
h1, h2, h3, h4 { letter-spacing: -0.035em; text-wrap: balance; }
::selection { background: rgba(0, 176, 226, 0.22); }
[id] { scroll-margin-top: 96px; }
:focus-visible { outline: 2px solid var(--mh-brand); outline-offset: 2px; border-radius: 4px; }

/* ---------- utilities ---------- */
/* Headings: neutralize Elementor's global-primary default title color (kit CSS loads last).
   Specialized rules below (.mh-num-stroke, .mh-on-dark, .mh-price-feat, .text-gradient) also
   use !important and are defined LATER in this file, so they still win. */
.elementor-widget-heading .elementor-heading-title { color: var(--mh-ink) !important; }
.section-pad { padding-block: clamp(4.5rem, 9vw, 9rem); }
.eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--mh-font-display);
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--mh-brand-deep);
}
.eyebrow-light { color: var(--mh-brand-soft); }
.hairline { border: 1px solid rgba(221, 227, 230, 0.9); }
.text-gradient, .text-gradient > .elementor-heading-title { color: transparent !important; }
.text-gradient .mh-grad, .mh-grad {
  background-image: var(--mh-grad-brand);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.bg-brand-gradient { background-image: var(--mh-grad-brand); }
.bg-soft-gradient { background-image: var(--mh-grad-soft); }
.bg-ink-gradient { background-image: var(--mh-grad-ink); }
.shadow-soft { box-shadow: var(--mh-shadow-soft); }
.shadow-lift { box-shadow: var(--mh-shadow-lift); }
.shadow-glow { box-shadow: var(--mh-shadow-glow); }
.glass {
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(221, 227, 230, 0.8);
}
.glass-dark {
  background: rgba(13, 28, 39, 0.5);
  -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.mh-card { background: var(--mh-surface); border-radius: var(--mh-radius-card); }
.mh-pill { border-radius: 9999px; }

/* outlined ghost numbers (services/difference cards) */
.mh-num-stroke, .mh-num-stroke .elementor-heading-title {
  color: transparent !important;
  -webkit-text-stroke: 1.5px rgba(0, 176, 226, 0.45);
  font-family: var(--mh-font-display);
}

/* ---------- motion ---------- */
.reveal { opacity: 0; transform: translate3d(0, 22px, 0);
  transition: opacity 0.85s var(--mh-ease), transform 0.85s var(--mh-ease);
  transition-delay: var(--reveal-delay, 0ms); will-change: transform, opacity; }
.reveal.is-revealed { opacity: 1; transform: none; will-change: auto; }
.rd-1 { --reveal-delay: 80ms; } .rd-2 { --reveal-delay: 160ms; } .rd-3 { --reveal-delay: 240ms; }
.rd-4 { --reveal-delay: 320ms; } .rd-5 { --reveal-delay: 420ms; } .rd-6 { --reveal-delay: 520ms; }
html.no-js .reveal, html:not(.mh-js) .reveal { opacity: 1; transform: none; }

.lift { transition: transform 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease), border-color 0.5s var(--mh-ease); }
.lift:hover { transform: translateY(-6px); box-shadow: var(--mh-shadow-lift); }

.img-zoom img { transition: transform 1.2s var(--mh-ease); }
.img-zoom:hover img { transform: scale(1.05); }

@keyframes mh-drift { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -14px, 0); } }
.animate-drift { animation: mh-drift 7s var(--mh-ease) infinite; }
.drift-late { animation-delay: 1.6s; }

@keyframes mh-pan { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
.animate-gradient-pan { background-size: 220% 220%; animation: mh-pan 14s ease-in-out infinite; }

@keyframes mh-pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(58, 130, 89, 0.4); }
  70% { box-shadow: 0 0 0 14px rgba(58, 130, 89, 0); }
  100% { box-shadow: 0 0 0 0 rgba(58, 130, 89, 0); }
}
.animate-pulse-ring { animation: mh-pulse-ring 2.6s ease-out infinite; }

/* decorative blur blobs */
.mh-blob { position: absolute; pointer-events: none; border-radius: 9999px; filter: blur(64px); z-index: 0; }

/* ---------- buttons (applied to Elementor Button widget wrapper) ---------- */
.mh-btn .elementor-button {
  border-radius: 9999px; font-family: var(--mh-font-sans); font-weight: 500; letter-spacing: -0.01em;
  transition: transform 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease), background-color 0.5s var(--mh-ease), color 0.5s var(--mh-ease), border-color 0.5s var(--mh-ease);
}
.mh-btn .elementor-button:active { transform: scale(0.985); }
.mh-btn-md .elementor-button { height: 2.75rem; padding: 0 1.25rem; font-size: 0.875rem; display: inline-flex; align-items: center; }
.mh-btn-lg .elementor-button { height: 3.25rem; padding: 0 1.75rem; font-size: 0.95rem; display: inline-flex; align-items: center; }
.mh-btn-primary .elementor-button { background-color: transparent !important; background-image: var(--mh-grad-brand) !important; color: #fff !important; box-shadow: var(--mh-shadow-glow); border: none !important; }
.mh-btn-primary .elementor-button:hover { transform: translateY(-2px); box-shadow: var(--mh-shadow-lift); color: #fff !important; }
.mh-btn-ghost .elementor-button {
  background-color: rgba(255, 255, 255, 0.7) !important; background-image: none !important; color: var(--mh-ink) !important;
  border: 1px solid rgba(221, 227, 230, 0.9) !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.mh-btn-ghost .elementor-button:hover { transform: translateY(-2px); border-color: rgba(0, 176, 226, 0.5) !important; color: var(--mh-brand-deep) !important; background-color: rgba(255, 255, 255, 0.7) !important; }
.mh-btn-light .elementor-button { background-color: #fff !important; background-image: none !important; color: var(--mh-brand-deep) !important; box-shadow: var(--mh-shadow-soft); border: none !important; }
.mh-btn-light .elementor-button:hover { transform: translateY(-2px); box-shadow: var(--mh-shadow-lift); background-color: #fff !important; color: var(--mh-brand-deep) !important; }
.mh-btn-outline-light .elementor-button { background-color: transparent !important; background-image: none !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.35) !important; }
.mh-btn-outline-light .elementor-button:hover { transform: translateY(-2px); background-color: rgba(255, 255, 255, 0.1) !important; color: #fff !important; }

/* ---------- logo ---------- */
.mh-logo { display: inline-flex; align-items: center; gap: 0.625rem; text-decoration: none; }
.mh-logo-mark {
  display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 0.75rem;
  background-image: var(--mh-grad-brand); box-shadow: var(--mh-shadow-glow);
  color: #fff; transition: transform 0.5s var(--mh-ease-spring);
}
.mh-logo:hover .mh-logo-mark { transform: scale(1.05); }
.mh-logo-mark svg { width: 1.125rem; height: 1.125rem; }
.mh-logo-word { font-family: var(--mh-font-display); font-size: 1.05rem; font-weight: 800; letter-spacing: -0.02em; color: var(--mh-ink); }
.mh-logo-grad { background-image: var(--mh-grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mh-logo-light .mh-logo-word { color: #fff; }

/* ---------- header ---------- */
.mh-header { position: fixed; inset-inline: 0; top: 0; z-index: 50; border-bottom: 1px solid transparent;
  transition: background-color 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease), border-color 0.5s var(--mh-ease); }
.mh-header .mh-header-row { transition: min-height 0.5s var(--mh-ease); min-height: 5rem; }
.mh-header.mh-scrolled { background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  border-bottom-color: rgba(221, 227, 230, 0.8); box-shadow: var(--mh-shadow-soft); }
.mh-header.mh-scrolled .mh-header-row { min-height: 4rem; }
body { padding-top: 0; } /* hero sections carry their own top padding (fixed header overlays) */

/* nav */
.mh-nav .mh-menu { display: flex; align-items: center; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.mh-nav .mh-menu > li { position: relative; }
.mh-nav .mh-menu > li > a {
  display: flex; align-items: center; gap: 0.25rem; padding: 0.5rem 0.875rem; border-radius: 9999px;
  font-size: 0.86rem; font-weight: 500; color: var(--mh-ink-soft); text-decoration: none; transition: color 0.3s ease;
}
.mh-nav .mh-menu > li > a:hover { color: var(--mh-ink); }
.mh-nav .mh-menu > li.menu-item-has-children > a::after {
  content: ""; width: 0.55rem; height: 0.55rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px); transition: transform 0.3s ease; margin-left: 0.15rem;
}
.mh-nav .mh-menu > li.menu-item-has-children:hover > a::after { transform: rotate(225deg) translateY(-1px); }
.mh-nav .sub-menu {
  position: absolute; left: 0; top: 100%; width: 15rem; padding: 0.5rem; margin: 0; list-style: none;
  background: rgba(255, 255, 255, 0.9); -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(221, 227, 230, 0.8); border-radius: 1rem; box-shadow: var(--mh-shadow-lift);
  opacity: 0; transform: translateY(4px); pointer-events: none; transition: opacity 0.3s var(--mh-ease), transform 0.3s var(--mh-ease);
}
.mh-nav li:hover > .sub-menu, .mh-nav li:focus-within > .sub-menu { opacity: 1; transform: none; pointer-events: auto; }
.mh-nav .sub-menu a {
  display: block; padding: 0.625rem 0.75rem; border-radius: 0.75rem; font-size: 0.86rem; font-weight: 500;
  color: var(--mh-ink-soft); text-decoration: none; transition: background-color 0.3s, color 0.3s;
}
.mh-nav .sub-menu a:hover { background: rgba(0, 176, 226, 0.08); color: var(--mh-brand-deep); }

/* header phone link */
.mh-phone a { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.86rem; font-weight: 500; color: var(--mh-ink-soft) !important; text-decoration: none; transition: color 0.3s; }
.mh-phone a:hover { color: var(--mh-brand-deep) !important; }
/* header row: size children to content (Elementor widgets default to width:100%; boxed container nests them in .e-con-inner) */
.mh-header-row > .e-con-inner { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; }
.mh-header-row > .e-con-inner > .elementor-element,
.mh-header-row > .elementor-element { width: auto !important; max-width: none; flex: 0 0 auto; min-width: 0; }

/* burger */
.mh-burger {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.7) !important; border: 1px solid rgba(221, 227, 230, 0.9) !important;
  color: var(--mh-ink) !important; padding: 0 !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); cursor: pointer; transition: border-color 0.3s;
}
.mh-burger:hover { border-color: rgba(0, 176, 226, 0.5) !important; background: rgba(255, 255, 255, 0.7) !important; }
.mh-burger span { position: relative; display: block; width: 1.1rem; height: 2px; background: var(--mh-ink); border-radius: 2px; transition: background 0.2s; }
.mh-burger span::before, .mh-burger span::after {
  content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: var(--mh-ink); border-radius: 2px; transition: transform 0.3s var(--mh-ease), top 0.3s var(--mh-ease);
}
.mh-burger span::before { top: -6px; } .mh-burger span::after { top: 6px; }
.mh-burger.open span { background: transparent; }
.mh-burger.open span::before { top: 0; transform: rotate(45deg); }
.mh-burger.open span::after { top: 0; transform: rotate(-45deg); }

/* mobile drawer */
.mh-drawer {
  position: fixed !important; inset-inline: 0; top: 4.5rem; z-index: 49; padding: 0 1rem;
  opacity: 0; transform: translateY(-12px); pointer-events: none;
  transition: opacity 0.5s var(--mh-ease), transform 0.5s var(--mh-ease);
}
.mh-drawer.open { opacity: 1; transform: none; pointer-events: auto; }
.mh-drawer-panel {
  background: rgba(255, 255, 255, 0.98) !important; -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(221, 227, 230, 0.8); border-radius: 1.5rem; box-shadow: var(--mh-shadow-lift);
  padding: 1rem !important; max-height: calc(100vh - 6rem); overflow: auto !important;
}
.mh-drawer .mh-menu { display: block; list-style: none !important; margin: 0; padding: 0; }
.mh-drawer .mh-menu li { list-style: none !important; }
.mh-drawer .mh-menu > li { border-bottom: 1px solid rgba(221, 227, 230, 0.6); padding: 0.875rem 0; }
.mh-drawer .mh-menu > li:last-child { border-bottom: 0; }
.mh-drawer .mh-menu > li > a { font-family: var(--mh-font-display); font-size: 1.125rem; font-weight: 600; letter-spacing: -0.02em; color: var(--mh-ink); text-decoration: none; }
.mh-drawer .sub-menu { list-style: none; margin: 0.5rem 0 0; padding: 0 0 0 0.75rem; position: static; opacity: 1; transform: none; pointer-events: auto; background: none; border: 0; box-shadow: none; width: auto; }
.mh-drawer .sub-menu a { display: block; padding: 0.375rem 0; font-size: 0.9rem; color: var(--mh-ink-soft); text-decoration: none; }
.mh-drawer .sub-menu a:hover { color: var(--mh-brand-deep); }
@media (min-width: 1025px) { .mh-drawer, .mh-burger { display: none !important; } }

/* ---------- carousel (scroll-snap) ---------- */
.mh-carousel { position: relative; }
.mh-track {
  display: flex !important; flex-wrap: nowrap !important; gap: 1.5rem; overflow-x: auto !important; overflow-y: hidden !important;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
  scrollbar-width: none; padding-bottom: 2px;
}
.mh-track::-webkit-scrollbar { display: none; }
.mh-track { padding-inline: 0 !important; }
/* single source of truth for page gutters (kit container padding is zeroed) */
.e-con-boxed.e-parent > .e-con-inner { padding-inline: 2rem; }
@media (max-width: 767px) { .e-con-boxed.e-parent > .e-con-inner { padding-inline: 1.25rem; } }
.mh-track > * { flex: 0 0 100% !important; max-width: 100%; scroll-snap-align: start; }
@media (min-width: 1025px) {
  .mh-track-peek > * { flex: 0 0 78% !important; max-width: 78%; }
}
.mh-arrow {
  display: grid !important; place-items: center; width: 3rem !important; height: 3rem !important; border-radius: 9999px !important; cursor: pointer;
  border: 1px solid rgba(221, 227, 230, 0.9) !important; background: transparent !important; color: var(--mh-ink) !important;
  padding: 0 !important; min-width: 0 !important; box-shadow: none !important; line-height: 1 !important;
  transition: transform 0.5s var(--mh-ease), background-color 0.3s;
}
.mh-arrow:hover { background: rgba(0, 176, 226, 0.08) !important; }
.mh-arrow-dark { border-color: rgba(255, 255, 255, 0.25) !important; color: #fff !important; }
.mh-arrow-dark:hover { background: rgba(255, 255, 255, 0.1) !important; }
.mh-arrow svg { width: 1.1rem; height: 1.1rem; }
.mh-dots { display: flex; gap: 0.5rem; align-items: center; }
.mh-dot { height: 0.375rem; width: 1rem; border-radius: 9999px; border: 0 !important; outline: none; cursor: pointer; background: rgba(221, 227, 230, 1) !important; background-image: none !important; transition: all 0.5s var(--mh-ease); padding: 0; box-shadow: none; }
.mh-dots-dark .mh-dot { background: rgba(255, 255, 255, 0.25) !important; }
.mh-dot.active { width: 2.5rem; background-image: var(--mh-grad-brand) !important; }

/* ---------- CF7 form ---------- */
.mh-form label { display: block; font-size: 0.78rem; font-weight: 600; margin-bottom: 0.375rem; color: var(--mh-ink); }
.mh-form .wpcf7-form-control-wrap { display: block; }
.mh-form input:not([type="submit"]), .mh-form select, .mh-form textarea {
  width: 100%; height: 3rem; border-radius: 0.75rem; border: 1px solid var(--mh-border);
  background: #fff; padding: 0 1rem; font-size: 0.92rem; color: var(--mh-ink); font-family: var(--mh-font-sans);
  transition: border-color 0.4s var(--mh-ease), box-shadow 0.4s var(--mh-ease); outline: none;
}
.mh-form textarea { height: auto; padding: 0.75rem 1rem; resize: none; }
.mh-form input:focus, .mh-form select:focus, .mh-form textarea:focus { border-color: var(--mh-brand); box-shadow: 0 0 0 4px rgba(0, 176, 226, 0.12); }
.mh-form ::placeholder { color: rgba(80, 90, 97, 0.7); }
.mh-form .mh-form-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; margin-top: 1.75rem; }
.mh-form .mh-span-2 { grid-column: span 2; }
@media (max-width: 640px) { .mh-form .mh-form-grid { grid-template-columns: 1fr; } .mh-form .mh-span-2 { grid-column: span 1; } }
.mh-form input[type="submit"] {
  width: 100%; height: 3.25rem; margin-top: 1.75rem; border: 0; border-radius: 9999px; cursor: pointer;
  background-image: var(--mh-grad-brand); color: #fff; font-size: 0.95rem; font-weight: 500; font-family: var(--mh-font-sans);
  box-shadow: var(--mh-shadow-glow); transition: transform 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease);
}
.mh-form input[type="submit"]:hover { transform: translateY(-2px); box-shadow: var(--mh-shadow-lift); }
.mh-form .wpcf7-not-valid-tip { font-size: 0.75rem; color: #c81e2b; margin-top: 0.25rem; }
.mh-form .wpcf7-response-output { border-radius: 0.75rem; margin: 1rem 0 0; padding: 0.75rem 1rem; font-size: 0.85rem; }
.mh-form form.sent .wpcf7-response-output { border-color: var(--mh-leaf); color: var(--mh-leaf); }
.mh-hp { position: absolute !important; left: -9999px !important; height: 1px; width: 1px; overflow: hidden; }

/* ---------- decorative micro-elements ---------- */
.mh-bars { display: flex; height: 3rem; align-items: flex-end; gap: 0.375rem; margin-top: 0.75rem; }
.mh-bars span { flex: 1; border-radius: 9999px; background-image: var(--mh-grad-brand); height: 8%; transition: height 1s var(--mh-ease); }
.is-revealed .mh-bars span, .mh-bars.is-revealed span { height: var(--h, 50%); }
.mh-bars span:nth-child(1) { transition-delay: 0ms; } .mh-bars span:nth-child(2) { transition-delay: 70ms; }
.mh-bars span:nth-child(3) { transition-delay: 140ms; } .mh-bars span:nth-child(4) { transition-delay: 210ms; }
.mh-bars span:nth-child(5) { transition-delay: 280ms; } .mh-bars span:nth-child(6) { transition-delay: 350ms; }
.mh-bars span:nth-child(7) { transition-delay: 420ms; } .mh-bars span:nth-child(8) { transition-delay: 490ms; }

/* flow pills (hero) */
.mh-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 0.75rem; }
.mh-flow .pill {
  border: 1px solid rgba(221, 227, 230, 0.9); border-radius: 9999px; background: rgba(255, 255, 255, 0.7);
  padding: 0.375rem 0.875rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-ink-soft);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.mh-flow .line { height: 1px; width: 1.5rem; background: linear-gradient(90deg, var(--mh-brand), var(--mh-leaf)); }

/* tag pills over images (about) */
.mh-tags { position: absolute; inset-inline: 0; bottom: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 1.25rem; }
.mh-tags span {
  border: 1px solid rgba(255, 255, 255, 0.25); background: rgba(255, 255, 255, 0.1); color: #fff;
  border-radius: 9999px; padding: 0.25rem 0.625rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  opacity: 0; transform: translateY(8px); transition: all 0.5s var(--mh-ease);
}
.mh-tagcard:hover .mh-tags span { opacity: 1; transform: none; }
@media (hover: none) { .mh-tags span { opacity: 1; transform: none; } }

/* Florida map draw-in */
.mh-map { overflow: visible !important; }
.mh-map path.mh-outline { stroke-dasharray: 2600; stroke-dashoffset: 2600; transition: stroke-dashoffset 2.4s var(--mh-ease); }
.is-revealed .mh-map path.mh-outline { stroke-dashoffset: 0; }
.mh-map g.city { opacity: 0; transition: opacity 0.7s var(--mh-ease); }
.is-revealed .mh-map g.city { opacity: 1; }
.mh-map g.city:nth-of-type(1) { transition-delay: 0.4s; } .mh-map g.city:nth-of-type(2) { transition-delay: 0.52s; }
.mh-map g.city:nth-of-type(3) { transition-delay: 0.64s; } .mh-map g.city:nth-of-type(4) { transition-delay: 0.76s; }
.mh-map g.city:nth-of-type(5) { transition-delay: 0.88s; } .mh-map g.city:nth-of-type(6) { transition-delay: 1.0s; }
.mh-map g.city:nth-of-type(7) { transition-delay: 1.12s; } .mh-map g.city:nth-of-type(8) { transition-delay: 1.24s; }
.mh-map g.city:nth-of-type(9) { transition-delay: 1.36s; }

/* timeline (how-it-works simplified) */
.mh-tl-line { position: relative; height: 1px; background: var(--mh-border); }
.mh-tl-line::after { content: ""; position: absolute; inset: 0; background-image: var(--mh-grad-brand); transform-origin: left; transform: scaleX(0); transition: transform 1.6s var(--mh-ease) 0.3s; }
.is-revealed .mh-tl-line::after, .mh-tl-line.is-revealed::after { transform: scaleX(1); }
.mh-step-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 9999px; background-image: var(--mh-grad-brand); color: #fff; box-shadow: var(--mh-shadow-glow); }

/* footer link styling */
.mh-footer-nav .mh-menu { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.mh-footer-nav .mh-menu a { font-size: 0.9rem; color: var(--mh-ink-soft); text-decoration: none; transition: color 0.3s; }
.mh-footer-nav .mh-menu a:hover { color: var(--mh-brand-deep); }

/* accordion polish (Elementor accordion on dental FAQ) */
.mh-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--mh-border) !important; }
.mh-faq .elementor-tab-title { padding: 1.5rem 0.25rem !important; font-family: var(--mh-font-display); font-weight: 600; letter-spacing: -0.02em; font-size: 1.05rem; }
.mh-faq .elementor-tab-title, .mh-faq .elementor-tab-title a, .mh-faq .elementor-tab-title.elementor-active, .mh-faq .elementor-tab-title.elementor-active a { color: var(--mh-ink) !important; }
.mh-faq .elementor-tab-title:hover, .mh-faq .elementor-tab-title:hover a { color: var(--mh-brand-deep) !important; }
.mh-faq .elementor-accordion-icon { color: var(--mh-ink-soft) !important; }
.mh-faq .elementor-tab-title.elementor-active .elementor-accordion-icon { color: var(--mh-brand-deep) !important; }
.mh-faq .elementor-tab-content { padding: 0 0.25rem 1.75rem !important; border: 0 !important; color: var(--mh-ink-soft); max-width: 42rem; }

/* ---------- shared text/content helpers ---------- */
.mh-lead p, .mh-lead { color: var(--mh-ink-soft); font-size: 1.02rem; line-height: 1.625; }
.mh-lead-dark p, .mh-lead-dark { color: rgba(255, 255, 255, 0.7); }
.mh-on-dark .elementor-heading-title, .mh-on-dark { color: #fff !important; }
.mh-small p, .mh-small { font-size: 0.9rem; line-height: 1.6; }
.mh-small-muted p, .mh-small-muted { font-size: 0.8rem; color: var(--mh-ink-soft); }
.mh-fine p, .mh-fine { font-size: 0.75rem; line-height: 1.6; color: var(--mh-ink-soft); }
.mh-badge {
  display: inline-flex; align-items: center; gap: 0.5rem; width: fit-content;
  border: 1px solid rgba(221, 227, 230, 0.9); border-radius: 9999px; background: rgba(255, 255, 255, 0.7);
  padding: 0.375rem 0.875rem; font-size: 0.75rem; font-weight: 500; color: var(--mh-ink-soft);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.mh-badge svg { color: var(--mh-brand); }
.mh-i-sm { width: 0.875rem; height: 0.875rem; } .mh-i-md { width: 1.125rem; height: 1.125rem; } .mh-i-lg { width: 1.375rem; height: 1.375rem; }
.mh-chip {
  display: inline-block; border: 1px solid rgba(221, 227, 230, 0.9); border-radius: 9999px;
  background: rgba(240, 246, 248, 0.7); padding: 0.25rem 0.75rem; font-size: 0.72rem; font-weight: 500; color: var(--mh-ink-soft);
}
.mh-plate { display: grid; place-items: center; flex-shrink: 0; border-radius: 0.75rem; }
.mh-plate-sm { width: 2.25rem; height: 2.25rem; } .mh-plate-md { width: 2.75rem; height: 2.75rem; } .mh-plate-lg { width: 3rem; height: 3rem; border-radius: 1rem; }
.mh-plate-grad { background-image: var(--mh-grad-brand); color: #fff; }
.mh-plate-sec { background: var(--mh-secondary); color: var(--mh-brand-deep); }
.mh-plate-leaf { background: rgba(58, 130, 89, 0.12); color: var(--mh-leaf); }
.mh-btn-block { width: 100%; } .mh-btn-block .elementor-button { width: 100%; }
.mh-phone-link { display: inline-flex; align-items: center; gap: 0.5rem; }
.mh-footer-wrap { border-top: 1px solid var(--mh-border); padding-bottom: 2.5rem !important; }
.mh-legal { border-top: 1px solid var(--mh-border); margin-top: 3rem !important; padding-top: 1.5rem; }
.mh-legal-links a { margin-left: 1.5rem; color: var(--mh-ink-soft) !important; text-decoration: none; }
.mh-legal-links a:first-child { margin-left: 0; }
.mh-legal-links a:hover { color: var(--mh-brand-deep) !important; }
.mh-footer-contact a { display: block; font-weight: 500; font-size: 0.9rem; color: var(--mh-ink) !important; text-decoration: none; margin-bottom: 0.5rem; }
.mh-footer-contact a:hover { color: var(--mh-brand-deep) !important; }
.mh-footer-contact span { color: var(--mh-ink-soft); font-size: 0.9rem; }

/* ---------- responsive grid helpers (source used CSS grid; applied to Elementor containers) ---------- */
.mh-grid-2, .mh-grid-3, .mh-grid-3-lg, .mh-grid-4, .mh-split, .mh-grid-footer, .mh-split-case { display: grid !important; gap: 1.5rem !important; }
.mh-split-case { grid-template-columns: minmax(0, 1fr); gap: 0 !important; }
.mh-split-case > * { min-width: 0; }
@media (min-width: 1025px) { .mh-split-case { grid-template-columns: 0.9fr 1.1fr !important; } }
.mh-grid-2 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .mh-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mh-grid-2-lg { display: grid !important; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1025px) { .mh-grid-2-lg { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mh-grid-3 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .mh-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mh-grid-3-lg { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1025px) { .mh-grid-3-lg { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; } }
.mh-grid-4 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .mh-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1025px) { .mh-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.mh-grid-5 { display: grid !important; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .mh-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* 2-col splits */
.mh-split { grid-template-columns: minmax(0, 1fr); gap: 3rem; }
@media (min-width: 1025px) {
  .mh-split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3.5rem; align-items: center; }
  .mh-split-hero { grid-template-columns: 1.05fr 0.95fr; }
  .mh-split-rev { grid-template-columns: 0.95fr 1.05fr; }
  .mh-split-svc { grid-template-columns: 0.85fr 1.15fr; gap: 4rem; align-items: start; }
  .mh-split-contact { grid-template-columns: 1fr 1.05fr; gap: 4rem; align-items: start; }
  .mh-split-faq { grid-template-columns: 0.8fr 1.2fr; gap: 4rem; align-items: start; }
  .mh-split-case { grid-template-columns: 0.9fr 1.1fr; align-items: stretch; gap: 0; }
  .mh-split-txt { grid-template-columns: 0.95fr 1.05fr; align-items: start; gap: 4rem; }
}
.mh-price-grid { display: grid !important; gap: 1.5rem !important; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 768px) { .mh-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (min-width: 1280px) { .mh-price-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
@media (min-width: 1280px) { .mh-price-grid .mh-price-feat { margin-top: -1rem !important; } }
@media (max-width: 1279px) { .mh-price-grid .mh-price-feat { margin-top: 0 !important; } }
.mh-grid-footer { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
@media (min-width: 768px) { .mh-grid-footer { grid-template-columns: 1.2fr 1fr 1fr; } }
/* sticky helpers */
@media (min-width: 1025px) { .mh-sticky { position: sticky !important; top: 7rem; align-self: start; } .lg-only { display: flex; } }
@media (max-width: 1024px) { .lg-only { display: none !important; } }
@media (max-width: 639px) { .sm-hide { display: none !important; } }
/* absolute-positioned floating cards */
.mh-abs { position: absolute !important; z-index: 3; }
.mh-rel { position: relative !important; }

/* ---------- section-specific (page builds) ---------- */
.mh-hero-sec { padding-top: 7rem !important; padding-bottom: 3rem !important; overflow: hidden !important; position: relative; }
@media (min-width: 768px) { .mh-hero-sec { padding-top: 9rem !important; padding-bottom: 4rem !important; } }
.mh-h1 .elementor-heading-title { font-size: 2.3rem; line-height: 0.98; font-weight: 800; }
@media (min-width: 640px) { .mh-h1 .elementor-heading-title { font-size: 3.2rem; } }
@media (min-width: 1025px) { .mh-h1 .elementor-heading-title { font-size: 3.7rem; } }
.mh-hero-img { border-radius: 2rem; overflow: hidden; box-shadow: var(--mh-shadow-lift); position: relative; }
@media (min-width: 640px) { .mh-hero-img { border-radius: 2.5rem; } }
.mh-hero-img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
@media (min-width: 640px) { .mh-hero-img img { aspect-ratio: 1 / 1; } }
.mh-hero-img::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 45%, rgba(11, 21, 28, 0.55) 100%); }
.mh-float { position: absolute !important; z-index: 3; border-radius: 1rem; padding: 0.875rem; box-shadow: var(--mh-shadow-lift); }
.mh-float-a { top: -1rem; left: -0.5rem; width: 15.5rem !important; max-width: 15.5rem; }
.mh-float-b { right: -0.5rem; bottom: 1.5rem; top: auto !important; left: auto !important; width: 16.5rem !important; max-width: 16.5rem; padding: 1rem !important; }
/* HTML-widget floats anchor to the visual column, not their zero-height wrapper */
.mh-rel > .elementor-widget-html { position: static !important; }
@media (min-width: 640px) { .mh-float-a { left: -2rem; } .mh-float-b { right: -2rem; } }
.mh-float .t1 { font-size: 0.82rem; font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mh-float .t2 { font-size: 0.72rem; color: var(--mh-ink-soft); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mh-float .label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-ink-soft); margin: 0; display: flex; justify-content: space-between; align-items: center; }
.mh-float .label svg { color: var(--mh-leaf); width: 1rem; height: 1rem; }
.mh-float-b .elementor-counter { text-align: left; }
.mh-float-b .elementor-counter-number-wrapper { justify-content: flex-start; font-family: var(--mh-font-display); font-size: 1.875rem; font-weight: 800; letter-spacing: -0.02em; color: var(--mh-ink); }
.mh-card-row { display: flex; align-items: center; gap: 0.75rem; }
.mh-glow-blob { position: absolute; top: -10rem; right: -6rem; width: 38rem; height: 38rem; border-radius: 9999px; opacity: 0.6; filter: blur(64px); pointer-events: none; z-index: 0;
  background-image: radial-gradient(circle at 30% 30%, rgba(0, 176, 226, 0.35), transparent 62%), radial-gradient(circle at 70% 70%, rgba(58, 130, 89, 0.28), transparent 60%); }
/* generic paddings/radii */
.mh-p6 { padding: 1.5rem !important; } .mh-p7 { padding: 1.75rem !important; } .mh-p8 { padding: 1.75rem !important; }
@media (min-width: 640px) { .mh-p8 { padding: 2rem !important; } }
.mh-r24 { border-radius: 1.5rem !important; overflow: hidden; } .mh-r28 { border-radius: 1.75rem !important; } .mh-r32 { border-radius: 2rem !important; }
/* services section */
.mh-panel { border-radius: 2rem; padding: 2rem; position: relative; overflow: hidden; }
.mh-panel-img { border-radius: 1.4rem; overflow: hidden; margin-bottom: 1.5rem; position: relative; }
.mh-panel-img img { height: 14rem; width: 100%; object-fit: cover; display: block; }
.mh-panel-num .elementor-heading-title { font-size: 3.75rem; font-weight: 800; }
.mh-metric-box { border: 1px solid rgba(221, 227, 230, 0.9); border-radius: 1rem; background: rgba(240, 246, 248, 0.6); padding: 1rem; margin-top: 1.5rem; }
.mh-metric-box .m { font-family: var(--mh-font-display); font-size: 1.5rem; font-weight: 800; margin: 0; }
.mh-metric-box .l { font-size: 0.78rem; color: var(--mh-ink-soft); margin: 0.125rem 0 0; }
.mh-svc-card { border-radius: 1.75rem; padding: 1.5rem !important; display: flex !important; gap: 1.25rem !important; flex-direction: column !important; }
@media (min-width: 640px) { .mh-svc-card { padding: 2rem !important; flex-direction: row !important; align-items: flex-start; } }
/* size the Elementor flex children (widget wrappers), not just the inner divs */
.mh-svc-card > .elementor-widget-html { flex: 0 0 10rem; width: 10rem; min-width: 0; }
.mh-svc-card > .e-con { flex: 1 1 0%; min-width: 0; }
.mh-svc-img { border-radius: 1rem; overflow: hidden; position: relative; }
.mh-svc-img img { height: 10rem; width: 100%; object-fit: cover; display: block; }
@media (max-width: 639px) { .mh-svc-card > .elementor-widget-html { flex-basis: auto; width: 100%; } .mh-svc-img img { height: 11rem; } }
.mh-svc-icon { position: absolute; bottom: 0.5rem; left: 0.5rem; }
.mh-num-label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.18em; color: var(--mh-ink-soft); margin: 0 0 0.25rem; }
.mh-accent-bar { position: relative; }
.mh-accent-bar::before { content: ""; position: absolute; inset-block: 0; left: 0; width: 3px; background-image: var(--mh-grad-brand); border-radius: 3px; transform: scaleY(0); transform-origin: top; transition: transform 0.7s var(--mh-ease); }
.mh-accent-bar:hover::before, .mh-accent-bar.active::before { transform: scaleY(1); }
/* case studies (dark) */
.mh-case-slide { border-radius: 2rem; overflow: hidden; }
.mh-case-img { position: relative; height: 100%; }
.mh-case-img img { width: 100%; height: 14rem; object-fit: cover; display: block; }
@media (min-width: 1025px) { .mh-case-img img { height: 100%; min-height: 26rem; } }
.mh-case-num { position: absolute; top: 1rem; left: 1rem; border-radius: 9999px; background: rgba(250, 253, 254, 0.85); padding: 0.25rem 0.75rem; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-ink); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.mh-case-content { padding: 1.75rem; }
@media (min-width: 640px) { .mh-case-content { padding: 2.25rem; } }
.mh-case-content .k { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); margin: 1.25rem 0 0.375rem; }
.mh-case-content .v { font-size: 0.95rem; line-height: 1.6; color: rgba(255, 255, 255, 0.85); margin: 0; }
.mh-case-content .practice { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mh-brand-soft); margin: 0; }
.mh-result-box { border: 1px solid rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.05); border-radius: 1rem; padding: 1.25rem; margin-top: 1.75rem; }
.mh-result-box .k { margin-top: 0; }
.mh-result-box .r { font-family: var(--mh-font-display); font-size: 1.125rem; line-height: 1.35; font-weight: 700; color: #fff; margin: 0.5rem 0 0; }
@media (min-width: 640px) { .mh-result-box .r { font-size: 1.25rem; } }
/* pricing */
.mh-price-card { border-radius: 1.9rem; }
.mh-price-feat { border-radius: 1.9rem; color: #fff; position: relative; overflow: hidden; }
@media (min-width: 1025px) { .mh-price-feat { margin-top: -1rem !important; padding-bottom: 3rem !important; } }
.mh-price-feat h3, .mh-price-feat .elementor-heading-title { color: #fff !important; }
.mh-price .amount { font-family: var(--mh-font-display); font-size: 1.875rem; font-weight: 800; letter-spacing: -0.02em; }
@media (min-width: 640px) { .mh-price .amount { font-size: 2.25rem; } }
.mh-price .cadence { font-size: 0.85rem; color: var(--mh-ink-soft); margin-left: 0.5rem; white-space: nowrap; }
.mh-price-feat .mh-price .cadence { color: rgba(255, 255, 255, 0.7); }
.mh-price .note { font-size: 0.75rem; color: var(--mh-ink-soft); margin-top: 0.25rem; }
.mh-bullets { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.mh-bullets li { display: flex; gap: 0.75rem; align-items: flex-start; margin-bottom: 0.875rem; font-size: 0.92rem; line-height: 1.6; color: var(--mh-ink-soft); }
.mh-bullets .ck { display: grid; place-items: center; flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin-top: 0.125rem; border-radius: 9999px; background: rgba(58, 130, 89, 0.12); color: var(--mh-leaf); }
.mh-bullets .ck svg { width: 0.75rem; height: 0.75rem; }
.mh-bullets-light li { color: rgba(255, 255, 255, 0.85); }
.mh-bullets-light .ck { background: rgba(255, 255, 255, 0.15); color: #fff; }
.mh-rec-badge { display: inline-flex; align-items: center; gap: 0.375rem; width: fit-content; border: 1px solid rgba(255, 255, 255, 0.25); background: rgba(255, 255, 255, 0.1); border-radius: 9999px; padding: 0.25rem 0.75rem; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; }
.mh-rec-badge svg { width: 0.75rem; height: 0.75rem; }
/* proof cards */
.mh-proof-loc { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mh-brand-deep); margin: 0; }
.mh-proof-headline .elementor-heading-title { font-size: 1.6rem; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; }
@media (min-width: 640px) { .mh-proof-headline .elementor-heading-title { font-size: 1.8rem; } }
/* blog cards */
.mh-blog-card { border-radius: 1.75rem; overflow: hidden; display: flex; flex-direction: column; transition: transform 0.7s var(--mh-ease), box-shadow 0.7s var(--mh-ease), border-color 0.7s var(--mh-ease); }
.mh-blog-card:hover { transform: translateY(-6px); box-shadow: var(--mh-shadow-lift); border-color: rgba(0, 176, 226, 0.4); }
.mh-blog-card .mh-blog-img img { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; display: block; }
.mh-blog-meta { display: flex; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin: 0; }
.mh-blog-meta .read { white-space: nowrap; }
.mh-blog-meta .cat { color: var(--mh-brand-deep); } .mh-blog-meta .dot { color: rgba(80, 90, 97, 0.5); } .mh-blog-meta .read { color: var(--mh-ink-soft); }
.mh-readmore a { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.85rem; font-weight: 600; color: var(--mh-brand-deep); text-decoration: none; }
.mh-readmore svg { width: 1rem; height: 1rem; transition: transform 0.5s var(--mh-ease); }
.mh-readmore a:hover svg { transform: translate(2px, -2px); }
/* contact cards */
.mh-contact-card { display: flex !important; align-items: center; gap: 1rem; border-radius: 1rem; padding: 1rem; text-decoration: none; color: inherit; }
.mh-contact-card .cl { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-ink-soft); display: block; }
.mh-contact-card .cv { font-family: var(--mh-font-display); font-size: 1.05rem; font-weight: 700; color: var(--mh-ink); display: block; }
/* CTA banner */
.mh-cta-banner { border-radius: 2.5rem; padding: 5rem 1.5rem !important; text-align: center; overflow: hidden !important; position: relative; }
.mh-cta-banner::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.4; z-index: 0;
  background-image: radial-gradient(40% 60% at 15% 20%, rgba(255, 255, 255, 0.35), transparent 70%), radial-gradient(45% 55% at 85% 85%, rgba(13, 28, 39, 0.35), transparent 70%);
  background-size: 220% 220%; animation: mh-pan 22s ease-in-out infinite; }
.mh-cta-banner > * { position: relative; z-index: 1; }
@media (min-width: 640px) { .mh-cta-banner { padding: 7rem 3rem !important; } }
.mh-cta-banner .elementor-heading-title { color: #fff; }
.mh-cta-sub p { color: rgba(255, 255, 255, 0.85); font-size: 1.02rem; max-width: 36rem; margin-inline: auto; }
.mh-cta-fine p { color: rgba(255, 255, 255, 0.75); font-size: 0.8rem; }
.mh-cta-pad { padding-top: 1rem !important; padding-bottom: 1rem !important; }
/* how-it-works timeline */
.mh-tl-wrap { position: relative; }
.mh-tl-line { display: none; }
@media (min-width: 768px) { .mh-tl-line { display: block; position: absolute; top: 1.5rem; left: 0; right: 0; } }
.mh-step-num { font-family: var(--mh-font-display); font-size: 0.875rem; font-weight: 800; letter-spacing: 0.14em; color: var(--mh-brand-deep); margin: 0; }
.mh-step-head { display: flex; align-items: center; gap: 0.75rem; }
@media (min-width: 768px) { .mh-step-head { flex-direction: column; align-items: flex-start; gap: 1.25rem; } }
.mh-step-title .elementor-heading-title { font-size: 1.05rem; line-height: 1.35; font-weight: 700; }
.mh-step-body p { font-size: 0.88rem; line-height: 1.6; color: var(--mh-ink-soft); }

/* ---------- about page ---------- */
.mh-about-hero { position: relative; overflow: hidden !important; padding-top: 8rem !important; padding-bottom: 4rem !important; }
@media (min-width: 768px) { .mh-about-hero { padding-top: 9.5rem !important; padding-bottom: 6rem !important; } }
.mh-about-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(250, 253, 254, 0.94) 0%, rgba(250, 253, 254, 0.84) 25%, rgba(250, 253, 254, 0.74) 50%, rgba(250, 253, 254, 0.87) 75%, rgba(250, 253, 254, 0.96) 100%); }
.mh-about-hero > .e-con-inner { position: relative; z-index: 2; }
.mh-center-col { text-align: center; align-items: center; }
.mh-center-col .mh-lead p { margin-inline: auto; }
.mh-transform { border-radius: 2rem; background: rgba(255, 255, 255, 0.7); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  padding: 3rem 1.5rem !important; }
@media (min-width: 640px) { .mh-transform { padding: 3rem 3rem !important; } }
.mh-transform-inner { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; text-align: center; }
@media (min-width: 640px) { .mh-transform-inner { flex-direction: row; justify-content: center; gap: 2.5rem; text-align: left; } }
.mh-transform .a { font-family: var(--mh-font-display); font-size: 1.7rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; color: rgba(80, 90, 97, 0.5); margin: 0; }
.mh-transform .b { font-family: var(--mh-font-display); font-size: 1.7rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; margin: 0; opacity: 0; transform: translateY(14px); transition: all 1s var(--mh-ease) 0.5s; }
@media (min-width: 640px) { .mh-transform .a, .mh-transform .b { font-size: 2.4rem; } }
.is-revealed .mh-transform .b, .mh-transform.is-revealed .b { opacity: 1; transform: none; }
.mh-transform .conn { position: relative; height: 1px; width: 6rem; background: var(--mh-border); overflow: hidden; flex-shrink: 0; }
@media (min-width: 640px) { .mh-transform .conn { width: 8rem; } }
.mh-transform .conn::after { content: ""; position: absolute; inset-block: 0; left: 0; width: 0; background-image: var(--mh-grad-brand); transition: width 1.4s var(--mh-ease) 0.2s; }
.is-revealed .mh-transform .conn::after, .mh-transform.is-revealed .conn::after { width: 100%; }
.mh-team-card { border-radius: 1.75rem; overflow: hidden; }
.mh-team-card .ph { position: relative; overflow: hidden; }
.mh-team-card .ph img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; display: block; }
.mh-team-card .tag { position: absolute; top: 0.75rem; left: 0.75rem; border-radius: 9999px; background: rgba(250, 253, 254, 0.85); padding: 0.25rem 0.625rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mh-ink-soft); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.mh-team-card .nm { font-family: var(--mh-font-display); font-size: 1.05rem; font-weight: 800; letter-spacing: -0.02em; margin: 0; }
.mh-team-card .rl { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mh-brand-deep); margin: 0.25rem 0 0; }
.mh-team-card .ln { font-size: 0.87rem; line-height: 1.6; color: var(--mh-ink-soft); margin: 0.75rem 0 0; }
.mh-diff-card { border-radius: 1.9rem; transition: transform 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease), border-color 0.5s var(--mh-ease); }
.mh-diff-card:hover { transform: translateY(-6px); box-shadow: var(--mh-shadow-lift); border-color: rgba(0, 176, 226, 0.4); }
.mh-diff-num { font-family: var(--mh-font-display); font-size: 3.2rem; line-height: 1; font-weight: 800; letter-spacing: -0.02em; color: transparent; -webkit-text-stroke: 1.5px rgba(0, 176, 226, 0.45); }
.mh-diff-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.mh-diff-head .mh-plate { border-radius: 1rem; box-shadow: var(--mh-shadow-glow); transition: transform 0.5s var(--mh-ease-spring); }
.mh-diff-card:hover .mh-plate { transform: scale(1.1) rotate(6deg); }
.mh-statement { border-radius: 2rem; padding: 3rem 1.5rem !important; text-align: center; }
@media (min-width: 640px) { .mh-statement { padding: 3rem 3.5rem !important; } }
.mh-statement .s1 { font-family: var(--mh-font-display); font-size: 1.4rem; line-height: 1.25; font-weight: 800; letter-spacing: -0.02em; max-width: 48rem; margin: 0 auto; }
@media (min-width: 640px) { .mh-statement .s1 { font-size: 1.9rem; } }
.mh-statement .s2 { font-size: 0.98rem; color: var(--mh-ink-soft); max-width: 42rem; margin: 1rem auto 0; }
.mh-citypills { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.mh-citypills li { border: 1px solid rgba(221, 227, 230, 0.9); border-radius: 9999px; background: rgba(255, 255, 255, 0.7); padding: 0.375rem 0.75rem; font-size: 0.74rem; font-weight: 500; color: var(--mh-ink-soft); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.mh-citypills .hq { margin-left: 0.375rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mh-brand-deep); }
.mh-addr-card { border-radius: 1.75rem; padding: 1.75rem; }
.mh-addr-card .co { font-family: var(--mh-font-display); font-size: 1.05rem; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 1rem; }
.mh-addr-card p, .mh-addr-card a { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.92rem; color: var(--mh-ink-soft); text-decoration: none; margin: 0 0 0.75rem; }
.mh-addr-card a { color: var(--mh-ink); font-weight: 500; }
.mh-addr-card a:hover { color: var(--mh-brand-deep); }
.mh-addr-card svg { color: var(--mh-brand); flex-shrink: 0; margin-top: 0.125rem; width: 1rem; height: 1rem; }
.mh-proofbar { border-block: 1px solid var(--mh-border); background: rgba(244, 249, 251, 0.7); padding-top: 4rem !important; padding-bottom: 4rem !important; }
@media (min-width: 640px) { .mh-proofbar { padding-top: 5rem !important; padding-bottom: 5rem !important; } }
.mh-proofbar .elementor-counter-number-wrapper { font-family: var(--mh-font-display); font-size: 3rem; font-weight: 800; letter-spacing: -0.03em; justify-content: center;
  background-image: var(--mh-grad-brand); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
@media (min-width: 640px) { .mh-proofbar .elementor-counter-number-wrapper { font-size: 3.6rem; } }
@media (min-width: 1025px) { .mh-proofbar .elementor-counter-number-wrapper { justify-content: flex-start; } }
.mh-proofbar .elementor-counter-title { font-family: var(--mh-font-sans); font-size: 0.86rem; line-height: 1.4; color: var(--mh-ink-soft); text-align: center; margin-top: 0.75rem; }
@media (min-width: 1025px) { .mh-proofbar .elementor-counter-title { text-align: left; } }

/* ---------- dental page ---------- */
.mh-dhero { padding-top: 7rem !important; padding-bottom: 4rem !important; overflow: hidden !important; position: relative; }
@media (min-width: 640px) { .mh-dhero { padding-top: 9rem !important; padding-bottom: 6rem !important; } }
@media (min-width: 1025px) { .mh-dhero { padding-top: 11rem !important; padding-bottom: 8rem !important; } }
.mh-dhero-img { border-radius: 2rem; overflow: hidden; box-shadow: var(--mh-shadow-lift); border: 1px solid rgba(221, 227, 230, 0.9); }
.mh-dhero-img img { width: 100%; height: 22rem; object-fit: cover; display: block; }
@media (min-width: 640px) { .mh-dhero-img img { height: 28rem; } }
@media (min-width: 1025px) { .mh-dhero-img img { height: 32rem; } }
.mh-loc-line { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.9rem; color: var(--mh-ink-soft); }
.mh-loc-line svg { color: var(--mh-brand-deep); flex-shrink: 0; margin-top: 0.125rem; width: 1rem; height: 1rem; }
.mh-skel { display: flex; align-items: center; gap: 0.5rem; }
.mh-skel .b1 { display: block; height: 0.375rem; width: 5rem; border-radius: 9999px; background: rgba(11, 21, 28, 0.15); margin-bottom: 0.375rem; }
.mh-skel .b2 { display: block; height: 0.375rem; width: 3rem; border-radius: 9999px; background: rgba(11, 21, 28, 0.1); }
.mh-minibars { display: flex; height: 3.5rem; align-items: flex-end; gap: 0.375rem; width: 8rem; }
.mh-minibars span { flex: 1; border-radius: 0.25rem 0.25rem 0 0; background-image: var(--mh-grad-brand); }
.mh-imgcard { border-radius: 1.5rem; overflow: hidden; transition: transform 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease), border-color 0.5s var(--mh-ease); }
.mh-imgcard:hover { transform: translateY(-6px); box-shadow: var(--mh-shadow-lift); border-color: rgba(0, 176, 226, 0.4); }
.mh-imgcard .im { position: relative; overflow: hidden; }
.mh-imgcard .im img { height: 13rem; width: 100%; object-fit: cover; display: block; }
@media (min-width: 640px) { .mh-imgcard .im img { height: 14rem; } }
.mh-imgcard .im .badge { position: absolute; top: 1rem; left: 1rem; border-radius: 9999px; background: rgba(255, 255, 255, 0.85); padding: 0.25rem 0.625rem; font-family: var(--mh-font-display); font-size: 0.75rem; font-weight: 600; color: var(--mh-brand-deep); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.mh-imgcard.tall .im img { height: 15rem; }
@media (min-width: 640px) { .mh-imgcard.tall .im img { height: 16rem; } }
.mh-imgcard.tall .im::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(11, 21, 28, 0.55), rgba(11, 21, 28, 0.05) 50%, transparent); }
.mh-imgcard.tall .im .badge { background: transparent; color: rgba(255, 255, 255, 0.85); -webkit-backdrop-filter: none; backdrop-filter: none; top: 1.25rem; left: 1.25rem; z-index: 2; padding: 0; }
.mh-arrow-chip { display: grid; place-items: center; flex-shrink: 0; width: 2.25rem; height: 2.25rem; border-radius: 9999px; background: rgba(0, 176, 226, 0.1); color: var(--mh-brand-deep); transition: all 0.5s var(--mh-ease); }
.mh-imgcard:hover .mh-arrow-chip { background-image: var(--mh-grad-brand); color: #fff; }
.mh-arrow-chip svg { width: 1rem; height: 1rem; }
.mh-dsvc-card { border-radius: 1.5rem; padding: 1.75rem; transition: transform 0.5s var(--mh-ease), box-shadow 0.5s var(--mh-ease); position: relative; overflow: hidden; }
.mh-dsvc-card:hover { transform: translateY(-6px); box-shadow: var(--mh-shadow-lift); }
.mh-dsvc-card .hd { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.mh-dsvc-card .gnum { font-family: var(--mh-font-display); font-size: 2.25rem; font-weight: 600; letter-spacing: -0.02em; color: rgba(11, 21, 28, 0.1); transition: color 0.5s; }
.mh-dsvc-card:hover .gnum { color: rgba(0, 176, 226, 0.45); }
.mh-dsvc-card .mh-plate { border-radius: 1rem; background: rgba(0, 176, 226, 0.1); color: var(--mh-brand-deep); transition: transform 0.5s var(--mh-ease); }
.mh-dsvc-card:hover .mh-plate { transform: translateY(-4px) rotate(3deg); }
.mh-block { border-radius: 1rem; padding: 1.25rem; background: rgba(240, 246, 248, 0.6); }
.mh-block.accent { background: rgba(0, 176, 226, 0.06); border: 1px solid rgba(221, 227, 230, 0.9); }
.mh-block .bk { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mh-brand-deep); margin: 0; }
.mh-block .bv { font-size: 0.9rem; line-height: 1.6; color: var(--mh-ink-soft); margin: 0.625rem 0 0; }
.mh-dcase-slide { border-radius: 1.5rem; overflow: hidden; }
.mh-dcase-slide > .elementor-widget-html, .mh-dcase-slide > .elementor-widget-html > div:not(.mh-dcase-img) { height: 100%; }
.mh-dcase-img { position: relative; min-height: 14rem; height: 100%; }
.mh-dcase-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mh-dcase-img::after { content: ""; position: absolute; inset: 0; background-image: var(--mh-grad-brand); opacity: 0.25; }
.mh-dcase-img .badge { position: absolute; bottom: 1.25rem; left: 1.25rem; z-index: 2; border-radius: 9999px; background: rgba(255, 255, 255, 0.9); padding: 0.25rem 0.75rem; font-family: var(--mh-font-display); font-size: 0.75rem; font-weight: 600; color: var(--mh-brand-deep); }
.mh-faq-sticky { position: static; }
@media (min-width: 1025px) { .mh-faq-sticky { position: sticky !important; top: 7rem; align-self: start; } }

/* ---------- comparison table (pricing page) ---------- */
.mh-table-wrap { overflow-x: auto; border-radius: 1.5rem; border: 1px solid var(--mh-border); background: #fff; box-shadow: var(--mh-shadow-soft); }
.mh-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; min-width: 42rem; }
.mh-table th, .mh-table td { padding: 0.875rem 1.25rem; text-align: center; border-bottom: 1px solid rgba(221, 227, 230, 0.6); }
.mh-table th { font-family: var(--mh-font-display); font-weight: 700; letter-spacing: -0.01em; font-size: 0.95rem; background: var(--mh-surface-2); }
.mh-table th small { display: block; font-family: var(--mh-font-sans); font-weight: 500; font-size: 0.75rem; color: var(--mh-ink-soft); margin-top: 0.125rem; }
.mh-table th.feat, .mh-table td.feat { text-align: left; font-weight: 500; color: var(--mh-ink); }
.mh-table td { color: var(--mh-ink-soft); }
.mh-table td .yes { color: var(--mh-leaf); font-weight: 700; }
.mh-table td .no { color: rgba(80, 90, 97, 0.4); }
.mh-table th.pop { background: rgba(0, 176, 226, 0.08); }
.mh-table td.pop { background: rgba(0, 176, 226, 0.04); }
.mh-table tr:last-child td { border-bottom: 0; }

/* ---------- chat + WhatsApp launcher ---------- */
.mhc-root { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 60; display: flex; flex-direction: column; align-items: flex-end; gap: 0.75rem; }
.mhc-wa, .mhc-toggle { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 9999px !important; border: none !important; cursor: pointer; box-shadow: var(--mh-shadow-lift); transition: transform 0.3s var(--mh-ease); padding: 0 !important; }
.mhc-wa:hover, .mhc-toggle:hover { transform: translateY(-3px); }
.mhc-wa { background: #25d366 !important; color: #fff !important; }
.mhc-wa svg { width: 1.75rem; height: 1.75rem; }
.mhc-toggle { background-image: var(--mh-grad-brand) !important; background-color: transparent !important; color: #fff !important; }
.mhc-toggle svg { width: 1.5rem; height: 1.5rem; }
.mhc-panel { position: fixed; right: 1.25rem; bottom: 5.5rem; width: min(24rem, calc(100vw - 2rem)); max-height: min(34rem, calc(100vh - 8rem)); display: flex; flex-direction: column; background: #fff; border: 1px solid var(--mh-border); border-radius: 1.5rem; box-shadow: var(--mh-shadow-lift); overflow: hidden; }
.mhc-head { display: flex; align-items: center; gap: 0.75rem; padding: 1rem 1.25rem; background-image: var(--mh-grad-brand); color: #fff; }
.mhc-head .t { font-family: var(--mh-font-display); font-weight: 700; font-size: 0.95rem; margin: 0; }
.mhc-head .s { font-size: 0.7rem; opacity: 0.85; margin: 0; }
.mhc-dot { width: 0.6rem; height: 0.6rem; border-radius: 9999px; background: #b9f6ca; flex-shrink: 0; animation: mh-pulse-ring 2.6s ease-out infinite; }
.mhc-close { margin-left: auto; background: rgba(255,255,255,0.15) !important; border: none !important; color: #fff !important; width: 1.75rem; height: 1.75rem; border-radius: 9999px !important; cursor: pointer; font-size: 1rem; line-height: 1; padding: 0 !important; }
.mhc-body { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.625rem; background: var(--mh-surface-2); }
.mhc-msg { max-width: 85%; padding: 0.625rem 0.875rem; border-radius: 1rem; font-size: 0.85rem; line-height: 1.5; }
.mhc-msg.bot { background: #fff; border: 1px solid var(--mh-border); border-bottom-left-radius: 0.25rem; align-self: flex-start; color: var(--mh-ink); }
.mhc-msg.me { background-image: var(--mh-grad-brand); color: #fff; border-bottom-right-radius: 0.25rem; align-self: flex-end; }
.mhc-msg a { color: var(--mh-brand-deep); font-weight: 600; }
.mhc-links { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.5rem; }
.mhc-links a { display: inline-block; border: 1px solid var(--mh-border); border-radius: 9999px; padding: 0.25rem 0.75rem; font-size: 0.75rem; text-decoration: none; background: var(--mh-surface-2); }
.mhc-chips { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.mhc-chip { border: 1px solid var(--mh-border) !important; background: #fff !important; color: var(--mh-brand-deep) !important; border-radius: 9999px !important; padding: 0.375rem 0.875rem !important; font-size: 0.78rem; font-weight: 600; cursor: pointer; }
.mhc-chip:hover { border-color: var(--mh-brand) !important; }
.mhc-input { display: flex; gap: 0.5rem; padding: 0.75rem; border-top: 1px solid var(--mh-border); background: #fff; }
.mhc-input input { flex: 1; height: 2.5rem; border: 1px solid var(--mh-border); border-radius: 9999px; padding: 0 1rem; font-size: 0.85rem; outline: none; }
.mhc-input input:focus { border-color: var(--mh-brand); box-shadow: 0 0 0 3px rgba(0,176,226,0.12); }
.mhc-input button { width: 2.5rem; height: 2.5rem; border-radius: 9999px !important; border: none !important; background-image: var(--mh-grad-brand) !important; color: #fff !important; cursor: pointer; font-size: 1rem; padding: 0 !important; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 640px) { .mhc-root { right: 0.875rem; bottom: 0.875rem; } .mhc-panel { right: 0.875rem; } }

/* ---------- blog single/archive ---------- */
.single-post body, .single-post, .blog, .archive { font-family: var(--mh-font-sans); }
.single-post h1, .single-post h2, .single-post h3, .blog h1, .blog h2, .archive h1, .archive h2 { font-family: var(--mh-font-display); font-weight: 800; color: var(--mh-ink); }
.single-post .site-main, .blog .site-main, .archive .site-main { max-width: 46rem; margin-inline: auto; padding: 9rem 1.25rem 5rem; }
.single-post h1.entry-title, .single-post .page-title { font-size: 2.3rem; line-height: 1.1; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .single-post h1.entry-title, .single-post .page-title { font-size: 2.9rem; } }
.single-post .site-main img { border-radius: 1.5rem; margin: 1.5rem 0; }
.single-post .site-main h2 { font-size: 1.6rem; margin: 2.25rem 0 0.75rem; }
.single-post .site-main h3 { font-size: 1.2rem; margin: 1.75rem 0 0.5rem; }
.single-post .site-main p, .single-post .site-main li { font-size: 1.02rem; line-height: 1.7; color: var(--mh-ink-soft); margin-bottom: 1rem; }
.single-post .site-main a { color: var(--mh-brand-deep); font-weight: 600; }
.single-post .post-thumbnail img, .single-post img.wp-post-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.blog article, .archive article { border: 1px solid var(--mh-border); border-radius: 1.5rem; padding: 1.75rem; margin-bottom: 1.5rem; background: #fff; box-shadow: var(--mh-shadow-soft); }
.blog article h2 a, .archive article h2 a { color: var(--mh-ink); text-decoration: none; }

/* ---------- editorial system ---------- */
.mh-article-wrap, .mh-blog-wrap { max-width: 46rem; margin-inline: auto; padding: 8.5rem 1.25rem 5rem; }
.mh-blog-wrap { max-width: 72rem; }
.mh-crumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; font-size: 0.78rem; color: var(--mh-ink-soft); margin-bottom: 1.5rem; }
.mh-crumbs a { color: var(--mh-ink-soft); text-decoration: none; }
.mh-crumbs a:hover { color: var(--mh-brand-deep); }
.mh-crumbs .cur { color: var(--mh-ink); font-weight: 500; max-width: 24rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mh-cat-chip { display: inline-block; border: 1px solid rgba(0, 176, 226, 0.35); background: rgba(0, 176, 226, 0.08); color: var(--mh-brand-deep) !important; border-radius: 9999px; padding: 0.25rem 0.875rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; margin-bottom: 1rem; }
.mh-article-title { font-size: 2.3rem; line-height: 1.08; margin: 0.5rem 0 1rem; }
@media (min-width: 768px) { .mh-article-title { font-size: 2.9rem; } }
.mh-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: var(--mh-ink-soft); margin-bottom: 1.75rem; }
.mh-article-meta .av { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 9999px; background-image: var(--mh-grad-brand); color: #fff; }
.mh-article-meta .av svg { width: 1rem; height: 1rem; }
.mh-article-meta .by { font-weight: 600; color: var(--mh-ink); }
.mh-article-hero { margin: 0 0 2rem; }
.mh-article-hero img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 1.5rem; }
.mh-article-body h2 { font-size: 1.6rem; margin: 2.25rem 0 0.75rem; }
.mh-article-body h3 { font-size: 1.2rem; margin: 1.75rem 0 0.5rem; }
.mh-article-body p, .mh-article-body li { font-size: 1.02rem; line-height: 1.7; color: var(--mh-ink-soft); margin-bottom: 1rem; }
.mh-article-body ul, .mh-article-body ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.mh-article-body a { color: var(--mh-brand-deep); font-weight: 600; }
.mh-article-body blockquote { border-left: 3px solid var(--mh-brand); padding-left: 1.25rem; font-style: italic; margin: 1.5rem 0; }
.mh-article-body table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.mh-article-body td, .mh-article-body th { border: 1px solid var(--mh-border); padding: 0.625rem 0.875rem; }
.mh-article-cta { border-radius: 1.5rem; padding: 2rem; margin: 2.5rem 0; text-align: center; }
.mh-article-cta .t { font-family: var(--mh-font-display); font-size: 1.35rem; font-weight: 800; color: #fff; margin: 0 0 0.5rem; }
.mh-article-cta .s { font-size: 0.9rem; color: rgba(255, 255, 255, 0.85); margin: 0 0 1.25rem; }
.mh-article-cta .b { display: inline-flex; align-items: center; height: 3rem; padding: 0 1.75rem; border-radius: 9999px; background: #fff; color: var(--mh-brand-deep); font-weight: 600; font-size: 0.9rem; text-decoration: none; box-shadow: var(--mh-shadow-soft); }
.mh-authorbox { display: flex; gap: 1rem; align-items: flex-start; border: 1px solid var(--mh-border); border-radius: 1.5rem; padding: 1.5rem; background: var(--mh-surface-2); margin: 2rem 0; }
.mh-authorbox .n { font-family: var(--mh-font-display); font-weight: 700; margin: 0 0 0.25rem; }
.mh-authorbox .b { font-size: 0.88rem; color: var(--mh-ink-soft); margin: 0; }
.mh-related h2 { font-size: 1.5rem; margin: 2.5rem 0 1.25rem; }
.mh-blog-title-s a { color: var(--mh-ink); text-decoration: none; font-family: var(--mh-font-display); }
.mh-blog-card .bd { display: flex; flex-direction: column; gap: 0.625rem; }
.mh-blog-card .ex { font-size: 0.88rem; color: var(--mh-ink-soft); margin: 0; }
.mh-blog-meta .cat { color: var(--mh-brand-deep); text-decoration: none; }
.mh-prevnext { display: flex; justify-content: space-between; gap: 1.5rem; margin-top: 2.5rem; font-size: 0.85rem; }
.mh-prevnext a { color: var(--mh-brand-deep); text-decoration: none; font-weight: 600; }
.mh-prevnext .nx { text-align: right; }
.mh-blog-head { margin-bottom: 2.5rem; }
.mh-blog-head h1 { font-size: 2.3rem; margin: 0.75rem 0; }
@media (min-width: 768px) { .mh-blog-head h1 { font-size: 3rem; } }
.mh-blog-intro { max-width: 40rem; }
.mh-cat-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; }
.mh-cat-nav a { border: 1px solid var(--mh-border); border-radius: 9999px; padding: 0.375rem 1rem; font-size: 0.8rem; font-weight: 500; color: var(--mh-ink-soft); text-decoration: none; transition: all 0.3s; }
.mh-cat-nav a:hover { border-color: var(--mh-brand); color: var(--mh-brand-deep); }
.mh-cat-nav a.on { background-image: var(--mh-grad-brand); color: #fff; border-color: transparent; }
.mh-pagination { display: flex; justify-content: center; gap: 0.5rem; margin-top: 3rem; }
.mh-pagination .page-numbers { border: 1px solid var(--mh-border); border-radius: 9999px; padding: 0.5rem 1rem; font-size: 0.85rem; color: var(--mh-ink-soft); text-decoration: none; }
.mh-pagination .page-numbers.current { background-image: var(--mh-grad-brand); color: #fff; border-color: transparent; }
/* sample testimonial cards (dummy data, clearly labeled) */
.mh-quote-card { position: relative; }
.mh-quote-card .sample { position: absolute; top: 1rem; right: 1rem; border-radius: 9999px; background: rgba(200, 30, 43, 0.08); color: #c81e2b; padding: 0.2rem 0.6rem; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.mh-quote-card .q { font-size: 0.95rem; line-height: 1.65; color: var(--mh-ink); margin: 0 0 1rem; }
.mh-quote-card .a { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mh-ink-soft); margin: 0; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
  .mh-bars span { height: var(--h, 50%) !important; }
  .mh-map path.mh-outline { stroke-dashoffset: 0 !important; }
  .mh-map g.city { opacity: 1 !important; }
}

/* clip decorative overflow at section level */
#solution, #case-studies, #pricing, #contact { overflow: hidden !important; }

