/* ==================================================================
   Dominus — header, footer, page shell and components.
   Spacing/structure mirrored 1:1 from the Astro redesign.
   ================================================================== */

.dm-skip {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--dm-plum-700); color: #fff;
  padding: 0.75rem 1.25rem; border-radius: 0 0 8px 0; text-decoration: none;
}
.dm-skip:focus { left: 0; }

/* ------------------------------------------------------------------ */
/* Header (Astro: h-16 md:h-20, sticky, blurred)                       */
/* ------------------------------------------------------------------ */
.dm-header {
  position: sticky; top: 0; z-index: 400;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--dm-ink-100);
}
.dm-header__inner {
  max-width: var(--dm-container);
  margin-inline: auto;
  padding-inline: var(--dm-container-pad);
  height: 4rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
@media (min-width: 768px) { .dm-header__inner { height: 5rem; } }

.dm-header__brand { display: flex; align-items: center; gap: 0.625rem; text-decoration: none; }
.dm-header__logo { width: 2.5rem; height: 2.5rem; border-radius: 9999px; flex-shrink: 0; }
@media (min-width: 768px) { .dm-header__logo { width: 2.75rem; height: 2.75rem; } }
.dm-header__brandtext { display: flex; flex-direction: column; line-height: 1; }
.dm-header__name { font-size: 1.125rem; font-weight: 600; color: var(--dm-ink-900); }
.dm-header__tagline {
  font-size: 0.65rem; font-weight: 500; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--dm-plum-600); margin-top: 0.15rem;
}

.dm-nav-desktop { display: none; }
@media (min-width: 1024px) { .dm-nav-desktop { display: block; } }
.dm-nav { display: flex; align-items: center; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.dm-nav__item { position: relative; }
.dm-nav__link {
  display: inline-flex; align-items: center; gap: 0.25rem;
  border: 0; background: transparent; cursor: pointer; font-family: inherit;
  border-radius: 9999px; padding: 0.5rem 0.875rem;
  font-size: 0.875rem; font-weight: 500; color: var(--dm-ink-700);
  text-decoration: none; transition: background 0.15s ease, color 0.15s ease;
}
.dm-nav__link:hover { background: var(--dm-ink-50); color: var(--dm-plum-700); }
.dm-nav__link.is-active { background: var(--dm-plum-50); color: var(--dm-plum-700); }
.dm-nav__toggle svg { width: 1rem; height: 1rem; transition: transform 0.2s ease; }
.dm-nav__item--has-children.open .dm-nav__toggle svg { transform: rotate(180deg); }

.dm-dropdown {
  position: absolute; left: 0; top: 100%; margin-top: 0.35rem; width: 18rem;
  background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem;
  box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
  padding: 0.5rem; opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
}
.dm-nav__item--has-children.open .dm-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dm-dropdown__link { display: block; border-radius: 0.75rem; padding: 0.625rem 0.75rem; text-decoration: none; }
.dm-dropdown__link:hover, .dm-dropdown__link.is-active { background: var(--dm-ink-50); }
.dm-dropdown__label { display: block; font-size: 0.875rem; font-weight: 600; color: var(--dm-ink-900); }
.dm-dropdown__desc { display: block; font-size: 0.75rem; color: var(--dm-ink-700); margin-top: 0.125rem; }

.dm-header__actions { display: flex; align-items: center; gap: 0.5rem; }
.dm-icon-btn {
  display: grid; place-items: center; width: 2.5rem; height: 2.5rem;
  padding: 0;
  border: 1px solid var(--dm-ink-100); border-radius: 9999px; background: transparent;
  color: var(--dm-ink-700); cursor: pointer; transition: border-color 0.15s ease, color 0.15s ease;
}
.dm-icon-btn:hover { border-color: var(--dm-plum-300); color: var(--dm-plum-700); }
.dm-icon-btn svg { width: 1.25rem; height: 1.25rem; }
.dm-header__cta { display: none; }
@media (min-width: 640px) { .dm-header__cta { display: inline-flex; } }
.dm-header__burger { display: grid; }
@media (min-width: 1024px) { .dm-header__burger { display: none; } }

/* When the drawer is open the sticky header can grow taller than the viewport;
   cap the menu to the space under the bar and let IT scroll, and lock the page
   behind so the content underneath no longer scrolls instead of the menu. */
body.dm-menu-open { overflow: hidden; }
.dm-mobile {
  border-bottom: 1px solid var(--dm-ink-100); background: #fff;
  max-height: calc(100vh - 4rem);
  max-height: calc(100dvh - 4rem);
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
}
@media (min-width: 768px) { .dm-mobile { max-height: calc(100vh - 5rem); max-height: calc(100dvh - 5rem); } }
@media (min-width: 1024px) { .dm-mobile { display: none; } }
.dm-mobile__list {
  max-width: var(--dm-container); margin-inline: auto; padding: 1rem var(--dm-container-pad);
  list-style: none; display: flex; flex-direction: column; gap: 0.25rem;
}
.dm-mobile__link {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.75rem 1rem; border-radius: 0.75rem; font-size: 1rem; font-weight: 500;
  color: var(--dm-ink-700); text-decoration: none;
}
.dm-mobile__link:hover, .dm-mobile__link.is-active { background: var(--dm-plum-50); color: var(--dm-plum-700); }
.dm-mobile__group summary { cursor: pointer; list-style: none; }
.dm-mobile__group summary::-webkit-details-marker { display: none; }
.dm-mobile__group summary svg { width: 1rem; height: 1rem; transition: transform 0.2s ease; }
.dm-mobile__group[open] summary svg { transform: rotate(180deg); }
.dm-mobile__sublist { list-style: none; margin: 0.25rem 0 0; padding: 0 0 0 0.75rem; }
.dm-mobile__sublink {
  display: block; padding: 0.625rem 1rem; border-radius: 0.75rem; font-size: 0.875rem;
  font-weight: 500; color: var(--dm-ink-700); text-decoration: none;
}
.dm-mobile__sublink:hover, .dm-mobile__sublink.is-active { background: var(--dm-ink-50); color: var(--dm-plum-700); }
.dm-mobile__cta { margin-top: 0.75rem; }
.dm-mobile__cta .dm-btn { width: 100%; }

/* ------------------------------------------------------------------ */
/* Page shell                                                          */
/* ------------------------------------------------------------------ */
.dm-page, .dm-post { max-width: 48rem; margin-inline: auto; padding: 3rem var(--dm-container-pad) 2rem; }
.dm-blog { max-width: var(--dm-container); margin-inline: auto; padding: 3rem var(--dm-container-pad) 2rem; }
.dm-page__head, .dm-post__head { margin-bottom: 2rem; }
.dm-page__title, .dm-post__title { margin: 0 0 0.75rem; }
.dm-blog__head { max-width: 44rem; margin-bottom: 2.5rem; }
.dm-blog__head p { color: var(--dm-ink-500); font-size: 1.125rem; }
.dm-post__meta { color: var(--dm-ink-500); font-size: 0.875rem; margin: 0; }
.dm-post__image img { width: 100%; border-radius: var(--dm-radius-lg); margin: 1.5rem 0; }
.dm-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); gap: 1.5rem; }

/* ------------------------------------------------------------------ */
/* Hero (Astro: py-16 lg:py-24, from-brand-50 gradient)                 */
/* ------------------------------------------------------------------ */
.dm-hero { background: linear-gradient(180deg, var(--dm-plum-50), #fff); }
.dm-hero__inner {
  max-width: var(--dm-container); margin-inline: auto; padding: 4rem var(--dm-container-pad);
  display: grid; gap: 3rem; align-items: center;
}
@media (min-width: 1024px) {
  .dm-hero__inner { grid-template-columns: 1fr 1fr; padding-top: 6rem; padding-bottom: 6rem; }
}
.dm-hero__title { margin: 0 0 1.25rem; font-size: 2.25rem; }
@media (min-width: 640px) { .dm-hero__title { font-size: 3rem; } }
@media (min-width: 1024px) { .dm-hero__title { font-size: 3.4rem; line-height: 1.08; } }
.dm-hero__title span { color: var(--dm-plum-600); }
.dm-hero__lead { margin: 0; max-width: 36rem; font-size: 1.125rem; line-height: 1.75; color: var(--dm-ink-700); }
.dm-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.dm-hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 1.5rem; box-shadow: var(--dm-shadow); }

.dm-stats { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem 1.5rem; margin: 2.5rem 0 0; padding: 0; }
@media (min-width: 640px) { .dm-stats { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.dm-stats dt { font-family: "Fraunces", serif; font-size: 1.5rem; font-weight: 600; color: var(--dm-ink-900); }
.dm-stats dd { margin: 0.25rem 0 0; font-size: 0.75rem; line-height: 1.3; color: var(--dm-ink-700); }

/* ------------------------------------------------------------------ */
/* Sections (Astro: py-16 lg:py-20)                                    */
/* ------------------------------------------------------------------ */
.dm-section { padding: 4rem 0; }
@media (min-width: 1024px) { .dm-section { padding: 5rem 0; } }
.dm-section--tint { background: var(--dm-ink-50); }
.dm-section .container { width: 100%; max-width: var(--dm-container); margin-inline: auto; padding-inline: var(--dm-container-pad); }
.dm-section__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; }
.dm-section h2 { margin: 0; font-size: 1.875rem; }
@media (min-width: 640px) { .dm-section h2 { font-size: 2.25rem; } }
.dm-badges-wrap { padding-block: 0; }

.dm-values { display: grid; gap: 2rem; margin-top: 2.5rem; }
@media (min-width: 768px) { .dm-values { grid-template-columns: repeat(3, 1fr); } }
.dm-values > div { padding: 0; }
.dm-values span { font-family: "Fraunces", serif; font-size: 1.875rem; font-weight: 600; color: var(--dm-accent-500); }
.dm-values h3 { margin: 0.75rem 0 0.5rem; font-size: 1.25rem; }
.dm-values p { margin: 0; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700); }

.dm-cta-wrap { padding-block: 4rem 0; }
.dm-cta {
  padding: 3.5rem 2rem;
  border-radius: 1.5rem; text-align: center; color: #fff;
  background: linear-gradient(135deg, var(--dm-plum-700), var(--dm-plum-900));
}
.dm-cta h2 { color: #fff; margin: 0 auto; max-width: 32rem; font-size: 1.875rem; }
@media (min-width: 640px) { .dm-cta h2 { font-size: 2.25rem; } }
.dm-cta p { color: var(--dm-plum-50); max-width: 32rem; margin: 1rem auto 0; }
.dm-cta .dm-btn { margin-top: 2rem; }

.dm-faq-teaser {
  display: grid; gap: 2rem; align-items: center;
  border: 1px solid var(--dm-ink-100); border-radius: 1.5rem; background: #fff; padding: 2rem;
}
@media (min-width: 1024px) { .dm-faq-teaser { grid-template-columns: 1.5fr 1fr; padding: 3rem; } }
.dm-faq-teaser h2 { margin: 0 0 0.75rem; }
.dm-faq-teaser p { margin: 0; color: var(--dm-ink-700); }
.dm-faq-teaser__actions { display: flex; flex-direction: column; gap: 0.75rem; }

/* ------------------------------------------------------------------ */
/* Program cards                                                       */
/* ------------------------------------------------------------------ */
.dominus-programs { display: grid; grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); gap: 1.5rem; list-style: none; }
.dominus-card {
  position: relative; display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--dm-ink-100); border-radius: 1.25rem; overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.dominus-card:hover { transform: translateY(-3px); box-shadow: var(--dm-shadow); border-color: var(--dm-plum-200); }
.dominus-card__link { position: absolute; inset: 0; z-index: 10; border-radius: inherit; }
.dominus-card__media img { display: block; width: 100%; height: 12rem; object-fit: cover; }
.dominus-card__media--placeholder {
  height: 12rem; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--dm-plum-600), var(--dm-plum-800));
  color: rgba(255,255,255,0.9); font-family: "Fraunces", serif; font-weight: 700; font-size: 1.5rem;
}
.dominus-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
.dominus-badge {
  align-self: flex-start; display: inline-block; background: var(--dm-plum-50);
  color: var(--dm-plum-700); border-radius: 9999px; padding: 0.25rem 0.7rem;
  font-size: 0.75rem; font-weight: 600; text-decoration: none;
}
.dominus-card__title { margin: 0.75rem 0 0.5rem; font-size: 1.125rem; line-height: 1.35; }
.dominus-card:hover .dominus-card__title { color: var(--dm-plum-700); }
.dominus-card__summary {
  margin: 0; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.dominus-card__meta { margin-top: auto; padding-top: 1rem; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-size: 0.875rem; font-weight: 600; color: var(--dm-ink-900); }
.dominus-card__duration { color: var(--dm-ink-700); font-weight: 400; }

/* ------------------------------------------------------------------ */
/* Archive                                                             */
/* ------------------------------------------------------------------ */
.dominus-archive { max-width: var(--dm-container); margin-inline: auto; padding: 2rem var(--dm-container-pad) 4rem; }
.dominus-archive__head h1 { margin: 0 0 1rem; }
.dominus-archive__head p { color: var(--dm-ink-700); font-size: 1.125rem; max-width: 42rem; }
.dominus-toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin: 2rem 0 1rem; }
.dominus-toolbar input[type="search"] {
  min-width: 17.5rem; padding: 0.75rem 1rem; border: 1px solid var(--dm-ink-100);
  border-radius: 9999px; font-size: 0.875rem;
}
.dominus-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0 0 2.5rem; padding: 0; }
.dominus-chips a {
  display: inline-block; padding: 0.5rem 1rem; border: 1px solid var(--dm-ink-100);
  border-radius: 9999px; font-size: 0.875rem; font-weight: 500;
  text-decoration: none; color: var(--dm-ink-700);
}
.dominus-chips a:hover { border-color: var(--dm-plum-300); color: var(--dm-plum-700); }
.dominus-chips a.is-active { background: var(--dm-plum-600); border-color: var(--dm-plum-600); color: #fff; }

/* ------------------------------------------------------------------ */
/* Single program                                                      */
/* ------------------------------------------------------------------ */
.dominus-single { max-width: var(--dm-container); margin-inline: auto; padding: 2rem var(--dm-container-pad) 4rem; }
.dominus-single__head h1 { margin: 0.75rem 0 1rem; }
.dominus-single__lead { font-size: 1.125rem; line-height: 1.75; color: var(--dm-ink-700); max-width: 44rem; }
.dominus-single__grid { display: grid; gap: 3rem; margin-top: 2rem; }
@media (min-width: 1024px) { .dominus-single__grid { grid-template-columns: 1fr 20rem; gap: 3rem; } }
.dominus-single__image img { width: 100%; border-radius: 1rem; margin-bottom: 2rem; }
.dominus-single__sidebar { align-self: start; }
@media (min-width: 1024px) { .dominus-single__sidebar { position: sticky; top: 6rem; align-self: start; } }
.dominus-single__info { background: var(--dm-ink-50); border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dominus-single__info h2 { margin: 0 0 1rem; font-size: 1.125rem; }
.dominus-single__info dl { margin: 0 0 1.5rem; }
.dominus-single__info dl > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid var(--dm-ink-100); font-size: 0.875rem; }
.dominus-single__info dl > div:last-child { border-bottom: 0; }
.dominus-single__info dt { color: var(--dm-ink-700); }
.dominus-single__info dd { margin: 0; font-weight: 600; color: var(--dm-ink-900); text-align: right; }
.dominus-single__info .wp-block-button__link,
.dominus-single__info .dm-btn { display: block; width: 100%; text-align: center; border-radius: 9999px; background: var(--dm-plum-600); color: #fff; padding: 0.8rem 1rem; text-decoration: none; font-weight: 600; }
.dominus-single__mail { display: block; text-align: center; margin-top: 0.75rem; font-size: 0.875rem; font-weight: 500; }
.dominus-single__related { margin-top: 4rem; }
.dominus-single__related h2 { margin-bottom: 2rem; }

/* ------------------------------------------------------------------ */
/* Body (Astro BlockRenderer: section panels)                          */
/* ------------------------------------------------------------------ */
.dm-body__intro { margin-bottom: 0; }
.dm-body__section { margin-top: 2rem; }
.dm-body__section h2 { font-size: 1.6rem; margin: 0 0 0.75rem; }
.dm-body__section-body p { margin-bottom: 1.1rem; }
.dm-body__h3 { font-size: 1.3rem; margin: 1.8rem 0 0.5rem; }
.dm-body__list ul { list-style: none; margin: 0 0 1.1rem; padding: 0; }
.dm-body__list li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; }
.dm-body__list li::before {
  content: ""; position: absolute; left: 0; top: 0.65rem;
  width: 0.375rem; height: 0.375rem; border-radius: 9999px; background: var(--dm-plum-500);
}
.dm-body__quote {
  margin: 1.5rem 0; padding: 0.75rem 1.25rem;
  border-left: 4px solid var(--dm-plum-400); background: rgba(250,245,249,0.7); font-style: italic;
}

/* ------------------------------------------------------------------ */
/* FAQ                                                                 */
/* ------------------------------------------------------------------ */
.dominus-faq__theme { margin-top: 2.5rem; }
.dominus-faq__list { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.dominus-faq__item { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; margin-bottom: 0.75rem; overflow: hidden; }
.dominus-faq__item summary { cursor: pointer; padding: 1.25rem; font-weight: 600; color: var(--dm-ink-900); list-style: none; }
.dominus-faq__item summary::-webkit-details-marker { display: none; }
.dominus-faq__item summary::after { content: "+"; float: right; color: var(--dm-plum-600); font-weight: 700; }
.dominus-faq__item[open] summary::after { content: "×"; }
.dominus-faq__item p { margin: 0; padding: 0 1.25rem 1.25rem; line-height: 1.8; color: var(--dm-ink-700); }

/* ------------------------------------------------------------------ */
/* Pricing                                                             */
/* ------------------------------------------------------------------ */
.dominus-price-table { width: 100%; border-collapse: collapse; border: 1px solid var(--dm-ink-100); border-radius: 1rem; overflow: hidden; margin-bottom: 2rem; }
.dominus-price-table th,
.dominus-price-table td { padding: 0.875rem 1rem; text-align: left; border-bottom: 1px solid var(--dm-ink-100); font-size: 0.9375rem; }
.dominus-price-table thead th { background: var(--dm-ink-50); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--dm-ink-500); }
.dominus-price-table td:last-child { text-align: right; font-family: "Fraunces", serif; font-weight: 600; color: var(--dm-plum-700); white-space: nowrap; }

/* ------------------------------------------------------------------ */
/* Badges, partners, testimonials, social                              */
/* ------------------------------------------------------------------ */
.dominus-badges {
  display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; list-style: none;
  margin: 0; padding: 1.25rem 0; border-top: 1px solid var(--dm-ink-100);
  border-bottom: 1px solid var(--dm-ink-100); font-size: 0.875rem; font-weight: 500;
}
.dominus-badges li::before { content: "✓"; color: var(--dm-plum-600); font-weight: 700; margin-right: 0.5rem; }

.dominus-partners { display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: 1rem; list-style: none; }
.dominus-partners li { display: grid; place-items: center; padding: 1.25rem; background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; }
.dominus-partners img { max-height: 3.5rem; width: auto; }

.dominus-testimonials { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1.25rem; list-style: none; margin: 2.5rem 0 0; }
.dominus-testimonials li { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dominus-testimonials blockquote { margin: 0 0 0.75rem; font-size: 0.9375rem; line-height: 1.7; }
.dominus-testimonials cite { font-style: normal; font-weight: 600; color: var(--dm-ink-900); }

.dominus-social { display: flex; gap: 0.625rem; list-style: none; margin: 1.25rem 0 0; padding: 0; }
.dominus-social a {
  display: grid; place-items: center; width: 2.25rem; height: 2.25rem;
  border: 1px solid var(--dm-ink-100); border-radius: 9999px;
  color: var(--dm-ink-700); text-decoration: none;
}
.dominus-social a:hover { border-color: var(--dm-plum-300); color: var(--dm-plum-700); }

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */
.dm-footer { margin-top: 6rem; border-top: 1px solid var(--dm-ink-100); background: var(--dm-ink-50); }
.dm-footer__grid { display: grid; gap: 2.5rem; padding: 3.5rem var(--dm-container-pad); }
@media (min-width: 768px) { .dm-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .dm-footer__grid { grid-template-columns: repeat(4, 1fr); } }
.dm-footer__brand { display: flex; align-items: center; gap: 0.625rem; }
.dm-footer__logo { width: 2.75rem; height: 2.75rem; border-radius: 9999px; }
.dm-footer__name { font-family: "Fraunces", serif; font-size: 1.125rem; font-weight: 600; color: var(--dm-ink-900); }
.dm-footer__about { margin: 1rem 0 0; max-width: 20rem; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-footer__contact { margin: 1rem 0 0; font-size: 0.875rem; }
.dm-footer__contact a { font-weight: 500; text-decoration: none; }
.dm-footer__heading { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--dm-ink-900); margin: 0 0 1rem; font-family: inherit; }
.dm-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.625rem; font-size: 0.875rem; }
.dm-footer__links a { text-decoration: none; color: var(--dm-ink-700); }
.dm-footer__links a:hover { color: var(--dm-plum-700); text-decoration: underline; }
.dm-footer__links a.is-strong { font-weight: 600; color: var(--dm-plum-700); }
.dm-footer__links--tight { gap: 0.375rem; margin-top: 1rem; }
.dm-footer__address { font-style: normal; font-size: 0.875rem; line-height: 1.6; }
.dm-footer__address span { font-weight: 500; color: var(--dm-ink-900); }
.dm-footer__bottom { border-top: 1px solid var(--dm-ink-100); }
.dm-footer__bottom-inner {
  max-width: var(--dm-container); margin-inline: auto;
  padding: 1.5rem var(--dm-container-pad); display: flex; flex-direction: column;
  gap: 0.5rem; align-items: center; justify-content: space-between;
  font-size: 0.75rem; color: var(--dm-ink-500);
}
@media (min-width: 640px) { .dm-footer__bottom-inner { flex-direction: row; } }

/* ------------------------------------------------------------------ */

/* ==================================================================
   Dedicated page designs (contact, pricing, enrolment, about, team…)
   ================================================================== */

/* Shared page head */
.dm-contact, .dm-pricing, .dm-upisi, .dm-about, .dm-team, .dm-docs,
.dm-partners-page, .dm-faq-page, .dm-archive, .dm-single {
  max-width: var(--dm-container);
  margin-inline: auto;
  padding: 2.5rem var(--dm-container-pad) 4rem;
}
.dm-contact__head h1, .dm-pricing__head h1, .dm-upisi__head h1,
.dm-about__head h1, .dm-team__head h1, .dm-docs__head h1,
.dm-partners-page__head h1, .dm-faq-page__head h1 { margin: 0.5rem 0 1rem; }
.dm-contact__head p, .dm-pricing__head p, .dm-upisi__head p,
.dm-about__head p, .dm-team__head p, .dm-docs__head p,
.dm-partners-page__head p, .dm-faq-page__head p {
  font-size: 1.125rem; line-height: 1.75; color: var(--dm-ink-700); max-width: 46rem;
}

/* ---------------- Contact ---------------- */
.dm-contact__grid { display: grid; gap: 3rem; margin-top: 2.5rem; }
@media (min-width: 1024px) { .dm-contact__grid { grid-template-columns: 1fr 1fr; } }
.dm-contact__cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.dm-contact__card { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dm-contact__card h2 { font-size: 1rem; font-family: inherit; font-weight: 600; margin: 0 0 0.75rem; }
.dm-contact__card a { display: block; font-weight: 600; text-decoration: none; margin-bottom: 0.25rem; overflow-wrap: anywhere; }
.dm-contact__card p { margin: 0; font-size: 0.9rem; overflow-wrap: anywhere; }
.dm-contact__hours { margin-top: 1.5rem; background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dm-contact__hours h2 { font-size: 1rem; font-family: inherit; font-weight: 600; margin: 0 0 0.75rem; }
.dm-contact__hours dl { margin: 0; }
.dm-contact__hours dl > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px dashed var(--dm-ink-100); font-size: 0.9rem; }
.dm-contact__hours dl > div:last-child { border-bottom: 0; }
.dm-contact__hours dt { color: var(--dm-ink-500); }
.dm-contact__hours dd { margin: 0; font-weight: 600; color: var(--dm-ink-900); text-align: right; overflow-wrap: anywhere; }
.dm-contact__map { width: 100%; height: 16rem; margin-top: 1.5rem; border: 1px solid var(--dm-ink-100); border-radius: 1rem; }

.dm-form { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 2rem; }
.dm-form h2 { font-size: 1.35rem; margin: 0 0 0.25rem; }
.dm-form__intro { color: var(--dm-ink-500); font-size: 0.9rem; margin: 0 0 1.5rem; }
.dm-form__row { margin-bottom: 1rem; }
.dm-form__row label { display: block; font-size: 0.875rem; font-weight: 600; color: var(--dm-ink-900); margin-bottom: 0.35rem; }
.dm-form__row input, .dm-form__row textarea {
  width: 100%; padding: 0.7rem 0.9rem; border: 1px solid var(--dm-ink-100);
  border-radius: 0.75rem; font-family: inherit; font-size: 0.95rem; background: #fff;
}
.dm-form__row input:focus, .dm-form__row textarea:focus { outline: none; border-color: var(--dm-plum-400); box-shadow: 0 0 0 3px rgba(126,56,113,0.15); }
.dm-form__row--two { display: grid; gap: 1rem; }
@media (min-width: 640px) { .dm-form__row--two { grid-template-columns: 1fr 1fr; } }
.dm-form__errors { list-style: none; margin: 0 0 1rem; padding: 0.75rem 1rem; background: #fef2f2; border: 1px solid #fecaca; border-radius: 0.75rem; color: #b91c1c; font-size: 0.875rem; }
/* Off-screen honeypot field (spam trap). */
.dm-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dm-contact__success { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 1rem; padding: 2rem; }
.dm-contact__success h2 { margin: 0 0 0.5rem; }

/* ---------------- Feature cards ---------------- */
.dm-feature { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.75rem; }
.dm-feature h2 { font-size: 1.15rem; margin: 0 0 0.5rem; }
.dm-feature p { margin: 0 0 1rem; font-size: 0.9rem; line-height: 1.7; color: var(--dm-ink-700); }

/* ---------------- Pricing ---------------- */
.dm-pricing__cards { display: grid; gap: 1rem; margin: 2.5rem 0; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.dm-pricing__tables h2 { margin-top: 2.5rem; font-size: 1.5rem; }
.dm-pricing__terms { margin-top: 3rem; background: var(--dm-ink-50); border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 2rem; }
.dm-pricing__terms h2 { margin-top: 0; }
.dm-pricing__terms ul { margin: 1rem 0 0; padding-left: 1.25rem; }
.dm-pricing__terms li { margin-bottom: 0.5rem; font-size: 0.95rem; }

/* ---------------- Upisi ---------------- */
.dm-upisi__banner { display: flex; gap: 1rem; align-items: center; margin: 2rem 0; padding: 1.25rem 1.5rem; background: var(--dm-plum-50); border: 1px solid var(--dm-plum-200); border-radius: 1rem; }
.dm-upisi__banner svg { width: 1.75rem; height: 1.75rem; flex-shrink: 0; color: var(--dm-plum-600); }
.dm-upisi__banner p { margin: 0; font-size: 0.95rem; }
.dm-upisi__section { padding: 2.5rem 0; }
.dm-upisi__section--tint { background: var(--dm-ink-50); border-radius: 1.5rem; }
.dm-upisi__section--tint .dm-upisi__inner { padding: 0 2rem; }
.dm-upisi__reqs { display: grid; gap: 1rem; margin-top: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.dm-upisi__req { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dm-upisi__req h3 { font-size: 1.05rem; margin: 0 0 0.75rem; }
.dm-upisi__req ul { list-style: none; margin: 0; padding: 0; }
.dm-upisi__req li { position: relative; padding-left: 1.5rem; margin-bottom: 0.5rem; font-size: 0.9rem; }
.dm-upisi__req li::before { content: "✓"; position: absolute; left: 0; color: var(--dm-plum-600); font-weight: 700; }
.dm-upisi__group { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--dm-ink-500); margin: 2rem 0 0.75rem; font-family: inherit; }
.dm-upisi__starts { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.dm-upisi__starts li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1rem 1.25rem; font-weight: 600; }
.dm-upisi__note, .dm-upisi__date { display: block; font-weight: 400; font-size: 0.8rem; color: var(--dm-ink-500); }
.dm-upisi__cols { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
.dm-upisi__cta-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }

/* ---------------- About ---------------- */
.dm-about__layout { display: grid; gap: 3rem; margin-top: 2rem; }
@media (min-width: 1024px) { .dm-about__layout { grid-template-columns: 1fr 20rem; } }
.dm-about__aside { align-self: start; }
.dm-about__section { margin-top: 4rem; }
.dm-about__section--tint { background: var(--dm-ink-50); border-radius: 1.5rem; }
.dm-about__section--tint .dm-about__inner { padding: 3rem 2rem; }
.dm-team-preview { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.dm-team-preview li { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.25rem; }
.dm-team-preview strong { display: block; color: var(--dm-ink-900); }
.dm-team-preview span { font-size: 0.85rem; color: var(--dm-ink-500); }

/* ---------------- Team ---------------- */
.dm-team__group { margin-top: 3rem; }
.dm-team__grid { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
.dm-team__card { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 2rem; }
.dm-team__initials { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 9999px; background: var(--dm-plum-600); color: #fff; font-weight: 700; margin-bottom: 1rem; }
.dm-team__photo { width: 3.5rem; height: 3.5rem; border-radius: 9999px; object-fit: cover; margin-bottom: 1rem; }
.dm-team__card h3 { margin: 0 0 0.25rem; font-size: 1.15rem; }
.dm-team__role { color: var(--dm-plum-700); font-size: 0.875rem; font-weight: 600; margin: 0 0 1rem; }
.dm-team__bio { font-size: 0.9rem; }

/* ---------------- Documents ---------------- */
.dm-docs__group { margin-top: 3rem; }
.dm-docs__list { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }
.dm-docs__item { display: flex; align-items: center; gap: 1rem; background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.25rem; transition: border-color 0.15s ease, transform 0.15s ease; }
.dm-docs__item:hover { border-color: var(--dm-plum-200); transform: translateY(-1px); }
.dm-docs__icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 0.75rem; background: var(--dm-plum-50); color: var(--dm-plum-700); flex-shrink: 0; }
.dm-docs__icon svg { width: 1.25rem; height: 1.25rem; }
.dm-docs__meta { flex: 1; min-width: 0; }
.dm-docs__title { display: block; font-weight: 600; color: var(--dm-ink-900); font-size: 0.95rem; }
.dm-docs__file { display: block; font-size: 0.8rem; color: var(--dm-ink-500); }
.dm-docs__tag { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; color: var(--dm-plum-700); }

/* ---------------- Partners / FAQ page ---------------- */
.dm-partners-page .dominus-partners { margin-top: 2.5rem; }
.dm-partners-page__cta { margin-top: 2.5rem; text-align: center; color: var(--dm-ink-500); }
.dm-faq-page__search { margin: 2rem 0; }
.dm-faq-page__search input { width: 100%; max-width: 32rem; padding: 0.9rem 1.25rem; border: 1px solid var(--dm-ink-100); border-radius: 9999px; font-family: inherit; font-size: 0.95rem; }
.dm-faq-page__empty { padding: 2rem 0; text-align: center; color: var(--dm-ink-500); }

/* ---------------- Blog pagination ---------------- */
.dm-pagination { margin-top: 3rem; display: flex; justify-content: center; gap: 0.5rem; }
.dm-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem; border: 1px solid var(--dm-ink-100); border-radius: 9999px; text-decoration: none; font-size: 0.875rem; font-weight: 600; }
.dm-pagination .page-numbers.current { background: var(--dm-plum-600); border-color: var(--dm-plum-600); color: #fff; }

.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }



/* Document download links */
.dm-docs__link { display: flex; align-items: center; gap: 1rem; width: 100%; text-decoration: none; color: inherit; }
.dm-docs__link:hover .dm-docs__title { color: var(--dm-plum-700); }

/* ------------------------------------------------------------------ */
/* Neutralise Kadence's body/content padding on our custom views so    */
/* arrive padding matches the page templates (single 32px layer).      */
/* ------------------------------------------------------------------ */
body.archive,
body.single,
body.page,
body.blog,
body.home {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.archive #inner-wrap,
body.single #inner-wrap,
body.page #inner-wrap,
body.home #inner-wrap {
  max-width: none !important;
  padding: 0 !important;
}

/* ------------------------------------------------------------------ */
/* Ensure Kadence highlight states (nav hover/active, focus) use the    */
/* brand plum, not Kadence's default blue or the coral accent.          */
/* `html:root` outranks Kadence's inline :root block.                   */
/* ------------------------------------------------------------------ */
html:root {
  --global-palette1: #642c5b;
  --global-palette2: #642c5b;
  --global-palette-highlight: #642c5b;
  --global-palette-highlight-alt: #4a1e44;
  --global-palette-highlight-alt2: #ffffff;
}

/* ==================================================================
   Parity layer — components ported from the Astro redesign.
   ================================================================== */

/* ---------------- Homepage hero inset + badges ---------------- */
.dm-hero__media { position: relative; }
.dm-hero__media img.dm-hero__inset {
  position: absolute; left: -1.5rem; bottom: -2rem;
  width: 10rem; height: 10rem; aspect-ratio: auto;
  object-fit: cover; border-radius: 1rem; border: 4px solid #fff;
  box-shadow: var(--dm-shadow); display: none;
}
@media (min-width: 640px) { .dm-hero__media img.dm-hero__inset { display: block; } }

.dm-badges-section { background: #fff; border-bottom: 1px solid var(--dm-ink-100); }
.dominus-badges {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1.5rem; list-style: none; margin: 0; padding: 1.5rem 0;
  border: 0; font-size: 0.875rem; font-weight: 500;
}
@media (min-width: 640px) { .dominus-badges { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dominus-badges { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.dominus-badges li { display: flex; align-items: center; gap: 0.625rem; }
.dominus-badges li::before { content: none; }
.dominus-badges svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; color: var(--dm-plum-600); }

/* ---------------- Study cards ---------------- */
.dm-studies { display: grid; gap: 1.5rem; margin-top: 2.5rem; }
@media (min-width: 768px) { .dm-studies { grid-template-columns: repeat(3, 1fr); } }
.dm-study-card {
  display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--dm-ink-100); border-radius: 1.25rem; padding: 1.5rem;
  text-decoration: none; color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.dm-study-card:hover { transform: translateY(-3px); box-shadow: var(--dm-shadow); border-color: var(--dm-plum-200); }
.dm-study-card .dominus-badge { align-self: flex-start; }
.dm-study-card h3 { margin: 0.75rem 0 0; font-size: 1.25rem; line-height: 1.3; }
.dm-study-card:hover h3 { color: var(--dm-plum-700); }
.dm-study-card p { margin: 0.75rem 0 0; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-study-card__more { margin-top: auto; padding-top: 1.25rem; font-size: 0.875rem; font-weight: 600; color: var(--dm-plum-700); }

/* ---------------- Sections: dark + sub copy ---------------- */
.dm-section--dark { background: var(--dm-plum-800); color: #fff; }
.dm-section--dark h2 { color: #fff; }
.dm-section__sub { margin: 0.75rem 0 0; color: var(--dm-ink-700); max-width: 42rem; }
.dm-values--dark h3 { color: #fff; }
.dm-values--dark p { color: rgba(250, 245, 249, 0.9); }
.dm-values--dark span { color: var(--dm-accent-300); }

/* ---------------- Category tiles ---------------- */
.dm-cat-tiles { display: grid; gap: 1rem; margin-top: 2rem; }
@media (min-width: 640px) { .dm-cat-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dm-cat-tiles { grid-template-columns: repeat(3, 1fr); } }
.dm-cat-tile {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem;
  padding: 1.25rem 1.5rem; text-decoration: none; transition: border-color 0.15s ease, background 0.15s ease;
}
.dm-cat-tile:hover { border-color: var(--dm-plum-300); background: var(--dm-plum-50); }
.dm-cat-tile__name { font-family: "Fraunces", serif; font-size: 1.125rem; font-weight: 600; color: var(--dm-ink-900); }

/* ---------------- Film line ---------------- */
.dm-film { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .dm-film { grid-template-columns: 1fr 1fr; } }
.dm-film h2 { margin-top: 1rem; }
.dm-film p { margin-top: 1rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-film__actions { margin-top: 1.5rem; }
.dm-film__depts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; font-size: 0.875rem; font-weight: 500; }
.dm-film__depts li { border: 1px solid var(--dm-ink-100); background: rgba(248, 247, 248, 0.6); border-radius: 0.75rem; padding: 0.75rem 1rem; }

/* ---------------- CTA actions ---------------- */
.dm-cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 2rem; }
.dm-btn--onaccent { border-color: rgba(255, 255, 255, 0.7); color: #fff; }
.dm-btn--onaccent:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }

/* ---------------- Post cards ---------------- */
.dominus-card__media--post { position: relative; }
.dominus-card__media--post img { display: block; width: 100%; height: 11rem; object-fit: cover; }
.dominus-card__media img.dominus-card__watermark { position: absolute; right: 0.75rem; bottom: 0.75rem; width: 3rem; height: 3rem; object-fit: contain; border-radius: 9999px; opacity: 0.9; }
.dominus-post-card__top { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: var(--dm-ink-700); }
.dominus-post-card__top .dominus-badge { align-self: center; }
.dominus-post-card__read { margin: auto 0 0; padding-top: 1rem; font-size: 0.75rem; color: var(--dm-ink-500); }
.dominus-post-card .dominus-card__summary { -webkit-line-clamp: 3; }

/* ---------------- Pricing (Astro groups + terms) ---------------- */
.dm-feature .dm-icon-box { margin-bottom: 1rem; }
.dominus-price-group { margin-bottom: 3rem; }
.dominus-price-group__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem; }
.dominus-price-group__head h2 { margin: 0; font-size: 1.5rem; }
.dominus-price-group__table { margin-top: 1.25rem; border: 1px solid var(--dm-ink-100); border-radius: 1rem; overflow: hidden; }
.dominus-price-table { margin-bottom: 0; border: 0; border-radius: 0; }
.dominus-price-table a { color: var(--dm-ink-900); font-weight: 500; text-decoration: none; }
.dominus-price-table a:hover { color: var(--dm-plum-700); text-decoration: underline; }
@media (max-width: 640px) { .dominus-price-table__dur { display: none; } }
.dm-pricing__terms { margin-top: 3rem; }
.dm-pricing__terms-grid { display: grid; gap: 2rem; }
@media (min-width: 1024px) { .dm-pricing__terms-grid { grid-template-columns: 1fr 22rem; } }
.dm-pricing__note { margin-top: 0.75rem; max-width: 42rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-pricing__list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.dm-pricing__list li { position: relative; padding-left: 1.25rem; font-size: 0.875rem; color: var(--dm-ink-700); }
.dm-pricing__list li::before { content: ""; position: absolute; left: 0; top: 0.5rem; width: 0.375rem; height: 0.375rem; border-radius: 9999px; background: var(--dm-plum-500); }
.dm-pricing__cta { background: linear-gradient(135deg, var(--dm-plum-700), var(--dm-plum-900)); color: #fff; border-radius: 1rem; padding: 1.75rem; align-self: start; }
.dm-pricing__cta h2 { color: #fff; font-size: 1.25rem; margin: 0; }
.dm-pricing__cta p { margin: 0.5rem 0 0; font-size: 0.875rem; color: rgba(250, 245, 249, 0.9); }
.dm-pricing__cta .dm-btn { margin-top: 1.25rem; width: 100%; }

/* ---------------- Upisi ---------------- */
.dm-upisi__banner-wrap { margin-top: 2rem; }
.dm-upisi__banner .dm-icon-box { color: #fff; }
.dm-upisi__banner .dm-icon-box svg { width: 1.5rem; height: 1.5rem; color: #fff; }
.dm-upisi__req li::before { content: none; }
.dm-upisi__req li { display: flex; gap: 0.75rem; align-items: flex-start; padding-left: 0; }
.dm-upisi__req li svg { width: 1rem; height: 1rem; margin-top: 0.2rem; color: #10b981; flex-shrink: 0; }
.dm-upisi__section h2 { font-size: 1.875rem; }
.dm-upisi__starts-section { background: var(--dm-ink-50); margin-top: 2.5rem; padding: 3.5rem 0; width: 100vw; margin-left: calc(50% - 50vw); }
.dm-upisi__inner { max-width: var(--dm-container); margin-inline: auto; padding-inline: var(--dm-container-pad); }
.dm-upisi__section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.dm-upisi__section-head h2 { margin: 0; }
.dm-upisi__start-group { margin-top: 2.5rem; }
.dm-upisi__start-name { margin: 0; font-weight: 600; color: var(--dm-ink-900); }
.dm-upisi__note { margin: 0.125rem 0 0; font-size: 0.75rem; color: var(--dm-ink-500); }
.dm-upisi__date { margin: 0.25rem 0 0; font-size: 0.875rem; font-weight: 500; color: var(--dm-plum-700); }
.dm-upisi__doclinks { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.dm-btn--disabled { opacity: 0.6; cursor: default; pointer-events: none; }

/* ---------------- About ---------------- */
.dm-about__hero { display: grid; gap: 2.5rem; align-items: center; margin-top: 1.5rem; }
@media (min-width: 1024px) { .dm-about__hero { grid-template-columns: 1fr 1fr; } }
.dm-about__hero-copy h1 { margin: 1rem 0 0; }
.dm-about__hero-copy > p { margin: 1.25rem 0 0; font-size: 1.125rem; line-height: 1.75; color: var(--dm-ink-700); max-width: 34rem; }
.dm-about__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-width: 28rem; margin: 2rem 0 0; padding: 0; }
@media (min-width: 640px) { .dm-about__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 38rem; } }
.dm-about__stat-value { font-family: "Fraunces", serif; font-size: 1.5rem; font-weight: 600; color: var(--dm-ink-900); margin: 0; }
.dm-about__stat-label { margin: 0.25rem 0 0; font-size: 0.75rem; color: var(--dm-ink-700); }
.dm-about__hero-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 1.5rem; box-shadow: var(--dm-shadow); }
.dm-about__mv { display: grid; gap: 1.5rem; margin-top: 2rem; }
@media (min-width: 768px) { .dm-about__mv { grid-template-columns: repeat(2, 1fr); } }
.dm-about__mv-card { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.75rem; }
.dm-about__mv-card h3 { margin: 1rem 0 0; font-size: 1.25rem; }
.dm-about__mv-card p { margin: 0.75rem 0 0; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-about__values { display: grid; gap: 1.5rem; margin-top: 2.5rem; }
@media (min-width: 640px) { .dm-about__values { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dm-about__values { grid-template-columns: repeat(4, 1fr); } }
.dm-about__value { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dm-about__value h3 { margin: 0; font-size: 1.125rem; }
.dm-about__value p { margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-about__testimonials { width: 100vw; margin-left: calc(50% - 50vw); margin-top: 4rem; background: var(--dm-plum-800); color: #fff; padding: 4rem 0; }
.dm-about__testimonials h2 { color: #fff; }
.dm-about__testimonials .dominus-testimonials li { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); color: #faf5f9; }
.dm-about__testimonials .dominus-testimonials blockquote { color: #faf5f9; }
.dm-about__testimonials .dominus-testimonials cite { color: #fff; }
.dm-about__aside .dominus-single__info dl > div { display: block; padding: 0.5rem 0; border-bottom: 0; }
.dm-about__aside .dominus-single__info dd { text-align: left; margin-top: 0.15rem; }

/* ---------------- Team ---------------- */
.dm-team__groups { max-width: var(--dm-container); margin-inline: auto; padding: 3rem var(--dm-container-pad) 0; }
.dm-team__group { margin-top: 3rem; }
.dm-team__group:first-child { margin-top: 0; }
.dm-team__grid { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .dm-team__grid { grid-template-columns: repeat(2, 1fr); } }
.dm-team__card { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.5rem; }
.dm-team__card-top { display: flex; align-items: flex-start; gap: 1rem; }
.dm-team__initials { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 9999px; background: var(--dm-plum-600); color: #fff; font-family: "Fraunces", serif; font-weight: 600; font-size: 1.125rem; flex-shrink: 0; }
.dm-team__photo { width: 3.5rem; height: 3.5rem; border-radius: 9999px; object-fit: cover; flex-shrink: 0; }
.dm-team__card h3 { margin: 0; font-size: 1.25rem; }
.dm-team__role { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--dm-plum-700); }
.dm-team__bio { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.5rem; font-size: 0.875rem; line-height: 1.7; color: var(--dm-ink-700); }
.dm-team__bio p { margin: 0; }
.dm-team__tags { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dm-team__tags li { background: var(--dm-plum-50); color: var(--dm-plum-700); border-radius: 9999px; padding: 0.25rem 0.75rem; font-size: 0.75rem; font-weight: 500; }
.dm-team__cta-wrap { max-width: var(--dm-container); margin-inline: auto; padding: 4rem var(--dm-container-pad); }
.dm-team__cta { background: var(--dm-ink-50); border: 1px solid var(--dm-ink-100); border-radius: 1.5rem; padding: 2rem; text-align: center; }
.dm-team__cta-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-top: 1.5rem; }

/* ---------------- Contact ---------------- */
.dm-contact__cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .dm-contact__cards--two { grid-template-columns: 1fr; } }
.dm-contact__cards--addresses { margin-top: 1.5rem; }
.dm-form__submit { width: 100%; }

/* ---------------- Documents ---------------- */
.dm-docs__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .dm-docs__list { grid-template-columns: 1fr; } }

/* ---------------- Partners ---------------- */
.dominus-partners { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .dominus-partners { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dominus-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dominus-partners li { display: block; padding: 0; background: transparent; border: 0; }
.dominus-partner {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem;
  height: 100%; padding: 1.5rem; text-align: center; text-decoration: none;
  background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.dominus-partner:hover { border-color: var(--dm-plum-300); background: var(--dm-plum-50); transform: translateY(-2px); }
.dominus-partner img { max-height: 3.5rem; width: auto; object-fit: contain; }
.dominus-partner__name { font-size: 0.8rem; font-weight: 600; color: var(--dm-ink-900); line-height: 1.3; }

/* ---------------- Archive toolbar ---------------- */
.dominus-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin: 2rem 0 1rem; }
.dominus-search { position: relative; width: 100%; max-width: 24rem; }
.dominus-toolbar .dominus-search input[type="search"] { width: 100%; padding: 0.75rem 1rem 0.75rem 2.75rem; border: 1px solid var(--dm-ink-100); border-radius: 9999px; font-size: 0.875rem; }
.dominus-search__icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--dm-ink-500); display: flex; }
.dominus-search__icon svg { width: 1.25rem; height: 1.25rem; }
.dominus-results { font-size: 0.875rem; color: var(--dm-ink-700); margin: 0; }
.dominus-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2.5rem; }
.dominus-chip {
  border: 1px solid var(--dm-ink-100); background: transparent; border-radius: 9999px;
  padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 500; color: var(--dm-ink-700);
  cursor: pointer; font-family: inherit;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.dominus-chip:hover { border-color: var(--dm-plum-300); color: var(--dm-plum-700); }
.dominus-chip.is-active { background: var(--dm-plum-600); border-color: var(--dm-plum-600); color: #fff; }
.dominus-archive__empty { padding: 4rem 0; text-align: center; color: var(--dm-ink-500); }
.dominus-archive__note { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1rem; padding: 0.5rem 1rem; border-radius: 9999px; background: var(--dm-plum-50); color: var(--dm-plum-700); font-size: 0.875rem; font-weight: 600; }
.dominus-archive__note svg { width: 1rem; height: 1rem; flex-shrink: 0; }

/* ---------------- Programi (qualifications) ---------------- */
.dominus-programi-groups { display: flex; flex-direction: column; gap: 3.5rem; }
.dominus-programi-group { scroll-margin-top: 6rem; }
.dominus-programi-group__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem; margin-bottom: 1.5rem; }
.dominus-programi-group__head h2 { margin: 0; font-size: 1.5rem; }
.dominus-chips--links { margin-bottom: 2.5rem; }

/* ---------------- Single post ---------------- */
.dm-post--article { max-width: 48rem; }
.dm-post__meta { display: flex; align-items: center; gap: 0.75rem; }
.dm-post__lead { margin: 2rem 0 0; padding-left: 1.25rem; border-left: 4px solid var(--dm-plum-400); font-size: 1.25rem; line-height: 1.7; color: var(--dm-ink-900); }
.dm-post__cta { margin-top: 3rem; background: var(--dm-plum-800); color: #fff; border-radius: 1rem; padding: 2rem; }
.dm-post__cta h2 { color: #fff; font-size: 1.5rem; margin: 0; }
.dm-post__cta p { margin: 0.5rem 0 0; font-size: 0.875rem; color: rgba(250, 245, 249, 0.9); }
.dm-post__cta .dm-btn { margin-top: 1.25rem; }
.dm-post-related { margin-top: 4rem; background: var(--dm-ink-50); padding: 4rem 0; }
.dm-post-related__inner { max-width: var(--dm-container); margin-inline: auto; padding-inline: var(--dm-container-pad); }
.dm-post-related h2 { margin: 0 0 2rem; }

/* ---------------- FAQ hero ---------------- */
.dm-faq-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--dm-plum-900), var(--dm-plum-700) 55%, var(--dm-plum-600)); color: #fff; }
.dm-faq-hero__blob { position: absolute; border-radius: 9999px; filter: blur(60px); pointer-events: none; }
.dm-faq-hero__blob--tr { top: -6rem; right: -6rem; width: 20rem; height: 20rem; background: rgba(239, 69, 48, 0.4); }
.dm-faq-hero__blob--bl { bottom: -8rem; left: -4rem; width: 18rem; height: 18rem; background: rgba(244, 112, 90, 0.25); }
.dm-faq-hero__inner { position: relative; max-width: var(--dm-container); margin-inline: auto; padding: 3.5rem var(--dm-container-pad); }
.dm-faq-hero__crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--dm-plum-100); }
.dm-faq-hero__crumbs a { color: inherit; text-decoration: none; }
.dm-faq-hero__crumbs a:hover { text-decoration: underline; }
.dm-faq-hero__copy { margin-top: 2rem; max-width: 48rem; }
.dm-faq-hero__pill { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: 9999px; background: rgba(255, 255, 255, 0.1); padding: 0.375rem 1rem; font-size: 0.875rem; font-weight: 500; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2); }
.dm-faq-hero__dot { width: 0.5rem; height: 0.5rem; border-radius: 9999px; background: var(--dm-accent-400); }
.dm-faq-hero h1 { margin: 1.25rem 0 0; color: #fff; font-size: 2.5rem; line-height: 1.05; }
@media (min-width: 640px) { .dm-faq-hero h1 { font-size: 3rem; } }
.dm-faq-hero__accent { background: linear-gradient(90deg, var(--dm-accent-300), var(--dm-accent-400)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.dm-faq-hero__copy p { margin: 1.25rem 0 0; max-width: 36rem; font-size: 1.125rem; line-height: 1.7; color: rgba(250, 245, 249, 0.95); }
.dm-faq-hero__search { margin-top: 2rem; max-width: 36rem; }
.dm-faq-search { position: relative; }
.dm-faq-search__icon { position: absolute; left: 1.25rem; top: 50%; transform: translateY(-50%); color: rgba(100, 44, 91, 0.5); display: flex; }
.dm-faq-search__icon svg { width: 1.25rem; height: 1.25rem; }
.dm-faq-search input { width: 100%; border: 0; border-radius: 1rem; background: #fff; padding: 1rem 3rem; font-size: 1rem; color: var(--dm-ink-900); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.dm-faq-search input:focus { outline: none; box-shadow: 0 0 0 4px rgba(244, 112, 90, 0.3); }
.dm-faq-search__clear { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; display: grid; place-items: center; border: 0; background: transparent; border-radius: 9999px; color: var(--dm-ink-500); cursor: pointer; }
.dm-faq-search__clear svg { width: 1rem; height: 1rem; }
.dm-faq-hero__count { margin: 0.75rem 0 0; font-size: 0.875rem; color: rgba(250, 245, 249, 0.9); }
.dm-faq-hero__themes { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dm-faq-chip { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: 9999px; border: 1px solid; padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 600; text-decoration: none; transition: transform 0.15s ease; }
.dm-faq-chip:hover { transform: translateY(-2px); }
.dm-faq-chip__dot { width: 0.5rem; height: 0.5rem; border-radius: 9999px; }
.dm-faq-chip__count { opacity: 0.6; }
.dm-faq-chip[data-tone="plum"] { border-color: var(--dm-plum-200); background: var(--dm-plum-50); color: var(--dm-plum-700); }
.dm-faq-chip[data-tone="plum"] .dm-faq-chip__dot { background: var(--dm-plum-500); }
.dm-faq-chip[data-tone="amber"] { border-color: #fde68a; background: #fffbeb; color: #b45309; }
.dm-faq-chip[data-tone="amber"] .dm-faq-chip__dot { background: #f59e0b; }
.dm-faq-chip[data-tone="blue"] { border-color: #bfdbfe; background: #eff6ff; color: #1d4ed8; }
.dm-faq-chip[data-tone="blue"] .dm-faq-chip__dot { background: #3b82f6; }
.dm-faq-chip[data-tone="emerald"] { border-color: #a7f3d0; background: #ecfdf5; color: #047857; }
.dm-faq-chip[data-tone="emerald"] .dm-faq-chip__dot { background: #10b981; }

/* ---------------- FAQ quick facts ---------------- */
.dm-faq-facts-wrap { position: relative; z-index: 10; width: 100%; max-width: var(--dm-container); margin: -2rem auto 0; padding-inline: var(--dm-container-pad); }
.dm-faq-facts { display: grid; gap: 1rem; margin: 0; padding: 0; }
@media (min-width: 640px) { .dm-faq-facts { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dm-faq-facts { grid-template-columns: repeat(4, 1fr); } }
.dm-faq-fact { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; padding: 1.25rem; box-shadow: 0 20px 40px -24px rgba(36, 13, 33, 0.25); }
.dm-faq-fact dt { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--dm-ink-500); }
.dm-faq-fact dd { margin: 0.5rem 0 0; font-family: "Fraunces", serif; font-size: 1.125rem; font-weight: 600; color: var(--dm-ink-900); }
.dm-faq-fact dd a { color: inherit; text-decoration: none; }
.dm-faq-fact dd a:hover { color: var(--dm-plum-700); }

/* ---------------- FAQ groups ---------------- */
.dm-faq-list { max-width: var(--dm-container); margin-inline: auto; padding: 3.5rem var(--dm-container-pad); }
.dm-faq-group { margin-bottom: 3rem; scroll-margin-top: 7rem; }
.dm-faq-group[data-tone="plum"] { --tone-bar: var(--dm-plum-500); --tone-soft: var(--dm-plum-50); --tone-border: var(--dm-plum-200); --tone-text: var(--dm-plum-700); }
.dm-faq-group[data-tone="amber"] { --tone-bar: #f59e0b; --tone-soft: #fffbeb; --tone-border: #fde68a; --tone-text: #b45309; }
.dm-faq-group[data-tone="blue"] { --tone-bar: #3b82f6; --tone-soft: #eff6ff; --tone-border: #bfdbfe; --tone-text: #1d4ed8; }
.dm-faq-group[data-tone="emerald"] { --tone-bar: #10b981; --tone-soft: #ecfdf5; --tone-border: #a7f3d0; --tone-text: #047857; }
.dm-faq-group__panel { border: 1px solid var(--tone-border); background: var(--tone-soft); border-radius: 1.5rem; padding: 1.5rem; }
@media (min-width: 640px) { .dm-faq-group__panel { padding: 2rem; } }
.dm-faq-group__head { display: flex; align-items: center; gap: 1rem; }
.dm-faq-group__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 1rem; color: #fff; background: var(--tone-bar); box-shadow: 0 4px 10px -4px rgba(0, 0, 0, 0.3); flex-shrink: 0; }
.dm-faq-group__icon svg { width: 1.5rem; height: 1.5rem; }
.dm-faq-group__head h2 { margin: 0; font-size: 1.5rem; }
.dm-faq-group__head p { margin: 0.125rem 0 0; font-size: 0.875rem; color: var(--dm-ink-500); }
.dm-faq-items { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.dm-faq-item { background: #fff; border: 1px solid var(--dm-ink-100); border-radius: 1rem; transition: border-color 0.15s ease; }
.dm-faq-item:hover { border-color: var(--dm-ink-200); }
.dm-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem; cursor: pointer; list-style: none; }
.dm-faq-item summary::-webkit-details-marker { display: none; }
.dm-faq-item__q { display: flex; align-items: center; gap: 0.875rem; }
.dm-faq-item__bar { width: 0.25rem; height: 2rem; border-radius: 9999px; background: var(--tone-bar); flex-shrink: 0; }
.dm-faq-item__text { font-family: "Fraunces", serif; font-size: 1.125rem; font-weight: 600; line-height: 1.3; color: var(--dm-ink-900); }
.dm-faq-item__toggle { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 9999px; background: var(--tone-soft); color: var(--tone-text); flex-shrink: 0; transition: transform 0.2s ease; }
.dm-faq-item[open] .dm-faq-item__toggle { transform: rotate(45deg); }
.dm-faq-item__toggle svg { width: 1.25rem; height: 1.25rem; }
.dm-faq-item__a { padding: 0 1.25rem 1.25rem 2.5rem; }
.dm-faq-item__a p { margin: 0; line-height: 1.8; color: var(--dm-ink-700); }
.dm-faq-item__link { display: inline-flex; margin-top: 0.75rem; font-size: 0.875rem; font-weight: 600; color: var(--tone-text); text-decoration: none; }
.dm-faq-item__link:hover { text-decoration: underline; }
.dm-faq-empty { padding: 2.5rem 0; text-align: center; color: var(--dm-ink-700); }
.dm-faq-cta-wrap { max-width: var(--dm-container); margin-inline: auto; padding: 0 var(--dm-container-pad) 1.5rem; }
.dm-cta--glow { position: relative; overflow: hidden; }
.dm-faq-cta-actions { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 1.75rem; }

/* ==================================================================
   Rich body content (links, tables, embeds) — from enrich_content.py
   ================================================================== */
.dm-body__section h2 { color: var(--dm-plum-700); }
.dm-body__intro > p:first-child { margin-top: 0; }
.dm-body a,
.dm-post__body a { color: var(--dm-plum-700); text-decoration: underline; text-underline-offset: 2px; }
.dm-body a:hover,
.dm-post__body a:hover { color: var(--dm-plum-900); }
.dm-body__section-body > p:last-child,
.dm-body__intro > p:last-child { margin-bottom: 0; }

.dm-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.dm-table,
.dm-body table.dm-table,
.dm-post__body table.dm-table {
  width: 100%; border-collapse: collapse; margin: 0;
  font-size: 0.9rem; line-height: 1.5;
}
.dm-table th,
.dm-table td {
  border: 1px solid var(--dm-ink-100); padding: 0.6rem 0.8rem;
  text-align: left; vertical-align: top;
}
.dm-table thead th { background: var(--dm-ink-50); font-weight: 600; color: var(--dm-ink-900); }
.dm-table tbody tr:nth-child(even) { background: rgba(248, 247, 248, 0.6); }

.dm-body img,
.dm-post__body img { max-width: 100%; height: auto; border-radius: 0.75rem; }
.dm-figure { margin: 1.75rem 0; }
.dm-figure img { width: 100%; }
.dm-figure figcaption { margin-top: 0.5rem; font-size: 0.85rem; line-height: 1.6; color: var(--dm-ink-500); }

.dm-body .instagram-media,
.dm-post__body .instagram-media {
  margin: 1.75rem auto !important; max-width: 540px; width: 100%;
}
.dm-body .instagram-media a,
.dm-post__body .instagram-media a { color: var(--dm-plum-700); }
.dm-embed { margin: 1.75rem 0; }
.dm-embed iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 0.75rem; }

/* ==================================================================
   Cookie consent
   ================================================================== */
.dm-consent {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  background: #fff; border-top: 1px solid var(--dm-ink-100);
  box-shadow: 0 -12px 30px -20px rgba(0, 0, 0, 0.35);
  padding: 1rem var(--dm-container-pad);
}
.dm-consent[hidden] { display: none; }
.dm-consent__inner {
  max-width: var(--dm-container); margin-inline: auto; display: flex; flex-wrap: wrap;
  gap: 1rem; align-items: center; justify-content: space-between;
}
.dm-consent__text { flex: 1 1 22rem; font-size: 0.875rem; line-height: 1.6; color: var(--dm-ink-700); }
.dm-consent__text strong { color: var(--dm-ink-900); }
.dm-consent__text a { color: var(--dm-plum-700); text-decoration: underline; }
.dm-consent__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dm-consent__btn {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 9999px; padding: 0.6rem 1.15rem;
  font-family: inherit; font-weight: 600; font-size: 0.9rem; line-height: 1;
  cursor: pointer; background: transparent; color: var(--dm-plum-700);
  border: 1.5px solid var(--dm-plum-600);
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.dm-consent__btn:hover { background: var(--dm-plum-50); color: var(--dm-plum-800); transform: translateY(-1px); }
.dm-consent__btn--primary { background: var(--dm-plum-600); border-color: var(--dm-plum-600); color: #fff; }
.dm-consent__btn--primary:hover { background: var(--dm-plum-700); border-color: var(--dm-plum-700); color: #fff; }
.dm-consent__panel {
  max-width: var(--dm-container); margin: 0.85rem auto 0; border-top: 1px solid var(--dm-ink-100);
  padding-top: 0.85rem; display: grid; gap: 0.5rem;
}
.dm-consent__panel[hidden] { display: none; }
.dm-consent__panel label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--dm-ink-700); }
.dm-consent__panel input[type="checkbox"] { width: 1rem; height: 1rem; accent-color: var(--dm-plum-600); }
.dm-consent__panel .dm-consent__btn { justify-self: start; margin-top: 0.25rem; }

.dm-consent-embed { position: relative; }
.dm-consent-embed__placeholder {
  display: grid; place-items: center; gap: 0.75rem; text-align: center;
  padding: 2.5rem 1.5rem; border: 1px dashed var(--dm-ink-100); border-radius: 1rem;
  background: var(--dm-ink-50); color: var(--dm-ink-700); font-size: 0.9rem;
}
.dm-consent-embed__placeholder p { margin: 0; max-width: 34rem; }
.dm-consent-embed > iframe,
.dm-consent-embed > .instagram-media { display: none; }
.dm-consent-embed[data-blocked="false"] > iframe { display: block; }
.dm-consent-embed[data-blocked="false"] > .instagram-media { display: block; }
.dm-consent-embed[data-blocked="false"] > .dm-consent-embed__placeholder { display: none; }
