/*
Theme Name: DNB Medicine — Homepage v2
Theme URI: https://dnbmedicine.com/
Author: DNB Medicine
Description: DNB Medicine custom theme based on the supplied v1.4 theme, rebuilt around the approved homepage architecture and visual language.
Version: 2.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: dnb-medicine
*/

:root {
  --dm-navy: #0b1f3a;
  --dm-blue: #155eef;
  --dm-blue-dark: #0b4bc4;
  --dm-teal: #0f8b8d;
  --dm-coral: #e76f51;
  --dm-purple: #6d5dfc;
  --dm-gold: #d99a2b;
  --dm-green: #1f9d65;
  --dm-red: #d9534f;
  --dm-ink: #152238;
  --dm-muted: #64748b;
  --dm-line: #dfe6ef;
  --dm-bg: #f6f9fc;
  --dm-white: #fff;
  --dm-soft-blue: #edf4ff;
  --dm-soft-teal: #eaf9f8;
  --dm-radius: 18px;
  --dm-shadow: 0 12px 35px rgba(11,31,58,.08);
  --dm-container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--dm-bg);
  color: var(--dm-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.7;
}
img { max-width: 100%; height: auto; }
a { color: var(--dm-blue); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, textarea, select { font: inherit; }

.dm-container { width: min(var(--dm-container), calc(100% - 40px)); margin-inline: auto; }
.dm-section { padding: 72px 0; }
.dm-section--tight { padding: 42px 0; }
.dm-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--dm-blue); font-size: .78rem; font-weight: 800;
  letter-spacing: .09em; text-transform: uppercase;
}
.dm-section-title { margin: 8px 0 10px; font-size: clamp(1.9rem, 3vw, 2.7rem); line-height: 1.12; letter-spacing: -.03em; }
.dm-section-lead { max-width: 680px; color: var(--dm-muted); margin: 0; }
.dm-grid { display: grid; gap: 22px; }
.dm-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.dm-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }

.dm-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.94); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(223,230,239,.9);
}
.dm-header__inner { min-height: 76px; display:flex; align-items:center; gap:24px; }
.dm-brand { display:flex; align-items:center; gap:11px; color:var(--dm-navy); font-weight:900; letter-spacing:-.02em; white-space:nowrap; }
.dm-brand:hover { text-decoration:none; }
.dm-brand--default { max-width:245px; }
.dm-brand__image { display:block; width:230px; height:auto; max-height:58px; object-fit:contain; object-position:left center; }
.dm-brand__mark {
  width: 38px; height: 38px; border-radius: 12px; display:grid; place-items:center;
  color:#fff; background:linear-gradient(135deg,var(--dm-blue),var(--dm-teal));
  box-shadow: 0 8px 18px rgba(21,94,239,.2);
}
.dm-brand__name { font-size: 1rem; }
.dm-brand__sub { display:block; color:var(--dm-muted); font-size:.64rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.dm-nav { margin-left:auto; display:flex; align-items:center; gap:4px; }
/* Normalize WordPress menu markup so fallback and real menus share the same horizontal layout. */
.dm-nav > ul,
.dm-nav__fallback {
  display:flex; align-items:center; gap:2px;
  list-style:none; margin:0; padding:0;
}
.dm-nav > ul > li,
.dm-nav__fallback > li {
  list-style:none; margin:0; padding:0;
}
.dm-nav > ul > li > a,
.dm-nav__fallback > li > a {
  display:block; padding:10px 10px; color:#334155; font-size:.88rem; font-weight:700; border-radius:10px; white-space:nowrap;
}
.dm-nav a:hover, .dm-nav .current-menu-item > a, .dm-nav__fallback a:hover { color:var(--dm-blue); background:var(--dm-soft-blue); text-decoration:none; }
.dm-search-link { width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--dm-line); border-radius:12px; color:var(--dm-navy); }
.dm-menu-toggle { display:none; margin-left:auto; border:1px solid var(--dm-line); background:#fff; width:42px; height:42px; border-radius:12px; }

.dm-hero {
  padding: 86px 0 68px;
  background:
    radial-gradient(circle at 90% 15%, rgba(21,94,239,.12), transparent 32%),
    radial-gradient(circle at 10% 10%, rgba(15,139,141,.10), transparent 28%),
    #fff;
}
.dm-hero__grid { display:grid; grid-template-columns: 1.1fr .9fr; gap:54px; align-items:center; }
.dm-hero h1 { margin:10px 0 18px; font-size:clamp(2.6rem,5vw,4.7rem); line-height:.98; letter-spacing:-.055em; color:var(--dm-navy); }
.dm-hero p { max-width:650px; color:#53657d; font-size:1.12rem; }
.dm-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.dm-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:0 18px; border-radius:12px; border:1px solid transparent;
  font-weight:800; text-decoration:none !important;
}
.dm-btn--primary { color:#fff; background:var(--dm-blue); box-shadow:0 9px 20px rgba(21,94,239,.18); }
.dm-btn--primary:hover { background:var(--dm-blue-dark); }
.dm-btn--secondary { color:var(--dm-navy); background:#fff; border-color:var(--dm-line); }
.dm-hero-card {
  min-height:390px; border-radius:28px; overflow:hidden; position:relative;
  background:linear-gradient(145deg,#0b1f3a,#155eef 55%,#0f8b8d);
  box-shadow:var(--dm-shadow);
}
.dm-hero-card__inner { position:absolute; inset:0; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; color:#fff; }
.dm-hero-card__badge { align-self:flex-start; padding:7px 10px; border:1px solid rgba(255,255,255,.3); border-radius:999px; background:rgba(255,255,255,.1); font-size:.75rem; font-weight:800; }
.dm-hero-card__title { margin:12px 0 0; font-size:1.7rem; line-height:1.1; }
.dm-hero-card__note { color:rgba(255,255,255,.8); margin:8px 0 0; }

.dm-card {
  background:#fff; border:1px solid var(--dm-line); border-radius:var(--dm-radius);
  box-shadow:0 5px 20px rgba(11,31,58,.035); overflow:hidden;
}
.dm-card__body { padding:24px; }
.dm-card h3 { margin:0 0 7px; line-height:1.2; }
.dm-card p { color:var(--dm-muted); margin:0; }
.dm-card__icon {
  width:44px; height:44px; display:grid; place-items:center; border-radius:13px;
  background:var(--dm-soft-blue); color:var(--dm-blue); font-weight:900; margin-bottom:18px;
}
.dm-card:hover { transform:translateY(-2px); box-shadow:var(--dm-shadow); transition:.2s ease; }

.dm-feature-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:24px; }
.dm-feature { min-height:360px; position:relative; overflow:hidden; border-radius:24px; background:var(--dm-navy); color:#fff; }
.dm-feature__media { position:absolute; inset:0; opacity:.34; background:linear-gradient(135deg,#155eef,#0f8b8d); }
.dm-feature__content { position:relative; min-height:360px; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; }
.dm-feature__content h2 { margin:8px 0; font-size:2rem; line-height:1.05; }
.dm-feature__content p { color:rgba(255,255,255,.8); }
.dm-feature__content a { color:#fff; }

.dm-page-hero { padding:58px 0 34px; background:#fff; border-bottom:1px solid var(--dm-line); }
.dm-page-hero h1 { margin:7px 0 10px; font-size:clamp(2.2rem,4vw,3.5rem); line-height:1; letter-spacing:-.04em; color:var(--dm-navy); }
.dm-page-hero p { max-width:720px; color:var(--dm-muted); margin:0; }

.dm-content-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:30px; align-items:start; }
.dm-sidebar { position:sticky; top:100px; }
.dm-sidebar__box { background:#fff; border:1px solid var(--dm-line); border-radius:16px; padding:16px; }
.dm-sidebar__title { font-size:.75rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; color:var(--dm-muted); padding:6px 10px 10px; }
.dm-sidebar a { display:block; padding:9px 10px; border-radius:9px; color:#334155; font-weight:700; font-size:.9rem; }
.dm-sidebar a:hover { background:var(--dm-soft-blue); color:var(--dm-blue); text-decoration:none; }

.dm-prose { background:#fff; border:1px solid var(--dm-line); border-radius:20px; padding:clamp(24px,4vw,46px); }
.dm-prose > *:first-child { margin-top:0; }
.dm-prose h2 { color:var(--dm-navy); margin-top:2em; line-height:1.15; }
.dm-prose h3 { color:var(--dm-navy); margin-top:1.7em; }
.dm-prose p, .dm-prose li { color:#42536a; }
.dm-prose blockquote { margin:28px 0; padding:20px 22px; border-left:4px solid var(--dm-teal); background:var(--dm-soft-teal); border-radius:0 14px 14px 0; }
.dm-prose img { border-radius:14px; }
.dm-prose table { width:100%; border-collapse:collapse; margin:24px 0; }
.dm-prose th, .dm-prose td { border:1px solid var(--dm-line); padding:11px 13px; text-align:left; }
.dm-prose th { background:#f8fafc; }

.dm-callout { margin:24px 0; padding:20px 22px; border:1px solid #cfe1ff; border-radius:15px; background:var(--dm-soft-blue); }
.dm-callout--teal { background:var(--dm-soft-teal); border-color:#c6e9e7; }
.dm-callout strong { color:var(--dm-navy); }

.dm-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.dm-tab { padding:9px 13px; background:#fff; border:1px solid var(--dm-line); border-radius:999px; color:#475569; font-size:.86rem; font-weight:800; }
.dm-tab:hover { color:var(--dm-blue); text-decoration:none; border-color:#bcd2fb; }

.dm-article-card__image { aspect-ratio:16/9; background:linear-gradient(135deg,#eaf1fb,#dceff0); overflow:hidden; }
.dm-article-card__image img { width:100%; height:100%; object-fit:cover; }
.dm-article-card__body { padding:20px; }
.dm-meta { display:flex; flex-wrap:wrap; gap:8px 14px; color:var(--dm-muted); font-size:.78rem; font-weight:700; }
.dm-chip { display:inline-block; padding:5px 9px; border-radius:999px; background:var(--dm-soft-blue); color:var(--dm-blue); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }

.dm-post-header { padding:65px 0 35px; background:#fff; }
.dm-post-header h1 { max-width:900px; margin:12px 0 18px; font-size:clamp(2.3rem,4.5vw,4rem); line-height:1.02; letter-spacing:-.045em; color:var(--dm-navy); }
.dm-post-excerpt { max-width:780px; color:var(--dm-muted); font-size:1.08rem; }

.dm-search { max-width:780px; margin:0 auto; }
.dm-search__form { display:flex; gap:10px; }
.dm-search__form input[type="search"] { flex:1; min-height:52px; padding:0 16px; border:1px solid var(--dm-line); border-radius:13px; background:#fff; }
.dm-search__form button { min-height:52px; border:0; border-radius:13px; padding:0 20px; background:var(--dm-blue); color:#fff; font-weight:800; }

.dm-footer { margin-top:40px; background:var(--dm-navy); color:#fff; }
.dm-footer__grid { padding:52px 0 34px; display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:36px; }
.dm-footer a { color:#cbd7e8; }
.dm-footer a:hover { color:#fff; }
.dm-footer__title { font-weight:900; margin-bottom:10px; }
.dm-footer p { color:#aebdd1; }
.dm-footer__bottom { padding:18px 0 26px; border-top:1px solid rgba(255,255,255,.12); color:#aebdd1; font-size:.82rem; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }

.dm-empty { padding:40px; text-align:center; background:#fff; border:1px dashed var(--dm-line); border-radius:18px; color:var(--dm-muted); }

@media (max-width: 1020px) {
  .dm-nav { display:none; position:absolute; top:76px; left:0; right:0; background:#fff; border-bottom:1px solid var(--dm-line); padding:12px 20px 18px; flex-direction:column; align-items:stretch; }
  .dm-nav.is-open { display:flex; }
  .dm-nav > ul,
  .dm-nav__fallback { flex-direction:column; align-items:stretch; width:100%; }
  .dm-nav > ul > li > a,
  .dm-nav__fallback > li > a { width:100%; }
  .dm-menu-toggle { display:block; }
  .dm-header__inner { position:relative; }
  .dm-hero__grid, .dm-feature-grid { grid-template-columns:1fr; }
  .dm-content-layout { grid-template-columns:1fr; }
  .dm-sidebar { position:static; }
  .dm-footer__grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 720px) {
  .dm-container { width:min(var(--dm-container), calc(100% - 28px)); }
  .dm-section { padding:50px 0; }
  .dm-hero { padding:60px 0 50px; }
  .dm-hero h1 { font-size:2.7rem; }
  .dm-grid--3, .dm-grid--2 { grid-template-columns:1fr; }
  .dm-footer__grid { grid-template-columns:1fr; }
  .dm-search__form { flex-direction:column; }
}

/* Accessibility */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: #fff;
  clip: auto !important;
  clip-path: none;
  color: var(--dm-navy);
  display: block;
  font-size: 1rem;
  font-weight: 800;
  height: auto;
  left: 10px;
  line-height: normal;
  padding: 12px 16px;
  position: fixed !important;
  text-decoration: none;
  top: 10px;
  width: auto;
  z-index: 100000;
}
.dm-skip-link {
  position: fixed;
  left: 16px;
  top: -100px;
  z-index: 100001;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--dm-navy);
  color: #fff;
  font-weight: 800;
}
.dm-skip-link:focus { top: 12px; color: #fff; }
:focus-visible {
  outline: 3px solid rgba(21,94,239,.45);
  outline-offset: 3px;
}

/* Brand / WordPress custom logo */
.dm-brand--logo { min-width: 0; }
.dm-brand--logo .custom-logo-link { display: inline-flex; align-items: center; }
.dm-brand--logo .custom-logo { max-height: 52px; width: auto; }
.dm-brand--footer .dm-brand__name { color: #fff; }
.dm-brand--footer .dm-brand__sub { color: #aebdd1; }

/* WordPress menu structure */
.dm-nav__list { list-style: none; margin: 0; padding: 0; }
.dm-nav__list li { list-style: none; margin: 0; padding: 0; position: relative; }
.dm-nav__list > li > a {
  display: block;
  padding: 10px 10px;
  color: #334155;
  font-size: .88rem;
  font-weight: 700;
  border-radius: 10px;
  white-space: nowrap;
}
.dm-nav__list > li > a:hover,
.dm-nav__list > li.current-menu-item > a,
.dm-nav__list > li.current_page_item > a,
.dm-nav__list > li.current-menu-ancestor > a { color: var(--dm-blue); background: var(--dm-soft-blue); text-decoration: none; }
.dm-nav__list .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 210px;
  margin: 0;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--dm-line);
  border-radius: 14px;
  box-shadow: var(--dm-shadow);
  z-index: 20;
}
.dm-nav__list li:hover > .sub-menu,
.dm-nav__list li:focus-within > .sub-menu,
.dm-nav__list li.is-open > .sub-menu { display: block; }
.dm-nav__list > li.menu-item-has-children::after { content:""; position:absolute; left:0; right:0; top:100%; height:10px; }
.dm-nav__list .sub-menu a { display: block; padding: 9px 11px; border-radius: 9px; color: #334155; font-size: .86rem; font-weight: 700; }
.dm-nav__list .sub-menu a:hover,
.dm-nav__list .sub-menu .current-menu-item > a { background: var(--dm-soft-blue); color: var(--dm-blue); text-decoration: none; }
.dm-nav__fallback { display: flex; align-items: center; gap: 2px; }
.dm-nav__fallback > li { position: relative; }

.dm-menu-toggle { cursor: pointer; color: var(--dm-navy); }
.dm-menu-toggle__icon { font-size: 1.05rem; line-height: 1; }
.dm-search-link { text-decoration: none !important; }

/* Breadcrumbs */
.dm-breadcrumbs { background: #fff; border-bottom: 1px solid var(--dm-line); }
.dm-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 10px 0; font-size: .76rem; font-weight: 700; color: var(--dm-muted); }
.dm-breadcrumbs li { display: flex; align-items: center; gap: 6px; }
.dm-breadcrumbs li + li::before { content: '/'; color: #a8b3c2; }
.dm-breadcrumbs a { color: #52647b; }
.dm-breadcrumbs a:hover { color: var(--dm-blue); }
.dm-breadcrumbs span[aria-current="page"] { color: var(--dm-navy); }

/* Content helpers */
.dm-card-title { margin: 0 0 8px; line-height: 1.2; }
.dm-card-title a { color: var(--dm-navy); }
.dm-card-title a:hover { color: var(--dm-blue); }
.dm-featured-image { margin: -10px 0 34px; }
.dm-featured-image img { width: 100%; border-radius: 14px; }
.dm-article-card__placeholder { display: grid; place-items: center; height: 100%; min-height: 150px; color: var(--dm-blue); font-weight: 900; letter-spacing: .08em; background: linear-gradient(135deg,#eaf1fb,#dceff0); }
.dm-result-type { display: inline-block; margin: 0 0 8px; color: var(--dm-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.dm-pagination { margin-top: 30px; }
.dm-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dm-pagination .page-numbers { display: inline-flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; padding: 0 11px; border: 1px solid var(--dm-line); border-radius: 10px; background: #fff; font-weight: 800; }
.dm-pagination .page-numbers.current { background: var(--dm-blue); color: #fff; border-color: var(--dm-blue); }
.dm-prose--center { text-align: center; }
.dm-actions--center { justify-content: center; }

/* Medical callouts */
.dm-callout { position: relative; }
.dm-callout__title { margin-bottom: 6px; font-size: .82rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; color: var(--dm-navy); }
.dm-callout--clinical { background: var(--dm-soft-blue); border-color: #cfe1ff; }
.dm-callout--exam { background: #f4f1ff; border-color: #ded4ff; }
.dm-callout--warning { background: #fff7ed; border-color: #fed7aa; }
.dm-callout--teal { background: var(--dm-soft-teal); border-color: #c6e9e7; }

/* Stronger keyboard states for controls */
.dm-btn:focus-visible,
.dm-tab:focus-visible,
.dm-search-link:focus-visible,
.dm-nav a:focus-visible,
.dm-footer a:focus-visible { text-decoration: none; }

@media (max-width: 1020px) {
  .dm-nav__list { flex-direction: column; align-items: stretch; width: 100%; }
  .dm-nav__list > li > a { width: 100%; }
  .dm-nav__list .sub-menu { position: static; display: block; min-width: 0; margin: 0 0 4px 12px; padding: 0 0 0 10px; border: 0; border-left: 2px solid var(--dm-line); border-radius: 0; box-shadow: none; }
  .dm-nav__list .sub-menu a { padding: 8px 10px; }
}


/* v1.2 visual additions */
.dm-brand__mark { width:44px; height:44px; border-radius:14px; overflow:hidden; padding:0; }
.dm-brand__mark svg { display:block; width:100%; height:100%; }
.dm-search-link { width:42px; height:42px; border:1px solid #cfd9e6; border-radius:14px; background:#fff; cursor:pointer; display:grid; place-items:center; box-shadow:0 4px 14px rgba(11,31,58,.05); }
.dm-search-link svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }
.dm-search-link:hover { color:var(--dm-blue); border-color:#a9c3ef; background:var(--dm-soft-blue); }
.dm-nav__list > li.menu-item-has-children > a::after { content:'⌄'; display:inline-block; margin-left:7px; font-size:.78em; color:var(--dm-muted); }
.dm-qotd-card { min-height:390px; border-radius:28px; overflow:hidden; background:linear-gradient(145deg,#172554 0%,#155eef 58%,#0f8b8d 100%); color:#fff; padding:28px; box-shadow:var(--dm-shadow); position:relative; }
.dm-qotd-card::after { content:''; position:absolute; width:180px; height:180px; border-radius:50%; right:-70px; top:-70px; background:rgba(231,111,81,.22); }
.dm-qotd-card__top { display:flex; justify-content:space-between; align-items:center; gap:10px; position:relative; z-index:1; }
.dm-qotd-badge { display:inline-flex; padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.25); font-size:.74rem; font-weight:900; }
.dm-qotd-date { font-size:.72rem; color:rgba(255,255,255,.78); font-weight:800; }
.dm-qotd-card h2 { position:relative; z-index:1; margin:20px 0 16px; color:#fff; font-size:1.34rem; line-height:1.25; }
.dm-qotd-options { display:grid; gap:8px; position:relative; z-index:1; }
.dm-qotd-option { display:flex; align-items:center; gap:10px; min-height:43px; padding:8px 10px; border-radius:11px; color:#fff; font-size:.84rem; font-weight:700; border:1px solid rgba(255,255,255,.18); }
.dm-qotd-option.is-correct { background:rgba(31,157,101,.96); border-color:rgba(255,255,255,.32); }
.dm-qotd-option.is-other { background:rgba(217,83,79,.84); border-color:rgba(255,255,255,.18); }
.dm-qotd-option__letter { width:26px; height:26px; display:grid; place-items:center; border-radius:8px; background:rgba(255,255,255,.16); font-size:.72rem; flex:none; }
.dm-qotd-check { margin-left:auto; font-size:1.05rem; }
.dm-qotd-explanation { position:relative; z-index:1; margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.88); font-size:.77rem; line-height:1.5; }
.dm-qotd-explanation strong { color:#fff; }
.dm-search-dialog[hidden] { display:none; }
.dm-search-dialog { position:fixed; inset:0; z-index:10000; display:grid; place-items:start center; padding:12vh 20px 30px; }
.dm-search-dialog__backdrop { position:absolute; inset:0; background:rgba(5,15,30,.62); backdrop-filter:blur(6px); }
.dm-search-dialog__panel { position:relative; width:min(720px,100%); background:#fff; border-radius:24px; padding:34px; box-shadow:0 25px 80px rgba(0,0,0,.24); }
.dm-search-dialog__panel h2 { margin:7px 0 18px; color:var(--dm-navy); font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.05; }
.dm-search-dialog__panel p { color:var(--dm-muted); font-size:.9rem; margin:12px 0 0; }
.dm-search-dialog__close { position:absolute; top:14px; right:16px; width:42px; height:42px; border:1px solid var(--dm-line); border-radius:12px; background:#fff; color:var(--dm-navy); font-size:1.7rem; cursor:pointer; line-height:1; }
.dm-search-dialog__form { display:flex; gap:10px; }
.dm-search-dialog__form input { flex:1; min-height:60px; border:2px solid #cfd9e6; border-radius:15px; padding:0 17px; font-size:1rem; outline:none; }
.dm-search-dialog__form input:focus { border-color:var(--dm-blue); box-shadow:0 0 0 4px rgba(21,94,239,.12); }
.dm-search-dialog__form button { width:64px; min-height:60px; border:0; border-radius:15px; background:var(--dm-blue); color:#fff; font-size:1.7rem; font-weight:900; cursor:pointer; }
.dm-search-dialog__form button:hover { background:var(--dm-blue-dark); }
body.dm-search-open { overflow:hidden; }
.dm-chip:nth-of-type(3n) { background:#fff1ed; color:#b5472f; }
.dm-card__icon { background:linear-gradient(135deg,var(--dm-soft-blue),#f4f1ff); color:var(--dm-purple); }
.dm-feature__media { background:linear-gradient(135deg,#155eef,#6d5dfc 55%,#0f8b8d); }
@media (max-width:720px) {
  .dm-qotd-card { min-height:0; padding:22px; }
  .dm-search-dialog { padding:7vh 14px 20px; }
  .dm-search-dialog__panel { padding:28px 20px 22px; }
  .dm-search-dialog__form { gap:8px; }
  .dm-search-dialog__form input { min-width:0; }
  .dm-search-dialog__form button { width:56px; }
}

/* v1.3 interactive Question of the Day */
.dm-qotd-card { background:#fff; color:var(--dm-ink); border:1px solid var(--dm-line); }
.dm-qotd-card::after { background:rgba(20,184,166,.10); }
.dm-qotd-card h2 { color:var(--dm-navy); }
.dm-qotd-badge { color:var(--dm-blue); background:var(--dm-soft-blue); border-color:#cfe1ff; }
.dm-qotd-date { color:var(--dm-muted); }
.dm-qotd-option { width:100%; text-align:left; color:var(--dm-navy); background:#fff; border:1px solid var(--dm-line); cursor:pointer; transition:transform .16s ease, border-color .16s ease, background .16s ease; }
.dm-qotd-option:hover { transform:translateY(-1px); border-color:#9ab8ef; background:#f8fbff; }
.dm-qotd-option:focus-visible { outline:3px solid rgba(37,99,235,.28); outline-offset:2px; }
.dm-qotd-option__letter { background:#edf4ff; color:var(--dm-blue); }
.dm-qotd-option.is-selected { border-color:var(--dm-blue); background:#eef5ff; }
.dm-qotd-option.is-correct { background:#e9f8ef; color:#0f6b3d; border-color:#8fd8ad; }
.dm-qotd-option.is-wrong { background:#fff0f0; color:#a92e2a; border-color:#f0a4a1; }
.dm-qotd-option.is-disabled { cursor:default; }
.dm-qotd-option.is-disabled:hover { transform:none; }
.dm-qotd-check { color:var(--dm-green); }
.dm-qotd-feedback[hidden] { display:none; }
.dm-qotd-feedback { position:relative; z-index:1; margin-top:14px; padding:13px 14px; border-radius:12px; background:#effaf4; border:1px solid #b9e6ca; color:#145c36; font-size:.82rem; line-height:1.5; }
.dm-qotd-feedback strong { color:#0f6b3d; }
.dm-qotd-instruction { position:relative; z-index:1; margin:0 0 12px; color:var(--dm-muted); font-size:.78rem; }
.dm-qotd-card .dm-qotd-explanation { color:var(--dm-muted); border-top-color:var(--dm-line); }
.dm-qotd-card .dm-qotd-explanation strong { color:var(--dm-navy); }
.dm-qotd-card__top, .dm-qotd-card h2, .dm-qotd-options, .dm-qotd-instruction, .dm-qotd-feedback, .dm-qotd-explanation { color:inherit; }
.dm-qotd-submit[disabled] { opacity:.55; cursor:not-allowed; }
@media (max-width:720px) { .dm-search-link { width:42px; height:42px; } .dm-brand__image { width:205px; } }

/* =========================================================
   v1.4.0 — Screenshot-matched DNB Medicine visual system
   The homepage is intentionally kept close to the supplied
   reference: 104px header, soft clinical hero, white QOTD card,
   four coloured learning shortcuts, and generous spacing.
   ========================================================= */
:root {
  --dm-navy: #0b2d5b;
  --dm-blue: #2563eb;
  --dm-blue-dark: #174fc7;
  --dm-teal: #14b8a6;
  --dm-green: #16a34a;
  --dm-purple: #8b5cf6;
  --dm-coral: #f97316;
  --dm-gold: #f59e0b;
  --dm-red: #ef4444;
  --dm-ink: #102a50;
  --dm-muted: #536d94;
  --dm-line: #dbe6f2;
  --dm-bg: #f7fbff;
  --dm-soft-blue: #edf5ff;
  --dm-soft-teal: #eafaf7;
  --dm-container: 1350px;
}

body {
  background: #f7fbff;
  color: var(--dm-ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.dm-container { width: min(var(--dm-container), calc(100% - 48px)); }
.dm-header {
  position: relative;
  background: #fff;
  border-bottom: 1px solid #e6eef7;
  box-shadow: 0 2px 14px rgba(18, 58, 105, .025);
}
.dm-header__inner {
  min-height: 104px;
  gap: 26px;
}
.dm-brand--default {
  width: 205px;
  max-width: 205px;
  flex: 0 0 205px;
}
.dm-brand__image {
  display: block;
  width: 205px;
  height: 78px;
  max-height: none;
  object-fit: contain;
  object-position: left center;
}
.dm-nav { gap: 17px; }
.dm-nav > ul,
.dm-nav__fallback {
  gap: 12px;
}
.dm-nav > ul > li > a,
.dm-nav__fallback > li > a {
  display: inline-flex;
  align-items: center;
  min-height: 43px;
  padding: 0 17px;
  border-radius: 11px;
  color: #082d61;
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: -.01em;
}
.dm-nav > ul > li > a:hover,
.dm-nav > ul > li.current-menu-item > a,
.dm-nav > ul > li.current-menu-ancestor > a,
.dm-nav__fallback > li > a:hover {
  color: #082d61;
  background: #eef5ff;
}
.dm-nav > ul > li:first-child > a,
.dm-nav__fallback > li:first-child > a {
  color: #fff;
  background: var(--dm-blue);
  box-shadow: 0 7px 17px rgba(37, 99, 235, .19);
}
.dm-nav > ul > li:first-child > a::before,
.dm-nav__fallback > li:first-child > a::before {
  content: '⌂';
  margin-right: 7px;
  font-size: 18px;
  line-height: 1;
}
.dm-nav__list > li.menu-item-has-children > a::after { content: '⌄'; margin-left: 7px; color: #31578c; font-size: 15px; }
.dm-search-link {
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: var(--dm-blue);
  box-shadow: 0 8px 18px rgba(37, 99, 235, .16);
}
.dm-search-link:hover { color: #fff; background: #1d56d0; border-color: transparent; }
.dm-search-link svg { width: 30px; height: 30px; stroke-width: 2.15; }

/* Learn dropdown: white card with a small pointer and icon-led rows. */
.dm-nav__list > li.menu-item-has-children,
.dm-nav__fallback > li.menu-item-has-children { position: relative; }
.dm-nav__list .sub-menu,
.dm-nav__fallback .sub-menu {
  position: absolute;
  top: calc(100% + 1px);
  left: 0;
  min-width: 185px;
  padding: 10px 0;
  margin: 0;
  list-style: none;
  background: #fff;
  border: 1px solid #e5edf7;
  border-radius: 15px;
  box-shadow: 0 16px 35px rgba(22, 61, 108, .11);
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.dm-nav__list .sub-menu::before,
.dm-nav__fallback .sub-menu::before {
  content: '';
  position: absolute;
  top: -9px;
  left: 0;
  width: 100%;
  height: 10px;
}
.dm-nav__list > li:hover > .sub-menu,
.dm-nav__list > li:focus-within > .sub-menu,
.dm-nav__list > li.is-open > .sub-menu,
.dm-nav__fallback > li:hover > .sub-menu,
.dm-nav__fallback > li:focus-within > .sub-menu,
.dm-nav__fallback > li.is-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.dm-nav__list .sub-menu li a,
.dm-nav__fallback .sub-menu li a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0 20px;
  color: #0b2d5b;
  font-size: 15px;
  font-weight: 500;
}
.dm-nav__list .sub-menu li a:hover,
.dm-nav__fallback .sub-menu li a:hover { background: #f4f8fd; color: var(--dm-blue); text-decoration: none; }
.dm-nav__list .sub-menu li a::before,
.dm-nav__fallback .sub-menu li a::before {
  width: 22px;
  margin-right: 13px;
  color: var(--dm-blue);
  font-size: 19px;
  line-height: 1;
  text-align: center;
}
.dm-nav__list .sub-menu li:nth-child(1) a::before,
.dm-nav__fallback .sub-menu li:nth-child(1) a::before { content: '▱'; }
.dm-nav__list .sub-menu li:nth-child(2) a::before,
.dm-nav__fallback .sub-menu li:nth-child(2) a::before { content: '▤'; }
.dm-nav__list .sub-menu li:nth-child(3) a::before,
.dm-nav__fallback .sub-menu li:nth-child(3) a::before { content: '♧'; }

/* Screenshot-matched hero */
.dm-home-hero {
  position: relative;
  min-height: 484px;
  padding: 13px 0 12px;
  background: #eef8fd;
  overflow: visible;
}
.dm-home-hero::after {
  content: '';
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 54%;
  background: url('assets/images/dnb-medicine-hero-bg.jpg') right center / auto 100% no-repeat;
  opacity: .97;
  pointer-events: none;
}
.dm-home-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 522px;
  gap: 54px;
  align-items: center;
  min-height: 459px;
}
.dm-home-hero__copy { padding-left: 2px; }
.dm-home-hero__eyebrow {
  color: var(--dm-blue);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.dm-home-hero h1 {
  margin: 19px 0 19px;
  color: #0a2d60;
  font-size: clamp(3.35rem, 4.1vw, 4.25rem);
  line-height: 1.02;
  letter-spacing: -.055em;
  font-weight: 800;
}
.dm-home-hero__lead {
  max-width: 680px;
  margin: 0;
  color: #315a8e;
  font-size: 17px;
  line-height: 1.8;
  font-weight: 400;
}
.dm-hero-features {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 31px;
  margin-top: 30px;
}
.dm-hero-feature {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #123a72;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  white-space: nowrap;
}
.dm-hero-feature:hover { color: #123a72; text-decoration: none; }
.dm-hero-feature__icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.dm-hero-feature__icon svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.dm-hero-feature__icon--blue { color: #fff; background: var(--dm-blue); }
.dm-hero-feature__icon--purple { color: #fff; background: var(--dm-purple); }
.dm-hero-feature__icon--teal { color: #fff; background: var(--dm-teal); }
.dm-hero-feature__icon--coral { color: #fff; background: var(--dm-coral); }

/* Question of the Day card */
.dm-qotd-card {
  width: 100%;
  min-height: 460px;
  padding: 18px 27px 19px;
  background: rgba(255,255,255,.96);
  border: 1px solid #dce7f2;
  border-radius: 16px;
  color: var(--dm-ink);
  box-shadow: 0 12px 30px rgba(23, 65, 111, .08);
}
.dm-qotd-card::after { display: none; }
.dm-qotd-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 38px;
  padding-bottom: 9px;
  border-bottom: 1px solid #eff3f7;
}
.dm-qotd-title-wrap { display: flex; align-items: center; gap: 12px; }
.dm-qotd-target {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--dm-teal);
}
.dm-qotd-target svg { width: 33px; height: 33px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dm-qotd-badge { padding: 0; border: 0; background: none; color: #10234a; font-size: 18px; font-weight: 800; }
.dm-qotd-date { display: inline-flex; align-items: center; gap: 7px; color: #52709b; font-size: 12px; font-weight: 500; white-space: nowrap; }
.dm-qotd-date svg { width: 17px; height: 17px; stroke: #4c86c6; stroke-width: 1.7; }
.dm-qotd-card h2 {
  margin: 12px 0 13px;
  color: #102d5f;
  font-size: 16px;
  line-height: 1.58;
  font-weight: 750;
  letter-spacing: -.01em;
}
.dm-qotd-options { display: grid; gap: 7px; }
.dm-qotd-option {
  width: 100%;
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  border: 1px solid #d9e4ef;
  border-radius: 10px;
  background: #fff;
  color: #163764;
  text-align: left;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .12s ease, border-color .12s ease, transform .12s ease;
}
.dm-qotd-option:hover { background: #f7fbff; border-color: #a9c6e5; transform: translateY(-1px); }
.dm-qotd-option__letter { color: #153c73; font-weight: 800; }
.dm-qotd-radio {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border: 1.8px solid #d5e0eb;
  border-radius: 50%;
  background: #fff;
}
.dm-qotd-option__text { flex: 1; }
.dm-qotd-check { margin-left: auto; font-size: 17px; font-weight: 900; }
.dm-qotd-option.is-selected { border-color: var(--dm-blue); background: #f1f6ff; }
.dm-qotd-option.is-selected .dm-qotd-radio { border-color: var(--dm-blue); box-shadow: inset 0 0 0 5px #fff; background: var(--dm-blue); }
.dm-qotd-option.is-correct { color: #075e32; background: #e8f8ef; border-color: #83d5aa; }
.dm-qotd-option.is-correct .dm-qotd-radio { border-color: var(--dm-green); box-shadow: inset 0 0 0 5px #fff; background: var(--dm-green); }
.dm-qotd-option.is-wrong { color: #9c2727; background: #fff0f0; border-color: #f0aaa7; }
.dm-qotd-option.is-wrong .dm-qotd-radio { border-color: var(--dm-red); }
.dm-qotd-option.is-disabled { cursor: default; }
.dm-qotd-option.is-disabled:hover { transform: none; }
.dm-qotd-option.is-correct .dm-qotd-check { color: var(--dm-green); }
.dm-qotd-option.is-wrong .dm-qotd-check { color: var(--dm-red); }
.dm-qotd-feedback[hidden], .dm-qotd-explanation[hidden] { display: none; }
.dm-qotd-feedback { margin-top: 9px; padding: 8px 11px; border-radius: 9px; font-size: 12px; line-height: 1.4; }
.dm-qotd-explanation {
  display: flex;
  gap: 10px;
  margin-top: 11px;
  padding: 11px 12px;
  border: 1px solid #a9e4c4;
  border-radius: 9px;
  background: #e9f9f0;
  color: #153b2a;
  font-size: 12px;
  line-height: 1.55;
}
.dm-qotd-explanation strong { color: #075e32; }
.dm-qotd-explanation__icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--dm-green);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}
.dm-qotd-empty { color: var(--dm-muted); }

/* Keep the rest of the site in the same visual language. */
.dm-section { background: #fff; }
.dm-btn--primary { background: var(--dm-blue); }
.dm-btn--secondary { border-color: #9ec0ee; color: var(--dm-blue); }
.dm-card { border-color: #dce7f2; }
.dm-section-title, .dm-page-hero h1, .dm-post-header h1 { color: #0a2d60; }

@media (max-width: 1120px) {
  .dm-header__inner { gap: 14px; }
  .dm-nav { gap: 5px; }
  .dm-nav > ul, .dm-nav__fallback { gap: 3px; }
  .dm-nav > ul > li > a, .dm-nav__fallback > li > a { padding: 0 11px; font-size: 14px; }
  .dm-brand--default, .dm-brand__image { width: 185px; flex-basis: 185px; }
  .dm-search-link { width: 58px; height: 58px; flex-basis: 58px; }
  .dm-home-hero__grid { grid-template-columns: minmax(0, 1fr) 470px; gap: 28px; }
  .dm-home-hero h1 { font-size: 3.4rem; }
}

@media (max-width: 1020px) {
  .dm-header__inner { min-height: 82px; }
  .dm-brand--default, .dm-brand__image { width: 180px; flex-basis: 180px; height: 68px; }
  .dm-menu-toggle { display: grid; place-items: center; }
  .dm-nav {
    position: absolute;
    top: 82px;
    left: 24px;
    right: 24px;
    display: none;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--dm-line);
    border-radius: 15px;
    box-shadow: 0 18px 40px rgba(16, 45, 86, .13);
  }
  .dm-nav.is-open { display: block; }
  .dm-nav > ul, .dm-nav__fallback { flex-direction: column; align-items: stretch; width: 100%; }
  .dm-nav > ul > li > a, .dm-nav__fallback > li > a { width: 100%; justify-content: flex-start; }
  .dm-nav > ul > li:first-child > a, .dm-nav__fallback > li:first-child > a { justify-content: flex-start; }
  .dm-search-link { width: 100%; height: 44px; border-radius: 11px; margin-top: 8px; }
  .dm-nav__list .sub-menu, .dm-nav__fallback .sub-menu {
    position: static;
    display: none;
    min-width: 0;
    margin: 0 0 5px 12px;
    padding: 0 0 0 10px;
    border: 0;
    border-left: 2px solid var(--dm-line);
    border-radius: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .dm-nav__list > li.menu-item-has-children.is-open > .sub-menu,
  .dm-nav__fallback > li.menu-item-has-children.is-open > .sub-menu,
  .dm-nav__list > li.menu-item-has-children:focus-within > .sub-menu,
  .dm-nav__fallback > li.menu-item-has-children:focus-within > .sub-menu { display: block; }
  .dm-home-hero { padding: 38px 0 40px; }
  .dm-home-hero::after { width: 48%; opacity: .45; }
  .dm-home-hero__grid { grid-template-columns: 1fr; min-height: 0; }
  .dm-home-hero__copy { padding: 0; }
  .dm-qotd-card { max-width: 650px; }
}

@media (max-width: 720px) {
  .dm-container { width: min(100% - 28px, var(--dm-container)); }
  .dm-header__inner { min-height: 74px; }
  .dm-brand--default, .dm-brand__image { width: 166px; flex-basis: 166px; height: 63px; }
  .dm-nav { top: 74px; left: 14px; right: 14px; }
  .dm-home-hero { padding: 30px 0; }
  .dm-home-hero::after { display: none; }
  .dm-home-hero h1 { margin-top: 15px; font-size: 2.7rem; }
  .dm-home-hero__lead { font-size: 15px; line-height: 1.65; }
  .dm-hero-features { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 10px; }
  .dm-hero-feature { font-size: 12px; }
  .dm-hero-feature__icon { width: 38px; height: 38px; flex-basis: 38px; }
  .dm-qotd-card { padding: 16px; border-radius: 14px; }
  .dm-qotd-badge { font-size: 15px; }
  .dm-qotd-date { font-size: 11px; }
}

/* =========================================================
   Homepage v2 — approved DNB Medicine content architecture
   ========================================================= */
.dm-home { background:#fff; }
.dm-home-hero {
  position:relative;
  overflow:hidden;
  padding:58px 0 62px;
  background:#edf8fc;
}
.dm-home-hero::after {
  content:"";
  position:absolute;
  top:0; right:0; bottom:0;
  width:22%;
  min-width:220px;
  background-image:linear-gradient(90deg,rgba(237,248,252,1) 0%,rgba(237,248,252,.22) 35%,rgba(237,248,252,.02) 100%),url("assets/images/dnb-medicine-hero-bg.jpg");
  background-size:cover;
  background-position:center;
  opacity:.32;
  pointer-events:none;
}
.dm-home-hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(430px,.72fr); gap:58px; align-items:center; }
.dm-home-hero__copy { padding:20px 0; }
.dm-home-eyebrow { margin:0 0 17px; color:#2563eb; font-size:.84rem; font-weight:900; letter-spacing:.13em; }
.dm-home-hero h1 { max-width:720px; margin:0 0 22px; color:#0b2d5b; font-size:clamp(3rem,5vw,4.55rem); line-height:1.03; letter-spacing:-.055em; font-weight:850; }
.dm-home-hero__lead { max-width:700px; margin:0; color:#5b7089; font-size:1.08rem; line-height:1.75; }
.dm-home-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.dm-home-actions .dm-btn { min-height:50px; padding:0 21px; border-radius:12px; }
.dm-home-actions .dm-btn--secondary { border-color:#a9c5e3; color:#0b2d5b; }
.dm-home-qotd { min-height:0; border-radius:20px; padding:26px; box-shadow:0 16px 40px rgba(11,45,91,.10); }
.dm-home-qotd .dm-qotd-title-wrap { display:flex; align-items:center; gap:10px; }
.dm-home-qotd .dm-qotd-target { width:30px; height:30px; display:grid; place-items:center; color:#14b8a6; }
.dm-home-qotd .dm-qotd-target svg { width:30px; height:30px; stroke:currentColor; stroke-width:1.8; }
.dm-home-qotd .dm-qotd-badge { padding:0; border:0; background:none; color:#162f55; font-size:1rem; }
.dm-home-qotd .dm-qotd-date { display:flex; align-items:center; gap:7px; font-size:.78rem; color:#58708b; }
.dm-home-qotd .dm-qotd-date svg { width:16px; height:16px; stroke:currentColor; stroke-width:1.5; }
.dm-home-qotd h2 { font-size:1.04rem; line-height:1.5; margin:17px 0 15px; }
.dm-home-qotd .dm-qotd-option { min-height:42px; padding:7px 10px; border-radius:10px; }
.dm-home-qotd .dm-qotd-radio { width:20px; height:20px; border:2px solid #d5e1ec; border-radius:50%; flex:none; }
.dm-home-qotd .dm-qotd-option__letter { width:27px; height:27px; border-radius:8px; background:#edf4ff; color:#0b2d5b; }
.dm-home-section { padding:72px 0; }
.dm-home-gateway-section { background:#f7fbfe; }
.dm-home-section__heading { margin-bottom:30px; }
.dm-home-section__heading h2 { margin:7px 0 8px; color:#0b2d5b; font-size:clamp(2rem,3.2vw,2.55rem); line-height:1.1; letter-spacing:-.035em; }
.dm-home-section__heading p { max-width:730px; margin:0; color:#60748c; font-size:1rem; line-height:1.65; }
.dm-home-gateway-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.dm-home-gateway { min-height:280px; padding:27px; display:flex; flex-direction:column; background:#fff; color:#0b2d5b; border:1px solid #d7e5f2; border-radius:18px; box-shadow:0 8px 24px rgba(11,45,91,.05); text-decoration:none; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.dm-home-gateway:hover { transform:translateY(-4px); border-color:#aec8e5; box-shadow:0 16px 34px rgba(11,45,91,.10); text-decoration:none; }
.dm-home-gateway__icon { width:50px; height:50px; display:grid; place-items:center; margin-bottom:21px; border-radius:14px; font-size:23px; }
.dm-home-gateway--blue .dm-home-gateway__icon { background:#e8f0ff; }
.dm-home-gateway--teal .dm-home-gateway__icon { background:#e4faf7; }
.dm-home-gateway--coral .dm-home-gateway__icon { background:#fff0e7; }
.dm-home-gateway--purple .dm-home-gateway__icon { background:#f0eafe; }
.dm-home-gateway h3 { margin:0 0 8px; color:#0b2d5b; font-size:1.25rem; line-height:1.2; }
.dm-home-gateway p { margin:0; color:#61758d; font-size:.91rem; line-height:1.62; }
.dm-home-card-link { margin-top:auto; padding-top:19px; color:#2563eb; font-size:.86rem; font-weight:850; }
.dm-home-medicine-section { background:#fff; }
.dm-home-section__heading--wide { margin-bottom:31px; }
.dm-home-topic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.dm-home-topic { min-height:174px; display:flex; flex-direction:column; padding:22px; background:#fff; border:1px solid #d7e5f2; border-radius:16px; color:#0b2d5b; text-decoration:none; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.dm-home-topic:hover { transform:translateY(-2px); border-color:#b5cae2; box-shadow:0 10px 25px rgba(11,45,91,.07); text-decoration:none; }
.dm-home-topic__icon { font-size:25px; line-height:1; margin-bottom:15px; }
.dm-home-topic h3 { margin:0 0 7px; font-size:1.08rem; line-height:1.25; }
.dm-home-topic p { margin:0; color:#64788f; font-size:.85rem; line-height:1.55; }
.dm-home-latest-section { background:#f7fbfe; }
.dm-home-section__heading--latest { display:flex; justify-content:space-between; align-items:flex-end; gap:25px; }
.dm-home-view-all { flex:none; }
.dm-home-latest-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; }
.dm-home-latest-card { min-height:245px; display:flex; flex-direction:column; padding:22px; background:#fff; border:1px solid #d7e5f2; border-radius:16px; box-shadow:0 6px 20px rgba(11,45,91,.035); }
.dm-home-latest-card__meta { display:flex; justify-content:space-between; gap:8px; margin-bottom:13px; color:#58708b; font-size:.72rem; font-weight:800; }
.dm-home-latest-card__meta span:first-child { color:#2563eb; }
.dm-home-latest-card h3 { margin:0 0 10px; font-size:1.06rem; line-height:1.3; }
.dm-home-latest-card h3 a { color:#0b2d5b; }
.dm-home-latest-card p { margin:0; color:#61758d; font-size:.84rem; line-height:1.55; }
.dm-home-latest-card .dm-home-card-link { margin-top:auto; }

@media (max-width:1080px) {
  .dm-home-hero__grid { grid-template-columns:minmax(0,1fr) minmax(390px,.78fr); gap:35px; }
  .dm-home-gateway-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dm-home-latest-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .dm-home-hero { padding:48px 0 55px; }
  .dm-home-hero::after { width:30%; min-width:150px; opacity:.2; }
  .dm-home-hero__grid { grid-template-columns:1fr; }
  .dm-home-topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dm-home-section__heading--latest { align-items:flex-start; flex-direction:column; }
}
@media (max-width:560px) {
  .dm-home-hero h1 { font-size:2.7rem; }
  .dm-home-hero__lead { font-size:.98rem; }
  .dm-home-gateway-grid,.dm-home-topic-grid,.dm-home-latest-grid { grid-template-columns:1fr; }
  .dm-home-section { padding:52px 0; }
  .dm-home-qotd { padding:20px; }
  .dm-home-actions .dm-btn { width:100%; }
}