/* Campaign host only: loaded from head-with-css-tracking.ejs when locals.offer is set.
   Single definition of the --ui-accent* tokens used by every :where(.bb-site) override;
   they derive from the campaign --primary-color. */
:root, body {
  --ui-accent: var(--primary-color, #24ada2);
  --ui-accent-strong: color-mix(in srgb, var(--ui-accent) 75%, #102b43);
  --ui-accent-light: color-mix(in srgb, var(--ui-accent) 72%, white);
  --ui-accent-soft: color-mix(in srgb, var(--ui-accent) 12%, white);
  --ui-accent-wash: color-mix(in srgb, var(--ui-accent) 4%, white);
  --ui-ink: #20394a;
  --ui-muted: #526575;
  --ui-line: #dce5ec;
  --ui-shadow: 0 10px 32px #17364e0a;
  --ratgeber-primary: var(--ui-accent);
  --ratgeber-primary-dark: var(--ui-accent-strong);
  --anbieter-primary: var(--ui-accent);
  --anbieter-primary-dark: var(--ui-accent-strong);
}
body .ratgeber-hero-wrapper, body .anbieter-hero-wrapper {
  background: linear-gradient(135deg, var(--ui-accent-wash), #f8fafc);
  border-bottom: 1px solid var(--ui-line);
}
body .ratgeber-hero-wrapper::before, body .ratgeber-hero-wrapper::after { display:none; }
body .ratgeber-landing-hero { padding:24px 0 42px; max-width:820px; }
body .ratgeber-landing-hero__title { color:var(--ui-ink); font-size:clamp(30px,3vw,44px); letter-spacing:-.035em; }
body .ratgeber-landing-hero__description { color:var(--ui-muted); font-size:17px; }
body .ratgeber-landing-hero__link, body .ratgeber-hero-wrapper .breadcrumbs-item a { color:var(--ui-accent-strong); text-decoration-color:currentColor; }
body .ratgeber-hero-wrapper .breadcrumbs-item--current span, body .ratgeber-hero-wrapper .breadcrumbs-separator { color:var(--ui-muted); }
body .ratgeber-landing-hero__link:hover, body .ratgeber-hero-wrapper .breadcrumbs-item a:hover { color:var(--ui-accent); }
body .artikel-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
body .artikel-card { padding:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--ui-line); border-radius:20px; background:#fff; box-shadow:var(--ui-shadow); }
body .artikel-card__image { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block; }
body .artikel-card__content { padding:26px; display:flex; flex:1; flex-direction:column; }
body .artikel-card__title { color:var(--ui-accent-strong); font-size:23px; line-height:1.35; }
body .artikel-card__highlight { color:var(--ui-muted); font-size:15px; line-height:1.65; }
body .artikel-card:hover { transform:translateY(-3px); border-color:var(--ui-accent); box-shadow:0 14px 32px #17364e14; }
body .artikel-card__meta { margin-top:auto; padding-top:20px; }
body .kategorie-artikel-header__title, body .kategorie-kachel__title { color:var(--ui-accent-strong); }
body .hero-ratgeber .main-title .highlight { color:var(--ui-ink); background:none; padding:0; }
body .hero-ratgeber .main-title { font-size:clamp(30px,3.5vw,46px); line-height:1.2; letter-spacing:-.035em; }
body .hero-ratgeber .wichtigste-section { background:var(--ui-accent-wash); border:1px solid var(--ui-line); border-radius:18px; padding:24px; }
body .privadent-comparison-box { border:1px solid var(--ui-line); border-radius:18px; background:#ffffffed; box-shadow:var(--ui-shadow); }
body .privadent-comparison-title { color:var(--ui-ink); font-size:20px; line-height:1.4; }
body .privadent-comparison-subtitle { color:var(--ui-muted); }
body .privadent-comparison-divider { background:var(--ui-line); }

/* One disclosure component for home, guides, providers and tariff details. */
.public-faq-list { width:100%; max-width:860px; margin-inline:auto; }
body .public-faq-item { display:block; border:1px solid var(--ui-line); border-radius:14px; background:#fff; margin:0 0 12px; padding:0; }
body .public-faq-item[hidden] { display:none; }
body .public-faq-item>summary { display:flex; align-items:center; justify-content:space-between; gap:24px; list-style:none; padding:22px 24px; font-size:17px; font-weight:650; line-height:1.5; color:var(--ui-ink); cursor:pointer; }
body .public-faq-item>summary::-webkit-details-marker { display:none; }
body .public-faq-item>summary::after { display:none; }
body .public-faq-item>summary:hover { color:var(--ui-accent-strong); }
body .public-faq-item>summary:focus-visible { outline:3px solid var(--ui-accent); outline-offset:3px; border-radius:12px; }
.public-faq-icon { color:var(--ui-accent); font-size:24px; font-weight:400; line-height:1; flex:0 0 24px; text-align:center; transition:transform .22s ease; }
[aria-expanded="true"]>.public-faq-icon { transform:rotate(45deg); }
body .public-faq-answer { padding:0 24px 24px; color:var(--ui-muted); font-size:16px; line-height:1.8; }
body .public-faq-answer p { margin:0 0 12px; padding:0; font-size:inherit; line-height:inherit; }
.public-faq-answer>:last-child { margin-bottom:0; }
.public-faq-answer a { color:var(--ui-accent-strong); text-decoration:underline; }
.public-faq-answer table { width:100%; table-layout:fixed; }
.public-faq-answer th,.public-faq-answer td { overflow-wrap:anywhere; }
.public-faq-section { max-width:860px; margin:28px auto; }
.public-faq-section h3 { margin-block:28px 18px; }
.public-faq-search { display:block; width:100%; max-width:860px; margin:0 auto 24px; padding:16px 20px; border:1px solid var(--ui-line); border-radius:12px; font:inherit; background:#fff; color:var(--ui-ink); }
.public-faq-search:focus { outline:2px solid var(--ui-accent); outline-offset:2px; }
body .public-faq-search,body .insurance-hero__content,body .hero-price-calculator { box-sizing:border-box; }

/* Compact, restrained surfaces across all tariff detail pages. */
body .blob-background { background:linear-gradient(130deg,var(--ui-accent-wash),#f7f9fc); padding:40px 20px; }
body .blob-background::before,body .blob-background::after,body .insurance-hero::before,body .particles-container { display:none; }
body .insurance-hero { padding:0; }
body .insurance-hero__main { max-width:1100px; margin:auto; }
body .insurance-hero__content { width:100%; max-width:980px; margin:auto; padding:32px; gap:0; border:1px solid #ffffff; border-radius:24px; background:#ffffffdb; backdrop-filter:blur(12px); box-shadow:var(--ui-shadow); }
body .insurance-hero__head { max-width:760px; margin-inline:auto; padding:0; gap:0; }
body .insurance-hero .logo-container { width:170px; max-width:100%; margin:0; }
body .insurance-hero__logo { max-width:170px; max-height:64px; width:100%; height:auto; object-fit:contain; filter:none; }
body .insurance-hero__intro--with-seals { display:flex; flex-direction:row; align-items:center; justify-content:center; gap:32px; }
body .insurance-hero__intro--with-seals .insurance-hero__seals { position:static; }
body .insurance-hero__intro--with-seals .insurance-hero__seals .test-seal,
body .insurance-hero__intro--with-seals .insurance-hero__seals .test-seal__official { zoom:1; }
body .insurance-hero__title { font-size:clamp(28px,3.2vw,42px); line-height:1.2; letter-spacing:-.035em; margin-block:18px 12px; }
body .insurance-hero__highlight { font-size:17px; line-height:1.65; max-width:620px; margin:20px auto 0; color:var(--ui-muted); }
body .insurance-hero__benefits { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 22px; padding:0; margin:24px auto; max-width:800px; }
body .insurance-hero__benefit { font-size:16px; padding:0; margin:0; }
body .insurance-hero__benefit .benefit-text { text-align:left; }
body .insurance-hero__benefit .checkmark { width:24px; height:24px; font-size:17px; margin-right:8px; }
body .hero-price-calculator { border:1px solid var(--ui-line); border-radius:16px; box-shadow:none; background:#fff; max-width:560px; padding:18px 24px; gap:22px; margin:0 auto; }
body .hero-customer-trust { margin-top:24px; }
body .hero-price-calculator .price-value { font-size:38px; }
.hero-price-period { display:block; color:var(--ui-muted); font-size:12px; text-align:right; margin-top:4px; }
body .hero-calculator-compact__actions { margin:20px auto 0; gap:12px; max-width:560px; }
body .hero-calculator-btn { font-size:15px; min-height:48px; padding:14px 20px; border-radius:12px; max-width:100%; white-space:normal; box-shadow:none; }
body .hero-calculator-btn--cta { background:var(--ui-accent-strong); color:#fff; }
body .hero-calculator-btn--cta:hover { background:var(--ui-accent); }
body .hero-calculator-btn--details { background:white; border:1px solid var(--ui-line); color:var(--ui-accent-strong); }
body .insurance-benefits-section,body .insurance-faq,body .insurance-online-completion { padding-block:48px; }
body .insurance-benefits-title,body .insurance-faq__title,body .insurance-online-completion__title,body .insurance-cta__title { font-size:clamp(26px,3vw,34px); line-height:1.3; letter-spacing:-.025em; margin-bottom:24px; }
body .service-grid-container { gap:18px; }
body .service-grid-item { padding:24px; border:1px solid var(--ui-line); border-radius:18px; background:#fff; box-shadow:var(--ui-shadow); }
body .service-grid-item:hover { transform:none; box-shadow:var(--ui-shadow); }
body .service-icon-container { width:42px; height:42px; margin-bottom:16px; }
body .service-icon { width:27px; height:27px; font-size:27px; }
body .service-title { font-size:19px; }
body .benefit-percentage { font-size:34px; line-height:1.2; color:var(--ui-accent-strong); }
body .benefit-details { font-size:14px; line-height:1.6; }
body .mid-page-cta-card,body .insurance-cta__container,body .timeline-step-content { background:#ffffffdf; border:1px solid var(--ui-line); border-radius:18px; box-shadow:var(--ui-shadow); }
body .timeline-step-content { min-width:0; overflow-wrap:anywhere; }
body .mid-page-cta-title,body .timeline-step-title { font-size:23px; }
body .insurance-iframe-card { border:1px solid var(--ui-line); border-radius:20px; box-shadow:var(--ui-shadow); }
body .insurance-cta { padding-block:48px; background:var(--ui-accent-wash); }
body .insurance-cta__title,body .insurance-cta__description { color:var(--ui-ink); }
body .insurance-cta__description { font-size:17px; }

/* Provider cards share the hierarchy of the homepage recommendation. */
body .tariff-card { border:1px solid var(--ui-line); border-radius:22px; padding:28px; box-shadow:var(--ui-shadow); background:#ffffffeb; }
body .tariff-card__badge { position:static; display:block; margin:-4px 0 24px; padding:10px 16px; border:1px solid var(--ui-line); background:var(--ui-accent-wash); color:var(--ui-accent-strong); border-radius:10px; text-align:center; }
body .tariff-card__logo-wrapper { margin-bottom:18px; text-align:center; }
body .tariff-card__logo { width:150px; max-width:100%; max-height:50px; object-fit:contain; }
body .tariff-card__logo-link { display:inline-block; }
body .tariff-card__title { font-size:26px; line-height:1.25; text-align:center; margin-bottom:24px; color:var(--ui-ink); }
.tariff-card__focus { padding:26px 20px; margin-bottom:24px; text-align:center; border:1px solid var(--ui-line); background:var(--ui-accent-wash); border-radius:16px; color:var(--ui-accent-strong); }
.tariff-card__focus>span { display:block; font-size:13px; letter-spacing:.04em; }
.tariff-card__focus>strong { display:block; font-size:42px; letter-spacing:-.035em; margin:8px 0; }
.tariff-card__focus p { margin:6px 0; font-size:16px; text-align:center; }
.tariff-card__focus small { display:block; color:var(--ui-muted); font-size:12px; }
body .tariff-card__feature { display:grid; grid-template-columns:18px minmax(0,1fr) auto; align-items:start; gap:10px; padding-block:12px; border-bottom:1px solid var(--ui-line); }
body .tariff-card__features { gap:0; }
body .tariff-card__check-icon { color:var(--ui-accent); }
body .tariff-card__feature-value { max-width:150px; white-space:normal; text-align:right; }
body .tariff-card__price-amount { font-size:25px; }
body .tariff-card__cta { background:var(--ui-accent-strong); border-radius:12px; }
body .tariff-card__cta:hover { background:var(--ui-accent); }
body .anbieter-hero__title { font-size:clamp(30px,4vw,44px); letter-spacing:-.035em; }
body .anbieter-highlight { background:var(--ui-accent-wash); }
body .anbieter-highlight__suitable { border:1px solid var(--ui-line); box-shadow:none; border-radius:16px; }
body .anbieter-section { margin-bottom:48px; }
body .anbieter-section__title { font-size:clamp(26px,3vw,34px); }
@media(max-width:600px) {
  body .artikel-grid { grid-template-columns:1fr; gap:22px; }
  body .artikel-card__content { padding:22px; }
  body .artikel-card__title { font-size:21px; }
  body .blob-background { padding:20px 12px; }
  body .insurance-hero__content { padding:24px 16px; border-radius:18px; }
  body .insurance-hero .logo-container { width:140px; }
  body .insurance-hero__intro--with-seals { gap:16px; }
  body .insurance-hero__intro--seals-below { flex-direction:column; }
  body .insurance-hero__intro--seals-side .insurance-hero__title-name { white-space:normal; overflow:visible; }
  body .insurance-hero__intro--with-seals .insurance-hero__seals .test-seal,
  body .insurance-hero__intro--with-seals .insurance-hero__seals .test-seal__official { zoom:.8; }
  body .insurance-hero__benefits { justify-content:flex-start; padding:0; gap:12px; }
  body .insurance-hero__benefit { font-size:15px; }
  body .hero-price-calculator { padding:16px; gap:14px; }
  body .insurance-hero__highlight { font-size:15px; }
  body .hero-calculator-compact__actions { flex-direction:column; }
  body .hero-calculator-btn { width:100%; }
  body .service-grid-container { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  body .service-grid-item { padding:18px 14px; }
  body .service-title { font-size:17px; }
  body .benefit-percentage { font-size:29px; }
  body .public-faq-item>summary { font-size:16px; padding:19px 18px; gap:14px; }
  body .public-faq-answer { padding:0 18px 20px; font-size:15px; }
  body .tariff-card { padding:22px; }
  body .tariff-card__feature-value { max-width:120px; font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { .public-faq-icon,body .artikel-card { transition:none; } }
