/* ACT Medical Diagnostics modern layer — intentionally loaded after legacy styles. */
:root {
  --act-ink: #172c38;
  --act-muted: #566a73;
  --act-teal: #087f78;
  --act-teal-dark: #05635e;
  --act-mint: #e8f5f2;
  --act-sky: #eef7fa;
  --act-surface: #ffffff;
  --act-line: #dce7ea;
  --act-warm: #f7a928;
  --act-shadow: 0 18px 50px rgba(23, 44, 56, .10);
  --act-radius: 18px;
  --act-width: 1180px;
}

html { scroll-behavior: smooth; }
body {
  background: #f8fbfc;
  color: var(--act-ink);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
.site-container { padding-top: 0 !important; }
h1, h2, h3, h4, h5, h6, .site-title, .widget-title {
  color: var(--act-ink);
  font-family: Manrope, Inter, sans-serif;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.18;
}
h1 { font-size: clamp(2.25rem, 5vw, 4.75rem); }
h2 { font-size: clamp(1.8rem, 3.3vw, 3rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
p { margin-bottom: 1.35em; }
a { color: var(--act-teal); text-underline-offset: .16em; }
a:hover, a:focus { color: var(--act-teal-dark); }
img { border-radius: 12px; }
.wrap { max-width: var(--act-width); padding-left: 28px; padding-right: 28px; }

/* Header and navigation */
.site-header {
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--act-line);
  box-shadow: 0 4px 20px rgba(23,44,56,.05);
  min-height: 92px;
  position: relative;
  top: auto !important;
  z-index: 50;
}
.site-header .wrap { align-items: center; display: flex; justify-content: space-between; margin: 0 auto; min-height: 92px; }
.title-area { flex: 0 0 auto; padding: 12px 0; }
.header-image .site-title > a { background-size: contain !important; max-width: min(320px, 56vw); }
.site-title { font-size: 1.3rem; margin: 0; }
.site-header .nav-primary { margin-left: auto; }
.genesis-nav-menu { display: flex; align-items: center; gap: 4px; }
.genesis-nav-menu a {
  border-radius: 999px;
  color: var(--act-ink);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .01em;
  padding: 13px 16px;
}
.genesis-nav-menu a:hover, .genesis-nav-menu a:focus,
.genesis-nav-menu .current-menu-item > a { background: var(--act-mint); color: var(--act-teal-dark); }
.genesis-nav-menu .menu-item:last-child > a {
  background: var(--act-teal);
  color: #fff;
  margin-left: 8px;
  padding-left: 21px;
  padding-right: 21px;
}
.genesis-nav-menu .menu-item:last-child > a:hover { background: var(--act-teal-dark); color: #fff; }
.genesis-nav-menu .sub-menu { background: #fff; border: 1px solid var(--act-line); border-radius: 12px; box-shadow: var(--act-shadow); padding: 8px; }
.genesis-nav-menu .sub-menu a { border: 0; border-radius: 8px; width: 240px; }
nav.nav-secondary {
  background: var(--act-ink);
  position: sticky !important;
  top: 0 !important;
}
.admin-bar nav.nav-secondary { top: 32px !important; }
nav.nav-secondary .genesis-nav-menu { justify-content: flex-end; }
nav.nav-secondary .genesis-nav-menu a { color: #fff; font-size: .82rem; padding-bottom: 9px; padding-top: 9px; }
nav.nav-secondary .genesis-nav-menu a:hover { background: rgba(255,255,255,.12); }

/* Content and Beaver Builder sections */
.site-inner { max-width: none; padding: 0; }
.content-sidebar-wrap { max-width: var(--act-width); margin: 0 auto; }
.full-width-content .content-sidebar-wrap { max-width: none; }
.entry { background: transparent; box-shadow: none; margin: 0; padding: 64px 28px; }
.home .entry { padding: 0; }
.home .entry-header { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.fl-row-content-wrap { padding-left: 28px !important; padding-right: 28px !important; }
.fl-row-content { max-width: var(--act-width) !important; }
.fl-module-heading .fl-heading { color: var(--act-ink); }
.fl-button, a.fl-button, .button, button, input[type="button"], input[type="submit"],
.wp-block-button__link, .woocommerce a.button, .woocommerce button.button {
  background: var(--act-teal) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 22px rgba(8,127,120,.20);
  color: #fff !important;
  font-weight: 700 !important;
  padding: 14px 24px !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.fl-button:hover, a.fl-button:hover, .button:hover, button:hover, input[type="submit"]:hover,
.wp-block-button__link:hover, .woocommerce a.button:hover {
  background: var(--act-teal-dark) !important;
  box-shadow: 0 12px 28px rgba(8,127,120,.28);
  transform: translateY(-2px);
}
.fl-callout { height: 100%; }
.fl-callout-content {
  background: var(--act-surface);
  border: 1px solid var(--act-line);
  border-radius: var(--act-radius);
  box-shadow: 0 10px 34px rgba(23,44,56,.07);
  height: 100%;
  padding: 30px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.fl-callout-content:hover { box-shadow: var(--act-shadow); transform: translateY(-5px); }
.fl-callout-photo img { background: var(--act-mint); border-radius: 16px; padding: 10px; }
.fl-photo-caption { color: var(--act-muted); }
blockquote { background: var(--act-mint); border-left: 4px solid var(--act-teal); border-radius: 0 14px 14px 0; padding: 24px 30px; }

/* Forms, tables, posts and commerce */
input, select, textarea {
  background: #fff;
  border: 1px solid #cbdadd;
  border-radius: 10px;
  min-height: 48px;
  padding: 11px 14px;
}
input:focus, select:focus, textarea:focus { border-color: var(--act-teal); box-shadow: 0 0 0 3px rgba(8,127,120,.14); outline: 0; }
.entry-content table { background: #fff; border: 1px solid var(--act-line); border-radius: 12px; display: block; overflow-x: auto; }
.entry-content th { background: var(--act-ink); color: #fff; }
.entry-content td, .entry-content th { border-color: var(--act-line); padding: 14px 16px; }
.archive .entry, .blog .entry, .single .entry, .page:not(.home) .entry { background: #fff; border-radius: var(--act-radius); box-shadow: 0 10px 35px rgba(23,44,56,.06); margin: 46px auto; max-width: var(--act-width); }
.woocommerce ul.products li.product { background: #fff; border: 1px solid var(--act-line); border-radius: 16px; padding: 16px 16px 22px; }
.woocommerce span.onsale { background: var(--act-warm); border-radius: 999px; color: var(--act-ink); }

/* Footer */
.footer-widgets { background: var(--act-ink); border: 0; color: #d7e3e7; padding: 64px 0 38px; }
.footer-widgets .widget-title, .footer-widgets h3 { color: #fff; }
.footer-widgets a { color: #bde6df; }
.site-footer { background: #10232d; border: 0; color: #b7c8ce; font-size: .85rem; padding: 25px 0; }
.site-footer a { color: #fff; }

/* Accessibility and motion */
:focus-visible { outline: 3px solid var(--act-warm) !important; outline-offset: 3px; }
.screen-reader-text:focus, .screen-reader-shortcut:focus { border-radius: 8px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

@media only screen and (max-width: 1024px) {
  .site-header .wrap { display: block; }
  .genesis-responsive-menu { background: #fff; border-top: 1px solid var(--act-line); padding: 12px 0 20px; }
  .genesis-nav-menu { align-items: stretch; display: block; }
  .genesis-nav-menu a { border-radius: 8px; padding: 12px 14px; }
  .genesis-nav-menu .menu-item:last-child > a { margin: 8px 14px; text-align: center; }
  .menu-toggle, .sub-menu-toggle { background: transparent !important; box-shadow: none; color: var(--act-ink) !important; padding: 12px !important; }
  .menu-toggle.nav-secondary { background: var(--act-ink) !important; color: #fff !important; }
  .menu-toggle.nav-secondary::before { color: #fff; }
  nav.nav-secondary { display: none; position: relative !important; top: auto !important; }
  nav.nav-secondary .wrap { padding: 0 14px; }
  nav.nav-secondary .genesis-nav-menu { display: block; }
  nav.nav-secondary .genesis-nav-menu .menu-item { display: block; position: relative; text-align: left; }
  nav.nav-secondary .genesis-nav-menu a { border-radius: 8px; display: block; padding: 12px 14px; width: 100%; }
  nav.nav-secondary .genesis-nav-menu .menu-item:last-child > a { margin: 8px 0 0; }
}
@media only screen and (max-width: 782px) {
  .admin-bar nav.nav-secondary { top: 46px !important; }
}
@media only screen and (max-width: 700px) {
  body { font-size: 16px; }
  .wrap, .entry, .fl-row-content-wrap { padding-left: 20px !important; padding-right: 20px !important; }
  .site-header, .site-header .wrap { min-height: 76px; }
  .fl-callout-content { padding: 24px; }
  .archive .entry, .blog .entry, .single .entry, .page:not(.home) .entry { border-radius: 0; margin: 0; }
}
