/*
Theme Name: Dr. Mann
Template: hello-elementor
Description: Dr. Richard H. Mann site theme. Design tokens, header, footer and content templates; pages are built in Elementor.
Version: 1.0.0
Author: Venty Media
Text Domain: drmann
*/

/* ── Design tokens ───────────────────────────────────────────────────────── */
:root {
  --dm-bg: #ffffff;
  --dm-text: #323f4b;
  --dm-heading: #0b1118;
  --dm-lead: #504a40;
  --dm-muted-text: #6c757d;
  --dm-teal: #147d64;
  --dm-teal-hover: #106752;
  --dm-teal-soft: #e1f9f2;
  --dm-teal-deep: #0d5141;
  --dm-teal-light: #199473;
  --dm-band: #f5f7fa;
  --dm-cream: #faf9f7;
  --dm-mint: #c4e3df;
  --dm-nav: #f5fffb;
  --dm-ink: #1f2933;
  --dm-footer: #0b1118;
  --dm-card: #eef1f2;
  --dm-border: #dee2e6;
  --dm-border-strong: #cbd2d9;
  --dm-star: #e8742c;
  --dm-hero-from: #98dce8;
  --dm-hero-mid: #d8f1f1;

  --dm-serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;
  --dm-sans: Inter, ui-sans-serif, system-ui, sans-serif;
  --dm-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --dm-radius: 0.5rem;
  --dm-radius-lg: 0.75rem;
  --dm-shadow-md: 0 4px 12px -2px rgb(31 41 51 / 0.08), 0 2px 4px -1px rgb(31 41 51 / 0.04);
  --dm-shadow-lg: 0 7px 18px 0 rgb(31 41 51 / 0.12);
  --dm-shadow-cta: 0 4px 14px 0 rgb(20 125 100 / 0.32);
  --dm-ease: cubic-bezier(0.16, 1, 0.3, 1);

  --dm-max: 72rem;
  --dm-prose: 42rem;
  --dm-gutter: clamp(1.25rem, 4.5vw, 4rem);
  --dm-section: clamp(3.5rem, 6vw, 5rem);
  --dm-gap: clamp(1.25rem, 2vw + 0.5rem, 2rem);
}

/* ── Base ────────────────────────────────────────────────────────────────── */
body {
  background: var(--dm-bg);
  color: var(--dm-text);
  font-family: var(--dm-sans);
  font-size: 1rem;
  line-height: 1.625;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--dm-serif);
  color: var(--dm-heading);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.5em;
}
h1 { font-size: clamp(2.25rem, 4vw + 1rem, 3.5rem); }
h2 { font-size: clamp(1.75rem, 2vw + 1rem, 2.5rem); }
h3 { font-size: clamp(1.25rem, 1vw + 0.9rem, 1.5rem); }
h1 em, h2 em, h3 em, .dm-accent { font-style: italic; color: var(--dm-teal); }
a { color: var(--dm-teal); text-decoration: none; transition: color 150ms var(--dm-ease); }
a:hover { color: var(--dm-teal-hover); }
img { max-width: 100%; height: auto; }
p { margin: 0 0 1.25rem; }

/* Hello Elementor resets we don't want */
.site-header, .site-footer { display: none; }
.page-header .entry-title { display: none; }
.elementor-page .site-main { max-width: none; padding: 0; }

/* ── Layout helpers (usable as Elementor CSS classes) ───────────────────── */
.dm-wrap { width: 100%; max-width: calc(var(--dm-max) + 2 * var(--dm-gutter)); margin-inline: auto; padding-inline: var(--dm-gutter); }
.dm-section { padding-block: var(--dm-section); }
.dm-band { background: var(--dm-band); }
.dm-band-mint { background: var(--dm-mint); }
.dm-band-cream { background: var(--dm-cream); }
.dm-center { text-align: center; }
.dm-prose-width { max-width: var(--dm-prose); margin-inline: auto; }

.dm-eyebrow, .dm-eyebrow .elementor-heading-title {
  font-family: var(--dm-mono);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dm-muted-text);
  margin: 0 0 0.75rem;
}
.dm-eyebrow--teal, .dm-eyebrow--teal .elementor-heading-title { color: var(--dm-teal); }
.dm-lead, .dm-lead p { font-size: 1.125rem; line-height: 1.6; color: var(--dm-lead); }
.dm-small { font-size: 0.875rem; color: var(--dm-muted-text); }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.dm-btn, .dm-btn .elementor-button, button.dm-btn, input.dm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font-family: var(--dm-sans); font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  padding: 0.95rem 1.5rem; border-radius: var(--dm-radius);
  background: var(--dm-ink); color: #fff; border: 1px solid transparent;
  cursor: pointer; transition: background 150ms var(--dm-ease), transform 150ms var(--dm-ease);
}
.dm-btn:hover, .dm-btn .elementor-button:hover { background: #111a22; color: #fff; }
.dm-btn.dm-btn--teal, .dm-btn--teal .elementor-button { background: var(--dm-teal); color: #fff; box-shadow: var(--dm-shadow-cta); }
.dm-btn.dm-btn--teal:hover, .dm-btn--teal .elementor-button:hover { background: var(--dm-teal-hover); }
.dm-btn.dm-btn--ghost, .dm-btn--ghost .elementor-button { background: #fff; color: var(--dm-heading); border-color: var(--dm-border); }
.dm-btn.dm-btn--ghost:hover, .dm-btn--ghost .elementor-button:hover { background: var(--dm-band); color: var(--dm-heading); }
.dm-btn.dm-btn--soft, .dm-btn--soft .elementor-button { background: var(--dm-teal-soft); color: var(--dm-teal-deep); }
.dm-btn.dm-btn--soft:hover { background: #cdf3e7; color: var(--dm-teal-deep); }
.dm-link-arrow {
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dm-teal);
}
.dm-link-arrow::after { content: " \2192"; }

/* ── Header ──────────────────────────────────────────────────────────────── */
.dm-header { position: sticky; top: 0; z-index: 50; background: var(--dm-nav); border-bottom: 1px solid var(--dm-border); }
.admin-bar .dm-header { top: 32px; }
.dm-header__top { background: linear-gradient(to right, #e0f2f1, #f0fdfa, #e0f2f1); }
.dm-header__top .dm-wrap { display: flex; align-items: center; gap: 1.5rem; min-height: 4.25rem; }
.dm-logo { font-family: var(--dm-serif); font-weight: 600; font-size: 1.375rem; color: var(--dm-heading); white-space: nowrap; }
.dm-logo:hover { color: var(--dm-heading); }
.dm-search { flex: 1; max-width: 24rem; position: relative; }
.dm-search input {
  width: 100%; height: 2.5rem; border: 1px solid var(--dm-border); border-radius: var(--dm-radius);
  padding: 0 2.5rem 0 0.875rem; font-size: 0.875rem; background: #fff;
}
.dm-search button { position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: var(--dm-muted-text); padding: 0.25rem; cursor: pointer; }
.dm-header__actions { margin-left: auto; display: flex; gap: 0.75rem; }
.dm-header__actions .dm-btn { padding: 0.75rem 1.25rem; }
.dm-header__nav .dm-wrap { display: flex; align-items: center; justify-content: center; gap: 1rem; min-height: 3.25rem; }
.dm-menu, .dm-menu ul { list-style: none; margin: 0; padding: 0; }
.dm-menu { display: flex; gap: 0.25rem; }
.dm-menu > li { position: relative; }
.dm-menu > li > a {
  display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.75rem 1rem;
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dm-heading);
}
.dm-menu > li.menu-item-has-children > a::after { content: ""; width: 0.4rem; height: 0.4rem; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg) translateY(-2px); margin-left: 0.25rem; }
.dm-menu > li > a:hover, .dm-menu > li.current-menu-item > a, .dm-menu > li.current-menu-ancestor > a { color: var(--dm-teal); }
.dm-menu .sub-menu {
  position: absolute; left: 0; top: 100%; min-width: 15rem; background: #fff; border: 1px solid var(--dm-border);
  border-radius: var(--dm-radius); box-shadow: var(--dm-shadow-lg); padding: 0.5rem; opacity: 0; visibility: hidden;
  transform: translateY(4px); transition: all 150ms var(--dm-ease);
}
.dm-menu li:hover > .sub-menu, .dm-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.dm-menu .sub-menu a { display: block; padding: 0.5rem 0.75rem; border-radius: 0.375rem; font-size: 0.9375rem; color: var(--dm-text); }
.dm-menu .sub-menu a:hover { background: var(--dm-teal-soft); color: var(--dm-teal-deep); }
.dm-header__nav .dm-btn--soft { margin-left: 1.5rem; padding: 0.7rem 1.25rem; }
.dm-burger { display: none; margin-left: auto; background: none; border: 0; padding: 0.5rem; cursor: pointer; color: var(--dm-heading); }

@media (max-width: 960px) {
  .dm-search, .dm-header__actions { display: none; }
  .dm-burger { display: inline-flex; }
  .dm-header__nav { display: none; }
  .dm-header.is-open .dm-header__nav { display: block; }
  .dm-header__nav .dm-wrap { flex-direction: column; align-items: stretch; padding-block: 0.5rem 1.25rem; }
  .dm-menu { flex-direction: column; }
  .dm-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 1rem; }
  .dm-header__nav .dm-btn--soft { margin: 0.75rem 0 0; }
  .dm-header__mobile-actions { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
}
@media (min-width: 961px) { .dm-header__mobile-actions { display: none; } }

/* ── Hero ────────────────────────────────────────────────────────────────── */
.dm-hero { background: linear-gradient(90deg, var(--dm-hero-from) 0%, var(--dm-hero-mid) 45%, #fff 100%); overflow: hidden; }
.dm-hero h1 { max-width: 30rem; }
.dm-hero .elementor-widget-image img { display: block; max-height: 30rem; width: auto; margin-inline: auto; }
.dm-page-header { background: var(--dm-band); padding-block: clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid var(--dm-border); }
.dm-page-header h1 { margin-bottom: 0.75rem; }
.dm-page-header .dm-lead { max-width: 44rem; margin: 0; }

/* ── Cards ───────────────────────────────────────────────────────────────── */
.dm-grid { display: grid; gap: var(--dm-gap); grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.dm-grid--2 { --cols: 2; }
.dm-grid--4 { --cols: 4; }
@media (max-width: 960px) { .dm-grid { --cols: 2; } }
@media (max-width: 640px) { .dm-grid, .dm-grid--2 { --cols: 1; } }

.dm-card { display: flex; flex-direction: column; color: inherit; }
.dm-card:hover { color: inherit; }
.dm-card__media { position: relative; aspect-ratio: 4 / 3; border-radius: var(--dm-radius); overflow: hidden; background: linear-gradient(135deg, var(--dm-teal-soft), var(--dm-band)); margin-bottom: 0.875rem; }
.dm-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--dm-ease); }
.dm-card:hover .dm-card__media img { transform: scale(1.03); }
.dm-card__tag { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dm-teal); margin-bottom: 0.5rem; }
.dm-card__date { font-size: 0.8125rem; color: var(--dm-muted-text); margin-bottom: 0.375rem; }
.dm-card__title { font-family: var(--dm-serif); font-size: 1.25rem; line-height: 1.25; color: var(--dm-heading); margin: 0 0 0.75rem; }
.dm-card:hover .dm-card__title { color: var(--dm-teal-deep); }
.dm-card__excerpt { font-size: 0.9375rem; color: var(--dm-muted-text); margin-bottom: 0.75rem; }

.dm-feature { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; color: inherit; }
.dm-feature:hover { color: inherit; }
.dm-feature__media { aspect-ratio: 16 / 10; border-radius: var(--dm-radius); overflow: hidden; }
.dm-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.dm-feature__title { font-family: var(--dm-serif); font-size: clamp(1.5rem, 2vw + 0.75rem, 2.25rem); line-height: 1.2; color: var(--dm-heading); margin: 0 0 1rem; }
@media (max-width: 760px) { .dm-feature { grid-template-columns: 1fr; } }

.dm-topic {
  position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 18rem;
  border-radius: var(--dm-radius); overflow: hidden; padding: 1.5rem; color: #fff; isolation: isolate;
}
.dm-topic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 500ms var(--dm-ease); }
.dm-topic::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(11 17 24 / 0.05) 20%, rgb(11 17 24 / 0.82) 100%); }
.dm-topic:hover { color: #fff; }
.dm-topic:hover img { transform: scale(1.04); }
.dm-topic__title { font-family: var(--dm-serif); font-size: 1.5rem; line-height: 1.2; color: #fff; margin: 0 0 0.5rem; }
.dm-topic__teaser { font-size: 0.875rem; color: rgb(255 255 255 / 0.8); margin: 0 0 0.875rem; }
.dm-topic .dm-link-arrow { color: #fff; }

.dm-video { display: block; background: var(--dm-card); border-radius: var(--dm-radius-lg); overflow: hidden; color: inherit; box-shadow: var(--dm-shadow-md); }
.dm-video:hover { color: inherit; background: #e4e8ea; }
.dm-video__media { position: relative; aspect-ratio: 16 / 9; background: var(--dm-ink); overflow: hidden; }
.dm-video__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dm-video__play { position: absolute; left: 50%; top: 50%; width: 3.5rem; height: 3.5rem; transform: translate(-50%, -50%); border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: var(--dm-shadow-lg); }
.dm-video__play::after { content: ""; border-left: 0.8rem solid var(--dm-teal); border-top: 0.5rem solid transparent; border-bottom: 0.5rem solid transparent; margin-left: 0.2rem; }
.dm-video__duration { position: absolute; right: 0.75rem; bottom: 0.75rem; background: rgb(0 0 0 / 0.75); color: #fff; font-size: 0.75rem; padding: 0.125rem 0.4rem; border-radius: 0.25rem; }
.dm-video__body { padding: 1.25rem 1.5rem 1.5rem; }
.dm-video__title { font-family: var(--dm-serif); font-size: 1.0625rem; color: var(--dm-heading); margin: 0; }
.dm-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--dm-radius-lg); overflow: hidden; background: #000; }
.dm-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ── Newsletter band + forms ─────────────────────────────────────────────── */
.dm-newsletter { background: var(--dm-mint); padding-block: var(--dm-section); text-align: center; }
.dm-newsletter h2 { margin-bottom: 0.75rem; }
.dm-newsletter p { font-size: 1.125rem; color: var(--dm-text); max-width: 34rem; margin: 0 auto 1.75rem; }
.dm-form-inline { display: flex; gap: 0.5rem; max-width: 28rem; margin: 0; }
.dm-newsletter .dm-form-inline { margin: 0 auto; }
.dm-form-inline input[type="email"] { flex: 1; }
.dm-input, .dm-form input[type="text"], .dm-form input[type="email"], .dm-form textarea, .dm-form-inline input[type="email"] {
  width: 100%; min-height: 2.875rem; border: 1px solid var(--dm-border-strong); border-radius: var(--dm-radius);
  padding: 0.625rem 0.875rem; font: inherit; font-size: 0.9375rem; background: #fff; color: var(--dm-heading);
}
.dm-form textarea { min-height: 9rem; resize: vertical; }
.dm-input:focus, .dm-form input:focus, .dm-form textarea:focus { outline: 2px solid var(--dm-teal); outline-offset: 1px; border-color: var(--dm-teal); }
.dm-form { display: grid; gap: 1rem; }
.dm-form label { display: block; font-size: 0.875rem; font-weight: 500; color: var(--dm-heading); margin-bottom: 0.375rem; }
.dm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .dm-form__row, .dm-form-inline { grid-template-columns: 1fr; flex-direction: column; } }
.dm-form__note, .dm-newsletter p.dm-form__note { font-size: 0.75rem; color: var(--dm-muted-text); margin-top: 0.75rem; }
.dm-form__msg { padding: 0.875rem 1rem; border-radius: var(--dm-radius); background: var(--dm-teal-soft); color: var(--dm-teal-deep); font-weight: 500; }
.dm-form__msg--err { background: #fdeceb; color: #b42318; }
.dm-hp { position: absolute; left: -9999px; }

/* ── Article ─────────────────────────────────────────────────────────────── */
.dm-article__head { padding-block: clamp(2.5rem, 5vw, 4rem) 2rem; }
.dm-article__head h1 { font-size: clamp(2rem, 3vw + 1rem, 3rem); max-width: 48rem; }
.dm-article__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; font-size: 0.875rem; color: var(--dm-muted-text); margin-top: 1rem; }
.dm-article__hero { max-width: 56rem; margin: 0 auto 2.5rem; border-radius: var(--dm-radius-lg); overflow: hidden; }
.dm-article__hero img { width: 100%; display: block; }
.dm-prose { max-width: var(--dm-prose); margin-inline: auto; font-size: 1.0625rem; line-height: 1.75; }
.dm-prose h2 { font-size: 1.75rem; margin-top: 2.5rem; }
.dm-prose h3 { font-size: 1.375rem; margin-top: 2rem; }
.dm-prose ul, .dm-prose ol { padding-left: 1.25rem; margin: 0 0 1.25rem; }
.dm-prose li { margin-bottom: 0.5rem; }
.dm-prose blockquote { border-left: 3px solid var(--dm-teal); margin: 1.5rem 0; padding: 0.25rem 0 0.25rem 1.25rem; font-family: var(--dm-serif); font-size: 1.25rem; color: var(--dm-heading); }
.dm-prose a { text-decoration: underline; text-underline-offset: 2px; }
.dm-prose img { border-radius: var(--dm-radius); }
.dm-prose table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; margin-bottom: 1.5rem; }
.dm-prose th, .dm-prose td { border-bottom: 1px solid var(--dm-border); padding: 0.5rem 0.75rem; text-align: left; }
.dm-author { display: flex; gap: 1.25rem; align-items: center; max-width: var(--dm-prose); margin: 3rem auto 0; padding: 1.5rem; background: var(--dm-cream); border: 1px solid var(--dm-border); border-radius: var(--dm-radius-lg); }
.dm-author img { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; background: var(--dm-teal-soft); }
.dm-author__name { font-family: var(--dm-serif); font-size: 1.125rem; color: var(--dm-heading); margin: 0; }
.dm-author p { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--dm-muted-text); }
.dm-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; max-width: var(--dm-prose); margin: 2rem auto 0; }
.dm-tags a { font-size: 0.8125rem; padding: 0.25rem 0.75rem; border-radius: 999px; background: var(--dm-band); color: var(--dm-text); }

/* ── Research lists ──────────────────────────────────────────────────────── */
.dm-biblio { display: grid; grid-template-columns: 16rem 1fr; gap: clamp(2rem, 4vw, 4rem); }
.dm-biblio__nav { position: sticky; top: 9rem; align-self: start; font-size: 0.875rem; }
.dm-biblio__nav ul { list-style: none; padding: 0; margin: 0; border-left: 1px solid var(--dm-border); }
.dm-biblio__nav a { display: block; padding: 0.375rem 0 0.375rem 1rem; color: var(--dm-text); }
.dm-biblio__nav a:hover { color: var(--dm-teal); }
.dm-biblio section { margin-bottom: 3rem; scroll-margin-top: 9rem; }
.dm-biblio h2 { font-size: 1.5rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--dm-border); }
@media (max-width: 860px) { .dm-biblio { grid-template-columns: 1fr; } .dm-biblio__nav { position: static; } }
.dm-cite { padding: 1.25rem 0; border-bottom: 1px solid var(--dm-border); }
.dm-cite__title { font-family: var(--dm-serif); font-size: 1.125rem; line-height: 1.35; color: var(--dm-heading); margin: 0 0 0.375rem; }
.dm-cite__meta { font-size: 0.875rem; color: var(--dm-muted-text); margin: 0 0 0.5rem; }
.dm-cite__summary { font-size: 0.9375rem; margin: 0 0 0.5rem; }
.dm-pub { display: grid; grid-template-columns: 5rem 1fr; gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--dm-border); }
.dm-pub__year { font-family: var(--dm-serif); font-size: 1.75rem; color: var(--dm-teal); line-height: 1; }

/* ── Topic page / archive ────────────────────────────────────────────────── */
.dm-topic-hero { position: relative; color: #fff; isolation: isolate; padding-block: clamp(4rem, 9vw, 7rem); }
.dm-topic-hero img.dm-topic-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.dm-topic-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(11 17 24 / 0.85), rgb(11 17 24 / 0.35)); }
.dm-topic-hero h1, .dm-topic-hero .dm-lead, .dm-topic-hero .dm-lead p { color: #fff; }
.dm-topic-hero .dm-eyebrow { color: rgb(255 255 255 / 0.75); }
.dm-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.dm-filter a { font-size: 0.8125rem; font-weight: 500; padding: 0.4rem 0.9rem; border-radius: 999px; border: 1px solid var(--dm-border); color: var(--dm-text); }
.dm-filter a.is-active, .dm-filter a:hover { background: var(--dm-teal); border-color: var(--dm-teal); color: #fff; }
.dm-pagination { display: flex; gap: 0.5rem; justify-content: center; margin-top: 3rem; }
.dm-pagination .page-numbers { min-width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border: 1px solid var(--dm-border); border-radius: var(--dm-radius); color: var(--dm-text); padding: 0 0.75rem; }
.dm-pagination .current { background: var(--dm-teal); border-color: var(--dm-teal); color: #fff; }

/* ── FAQ ─────────────────────────────────────────────────────────────────── */
.dm-faq details { border-bottom: 1px solid var(--dm-border); padding: 1.125rem 0; }
.dm-faq summary { cursor: pointer; font-family: var(--dm-serif); font-size: 1.1875rem; color: var(--dm-heading); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.dm-faq summary::after { content: "+"; font-family: var(--dm-sans); color: var(--dm-teal); font-size: 1.5rem; line-height: 1; }
.dm-faq details[open] summary::after { content: "\2212"; }
.dm-faq details > div { padding-top: 0.75rem; }

/* ── Callouts ────────────────────────────────────────────────────────────── */
.dm-callout { background: var(--dm-teal-soft); border-radius: var(--dm-radius-lg); padding: clamp(1.5rem, 3vw, 2.5rem); }
.dm-panel { background: #fff; border: 1px solid var(--dm-border); border-radius: var(--dm-radius-lg); padding: clamp(1.25rem, 2vw + 0.5rem, 2rem); box-shadow: var(--dm-shadow-md); }
.dm-checklist ul { list-style: none; padding: 0; }
.dm-checklist li { position: relative; padding-left: 1.75rem; margin-bottom: 0.625rem; }
.dm-checklist li::before { content: ""; position: absolute; left: 0.25rem; top: 0.45rem; width: 0.55rem; height: 0.3rem; border-left: 2px solid var(--dm-teal); border-bottom: 2px solid var(--dm-teal); transform: rotate(-45deg); }

/* ── Footer ──────────────────────────────────────────────────────────────── */
.dm-footer { background: var(--dm-footer); color: rgb(255 255 255 / 0.62); padding-block: 3.5rem 2.5rem; font-size: 0.9375rem; }
.dm-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgb(255 255 255 / 0.1); }
@media (max-width: 860px) { .dm-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .dm-footer__grid { grid-template-columns: 1fr; } }
.dm-footer .dm-logo { color: #fff; display: block; margin-bottom: 0.75rem; }
.dm-footer h4 { font-family: var(--dm-serif); color: #fff; font-size: 1rem; margin-bottom: 1rem; }
.dm-footer ul { list-style: none; padding: 0; margin: 0; }
.dm-footer li { margin-bottom: 0.625rem; }
.dm-footer a { color: rgb(255 255 255 / 0.62); }
.dm-footer a:hover { color: #fff; }
.dm-footer__legal { padding-top: 1.75rem; font-size: 0.75rem; line-height: 1.6; color: rgb(255 255 255 / 0.42); }
.dm-footer__legal p { margin-bottom: 0.75rem; }

/* ── Shop disclosure ─────────────────────────────────────────────────────── */
.dm-disclosure { max-width: 40rem; margin-inline: auto; text-align: center; }

/* ── Elementor integration ───────────────────────────────────────────────── */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.e-con.dm-section, .e-con.dm-hero { --padding-top: var(--dm-section); --padding-bottom: var(--dm-section); }

/* ── Contact choices ─────────────────────────────────────────────────────── */
.dm-choices { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.dm-choices legend { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dm-heading); margin-bottom: 0.75rem; padding: 0; }
.dm-choice { display: flex; gap: 0.5rem; align-items: flex-start; border: 1px solid var(--dm-border); border-radius: var(--dm-radius); padding: 0.875rem; cursor: pointer; margin: 0 !important; }
.dm-choice:has(input:checked) { border-color: var(--dm-teal); background: var(--dm-teal-soft); }
.dm-choice input { margin-top: 0.3rem; accent-color: var(--dm-teal); }
.dm-choice strong { display: block; font-size: 0.9375rem; color: var(--dm-heading); font-weight: 500; }
.dm-choice small { display: block; font-size: 0.8125rem; color: var(--dm-muted-text); line-height: 1.45; margin-top: 0.25rem; font-weight: 400; }
@media (max-width: 640px) { .dm-choices { grid-template-columns: 1fr; } }

/* ── Sidebar sign-up card ────────────────────────────────────────────────── */
.dm-nl-card { position: sticky; top: 9rem; background: var(--dm-card); border-radius: var(--dm-radius-lg); padding: 1.5rem; }
.dm-nl-card__title { font-family: var(--dm-serif); font-size: 1.125rem; color: var(--dm-heading); line-height: 1.3; margin-bottom: 0.75rem; }
.dm-nl-card__title em { color: var(--dm-teal); }
.dm-nl-card .dm-form { gap: 0.625rem; margin-top: 1rem; }
.dm-nl-card .dm-btn { width: 100%; }

/* ── Publications ────────────────────────────────────────────────────────── */
.dm-pub { display: block; position: relative; border: 1px solid var(--dm-border); border-radius: var(--dm-radius-lg); padding: 1.5rem 1.25rem 1.25rem; margin: 1.5rem 0 0; }
.dm-pub__num { position: absolute; top: -0.75rem; left: 1rem; min-width: 1.5rem; height: 1.5rem; border-radius: 999px; background: var(--dm-teal); color: #fff; font-size: 0.75rem; font-weight: 600; display: grid; place-items: center; padding: 0 0.4rem; }
.dm-pub__meta { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dm-teal); margin: 0 0 0.5rem; }

/* ── Numbered features / credentials ─────────────────────────────────────── */
.dm-num, .dm-num .elementor-heading-title { font-family: var(--dm-serif); font-style: italic; font-size: 2rem; color: var(--dm-teal); line-height: 1; margin-bottom: 0.75rem; }
.dm-step .elementor-heading-title, .dm-step { font-family: var(--dm-mono); font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dm-teal); }
.dm-step b { font-size: 1.125rem; color: var(--dm-muted-text); margin-right: 0.75rem; letter-spacing: 0; }
.dm-cred { background: var(--dm-card); border-radius: var(--dm-radius-lg); padding: 1.5rem; height: 100%; }
.dm-cred h3 { font-size: 1.25rem; }
.dm-cred dl { margin: 0; }
.dm-cred dt { font-weight: 600; font-size: 0.875rem; color: var(--dm-heading); }
.dm-cred dd { margin: 0 0 1rem; font-size: 0.875rem; color: var(--dm-muted-text); }
.dm-cred ul { list-style: none; padding: 0; margin: 0; }
.dm-cred li { position: relative; padding-left: 1rem; font-size: 0.875rem; margin-bottom: 0.625rem; }
.dm-cred li::before { content: ""; position: absolute; left: 0; top: 0.55rem; width: 0.3rem; height: 0.3rem; border-radius: 50%; background: var(--dm-teal); }
.dm-divider { border: 0; border-top: 1px solid var(--dm-border); margin: 2.5rem 0; }

/* ── Elementor widget defaults ───────────────────────────────────────────── */
.elementor-widget-heading .elementor-heading-title { line-height: 1.15; color: inherit; font-family: inherit; }
.elementor-widget-heading h1.elementor-heading-title, .elementor-widget-heading h2.elementor-heading-title, .elementor-widget-heading h3.elementor-heading-title { color: var(--dm-heading); font-family: var(--dm-serif); }
.dm-eyebrow.elementor-widget-heading .elementor-heading-title { font-family: var(--dm-mono); color: var(--dm-muted-text); }
.dm-eyebrow--teal.elementor-widget-heading .elementor-heading-title { color: var(--dm-teal); }
.e-con.dm-sec { --padding-top: var(--dm-section); --padding-bottom: var(--dm-section); --padding-left: var(--dm-gutter); --padding-right: var(--dm-gutter); --content-width: var(--dm-max); }
.e-con.dm-sec--tight { --padding-top: clamp(2.5rem, 5vw, 4rem); --padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.e-con.dm-sec--flush-bottom { --padding-bottom: 0; }
.e-con.dm-hero-sec { background: linear-gradient(90deg, var(--dm-hero-from) 0%, var(--dm-hero-mid) 45%, #fff 100%); --padding-top: clamp(2.5rem, 5vw, 4rem); --padding-bottom: 0; --padding-left: var(--dm-gutter); --padding-right: var(--dm-gutter); --content-width: var(--dm-max); }
.e-con.dm-band-sec { background: var(--dm-band); }
.e-con.dm-mint-sec { background: var(--dm-mint); }
.dm-hero-sec .elementor-widget-image img, .dm-portrait img { display: block; max-height: 30rem; width: auto; margin-left: auto; margin-right: auto; }
.dm-buttons .elementor-widget-container { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.e-con.dm-narrow-sec { --content-width: 48rem; }
.e-con.dm-prose-sec { --content-width: 48rem; }
.dm-prose-text { font-size: 1.0625rem; line-height: 1.75; }
.dm-prose-text h2 { font-size: 1.5rem; margin-top: 2rem; }
.dm-prose-text h3 { font-size: 1.25rem; margin-top: 1.5rem; }
.dm-benf-hero { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.dm-benf-hero > .e-con:last-child { padding: clamp(2rem, 5vw, 4rem) var(--dm-gutter) !important; }
.dm-benf-hero .elementor-widget-image img { width: 100%; height: 100%; max-height: 32rem; object-fit: cover; display: block; }
.dm-benf-hero h1 em { color: var(--dm-teal); }
.dm-center .elementor-widget-heading, .dm-center .elementor-widget-text-editor { text-align: center; }
.dm-center .dm-lead { margin-inline: auto; max-width: 42rem; }
.elementor-widget-heading.dm-center { text-align: center; }
.dm-portrait { align-self: flex-end; }

.e-con > .elementor-widget-html:only-child, .e-con > .elementor-widget-html:only-child > .elementor-widget-container { height: 100%; }
.elementor-widget-html + .elementor-widget-heading.dm-eyebrow, .elementor-widget-text-editor + .elementor-widget-heading.dm-eyebrow { margin-top: 1.5rem; }
.dm-author img { object-position: 50% 15%; }
