/* Adivera site shell — layout styles on top of tokens.css (v1.1.2).
   All brand values come from the --ad-* custom properties in tokens.css.

   Class prefix: dv- (never ad-). Ad blockers (uBlock Origin, AdGuard,
   Malwarebytes Browser Guard …) apply EasyList/AdGuard cosmetic filters such
   as ##.ad-main, ##.ad-header, ##.ad-footer, ##.ad-hero, ##.ad-cta and
   ##.ad-field, which hide elements matching ad-* prefixes (2026-09-01).
   The --ad-* custom properties are unaffected (filters match class/id only). */

/* ---- page shell ---- */
.dv-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  padding: 0 var(--ad-space-5);
  position: relative;
}

/* Group landing: no header/index panel. Must fit common viewports without a
   scrollbar: 100svh (not 100vh, which overflows under mobile browser chrome)
   and vertical spacing scaled via clamp(); if content still exceeds the
   viewport the page scrolls rather than clipping. */
.dv-shell--bare {
  min-height: 100svh;
  padding: clamp(20px, 4svh, var(--ad-space-7)) var(--ad-space-5) 0;
}

.dv-main,
.dv-footer {
  width: 100%;
  max-width: var(--ad-container-page);
}

.dv-main { display: flex; flex-direction: column; }

/* ---- header ---- */
/* Sticky bar, flush with the viewport top; translucent over scrolling content,
   fades to the solid surface while the index panel is open. The panel is a
   child, absolutely positioned under the bar (see below). */
.dv-header {
  position: sticky;
  top: 0;
  z-index: 40;
  width: calc(100% + 2 * var(--ad-space-5));
  max-width: calc(var(--ad-container-page) + 2 * var(--ad-space-5));
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding: 16px var(--ad-space-5);
  margin: 0 0 18px;
  background: var(--ad-bar-bg);
  transition: background var(--ad-duration-slow) var(--ad-ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.dv-header.is-open { background: var(--ad-surface); }

.dv-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

.dv-lockup {
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: none;
}
.dv-lockup:hover { color: var(--ad-text); border-bottom: none; }
.dv-lockup:focus-visible { outline-offset: 4px; }

.dv-mark { display: block; width: 40px; height: 40px; color: var(--ad-accent); }

/* Both lockup lines are pinned to line-height:1 — the global body line-height
   must not cascade in; the 3px margin is the only spacing between the lines. */
.dv-wordmark {
  display: block;
  font-family: var(--ad-font-display);
  font-size: 15px;
  line-height: 1;
  letter-spacing: var(--ad-track-wordmark);
  color: var(--ad-text);
}

.dv-division {
  display: block;
  font-size: 8px;
  line-height: 1;
  letter-spacing: var(--ad-track-division);
  color: var(--ad-accent);
  margin-top: 3px;
}

/* ---- index toggle ---- */
.dv-index-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 10px 2px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ad-text);
  transition: color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .dv-index-toggle { color: var(--ad-accent); }
.dv-index-toggle:hover { color: var(--ad-accent-text); }
[data-theme="ink"] .dv-index-toggle:hover { color: var(--ad-text); }
.dv-index-toggle:focus-visible { outline: 1px solid var(--ad-focus); outline-offset: 4px; }

.dv-index-glyph {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  transition: transform 300ms var(--ad-ease); /* spec: open state rotates the glyph 90° (300ms) */
}
.dv-index-glyph span { display: block; height: 1px; background: currentColor; }
.dv-index-glyph span:nth-child(1),
.dv-index-glyph span:nth-child(3) { width: 9px; }
.dv-index-glyph span:nth-child(2) { width: 18px; }
.dv-index-toggle[aria-expanded="true"] .dv-index-glyph { transform: rotate(90deg); }

/* ---- index panel ---- */
/* Floats over the page content under the sticky bar; the height animates via
   grid-template-rows 0fr↔1fr (880ms both ways) — never max-height. */
.dv-index-panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  max-width: calc(var(--ad-container-page) + 2 * var(--ad-space-5));
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  background: var(--ad-bar-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition:
    grid-template-rows var(--ad-duration-panel) var(--ad-ease-panel),
    opacity var(--ad-duration-fade) ease,
    background var(--ad-duration-slow) var(--ad-ease);
}
.dv-index-panel.is-open {
  grid-template-rows: 1fr;
  opacity: 1;
  background: var(--ad-surface);
}

.dv-index-inner {
  overflow: hidden;
  min-height: 0;
  padding: 0 var(--ad-space-5);
}

/* Divider hairlines inside the panel; the first sits 16px below the bar,
   the second separates the nav from the meta row on division pages. */
.dv-index-rule {
  height: var(--ad-hairline);
  background: var(--ad-border);
}
.dv-index-inner > .dv-index-rule:first-child { margin-top: 16px; }

/* Division pages: meta row closing the panel — language switcher left,
   quiet Group link right. Group pages have no such row. */
.dv-index-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px 32px;
  flex-wrap: wrap;
  padding: 18px 0 34px;
}
.dv-index-meta .dv-lang { padding: 0; }

.dv-index-group {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ad-text);
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.dv-index-group:hover { color: var(--ad-accent-text); border-bottom: none; }
.dv-index-group:focus-visible { outline-offset: 3px; }
/* The Group is named with its own mark colourway, not the division accent */
.dv-index-group .dv-mark { width: 18px; height: 18px; color: var(--ad-rhodium); }

.dv-index-group-label { font-size: 9px; letter-spacing: var(--ad-track-nav); }

/* no-JS fallback: panel statically open in the header flow, toggle hidden.
   The header padding already indents the content, so the inner inset is dropped. */
.dv-no-js .dv-index-panel { position: static; grid-template-rows: 1fr; opacity: 1; }
.dv-no-js .dv-index-inner { padding: 0; }
.dv-no-js .dv-index-toggle { display: none; }

.dv-index-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 22px 48px;
  padding: 28px 0 26px;
}

.dv-index-link {
  display: flex;
  align-items: baseline;
  gap: 14px;
  color: var(--ad-text);
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.dv-index-link:hover { color: var(--ad-accent-text); border-bottom: none; }
[data-theme="ink"] .dv-index-link:hover { color: var(--ad-accent); }
.dv-index-link:focus-visible { outline-offset: 3px; }

.dv-index-num { font-size: 9px; letter-spacing: var(--ad-track-nav); color: var(--ad-accent); }
/* prototype fidelity: panel numbers on ink use rhodium, not rhodium-light */
[data-theme="ink"] .dv-index-num { color: var(--ad-rhodium); }

.dv-index-label { font-size: 11px; letter-spacing: var(--ad-track-label); text-transform: uppercase; }

/* ---- language switcher ---- */
.dv-lang { display: flex; gap: 14px; padding: 0 0 34px; }

.dv-lang-item {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  padding: 6px 3px;
  color: var(--ad-stone);
  border-bottom: var(--ad-hairline) solid transparent;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
a.dv-lang-item:hover { color: var(--ad-text); border-bottom-color: transparent; }
.dv-lang-item.is-current { color: var(--ad-focus); border-bottom-color: var(--ad-accent); }

/* Group landing: floating switcher top right */
.dv-lang-floating { position: absolute; top: 24px; right: 26px; }
.dv-lang-floating .dv-lang { padding: 0; gap: 8px; }

/* ---- Group landing ---- */
/* Smartphone portrait only: footer and language switcher (.dv-defer) start
   hidden and fade in on the first scroll gesture — site.js adds .dv-revealed
   to the shell (spec: 700ms ease). visibility switches after the fade on the
   way out and immediately on the way in. Only once JS has removed dv-no-js,
   so nothing is deferred without scripting; inert on desktop/tablet/landscape. */
@media (max-width: 600px) and (orientation: portrait) {
  html:not(.dv-no-js) .dv-defer {
    opacity: 0;
    visibility: hidden;
    transition: opacity 700ms ease, visibility 0s linear 700ms;
  }
  html:not(.dv-no-js) .dv-revealed .dv-defer {
    opacity: 1;
    visibility: visible;
    transition: opacity 700ms ease;
  }
}

.dv-shell--bare .dv-main { flex: 1 0 auto; }

.dv-landing {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: auto 0;
  padding: clamp(28px, 5svh, 64px) 0 clamp(20px, 4svh, 48px);
}

.dv-landing .dv-mark {
  width: clamp(72px, 13svh, 110px);
  height: auto;
  transition: color var(--ad-duration-slow) var(--ad-ease);
}
.dv-landing[data-hover="ventures"] .dv-mark { color: var(--ad-bronze); }
.dv-landing[data-hover="software"] .dv-mark { color: var(--ad-slate); }

.dv-landing-wordmark {
  font-size: clamp(30px, 8vw, var(--ad-size-h1));
  /* prototype fidelity: the landing lockup tracks wider than the header wordmark */
  letter-spacing: 0.34em;
  padding-left: 0.34em;
  margin: clamp(20px, 3.5svh, 34px) 0 0;
  color: var(--ad-text);
}

.dv-landing-division {
  font-size: var(--ad-size-label);
  letter-spacing: 0.5em;
  padding-left: 0.5em;
  color: var(--ad-accent);
  margin-top: 12px;
}

.dv-landing-divider {
  height: var(--ad-hairline);
  width: 72px;
  background: var(--ad-border-strong);
  margin: clamp(24px, 4svh, 44px) 0 clamp(22px, 3.5svh, 40px);
}

.dv-landing-claim {
  font-family: var(--ad-font-display);
  font-size: clamp(24px, 6vw, var(--ad-size-h2));
  line-height: 1.25;
  min-height: 44px;
  color: var(--ad-accent);
  transition: color var(--ad-duration-slow) var(--ad-ease);
}
.dv-landing[data-hover="ventures"] .dv-landing-claim { color: var(--ad-bronze); }
.dv-landing[data-hover="software"] .dv-landing-claim { color: var(--ad-slate); }

.dv-landing-divisions {
  display: flex;
  gap: clamp(28px, 7vw, 56px);
  margin-top: clamp(36px, 6.5svh, 72px);
}

.dv-landing-division-link {
  display: inline-block;
  font-size: var(--ad-size-label);
  letter-spacing: var(--ad-track-division);
  padding: 14px 4px 12px;
  margin-right: calc(-1 * var(--ad-track-division));
  color: var(--ad-stone-light);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-landing-division-link:focus-visible { outline-offset: 4px; }
.dv-landing-division-link--ventures:hover,
.dv-landing-division-link--ventures:focus-visible,
.dv-landing[data-hover="ventures"] .dv-landing-division-link--ventures {
  color: var(--ad-bronze);
  border-bottom-color: var(--ad-bronze);
}
.dv-landing-division-link--software:hover,
.dv-landing-division-link--software:focus-visible,
.dv-landing[data-hover="software"] .dv-landing-division-link--software {
  color: var(--ad-slate);
  border-bottom-color: var(--ad-slate);
}

/* ---- breadcrumb (every sub-page, HOME-rooted; landings are the root and have none) ----
   nav.dv-breadcrumb > ol > li: list styles reset; the separator lives inside
   the li so a crumb wraps together with its slash */
.dv-breadcrumb {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
}
.dv-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.dv-breadcrumb li {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.dv-breadcrumb a {
  color: var(--ad-stone);
  padding: 2px 0;
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-breadcrumb a:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }
/* prototype fidelity: the hover border on ink uses rhodium, not rhodium-light */
[data-theme="ink"] .dv-breadcrumb a:hover { border-bottom-color: var(--ad-rhodium); }
/* separator values come from the prototypes; they are not in the token set */
.dv-breadcrumb-sep { color: #C2BCAE; }
[data-theme="ink"] .dv-breadcrumb-sep { color: #4A4E56; }
.dv-breadcrumb-current { color: var(--ad-stone-deep); }
[data-theme="ink"] .dv-breadcrumb-current { color: var(--ad-stone-mist); }
/* h1 follows the breadcrumb at 22px; three-level detail pages at 24px */
.dv-breadcrumb + h1 { margin-top: 22px; }
.dv-breadcrumb--detail + h1 { margin-top: 24px; }

/* ---- detail-link arrow (every "more" link, shared partial _DetailArrow) ----
   docs/architecture.md → Conventions, "Detail-link arrow": label first, trailing inline SVG. 0.3em gap
   on letterspaced labels (the trailing tracking adds the rest); 0.5em on the
   untracked Marcellus reference cross-links (.dv-ref-feature). */
.dv-detail-arrow {
  width: 0.78em;
  height: 0.52em;
  margin-left: 0.3em;
  transform: translateY(-0.08em);
}
.dv-ref-feature .dv-detail-arrow { margin-left: 0.5em; }

/* ---- division landing ---- */
.dv-hero {
  padding: clamp(56px, 12vw, 104px) 0 clamp(56px, 11vw, 96px);
  max-width: var(--ad-container-reading);
}

.dv-hero-claim {
  font-size: clamp(40px, 9vw, 56px);
  line-height: 1.1;
  color: var(--ad-text);
}

.dv-hero-sub {
  font-family: var(--ad-font-display);
  font-size: 22px;
  color: var(--ad-accent-text);
  margin-top: 22px;
}

.dv-hero-intro {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ad-text-body);
  margin: 36px 0 0;
  max-width: 560px;
}

.dv-fields {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 72px;
}

.dv-fields-label {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  color: var(--ad-text-secondary);
  margin-bottom: 36px;
}

.dv-fields-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 36px 48px;
}

.dv-field-title {
  font-family: var(--ad-font-display);
  font-size: 19px;
  color: var(--ad-text);
}

.dv-field-text {
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--ad-text-secondary);
  margin: 10px 0 0;
}

.dv-closing {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 88px;
  display: flex;
  flex-wrap: wrap;
  gap: 28px 64px;
  align-items: baseline;
  justify-content: space-between;
}

.dv-closing-line {
  font-family: var(--ad-font-display);
  font-size: 26px;
  color: var(--ad-text);
  max-width: 520px;
}

/* Landing: quiet explore row under the FIELDS grid (Software) */
.dv-explore {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 44px;
  margin-top: 48px;
}

.dv-explore-link {
  font-size: var(--ad-size-micro);
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  padding: 2px 0;
  color: var(--ad-text);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-explore-link:hover { color: var(--ad-accent-text); border-bottom-color: var(--ad-accent); }

/* ---- software content pages (Solutions · Solution detail · References · Industries) ---- */
/* Shared hero: breadcrumb · h1 · accent subline · intro */
.dv-hero--content { padding: clamp(48px, 9vw, 88px) 0 clamp(48px, 8vw, 72px); }
.dv-hero--content .dv-hero-claim { font-size: clamp(36px, 7vw, 48px); line-height: 1.12; margin: 22px 0 0; }
.dv-hero--content .dv-hero-sub { font-size: 21px; margin-top: 20px; }
.dv-hero--content .dv-hero-intro { font-size: 16px; line-height: 1.75; margin: 32px 0 0; max-width: 600px; }
/* References: the filter row follows directly, so the hero closes earlier */
.dv-hero--refs { padding-bottom: clamp(40px, 7vw, 56px); }

/* Solutions: numbered hairline rows */
.dv-sol-row {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 34px 0 38px;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 8px 20px;
}

.dv-sol-num {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  color: var(--ad-accent);
  padding-top: 9px;
}

.dv-sol-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 28px;
  justify-content: space-between;
}

.dv-sol-title { font-family: var(--ad-font-display); font-size: 22px; color: var(--ad-text); }

.dv-sol-tags {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  color: var(--ad-stone);
}

.dv-sol-teaser {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ad-text-body);
  margin: 12px 0 0;
  max-width: 620px;
}

.dv-sol-detail {
  display: inline-block;
  font-size: 10px;
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  color: var(--ad-accent-text);
  border-bottom: var(--ad-hairline) solid transparent;
  margin-top: 16px;
  padding: 2px 0;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-sol-detail:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }

/* Solution detail: TYPICAL ENGAGEMENTS grid */
.dv-engagements {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 52px 0 60px;
}
.dv-engagements .dv-section-label { margin-bottom: 32px; }

.dv-engagements-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 26px 56px;
  max-width: 900px;
}

.dv-engagement { display: flex; gap: 16px; align-items: baseline; }
.dv-engagement-num { font-size: 9px; letter-spacing: var(--ad-track-nav); color: var(--ad-accent); }
.dv-engagement-text { font-size: 14.5px; line-height: 1.65; color: var(--ad-text-body); }

/* Solution detail: two-column HOW WE WORK + SELECTED REFERENCE */
.dv-solution-cols {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 52px 0 60px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 36px 72px;
}
.dv-solution-cols .dv-section-label { margin-bottom: 24px; }

.dv-how {
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--ad-text-body);
  margin: 0;
  max-width: 480px;
}

.dv-ref-feature {
  display: block;
  font-family: var(--ad-font-display);
  font-size: 19px;
  line-height: 1.4;
  color: var(--ad-text);
  max-width: 380px;
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.dv-ref-feature:hover { color: var(--ad-accent-text); border-bottom: none; }

.dv-ref-feature-tech {
  font-size: 9px;
  letter-spacing: 0.2em;
  color: var(--ad-stone);
  margin-top: 14px;
}

/* Solution detail: RELATED cross-reference instead of a reference (Diligence →
   Ventures business opportunities). Ink and Stone Deep only — a hairline
   reference, never a second accent. */
.dv-related-text {
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--ad-text-body);
  margin: 0 0 20px;
  max-width: 480px;
  text-wrap: pretty;
}

.dv-related-link {
  display: inline-block;
  font-size: 10px;
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  padding: 2px 0;
  color: var(--ad-stone-deep);
  border-bottom: var(--ad-hairline) solid var(--ad-border);
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-related-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-text); }

/* References: industry filter row, styled like the language switcher */
.dv-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  padding-bottom: 26px;
}

.dv-filter-item {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  padding: 6px 2px;
  color: var(--ad-stone);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-filter-item:hover { color: var(--ad-text); border-bottom-color: transparent; }
.dv-filter-item.is-current { color: var(--ad-focus); border-bottom-color: var(--ad-accent); }

/* References: hairline rows */
.dv-ref-row {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 32px 0 38px;
}

.dv-ref-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  align-items: baseline;
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
}
.dv-ref-ind { color: var(--ad-accent); }
.dv-ref-client { color: var(--ad-text-secondary); }

.dv-ref-title { font-family: var(--ad-font-display); font-size: 20px; color: var(--ad-text); margin-top: 12px; }

.dv-ref-text {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ad-text-body);
  margin: 10px 0 0;
  max-width: 620px;
}

.dv-ref-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 36px;
  align-items: baseline;
  margin-top: 16px;
}

.dv-ref-tech { font-size: 9px; letter-spacing: 0.2em; color: var(--ad-stone); }

.dv-ref-sol {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  color: var(--ad-accent-text);
  border-bottom: var(--ad-hairline) solid transparent;
  padding: 2px 0;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-ref-sol:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }

/* Industries: FIELDS-style auto-fit grid */
.dv-industries {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 72px;
}

.dv-industries-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 44px 56px;
}

.dv-industry-title { font-family: var(--ad-font-display); font-size: 19px; color: var(--ad-text); }

.dv-industry-text {
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--ad-text-secondary);
  margin: 10px 0 0;
}

.dv-industry-link {
  display: inline-block;
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  color: var(--ad-accent-text);
  border-bottom: var(--ad-hairline) solid transparent;
  margin-top: 14px;
  padding: 2px 0;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-industry-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }

/* ---- ventures opportunities (list · exposé detail · landing teaser) ---- */
/* The list rows reuse the dv-ref-* row classes above — same measurements in
   the prototypes. Drop 2026-08-20. */

/* List hero: breadcrumb · h1 · accent subline · intro */
.dv-hero--opps { padding: clamp(40px, 8vw, 72px) 0 clamp(40px, 7vw, 56px); }

/* Status label on list rows and the exposé meta line.
   prototype fidelity: the AVAILABLE green-grey comes from the design prototypes and is
   deliberately not in the token set */
.dv-opp-status--available { color: #5B6E54; }
.dv-opp-status--innegotiation { color: var(--ad-accent-text); }
.dv-opp-status--placed { color: var(--ad-stone); }

/* Empty category: quiet placeholder instead of a bare page */
.dv-opp-empty {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 40px 0 48px;
}

.dv-opp-empty-title {
  font-family: var(--ad-font-display);
  font-size: 19px;
  color: var(--ad-text);
  max-width: 520px;
}

.dv-opp-empty-text {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ad-text-secondary);
  margin: 10px 0 0;
  max-width: 560px;
}

/* Exposé hero: meta line · h1 · accent subline · intro */
.dv-hero--expose { padding: clamp(40px, 8vw, 72px) 0 clamp(36px, 6vw, 52px); }
/* exposé: the meta row follows the breadcrumb at 24px (drop 2026-09-01) */
.dv-hero--expose .dv-ref-meta { margin-top: 24px; }
.dv-hero--expose .dv-hero-claim { font-size: clamp(32px, 6vw, 44px); line-height: 1.15; margin: 22px 0 0; }
.dv-hero--expose .dv-hero-sub { font-size: 20px; margin-top: 16px; }
.dv-hero--expose .dv-hero-intro { font-size: 16px; line-height: 1.75; margin: 30px 0 0; max-width: 640px; }
.dv-opp-confidential { color: var(--ad-stone); }

/* Exposé content sections (highlights · key-data tables · narrative) */
.dv-expose-section {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 44px 0 52px;
}
.dv-expose-label { margin-bottom: 24px; }
.dv-expose-label--wide { margin-bottom: 28px; }

.dv-expose-highlights {
  display: flex;
  flex-direction: column;
  /* a real <ul role="list"> (see _OpportunityDetailBody): reset the list box, keep the flex column */
  margin: 0;
  padding: 0;
  list-style: none;
  /* Together with the 24px line height the dash pitch is 40px — a multiple of 4,
     so it lands on whole device pixels at the common Windows display scales
     (110/125/150/175 %); otherwise the 1px dashes snap to 1 or 2 device pixels
     alternately and look unevenly thick (rule in docs/brand/ventures.md). */
  gap: 16px;
  max-width: 680px;
}

.dv-expose-highlight {
  display: flex;
  gap: 16px;
  align-items: baseline;
}

.dv-expose-dash {
  flex: none;
  width: 14px;
  height: 1px;
  background: var(--ad-accent);
  transform: translateY(-4px);
}

.dv-expose-highlight-text {
  font-size: 14.5px;
  /* Whole-pixel line height (≈1.655) keeps every highlight dash on the same
     device-pixel fraction — see the gap comment on .dv-expose-highlights. */
  line-height: 24px;
  color: var(--ad-text-body);
}

.dv-expose-rows {
  display: flex;
  flex-direction: column;
  max-width: 680px;
}

.dv-expose-row {
  display: grid;
  grid-template-columns: minmax(150px, 210px) 1fr;
  gap: 6px 24px;
  align-items: baseline;
  padding: 11px 0;
  /* prototype fidelity: lighter table hairline, not in the token set */
  border-bottom: var(--ad-hairline) solid #E7E2D6;
}

.dv-expose-key {
  font-size: 12.5px;
  letter-spacing: 0.04em;
  color: var(--ad-stone);
  line-height: 1.55;
}

.dv-expose-value {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ad-text);
}

.dv-expose-text {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ad-text-body);
  margin: 0;
  max-width: 680px;
}

/* Exposé documents: labelled rows of bordered PDF chips (placeholder hrefs
   until the externally produced PDFs are wired in) */
.dv-expose-docs-intro {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ad-text-body);
  margin: 0 0 28px;
  max-width: 640px;
}

.dv-expose-docs-label {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  color: var(--ad-stone);
  margin-bottom: 12px;
}

.dv-expose-docs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.dv-expose-docs:not(:last-child) { margin-bottom: 28px; }

.dv-expose-doc {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  border: var(--ad-hairline) solid var(--ad-border);
  color: var(--ad-text);
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  padding: 13px 20px 12px;
  transition:
    border-color var(--ad-duration-base) var(--ad-ease),
    color var(--ad-duration-base) var(--ad-ease);
}
.dv-expose-doc:hover { border-color: var(--ad-text); }

.dv-expose-doc-pdf { color: var(--ad-accent); }

/* Exposé closing sits above the disclaimer, so it closes earlier */
.dv-closing--expose { padding: 56px 0 72px; }

.dv-expose-disclaimer {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 28px 0 64px;
}

.dv-expose-disclaimer p {
  font-size: 11.5px;
  line-height: 1.8;
  color: var(--ad-stone);
  margin: 0;
  max-width: 720px;
}
.dv-expose-disclaimer p + p { margin-top: 12px; }

/* Partner sentence (Disclaimer C wording) under the Opportunities intro and
   above the exposé CTA — small print in Stone, sentence case, never a box */
.dv-partner-note {
  font-size: 10px;
  letter-spacing: var(--ad-track-legal);
  line-height: 2;
  color: var(--ad-stone);
  margin: 20px 0 0;
  max-width: 600px;
}
.dv-partner-note--expose { margin: 0 0 28px; }

/* Ventures landing: CURRENT OPPORTUNITIES teaser above the closing */
.dv-opp-teaser {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 72px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px 64px;
  align-items: baseline;
  justify-content: space-between;
}

.dv-opp-teaser-lead { max-width: 560px; }

.dv-opp-teaser-line {
  font-family: var(--ad-font-display);
  font-size: 22px;
  color: var(--ad-text);
  margin-top: 18px;
}

.dv-opp-teaser-link {
  font-size: 10px;
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  color: var(--ad-accent-text);
  border-bottom: var(--ad-hairline) solid transparent;
  padding: 2px 0;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-opp-teaser-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }

/* ---- contact page ---- */
.dv-hero--contact { padding: clamp(56px, 11vw, 96px) 0 clamp(48px, 9vw, 80px); }
.dv-hero-claim--contact { font-size: clamp(36px, 8vw, 48px); line-height: 1.15; }
[data-theme="ink"] .dv-hero-sub { color: var(--ad-accent); }

/* letterspaced section/field label (write-to-us, address cities, follow) */
.dv-section-label {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  color: var(--ad-text-secondary);
}
[data-theme="ink"] .dv-section-label { color: var(--ad-stone); }

.dv-contact-write {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 64px;
}
.dv-contact-write .dv-section-label { margin-bottom: 36px; }

/* REGARDING EXPOSÉ line above the form when the Ventures contact page is
   opened via ?ref=<AV-id> from an exposé page */
.dv-contact-ref {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: -12px 0 32px;
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
}

.dv-contact-ref-label { color: var(--ad-accent-text); }

.dv-contact-ref-id {
  color: var(--ad-text);
  border-bottom: var(--ad-hairline) solid var(--ad-accent);
  padding-bottom: 2px;
}

.dv-form {
  max-width: 560px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.dv-form-status {
  max-width: 560px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ad-text);
  margin: 0 0 28px;
}
.dv-form-status--error { color: var(--ad-critical); }
[data-theme="ink"] .dv-form-status--error { color: var(--ad-critical-on-ink); }

.dv-field { display: flex; flex-direction: column; gap: 8px; }

.dv-field-label {
  font-size: 9px;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  color: var(--ad-text-secondary);
}
[data-theme="ink"] .dv-field-label { color: var(--ad-stone); }

.dv-field-input {
  background: transparent;
  border: none;
  border-bottom: var(--ad-hairline) solid var(--ad-border-strong);
  border-radius: var(--ad-radius);
  padding: 10px 0;
  font-size: 15px;
  color: var(--ad-text);
  font-family: inherit;
  outline: none;
  transition: border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-field-input:focus { border-bottom-color: var(--ad-accent); }
.dv-field-input.is-invalid { border-bottom-color: var(--ad-critical); }
.dv-field-input--area { line-height: 1.7; resize: vertical; }

.dv-field-error {
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--ad-critical);
  margin: 2px 0 0;
}
[data-theme="ink"] .dv-field-error { color: var(--ad-critical-on-ink); }

.dv-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 36px;
  align-items: baseline;
  margin-top: 8px;
}

.dv-mail-alt { font-size: var(--ad-size-micro); color: var(--ad-stone); }

.dv-mail-link {
  color: var(--ad-text-secondary);
  border-bottom: var(--ad-hairline) solid var(--ad-border-strong);
  padding-bottom: 1px;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-mail-link:hover { color: var(--ad-accent-text); border-bottom-color: var(--ad-accent); }
[data-theme="ink"] .dv-mail-link:hover { color: var(--ad-accent); }

.dv-contact-channels {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 88px;
}

.dv-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 48px 64px;
}

.dv-block-name {
  font-family: var(--ad-font-display);
  font-size: 22px;
  color: var(--ad-text);
  margin-top: 16px;
}

.dv-block-lines {
  font-size: var(--ad-size-small);
  line-height: 2;
  color: var(--ad-text-secondary);
  margin-top: 14px;
}

.dv-block-note { font-size: var(--ad-size-micro); color: var(--ad-stone); margin-top: 8px; }

.dv-line-link {
  display: inline-block;
  font-size: var(--ad-size-small);
  color: var(--ad-text);
  margin-top: 16px;
  border-bottom: var(--ad-hairline) solid var(--ad-border-strong);
  padding-bottom: 2px;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-line-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }
/* prototype fidelity: contact phone/mail lines on ink use the accent, not ivory */
[data-theme="ink"] .dv-contact-grid .dv-line-link { color: var(--ad-accent); }

.dv-social-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 20px;
}

.dv-social-link {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ad-text);
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.dv-social-link:hover { color: var(--ad-accent-text); border-bottom: none; }
[data-theme="ink"] .dv-social-link:hover { color: var(--ad-accent); }
.dv-social-link:focus-visible { outline-offset: 3px; }
.dv-social-name { font-size: var(--ad-size-small); }
.dv-social-handle { font-size: var(--ad-size-micro); color: var(--ad-stone); }

/* ---- legal notice ---- */
.dv-hero--legal { padding: clamp(48px, 9vw, 80px) 0 clamp(40px, 7vw, 64px); }
.dv-hero-claim--legal { font-size: clamp(34px, 7.5vw, 46px); line-height: 1.14; }

.dv-legal {
  border-top: var(--ad-hairline) solid var(--ad-border);
  padding: 56px 0 88px;
}

.dv-legal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 44px 64px;
}

.dv-legal-phone { margin-top: 12px; }
.dv-legal-phone .dv-line-link { margin-top: 0; }

/* Ventures imprint: NOTICE section (Disclaimer Text B) — body text, no box */
.dv-legal-notice {
  border-top: var(--ad-hairline) solid var(--ad-border);
  margin-top: 56px;
  padding-top: 44px;
}

.dv-legal-notice p {
  font-size: 14px;
  line-height: 1.85;
  color: var(--ad-stone-deep);
  margin: 18px 0 0;
  max-width: 560px;
  text-wrap: pretty;
}

.dv-legal-docs {
  border-top: var(--ad-hairline) solid var(--ad-border);
  margin-top: 56px;
  padding-top: 44px;
}
.dv-legal-notice + .dv-legal-docs { margin-top: 44px; }

.dv-legal-doc-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin-top: 22px;
}
.dv-legal-doc-list .dv-line-link { margin-top: 0; }

.dv-legal-copyright {
  font-size: var(--ad-size-label);
  line-height: 1.8;
  color: var(--ad-stone);
  margin: 64px 0 0;
  max-width: 560px;
}

/* ---- legal documents (AGB / Datenschutz, shared German reading column) ---- */
.dv-doc { max-width: var(--ad-container-reading); padding: clamp(40px, 7vw, 64px) 0 88px; }

.dv-doc h1 { font-size: clamp(30px, 6.5vw, 40px); line-height: 1.16; }

.dv-doc-term { font-weight: 600; }

.dv-doc-label {
  font-size: 10px;
  letter-spacing: var(--ad-track-label);
  color: var(--ad-stone);
  margin-top: 18px;
}

.dv-doc h2 {
  font-size: 20px;
  letter-spacing: 0.02em;
  margin: 52px 0 18px;
  display: flex;
  gap: 14px;
  align-items: baseline;
}

.dv-doc h3 {
  font-size: var(--ad-size-body);
  margin: 32px 0 14px;
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.dv-doc-num { font-size: var(--ad-size-label); letter-spacing: 0.1em; color: var(--ad-accent); }
.dv-doc h3 .dv-doc-num { font-size: var(--ad-size-micro); }
/* prototype fidelity: section numbers on ink use rhodium, not rhodium-light */
[data-theme="ink"] .dv-doc-num { color: var(--ad-rhodium); }

.dv-doc p {
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--ad-text-body);
  margin: 0 0 14px;
}

.dv-doc-sign {
  font-family: var(--ad-font-display);
  font-size: var(--ad-size-body);
  color: var(--ad-accent-text);
  margin-top: 56px;
}
[data-theme="ink"] .dv-doc-sign { color: var(--ad-accent); }

/* ---- legal documents: meta row (PDF download link) ---- */
.dv-doc-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px 32px;
  margin-top: 30px;
  padding-top: 16px;
  border-top: var(--ad-hairline) solid var(--ad-border);
}

.dv-doc-downloads {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  align-items: baseline;
}

.dv-doc-download {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  padding: 2px 0;
  color: var(--ad-stone-deep);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .dv-doc-download { color: var(--ad-stone); }

a.dv-doc-download:hover {
  color: var(--ad-text);
  border-bottom-color: var(--ad-accent);
}
/* prototype fidelity: underlines on ink use rhodium, not rhodium-light */
[data-theme="ink"] a.dv-doc-download:hover { border-bottom-color: var(--ad-rhodium); }

/* convenience-translation note; "German version" links to ?doc=de */
.dv-doc-note {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ad-stone-deep);
  margin: 16px 0 0;
}
[data-theme="ink"] .dv-doc-note { color: var(--ad-stone); }

.dv-doc-note a {
  color: inherit;
  border-bottom: var(--ad-hairline) solid var(--ad-accent);
  transition: color var(--ad-duration-base) var(--ad-ease);
}
.dv-doc-note a:hover { color: var(--ad-text); }
[data-theme="ink"] .dv-doc-note a { border-bottom-color: var(--ad-rhodium); }

/* ---- doc header variant (Group AGB / Datenschutz) ---- */
.dv-header-legal {
  font-size: 10px;
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  color: var(--ad-text);
  padding: 10px 2px;
  border-bottom: none;
  transition: color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .dv-header-legal { color: var(--ad-accent); }
.dv-header-legal:hover { color: var(--ad-accent-text); border-bottom: none; }
[data-theme="ink"] .dv-header-legal:hover { color: var(--ad-text); }
.dv-header-legal:focus-visible { outline-offset: 4px; }

/* ---- CTA button ---- */
.dv-cta {
  display: inline-block;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--ad-size-micro);
  letter-spacing: var(--ad-track-cta);
  text-transform: uppercase;
  padding: 16px 30px 15px;
  margin-right: calc(-1 * var(--ad-track-cta));
  color: var(--ad-text);
  border: var(--ad-hairline) solid var(--ad-text);
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease),
    background var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .dv-cta { color: var(--ad-accent); border-color: var(--ad-accent); }
.dv-cta:hover {
  background: var(--ad-text);
  border-color: var(--ad-text);
  color: var(--ad-surface);
}
[data-theme="ink"] .dv-cta:hover {
  background: var(--ad-accent);
  border-color: var(--ad-accent);
  color: var(--ad-surface);
}
.dv-cta:focus-visible { outline: 1px solid var(--ad-focus); outline-offset: 3px; }

/* ---- footer ---- */
.dv-footer {
  border-top: var(--ad-hairline) solid var(--ad-border);
  margin-top: auto;
  padding: 22px 0 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  justify-content: space-between;
  align-items: baseline;
}

.dv-footer-links { display: flex; gap: 24px; align-items: baseline; }

.dv-footer-link {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  padding: 2px 0;
  color: var(--ad-text-secondary);
  border-bottom: var(--ad-hairline) solid transparent;
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
[data-theme="ink"] .dv-footer-link { color: var(--ad-stone); }
.dv-footer-link:hover { color: var(--ad-text); border-bottom-color: var(--ad-accent); }
[data-theme="ink"] .dv-footer-link:hover { color: var(--ad-accent); border-bottom-color: var(--ad-accent); }
/* Group footer: division links hover in the target division's accent */
[data-theme="ink"] .dv-footer-link--ventures:hover { color: var(--ad-bronze); border-bottom-color: var(--ad-bronze); }
[data-theme="ink"] .dv-footer-link--software:hover { color: var(--ad-slate); border-bottom-color: var(--ad-slate); }

.dv-footer-locations {
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  color: var(--ad-text-secondary);
}
[data-theme="ink"] .dv-footer-locations { color: var(--ad-stone); }

.dv-footer-legal {
  font-size: 9px;
  letter-spacing: var(--ad-track-legal);
  line-height: 2;
  color: var(--ad-stone);
}
[data-theme="ink"] .dv-footer-legal { color: var(--ad-stone-shadow); }

/* adivera.ventures only: notice line (Disclaimer Text A) on its own row below
   the legal line — Stone, legal tracking, sentence case, no box, no icon */
.dv-footer-notice {
  width: 100%;
  font-size: 10px;
  letter-spacing: var(--ad-track-legal);
  line-height: 2;
  color: var(--ad-stone);
}

/* ---- cookie consent banner ---- */
/* Discreet fixed card bottom-left, shown until the visitor decides.
   Light pages: ivory card, soft shadow; dark Group pages: inverted ink card.
   Left-aligned at 380px on desktop; on narrow viewports the right constraint
   shrinks the card to fit — it must never overhang the right edge. */
.dv-consent {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 60;
  max-width: 380px;
  width: fit-content;
  box-sizing: border-box;
  padding: 18px 20px 16px;
  background: var(--ad-surface);
  border: var(--ad-hairline) solid var(--ad-border);
  box-shadow: 0 12px 32px color-mix(in srgb, var(--ad-ink) 10%, transparent);
}
[data-theme="ink"] .dv-consent {
  border-color: color-mix(in srgb, var(--ad-ivory) 22%, transparent);
  box-shadow: var(--ad-shadow-floating);
}
/* The choice cannot be stored without JS (and no analytics runs either),
   so an undismissable card would only obstruct — hide it. */
.dv-no-js .dv-consent { display: none; }

.dv-consent-text {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ad-text-body);
}
[data-theme="ink"] .dv-consent-text { color: var(--ad-rhodium-light); }

.dv-consent-link {
  color: var(--ad-text);
  border-bottom: var(--ad-hairline) solid var(--ad-accent);
}
.dv-consent-link:focus-visible { outline: 1px solid var(--ad-focus); outline-offset: 3px; }

.dv-consent-actions {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.dv-consent-button {
  cursor: pointer;
  font-family: inherit;
  font-size: 9px;
  letter-spacing: var(--ad-track-nav);
  text-transform: uppercase;
  padding: 9px 14px 8px;
}
.dv-consent-button:focus-visible { outline: 1px solid var(--ad-focus); outline-offset: 3px; }

.dv-consent-button--accept {
  background: var(--ad-text);
  color: var(--ad-surface);
  border: var(--ad-hairline) solid var(--ad-text);
}

.dv-consent-button--essential {
  background: none;
  color: var(--ad-text-secondary);
  border: var(--ad-hairline) solid var(--ad-border);
  transition:
    color var(--ad-duration-base) var(--ad-ease),
    border-color var(--ad-duration-base) var(--ad-ease);
}
.dv-consent-button--essential:hover { color: var(--ad-text); border-color: var(--ad-text); }
[data-theme="ink"] .dv-consent-button--essential {
  color: color-mix(in srgb, var(--ad-ivory) 62%, transparent);
  border-color: color-mix(in srgb, var(--ad-ivory) 30%, transparent);
}
[data-theme="ink"] .dv-consent-button--essential:hover {
  color: var(--ad-ivory);
  border-color: var(--ad-ivory);
}
