/*
 * datingv2 – landing area ("/": view/datingv2/_landing*.php). Loaded by the guest header after datingv2.css on the landing
 * only (area "landing"). Every rule is scoped ".dv2 …" (0,2,0) and uses the --dv2-* tokens, so each brand gets its own
 * accent through .dv2[data-app=…] (datingv2.css §3). Shared public components (bar, footer, ticket, choice pills, trust
 * line, social buttons) come from datingv2.css §10 and are not restyled here, only placed.
 * Boards: scratchpad design/public/final (Landing 390, LandingDesktop 1280, ExitIntent). Mobile first; 992px = desktop.
 * Legacy style2.css / theme_<app>.css / Bootstrap stay loaded: headings, lists, tables, details get explicit values here.
 */

.dv2 .dv2-land {
  --dv2-land-sec: 48px;
  --dv2-land-tone-1: #dcd5e6; --dv2-land-tone-1-ink: #4d4759;     /* photo placeholder tones (only while a photo loads / fails) */
  --dv2-land-tone-2: #e6d9cd; --dv2-land-tone-2-ink: #57483b;
  --dv2-land-tone-3: #d3dde3; --dv2-land-tone-3-ink: #3e4d56;
  --dv2-land-tone-4: #e8d6dc; --dv2-land-tone-4-ink: #5a4350;
  --dv2-land-tone-5: #dfe3d3; --dv2-land-tone-5-ink: #46503a;
  --dv2-land-tone-6: #d8d4e9; --dv2-land-tone-6-ink: #48435e;
  display: block;
}
@media (min-width: 992px) {
  .dv2 .dv2-land { --dv2-land-sec: 84px; }
}
.dv2 .dv2-land :where(h1, h2, h3, p, ul, ol, dl, dd, figure) { margin: 0; }
.dv2 .dv2-land :where(ul, ol) { padding: 0; list-style: none; }

/* headings */
.dv2 .dv2-land-h1 {
  font-family: var(--dv2-font-display); font-size: 34px; line-height: 1.05; font-weight: 800; letter-spacing: -0.02em;
  color: var(--dv2-ink); text-wrap: balance; overflow-wrap: break-word;
}
.dv2 .dv2-land-h1__greet {
  display: block; margin-bottom: 8px; font-size: 25px; line-height: 1.1; letter-spacing: -0.01em; color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-h1__main { display: block; }
.dv2 .dv2-land-h2 {
  font-family: var(--dv2-font-display); font-size: 26px; line-height: 1.12; font-weight: 800; letter-spacing: -0.015em;
  color: var(--dv2-ink); text-wrap: balance; overflow-wrap: break-word;
}
.dv2 .dv2-land-sec { padding-top: var(--dv2-land-sec); }
.dv2 .dv2-land-sec__lead { margin-top: 8px; font-size: 16px; line-height: 1.5; color: var(--dv2-text2); }

/* ------------------------------------------------------------------ hero */
.dv2 .dv2-land-hero { padding-top: 18px; }
.dv2 .dv2-land-hero__grid {
  display: grid; grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "head" "teaser" "form" "trust";
}
.dv2 .dv2-land-hero__head { grid-area: head; min-width: 0; }
.dv2 .dv2-land-lead { display: none; }
.dv2 .dv2-land-teaser { grid-area: teaser; min-width: 0; margin-top: 20px; }
.dv2 .dv2-land-card { grid-area: form; margin-top: 20px; }
.dv2 .dv2-land-trust { grid-area: trust; margin-top: 14px; }
.dv2 .dv2-land-trust .dv2-land-trust__wide { display: none; }

/* teaser strip: phones scroll sideways (4th card peeks), desktop 3 x 2 grid in the right-hand column */
.dv2 .dv2-land-teaser[hidden] { display: none; }
.dv2 .dv2-land-teaser__h { font-family: var(--dv2-font); font-size: 18px; line-height: 1.25; font-weight: 800; color: var(--dv2-ink); }
.dv2 .dv2-land-teaser__lock {
  display: flex; align-items: center; gap: 6px; margin-top: 2px;
  font-size: 15px; line-height: 1.35; font-weight: 500; color: var(--dv2-text3);
}
.dv2 .dv2-land-teaser__lock > .dv2-icon { color: var(--dv2-text3); }
.dv2 .dv2-land-strip {
  margin: 12px calc(-1 * var(--dv2-pub-gutter)) 0; padding: 0 var(--dv2-pub-gutter) 4px;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scroll-padding: 0 var(--dv2-pub-gutter);
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.dv2 .dv2-land-strip::-webkit-scrollbar { display: none; }
.dv2 .dv2-land-strip:focus-visible { outline: 3px solid var(--dv2-focus); outline-offset: -3px; border-radius: var(--dv2-r-card); }
.dv2 .dv2-land-strip__list { display: flex; gap: 10px; width: max-content; }
.dv2 .dv2-land-strip__item { flex: none; width: 104px; scroll-snap-align: start; }

.dv2 .dv2-land-tcard {
  display: flex; flex-direction: column; min-width: 0; border-radius: var(--dv2-r-card);
  color: var(--dv2-ink); text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.dv2 .dv2-land-tcard:hover { color: var(--dv2-ink); text-decoration: none; }
.dv2 .dv2-land-tcard:focus-visible { outline: 3px solid var(--dv2-focus); outline-offset: 2px; }
.dv2 .dv2-land-tcard__ph {
  position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden;
  width: 100%; aspect-ratio: 104 / 118; border-radius: var(--dv2-r-card);
  background: var(--dv2-placeholder); color: var(--dv2-placeholder-ink);
}
.dv2 .dv2-land-tone-1 { background: var(--dv2-land-tone-1); color: var(--dv2-land-tone-1-ink); }
.dv2 .dv2-land-tone-2 { background: var(--dv2-land-tone-2); color: var(--dv2-land-tone-2-ink); }
.dv2 .dv2-land-tone-3 { background: var(--dv2-land-tone-3); color: var(--dv2-land-tone-3-ink); }
.dv2 .dv2-land-tone-4 { background: var(--dv2-land-tone-4); color: var(--dv2-land-tone-4-ink); }
.dv2 .dv2-land-tone-5 { background: var(--dv2-land-tone-5); color: var(--dv2-land-tone-5-ink); }
.dv2 .dv2-land-tone-6 { background: var(--dv2-land-tone-6); color: var(--dv2-land-tone-6-ink); }
.dv2 .dv2-land-tcard__ghost { opacity: .75; }
.dv2 .dv2-land-tcard__img {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover;
  transform: scale(1.06);                                     /* the blurred jpeg has soft edges */
  transition: transform .25s ease;
}
.dv2 .dv2-land-tcard__img.is-broken { display: none; }
.dv2 .dv2-land-tcard:hover .dv2-land-tcard__img { transform: scale(1.1); }
.dv2 .dv2-land-tcard__lock {
  position: absolute; top: 7px; right: 7px; z-index: 1; display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 999px; background: #fff; color: var(--dv2-ink);
  box-shadow: 0 1px 3px rgba(28, 26, 34, 0.18);
}
.dv2 .dv2-land-tcard__name {
  margin-top: 7px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font-size: 16px; line-height: 1.25; font-weight: 800; color: var(--dv2-ink);
}
.dv2 .dv2-land-tcard__town {
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font-size: 15px; line-height: 1.3; font-weight: 600; color: var(--dv2-text3);
}
.dv2 .dv2-land-tcard__ph--more {
  flex-direction: column; gap: 8px; padding: 10px; box-sizing: border-box;
  border: 1.5px dashed var(--dv2-accent-line); background: var(--dv2-accent-soft); color: var(--dv2-accent-ink); text-align: center;
}
.dv2 .dv2-land-tcard__arrow {
  display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px;
  background: #fff; color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-tcard__moretxt { font-size: 14px; line-height: 1.25; font-weight: 800; }
.dv2 .dv2-land-tcard--more:hover .dv2-land-tcard__ph--more { border-color: var(--dv2-accent); }
/* "Ich suche: einen Mann" chosen on the page: the strip (women) stays in place, muted and inert (JS), so nothing jumps */
.dv2 .dv2-land-teaser.is-muted .dv2-land-strip,
.dv2 .dv2-land-teaser.is-muted .dv2-land-teaser__lock { opacity: .38; filter: grayscale(1); pointer-events: none; transition: opacity .2s ease; }

/* form card: gift band + choice + CTA + progress (the page's only filled accent element in the hero) */
.dv2 .dv2-land-card {
  box-sizing: border-box; min-width: 0; overflow: hidden;
  border: 1px solid var(--dv2-divider); border-radius: var(--dv2-r-card); background: #fff; box-shadow: var(--dv2-pub-shadow-hero);
}
.dv2 .dv2-land-ticket[hidden] { display: none; }
.dv2 .dv2-land-card__body { padding: 14px 16px 16px; }
.dv2 .dv2-land-choice > legend { width: 84px; }
.dv2 .dv2-land-cta { margin-top: 16px; }
.dv2 .dv2-land-progress {
  display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 12px;
  font-size: 14px; line-height: 1.35; font-weight: 600; color: var(--dv2-text3); text-align: center;
}
.dv2 .dv2-land-progress__bars { flex: none; display: inline-flex; gap: 4px; }
.dv2 .dv2-land-progress__bars > span { display: block; width: 20px; height: 5px; border-radius: 999px; background: var(--dv2-divider); }
.dv2 .dv2-land-progress__bars > span:first-child { background: var(--dv2-accent); }
.dv2 .dv2-land[data-step="2"] .dv2-land-progress__bars > span:nth-child(2) { background: var(--dv2-accent); transition: background-color .2s ease; }
.dv2 .dv2-land-card .dv2-pub-or { margin: 16px 0 12px; }

/* ------------------------------------------------------------------ how it works */
.dv2 .dv2-land-steps { position: relative; margin-top: 22px; }
.dv2 .dv2-land-step {
  position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 14px; align-content: start;
  padding-bottom: 24px;
}
.dv2 .dv2-land-step:last-child { padding-bottom: 0; }
.dv2 .dv2-land-step:not(:last-child)::before {   /* dotted connector between the number circles */
  content: ""; position: absolute; left: 17px; top: 42px; bottom: 6px; border-left: 2px dotted var(--dv2-accent-line);
}
.dv2 .dv2-land-step__ill { display: none; }
.dv2 .dv2-land-step__num {
  grid-column: 1; grid-row: 1; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border-radius: 999px; background: var(--dv2-accent-soft); color: var(--dv2-accent-ink);
  font-family: var(--dv2-font-display); font-size: 17px; font-weight: 800;
}
.dv2 .dv2-land-step__txt { grid-column: 2; grid-row: 1; padding-top: 5px; }
.dv2 .dv2-land-step__t { font-family: var(--dv2-font); font-size: 17px; line-height: 1.3; font-weight: 800; color: var(--dv2-ink); }
.dv2 .dv2-land-step__d { margin-top: 3px; font-size: 16px; line-height: 1.5; color: var(--dv2-text2); }

/* composer example (a picture of the real chat hint, aria-hidden) */
.dv2 .dv2-land-example { margin-top: 22px; padding: 14px 14px 12px; border-radius: var(--dv2-r-sheet); background: var(--dv2-surface); }
.dv2 .dv2-land-example[hidden] { display: none; }
.dv2 .dv2-land-composer {
  display: flex; align-items: center; gap: 10px; box-sizing: border-box; min-height: 54px; padding: 5px 5px 5px 16px;
  border: 1px solid var(--dv2-outline); border-radius: 999px; background: #fff;
}
.dv2 .dv2-land-composer__txt { flex: 1 1 auto; min-width: 0; font-size: 16px; line-height: 1.3; color: var(--dv2-text3); }
.dv2 .dv2-land-composer__send {
  flex: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px;
  background: var(--dv2-accent); color: #fff;
}
.dv2 .dv2-land-example__cap { margin-top: 8px; padding: 0 4px; font-size: 14px; line-height: 1.35; color: var(--dv2-text3); }

/* ------------------------------------------------------------------ features */
.dv2 .dv2-land-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
.dv2 .dv2-land-tile {
  display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; column-gap: 10px; row-gap: 8px;
  align-content: start; box-sizing: border-box; padding: 12px 12px 16px; border-radius: var(--dv2-r-card); background: var(--dv2-surface);
}
.dv2 .dv2-land-tile__ic {
  display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px;
  background: #fff; color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-tile__t { font-family: var(--dv2-font); font-size: 17px; line-height: 1.25; font-weight: 800; color: var(--dv2-ink); overflow-wrap: anywhere; hyphens: auto; }
.dv2 .dv2-land-tile__d { grid-column: 1 / -1; font-size: 15px; line-height: 1.45; color: var(--dv2-text2); }

/* ------------------------------------------------------------------ costs | safety */
.dv2 .dv2-land-duo { display: grid; grid-template-columns: minmax(0, 1fr); }
.dv2 .dv2-land-costs {   /* <dl>: one flex row per price (label left, value right); rows size independently on phones */
  margin: 16px 0 0; overflow: hidden; border: 1px solid var(--dv2-divider); border-radius: var(--dv2-r-card);
  font-size: 16px; line-height: 1.35;
}
.dv2 .dv2-land-costs__row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; box-sizing: border-box; min-height: 50px;
  padding: 11px 16px; border-top: 1px solid var(--dv2-divider);
}
.dv2 .dv2-land-costs__row:first-child { border-top: 0; }
.dv2 .dv2-land-costs__row[hidden] { display: none; }
.dv2 .dv2-land-costs dt { flex: 1 1 auto; min-width: 0; margin: 0; font-weight: 400; color: var(--dv2-text2); }
.dv2 .dv2-land-costs dd { flex: 0 1 auto; max-width: 62%; margin: 0; text-align: right; }
.dv2 .dv2-land-v { display: inline-block; font-weight: 800; color: var(--dv2-ink); white-space: nowrap; }
.dv2 .dv2-land-v--text { white-space: normal; }
.dv2 .dv2-land-v--free { color: var(--dv2-bonus); }
.dv2 .dv2-land-v--gift {
  display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 12px 0 9px; box-sizing: border-box;
  border-radius: 999px; background: var(--dv2-accent-soft); color: var(--dv2-accent-ink); font-size: 15px;
}
.dv2 .dv2-land-cost__foot { display: flex; align-items: flex-start; gap: 8px; margin-top: 12px; font-size: 15px; line-height: 1.4; font-weight: 600; color: var(--dv2-ink); }
.dv2 .dv2-land-cost__foot > .dv2-icon { margin-top: 1px; color: var(--dv2-bonus); }

.dv2 .dv2-land-safelist { display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
.dv2 .dv2-land-safelist > li { display: flex; align-items: flex-start; gap: 14px; }
.dv2 .dv2-land-safelist__ic {
  flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px;
  background: var(--dv2-accent-soft); color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-safelist__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-top: 1px; }
.dv2 .dv2-land-safelist__txt > strong { font-size: 16px; line-height: 1.3; font-weight: 800; color: var(--dv2-ink); }
.dv2 .dv2-land-safelist__txt > span { font-size: 15px; line-height: 1.5; color: var(--dv2-text2); }
.dv2 .dv2-land-safelist a { color: var(--dv2-ink); font-weight: 700; text-decoration: underline; }
.dv2 .dv2-land-safelist a:hover { color: var(--dv2-accent-ink); }

/* ------------------------------------------------------------------ FAQ (native details; works without JS) */
.dv2 .dv2-land-faq__cols { margin-top: 16px; border-top: 1px solid var(--dv2-divider); }
.dv2 .dv2-land-qa { border-bottom: 1px solid var(--dv2-divider); scroll-margin-top: calc(var(--dv2-pub-bar-h) + var(--dv2-safe-top) + 12px); }
.dv2 .dv2-land-qa__q {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 8px 0;
  box-sizing: border-box; cursor: pointer; list-style: none;
  font-size: 17px; line-height: 1.3; font-weight: 700; color: var(--dv2-ink); -webkit-tap-highlight-color: transparent;
}
.dv2 .dv2-land-qa__q::-webkit-details-marker { display: none; }
.dv2 .dv2-land-qa__q::marker { content: ""; }
.dv2 .dv2-land-qa__q:hover .dv2-land-qa__qt { text-decoration: underline; text-underline-offset: 3px; }
.dv2 .dv2-land-qa__q:focus-visible { outline: 3px solid var(--dv2-focus); outline-offset: 2px; border-radius: 8px; }
.dv2 .dv2-land-qa__ic {
  flex: none; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 999px;
  background: var(--dv2-accent-soft); color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-qa__minus, .dv2 .dv2-land-qa[open] .dv2-land-qa__plus { display: none; }
.dv2 .dv2-land-qa[open] .dv2-land-qa__minus { display: inline-block; }
.dv2 .dv2-land-qa__a { padding: 0 0 18px; font-size: 16px; line-height: 1.55; color: var(--dv2-text2); }
.dv2 .dv2-land-qa__a a { color: var(--dv2-accent-ink); font-weight: 700; text-decoration: underline; }
.dv2 .dv2-land-qa__a a:hover { color: var(--dv2-accent-dark); }

/* ------------------------------------------------------------------ final CTA (accent surface) */
.dv2 .dv2-land-final {
  display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 16px;
  box-sizing: border-box; padding: 22px 20px 20px; border-radius: var(--dv2-r-sheet);
  background: var(--dv2-accent); color: var(--dv2-on-accent);
}
.dv2 .dv2-land-final__gift { display: flex; align-items: center; gap: 12px; }
.dv2 .dv2-land-final__gift[hidden] { display: none; }
.dv2 .dv2-land-final__num {
  flex: none; font-family: var(--dv2-font-display); font-size: 76px; line-height: .8; font-weight: 800; letter-spacing: -0.04em;
}
.dv2 .dv2-land-final__lbl { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; font-size: 19px; line-height: 1.2; font-weight: 800; }
.dv2 .dv2-land-final__circle {
  flex: none; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 999px;
  background: #fff; color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-final__h {
  font-family: var(--dv2-font-display); font-size: 26px; line-height: 1.12; font-weight: 800; letter-spacing: -0.015em;
  color: var(--dv2-on-accent); text-wrap: balance;
}
.dv2 .dv2-land-final__d { margin-top: 8px; font-size: 16px; line-height: 1.5; color: var(--dv2-on-accent); }
.dv2 .dv2-land-final__cta { margin-top: 4px; }
.dv2 .dv2-land-final__foot { margin-top: 12px; font-size: 14px; line-height: 1.35; font-weight: 600; text-align: center; color: var(--dv2-on-accent); }

/* ------------------------------------------------------------------ sticky CTA (phones and tablets, JS-driven) */
.dv2 .dv2-land-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1020;
  display: flex; align-items: center; gap: 12px; box-sizing: border-box;
  padding: 10px var(--dv2-pub-gutter) calc(12px + var(--dv2-safe-bottom));
  border-top: 1px solid var(--dv2-divider); background: #fff; box-shadow: 0 -6px 20px rgba(28, 26, 34, 0.08);
  transform: translateY(110%); visibility: hidden;
  transition: transform .2s ease, visibility 0s linear .2s;
}
.dv2 .dv2-land-sticky[hidden] { display: none; }
.dv2 .dv2-land-sticky.is-shown { transform: none; visibility: visible; transition: transform .2s ease, visibility 0s; }
.dv2 .dv2-land-sticky__gift {
  flex: 0 1 auto; display: flex; align-items: center; gap: 8px; min-width: 0;
  font-size: 14px; line-height: 1.2; font-weight: 800; color: var(--dv2-ink);
}
.dv2 .dv2-land-sticky__gift[hidden] { display: none; }
.dv2 .dv2-land-sticky__gift > .dv2-icon { color: var(--dv2-accent-ink); }
.dv2 .dv2-land-sticky__gift > span { display: flex; flex-direction: column; min-width: 0; }
.dv2 .dv2-land-sticky__gift strong { font-weight: 800; }
.dv2 .dv2-land-sticky__cta { flex: 1 1 auto; min-height: 50px; border-radius: var(--dv2-r-cta); padding: 0 14px; font-size: 16px; white-space: nowrap; }
@media (min-width: 992px) {
  .dv2 .dv2-land-sticky { display: none; }
}

/* bar CTA (desktop): #dv2lBarCta is moved into .dv2-pub-bar__actions by JS; a filled pill next to "Einloggen" */
.dv2 .dv2-land-barcta {
  margin: 0 0 0 4px; padding: 0; border: 0; background: transparent; font: inherit; cursor: pointer;
}
.dv2 .dv2-land-barcta[hidden] { display: none; }
.dv2 .dv2-land-barcta .dv2-pub-pill__in { background: var(--dv2-accent); border-color: var(--dv2-accent); color: #fff; }   /* = .dv2-btn--primary */
.dv2 .dv2-land-barcta:hover .dv2-pub-pill__in { background: var(--dv2-accent-dark); border-color: var(--dv2-accent-dark); }
.dv2 .dv2-land-barcta:focus-visible { outline: 0; }
.dv2 .dv2-land-barcta:focus-visible .dv2-pub-pill__in { outline: 3px solid var(--dv2-focus); outline-offset: 2px; }
@media (max-width: 991.98px) {
  .dv2 .dv2-land-barcta { display: none; }
}

/* ------------------------------------------------------------------ exit reminder (desktop, native <dialog>) */
.dv2 .dv2-land-exit {
  width: min(500px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); box-sizing: border-box;
  margin: auto; padding: 0; border: 0; border-radius: var(--dv2-r-sheet); background: #fff; color: var(--dv2-ink);
  box-shadow: var(--dv2-pub-shadow-dialog); overflow: auto;
}
.dv2 .dv2-land-exit::backdrop { background: var(--dv2-scrim); }
.dv2 .dv2-land-exit__box { position: relative; display: flex; flex-direction: column; align-items: center; padding: 30px 34px 20px; text-align: center; }
.dv2 .dv2-land-exit__x { position: absolute; top: 10px; right: 10px; color: var(--dv2-text2); }
.dv2 .dv2-land-exit__ic {
  display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 999px;
  background: var(--dv2-accent-soft); color: var(--dv2-accent-ink);
}
.dv2 .dv2-land-exit__h {
  margin: 16px 0 0; font-family: var(--dv2-font-display); font-size: 30px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em;
  color: var(--dv2-ink); text-wrap: balance;
}
.dv2 .dv2-land-exit__d { margin: 12px 0 0; font-size: 18px; line-height: 1.5; color: var(--dv2-text2); text-wrap: balance; }
.dv2 .dv2-land-exit__cta { margin-top: 22px; }
.dv2 .dv2-land-exit__no {
  min-height: 48px; margin-top: 6px; padding: 0 16px; border: 0; border-radius: 12px; background: transparent;
  color: var(--dv2-text2); font-family: var(--dv2-font); font-size: 16px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px;
  cursor: pointer;
}
.dv2 .dv2-land-exit__no:hover { background: var(--dv2-surface); color: var(--dv2-ink); }

/* ------------------------------------------------------------------ >= 768px */
@media (min-width: 768px) {
  .dv2 .dv2-land-lead { display: block; margin-top: 14px; max-width: 560px; font-size: 19px; line-height: 1.45; color: var(--dv2-text2); }
  .dv2 .dv2-land-h1 { font-size: 46px; }
  .dv2 .dv2-land-h1__greet { font-size: 30px; }
  .dv2 .dv2-land-card, .dv2 .dv2-land-trust { max-width: 560px; }
  .dv2 .dv2-land-trust { justify-content: flex-start; }
  .dv2 .dv2-land-trust .dv2-land-trust__wide { display: inline-flex; }
  .dv2 .dv2-land-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}

/* ------------------------------------------------------------------ >= 992px (desktop boards) */
@media (min-width: 992px) {
  .dv2 .dv2-land-hero { padding-top: 36px; }
  .dv2 .dv2-land-hero__grid {
    grid-template-columns: minmax(0, 1fr) 484px; column-gap: 56px; align-items: start;
    grid-template-areas: "head teaser" "form teaser" "trust teaser"; grid-template-rows: auto auto 1fr;
  }
  .dv2 .dv2-land-h1 { font-size: 56px; line-height: 1.02; letter-spacing: -0.025em; }
  .dv2 .dv2-land-h1__greet { margin-bottom: 6px; font-size: 36px; }
  .dv2 .dv2-land-card { margin-top: 24px; }
  .dv2 .dv2-land-trust { margin-top: 16px; }
  .dv2 .dv2-land-ticket { --dv2-ticket-stub: 70px; min-height: 68px; }
  .dv2 .dv2-land-ticket .dv2-pub-ticket__main { font-size: 19px; }
  .dv2 .dv2-land-card__body { padding: 16px 20px 18px; }
  .dv2 .dv2-land-choice > legend { width: 96px; }
  .dv2 .dv2-land-card .dv2-options--lg .dv2-option__body { min-height: 50px; }
  .dv2 .dv2-land-cta { min-height: 60px; font-size: 19px; }
  .dv2 .dv2-land-progress__bars > span { width: 24px; }

  .dv2 .dv2-land-teaser { margin-top: 0; padding: 22px 22px 20px; border-radius: var(--dv2-r-sheet); background: var(--dv2-surface); }
  .dv2 .dv2-land-teaser__h { font-family: var(--dv2-font-display); font-size: 25px; line-height: 1.15; letter-spacing: -0.015em; }
  .dv2 .dv2-land-teaser__lock { margin-top: 4px; }
  .dv2 .dv2-land-strip { margin: 16px 0 0; padding: 0; overflow: visible; scroll-snap-type: none; }
  .dv2 .dv2-land-strip:focus-visible { outline-offset: 4px; }
  .dv2 .dv2-land-strip__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 16px; width: auto; }
  .dv2 .dv2-land-strip__item { width: auto; }
  .dv2 .dv2-land-strip__list--full .dv2-land-strip__item--more { display: none; }   /* 6 profiles fill the 3 x 2 grid */
  .dv2 .dv2-land-tcard__ph { aspect-ratio: 136 / 156; }
  .dv2 .dv2-land-tcard__lock { top: 8px; right: 8px; }

  /* no teaser (generic landing, empty pool, page served with "Ich suche einen Mann"): one centred column.
     A live change of the choice never switches this (data-teaser is set by the server only): no layout jump. */
  .dv2 .dv2-land-hero--solo .dv2-land-hero__grid,
  .dv2 .dv2-land[data-teaser="off"] .dv2-land-hero__grid {
    grid-template-columns: minmax(0, 640px); justify-content: center; grid-template-areas: "head" "form" "trust"; grid-template-rows: auto;
  }
  .dv2 .dv2-land-hero--solo .dv2-land-card, .dv2 .dv2-land[data-teaser="off"] .dv2-land-card,
  .dv2 .dv2-land-hero--solo .dv2-land-trust, .dv2 .dv2-land[data-teaser="off"] .dv2-land-trust { max-width: none; }

  .dv2 .dv2-land-h2 { font-size: 38px; line-height: 1.08; letter-spacing: -0.02em; }

  .dv2 .dv2-land-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 28px; }
  .dv2 .dv2-land-step { grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; padding: 0; }
  .dv2 .dv2-land-step:not(:last-child)::before { display: none; }
  .dv2 .dv2-land-step__ill {
    grid-column: 1 / -1; grid-row: 1; display: flex; align-items: center; justify-content: center; overflow: hidden;
    height: 150px; margin-bottom: 18px; border-radius: var(--dv2-r-sheet); background: var(--dv2-surface);
  }
  .dv2 .dv2-land-step__num { grid-row: 2; width: 40px; height: 40px; font-size: 18px; }
  .dv2 .dv2-land-step__txt { grid-row: 2; padding-top: 7px; }
  .dv2 .dv2-land-step__t { font-size: 19px; }
  .dv2 .dv2-land-step__d { margin-top: 6px; }
  .dv2 .dv2-land-example { display: none; }
  .dv2 .dv2-land-composer--ill { width: calc(100% - 40px); }
  .dv2 .dv2-land-composer--ill .dv2-land-composer__txt { font-size: 15px; }

  .dv2 .dv2-land-ill-form {
    display: flex; flex-direction: column; gap: 8px; width: 210px; padding: 14px; box-sizing: border-box; margin-top: 34px;
    border-radius: var(--dv2-r-card); background: #fff; box-shadow: var(--dv2-pub-shadow-hero);
  }
  .dv2 .dv2-land-ill-form > span {
    display: flex; align-items: center; gap: 8px; min-height: 30px; padding: 0 10px;
    border: 1px solid var(--dv2-divider); border-radius: 8px; font-size: 13.5px; font-weight: 600; color: var(--dv2-text2);
  }
  .dv2 .dv2-land-ill-form .dv2-icon { color: var(--dv2-bonus); }
  .dv2 .dv2-land-ill-mail {
    position: relative; display: flex; align-items: center; justify-content: center; width: 120px; height: 92px; margin-top: 30px;
    border-radius: 20px; background: #fff; color: var(--dv2-accent-ink); box-shadow: var(--dv2-pub-shadow-hero);
  }
  .dv2 .dv2-land-ill-mail__ok {
    position: absolute; top: -12px; right: -12px; display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 999px; background: var(--dv2-bonus); color: #fff;
  }

  .dv2 .dv2-land-tiles { margin-top: 28px; }
  .dv2 .dv2-land-tile { grid-template-columns: 44px minmax(0, 1fr); column-gap: 12px; row-gap: 12px; padding: 20px 20px 24px; }
  .dv2 .dv2-land-tile__ic { width: 44px; height: 44px; }
  .dv2 .dv2-land-tile__t { font-size: 18px; }
  .dv2 .dv2-land-tile__d { font-size: 16px; }

  .dv2 .dv2-land-duo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; }
  .dv2 .dv2-land-duo .dv2-land-h2 { font-size: 32px; }
  .dv2 .dv2-land-safelist__ic { width: 44px; height: 44px; }
  .dv2 .dv2-land-safelist__txt > span { font-size: 16px; }

  .dv2 .dv2-land-faq__cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; border-top: 0; margin-top: 24px; }
  .dv2 .dv2-land-faq__col { border-top: 1px solid var(--dv2-divider); align-self: start; }

  .dv2 .dv2-land-final {
    position: relative; overflow: hidden;
    grid-template-columns: minmax(0, 1fr) 340px; grid-template-areas: "txt act"; align-items: center; column-gap: 48px;
    padding: 44px 48px 44px 208px; min-height: 250px;
  }
  .dv2 .dv2-land-final--plain,
  .dv2 .dv2-land-final:has(> .dv2-land-final__gift[hidden]) { padding-left: 48px; }   /* no gift for the chosen pair */
  .dv2 .dv2-land-final__txt { grid-area: txt; }
  .dv2 .dv2-land-final__act { grid-area: act; }
  .dv2 .dv2-land-final__gift { position: absolute; left: 36px; top: 50%; transform: translateY(-50%); }
  .dv2 .dv2-land-final__num { font-size: 200px; line-height: .75; color: rgba(255, 255, 255, 0.16); }
  .dv2 .dv2-land-final__lbl, .dv2 .dv2-land-final__circle { display: none; }   /* the h2 + text carry the message; the numeral is decoration */
  .dv2 .dv2-land-final__h { font-size: 38px; line-height: 1.08; }
  .dv2 .dv2-land-final__d { margin-top: 12px; font-size: 17px; }
  .dv2 .dv2-land-final__cta { min-height: 60px; font-size: 19px; }
}

@media (max-width: 429.98px) {   /* phones: the selected pill ("✓ einen Mann") must stay on one line next to the legend */
  .dv2 .dv2-land-card__body { padding: 14px 14px 16px; }
  .dv2 .dv2-land-choice { gap: 6px; }
  .dv2 .dv2-land-choice > legend { width: 76px; font-size: 15.5px; }
  .dv2 .dv2-land-card .dv2-option__body { gap: 4px; padding: 0 6px; }
  .dv2 .dv2-land-card .dv2-option__check { width: 16px; height: 16px; }
}
@media (max-width: 359.98px) {   /* 320px phones: legend above the pills */
  .dv2 .dv2-land-h1 { font-size: 30px; }
  .dv2 .dv2-land-h1__greet { font-size: 23px; }
  .dv2 .dv2-land-choice { display: block; }
  .dv2 .dv2-land-choice > legend { float: none; display: block; width: auto; margin-bottom: 6px; }
  .dv2 .dv2-land-card__body { padding: 12px 12px 14px; }
  .dv2 .dv2-land-tiles { grid-template-columns: minmax(0, 1fr); }
  .dv2 .dv2-land-sticky__gift { display: none; }
  .dv2 .dv2-land-costs__row { padding: 10px 12px; }
}

/* short phone viewports (iPhone Safari with its toolbars: ~390 x 664): the teaser strip gets compact, so the hero
   CTA and the trust line fit the first screen (the sticky CTA covers what still does not) */
@media (max-width: 991.98px) and (max-height: 760px) {
  .dv2 .dv2-land-hero { padding-top: 12px; }
  .dv2 .dv2-land-h1 { font-size: 30px; }
  .dv2 .dv2-land-h1__greet { display: inline; margin: 0; font-size: inherit; letter-spacing: inherit; }   /* one line less */
  .dv2 .dv2-land-h1__main { display: inline; }
  .dv2 .dv2-land-teaser { margin-top: 12px; }
  .dv2 .dv2-land-teaser__lock { display: none; }
  .dv2 .dv2-land-strip { margin-top: 8px; }
  .dv2 .dv2-land-tcard__name { margin-top: 5px; }
  .dv2 .dv2-land-tcard__town { display: none; }   /* name + age stay whole (104px cards) */
  .dv2 .dv2-land-card { margin-top: 12px; }
  .dv2 .dv2-land-card__body { padding-top: 10px; }
  .dv2 .dv2-land-cta { margin-top: 12px; }
  .dv2 .dv2-land-progress { margin-top: 8px; }
  .dv2 .dv2-land-trust { margin-top: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .dv2 .dv2-land-sticky, .dv2 .dv2-land-sticky.is-shown, .dv2 .dv2-land-tcard__img { transition: none; }
  .dv2 .dv2-land-tcard:hover .dv2-land-tcard__img { transform: scale(1.06); }
}
