/* Dental Beauty – Designsystem für WordPress/Elementor (generiert aus der HTML-Version, nicht direkt bearbeiten) */
/* Elementor-Container fließen wie normale Blöcke (wie die HTML-Version); Raster/Flex kommen aus den Designklassen */
.e-con{display:block;flex-direction:row;flex-wrap:nowrap;justify-content:normal;align-items:normal;align-content:normal;gap:normal;position:static}
/* Richtung unabhängig von Elementors Seiten-CSS: Zeile als Grundwert (Elementor-Standard wäre Spalte); Spalten kommen aus den Designklassen */
.e-con.e-flex{--flex-direction:row}
.elementor-editor-active .e-con{position:relative}
/* ==========================================================================
   Dental Beauty – Design Tokens v4 „Silver Avenue“ (Marmor · Silber · Weiß · Grau)
   Layout-Inspiration: moderne Klinik-Templates (eingerückte, abgerundete Flächen,
   Statistik-Karten, Feature-Leisten) × Dental-Beauty-CI (Marmor, Silber, Grau).
   Fonts (ui-ux-pro-max): Urbanist (Headlines) · Mulish (Text) · Gilda Display (Akzent, nah am Logo)
   ========================================================================== */
@font-face { font-family: "Urbanist"; src: url("../fonts/urbanist-var.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Mulish"; src: url("../fonts/mulish-var.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url("../fonts/instrument-serif-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url("../fonts/instrument-serif.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Urbanist Fallback"; src: local("Avenir Next"), local("Arial"); size-adjust: 100%; }
@font-face { font-family: "Mulish Fallback"; src: local("Avenir"), local("Arial"); size-adjust: 103%; }

:root {
  /* Weiß, Perle, Platin – kein Schwarz */
  --white: #ffffff;
  --pearl: #f8f8f7;
  --platinum-50: #f3f3f4;
  --platinum-100: #ebebec;
  --platinum-200: #dedfe1;
  --platinum-300: #c8cacd;
  --grey-400: #9a9da2;
  --grey-500: #6d6e71;         /* CI-Grau (Logo) */
  --grey-600: #57595d;
  --grey-700: #44464a;         /* Headlines */
  --text: #4a4c50;
  --text-muted: #66686c;
  --line: rgba(109,110,113,.18);
  --line-strong: rgba(109,110,113,.32);

  /* Silber */
  --silver: linear-gradient(115deg, #b4b8be 0%, #eceef0 20%, #ffffff 34%, #c7cacf 50%, #f4f5f6 64%, #a9adb3 82%, #e2e4e7 100%);
  --silver-ink: linear-gradient(110deg, #55585e 0%, #8f9399 28%, #6d6e71 48%, #a8acb2 70%, #5c5f65 100%);
  --silver-edge: linear-gradient(135deg, #d9dbde, #ffffff 30%, #b9bcc1 55%, #f2f3f4 75%, #c3c6ca);
  --gloss: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.9) 50%, transparent 65%);

  --accent: #c8102e;           /* CI-Rot – nur Mini-Akzente */

  /* Marmor */
  --marble: url("../img/bg/marmor-1420.jpg");
  --marble-bg: linear-gradient(rgba(255,255,255,.50), rgba(255,255,255,.58)), var(--marble) center / cover;
  --marble-soft: linear-gradient(rgba(255,255,255,.70), rgba(255,255,255,.76)), var(--marble) center / cover;
  --marble-platinum: linear-gradient(rgba(233,234,236,.72), rgba(228,229,232,.80)), var(--marble) center / cover;

  /* Typografie */
  --font-head: "Urbanist", "Urbanist Fallback", "Avenir Next", system-ui, sans-serif;
  --font-body: "Mulish", "Mulish Fallback", "Avenir", system-ui, sans-serif;
  --font-accent: "Instrument Serif", "Didot", Georgia, serif;
  --fs-display: clamp(2.6rem, 1.4rem + 4vw, 5rem);
  --fs-h1: clamp(2.4rem, 1.6rem + 3.2vw, 4.4rem);
  --fs-h2: clamp(2rem, 1.45rem + 2.2vw, 3.4rem);
  --fs-h3: clamp(1.3rem, 1.18rem + .5vw, 1.6rem);
  --fs-h4: 1.08rem;
  --fs-body: clamp(1rem, .97rem + .15vw, 1.0625rem);
  --fs-lead: clamp(1.06rem, 1rem + .3vw, 1.22rem);
  --fs-small: .875rem;
  --fs-eyebrow: .74rem;

  /* Abstände */
  --s-1: .5rem; --s-2: 1rem; --s-3: 1.5rem; --s-4: 2rem; --s-5: 3rem; --s-6: 4rem; --s-7: 6rem; --s-8: 8rem;
  --section-y: clamp(4.5rem, 3rem + 6vw, 9rem);
  --gutter: clamp(1.25rem, .7rem + 2.2vw, 2.75rem);
  --container: 1280px;
  --container-narrow: 820px;
  --frame: clamp(10px, .4rem + .8vw, 20px);

  /* Formen */
  --r-1: 8px; --r-2: 14px; --r-3: 22px; --r-4: 30px; --r-frame: clamp(22px, 1rem + 1.6vw, 40px); --r-pill: 999px;
  --shadow-1: 0 1px 2px rgba(68,70,74,.05), 0 10px 28px -14px rgba(68,70,74,.22);
  --shadow-2: 0 2px 6px rgba(68,70,74,.05), 0 30px 60px -28px rgba(68,70,74,.32);
  --shadow-silver: 0 0 0 1px rgba(255,255,255,.7), 0 26px 60px -24px rgba(68,70,74,.35), 0 0 50px -18px rgba(180,184,190,.6);

  /* Bewegung */
  --ease: cubic-bezier(.2,.7,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --t-fast: 220ms;
  --t-reveal: 800ms;

  --header-h: 84px;
  --sticky-cta-h: 0px;
}
@media (max-width: 899px) { :root { --header-h: 70px; } }

/* ========================= Base ========================= */
*, *::before, *::after { box-sizing: border-box; }
/* Antippen auf dem Handy: kein grauer/blauer Kasten (Logo, Menü, untere Leiste …). Tastatur-Fokus bleibt über :focus-visible sichtbar. */
a, button, summary, label, [role="button"] { -webkit-tap-highlight-color: transparent; }
html {
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
  scroll-padding-bottom: calc(var(--sticky-cta-h) + 16px);
}
body {
  margin: 0; color: var(--text); background: var(--marble-bg); background-color: var(--pearl);
  font-family: var(--font-body); font-size: var(--fs-body); font-weight: 400; line-height: 1.75;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden; overflow-x: clip; text-rendering: optimizeLegibility;
}
img, svg, video, iframe { display: block; max-width: 100%; }
img, video { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; transition: color var(--t-fast) var(--ease); }
a:hover { color: var(--grey-700); }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
hr { border: 0; height: 1px; background: var(--line); margin: var(--s-5) 0; }
strong { font-weight: 700; color: var(--grey-700); }

h1, h2, h3, .h1, .h2, .h3, .display {
  font-family: var(--font-head); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; color: var(--grey-700);
  margin: 0 0 .5em; text-wrap: balance; overflow-wrap: break-word; hyphens: manual;
}
h1, .h1 { font-size: var(--fs-h1); }
h2, .h2 { font-size: var(--fs-h2); }
h3, .h3 { font-size: var(--fs-h3); line-height: 1.2; letter-spacing: -.015em; }
h4, .h4 { font-family: var(--font-head); font-size: var(--fs-h4); font-weight: 600; margin: 0 0 .5em; line-height: 1.35; color: var(--grey-700); }
.display { font-size: var(--fs-display); line-height: 1.02; letter-spacing: -.035em; }

/* Akzentwörter: Logo-nahe Serife in Silber-Graphit */
h1 em, h2 em, h3 em, .display em, .silver-text {
  font-family: var(--font-accent); font-style: italic; font-weight: 400; letter-spacing: -.01em;
  background: var(--silver-ink); background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--grey-500);
  animation: silver-drift 10s ease-in-out infinite alternate;
  /* Verlaufsfläche größer als die Schrift: kursive Unterlängen (g, y, p) und Überhänge werden sonst abgeschnitten.
     Innenabstand und negativer Außenabstand heben sich auf – das Layout bleibt gleich (rechts wie bisher +.04em). */
  padding: .12em .14em .3em .22em; margin: -.12em -.1em -.3em -.22em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
@keyframes silver-drift { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }

.lead { font-size: var(--fs-lead); line-height: 1.7; color: var(--text-muted); max-width: 60ch; }
.small { font-size: var(--fs-small); }
.muted { color: var(--text-muted); }
.eyebrow {
  display: inline-flex; align-items: center; gap: .8em; margin: 0 0 1.2rem;
  font-family: var(--font-head); font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--grey-500);
}
.eyebrow::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px var(--platinum-300); }
p, li { text-wrap: pretty; }

:focus-visible { outline: 2px solid var(--grey-600); outline-offset: 3px; border-radius: 4px; }
.skip-link { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--white); color: var(--grey-700); padding: .75rem 1.25rem; border-radius: var(--r-1); box-shadow: var(--shadow-2); }
.skip-link:focus { top: 1rem; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.icon { width: 1.25em; height: 1.25em; flex: none; }
.placeholder { background: #fff3b0; color: #5a4a00; padding: .1em .4em; border-radius: 4px; font-family: var(--font-body); font-size: .82em; font-weight: 600; -webkit-text-fill-color: #5a4a00; }
::selection { background: var(--platinum-300); color: var(--grey-700); }
@media (max-width: 480px) { h1, h2, .h1, .h2 { hyphens: auto; -webkit-hyphens: auto; } h1 em, h2 em, .display em { hyphens: manual; } }

/* Aktionsmodul: Ist die Aktion aus oder abgelaufen, trägt <body> die Klasse db-aktion-aus.
   Dann verschwinden Aktionsleiste, Countdown und alle Aktionsteile, die Alternativen erscheinen. */
body.db-aktion-aus .db-aktion-only, body.db-aktion-aus .promo, body.db-aktion-aus [data-countdown] { display: none !important; }
body:not(.db-aktion-aus) .db-aktion-alt { display: none !important; }
.mega__aktion { display: contents; }

/* ========================= Layout ========================= */
.container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: calc(var(--container-narrow) + 2 * var(--gutter)); }
.section { position: relative; padding-block: var(--section-y); }
.section--tight { padding-block: calc(var(--section-y) * .6); }
/* helle Weiß-Fläche über dem Marmor */
.section--white { background: rgba(255,255,255,.62); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.section--tint { background: rgba(243,243,244,.7); }
/* „Schwebende“ Platin-Marmor-Box (statt dunkler Fläche) */
.section--dark, .dark {
  margin-inline: var(--frame); border-radius: var(--r-frame); background: var(--marble-platinum);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), var(--shadow-1); overflow: hidden;
}
.section--marble { background: var(--marble-soft); }

.section-head { max-width: 780px; margin-bottom: clamp(2.6rem, 2rem + 2.4vw, 4.4rem); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-head--center .lead { margin-inline: auto; }
.section-head--split { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--s-3); max-width: none; }
.section-head--split > div { max-width: 720px; }

.grid { display: grid; gap: var(--s-4); }
.grid--2, .grid--3 { grid-template-columns: 1fr; }
.grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); }
@media (min-width: 700px) { .grid--2, .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-4); } }
.split { display: grid; gap: clamp(2.5rem, 1rem + 4.5vw, 6rem); align-items: center; }
@media (min-width: 900px) {
  .split { grid-template-columns: 1fr 1fr; }
  .split--wide-media { grid-template-columns: 1.1fr .9fr; }
  .split--wide-text { grid-template-columns: .9fr 1.1fr; }
  .split--reverse > :first-child { order: 2; }
}
.grid > *, .split > *, .article-layout > *, .price-grid > *, .products > * { min-width: 0; }
.center { text-align: center; }
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; }
.mt-3 { margin-top: var(--s-3); } .mt-4 { margin-top: var(--s-4); } .mt-5 { margin-top: var(--s-5); }
.actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: var(--s-4); }
.actions--center { justify-content: center; }

.media { position: relative; overflow: hidden; border-radius: var(--r-3); background: var(--platinum-100); isolation: isolate; }
.media > img, .media > video { width: 100%; height: 100%; object-fit: cover; }
.media--portrait { aspect-ratio: 4 / 5; }
.media--tall { aspect-ratio: 3 / 4; }
.media--square { aspect-ratio: 1; }
.media--landscape { aspect-ratio: 3 / 2; }
.media--wide { aspect-ratio: 16 / 9; }

/* ========================= Buttons ========================= */
.btn {
  --btn-fg: var(--grey-700);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 54px; padding: .85rem 1.8rem; border-radius: var(--r-pill); border: 1px solid transparent;
  font-family: var(--font-head); font-size: .95rem; font-weight: 600; letter-spacing: .01em;
  text-decoration: none; line-height: 1.2; text-align: center; color: var(--btn-fg);
  overflow: hidden; isolation: isolate; cursor: pointer;
  transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease), background-position 900ms var(--ease-out), color var(--t-fast), background-color var(--t-fast), border-color var(--t-fast);
}
.btn::after { content: ""; position: absolute; inset: -2px; background: var(--gloss); transform: translateX(-130%) skewX(-12deg); transition: transform 900ms var(--ease-out); z-index: -1; pointer-events: none; }
.btn:hover { color: var(--btn-fg); transform: translateY(-2px); }
.btn:hover::after { transform: translateX(130%) skewX(-12deg); }
.btn:active { transform: translateY(0); }
.btn .icon { width: 1.1em; height: 1.1em; transition: transform var(--t-fast) var(--ease); }
.btn:hover .icon--arrow { transform: translateX(4px); }
/* Silber-Chrome – Primär */
.btn--primary {
  background: var(--silver); background-size: 220% 100%; background-position: 0% 50%;
  border-color: #b9bcc1;
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.18), 0 10px 26px -12px rgba(68,70,74,.45);
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
}
.btn--primary:hover { background-position: 100% 50%; box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.2), 0 16px 34px -12px rgba(68,70,74,.5), 0 0 26px -6px rgba(200,204,210,.9); }
/* Graphit (statt Schwarz): CI-Grau mit Silberkante */
.btn--dark { --btn-fg: #fff; background: linear-gradient(180deg, #7a7c80, var(--grey-600)); border-color: #8d9095; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 26px -12px rgba(68,70,74,.5); }
.btn--dark::after { opacity: .35; }
.btn--dark:hover { background: linear-gradient(180deg, #84868a, #5f6165); }
.btn--outline, .btn--ghost-light { --btn-fg: var(--grey-700); background: rgba(255,255,255,.6); border-color: var(--line-strong); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.btn--outline::after, .btn--ghost-light::after { opacity: .6; }
.btn--outline:hover, .btn--ghost-light:hover { background: #fff; border-color: var(--grey-400); box-shadow: var(--shadow-1); }
.btn--light { --btn-fg: var(--grey-700); background: #fff; border-color: var(--line); box-shadow: var(--shadow-1); }
.btn--sm { min-height: 44px; padding: .5rem 1.25rem; font-size: .86rem; }
.btn--block { width: 100%; }
.link-arrow { position: relative; display: inline-flex; align-items: center; gap: .55rem; padding-block: .55rem; font-family: var(--font-head); font-size: .95rem; font-weight: 600; text-decoration: none; color: var(--grey-700); }
.link-arrow::after { content: ""; position: absolute; left: 0; right: 0; bottom: .25rem; height: 1px; background: currentColor; opacity: .35; transform-origin: right; transition: transform 500ms var(--ease-out); }
.link-arrow:hover::after { transform: scaleX(.3); }
.link-arrow .icon { width: 30px; height: 30px; padding: 7px; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px var(--platinum-300); transition: transform var(--t-fast) var(--ease); }
.link-arrow:hover .icon { transform: translateX(4px); }

/* ========================= Promo ========================= */
.promo { position: relative; z-index: 60; background: var(--silver-edge); color: var(--grey-700); font-family: var(--font-head); font-size: .84rem; font-weight: 500; border-bottom: 1px solid var(--platinum-300); }
.promo__inner { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 40px; padding: .4rem 3rem; text-align: center; }
.promo a { color: var(--grey-700); text-decoration: none; }
.promo a strong { font-weight: 600; color: var(--grey-700); }
.promo__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex: none; box-shadow: 0 0 0 4px rgba(200,16,46,.15); }
.promo__close { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; display: grid; place-items: center; background: none; border: 0; color: var(--grey-600); }
.promo[hidden] { display: none; }

/* ========================= Header ========================= */
.site-header { position: sticky; top: 0; z-index: 50; height: var(--header-h); background: rgba(255,255,255,.82); backdrop-filter: saturate(1.4) blur(16px); -webkit-backdrop-filter: saturate(1.4) blur(16px); transition: box-shadow 400ms var(--ease), background-color 400ms; }
.site-header.is-scrolled { background: rgba(255,255,255,.92); box-shadow: 0 10px 30px -20px rgba(68,70,74,.35); }
/* Handy/Tablet: Header gleitet beim Runterscrollen weg und kommt beim Hochscrollen zurück (mehr Platz) */
@media (max-width: 899px) {
  .site-header { transition: transform 450ms var(--ease-out), box-shadow 400ms var(--ease), background-color 400ms; }
  .site-header.is-away { transform: translateY(calc(-100% - 6px)); box-shadow: none; }
}
@media (max-width: 899px) and (prefers-reduced-motion: reduce) { .site-header { transition: none; } }
.site-header__inner { height: 100%; display: flex; align-items: center; gap: var(--s-3); }
.brand { display: flex; align-items: center; flex: none; margin-right: auto; }
.brand img { height: 54px; width: auto; }
@media (max-width: 899px) { .brand img { height: 44px; } }
.nav { display: none; }
.nav__list { display: flex; align-items: center; gap: clamp(.9rem, .1rem + 1.4vw, 2rem); list-style: none; margin: 0; padding: 0; }
.nav__link { position: relative; display: inline-flex; align-items: center; gap: .3rem; min-height: 44px; padding: 0; font-family: var(--font-head); font-size: .98rem; font-weight: 500; text-decoration: none; color: var(--grey-600); background: none; border: 0; }
.nav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; border-radius: 2px; background: var(--silver-ink); transform: scaleX(0); transform-origin: left; transition: transform 400ms var(--ease-out); }
.nav__link:hover, .nav__link[aria-current="page"] { color: var(--grey-700); }
.nav__link:hover::after, .nav__link[aria-current="page"]::after { transform: scaleX(1); }
.nav__link .icon { width: 15px; height: 15px; transition: transform var(--t-fast); }
.nav__link[aria-expanded="true"] .icon { transform: rotate(180deg); }
.nav__more { position: relative; }
.nav__dropdown { position: absolute; right: -1rem; top: calc(100% + 14px); min-width: 260px; list-style: none; margin: 0; padding: .6rem; background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-radius: var(--r-2); box-shadow: var(--shadow-2); border: 1px solid var(--line); }
.nav__dropdown a { display: flex; align-items: center; gap: .8rem; padding: .7rem .9rem; border-radius: var(--r-1); text-decoration: none; font-family: var(--font-head); font-weight: 500; color: var(--grey-600); }
.nav__dropdown a:hover { background: var(--platinum-50); color: var(--grey-700); }
.nav__dropdown .icon { color: var(--grey-400); }
.header-actions { display: flex; align-items: center; gap: .8rem; }
.header-phone { display: none; align-items: center; gap: .55rem; text-decoration: none; font-family: var(--font-head); font-weight: 600; color: var(--grey-700); min-height: 44px; }
.header-phone .icon { width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px var(--platinum-300); }
.burger { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: var(--grey-700); background: var(--silver); border: 1px solid var(--platinum-300); box-shadow: inset 0 1px 0 #fff; }
.burger .icon { width: 20px; height: 20px; }
@media (min-width: 1180px) { .nav { display: block; } .burger { display: none; } }
@media (min-width: 1360px) { .header-phone { display: inline-flex; } }
@media (max-width: 420px) { .header-actions .btn--sm { padding-inline: .9rem; } }

.mobile-menu { position: fixed; inset: 0; z-index: 80; background: var(--marble-soft); background-color: var(--pearl); display: flex; flex-direction: column; overflow-y: auto; padding: 0 var(--gutter) calc(2rem + env(safe-area-inset-bottom)); opacity: 0; transform: scale(1.02); transition: opacity 350ms var(--ease), transform 350ms var(--ease-out); }
.mobile-menu.is-open { opacity: 1; transform: none; }
.mobile-menu[hidden] { display: none; }
.mobile-menu__top { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); flex: none; }
.mobile-menu__top img { height: 44px; width: auto; }
.mobile-menu__close { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: var(--grey-700); background: var(--silver); border: 1px solid var(--platinum-300); }
.mobile-menu__list { list-style: none; margin: var(--s-2) 0; padding: 0; }
.mobile-menu__list a { display: flex; justify-content: space-between; align-items: center; min-height: 44px; padding: .4rem 0; border-bottom: 1px solid var(--line); font-family: var(--font-head); font-size: 1.2rem; font-weight: 500; letter-spacing: -.01em; text-decoration: none; color: var(--grey-700); }
.mobile-menu__list a .icon { width: 16px; height: 16px; color: var(--grey-400); }
.mobile-menu__list--small a { font-size: .96rem; padding: .38rem 0; }
.mobile-menu__label { font-family: var(--font-head); font-size: .72rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--grey-500); margin: var(--s-3) 0 0; }
.mobile-menu__social { display: flex; justify-content: center; gap: .9rem; margin-top: var(--s-3); }
.mobile-menu__social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--red); background: rgba(255,255,255,.8); box-shadow: 0 0 0 1px var(--red-line); transition: background-color .25s var(--ease), color .25s var(--ease); }
.mobile-menu__social a:hover, .mobile-menu__social a:focus-visible { background: var(--red); color: #fff; }
.mobile-menu__social svg { width: 18px; height: 18px; }
body.menu-open { overflow: hidden; }

.sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: flex; gap: .6rem; padding: .65rem var(--gutter) calc(.65rem + env(safe-area-inset-bottom)); background: rgba(255,255,255,.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--line); box-shadow: 0 -10px 30px -20px rgba(68,70,74,.35); transform: translateY(110%); transition: transform 450ms var(--ease-out); }
.sticky-cta.is-visible { transform: none; }
.sticky-cta .btn { flex: 1; }
.sticky-cta__wa { width: 54px; height: 54px; flex: none; display: grid; place-items: center; border-radius: 50%; color: var(--grey-700); text-decoration: none; background: #fff; border: 1px solid var(--line-strong); }
.sticky-cta__wa .icon { width: 24px; height: 24px; }
@media (max-width: 899px) { body.has-sticky { --sticky-cta-h: 80px; padding-bottom: calc(80px + env(safe-area-inset-bottom)); } }
@media (min-width: 900px) { .sticky-cta { display: none; } }

/* ========================= Breadcrumbs / Trust ========================= */
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0 0 var(--s-4); font-size: .82rem; color: var(--text-muted); }
.breadcrumbs li + li::before { content: "/"; margin-right: .4rem; opacity: .45; }
.breadcrumbs a { text-decoration: none; }
.stars { display: inline-flex; gap: 2px; color: #c9a54a; }
.stars svg { width: 15px; height: 15px; fill: currentColor; }
.trustline { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.6rem; font-size: .9rem; margin-top: var(--s-4); color: var(--text-muted); }
.trustline > span { display: inline-flex; align-items: center; gap: .5rem; }
.trustline strong { color: var(--grey-700); }
.trustline .icon { width: 18px; height: 18px; color: var(--grey-500); }
.checklist { list-style: none; padding: 0; margin: 0 0 1.6rem; display: grid; gap: .6rem; }
.checklist li { display: flex; gap: .7rem; align-items: flex-start; font-size: .97rem; line-height: 1.5; }
.checklist .icon { width: 22px; height: 22px; padding: 4px; margin-top: .05em; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: 0 0 0 1px var(--platinum-300); }

/* ========================= Vorher/Nachher ========================= */
.ba { --pos: 50%; position: relative; overflow: hidden; border-radius: var(--r-3); background: var(--platinum-100); aspect-ratio: 16 / 9; user-select: none; -webkit-user-select: none; touch-action: pan-y; box-shadow: var(--shadow-2); }
@media (min-width: 700px) { .ba { aspect-ratio: 1024 / 360; } }
.ba__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; pointer-events: none; }
.ba__before { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.ba__handle { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: var(--silver); box-shadow: 0 0 12px rgba(255,255,255,.8); pointer-events: none; }
.ba__handle::after { content: ""; position: absolute; top: 50%; left: 50%; width: 56px; height: 56px; transform: translate(-50%, -50%); border-radius: 50%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2344464a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 7-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center/22px no-repeat, var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1, 0 8px 22px rgba(68,70,74,.35); transition: transform 300ms var(--ease-out); }
.ba:hover .ba__handle::after, .ba__range:focus-visible ~ .ba__handle::after { transform: translate(-50%, -50%) scale(1.1); }
.ba__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; background: transparent; touch-action: pan-y; }
.ba__range::-webkit-slider-thumb { -webkit-appearance: none; width: 60px; height: 100vh; }
.ba__range::-moz-range-thumb { width: 60px; height: 100vh; border: 0; }
.ba__range:focus-visible ~ .ba__handle { outline: 2px solid var(--grey-600); outline-offset: 2px; }
.ba__label { position: absolute; top: 16px; padding: .4rem .95rem; border-radius: var(--r-pill); font-family: var(--font-head); font-size: .78rem; font-weight: 600; pointer-events: none; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ba__label--before { left: 16px; background: rgba(255,255,255,.85); color: var(--grey-700); }
.ba__label--after { right: 16px; background: var(--silver); color: var(--grey-700); box-shadow: 0 0 0 1px #c3c6ca; }
.ba-hint { display: flex; align-items: center; justify-content: center; gap: .5rem; font-size: .85rem; color: var(--text-muted); margin-top: 1rem; }
.ba-thumbs { display: flex; gap: .7rem; margin-top: 1.1rem; overflow-x: auto; scrollbar-width: none; padding: 4px 2px; }
.ba-thumbs::-webkit-scrollbar { display: none; }
.ba-thumb { flex: 0 0 auto; width: 96px; aspect-ratio: 1024 / 360; border-radius: var(--r-1); overflow: hidden; padding: 0; min-height: 44px; border: 0; background: none; opacity: .55; transition: opacity var(--t-fast), box-shadow var(--t-fast); }
.ba-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ba-thumb[aria-pressed="true"], .ba-thumb:hover { opacity: 1; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--grey-400); }
@media (min-width: 700px) { .ba-thumb { width: 136px; } }
.result-card { margin: 0; background: #fff; border-radius: var(--r-3); overflow: hidden; box-shadow: var(--shadow-1); transition: transform 500ms var(--ease-out), box-shadow 500ms var(--ease); }
.result-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); }
.result-card .media { border-radius: 0; aspect-ratio: 1; }
.result-card figcaption { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.2rem; font-family: var(--font-head); font-weight: 600; font-size: .9rem; color: var(--grey-600); }
.result-card button { background: none; border: 0; padding: 0; width: 100%; cursor: zoom-in; display: block; }

/* ========================= Preiskarten · Marmor + rotierender Silberrand ========================= */
.price-grid { display: grid; gap: var(--s-4); grid-template-columns: 1fr; align-items: stretch; padding-top: 16px; }
@media (min-width: 760px) { .price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); } }
@media (min-width: 1100px) { .price-grid { gap: var(--s-4); } }
.price-card {
  position: relative; display: flex; flex-direction: column; isolation: isolate;
  padding: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); border-radius: var(--r-4);
  background: linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.9)), var(--marble) center / cover;
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1);
  transition: transform 600ms var(--ease-out), box-shadow 600ms var(--ease);
}
.price-card:hover, .price-card:focus-within { transform: translateY(-8px); box-shadow: var(--shadow-silver); }
.price-card__ring { position: absolute; inset: 0; border-radius: var(--r-4); padding: 3px; overflow: hidden; pointer-events: none; z-index: 2; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 500ms var(--ease); }
.price-card__ring::before { content: ""; position: absolute; left: 50%; top: 50%; width: 260%; aspect-ratio: 1; transform: translate(-50%, -50%) rotate(0deg); background: conic-gradient(rgba(150,154,160,.25) 0deg, #7d8187 40deg, #ffffff 90deg, #8a8e94 140deg, rgba(150,154,160,.25) 180deg, #7d8187 220deg, #ffffff 270deg, #8a8e94 320deg, rgba(150,154,160,.25) 360deg); animation: ring-spin 3s linear infinite; animation-play-state: paused; }
.price-card:hover .price-card__ring, .price-card:focus-within .price-card__ring { opacity: 1; }
.price-card:hover .price-card__ring::before, .price-card:focus-within .price-card__ring::before { animation-play-state: running; }
@keyframes ring-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
.price-card--featured { box-shadow: 0 0 0 2px #c3c6ca, var(--shadow-2); background: linear-gradient(rgba(255,255,255,.7), rgba(246,246,247,.85)), var(--marble) center / cover; }
.price-card--featured::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 2px; pointer-events: none; background: var(--silver-edge); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
@media (min-width: 760px) { .price-card--featured { transform: translateY(-14px); } .price-card--featured:hover, .price-card--featured:focus-within { transform: translateY(-22px); } }
.price-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.price-card__kicker { font-family: var(--font-head); font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); }
.price-card__name { font-size: clamp(2rem, 1.7rem + 1vw, 2.6rem); margin: .5rem 0 .4rem; }
.price-card__lead { font-size: .95rem; color: var(--text-muted); min-height: 3em; }
.price-card__lead:has(+ .price-card__pick) { min-height: 0; }
.price-card__pick { align-self: flex-start; position: relative; z-index: 3; margin-top: .5rem; }
.price-card__save { flex: none; padding: .3rem .7rem; border-radius: var(--r-pill); background: #fff; color: var(--grey-700); font-family: var(--font-head); font-size: .78rem; font-weight: 700; box-shadow: 0 0 0 1px var(--platinum-300); }
.price-card--featured .price-card__save { background: var(--accent); color: #fff; box-shadow: none; }
.price-card__badge { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); z-index: 3; white-space: nowrap; padding: .45rem 1.15rem; border-radius: var(--r-pill); background: var(--silver); color: var(--grey-700); font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1, 0 8px 20px -10px rgba(68,70,74,.5); }
.price-card__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .8rem; margin: 1.1rem 0 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.price-card__now { font-family: var(--font-head); font-weight: 500; font-size: clamp(3rem, 2.5rem + 1.6vw, 4rem); line-height: 1; letter-spacing: -.04em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--grey-600); padding-right: .1em; margin-right: -.1em; }
.price-card__old { color: var(--text-muted); text-decoration: line-through; font-size: 1rem; }
.price-card .checklist { flex: 1; }
.price-card__note { margin: 1rem 0 0; font-size: .8rem; color: var(--text-muted); text-align: center; }

.segmented { display: inline-flex; padding: 5px; border-radius: var(--r-pill); background: rgba(255,255,255,.85); border: 1px solid var(--line); margin-bottom: var(--s-6); box-shadow: var(--shadow-1); }
.segmented button { min-height: 46px; padding: .5rem 1.6rem; border: 0; border-radius: var(--r-pill); background: none; font-family: var(--font-head); font-size: .95rem; font-weight: 600; color: var(--text-muted); transition: background var(--t-fast), color var(--t-fast); }
.segmented button[aria-selected="true"] { background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
[role="tabpanel"][hidden] { display: none; }
.extra { display: grid; grid-template-columns: 1fr auto; gap: .45rem 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.extra:first-child { border-top: 1px solid var(--line); }
.extra h3 { margin: 0; }
.extra p { grid-column: 1 / -1; margin: 0; color: var(--text-muted); font-size: .95rem; max-width: 60ch; }
.extra__price { text-align: right; font-family: var(--font-head); font-weight: 600; font-size: 1.6rem; line-height: 1; color: var(--grey-700); }
.extra__price small { display: block; font-family: var(--font-body); font-weight: 400; font-size: .76rem; color: var(--text-muted); margin-top: .4rem; }
.extra__price s { color: var(--text-muted); font-size: .7em; font-weight: 400; margin-right: .35em; }

/* ========================= Feature-Leiste (4 Spalten mit Trennlinien) ========================= */
.usps { display: grid; grid-template-columns: 1fr; border-radius: var(--r-4); background: rgba(255,255,255,.78); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); overflow: hidden; }
.usp { position: relative; display: flex; flex-direction: column; gap: 1rem; padding: clamp(1.6rem, 1.2rem + 1.4vw, 2.6rem); transition: background 400ms var(--ease); }
.usp + .usp { border-top: 1px solid var(--line); }
.usp:hover { background: rgba(255,255,255,.95); }
.usp__icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 10px 22px -12px rgba(68,70,74,.5); transition: transform 600ms var(--ease-out); }
.usp:hover .usp__icon { transform: rotate(-8deg) scale(1.06); }
.usp__icon .icon { width: 26px; height: 26px; }
.usp h3 { font-size: 1.3rem; margin: .4rem 0 .3rem; }
.usp p { margin: 0; font-size: .95rem; color: var(--text-muted); }
@media (min-width: 700px) { .usps { grid-template-columns: repeat(2, 1fr); } .usp + .usp { border-top: 0; } .usp:nth-child(even) { border-left: 1px solid var(--line); } .usp:nth-child(n+3) { border-top: 1px solid var(--line); } }
@media (min-width: 1150px) { .usps { grid-template-columns: repeat(4, 1fr); } .usp:nth-child(n) { border-top: 0; border-left: 1px solid var(--line); } .usp:first-child { border-left: 0; } }
.section--dark .usps { background: rgba(255,255,255,.6); }

/* ========================= Schritte ========================= */
.steps { display: grid; gap: var(--s-5); counter-reset: step; }
@media (min-width: 700px) { .steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .steps { grid-template-columns: repeat(4, 1fr); gap: var(--s-4); } .step:nth-child(even) { margin-top: 3.5rem; } }
.step { counter-increment: step; }
.step .media { aspect-ratio: 3 / 4; margin-bottom: 1.3rem; box-shadow: var(--shadow-2); }
.step__num { display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: .8rem; border-radius: 50%; font-family: var(--font-head); font-weight: 700; font-size: 1rem; color: var(--grey-700); background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.step__num::before { content: "0" counter(step); }
.step h3 { margin-bottom: .45rem; }
.step p { font-size: .96rem; color: var(--text-muted); margin: 0; }

/* ========================= Bewertungen ========================= */
.rating-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; }
.rating-hero__score { font-family: var(--font-head); font-weight: 500; font-size: clamp(3.6rem, 2.8rem + 3vw, 5.4rem); line-height: .9; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.rating-hero .stars svg { width: 20px; height: 20px; }
.carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 86%); gap: var(--s-3); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 2px 16px; overscroll-behavior-x: contain; }
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track > * { scroll-snap-align: start; }
@media (min-width: 700px) { .carousel__track { grid-auto-columns: calc((100% - var(--s-3)) / 2); } }
@media (min-width: 1100px) { .carousel__track { grid-auto-columns: calc((100% - 2 * var(--s-3)) / 3); } }
.carousel--videos .carousel__track { grid-auto-columns: minmax(200px, 62%); }
@media (min-width: 700px) { .carousel--videos .carousel__track { grid-auto-columns: calc((100% - 3 * var(--s-3)) / 4); } }
@media (min-width: 1100px) { .carousel--videos .carousel__track { grid-auto-columns: calc((100% - 4 * var(--s-3)) / 5); } }
.carousel__nav { display: flex; gap: .6rem; }
.carousel__btn { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; color: var(--grey-700); background: var(--silver); border: 1px solid #c3c6ca; box-shadow: inset 0 1px 0 #fff, var(--shadow-1); transition: transform var(--t-fast); }
.carousel__btn:hover { transform: scale(1.07); }
.carousel__btn:disabled { opacity: .4; pointer-events: none; }
.carousel__btn--prev .icon { transform: rotate(180deg); }
.review { position: relative; display: flex; flex-direction: column; gap: 1rem; margin: 0; padding: clamp(1.7rem, 1.3rem + 1vw, 2.3rem); height: 100%; border-radius: var(--r-3); background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); transition: transform 500ms var(--ease-out), box-shadow 500ms; }
.review:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-2); }
.review::before { content: "“"; position: absolute; right: 1.4rem; top: .3rem; font-family: var(--font-accent); font-size: 5.5rem; line-height: 1; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; opacity: .45; pointer-events: none; }
.review blockquote { margin: 0; font-family: var(--font-head); font-size: 1.2rem; font-weight: 500; line-height: 1.5; color: var(--grey-700); flex: 1; }
.review figcaption { display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .82rem; color: var(--text-muted); padding-top: 1rem; border-top: 1px solid var(--line); }
.review figcaption strong { display: block; font-family: var(--font-head); font-size: 1rem; }
.review__source { font-family: var(--font-head); font-weight: 600; font-size: .75rem; padding: .3rem .7rem; border-radius: var(--r-pill); background: var(--platinum-50); }

.vt { position: relative; aspect-ratio: 9 / 16; border-radius: var(--r-3); overflow: hidden; background: var(--platinum-100); box-shadow: var(--shadow-2); }
.vt img, .vt iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; transition: transform 1s var(--ease-out); }
.vt:hover img { transform: scale(1.05); }
.vt__btn { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: .4rem; padding: 1.2rem; border: 0; width: 100%; text-align: left; color: #fff; background: linear-gradient(180deg, transparent 50%, rgba(68,70,74,.75)); }
.vt__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 66px; height: 66px; border-radius: 50%; display: grid; place-items: center; color: var(--grey-700); background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 6px rgba(255,255,255,.35); transition: transform 400ms var(--ease-out); }
.vt__play .icon { width: 22px; height: 22px; fill: currentColor; margin-left: 3px; }
.vt__btn:hover .vt__play { transform: translate(-50%, -50%) scale(1.1); }
.vt__name { font-family: var(--font-head); font-size: 1.35rem; font-weight: 600; line-height: 1; }
.vt__meta { font-size: .75rem; opacity: .9; }
.vt-note { font-size: .8rem; color: var(--text-muted); margin-top: 1rem; }
.video-frame { position: relative; border-radius: var(--r-4); overflow: hidden; background: var(--platinum-100); aspect-ratio: 16 / 9; box-shadow: var(--shadow-2); }
.video-frame video, .video-frame > img, .video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.video-frame > img { object-position: center 25%; }
.video-frame--portrait { aspect-ratio: 9 / 16; max-width: 420px; }

/* ========================= Galerie / Lightbox ========================= */
.gallery { display: grid; gap: .8rem; grid-template-columns: repeat(2, 1fr); }
.gallery .media { aspect-ratio: 3 / 4; }
@media (min-width: 900px) {
  .gallery { grid-template-columns: repeat(12, 1fr); gap: 1.1rem; }
  .gallery > :nth-child(1) { grid-column: span 7; aspect-ratio: 3 / 2; }
  .gallery > :nth-child(2) { grid-column: span 5; grid-row: span 2; aspect-ratio: auto; }
  .gallery > :nth-child(3) { grid-column: span 3; aspect-ratio: 3 / 4; }
  .gallery > :nth-child(4) { grid-column: span 4; aspect-ratio: auto; }
  .gallery > :nth-child(n+5) { grid-column: span 4; aspect-ratio: 4 / 5; }
}
.gallery button { padding: 0; border: 0; background: none; cursor: zoom-in; width: 100%; height: 100%; display: block; }
.gallery button img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.gallery button:hover img { transform: scale(1.05); }
.lightbox { border: 0; padding: 0; background: transparent; max-width: min(92vw, 1100px); max-height: 92vh; overflow: visible; }
.lightbox::backdrop { background: rgba(240,240,241,.9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.lightbox img { max-height: 86vh; width: auto; margin: auto; border-radius: var(--r-2); box-shadow: var(--shadow-2); }
.lightbox__close { position: fixed; top: 1rem; right: 1rem; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: var(--silver); border: 1px solid #c3c6ca; color: var(--grey-700); }

/* ========================= FAQ ========================= */
.faq { display: grid; gap: .7rem; }
.faq__item { border-radius: var(--r-2); background: rgba(255,255,255,.82); box-shadow: 0 0 0 1px var(--platinum-200); transition: box-shadow 300ms, background 300ms; }
.faq__item[open] { background: #fff; box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-1); }
.faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; padding: 1.15rem 1.3rem; cursor: pointer; list-style: none; min-height: 44px; font-family: var(--font-head); font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); font-weight: 600; color: var(--grey-700); line-height: 1.35; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__icon { width: 34px; height: 34px; padding: 8px; flex: none; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; transition: transform 400ms var(--ease-out); }
.faq__item[open] .faq__icon { transform: rotate(180deg); }
.faq__a { padding: 0 1.3rem 1.3rem; color: var(--text-muted); max-width: 75ch; }
.faq__a p { margin: 0; }
.faq-nav { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: var(--s-5); }

.chips { display: flex; flex-wrap: wrap; gap: .55rem; }
.chip { position: relative; min-height: 44px; padding: .5rem 1.2rem; border-radius: var(--r-pill); background: rgba(255,255,255,.85); border: 1px solid var(--line); font-family: var(--font-head); font-size: .92rem; font-weight: 600; text-decoration: none; color: var(--grey-600); display: inline-flex; align-items: center; gap: .4rem; transition: background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast); }
.chip:hover { color: var(--grey-700); box-shadow: var(--shadow-1); }
.chip[aria-pressed="true"], .chip:has(input:checked) { background: var(--silver); color: var(--grey-700); border-color: #b9bcc1; box-shadow: inset 0 1px 0 #fff; }
.chip:has(input:focus-visible) { outline: 2px solid var(--grey-600); outline-offset: 3px; }
label.chip { cursor: pointer; }

/* ========================= Produkte ========================= */
.products { display: grid; gap: var(--s-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1150px) { .products--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.product { position: relative; display: flex; flex-direction: column; background: rgba(255,255,255,.92); border-radius: var(--r-3); overflow: hidden; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); transition: transform 500ms var(--ease-out), box-shadow 500ms var(--ease); isolation: isolate; }
.product:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px #c3c6ca, var(--shadow-silver); }
.product[hidden] { display: none; }
.product__media { position: relative; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; background: var(--marble-soft); }
.product__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-out); }
.product__media svg { width: 62%; height: 62%; transition: transform 1s var(--ease-out); }
.product:hover .product__media img, .product:hover .product__media svg { transform: scale(1.05); }
.product__media > .icon { width: 30%; height: 30%; color: var(--grey-400); }
.product__badge { position: absolute; top: .8rem; left: .8rem; padding: .3rem .75rem; border-radius: var(--r-pill); background: #fff; color: var(--grey-700); font-family: var(--font-head); font-size: .72rem; font-weight: 700; box-shadow: 0 0 0 1px var(--platinum-300); }
.product__badge--sale { left: auto; right: .8rem; background: var(--silver); }
.product__body { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.1rem 1.3rem; flex: 1; }
.product__cat { font-family: var(--font-head); font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--grey-500); }
.product__name { font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem); margin: 0; }
.product__desc { font-size: .86rem; color: var(--text-muted); margin: 0; flex: 1; }
.product__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 .8rem; font-family: var(--font-head); font-weight: 700; font-size: 1.15rem; color: var(--grey-700); }
.product__price s { color: var(--text-muted); font-weight: 400; font-size: .85rem; }
.product .btn { min-height: 44px; font-size: .84rem; padding-inline: .8rem; }

/* ========================= Karten ========================= */
.card { position: relative; background: rgba(255,255,255,.86); border-radius: var(--r-3); padding: clamp(1.6rem, 1.2rem + 1.2vw, 2.4rem); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); overflow-wrap: anywhere; transition: transform 500ms var(--ease-out), box-shadow 500ms; }
.card > .icon:first-child { width: 52px; height: 52px; padding: 13px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.card h3 { margin-bottom: .5rem; }
.card p:last-child { margin-bottom: 0; }
.card-link { display: flex; flex-direction: column; text-decoration: none; height: 100%; }
.card-link:hover { color: inherit; }
a.card:hover { transform: translateY(-5px); box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-2); }
.card-link .media { margin-bottom: 1.2rem; }
.card-link .media img { transition: transform 1.2s var(--ease-out); }
.card-link:hover .media img { transform: scale(1.05); }
.info-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; overflow-wrap: anywhere; }
.info-list li { display: flex; gap: 1rem; align-items: flex-start; }
.info-list .icon { width: 38px; height: 38px; padding: 9px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.info-list a { text-decoration: none; font-weight: 600; }
.hours { width: 100%; border-collapse: collapse; font-size: .95rem; }
.hours th, .hours td { padding: .6rem 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; }
.hours td { text-align: right; font-weight: 600; color: var(--grey-700); }

/* Standorte */
.locations { display: grid; gap: var(--s-3); }
@media (min-width: 800px) { .locations { grid-template-columns: 1.35fr 1fr; } }
.location { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 440px; padding: clamp(1.8rem, 1.4rem + 1.5vw, 2.8rem); border-radius: var(--r-4); overflow: hidden; color: #fff; isolation: isolate; box-shadow: var(--shadow-2); }
.location > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.4s var(--ease-out); }
.location:hover > img { transform: scale(1.04); }
.location::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(68,70,74,0) 30%, rgba(68,70,74,.78)); }
.location h3 { color: #fff; font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); margin: .4rem 0; }
.location p { color: rgba(255,255,255,.9); margin-bottom: 1.4rem; }
.location--soon { color: var(--grey-700); background: var(--marble-platinum); justify-content: space-between; box-shadow: inset 0 0 0 1px rgba(255,255,255,.8), var(--shadow-1); }
.location--soon::before { display: none; }
.location--soon h3 { color: var(--grey-700); }
.location--soon p { color: var(--text-muted); }
.location--soon .link-arrow { color: var(--grey-700) !important; }
.status { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .4rem .9rem; border-radius: var(--r-pill); font-family: var(--font-head); font-size: .78rem; font-weight: 700; background: rgba(255,255,255,.9); color: var(--grey-700); }
.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #4fc488; box-shadow: 0 0 0 3px rgba(79,196,136,.25); }
.status--soon { background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.status--soon::before { background: var(--accent); box-shadow: 0 0 0 3px rgba(200,16,46,.15); }

.map { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-4); overflow: hidden; background: var(--platinum-100); box-shadow: var(--shadow-2); }
@media (min-width: 900px) { .map { aspect-ratio: auto; min-height: 480px; height: 100%; } }
.map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.5); }
.map__placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 1.5rem; text-align: center; background: var(--marble-soft); }
.map__placeholder > .icon { width: 60px; height: 60px; padding: 16px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: 0 0 0 1px #c3c6ca; }
.map__placeholder p { max-width: 36ch; font-size: .88rem; color: var(--text-muted); margin: 0; }

/* ========================= CTA-Banner (schwebende Marmor-Box) ========================= */
.cta-band { position: relative; overflow: hidden; isolation: isolate; margin: var(--section-y) var(--frame) 0; border-radius: var(--r-frame); padding-block: clamp(4.5rem, 3rem + 5vw, 8rem); text-align: center; background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.8), var(--shadow-1); }
.cta-band > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .16; z-index: -1; filter: grayscale(.4); }
.cta-band h2 { font-size: var(--fs-h1); max-width: 17ch; margin-inline: auto; }
.cta-band p { color: var(--text-muted); max-width: 52ch; margin-inline: auto; }
.cta-band .eyebrow { justify-content: center; }
.cta-band .btn--ghost-light { background: rgba(255,255,255,.75); }

/* ========================= Formulare ========================= */
.form { display: grid; gap: 1.15rem; }
.form-row { display: grid; gap: 1.15rem; }
@media (min-width: 640px) { .form-row { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: .45rem; }
.field label, .field legend { font-family: var(--font-head); font-size: .92rem; font-weight: 600; color: var(--grey-700); }
.field .req { color: var(--accent); }
.field input, .field select, .field textarea { width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid var(--platinum-300); border-radius: var(--r-2); background: rgba(255,255,255,.95); font-size: 1rem; transition: border-color var(--t-fast), box-shadow var(--t-fast); }
.field textarea { min-height: 150px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--grey-500); box-shadow: 0 0 0 4px rgba(109,110,113,.14); }
.field [aria-invalid="true"] { border-color: var(--accent); }
.field__error { color: var(--accent); font-size: .82rem; min-height: 1em; margin: 0; }
.field__hint { color: var(--text-muted); font-size: .82rem; margin: 0; }
.field .checkbox { display: flex; gap: .75rem; align-items: flex-start; font-family: var(--font-body); font-size: .88rem; font-weight: 400; color: var(--text); line-height: 1.55; }
.checkbox input { width: 22px; height: 22px; min-height: 0; margin-top: .1rem; accent-color: var(--grey-600); flex: none; }
.form-status { padding: 1rem 1.2rem; border-radius: var(--r-2); background: var(--platinum-50); font-size: .92rem; }
.form-status[hidden] { display: none; }
.consent { position: fixed; z-index: 90; left: var(--gutter); right: var(--gutter); bottom: calc(var(--sticky-cta-h) + 1rem); max-width: 460px; padding: 1.5rem; border-radius: var(--r-3); background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: var(--shadow-2); font-size: .88rem; }
.consent[hidden] { display: none; }
.consent h2 { font-size: 1.4rem; margin-bottom: .4rem; }
.consent p { color: var(--text-muted); }
.consent .actions { margin-top: 1rem; }
.consent .btn { flex: 1; }
@media (min-width: 900px) { .consent { left: auto; } }

/* ========================= Reveal ========================= */
.js .reveal { opacity: 0; transform: translateY(30px); transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out); transition-delay: var(--d, 0ms); }
.js .reveal.is-in { opacity: 1; transform: none; }
.js .reveal-img { clip-path: inset(6% 6% 6% 6% round var(--r-3)); transition: clip-path 1.3s var(--ease-out); }
.js .reveal-img img { transform: scale(1.12); transition: transform 1.6s var(--ease-out); }
.js .reveal-img.is-in { clip-path: inset(0 0 0 0 round var(--r-3)); }
.js .reveal-img.is-in img { transform: none; }
.js .page-hero .reveal, .js .page-hero .reveal-img, .js .hero .reveal { opacity: 1; transform: none; clip-path: none; transition: none; }
.js .page-hero .reveal-img img { transform: none; }
.prose, .footer-list { overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .reveal, .js .reveal-img, .js .reveal-img img { opacity: 1; transform: none; clip-path: none; }
}

/* ========================= Hero: Marmor-Panel + Studio-Video in schwebender Box ========================= */
.hero { padding: var(--frame) var(--frame) 0; }
.hero__frame {
  position: relative; display: flex; flex-direction: column; overflow: hidden; isolation: isolate;
  border-radius: var(--r-frame); background: var(--marble-soft); box-shadow: inset 0 0 0 1px rgba(255,255,255,.8), var(--shadow-2);
}
.hero__media { position: relative; aspect-ratio: 16 / 11; -webkit-mask-image: linear-gradient(180deg, #000 62%, transparent 100%); mask-image: linear-gradient(180deg, #000 62%, transparent 100%); }
.hero__media img, .hero__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.hero__media video { transform: scale(1.04); animation: hero-zoom 24s ease-out forwards; }
@keyframes hero-zoom { to { transform: scale(1); } }
.hero__panel { position: relative; z-index: 2; padding: 0 clamp(1.4rem, 1rem + 2vw, 3rem) 1.5rem; margin-top: -3.5rem; }
.hero h1 { font-size: var(--fs-display); margin-bottom: 1.2rem; }
.hero h1 em { display: block; }
.hero__sub { font-size: var(--fs-lead); color: var(--text-muted); max-width: 40ch; margin: 0; }
.hero .actions { margin-top: 2rem; }
.hero .trustline { margin-top: 1.8rem; }
.hero__stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; padding: 0 clamp(1.4rem, 1rem + 2vw, 3rem) clamp(1.4rem, 1rem + 2vw, 3rem); }
.stat-card { padding: 1.1rem 1.2rem; border-radius: var(--r-3); background: rgba(255,255,255,.88); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 0 0 1px rgba(255,255,255,.9), var(--shadow-1); }
.stat-card__num { display: block; font-family: var(--font-head); font-weight: 600; font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.7rem); line-height: 1; letter-spacing: -.03em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.stat-card__label { display: block; margin-top: .45rem; font-family: var(--font-head); font-size: .92rem; font-weight: 600; color: var(--grey-700); }
.stat-card .stars { margin-top: .4rem; }
.hero__controls { position: absolute; z-index: 3; top: 1rem; right: 1rem; }
.hero__toggle { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--grey-700); background: rgba(255,255,255,.85); border: 1px solid rgba(255,255,255,.9); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--shadow-1); }
.hero__toggle .icon { width: 16px; height: 16px; }
@media (min-width: 1000px) {
  .hero__frame { display: block; min-height: clamp(620px, calc(100vh - var(--header-h) - 60px), 880px); min-height: clamp(620px, calc(100svh - var(--header-h) - 60px), 880px); }
  .hero__media { position: absolute; inset: 0 0 0 42%; aspect-ratio: auto; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 16%, #000 34%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 16%, #000 34%); }
  .hero__panel { position: relative; width: min(56%, 720px); margin: 0; padding: clamp(3.5rem, 2rem + 4vw, 6rem) 0 clamp(3.5rem, 2rem + 4vw, 6rem) clamp(2rem, 1rem + 3vw, 4.5rem); }
  .hero__stats { position: absolute; right: clamp(1.2rem, .5rem + 1.5vw, 2.2rem); bottom: clamp(1.2rem, .5rem + 1.5vw, 2.2rem); width: min(440px, 36%); padding: 0; }
  .hero__controls { top: 1.4rem; bottom: auto; right: 1.4rem; left: auto; }
}

/* Riesen-Typo-Laufband */
.bigtype { overflow: hidden; padding-block: clamp(2rem, 1rem + 3vw, 4rem); }
.bigtype__track { display: flex; width: max-content; animation: marquee 48s linear infinite; }
.bigtype:hover .bigtype__track { animation-play-state: paused; }
.bigtype__group { display: flex; align-items: center; gap: clamp(1.5rem, 1rem + 2vw, 3.5rem); padding-right: clamp(1.5rem, 1rem + 2vw, 3.5rem); }
.bigtype__item { font-family: var(--font-head); font-weight: 600; font-size: clamp(3.4rem, 1.6rem + 8vw, 10rem); line-height: 1; letter-spacing: -.045em; white-space: nowrap; color: transparent; -webkit-text-stroke: 1.5px #b9bcc1; }
.bigtype__item--fill { -webkit-text-stroke: 0; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; }
.bigtype__dot { width: clamp(18px, 1rem + 1vw, 34px); height: clamp(18px, 1rem + 1vw, 34px); border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; flex: none; }
@keyframes marquee { to { transform: translateX(-50%); } }
.marquee { display: none; }

/* Vorher/Nachher */
.ba-section { padding-block: var(--section-y); }
.ba-panel { padding: clamp(1.2rem, .8rem + 1.6vw, 2.6rem); border-radius: var(--r-frame); background: rgba(255,255,255,.7); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.ba-panel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1.2rem; margin-bottom: 2rem; }
.ba-panel__head h2 { margin: 0; }

/* Bento-Raster */
.bento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.8rem, .5rem + .8vw, 1.2rem); }
.bento__tile { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 230px; padding: clamp(1.3rem, 1rem + 1vw, 2rem); border-radius: var(--r-3); background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.85), var(--shadow-1); overflow: hidden; }
.bento__tile::after { content: ""; position: absolute; inset: 0; background: var(--silver); opacity: .35; mix-blend-mode: soft-light; pointer-events: none; }
.bento__tile p { position: relative; z-index: 1; margin: 0; font-family: var(--font-head); font-size: clamp(1.35rem, 1.1rem + .9vw, 1.9rem); font-weight: 500; line-height: 1.2; letter-spacing: -.02em; color: var(--grey-700); }
.bento__tile p em { font-family: var(--font-accent); font-style: italic; color: var(--grey-500); }
.bento .media { min-height: 230px; box-shadow: var(--shadow-1); }
.bento .media--span { grid-column: 1 / -1; aspect-ratio: 16 / 9; min-height: 0; }
.feature-list { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: grid; gap: 1.4rem; }
.feature-list li { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; }
.feature-list .icon { width: 48px; height: 48px; padding: 12px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.feature-list h3 { font-size: 1.15rem; margin: .2rem 0 .2rem; }
.feature-list p { margin: 0; color: var(--text-muted); font-size: .95rem; }

/* Kennzahlen-Band */
.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 1rem + 2vw, 3rem); text-align: center; }
@media (min-width: 900px) { .stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.stat__num { display: block; font-family: var(--font-head); font-weight: 600; font-size: clamp(3.2rem, 2rem + 4vw, 6rem); line-height: 1; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.stat__label { display: block; margin-top: .6rem; font-family: var(--font-head); font-size: 1.05rem; font-weight: 600; color: var(--grey-700); }
.stat__sub { display: block; font-size: .85rem; color: var(--text-muted); }

/* ========================= Seiten-Hero (schwebende Marmor-Box) ========================= */
.page-hero { position: relative; margin: var(--frame) var(--frame) 0; border-radius: var(--r-frame); padding: clamp(3rem, 2rem + 4vw, 6.5rem) 0; background: var(--marble-soft); box-shadow: inset 0 0 0 1px rgba(255,255,255,.85), var(--shadow-1); overflow: hidden; isolation: isolate; }
.page-hero h1 { max-width: 16ch; }
.page-hero .lead { margin-bottom: 0; }
.page-hero__media { position: relative; }
.page-hero__media .media { aspect-ratio: 4 / 5; box-shadow: var(--shadow-2); }
@media (min-width: 900px) { .page-hero__media .media { aspect-ratio: 5 / 6; } }
.page-hero--dark { background: var(--marble-platinum); }
.page-hero--center { text-align: center; }
.page-hero--center h1, .page-hero--center .lead { margin-inline: auto; }
.page-hero--center .eyebrow { justify-content: center; }
.page-hero--image { min-height: clamp(460px, 64vh, 700px); display: flex; align-items: flex-end; color: #fff; background: var(--platinum-200); }
.page-hero--image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.page-hero--image::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(68,70,74,.78), rgba(68,70,74,.25) 70%), linear-gradient(0deg, rgba(68,70,74,.55), transparent 55%); }
.page-hero--image h1, .page-hero--image .eyebrow, .page-hero--image .breadcrumbs ol { color: #fff !important; }
.page-hero--image h1 em { background: linear-gradient(110deg, #e9eaec, #ffffff 40%, #c9ccd0 70%, #f4f5f6); -webkit-background-clip: text; background-clip: text; }
.page-hero--image .lead, .page-hero--image .hero-facts { color: rgba(255,255,255,.92); }
.page-hero--image .eyebrow::before { box-shadow: none; }
.hero-facts { display: flex; flex-wrap: wrap; gap: .7rem 1.6rem; margin-top: var(--s-4); padding: 0; list-style: none; font-family: var(--font-head); font-weight: 600; font-size: .95rem; color: var(--grey-700); }
.hero-facts li { display: inline-flex; align-items: center; gap: .55rem; }
.hero-facts .icon { width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }

/* ========================= Editorial ========================= */
.statement { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.8rem, 1.3rem + 2.2vw, 3rem); line-height: 1.2; letter-spacing: -.025em; color: var(--grey-700); max-width: 22ch; }
.statement em { font-family: var(--font-accent); font-style: italic; color: var(--grey-500); }
.portrait-stack { position: relative; }
.portrait-stack .media--portrait { width: 84%; box-shadow: var(--shadow-2); }
.portrait-stack__badge { position: absolute; right: 0; bottom: 8%; width: 40%; max-width: 230px; border-radius: 50%; padding: 5%; background: var(--marble-soft); box-shadow: 0 0 0 6px rgba(255,255,255,.8), var(--shadow-2); }
.facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.fact__num { display: block; font-family: var(--font-head); font-weight: 600; font-size: clamp(2.4rem, 1.9rem + 2vw, 3.4rem); line-height: 1; letter-spacing: -.04em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--grey-600); }
.fact__label { font-size: .88rem; color: var(--text-muted); }
.guarantee { display: grid; gap: var(--s-4); align-items: center; }
.guarantee img { width: min(220px, 60%); height: auto; margin-inline: auto; filter: drop-shadow(0 18px 26px rgba(68,70,74,.18)); }
@media (min-width: 800px) { .guarantee { grid-template-columns: 260px 1fr; } }
.timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 7px; top: .6rem; bottom: 0; width: 2px; background: linear-gradient(var(--platinum-300), transparent); }
.timeline li { position: relative; padding: 0 0 2.2rem 2.6rem; }
.timeline li::before { content: ""; position: absolute; left: 0; top: .45rem; width: 16px; height: 16px; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1, 0 0 0 5px rgba(255,255,255,.8); }
.timeline__year { display: block; font-family: var(--font-head); font-weight: 600; font-size: 1.7rem; line-height: 1; margin-bottom: .35rem; color: var(--grey-700); }
.timeline p { color: var(--text-muted); margin: 0; }
.table-wrap { overflow-x: auto; border-radius: var(--r-3); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.compare { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .95rem; }
.compare th, .compare td { padding: 1.1rem 1.3rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.compare thead th { font-family: var(--font-head); font-size: .9rem; font-weight: 700; color: var(--grey-700); background: var(--silver); }
.compare tbody th { font-family: var(--font-head); font-weight: 600; color: var(--grey-700); width: 26%; }
.compare tr:last-child > * { border-bottom: 0; }
.awards { display: grid; gap: var(--s-4); align-items: center; }
@media (min-width: 900px) { .awards { grid-template-columns: 1fr 1fr; } }
.awards__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.awards__imgs .media { aspect-ratio: 1; box-shadow: var(--shadow-2); }
.duo { display: grid; gap: var(--s-3); }
@media (min-width: 800px) { .duo { grid-template-columns: 1fr 1fr; } }
.duo__tile { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 480px; padding: clamp(1.8rem, 1.4rem + 1.5vw, 2.8rem); border-radius: var(--r-4); overflow: hidden; color: #fff; text-decoration: none; isolation: isolate; box-shadow: var(--shadow-2); }
.duo__tile > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.4s var(--ease-out); }
.duo__tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(68,70,74,0) 35%, rgba(68,70,74,.82)); }
.duo__tile:hover { color: #fff; }
.duo__tile:hover > img { transform: scale(1.05); }
.duo__tile h3 { color: #fff; font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.7rem); margin: .3rem 0 .6rem; }
.duo__tile p { color: rgba(255,255,255,.9); max-width: 38ch; }
.duo__tile .eyebrow { color: #fff !important; }
.duo__tile .link-arrow { color: #fff; align-self: flex-start; }
.duo__tile--light { color: var(--grey-700); background: var(--marble-soft); }
.duo__tile--light::before { display: none; }
.duo__tile--light > img { object-fit: contain; padding: 2rem 2rem 10rem; }
.duo__tile--light h3 { color: var(--grey-700); }
.duo__tile--light p { color: var(--text-muted); }
.duo__tile--light .eyebrow { color: var(--grey-500) !important; }
.duo__tile--light .link-arrow, .duo__tile--light:hover { color: var(--grey-700); }

/* ========================= Prosa ========================= */
.prose { max-width: 70ch; }
.prose h2 { font-size: clamp(1.7rem, 1.4rem + 1.2vw, 2.3rem); margin-top: 2.3em; }
.prose h3 { margin-top: 1.8em; }
.prose h2:first-child, .prose h3:first-child { margin-top: 0; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .45em; }
.prose a { color: var(--grey-700); font-weight: 600; text-decoration-color: var(--grey-400); }
.prose--legal { font-size: .96rem; }
.prose--legal h2 { font-size: 1.5rem; margin-top: 2em; }
.prose--legal h3 { font-size: 1.15rem; }
.note { padding: 1.3rem 1.5rem; border-radius: var(--r-2); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200); font-size: .94rem; margin: 1.5rem 0; border-left: 4px solid var(--grey-400); }
.note--info { border-left-color: var(--grey-500); }
.summary-box { padding: 1.8rem; background: var(--marble-platinum); border-radius: var(--r-3); margin-bottom: 2.2rem; box-shadow: inset 0 0 0 1px rgba(255,255,255,.8); }
.summary-box h2 { font-size: 1.4rem; margin: 0 0 .6rem; }
.summary-box p { margin: 0; }
.toc { padding: 1.5rem 1.7rem; border-radius: var(--r-3); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200); margin-bottom: 2.6rem; }
.toc h2 { font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 .9rem; color: var(--grey-500); }
.toc ol { margin: 0; padding-left: 1.2em; display: grid; gap: .4rem; }
.toc a { text-decoration: none; font-weight: 600; }
.author { display: flex; align-items: center; gap: 1rem; font-size: .88rem; color: var(--text-muted); margin: 1.6rem 0 0; }
.author img { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; object-position: top; background: #fff; box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--platinum-300); }
.author strong { display: block; }
.article-layout { display: grid; gap: var(--s-5); }
@media (min-width: 1000px) { .article-layout { grid-template-columns: minmax(0, 1fr) 330px; align-items: start; } .article-aside { position: sticky; top: calc(var(--header-h) + 2rem); } }
.inline-cta { display: grid; gap: 1rem; padding: 1.8rem; background: var(--marble-platinum); border-radius: var(--r-3); margin: 2.6rem 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.8); }
.inline-cta h3, .inline-cta p { margin: 0; }

/* Städte */
.city-regions { columns: 1; column-gap: var(--s-5); }
@media (min-width: 700px) { .city-regions { columns: 2; } }
@media (min-width: 1100px) { .city-regions { columns: 3; } }
.city-region { break-inside: avoid; margin-bottom: var(--s-5); padding: 1.5rem; border-radius: var(--r-3); background: rgba(255,255,255,.8); box-shadow: 0 0 0 1px var(--platinum-200); }
.city-region h2 { font-size: 1.35rem; }
.city-region ul { list-style: none; padding: 0; margin: 0; }
.city-region a { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--line); text-decoration: none; font-weight: 600; transition: padding-left 300ms var(--ease-out); }
.city-region li:last-child a { border-bottom: 0; }
.city-region a:hover { padding-left: .4rem; }
.city-region a span { color: var(--text-muted); font-weight: 400; font-size: .82rem; white-space: nowrap; }
.nearby { display: flex; flex-wrap: wrap; gap: .55rem; }

.jewel-hero { position: relative; overflow: hidden; }
.sparkles { position: absolute; inset: 0; pointer-events: none; }
.sparkles span { position: absolute; width: 7px; height: 7px; background: #fff; border-radius: 50%; box-shadow: 0 0 14px 4px rgba(255,255,255,.95), 0 0 0 1px rgba(160,164,170,.3); opacity: 0; animation: twinkle 3.6s var(--ease) infinite; }
@keyframes twinkle { 0%, 100% { opacity: 0; transform: scale(.4); } 50% { opacity: 1; transform: scale(1); } }

/* ========================= Footer (schwebende Platin-Marmor-Box) ========================= */
.site-footer { position: relative; overflow: hidden; isolation: isolate; margin: var(--section-y) var(--frame) var(--frame); border-radius: var(--r-frame); padding: clamp(3.5rem, 2.5rem + 4vw, 6rem) 0 2rem; background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.85), var(--shadow-1); font-size: .94rem; }
.cta-band + .site-footer { margin-top: var(--frame); }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--grey-700); }
.footer-grid { position: relative; z-index: 1; display: grid; gap: var(--s-5); grid-template-columns: 1fr; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer-brand img { height: 72px; width: auto; margin-bottom: 1.3rem; }
.footer-brand p { color: var(--text-muted); max-width: 34ch; }
.site-footer h2 { font-family: var(--font-head); font-size: 1.1rem; font-weight: 700; letter-spacing: -.01em; color: var(--grey-700); margin: 0 0 1.1rem; }
.footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.footer-list a { display: inline-flex; align-items: center; min-height: 36px; gap: .55rem; color: var(--text); }
.footer-list .icon { width: 17px; height: 17px; color: var(--grey-500); }
.social { display: flex; gap: .55rem; margin-top: 1.4rem; }
.social a { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; color: var(--grey-700); background: var(--silver); border: 1px solid #c3c6ca; box-shadow: inset 0 1px 0 #fff; transition: transform var(--t-fast), box-shadow var(--t-fast); }
.social a:hover { transform: translateY(-3px); box-shadow: inset 0 1px 0 #fff, var(--shadow-1); }
.social .icon { width: 19px; height: 19px; }
.site-footer .hours th, .site-footer .hours td { font-size: .88rem; padding: .45rem 0; }
.footer-bottom { position: relative; z-index: 1; margin-top: var(--s-6); padding-top: var(--s-4); border-top: 1px solid var(--line); display: grid; gap: 1.2rem; font-size: .82rem; color: var(--text-muted); }
.footer-bottom__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1.4rem; list-style: none; margin: 0; padding: 0; }
.footer-legal a, .footer-legal button { color: var(--grey-600); background: none; border: 0; padding: 0; font-size: .84rem; font-weight: 600; line-height: 32px; }
.pay { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.pay span { padding: .25rem .65rem; border-radius: var(--r-pill); background: rgba(255,255,255,.75); box-shadow: 0 0 0 1px var(--line); font-size: .74rem; font-weight: 600; color: var(--grey-600); }
.footer-watermark { position: relative; z-index: 0; margin: var(--s-5) 0 -.12em; text-align: center; font-family: var(--font-accent); font-size: clamp(3.4rem, 1rem + 11vw, 13rem); line-height: .9; letter-spacing: -.01em; white-space: nowrap; background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(190,193,198,.55)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; pointer-events: none; -webkit-user-select: none; user-select: none; }

/* ==========================================================================
   v4 „Silver Avenue“ – Signatur-Elemente
   Inspiriert von der neuen 22nd-Avenue-Website (3D-Bühne, gekreuzte Bänder, Bento-Kacheln,
   Siegel mit Ringen, Riesen-Footer) und den German-Web-Awards-Top-Projekten
   (SIXT/Silberpuls: klarer Buchungsfluss · Junglück/Hyghstreet: interaktiver Finder & gebogenes Karussell ·
   REWE/Friendventure: echte Menschen, transparente Preise) – umgesetzt in Marmor · Silber · Weiß · Grau.
   ========================================================================== */

/* ---------- Scroll-Fortschritt (Silberlinie unter dem Header) ---------- */
.scroll-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--silver-ink); transform-origin: left; transform: scaleX(var(--progress, 0)); pointer-events: none; }

/* ---------- Eyebrow-Pill mit Badge ---------- */
.eyebrow-pill { display: inline-flex; align-items: center; gap: .7rem; padding: .4rem .9rem .4rem .4rem; border-radius: var(--r-pill); background: rgba(255,255,255,.75); box-shadow: 0 0 0 1px var(--line), var(--shadow-1); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--grey-700); text-decoration: none; transition: box-shadow var(--t-fast), transform var(--t-fast); }
.eyebrow-pill:hover { color: var(--grey-700); box-shadow: 0 0 0 1px var(--grey-400), var(--shadow-2); transform: translateY(-1px); }
.eyebrow-pill .icon { width: 16px; height: 16px; }
.badge { display: inline-flex; align-items: center; padding: .25rem .6rem; border-radius: var(--r-pill); background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1; font-family: var(--font-head); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--grey-700); }
.badge--red { background: var(--accent); color: #fff; box-shadow: none; }

/* ---------- Hero v4 ---------- */
.hero2 { position: relative; overflow: hidden; isolation: isolate; padding: clamp(2.5rem, 1.5rem + 4vw, 6rem) 0 clamp(3.5rem, 2rem + 5vw, 7rem); }
.hero2::before { /* Silberlicht wie ein Studio-Spot */
  content: ""; position: absolute; z-index: -2; width: 1100px; height: 1100px; right: -340px; top: -420px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.98) 0%, rgba(236,238,240,.7) 35%, rgba(220,222,226,0) 65%); pointer-events: none;
}
.hero2__spot { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(520px circle at var(--mx, 70%) var(--my, 30%), rgba(255,255,255,.75), rgba(255,255,255,0) 60%); transition: background .2s linear; }
.hero2__lines { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero2__lines span { position: absolute; left: 0; right: 0; height: 0; border-top: 1px dashed rgba(109,110,113,.22); }
.hero2__lines span:nth-child(1) { top: 14%; } .hero2__lines span:nth-child(2) { bottom: 12%; }
.hero2__lines i { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px dashed rgba(109,110,113,.16); }
.hero2__lines i:nth-of-type(1) { left: 6%; } .hero2__lines i:nth-of-type(2) { right: 6%; }
.hero2__grid { display: grid; gap: clamp(2.5rem, 2rem + 3vw, 4.5rem); align-items: center; }
@media (min-width: 1080px) { .hero2__grid { grid-template-columns: 1.02fr .98fr; } }
.hero2__title { font-size: clamp(2.9rem, 1.4rem + 5.4vw, 6.2rem); line-height: .96; letter-spacing: -.045em; font-weight: 600; margin: 1.4rem 0 1.5rem; }
.hero2__title em { padding-right: .18em; font-size: 1.06em; letter-spacing: -.02em; }
.hero2 .line { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.hero2 .line > span { display: inline-block; animation: lineUp 1.1s var(--ease-out) both; }
.hero2 .line:nth-child(2) > span { animation-delay: .09s; }
.hero2 .line:nth-child(3) > span { animation-delay: .18s; }
@keyframes lineUp { from { transform: translateY(108%); } to { transform: none; } }
.fade-up { animation: fadeUp 1.1s var(--ease-out) .3s both; }
.fade-up-2 { animation: fadeUp 1.1s var(--ease-out) .45s both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.hero2__lead { font-size: var(--fs-lead); color: var(--text-muted); max-width: 36em; margin: 0; }
.hero2 .actions { margin-top: 2.2rem; }
.hero2__trust { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.8rem; margin-top: 2.4rem; }
.hero2__seal { display: block; width: 104px; flex: none; transition: transform .6s var(--ease-out); }
.hero2__seal img { width: 100%; height: auto; filter: drop-shadow(0 12px 18px rgba(68,70,74,.22)); }
.hero2__seal:hover { transform: rotate(-6deg) scale(1.04); }
.hero2__facts { list-style: none; margin: 0; padding: 0 0 0 1.6rem; border-left: 1px solid var(--line-strong); display: grid; gap: .4rem; font-family: var(--font-head); font-weight: 600; font-size: .98rem; color: var(--grey-700); }
.hero2__facts li { display: flex; align-items: center; gap: .6rem; }
.hero2__facts .icon { width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px #c3c6ca; }
.hero2__facts .stars svg { width: 14px; height: 14px; }

/* 3D-Bühne */
.stage { position: relative; width: 100%; max-width: 640px; margin-inline: auto; aspect-ratio: 1 / .9; perspective: 1600px; animation: fadeUp 1.4s var(--ease-out) .2s backwards; }
.stage .st { position: absolute; margin: 0; }
.stage .st-1 { left: 0; top: 2%; width: 74%; z-index: 2; transform: rotateY(13deg) rotateX(4deg) rotateZ(-2deg); }
.stage .st-2 { right: 0; top: 30%; width: 52%; z-index: 3; transform: rotateY(-12deg) rotateX(3deg) rotateZ(3deg); }
.stage .st-3 { left: 30%; bottom: -2%; width: 24%; z-index: 4; transform: rotateZ(-4deg); }
.float-a { animation: floatA 9s ease-in-out infinite; }
.float-b { animation: floatB 11s ease-in-out infinite; }
.float-c { animation: floatC 8s ease-in-out infinite; }
@keyframes floatA { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }
@keyframes floatB { 0%, 100% { translate: 0 0; } 50% { translate: 0 10px; } }
@keyframes floatC { 0%, 100% { translate: 0 0; } 50% { translate: 0 -16px; } }
.frame { position: relative; padding: 8px; border-radius: 24px; background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(232,233,235,.85)); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 2px #d3d5d9, 0 40px 80px -30px rgba(68,70,74,.45); }
.frame img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 17px; }
.frame--square img { aspect-ratio: 1; }
.frame__cap { position: absolute; left: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .8rem; border-radius: var(--r-pill); background: rgba(255,255,255,.92); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .8rem; font-weight: 700; color: var(--grey-700); }
.frame__tag { position: absolute; top: 18px; padding: .3rem .65rem; border-radius: var(--r-pill); font-family: var(--font-head); font-size: .7rem; font-weight: 700; }
.frame__tag--l { left: 18px; background: rgba(255,255,255,.92); color: var(--grey-700); }
.frame__tag--r { right: 18px; background: var(--silver); color: var(--grey-700); box-shadow: 0 0 0 1px #c3c6ca; }
.phone { position: relative; padding: 7px; border-radius: 30px; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b4b8be, 0 40px 70px -26px rgba(68,70,74,.55); }
.phone::before { content: ""; position: absolute; top: 13px; left: 50%; translate: -50% 0; width: 30%; height: 11px; border-radius: 99px; background: #4a4c50; z-index: 2; }
.phone video, .phone img { width: 100%; aspect-ratio: 9 / 18; object-fit: cover; object-position: 66% center; border-radius: 24px; background: var(--platinum-200); }
.stage-label { position: absolute; z-index: 5; display: inline-flex; align-items: center; gap: .55rem; padding: .6rem .95rem; border-radius: var(--r-pill); background: rgba(255,255,255,.9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 0 0 1px rgba(255,255,255,.9), var(--shadow-2); font-family: var(--font-head); font-size: .86rem; font-weight: 700; color: var(--grey-700); white-space: nowrap; }
.stage-label--a { left: -2%; bottom: 20%; }
.stage-label--b { right: 0; top: 0; }
.stage-label .stars svg { width: 13px; height: 13px; }
.dot { width: 9px; height: 9px; border-radius: 50%; background: #3fbf7f; box-shadow: 0 0 0 4px rgba(63,191,127,.2); flex: none; }
.dot--closed { background: var(--grey-400); box-shadow: 0 0 0 4px rgba(154,157,162,.2); }
@media (max-width: 640px) { .stage { aspect-ratio: 1 / 1.02; } .stage-label--b { display: none; } .stage-label--a { left: 0; bottom: 8%; } }

/* ---------- Gekreuzte Bänder ---------- */
.tapes { position: relative; overflow: hidden; padding: clamp(1.8rem, 1rem + 3vw, 3.6rem) 0; }
.tape { position: relative; display: flex; width: max-content; padding: 1rem 0; font-family: var(--font-head); font-weight: 700; font-size: clamp(1.05rem, .85rem + 1vw, 1.8rem); letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
.tape::before { content: ""; position: absolute; inset: 5px 0; border-block: 1px solid var(--tape-line); pointer-events: none; }
.tape--silver { --tape-line: rgba(255,255,255,.95); background: var(--silver); background-size: 300% 100%; color: var(--grey-700); transform: rotate(-1.6deg); margin: 0 -40px; z-index: 1; box-shadow: 0 16px 34px -18px rgba(68,70,74,.5), inset 0 1px 0 #fff; animation: silver-drift 12s ease-in-out infinite alternate; }
.tape--graphite { --tape-line: rgba(255,255,255,.35); background: linear-gradient(180deg, #6a6c70, var(--grey-600)); color: #fff; transform: rotate(1.6deg); margin: 14px -40px 0; }
.tape__track { display: flex; animation: marquee 46s linear infinite; }
.tape--graphite .tape__track { animation-direction: reverse; animation-duration: 58s; }
.tape__group { display: flex; align-items: center; flex: none; }
.tape__group span { display: inline-flex; align-items: center; gap: 1.6rem; padding: 0 1.6rem; }
.tape__group span::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; opacity: .55; }
.tape--graphite .tape__group span::after { background: var(--silver); opacity: 1; }
.tapes:hover .tape__track { animation-play-state: paused; }
.tape__group em { font-family: var(--font-accent); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 1.15em; }

/* ---------- Bento-Kacheln ---------- */
.tiles { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
@media (min-width: 1000px) { .tiles { grid-template-columns: repeat(6, 1fr); } .tiles > .tile { grid-column: span 2; } .tiles > .tile--lg { grid-column: span 3; } }
.tile { position: relative; display: flex; flex-direction: column; min-height: 290px; padding: clamp(1.4rem, 1.1rem + 1vw, 2rem); border-radius: var(--r-4); background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); text-decoration: none; color: var(--text); overflow: hidden; isolation: isolate; transition: transform .6s var(--ease-out), box-shadow .6s var(--ease); }
.tile:hover { color: var(--text); transform: translateY(-6px); box-shadow: 0 0 0 1px #c3c6ca, var(--shadow-silver); }
.tile__ico { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; background: var(--platinum-50); box-shadow: 0 0 0 1px var(--platinum-200); color: var(--grey-600); margin-bottom: auto; transition: background .4s, transform .6s var(--ease-out), box-shadow .4s; }
.tile__ico .icon { width: 26px; height: 26px; }
.tile:hover .tile__ico { background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1; transform: rotate(-8deg); color: var(--grey-700); }
.tile h3 { margin: 1.8rem 0 .45rem; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.tile p { margin: 0 0 1.2rem; color: var(--text-muted); font-size: .97rem; max-width: 34ch; position: relative; z-index: 1; }
.tile__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-family: var(--font-head); font-weight: 700; position: relative; z-index: 1; }
.tile__price { color: var(--grey-600); }
.tile__go { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; box-shadow: 0 0 0 1px var(--line-strong); background: rgba(255,255,255,.7); transition: background .4s, transform .6s var(--ease-out), box-shadow .4s; }
.tile:hover .tile__go { background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1; transform: rotate(-45deg); }
.tile__art { position: absolute; right: -26px; bottom: -30px; width: 46%; z-index: 0; pointer-events: none; transition: transform .8s var(--ease-out); }
.tile__art img { width: 100%; height: auto; border-radius: 18px; box-shadow: var(--shadow-2); }
.tile:hover .tile__art { transform: translate(-6px, -8px) rotate(-2deg); }
.tile__art--phone { width: 22%; right: 26px; bottom: -80px; transform: rotate(6deg); }
.tile__art--gem { width: 40%; right: -10px; bottom: -14px; }
.tile__art--gem svg { width: 100%; height: auto; }
.tile--silver { background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.85), var(--shadow-1); }
.tile--silver .tile__ico { background: #fff; }
.tile--graphite { background: linear-gradient(160deg, #7a7c80, var(--grey-600)); color: #fff; box-shadow: var(--shadow-2); }
.tile--graphite:hover { color: #fff; }
.tile--graphite h3 { color: #fff; }
.tile--graphite p { color: rgba(255,255,255,.85); }
.tile--graphite .tile__price { color: #fff; }
.tile--graphite .tile__ico { background: rgba(255,255,255,.14); box-shadow: 0 0 0 1px rgba(255,255,255,.25); color: #fff; }
.tile--graphite .tile__go { background: rgba(255,255,255,.12); box-shadow: 0 0 0 1px rgba(255,255,255,.35); color: #fff; }
.tile--graphite:hover .tile__go { color: var(--grey-700); }
@media (max-width: 999px) { .tile__art { width: 38%; } .tile__art--phone { width: 20%; } }

/* ---------- Lächeln-Finder ---------- */
.finder { position: relative; margin-inline: var(--frame); border-radius: var(--r-frame); background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.85), var(--shadow-1); overflow: hidden; }
.finder__grid { display: grid; gap: clamp(2rem, 1.5rem + 3vw, 4.5rem); align-items: center; }
@media (min-width: 1000px) { .finder__grid { grid-template-columns: 1.1fr .9fr; } }
.finder__panel { padding: clamp(1.4rem, 1rem + 1.5vw, 2.4rem); border-radius: var(--r-4); background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px rgba(255,255,255,.9), var(--shadow-2); }
.finder__step { border: 0; padding: 0; margin: 0 0 1.8rem; }
.finder__step legend { display: flex; align-items: center; gap: .7rem; margin-bottom: 1rem; font-family: var(--font-head); font-size: 1.12rem; font-weight: 700; color: var(--grey-700); }
.finder__num { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1; font-size: .8rem; }
.shades { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 4px; padding: 6px; border-radius: 16px; background: var(--platinum-50); box-shadow: inset 0 0 0 1px var(--platinum-200); }
.shade { position: relative; }
.shade input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.shade span { display: block; height: 58px; border-radius: 9px; background: var(--c); box-shadow: inset 0 -10px 18px -10px rgba(120,100,60,.25), inset 0 1px 0 rgba(255,255,255,.8); transition: transform .3s var(--ease-out), box-shadow .3s; }
.shade:hover span { transform: translateY(-3px); }
.shade input:checked + span { transform: translateY(-6px); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--grey-600), 0 10px 18px -8px rgba(68,70,74,.5); }
.shade input:focus-visible + span { outline: 2px solid var(--grey-700); outline-offset: 3px; }
.shade.is-target span { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #b9bcc1, 0 0 22px rgba(255,255,255,.9); transform: translateY(-6px); }
.shade.is-path span::after { content: ""; position: absolute; left: 50%; bottom: -12px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--grey-400); }
.shades__legend { display: flex; justify-content: space-between; margin-top: .6rem; font-size: .78rem; color: var(--text-muted); }
@media (max-width: 560px) { .shades { grid-template-columns: repeat(8, minmax(0, 1fr)); } .shade span { height: 46px; } }
.pkg-pick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.pkg-pick label { position: relative; display: grid; gap: .1rem; padding: .9rem 1rem; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); cursor: pointer; transition: box-shadow .3s, transform .3s var(--ease-out); }
.pkg-pick label:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--grey-400), var(--shadow-1); }
.pkg-pick input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pkg-pick strong { font-family: var(--font-head); font-size: 1.1rem; }
.pkg-pick small { color: var(--text-muted); font-size: .8rem; }
.pkg-pick label:has(input:checked) { background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b4b8be, var(--shadow-1); }
.pkg-pick label:has(input:focus-visible) { outline: 2px solid var(--grey-700); outline-offset: 3px; }
.finder__result { display: grid; gap: 1.1rem; justify-items: center; text-align: center; }
.tooth { width: min(240px, 60%); filter: drop-shadow(0 26px 34px rgba(68,70,74,.28)); }
.tooth path { transition: fill 1.4s var(--ease-out); }
.tooth__shine { animation: tooth-shine 3.6s ease-in-out infinite; transform-origin: center; }
@keyframes tooth-shine { 0%, 100% { opacity: .35; } 50% { opacity: .9; } }
.finder__out { font-family: var(--font-head); font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); font-weight: 600; color: var(--grey-700); line-height: 1.25; letter-spacing: -.02em; max-width: 22ch; }
.finder__out em { font-family: var(--font-accent); font-style: italic; font-weight: 400; }
.finder__note { font-size: .82rem; color: var(--text-muted); max-width: 44ch; margin: 0; }

/* ---------- Scroll-Vorher/Nachher ---------- */
.smile-scroll { position: relative; height: 230vh; }
.smile-scroll__sticky { position: sticky; top: calc(var(--header-h) + 10px); min-height: calc(100vh - var(--header-h) - 20px); display: flex; align-items: center; }
.smile-scroll__sticky > .container { width: 100%; }
.smile-scroll .ba { aspect-ratio: 16 / 9; }
@media (min-width: 900px) { .smile-scroll .ba { aspect-ratio: 1024 / 400; } }
.smile-scroll__meter { display: flex; align-items: center; gap: 1rem; margin-top: 1.2rem; font-family: var(--font-head); font-weight: 700; color: var(--grey-600); font-size: .9rem; }
.smile-scroll__bar { flex: 1; height: 4px; border-radius: 4px; background: var(--platinum-200); overflow: hidden; }
.smile-scroll__bar i { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: var(--silver-ink); border-radius: inherit; }
.smile-scroll.is-static { height: auto; }
.smile-scroll.is-static .smile-scroll__sticky { position: static; min-height: 0; padding-block: var(--section-y); }

/* ---------- Preiskarten: 3D-Neigung + Lichtreflex ---------- */
.price-card { --lift: 0px; --rx: 0deg; --ry: 0deg; transform: perspective(1100px) translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; }
.price-card:hover, .price-card:focus-within { --lift: -8px; transform: perspective(1100px) translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry)); }
@media (min-width: 760px) { .price-card--featured { --lift: -14px; transform: perspective(1100px) translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry)); } .price-card--featured:hover, .price-card--featured:focus-within { --lift: -22px; transform: perspective(1100px) translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry)); } }
.price-card.is-tilting { transition: transform .12s linear, box-shadow .6s var(--ease); }
.price-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 1; opacity: 0; transition: opacity .4s; background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 0%), rgba(255,255,255,.75), rgba(255,255,255,0) 55%); mix-blend-mode: soft-light; }
.price-card:hover::after { opacity: 1; }

/* ---------- Garantie mit Siegel & Ringen ---------- */
.award { position: relative; text-align: center; overflow: hidden; }
.award__ring { position: absolute; inset: 50% auto auto 50%; width: min(1100px, 140vw); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; border: 1px dashed var(--line-strong); pointer-events: none; animation: ring-turn 120s linear infinite; }
.award__ring::after { content: ""; position: absolute; inset: 15%; border-radius: 50%; border: 1px solid var(--line); }
@keyframes ring-turn { to { rotate: 360deg; } }
.award__seal { position: relative; width: clamp(190px, 18vw, 260px); margin: 0 auto 2.2rem; transform: rotate(-7deg); transition: transform .9s var(--ease-out); filter: drop-shadow(0 34px 40px rgba(68,70,74,.25)); }
.award__seal:hover { transform: rotate(0) scale(1.04); }
.award h2 { max-width: 15ch; margin-inline: auto; }
.award p { max-width: 58ch; margin-inline: auto; color: var(--text-muted); }

/* ---------- Kennzahlen-Raster ---------- */
.numgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: 1px solid var(--line-strong); }
@media (min-width: 900px) { .numgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.numgrid > div { padding: clamp(1.4rem, 1rem + 1.5vw, 2.4rem) clamp(1rem, .6rem + 1vw, 1.6rem); }
.numgrid > div + div { border-left: 1px solid var(--line); }
@media (max-width: 899px) { .numgrid > div:nth-child(3) { border-left: 0; } .numgrid > div:nth-child(n+3) { border-top: 1px solid var(--line); } }
.numgrid__val { display: block; font-family: var(--font-head); font-weight: 600; font-size: clamp(3rem, 2rem + 3.6vw, 5.4rem); line-height: 1; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.numgrid__val sup { font-size: .45em; vertical-align: top; }
.numgrid__label { display: block; margin-top: .6rem; color: var(--text-muted); font-size: .95rem; }
.whys { display: grid; gap: 1.6rem; grid-template-columns: 1fr; margin-top: clamp(2rem, 1.5rem + 2vw, 3rem); }
@media (min-width: 700px) { .whys { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .whys { grid-template-columns: repeat(4, 1fr); } }
.why { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: start; }
.why .icon { width: 46px; height: 46px; padding: 11px; border-radius: 14px; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; color: var(--grey-700); }
.why h3 { font-size: 1.08rem; margin: .1rem 0 .25rem; }
.why p { margin: 0; color: var(--text-muted); font-size: .92rem; }

/* ---------- Ablauf-Karten ---------- */
.flow { position: relative; display: grid; gap: 1rem; grid-template-columns: 1fr; counter-reset: flow; }
@media (min-width: 700px) { .flow { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .flow { grid-template-columns: repeat(4, 1fr); } .flow::before { content: ""; position: absolute; left: 6%; right: 6%; top: 74px; border-top: 1px dashed var(--grey-400); z-index: 0; } }
.flow__card { position: relative; z-index: 1; display: flex; flex-direction: column; border-radius: var(--r-4); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); overflow: hidden; transition: transform .6s var(--ease-out), box-shadow .6s; }
.flow__card:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px #c3c6ca, var(--shadow-2); }
.flow__head { display: flex; justify-content: space-between; align-items: center; padding: 1.4rem 1.4rem .6rem; }
.flow__num { font-family: var(--font-head); font-weight: 600; font-size: 3rem; line-height: 1; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.flow__thumb { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 3px #fff, 0 0 0 4px #c3c6ca; flex: none; }
.flow__thumb img { width: 100%; height: 100%; object-fit: cover; }
.flow__body { padding: 0 1.4rem 1.6rem; }
.flow__body h3 { margin: .3rem 0 .4rem; }
.flow__body p { margin: 0; color: var(--text-muted); font-size: .95rem; }

/* ---------- Gebogenes Video-Karussell ---------- */
.carousel--curved .carousel__track { perspective: 1400px; padding-block: 24px 30px; }
.carousel--curved .vt { transition: transform .5s var(--ease-out), opacity .5s; transform: rotateY(var(--rot, 0deg)) scale(var(--sc, 1)); opacity: var(--op, 1); }

/* ---------- Riesen-Footer-Schrift ---------- */
.footer-giant { position: relative; z-index: 1; margin: clamp(2.5rem, 2rem + 3vw, 4.5rem) 0 0; padding: 0 var(--gutter); font-family: var(--font-head); font-weight: 600; font-size: clamp(3.2rem, 1rem + 10.5vw, 12.5rem); line-height: .9; letter-spacing: -.06em; white-space: nowrap; text-align: center; color: transparent; -webkit-text-stroke: 1.5px #b4b8be; -webkit-user-select: none; user-select: none; }
.footer-giant em { font-family: var(--font-accent); font-style: italic; font-weight: 400; letter-spacing: -.02em; -webkit-text-stroke: 0; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-right: .06em; }
.footer-watermark { display: none; }

/* Live-Öffnungsstatus allgemein */
.open-status { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-head); font-weight: 700; color: var(--grey-700); }

@media (prefers-reduced-motion: reduce) {
  .hero2 .line > span, .fade-up, .fade-up-2, .stage, .float-a, .float-b, .float-c, .tape__track, .award__ring { animation: none !important; }
  .price-card { --rx: 0deg !important; --ry: 0deg !important; }
}
/* Feinschliff Kacheln & Bänder */
.tile__art { right: -22px; top: 18%; bottom: auto; width: 40%; }
.tile__art--phone { top: auto; bottom: -80px; }
.tile__art--gem { top: auto; bottom: -14px; }
.tile__go { position: relative; z-index: 2; }
@media (max-width: 999px) { .tile__art { display: none; } }
.tape--graphite { margin-top: 26px; }

/* ==========================================================================
   v5 „Academy-Look“ (07.10.2026): Bausteine aus dem Academy-Redesign
   (Topbar, Porträt-Hero, Countdown, Bento-Galerie) + Öffnungszeiten-Leiste im Footer
   ========================================================================== */

/* ---------- Topbar (Desktop) ---------- */
.topbar { display: none; position: relative; z-index: 51; background: var(--silver-edge); border-bottom: 1px solid var(--platinum-300); font-family: var(--font-head); font-size: .82rem; font-weight: 500; color: var(--grey-600); }
@media (min-width: 900px) {
  .topbar { display: block; }
  .promo { display: none; }
}
.topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; min-height: 40px; }
.topbar a { display: inline-flex; align-items: center; gap: .5rem; min-height: 32px; text-decoration: none; color: var(--grey-600); }
.topbar a:hover { color: var(--grey-700); }
.topbar__news { min-width: 0; }
.topbar__news span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar__links { display: flex; align-items: center; gap: 1.3rem; flex: none; }
.topbar__links .icon { width: 15px; height: 15px; }
.topbar__status { display: inline-flex; align-items: center; gap: .5rem; color: var(--grey-700); font-weight: 600; }
.topbar__status .dot { width: 7px; height: 7px; box-shadow: 0 0 0 3px rgba(63,191,127,.18); }
.topbar__social { display: inline-flex; gap: .1rem; padding-left: 1.1rem; border-left: 1px solid var(--line-strong); }
.topbar__social a { width: 30px; justify-content: center; }
@media (max-width: 1240px) { .topbar__links a[href^="mailto"] { display: none; } }
@media (max-width: 1020px) { .topbar__status { display: none; } }
.live-dot { position: relative; width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--accent); }
.live-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--accent); opacity: 0; animation: live 2s ease-out infinite; }
@keyframes live { 0% { transform: scale(.5); opacity: .7; } 100% { transform: scale(1.6); opacity: 0; } }

/* ---------- Header: größeres Logo, Telefon steht in der Topbar ---------- */
.brand img { height: 58px; }
@media (max-width: 899px) { .brand img { height: 46px; } }
.header-phone { display: none !important; }
.header-actions .btn--sm { white-space: nowrap; }

/* ---------- Hero mit Porträt im Silberring ---------- */
.hero-ac { padding-top: clamp(1.6rem, 1rem + 2.4vw, 3.6rem); }
.hero-ac .hero2__title { font-size: clamp(2.8rem, 1.2rem + 4.8vw, 5.4rem); margin: 1.1rem 0 1rem; }
.hero-ac .hero2__title em { display: inline-block; font-size: .92em; }
.hero-ac .hero2__trust { margin-top: 1.8rem; }

.hero-portrait { position: relative; width: min(100%, 560px); margin-inline: auto; aspect-ratio: 1 / 1.04; display: grid; place-items: end center; }
.hero-portrait__ring { position: absolute; inset: 6% 4% 2%; border-radius: 50%; border: 1px dashed var(--line-strong); animation: ring-turn 120s linear infinite; }
.hero-portrait__ring::before { content: ""; position: absolute; inset: 7%; border-radius: 50%; background: var(--silver); opacity: .55; box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 40px 90px -40px rgba(68,70,74,.45); }
@keyframes ring-turn { to { transform: rotate(360deg); } }
.hero-portrait__img { position: relative; z-index: 1; width: 90%; height: auto; filter: drop-shadow(0 30px 40px rgba(68,70,74,.22)); animation: fadeUp 1.2s var(--ease-out) .15s both; }
.hero-portrait .stage-label { z-index: 3; }
.hero-portrait .stage-label > .icon { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px #c3c6ca; }
.hero-portrait .stage-label--a { left: -2%; top: 52%; bottom: auto; }
.hero-portrait .stage-label--b { right: -2%; top: 16%; }
.hero-portrait .stage-label--c { right: 2%; bottom: 7%; }
.hero-portrait__phone { position: absolute; z-index: 2; left: 2%; bottom: 3%; width: 23%; }
.hero-portrait__phone .phone { transform: rotate(-6deg); }
@media (max-width: 1079px) { .hero-ac .hero2__grid > .hero-portrait { max-width: 460px; } }
@media (max-width: 640px) {
  .hero-portrait .stage-label--a { left: 0; top: auto; bottom: 26%; }
  .hero-portrait .stage-label--b { display: inline-flex; right: 0; top: 4%; }
  .hero-portrait .stage-label--c { right: 0; bottom: 4%; }
  .hero-portrait__phone { display: none; }
}

/* ---------- Countdown (Silber-Kacheln) ---------- */
.countdown { margin-top: 1.8rem; padding: 1.1rem 1.2rem 1.15rem; border-radius: var(--r-4); background: rgba(255,255,255,.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 2px var(--platinum-200), var(--shadow-1); max-width: 560px; animation: fadeUp 1.1s var(--ease-out) .4s both; }
.countdown[hidden] { display: none; }
.countdown__label { display: flex; align-items: center; gap: .65rem; margin: 0 0 .8rem; font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--grey-500); }
.countdown__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.cd { position: relative; display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .85rem .3rem .7rem; border-radius: 18px; background: var(--silver); background-size: 220% 100%; box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.15), 0 0 0 1px #c3c6ca, 0 14px 26px -16px rgba(68,70,74,.5); overflow: hidden; animation: silver-drift 12s ease-in-out infinite alternate; }
.cd::after { content: ""; position: absolute; left: 8%; right: 8%; top: 50%; height: 1px; background: rgba(109,110,113,.16); }
.cd__num { position: relative; z-index: 1; font-family: var(--font-head); font-weight: 600; font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.9rem); line-height: 1; letter-spacing: -.04em; font-variant-numeric: tabular-nums; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--grey-600); padding-right: .1em; margin-right: -.1em; }
.cd__num.tick { animation: cd-tick .45s var(--ease-out); }
@keyframes cd-tick { 0% { transform: translateY(-35%); opacity: .2; } 100% { transform: none; opacity: 1; } }
.cd__unit { position: relative; z-index: 1; font-family: var(--font-head); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grey-600); }
.countdown__date { margin: .85rem 0 0; font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--grey-700); }
@media (max-width: 420px) { .cd__unit { font-size: .58rem; letter-spacing: .04em; } .countdown { padding: .9rem; } }

/* ---------- Galerie als lückenloses Bento ---------- */
.gallery-bento { display: grid; gap: clamp(.6rem, .4rem + .6vw, 1rem); grid-template-columns: 1fr 1fr; grid-template-rows: 190px 190px 220px 240px; grid-template-areas: "a c" "a e" "b b" "d d"; }
@media (min-width: 900px) {
  .gallery-bento { grid-template-columns: 1fr 1.15fr 1.15fr 1fr; grid-template-rows: repeat(2, clamp(220px, 9rem + 9vw, 320px)); grid-template-areas: "a b b d" "a c e d"; }
}
.gb { position: relative; margin: 0; border-radius: var(--r-3); overflow: hidden; background: var(--platinum-100); box-shadow: var(--shadow-1); isolation: isolate; }
.gb--a { grid-area: a; } .gb--b { grid-area: b; } .gb--c { grid-area: c; } .gb--d { grid-area: d; } .gb--e { grid-area: e; }
.gb button { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.gb img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.gb:hover img { transform: scale(1.05); }
.gb figcaption { position: absolute; left: .8rem; bottom: .8rem; z-index: 2; display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .8rem; border-radius: var(--r-pill); background: rgba(255,255,255,.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .78rem; font-weight: 700; color: var(--grey-700); pointer-events: none; transition: transform .5s var(--ease-out); }
.gb figcaption::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--red, var(--accent)); }
.gb:hover figcaption { transform: translateY(-3px); }

/* ---------- Footer: größeres Logo ---------- */
.footer-brand img { height: 84px; }

/* ---------- Öffnungszeiten-Leiste im Footer ---------- */
.hrs { position: relative; z-index: 1; display: grid; gap: 18px; align-items: center; margin-top: var(--s-6); padding: 18px 20px; border-radius: var(--r-4); background: linear-gradient(115deg, rgba(255,255,255,.88) 62%, rgba(200,16,46,.06)); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.hrs__status { display: flex; align-items: center; gap: 12px; min-width: 0; }
.hrs__status strong { display: block; font-family: var(--font-head); font-size: 1.05rem; font-weight: 700; color: var(--grey-700); }
.hrs__status small { display: block; font-size: .84rem; color: var(--text-muted); }
.hrs__dot { position: relative; width: 12px; height: 12px; flex: none; border-radius: 50%; background: var(--grey-400); }
.hrs.is-open .hrs__dot { background: #3fbf7f; }
.hrs.is-open .hrs__dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid #3fbf7f; opacity: .5; animation: live 2.2s ease-out infinite; }
.hrs__days { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.day { display: grid; justify-items: center; gap: 2px; padding: 9px 4px 8px; border-radius: 14px; background: var(--silver); background-size: 220% 100%; box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #d3d5d8; border-top: 2px solid transparent; text-align: center; }
.day__d { font-family: var(--font-head); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--grey-500); }
.day__d abbr { text-decoration: none; }
.day__t { font-family: var(--font-head); font-size: .86rem; font-weight: 650; color: var(--grey-700); font-variant-numeric: tabular-nums; line-height: 1.25; }
.day__t i { display: block; height: 0; overflow: hidden; }
.day--closed { background: rgba(255,255,255,.6); }
.day--closed .day__t { color: var(--grey-500); font-weight: 500; font-size: .76rem; }
.day.is-today { background: #fff; border-top-color: var(--accent); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px rgba(200,16,46,.28), 0 10px 22px -14px rgba(200,16,46,.55); }
.day.is-today .day__d { color: var(--accent); }
.hrs__hot { display: flex; align-items: center; gap: 10px; justify-self: start; padding: 10px 16px; border-radius: var(--r-pill); background: var(--red-grad, var(--accent)); color: #fff !important; text-decoration: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 12px 26px -14px rgba(200,16,46,.65); transition: transform var(--t-fast), box-shadow var(--t-fast); }
.hrs__hot:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 16px 30px -14px rgba(200,16,46,.7); }
.hrs__hot .icon { width: 20px; height: 20px; }
.hrs__hot small { display: block; font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .9; }
.hrs__hot strong { display: block; font-family: var(--font-head); font-size: .95rem; line-height: 1.2; color: #fff; }
@media (max-width: 560px) {
  .day { padding: 8px 2px 7px; border-radius: 11px; }
  .day__t { font-size: .7rem; }
  .day--closed .day__t { font-size: .6rem; }
}
@media (min-width: 1100px) { .hrs { grid-template-columns: minmax(230px, auto) 1fr auto; gap: 24px; padding: 14px 16px 14px 22px; } .hrs__hot { justify-self: end; } }

@media (prefers-reduced-motion: reduce) {
  .hero-portrait__ring, .live-dot::after, .hrs.is-open .hrs__dot::after, .cd, .hero-portrait__img, .countdown { animation: none !important; }
}

/* ==========================================================================
   Akzent Rot (wie Academy-Redesign, 07.10.2026): CI-Rot dezent einsetzen.
   Silber, Marmor, Weiß und Grau bleiben die Basis.
   ========================================================================== */
:root {
  --red: #c8102e;
  --red-deep: #9f0d25;
  --red-light: #e23a55;
  --red-soft: rgba(200,16,46,.08);
  --red-line: rgba(200,16,46,.28);
  --red-grad: linear-gradient(135deg, #e0294a 0%, #c8102e 45%, #a20d26 100%);
}

/* Primär-Buttons („Termin buchen“): Rot mit Glanz */
.btn--primary {
  --btn-fg: #fff;
  background: var(--red-grad); background-size: 160% 100%; background-position: 0% 50%;
  border-color: var(--red-deep); text-shadow: 0 1px 0 rgba(120,0,20,.35);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 12px 28px -14px rgba(200,16,46,.65);
}
.btn--primary:hover { --btn-fg: #fff; background-position: 100% 50%; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 18px 36px -14px rgba(200,16,46,.7); }
.btn--primary::after { opacity: .45; }

/* Kleine Akzente: Eyebrow-Punkt, Scroll-Fortschritt, Menü-Unterstrich, Badges */
.eyebrow::before { background: var(--red-grad); box-shadow: 0 0 0 3px var(--red-soft); width: 8px; height: 8px; }
.page-hero--image .eyebrow::before { box-shadow: none; }
.scroll-progress { background: var(--red-grad); }
.nav__link::after { background: var(--red-grad); }
.badge, .badge--red { background: var(--red-grad); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.3); }

/* Häkchen in Listen */
.checklist .icon { color: var(--red); }

/* Bänder: das zweite Band in CI-Rot */
.tape--graphite { --tape-line: rgba(255,255,255,.3); background: var(--red-grad); color: #fff; box-shadow: 0 16px 34px -18px rgba(200,16,46,.6); }
.tape--graphite .tape__group span::after { background: #fff; opacity: .75; }

/* Hero: zarter Rosé-Schimmer hinter dem Porträt */
.hero-portrait::before { content: ""; position: absolute; inset: 14% 10% 6%; border-radius: 50%; background: radial-gradient(circle at 50% 40%, rgba(200,16,46,.10), rgba(200,16,46,0) 65%); filter: blur(10px); z-index: 0; }
.hero-portrait__ring { border-color: var(--red-line); }

/* Countdown */
.countdown { border-top: 2px solid var(--red-line); }
.countdown__label { color: var(--red); }
.cd::before { content: ""; position: absolute; left: 50%; top: 0; width: 26px; height: 3px; margin-left: -13px; border-radius: 0 0 3px 3px; background: var(--red-grad); }

/* FAQ: geöffnete Frage */
.faq__item[open] .faq__icon { background: var(--red-grad); color: #fff; box-shadow: none; }

/* Preise */
.price-card--featured::before { background: linear-gradient(135deg, #e7a3b0, #ffffff 30%, var(--red) 55%, #f4d7dd 75%, #c8102e); opacity: .55; }
.price-card__badge { background: var(--red-grad); color: #fff; box-shadow: 0 8px 20px -10px rgba(200,16,46,.7); }

/* Ablauf, Kennzahlen, Leistungen */
.flow__num { background: var(--red-grad); -webkit-background-clip: text; background-clip: text; }
.tile:hover .tile__go { box-shadow: 0 0 0 1px var(--red-line), var(--shadow-1); }

/* Footer */
.footer-giant em { background: var(--red-grad); -webkit-background-clip: text; background-clip: text; }
.site-footer .social a:hover { color: var(--red); }

/* Links im Fließtext */
.prose a { text-decoration-color: var(--red-line); }
.prose a:hover { color: var(--red-deep); }
.link-arrow:hover { color: var(--red-deep); }

/* Fokus bleibt gut sichtbar */
:focus-visible { outline-color: var(--red-deep); }

/* ==========================================================================
   Scroll-Geschichte „Ihr Besuch bei Dental Beauty“ (Startseite, Abschnitt Ablauf)
   ========================================================================== */
.story { padding-block: 0; overflow: visible; overflow: clip; }
.story__track { position: relative; }
.js .story__track { height: 560vh; }
.story__sticky { padding-block: var(--section-y); }
.js .story:not(.is-static) .story__sticky { position: sticky; top: var(--header-h); height: calc(100vh - var(--header-h)); height: calc(100svh - var(--header-h)); display: flex; align-items: center; padding-block: clamp(1rem, .5rem + 2vh, 2.2rem); }
.js .story.is-static .story__track { height: auto; }

.story__grid { display: grid; gap: clamp(1.4rem, 1rem + 2vw, 3.5rem); align-items: center; width: 100%; }
@media (min-width: 1000px) { .story__grid { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); } }

.story__copy h2 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3.3rem); margin-bottom: .6rem; }
.story__lead { color: var(--text-muted); margin: 0 0 1.4rem; max-width: 42ch; }
.story__steps { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .15rem; border-left: 2px solid var(--platinum-300); }
.story__step { position: relative; padding-left: 1.2rem; }
.story__step::before { content: ""; position: absolute; left: -2px; top: .55rem; bottom: .55rem; width: 2px; background: var(--red-grad, var(--accent)); transform: scaleY(0); transform-origin: top; transition: transform .5s var(--ease-out); }
.story__step.is-active::before { transform: none; }
.story__btn { display: flex; align-items: baseline; gap: .8rem; width: 100%; min-height: 44px; padding: .45rem 0; border: 0; background: none; text-align: left; font-family: var(--font-head); color: var(--grey-400); transition: color .4s var(--ease); }
.story__btn:hover { color: var(--grey-600); }
.story__num { font-size: .8rem; font-weight: 700; letter-spacing: .14em; font-variant-numeric: tabular-nums; }
.story__title { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); font-weight: 600; letter-spacing: -.01em; }
.story__step.is-active .story__btn { color: var(--grey-700); }
.story__step.is-active .story__num { color: var(--accent); }
.story__text { display: grid; margin: 0; max-width: 46ch; color: var(--text-muted); font-size: .97rem; line-height: 1.6; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s var(--ease-out), opacity .5s var(--ease), margin .5s var(--ease); }
.story__step.is-active .story__text { max-height: 9rem; opacity: 1; margin: 0 0 .6rem; }
.story:not(.is-ready) .story__text { max-height: none; opacity: 1; margin-bottom: .6rem; }

.story__stage { position: relative; margin: 0; aspect-ratio: 1000 / 680; border-radius: var(--r-4); overflow: hidden; background: #f4f4f3; box-shadow: inset 0 0 0 1px #fff, 0 0 0 1px var(--platinum-200), 0 0 0 8px rgba(255,255,255,.55), var(--shadow-2); isolation: isolate; }
.story__svg { display: block; width: 100%; height: 100%; }
.story__bar { position: absolute; left: 14px; right: 14px; bottom: 12px; display: flex; gap: 6px; z-index: 2; }
.story__bar span { flex: 1; height: 4px; border-radius: 4px; background: rgba(255,255,255,.75); box-shadow: 0 0 0 1px rgba(109,110,113,.12); overflow: hidden; }
.story__bar i { display: block; height: 100%; background: var(--red-grad, var(--accent)); transform: scaleX(var(--f, 0)); transform-origin: left; }

/* Kleine Höhen: Einleitung ausblenden */
@media (min-width: 1000px) and (max-height: 760px) { .story__lead { display: none; } .story__copy h2 { font-size: clamp(1.8rem, 1rem + 2vw, 2.6rem); } }

/* Tablet & Handy: Bild oben, nur der aktive Schritt */
@media (max-width: 999px) {
  .js .story__track { height: 480vh; }
  .story__grid { gap: 1rem; }
  .story__copy { order: 2; }
  .story__stage { order: 1; aspect-ratio: 5 / 4; max-height: 52vh; max-height: 52svh; width: 100%; margin-inline: auto; }
  .story__lead, .story__cta { display: none; }
  .story__copy .eyebrow { display: none; }
  .story__copy h2 { font-size: clamp(1.5rem, 1rem + 2.4vw, 2.2rem); margin-bottom: .5rem; }
  .story.is-ready:not(.is-static) .story__step:not(.is-active) { display: none; }
  .story__steps { border-left: 0; margin-bottom: 0; }
  .story__step { padding-left: 0; }
  .story__step::before { display: none; }
  .story__btn { min-height: 0; padding: .2rem 0 .3rem; }
  .story.is-static .story__steps { display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
  .story.is-static .story__step.is-active { flex-basis: 100%; order: 9; }
}
@media (max-width: 999px) { .js .story:not(.is-static) .story__sticky { align-items: flex-start; padding-top: 1rem; } }
.story.is-static .story__sticky { padding-block: var(--section-y); }

/* ==========================================================================
   v6 (08.10.2026): Feedback-Runde – roter Infobalken, neuer Hero mit Herbst-Angebot,
   Studios, Interview, Paket-Finder, Vorher/Nachher zum Ziehen, Preis-Tabs,
   Footer mit Google & Zahlungs-Icons, mobile Leiste, WhatsApp & Nach-oben-Button
   ========================================================================== */

/* ---------- Hintergrund scrollt normal mit (kein fixierter Marmor) ---------- */
body { background-attachment: scroll !important; }

/* ---------- Roter Infobalken oben ---------- */
.topbar { background: var(--red-grad); border-bottom: 0; color: #fff; }
.topbar a, .topbar a:hover, .topbar__status { color: #fff; }
.topbar a:hover { opacity: .85; }
.topbar .live-dot { background: #fff; }
.topbar .live-dot::after { border-color: #fff; }
.topbar__status .dot { box-shadow: 0 0 0 3px rgba(255,255,255,.35); }
.topbar__social { border-left-color: rgba(255,255,255,.35); }
.promo { background: var(--red-grad); border-bottom: 0; }
.promo a, .promo a strong, .promo__close { color: #fff; }
.promo__dot { background: #fff; box-shadow: 0 0 0 4px rgba(255,255,255,.25); }

/* ---------- Google-G ---------- */
.g-logo { width: 18px; height: 18px; flex: none; }

/* ---------- Hero ---------- */
.hero-ac .hero2__title { font-size: clamp(2.5rem, 1.1rem + 3.5vw, 4.6rem); line-height: 1.02; letter-spacing: -.04em; margin: .4rem 0 1.1rem; text-wrap: balance; }
.hero-ac .hero2__title em { display: inline; font-size: 1.06em; }
.hero-ac .hero2__facts { margin: 1.8rem 0 0; padding: 0; border: 0; gap: .55rem; }
.g-inline { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .45rem; text-decoration: none; color: var(--grey-700); }
.g-inline span { color: var(--text-muted); font-weight: 500; }
.g-inline:hover span { color: var(--grey-700); }
.hero-seals { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 1.6rem; }
.hero-seals__item { display: block; width: 76px; height: 76px; flex: none; padding: 6px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); transition: transform .5s var(--ease-out); }
.hero-seals__item img { width: 100%; height: 100%; object-fit: contain; }
.hero-seals__item--round { padding: 0; border-radius: 50%; background: none; box-shadow: none; }
.hero-seals__item--round img { filter: drop-shadow(0 8px 14px rgba(68,70,74,.22)); }
.hero-seals__item:hover { transform: translateY(-3px) rotate(-3deg); }
.hero-seals__note { font-family: var(--font-head); font-size: .78rem; font-weight: 600; line-height: 1.45; color: var(--text-muted); }
.hero-portrait .stage-label .g-logo { width: 16px; height: 16px; }
.hero-portrait .stage-label .stars svg { width: 12px; height: 12px; }

/* Herbst-Angebot unten im Hero */
.offer { position: relative; display: grid; gap: 1.3rem; margin-top: clamp(2.2rem, 1.5rem + 2.4vw, 3.6rem); padding: clamp(1.2rem, 1rem + 1vw, 1.8rem); border-radius: var(--r-4); background: rgba(255,255,255,.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px var(--platinum-200), var(--shadow-2); overflow: hidden; isolation: isolate; }
.offer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--red-grad); }
.offer::after { content: ""; position: absolute; z-index: -1; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(200,16,46,.09), rgba(200,16,46,0) 65%); }
@media (min-width: 1000px) { .offer { grid-template-columns: minmax(0, 1.6fr) auto minmax(260px, 300px); align-items: center; gap: 2rem; } }
.offer__title { font-size: clamp(1.3rem, 1rem + 1.2vw, 1.95rem); line-height: 1.15; margin: .7rem 0 .45rem; }
.offer__text { color: var(--text-muted); margin: 0 0 .9rem; max-width: 62ch; font-size: .97rem; }
.offer__feats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem 1.2rem; font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--grey-700); }
.offer__feats li { display: inline-flex; align-items: center; gap: .4rem; }
.offer__feats .icon { width: 17px; height: 17px; color: var(--red); }
.offer__price { display: grid; justify-items: start; gap: .2rem; padding-left: 1.8rem; border-left: 1px solid var(--line); }
.offer__save { padding: .25rem .7rem; border-radius: var(--r-pill); background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .76rem; font-weight: 700; }
.offer__now { font-family: var(--font-head); font-size: clamp(2.4rem, 2rem + 1vw, 3rem); font-weight: 600; line-height: 1; letter-spacing: -.04em; color: var(--grey-700); margin-top: .3rem; }
.offer__old { color: var(--text-muted); text-decoration: line-through; font-size: .95rem; }
.offer__pkg { font-size: .8rem; color: var(--text-muted); margin-bottom: .5rem; }
.countdown--offer { margin: 0; padding: 0; max-width: none; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; border: 0; animation: none; }
.countdown--offer .countdown__label { margin-bottom: .6rem; }
.countdown--offer .cd { padding: .7rem .2rem .55rem; border-radius: 14px; }
.countdown--offer .cd__num { font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem); }
@media (max-width: 999px) {
  .offer__price { padding: 1rem 0 0; border-left: 0; border-top: 1px solid var(--line); grid-template-columns: auto auto; align-items: baseline; column-gap: .8rem; }
  .offer__price .offer__save, .offer__price .offer__pkg, .offer__price .btn { grid-column: 1 / -1; }
  .offer__price .btn { justify-self: start; }
}

/* Video im Kreis (rechts im Hero) */
.hero-portrait--video { aspect-ratio: 1 / 1; place-items: center; }
.hero-portrait--video .hero-portrait__ring { inset: 2%; }
.hero-portrait__video { position: relative; z-index: 1; width: 80%; aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden; background: #e9eaec url("../img/hero/hero-video-poster.jpg") center / cover; box-shadow: 0 0 0 8px rgba(255,255,255,.8), 0 0 0 9px #c3c6ca, 0 40px 80px -30px rgba(68,70,74,.55); animation: fadeUp 1.2s var(--ease-out) .15s both; }
.hero-portrait__video video { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-portrait__toggle { position: absolute; z-index: 3; left: 50%; bottom: 5%; width: 46px; height: 46px; margin-left: -23px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b4b8be, var(--shadow-1); }
.hero-portrait__toggle .icon { width: 18px; height: 18px; }
.hero-portrait__toggle:hover { background: var(--red-grad); color: #fff; box-shadow: none; }
.hero-portrait--video .stage-label--b { right: 0; top: 12%; }
.hero-portrait--video .stage-label--c { right: 2%; bottom: 14%; }
@media (max-width: 640px) { .hero-portrait--video .stage-label--b { top: 2%; } .hero-portrait--video .stage-label--c { bottom: 2%; } .hero-portrait__toggle { bottom: 13%; } }

/* Dezenter Link zu allen Angeboten (unter der Uhr) */
.offer__more { display: inline-flex; align-items: center; gap: .35rem; margin-top: .7rem; font-family: var(--font-head); font-size: .82rem; font-weight: 600; color: var(--red-deep); text-decoration: none; }
.offer__more:hover { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.offer__more .icon { width: 15px; height: 15px; transition: transform .3s var(--ease-out); }
.offer__more:hover .icon { transform: translateX(3px); }

/* ---------- Studios ---------- */
.studios { display: grid; gap: 1rem; }
@media (min-width: 760px) { .studios { grid-template-columns: repeat(2, minmax(0, 1fr)); } .studio--open { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .studios { grid-template-columns: 1.3fr 1fr 1fr; } .studio--open { grid-column: auto; } }
.studio { position: relative; display: flex; flex-direction: column; border-radius: var(--r-4); overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.studio:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-2); }
.studio__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--marble-soft); }
.studio__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.studio:hover .studio__media img { transform: scale(1.05); }
.studio__media--art { display: grid; place-items: end center; background: linear-gradient(180deg, #fbfbfb, #eef0f2); }
.studio__media--art svg { width: 100%; height: auto; display: block; filter: grayscale(.1); }
.studio__badge { position: absolute; top: 14px; left: 14px; display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .85rem; border-radius: var(--r-pill); font-family: var(--font-head); font-size: .78rem; font-weight: 700; }
.studio__badge--open { background: rgba(255,255,255,.94); color: var(--grey-700); box-shadow: var(--shadow-1); }
.studio__badge--soon { background: var(--red-grad); color: #fff; box-shadow: 0 10px 22px -12px rgba(200,16,46,.7); letter-spacing: .04em; }
.studio__body { display: flex; flex-direction: column; gap: .35rem; padding: 1.3rem 1.4rem 1.5rem; flex: 1; }
.studio__num { margin: 0; font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.studio__body h3 { margin: 0; font-size: clamp(1.4rem, 1.2rem + .6vw, 1.8rem); }
.studio__body > p:not(.studio__num) { margin: 0; color: var(--text-muted); font-size: .94rem; }
.studio__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-top: auto; padding-top: 1rem; }
.studio--soon .studio__body h3 { color: var(--grey-600); }

/* Galerie-Streifen */
.gstrip-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 1rem; margin: clamp(2.2rem, 1.6rem + 2vw, 3.2rem) 0 1rem; }
.gstrip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 62%); gap: .8rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; scrollbar-width: none; }
.gstrip::-webkit-scrollbar { display: none; }
@media (min-width: 760px) { .gstrip { grid-auto-columns: minmax(200px, 34%); } }
@media (min-width: 1000px) { .gstrip { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: visible; } }
.gstrip__item { position: relative; margin: 0; aspect-ratio: 4 / 5; border-radius: var(--r-3); overflow: hidden; scroll-snap-align: start; background: var(--platinum-100); box-shadow: var(--shadow-1); }
@media (min-width: 1000px) { .gstrip__item:nth-child(even) { transform: translateY(18px); } .gstrip { padding-bottom: 18px; } }
.gstrip__item button { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.gstrip__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.gstrip__item:hover img { transform: scale(1.06); }
.gstrip__item figcaption { position: absolute; left: .7rem; bottom: .7rem; display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .8rem; border-radius: var(--r-pill); background: rgba(255,255,255,.93); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .78rem; font-weight: 700; color: var(--grey-700); pointer-events: none; }
.gstrip__item figcaption::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }

/* ---------- Interview ---------- */
.interview__grid { display: grid; gap: clamp(1.6rem, 1rem + 3vw, 3.5rem); align-items: center; }
@media (min-width: 1000px) { .interview__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); } }
.interview__copy h2 { font-size: clamp(1.6rem, 1.1rem + 1.7vw, 2.5rem); line-height: 1.18; }
.yt { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-4); overflow: hidden; background: #e7e8ea; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 8px rgba(255,255,255,.7), var(--shadow-2); }
.yt img { width: 100%; height: 100%; object-fit: cover; }
.yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt__btn { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: .8rem; padding: 0; border: 0; background: linear-gradient(180deg, rgba(40,42,46,0) 50%, rgba(40,42,46,.35)); color: #fff; cursor: pointer; }
.yt__play { width: 84px; height: 84px; display: grid; place-items: center; border-radius: 50%; background: var(--red-grad); color: #fff; box-shadow: 0 0 0 10px rgba(255,255,255,.35), 0 18px 34px -14px rgba(200,16,46,.75); transition: transform .5s var(--ease-out); }
.yt__play .icon { width: 28px; height: 28px; fill: currentColor; margin-left: 4px; }
.yt__btn:hover .yt__play { transform: scale(1.08); }
.yt__label { padding: .45rem 1rem; border-radius: var(--r-pill); background: rgba(255,255,255,.92); color: var(--grey-700); font-family: var(--font-head); font-size: .85rem; font-weight: 700; }

/* ---------- Leistungen (aufgeräumt) ---------- */
.svc-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.svc { position: relative; display: flex; flex-direction: column; gap: .5rem; min-height: 100%; padding: 1.6rem 1.5rem 1.5rem; border-radius: var(--r-4); background: rgba(255,255,255,.88); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px var(--platinum-200), var(--shadow-1); text-decoration: none; color: var(--text); transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.svc:hover { color: var(--text); transform: translateY(-4px); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px var(--red-line), var(--shadow-2); }
.svc__num { position: absolute; top: 1.4rem; right: 1.5rem; font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .14em; color: var(--grey-400); }
.svc__ico { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; margin-bottom: .5rem; transition: background .4s var(--ease), color .4s var(--ease), transform .6s var(--ease-out); }
.svc__ico .icon { width: 24px; height: 24px; }
.svc:hover .svc__ico { background: var(--red-grad); color: #fff; box-shadow: none; transform: rotate(-6deg); }
.svc h3 { margin: 0; font-size: 1.25rem; }
.svc p { margin: 0; color: var(--text-muted); font-size: .95rem; padding-right: 2.6rem; }
.svc__go { position: absolute; right: 1.3rem; bottom: 1.3rem; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; box-shadow: 0 0 0 1px var(--platinum-300); color: var(--grey-600); transition: transform .5s var(--ease-out), background .4s, color .4s; }
.svc__go .icon { width: 17px; height: 17px; }
.svc:hover .svc__go { transform: rotate(-45deg); background: var(--grey-700); color: #fff; box-shadow: none; }

/* ---------- Paket-Finder ---------- */
.pf__form { display: grid; gap: 1rem; }
@media (min-width: 1000px) { .pf__form { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pf__q { margin: 0; padding: 1.2rem; border: 0; border-radius: var(--r-4); background: var(--platinum-50, #f8f8f7); box-shadow: inset 0 0 0 1px var(--platinum-200); display: grid; gap: .55rem; align-content: start; min-width: 0; }
.pf__q .pf__legend { width: 100%; display: flex; align-items: center; gap: .7rem; margin: 0 0 .5rem; font-family: var(--font-head); font-size: 1.05rem; font-weight: 700; color: var(--grey-700); }
.pf__n { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--red-grad); color: #fff; font-size: .85rem; }
.pf__opt { position: relative; display: flex; align-items: center; gap: .85rem; min-height: 64px; padding: .7rem .9rem; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); cursor: pointer; transition: box-shadow .3s var(--ease), transform .3s var(--ease); }
.pf__opt:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-1); }
.pf__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pf__opt strong { display: block; font-family: var(--font-head); font-size: .98rem; color: var(--grey-700); }
.pf__opt small { display: block; font-size: .8rem; color: var(--text-muted); line-height: 1.35; }
.pf__opt:has(input:checked) { box-shadow: 0 0 0 2px var(--red), 0 10px 24px -14px rgba(200,16,46,.55); }
.pf__opt:has(input:focus-visible) { outline: 2px solid var(--red-deep); outline-offset: 3px; }
.pf__opt::after { content: ""; margin-left: auto; width: 20px; height: 20px; flex: none; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--platinum-300); transition: box-shadow .3s var(--ease); }
.pf__opt:has(input:checked)::after { box-shadow: inset 0 0 0 6px var(--red); }
.pf__sw { width: 34px; height: 40px; flex: none; border-radius: 12px 12px 16px 16px; background: var(--c); box-shadow: inset 0 -6px 10px rgba(0,0,0,.06), 0 0 0 1px #d8d2c2; }
.pf__lvl { display: flex; gap: 3px; align-items: flex-end; width: 34px; height: 34px; flex: none; }
.pf__lvl i { flex: 1; border-radius: 3px; background: var(--platinum-200); }
.pf__lvl i:nth-child(1) { height: 40%; } .pf__lvl i:nth-child(2) { height: 70%; } .pf__lvl i:nth-child(3) { height: 100%; }
.pf__lvl i.on { background: var(--silver-ink); }
.pf__ico { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: 0 0 0 1px #c3c6ca; }
.pf__ico .icon { width: 18px; height: 18px; }
.pf__red { color: var(--red) !important; font-weight: 700; }
.pf__result { position: relative; display: grid; gap: 1.4rem; margin-top: 1.4rem; padding: clamp(1.4rem, 1rem + 1.6vw, 2.2rem); border-radius: var(--r-4); background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 0 0 1px var(--platinum-200), var(--shadow-2); overflow: hidden; }
.pf__result::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--red-grad); }
@media (min-width: 900px) { .pf__result { grid-template-columns: minmax(0, 1.5fr) minmax(240px, .7fr); align-items: center; } }
.pf__name { margin: .7rem 0 .3rem; font-size: clamp(2rem, 1.5rem + 1.8vw, 3rem); }
.pf__why { margin: 0 0 1rem; color: var(--text-muted); max-width: 62ch; }
.pf__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pf__facts li { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border-radius: var(--r-pill); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-size: .86rem; font-weight: 600; color: var(--grey-700); }
.pf__facts .icon { width: 16px; height: 16px; color: var(--red); }
.pf__res-price { display: grid; justify-items: start; gap: .3rem; }
@media (min-width: 900px) { .pf__res-price { padding-left: 1.8rem; border-left: 1px solid var(--line); } }
.pf__res-price .price-card__save { background: var(--red-grad); color: #fff; box-shadow: none; }
.pf__now { font-family: var(--font-head); font-size: clamp(2.8rem, 2.2rem + 1.6vw, 3.6rem); font-weight: 600; line-height: 1; letter-spacing: -.04em; color: var(--grey-700); }
.pf__old { color: var(--text-muted); font-size: .95rem; margin-bottom: .6rem; }
.pf__old span { text-decoration: line-through; }
.pf__res-price .btn { margin: .2rem 0 .2rem; }
.pf__result.is-updating .pf__res-main, .pf__result.is-updating .pf__res-price { animation: pfIn .55s var(--ease-out); }
@keyframes pfIn { from { opacity: .35; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.pf__note { margin: 1rem 0 0; font-size: .82rem; color: var(--text-muted); text-align: center; }

/* ---------- Vorher/Nachher zum Ziehen ---------- */
.ba-show__grid { display: grid; gap: clamp(1.6rem, 1rem + 3vw, 3.5rem); align-items: center; }
@media (min-width: 1000px) { .ba-show__grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } }
.ba-cases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: 1.6rem 0 1.4rem; }
.ba-case { position: relative; padding: 0; border: 0; border-radius: 14px; overflow: hidden; background: #fff; aspect-ratio: 1024 / 520; box-shadow: 0 0 0 1px var(--platinum-200); cursor: pointer; opacity: .7; transition: opacity .3s, box-shadow .3s, transform .3s var(--ease-out); }
.ba-case img { width: 100%; height: 100%; object-fit: cover; }
.ba-case span { position: absolute; left: 6px; bottom: 6px; padding: .15rem .5rem; border-radius: var(--r-pill); background: rgba(255,255,255,.92); font-family: var(--font-head); font-size: .68rem; font-weight: 700; color: var(--grey-700); }
.ba-case:hover { opacity: 1; transform: translateY(-2px); }
.ba-case[aria-pressed="true"] { opacity: 1; box-shadow: 0 0 0 2px var(--red), 0 10px 22px -14px rgba(200,16,46,.6); }
.ba--show { aspect-ratio: 4 / 3; max-height: 70vh; max-height: 70svh; border-radius: var(--r-4); box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.7), var(--shadow-2); }
@media (min-width: 700px) { .ba--show { aspect-ratio: 16 / 9; } }
.ba--show .ba__img { object-position: center 50%; }
.ba--show .ba__handle { width: 4px; margin-left: -2px; background: #fff; box-shadow: 0 0 0 1px rgba(200,16,46,.35), 0 0 18px rgba(255,255,255,.9); }
.ba--show .ba__handle::after { width: 64px; height: 64px; box-shadow: 0 0 0 6px rgba(255,255,255,.55), 0 0 0 7px rgba(200,16,46,.35), 0 12px 26px -10px rgba(68,70,74,.55); }
.ba__hint { position: absolute; left: var(--pos, 50%); top: calc(50% + 48px); transform: translateX(-50%); padding: .35rem .8rem; border-radius: var(--r-pill); background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .74rem; font-weight: 700; white-space: nowrap; pointer-events: none; box-shadow: 0 10px 20px -10px rgba(200,16,46,.7); animation: hintBob 2.4s ease-in-out infinite; transition: opacity .4s; }
.ba__hint::before { content: "‹ "; } .ba__hint::after { content: " ›"; }
.ba.is-touched .ba__hint { opacity: 0; }
@keyframes hintBob { 0%, 100% { transform: translateX(-50%); } 50% { transform: translateX(calc(-50% + 6px)); } }
.ba-show__note { margin: 1.2rem 0 0; font-size: .82rem; color: var(--text-muted); }

/* ---------- Warum Dental Beauty? ---------- */
.why5__grid { display: grid; gap: 1rem; }
@media (min-width: 900px) { .why5__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.why5__card { position: relative; display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: 2rem 1.5rem 1.8rem; border-radius: var(--r-4); background: var(--marble-platinum); box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 0 0 1px var(--platinum-200), var(--shadow-1); text-align: center; text-decoration: none; color: var(--text); overflow: hidden; transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.why5__card::before { content: ""; position: absolute; left: 50%; top: 0; width: 56px; height: 4px; margin-left: -28px; border-radius: 0 0 4px 4px; background: var(--red-grad); }
a.why5__card:hover { color: var(--text); transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 0 0 1px var(--red-line), var(--shadow-2); }
.why5__card--feat { background: linear-gradient(160deg, #fff, #f1f2f3); }
.why5__top { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .8rem; border-radius: var(--r-pill); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-size: .76rem; font-weight: 700; color: var(--grey-600); }
.why5__top .icon { width: 15px; height: 15px; color: var(--red); }
.why5__top .g-logo { width: 15px; height: 15px; }
.why5__val { display: inline-flex; align-items: baseline; gap: .4rem; margin-top: .8rem; font-family: var(--font-head); font-size: clamp(4rem, 3rem + 3vw, 5.6rem); font-weight: 600; line-height: .95; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--grey-600); }
.why5__val small { font-size: .3em; letter-spacing: 0; -webkit-text-fill-color: var(--grey-600); }
.why5__card .stars svg { width: 18px; height: 18px; }
.why5__label { font-family: var(--font-head); font-size: 1.08rem; font-weight: 700; color: var(--grey-700); }
.why5__sub { font-size: .86rem; color: var(--text-muted); max-width: 32ch; }
.why5__seals { display: flex; gap: .5rem; margin: .2rem 0 .3rem; }
.why5__seals img { width: 60px; height: 60px; object-fit: contain; border-radius: 10px; background: #fff; padding: 3px; box-shadow: 0 0 0 1px var(--platinum-200); }
.why5__pills { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.why5__pills li { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1.1rem; border-radius: var(--r-pill); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--grey-700); }
.why5__pills .icon { width: 18px; height: 18px; color: var(--red); }

/* ---------- Ehrliche Beratung + 4 Schritte ---------- */
.steps4__grid { display: grid; gap: clamp(1.6rem, 1rem + 3vw, 4rem); align-items: center; }
@media (min-width: 1000px) { .steps4__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.steps4__media { position: relative; aspect-ratio: 4 / 5; max-height: 640px; width: 100%; border-radius: var(--r-frame); overflow: hidden; background: var(--platinum-100); box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.7), var(--shadow-2); }
@media (max-width: 999px) { .steps4__media { aspect-ratio: 4 / 3; } }
.steps4__img { position: absolute; inset: 0; margin: 0; opacity: 0; transform: scale(1.04); transition: opacity .8s var(--ease), transform 1.4s var(--ease-out); }
.steps4__img.is-active { opacity: 1; transform: none; }
.steps4__img img { width: 100%; height: 100%; object-fit: cover; }
.steps4__count { position: absolute; left: 1rem; bottom: 1rem; padding: .45rem .9rem; border-radius: var(--r-pill); background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-family: var(--font-head); font-size: .85rem; font-weight: 600; color: var(--text-muted); }
.steps4__count b { color: var(--red); }
.steps4__list { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: .5rem; }
.steps4__step { border-radius: 18px; background: rgba(255,255,255,.6); box-shadow: 0 0 0 1px var(--platinum-200); transition: background .4s, box-shadow .4s; overflow: hidden; }
.steps4__step.is-active { background: #fff; box-shadow: 0 0 0 1px var(--red-line), var(--shadow-1); }
.steps4__btn { position: relative; display: flex; align-items: center; gap: .9rem; width: 100%; min-height: 56px; padding: .8rem 1rem; border: 0; background: none; text-align: left; font-family: var(--font-head); cursor: pointer; }
.steps4__n { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px #c3c6ca; font-size: .82rem; font-weight: 700; color: var(--grey-600); transition: background .4s, color .4s; }
.steps4__step.is-active .steps4__n { background: var(--red-grad); color: #fff; box-shadow: none; }
.steps4__t { font-size: 1.08rem; font-weight: 700; color: var(--grey-700); }
.steps4__bar { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: transparent; }
.steps4__bar i { display: block; height: 100%; width: 100%; background: var(--red-grad); transform: scaleX(0); transform-origin: left; }
.steps4.is-auto .steps4__step.is-active .steps4__bar i { animation: stepBar var(--step-ms, 5200ms) linear forwards; }
.steps4.is-paused .steps4__step.is-active .steps4__bar i { animation-play-state: paused; }
@keyframes stepBar { to { transform: none; } }
.steps4__text { margin: 0; padding: 0 1rem 0 calc(1rem + 36px + .9rem); max-height: 0; opacity: 0; color: var(--text-muted); font-size: .95rem; line-height: 1.6; transition: max-height .6s var(--ease-out), opacity .5s, padding .5s; }
.steps4__step.is-active .steps4__text { max-height: 12rem; opacity: 1; padding-bottom: 1rem; }

/* ---------- Preis-Tabs ---------- */
.ptabs { display: flex; justify-content: center; padding-top: 1.6rem; }
.segmented--tabs { position: relative; overflow: visible; }
.segmented--tabs button { position: relative; }
.seg-flag { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%); padding: .3rem .7rem; border-radius: var(--r-pill); background: var(--red-grad); color: #fff; font-size: .74rem; font-weight: 700; white-space: nowrap; box-shadow: 0 10px 20px -10px rgba(200,16,46,.75); animation: flagPulse 2.6s ease-in-out infinite; pointer-events: none; }
.seg-flag::after { content: ""; position: absolute; left: 50%; top: 100%; margin-left: -6px; border: 6px solid transparent; border-top-color: #b80f2a; }
@keyframes flagPulse { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
.segmented--tabs button[aria-selected="true"] { background: var(--silver); }
#ht-duo[aria-selected="true"] .seg-flag { animation: none; }
.duo-hint { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; width: 100%; margin-top: 1.4rem; padding: 1rem 1.2rem; border: 0; border-radius: var(--r-3); background: linear-gradient(100deg, rgba(200,16,46,.07), rgba(255,255,255,.9) 60%); box-shadow: 0 0 0 1px var(--red-line); text-align: left; font-size: .95rem; color: var(--grey-700); cursor: pointer; transition: box-shadow .3s, transform .3s var(--ease-out); }
.duo-hint:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--red), var(--shadow-1); }
.duo-hint__badge { padding: .3rem .7rem; border-radius: var(--r-pill); background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .78rem; font-weight: 700; }
.duo-hint__go { margin-left: auto; display: inline-flex; align-items: center; gap: .4rem; font-family: var(--font-head); font-weight: 700; color: var(--red-deep); }
.duo-hint__go .icon { width: 18px; height: 18px; }
.price-card__unit { flex-basis: 100%; font-size: .82rem; color: var(--text-muted); }

/* ---------- Abschluss-CTA mit Foto ---------- */
.cta-band--photo { text-align: left; background: #f3f3f2; padding-block: clamp(3.5rem, 2.5rem + 5vw, 7rem); }
.cta-band--photo > img { opacity: 1; filter: none; object-position: 72% 28%; }
.cta-band--photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(246,246,245,.96) 0%, rgba(246,246,245,.86) 38%, rgba(246,246,245,.15) 62%, rgba(246,246,245,0) 100%); }
.cta-band__copy { max-width: 560px; }
.cta-band--photo h2 { margin-inline: 0; max-width: 15ch; }
.cta-band--photo p { margin-inline: 0; }
.cta-band--photo .eyebrow { justify-content: flex-start; }
@media (max-width: 760px) {
  .cta-band--photo { padding-top: 0; background: #f6f6f5; }
  .cta-band--photo > img { position: relative; height: 260px; object-position: 78% 20%; }
  .cta-band--photo::before { top: 200px; height: 60px; background: linear-gradient(180deg, rgba(246,246,245,0), #f6f6f5); }
  .cta-band--photo .cta-band__copy { padding-top: 1.4rem; }
}

/* ---------- Footer ---------- */
.g-badge { display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.2rem; padding: .6rem 1rem .6rem .7rem; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); text-decoration: none; color: var(--grey-700); }
.g-badge .g-logo { width: 30px; height: 30px; }
.g-badge strong { font-family: var(--font-head); font-size: 1.35rem; margin-right: .3rem; }
.g-badge .stars svg { width: 14px; height: 14px; }
.g-badge small { display: block; font-size: .78rem; color: var(--text-muted); }
.site-footer .social a { color: #fff; background: var(--red-grad); border-color: transparent; box-shadow: 0 10px 20px -12px rgba(200,16,46,.7); }
.site-footer .social a:hover { color: #fff; transform: translateY(-3px) rotate(-6deg); }
.site-footer h2 { position: relative; padding-bottom: .55rem; }
.site-footer h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; border-radius: 2px; background: var(--red-grad); }
.footer-list a:hover { color: var(--red-deep); }
.footer-list .icon { color: var(--red); }
.pay { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.pay li { width: 56px; height: 38px; display: grid; place-items: center; border-radius: 9px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); opacity: .9; transition: opacity .3s, transform .3s var(--ease-out); }
.pay li:hover { opacity: 1; transform: translateY(-2px); }
.pay svg { width: 46px; height: 32px; }
.site-footer { padding-bottom: 0; }
.footer-giant { margin: clamp(2rem, 1.5rem + 2.5vw, 3.5rem) 0 -.07em; padding: 0; font-size: 16.6vw; line-height: .8; letter-spacing: 0; -webkit-text-stroke: 2px #a9acb1; }
@media (min-width: 1600px) { .footer-giant { font-size: 16.2vw; } }
.footer-giant em { padding: .12em .12em .3em .22em; margin: -.12em -.1em -.3em -.22em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }   /* Verlaufsfläche größer als die Schrift, Layout unverändert (rechts +.02em) */

/* ---------- Mobile Leiste unten (3 Icons) ---------- */
.sticky-cta { display: none !important; }
.mbar { position: fixed; z-index: 45; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1fr 1.25fr 1fr; align-items: end; gap: 4px; padding: 6px 8px; border-radius: 24px; background: rgba(255,255,255,.92); backdrop-filter: blur(16px) saturate(1.3); -webkit-backdrop-filter: blur(16px) saturate(1.3); box-shadow: 0 0 0 1px var(--platinum-200), 0 18px 40px -16px rgba(68,70,74,.45); }
@media (min-width: 900px) { .mbar { display: none; } }
.mbar__item { display: grid; justify-items: center; gap: 3px; padding: 6px 4px 4px; border-radius: 16px; text-decoration: none; color: var(--grey-600); font-family: var(--font-head); font-size: .72rem; font-weight: 700; }
.mbar__ico { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; color: var(--grey-700); }
.mbar__ico .icon { width: 20px; height: 20px; }
/* Antippen: leichtes Eindrücken des Symbols als Rückmeldung (statt Tipp-Kasten, siehe 02-base) */
.mbar__ico { transition: transform .2s var(--ease-out); }
.mbar__item:active .mbar__ico { transform: scale(.9); }
.mbar__item--main { color: var(--red-deep); }
.mbar__item--main .mbar__ico { width: 56px; height: 56px; margin-top: -24px; background: var(--red-grad); color: #fff; box-shadow: 0 0 0 5px #fff, 0 14px 26px -10px rgba(200,16,46,.75); }
.mbar__item--main .mbar__ico .icon { width: 24px; height: 24px; }
@media (max-width: 899px) { body.has-sticky { --sticky-cta-h: 92px; padding-bottom: calc(92px + env(safe-area-inset-bottom)); } }

/* ---------- WhatsApp (Desktop) & Nach oben ---------- */
.wa-float { position: fixed; z-index: 44; right: 22px; bottom: 22px; width: 60px; height: 60px; display: none; place-items: center; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b4b8be, 0 16px 34px -12px rgba(68,70,74,.55); text-decoration: none; transition: transform .4s var(--ease-out), box-shadow .4s; }
.wa-float .icon { width: 28px; height: 28px; }
.wa-float::after { content: ""; position: absolute; top: 4px; right: 4px; width: 12px; height: 12px; border-radius: 50%; background: #25d366; box-shadow: 0 0 0 2px #fff; }
.wa-float:hover { color: var(--grey-700); transform: translateY(-3px) scale(1.04); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #9a9da2, 0 20px 40px -12px rgba(68,70,74,.6); }
.wa-float__tip { position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(6px); padding: .5rem .9rem; border-radius: var(--r-pill); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); font-family: var(--font-head); font-size: .82rem; font-weight: 700; color: var(--grey-700); white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .3s, transform .3s var(--ease-out); }
.wa-float:hover .wa-float__tip, .wa-float:focus-visible .wa-float__tip { opacity: 1; transform: translateY(-50%); }
@media (min-width: 900px) { .wa-float { display: grid; } }
.to-top { position: fixed; z-index: 44; left: 22px; bottom: 22px; width: 50px; height: 50px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--grey-700); box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-1); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .4s, transform .4s var(--ease-out), background .3s, color .3s; }
.to-top .icon { width: 20px; height: 20px; }
.to-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { background: var(--red-grad); color: #fff; box-shadow: none; }
@media (max-width: 899px) { .to-top { left: 14px; bottom: calc(104px + env(safe-area-inset-bottom)); width: 40px; height: 40px; opacity: 0; } .to-top.is-visible { opacity: .85; } .to-top .icon { width: 17px; height: 17px; } }
/* Handy/Tablet: „Nach oben“ erst beim leichten Hochscrollen zeigen */
@media (max-width: 899px) { html:not(.is-scroll-up) .to-top.is-visible { opacity: 0; transform: translateY(16px); pointer-events: none; } }

@media (prefers-reduced-motion: reduce) {
  .seg-flag, .ba__hint, .steps4__bar i { animation: none !important; }
  .steps4__img { transition: none; }
}

.rating-hero .g-logo { width: 34px; height: 34px; }


/* Bewertungssterne in Google-Gelb */
.stars, .g-inline span.stars, .g-inline:hover span.stars { color: #FBBC04; }

/* v6.1: größerer Videokreis, Status-Plakette links, Siegel ohne Box */
.hero-portrait--video .hero-portrait__ring { inset: -2%; }
.hero-portrait__video { width: 92%; }
.hero-portrait--video .stage-label--b { right: -3%; top: 8%; }
.hero-portrait--video .stage-label--c { left: -7%; right: auto; top: auto; bottom: 16%; }
.hero-portrait__toggle { bottom: 1%; }
@media (max-width: 640px) {
  .hero-portrait--video .stage-label--b { right: 0; top: 0; }
  .hero-portrait--video .stage-label--c { left: 0; bottom: 4%; }
  .hero-portrait__toggle { bottom: 0; left: auto; right: 6%; margin-left: 0; }
}
.hero-seals { gap: 1rem; }
.hero-seals__item { width: 84px; height: 84px; padding: 0; border-radius: 0; background: none; box-shadow: none; }
.hero-seals__item img { filter: drop-shadow(0 8px 14px rgba(68,70,74,.18)); }
.why5__seals img { background: none; padding: 0; border-radius: 0; box-shadow: none; width: 68px; height: 68px; }

/* Studios: drei gleich große Karten */
.studios { grid-template-columns: 1fr; }
.studio--open { grid-column: auto; }
@media (min-width: 900px) { .studios { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) and (max-width: 1099px) { .studio__actions { flex-direction: column; align-items: flex-start; } }

/* Siegel WELT & Vergleich.org exakt gleich groß */
.hero-seals__item { width: 69px; height: 69px; }
.hero-seals__item img { width: 69px; height: 69px; object-fit: contain; }
.why5__seals img { width: 72px; height: 72px; }

/* Link „Alle Angebote bis zu −40 %“ unter der Uhr: mehr Abstand, volle Schriftgröße */
.offer__more { display: flex; justify-content: center; width: 100%; margin-top: 1.3rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: 1rem; font-weight: 700; }
.offer__more .icon { width: 18px; height: 18px; }
@media (max-width: 999px) { .offer__more { justify-content: flex-start; } }

.offer__now small { font-size: .42em; font-weight: 600; letter-spacing: 0; color: var(--text-muted); margin-right: .1em; }

/* ==========================================================================
   v7 Responsive-Feinschliff (08.10.2026): Handy · Tablet · Großformat/TV
   Ziel: kürzere Wege zum Termin, Wischen statt endlosem Scrollen, Inhalte
   auf großen Bildschirmen mitwachsen lassen.
   ========================================================================== */

/* ---------- Wisch-Leisten (Studios, Galerie, Preise) ---------- */
.studios, .price-grid, .gstrip { position: relative; }
.rail-dots { display: none; justify-content: center; gap: 6px; margin-top: .5rem; }
.rail-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; background: var(--platinum-300); transition: width .35s var(--ease-out), background .3s; cursor: pointer; }
.rail-dots button.is-active { width: 24px; background: var(--red-grad); }
.rail-dots[hidden] { display: none !important; }

@media (max-width: 899px) {
  .rail-dots { display: flex; }
  /* Studios als Wisch-Karten */
  .studios { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; gap: .9rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin-inline: calc(var(--gutter) * -1); padding: 4px var(--gutter) 1rem; scrollbar-width: none; }
  .studios::-webkit-scrollbar { display: none; }
  .studios > * { scroll-snap-align: start; }
  .studio:hover { transform: none; }
  .studio__media { aspect-ratio: 16 / 9; }
  .studio__body { padding: 1rem 1.1rem 1.2rem; }
  .studio__actions { padding-top: .8rem; }
  /* Galerie: Rand-zu-Rand wischen */
  .gstrip { margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter) 6px; scroll-padding-inline: var(--gutter); }
}
@media (min-width: 600px) and (max-width: 899px) { .studios { grid-auto-columns: 47%; } }

@media (max-width: 759px) {
  /* Preiskarten als Wisch-Leiste – startet beim beliebtesten Paket */
  .price-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 86%; gap: .9rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin-inline: calc(var(--gutter) * -1); padding: 20px var(--gutter) 1.2rem; scrollbar-width: none; }
  .price-grid::-webkit-scrollbar { display: none; }
  .price-grid > * { scroll-snap-align: start; }
  .price-card { padding: 1.5rem 1.3rem 1.3rem; }
  .price-card__now { font-size: 2.9rem; }
  .price-card__price { margin: .8rem 0 1rem; padding-bottom: 1rem; }
  .price-card .checklist { gap: .45rem; margin-bottom: 1.2rem; }
  .price-card .checklist li { font-size: .92rem; }
  .rail-dots { display: flex; }
}
@media (min-width: 760px) and (max-width: 899px) {
  .price-grid { gap: .7rem; }
  .price-card { padding: 1.4rem 1.1rem 1.2rem; }
  .price-card__now { font-size: 2.5rem; }
}

/* ---------- Handy (bis 599 px) ---------- */
@media (max-width: 599px) {
  :root { --section-y: 3.6rem; }
  .section-head { margin-bottom: 1.6rem; }
  .section-head--split { gap: .8rem; }
  .lead { font-size: 1rem; }
  h2, .h2 { font-size: clamp(1.75rem, 1.2rem + 3vw, 2.2rem); }

  /* Hero: Titel, Nutzen und Buchung auf dem ersten Bildschirm */
  .hero-ac { padding-top: 1.2rem; padding-bottom: 2.4rem; }
  .hero-ac .hero2__title { font-size: clamp(2.2rem, 9.6vw, 2.85rem); margin: .2rem 0 .9rem; }
  .hero2__lead { font-size: 1rem; line-height: 1.6; }
  .hero-ac .actions { display: grid; gap: .6rem; margin-top: 1.4rem; }
  .hero-ac .actions .btn { width: 100%; justify-content: center; min-height: 54px; }
  .hero-ac .hero2__facts { margin-top: 1.3rem; font-size: .9rem; gap: .45rem; }
  .hero-seals { margin-top: 1.2rem; gap: .8rem; }
  .hero2__grid { gap: 1.8rem; }
  .hero-portrait--video { max-width: 320px !important; margin-inline: auto; }

  /* Herbst-Angebot kompakt */
  .offer { margin-top: 1.8rem; padding: 1.1rem 1rem 1.2rem; gap: 1rem; }
  .offer__title { font-size: 1.28rem; margin-top: .55rem; }
  .offer__text { font-size: .9rem; margin-bottom: .8rem; }
  .offer__feats { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem .6rem; font-size: .8rem; }
  .offer__feats li { align-items: flex-start; line-height: 1.3; }
  .offer__feats .icon { width: 15px; height: 15px; flex: none; margin-top: 1px; }
  .offer__price { grid-template-columns: auto 1fr; align-items: center; column-gap: .7rem; row-gap: .25rem; }
  .offer__now { font-size: 2.3rem; margin: 0; grid-row: 2; }
  .offer__old { grid-row: 2; align-self: end; margin-bottom: .35rem; }
  .offer__price .btn { width: 100%; justify-content: center; min-height: 50px; margin-top: .4rem; }
  .countdown--offer .cd { padding: .55rem .15rem .45rem; border-radius: 12px; }
  .countdown--offer .cd__num { font-size: 1.55rem; }
  .offer__more { justify-content: center; margin-top: 1rem; padding-top: .8rem; font-size: .95rem; }

  /* Laufbänder schlanker */
  .tapes { padding-block: 1.2rem; }
  .tape { font-size: .92rem; padding-block: .6rem; }
  .tape__group span { gap: 1rem; padding: 0 1rem; }

  /* Studios-Kopf */
  #studios .section-head .lead { display: none; }

  /* Interview */
  .interview__copy h2 { font-size: 1.45rem; }
  .interview .actions { margin-top: 1.1rem; }
  .yt__play { width: 66px; height: 66px; }

  /* Leistungen als kompakte App-Liste */
  .svc-grid { gap: .55rem; }
  .svc { display: grid; grid-template-columns: 46px minmax(0, 1fr) 30px; grid-template-rows: auto auto; column-gap: .85rem; row-gap: .15rem; align-items: center; padding: .85rem .9rem; border-radius: 18px; }
  .svc__ico { grid-row: 1 / 3; width: 46px; height: 46px; margin: 0; border-radius: 14px; }
  .svc__ico .icon { width: 21px; height: 21px; }
  .svc h3 { grid-column: 2; font-size: 1.02rem; }
  .svc p { grid-column: 2; font-size: .82rem; line-height: 1.4; padding-right: 0; }
  .svc__go { position: static; grid-column: 3; grid-row: 1 / 3; width: 30px; height: 30px; }
  .svc__go .icon { width: 15px; height: 15px; }
  .svc__num { display: none; }

  /* Paket-Finder: Antworten als Kacheln */
  .pf__q { padding: .9rem; }
  .pf__q:not(:last-child) .pf__opt small { display: none; }
  .pf__res-price { grid-template-columns: auto 1fr; align-items: center; column-gap: .8rem; }
  .pf__res-price .price-card__save { grid-column: 1 / -1; justify-self: start; }
  .pf__now { font-size: 2.6rem; }
  .pf__old { margin: 0; }
  .pf__res-price .btn { grid-column: 1 / -1; width: 100%; justify-content: center; min-height: 52px; }
  .pf__res-price .link-arrow { grid-column: 1 / -1; }
  .pf__name { font-size: 2rem; margin-top: .5rem; }
  .pf__why { font-size: .9rem; }
  .pf__facts li { font-size: .8rem; padding: .4rem .7rem; }

  /* Vorher/Nachher */
  .ba-cases { gap: .4rem; margin: 1.2rem 0 1rem; }
  .ba__hint { top: calc(50% + 40px); }

  /* Warum Dental Beauty: drei Zahlen nebeneinander */
  .why5__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
  .why5__card { padding: 1rem .35rem .9rem; gap: .2rem; }
  .why5__top { padding: .32rem; font-size: 0; gap: 0; }
  .why5__top .icon, .why5__top .g-logo { width: 15px; height: 15px; }
  .why5__val { font-size: clamp(2rem, 10vw, 2.8rem); margin-top: .35rem; }
  .why5__val small { font-size: .36em; }
  .why5__card .stars svg { width: 10px; height: 10px; }
  .why5__label { font-size: .74rem; line-height: 1.25; }
  .why5__sub { display: none; }
  .why5__seals { gap: .25rem; }
  .why5__seals img { width: 30px; height: 30px; }
  .why5__pills { gap: .4rem; }
  .why5__pills li { font-size: .8rem; padding: .45rem .8rem; }

  /* Behandlungsschritte */
  .steps4__media { aspect-ratio: 16 / 11; border-radius: var(--r-4); }
  .steps4__btn { min-height: 52px; padding: .65rem .8rem; }
  .steps4__t { font-size: 1rem; }
  .steps4__text { padding-left: calc(.8rem + 36px + .9rem); font-size: .9rem; }

  /* Preise */
  .ptabs { padding-top: 1.7rem; }
  .segmented--tabs { display: flex; width: 100%; margin-bottom: 1.4rem; }
  .segmented--tabs button { flex: 1; padding-inline: .4rem; font-size: .9rem; }
  .duo-hint { font-size: .88rem; padding: .9rem 1rem; }
  .duo-hint__go { margin-left: 0; }

  /* Garantie */
  .award__seal img { width: 180px; height: auto; }

  /* Footer kompakter */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
  .footer-grid > :nth-child(1), .footer-grid > :nth-child(2) { grid-column: 1 / -1; }
  .footer-list a { min-height: 34px; font-size: .9rem; }
  .site-footer { padding-top: 2.6rem; }
  .footer-brand img { height: 70px; }
  .hrs { padding: 14px; }
}

/* ---------- Paket-Finder: Tablet & Handy (Antworten nebeneinander) ---------- */
@media (max-width: 999px) {
  .pf__q { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
  .pf__q:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf__q .pf__legend { grid-column: 1 / -1; font-size: .98rem; margin-bottom: .2rem; }
  .pf__opt { flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; gap: .45rem; min-height: 0; padding: .85rem .4rem .75rem; }
  .pf__opt::after { position: absolute; top: 8px; right: 8px; width: 16px; height: 16px; margin: 0; }
  .pf__opt:has(input:checked)::after { box-shadow: inset 0 0 0 5px var(--red); }
  .pf__opt strong { font-size: .86rem; line-height: 1.2; }
  .pf__opt small { font-size: .72rem; }
  .pf__sw { width: 30px; height: 36px; }
}

/* ---------- Tablet (600–1079 px) ---------- */
@media (min-width: 600px) and (max-width: 999px) {
  .offer { grid-template-columns: 1fr 1fr; }
  .offer__main { grid-column: 1 / -1; }
  .offer__price { border-top: 0; padding-top: 0; }
  .offer__clock { align-self: center; }
  .why5__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
  .why5__card { padding: 1.5rem .8rem 1.3rem; }
  .why5__val { font-size: 3.4rem; }
  .why5__sub { font-size: .8rem; }
}
@media (min-width: 900px) and (max-width: 1079px) {
  .hero2__grid { grid-template-columns: 1.05fr .95fr; gap: 2rem; }
  .hero-ac .hero2__grid > .hero-portrait { max-width: none; }
}
@media (min-width: 600px) and (max-width: 899px) {
  .hero-portrait--video { max-width: 400px !important; }
  .steps4__media { aspect-ratio: 16 / 10; }
}

/* ---------- Großformat & TV: Inhalte wachsen mit ---------- */
.hero-portrait { width: min(100%, 35rem); }
.cta-band__copy { max-width: 35rem; }
@media (min-width: 1600px) { :root { --container: 1400px; } }
@media (min-width: 1920px) {
  html { font-size: 106.25%; }
  :root { --container: 1520px; --header-h: 92px; }
  .brand img { height: 64px; }
}
@media (min-width: 2400px) {
  html { font-size: 118.75%; }
  :root { --container: 1780px; --header-h: 104px; }
  .brand img { height: 72px; }
  .section-head { max-width: 58rem; }
  .wa-float { width: 72px; height: 72px; }
  .wa-float .icon { width: 34px; height: 34px; }
}
@media (min-width: 3200px) {
  html { font-size: 137.5%; }
  :root { --container: 2240px; --header-h: 120px; }
  .brand img { height: 84px; }
}

/* Tablet hochkant: Hero zweispaltig – Text links, Video rechts */
@media (min-width: 760px) and (max-width: 899px) {
  .hero2__grid { grid-template-columns: 1.12fr .88fr; gap: 1.6rem; align-items: center; }
  .hero-ac .hero2__title { font-size: clamp(2.3rem, 1rem + 2.9vw, 2.8rem); }
  .hero-portrait--video { max-width: none !important; }
  .hero-portrait--video .stage-label--c { left: -14%; bottom: 8%; font-size: .78rem; }
  .hero-portrait--video .stage-label--b { right: -6%; top: 2%; }
  .hero-seals__note { display: none; }
}

/* ==========================================================================
   v8 Feinschliff (08.10.2026): Marmor im Hero, Aktions-Laufband oben,
   kräftigere Social-Icons, Zahlungs-Icons wie im Shop, ruhigere Abstände,
   neues Interview, neues „Warum Dental Beauty?“, Angebot 3 + 3
   ========================================================================== */

/* ---------- Abstände zwischen den Sections: ruhiger, ohne große Lücken ---------- */
:root { --section-y: clamp(3.4rem, 2.4rem + 3.6vw, 6.2rem); }
@media (max-width: 599px) { :root { --section-y: 3.2rem; } }
.section-head { margin-bottom: clamp(1.8rem, 1.4rem + 1.6vw, 3rem); }
.tapes { padding-block: clamp(1rem, .6rem + 1.6vw, 2.2rem); }
.gstrip-head { margin-top: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); }
.award { padding-block: clamp(3.6rem, 2.6rem + 3.6vw, 6.4rem); }
.cta-band { margin-top: clamp(2rem, 1.4rem + 2vw, 3.6rem); }
.site-footer { margin-top: clamp(1rem, .6rem + 1vw, 1.6rem); }

/* ---------- Hero: dezenter Marmor ---------- */
.hero-ac { background: linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,.66) 60%, rgba(255,255,255,.82)), var(--marble) center / cover; }
.hero-ac::before { opacity: .55; }

/* ---------- Aktions-Laufband (Infoleiste oben) ---------- */
.ticker { position: relative; display: block; overflow: hidden; min-width: 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ticker__track { display: flex; width: max-content; animation: ticker 26s linear infinite; }
.ticker__group { display: flex; flex: none; }
.ticker__group { align-items: center; }
.ticker__group > span { display: block; padding-right: 1.1rem; white-space: nowrap; font-weight: 600; }   /* innere Spans (Aktionswerte) bleiben normaler Text */
.ticker__group > span::after { content: "✦"; margin-left: 1.1rem; font-size: .7em; opacity: .8; vertical-align: .12em; }
@keyframes ticker { to { transform: translateX(-50%); } }
.topbar__news, .promo__link { flex: 1 1 auto; display: flex; align-items: center; gap: .8rem; min-width: 0; }
.topbar__news:hover .ticker__track, .promo__link:hover .ticker__track { animation-play-state: paused; }
.topbar__news { max-width: min(48vw, 640px); }
.topbar__tag, .promo__tag { flex: none; display: inline-flex; align-items: center; gap: .45rem; padding: .2rem .65rem; border-radius: var(--r-pill); background: #fff; color: var(--red-deep); font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 4px 10px -6px rgba(0,0,0,.35); }
.topbar__tag .live-dot { width: 7px; height: 7px; background: var(--red); }
.topbar__tag .live-dot::after { border-color: var(--red); }
.topbar .ticker { flex: 1 1 auto; }
/* Handy: Aktionsleiste einzeilig mit Laufband */
.promo__inner { justify-content: flex-start; padding: .45rem 2.8rem .45rem .9rem; min-height: 42px; }
.promo__link { color: #fff; text-decoration: none; font-size: .84rem; }
.promo__tag { font-size: .66rem; padding: .18rem .55rem; }
.promo .ticker { flex: 1 1 auto; }
@media (prefers-reduced-motion: reduce) {
  .ticker__track { animation: none; }
  .ticker__group + .ticker__group { display: none; }
}

/* ---------- Social-Icons: gefüllt und gut erkennbar ---------- */
.icon--brand { fill: currentColor; }
.topbar__social { gap: .35rem; }
.topbar__social a { width: 28px; height: 28px; min-height: 28px; border-radius: 50%; background: rgba(255,255,255,.16); box-shadow: inset 0 0 0 1px rgba(255,255,255,.28); transition: background .25s, transform .25s; --yt-cut: #c8102e; }
.topbar__social a:hover { background: #fff; color: var(--red-deep); opacity: 1; transform: translateY(-1px); --yt-cut: #fff; }
.topbar__social .icon { width: 15px; height: 15px; }
.site-footer .social a { --yt-cut: #c8102e; }
.site-footer .social .icon { width: 20px; height: 20px; }

/* ---------- Zahlungs-Icons wie im Onlineshop ---------- */
.pay-accept { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.pay-accept span { font-family: var(--font-head); font-size: .84rem; font-weight: 700; color: var(--grey-700); }
.pay-accept img { width: min(100%, 306px); height: auto; }

/* ---------- Mobile Leiste: Abstand Kreis ↔ „Termin buchen“ ---------- */
.mbar__item--main { gap: 8px; }
.mbar__item--main .mbar__ico { margin-top: -28px; }

/* ---------- Angebot: Vorteile 3 + 3 ---------- */
@media (min-width: 600px) {
  .offer__feats { display: grid; grid-template-columns: repeat(3, max-content); gap: .55rem 1.6rem; }
}

/* ---------- Interview: kurzer Titel, Fakten, Video im Rahmen ---------- */
.interview__grid { align-items: center; }
@media (min-width: 1000px) { .interview__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.4rem, 1rem + 4vw, 5rem); } }
.interview__copy h2 { font-size: var(--fs-h2); line-height: 1.08; margin-bottom: .8rem; }
.interview__lead { margin: 0 0 1.2rem; color: var(--text-muted); font-size: var(--fs-lead); line-height: 1.65; max-width: 46ch; }
.interview__facts { list-style: none; margin: 0 0 1.6rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.interview__facts li { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border-radius: var(--r-pill); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-size: .86rem; font-weight: 600; color: var(--grey-700); }
.interview__facts .icon { width: 16px; height: 16px; color: var(--red); }
.interview .actions { margin-top: 0; align-items: center; }
.interview .actions .btn .icon { width: 16px; height: 16px; fill: currentColor; }
.interview__video { position: relative; padding: 0 0 1.6rem; }
.interview__ring { position: absolute; z-index: 0; right: -4%; top: -8%; width: 46%; aspect-ratio: 1; border-radius: 50%; border: 1px dashed var(--red-line); animation: ring-turn 90s linear infinite; pointer-events: none; }
.interview .yt { z-index: 1; border-radius: var(--r-frame); box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.75), 0 40px 80px -36px rgba(68,70,74,.55); transform: rotate(-1.2deg); transition: transform .8s var(--ease-out); }
.interview__video:hover .yt { transform: none; }
.interview .yt__btn { background: linear-gradient(180deg, rgba(40,42,46,0) 55%, rgba(40,42,46,.25)); }
.interview .yt__play { width: 78px; height: 78px; }
.interview__badge { position: absolute; z-index: 2; left: -1.2rem; bottom: .2rem; display: inline-flex; align-items: center; gap: .7rem; padding: .45rem 1.1rem .45rem .45rem; border-radius: var(--r-pill); background: rgba(255,255,255,.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); font-family: var(--font-head); font-size: .8rem; color: var(--text-muted); }
.interview__badge img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--red-line); }
.interview__badge strong { display: block; font-size: .95rem; color: var(--grey-700); }
.interview .vt-note { position: relative; z-index: 1; margin: 1.6rem 0 0; text-align: right; }
@media (max-width: 999px) { .interview__video { order: -1; } .interview__badge { left: .6rem; bottom: 1rem; } .interview .vt-note { text-align: left; } }
@media (max-width: 599px) {
  .interview__copy h2 { font-size: 1.9rem; }
  .interview__lead { font-size: .95rem; }
  .interview__facts li { font-size: .78rem; padding: .38rem .7rem; }
  .interview .yt { transform: none; border-radius: var(--r-4); }
  .interview__badge { font-size: .72rem; padding-right: .8rem; } .interview__badge img { width: 36px; height: 36px; }
  .interview .actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* ---------- Warum Dental Beauty? – ruhiges Premium-Panel ---------- */

@media (prefers-reduced-motion: reduce) { .interview__ring { animation: none; } }

/* Studios: Einleitung (auch auf dem Handy sichtbar) */
.studios__lead { max-width: 46ch; margin: 0; }
.studios__lead a { color: var(--red-deep); font-weight: 700; text-decoration: underline; text-decoration-color: var(--red-line); text-underline-offset: 3px; }
@media (max-width: 599px) { #studios .section-head .lead.studios__lead { display: block; font-size: .95rem; } }

/* Interview auf Handy/Tablet: Porträt-Badge oben links im Video statt über dem Hinweistext */
@media (max-width: 999px) {
  .interview__badge { top: .8rem; left: .8rem; bottom: auto; }
  .interview .vt-note { margin-top: 1rem; }
  .interview__video { padding-bottom: 0; }
}

/* Interview-Video gerade; beim Darüberfahren leicht größer */
.interview .yt { transform: none; transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.interview__video:hover .yt, .interview__video:focus-within .yt { transform: scale(1.03); box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.8), 0 50px 90px -36px rgba(68,70,74,.6); }
@media (prefers-reduced-motion: reduce) { .interview__video:hover .yt, .interview__video:focus-within .yt { transform: none; } }

/* ==========================================================================
   Chip-Reihen sauber umbrechen: entweder alle in einer Reihe oder gleichmäßig
   untereinander (richtet sich nach der Breite des jeweiligen Bereichs)
   ========================================================================== */
/* Paket-Finder: 4 Merkmale → 1 × 4 oder 2 × 2 */
.pf__res-main { container-type: inline-size; min-width: 0; }
.pf__facts { display: grid; grid-template-columns: repeat(2, max-content); gap: .5rem; }
.pf__facts li { font-size: .84rem; padding: .42rem .8rem; white-space: nowrap; }
@container (min-width: 720px) { .pf__facts { grid-template-columns: repeat(4, max-content); } }
@container (max-width: 470px) {
  .pf__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf__facts li { white-space: normal; font-size: .78rem; line-height: 1.3; padding: .45rem .7rem; }
}

/* Angebot: 6 Vorteile → 3 × 2 oder 2 × 3 */
.offer__main { container-type: inline-size; min-width: 0; }
.offer__feats { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: .5rem 1.4rem; }
@container (min-width: 560px) { .offer__feats { grid-template-columns: repeat(3, max-content); } }
@container (max-width: 380px) { .offer__feats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem .6rem; } }

/* Interview: 3 Fakten → 1 × 3 oder untereinander */
.interview__copy { container-type: inline-size; min-width: 0; }
.interview__facts { display: grid; grid-template-columns: max-content; justify-items: start; gap: .45rem; }
.interview__facts li { white-space: nowrap; }
@container (min-width: 30em) { .interview__facts { grid-template-columns: repeat(3, max-content); } }

/* Interview: Deko-Ring nicht über den Rand */
.interview { overflow-x: clip; }

/* Ergebnisgarantie: Erklärung in drei Schritten */
.guarantee__head { max-width: 760px; margin-inline: auto; text-align: center; }
.guarantee__head h2 { margin-bottom: .7rem; }
.award .guarantee__head h2 em { display: block; }
.guarantee__lead { margin: 0 auto; max-width: 58ch; color: var(--text-muted); font-size: var(--fs-lead); line-height: 1.65; }
.guarantee__steps { list-style: none; margin: clamp(1.8rem, 1.2rem + 2vw, 2.8rem) 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: none; }
.guarantee__steps li { position: relative; display: flex; flex-direction: column; gap: .4rem; padding: 1.5rem 1.4rem 1.4rem; border-radius: var(--r-4); background: rgba(255,255,255,.9); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px var(--platinum-200), var(--shadow-1); text-align: left; }
.guarantee__steps strong { font-family: var(--font-head); font-size: 1.08rem; color: var(--grey-700); }
.guarantee__steps li > span:last-child { font-size: .93rem; line-height: 1.55; color: var(--text-muted); }
.guarantee__num { width: 34px; height: 34px; display: grid; place-items: center; margin-bottom: .3rem; border-radius: 50%; background: var(--red-grad); color: #fff; font-family: var(--font-head); font-weight: 700; font-size: .9rem; box-shadow: 0 8px 18px -10px rgba(200,16,46,.7); }
@media (min-width: 900px) {
  .guarantee__steps li + li::before { content: ""; position: absolute; left: -1rem; top: 2.35rem; width: 1rem; height: 1px; background: var(--red-line); }
}
.guarantee__note { max-width: 820px; margin: 1.4rem auto 0; padding: .9rem 1.1rem; border-radius: var(--r-3); background: rgba(243,243,244,.7); box-shadow: 0 0 0 1px var(--platinum-200); font-size: .86rem; line-height: 1.6; color: var(--text-muted); text-align: left; }
.guarantee__note strong { color: var(--grey-700); }
.award .actions { margin-top: 1.6rem; }
@media (max-width: 899px) { .guarantee__steps { grid-template-columns: 1fr; gap: .7rem; } .guarantee__steps li { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: .8rem; padding: 1.1rem 1.1rem; } .guarantee__num { margin: 0; } .guarantee__steps li > span:last-child { flex-basis: 100%; } }

.award .guarantee__note { max-width: 860px; }
.award .guarantee__head h2 { max-width: 20ch; }
.award .guarantee__lead { max-width: 60ch; }

/* Infoleiste: „Herbst-Aktion“-Label kleiner · Logo etwas größer */
.topbar__tag { padding: .12rem .5rem; font-size: .62rem; gap: .35rem; letter-spacing: .05em; }
.topbar__tag .live-dot { width: 6px; height: 6px; }
.promo__tag { padding: .12rem .45rem; font-size: .58rem; }
.brand img { height: 64px; }
@media (max-width: 899px) { .brand img { height: 50px; } }
@media (min-width: 1920px) { .brand img { height: 70px; } }
@media (min-width: 2400px) { .brand img { height: 78px; } }
@media (min-width: 3200px) { .brand img { height: 90px; } }

/* ---------- Unsere Leistungen: Karten im Academy-Stil ---------- */
.svc3 { --svc-gap: clamp(1.2rem, .7rem + 1.2vw, 2rem); position: relative; display: grid; gap: var(--svc-gap); grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; padding-top: .6rem; }
.svc3__card { position: relative; display: flex; flex-direction: column; border-radius: var(--r-frame); background: rgba(255,255,255,.94); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.svc3__card:hover, .svc3__card:focus-within { z-index: 2; scale: 1.03; box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 50px 90px -36px rgba(68,70,74,.6); }
.svc3__card--featured { background: linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.95)), var(--marble) center / cover; box-shadow: 0 0 0 2px var(--red-line), var(--shadow-2); }
.svc3__card--featured:hover, .svc3__card--featured:focus-within { box-shadow: 0 0 0 2px rgba(200,16,46,.5), 0 0 0 10px rgba(255,255,255,.8), 0 50px 90px -36px rgba(68,70,74,.6); }
.svc3__flag { position: absolute; z-index: 3; top: 1rem; right: 1rem; padding: .42rem .85rem; border-radius: var(--r-pill); background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .66rem; font-weight: 800; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; box-shadow: 0 10px 22px -10px rgba(200,16,46,.7); }
.svc3__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--r-frame) var(--r-frame) 0 0; background: var(--platinum-100); }
.svc3__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.svc3__card:hover .svc3__media img { transform: scale(1.05); }
.svc3__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0) 55%, rgba(255,255,255,.95)); pointer-events: none; }
.svc3__chip { position: absolute; z-index: 2; left: clamp(1.1rem, .8rem + 1vw, 1.6rem); bottom: .9rem; display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .95rem; border-radius: var(--r-pill); background: rgba(255,255,255,.97); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .82rem; font-weight: 700; color: var(--grey-700); }
.svc3__chip .icon { width: 16px; height: 16px; color: var(--red); }
.svc3__body { display: flex; flex-direction: column; flex: 1; padding: .8rem clamp(1.2rem, .8rem + 1.2vw, 2rem) clamp(1.3rem, .9rem + 1.2vw, 2rem); }
.svc3__kicker { margin: 0; font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-500); }
.svc3__card--featured .svc3__kicker { color: var(--red); }
.svc3__title { margin: .25rem 0 .45rem; font-size: clamp(1.5rem, 1.2rem + .9vw, 2.05rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.12; }
.svc3__title em { font-family: var(--font-accent); font-style: italic; font-weight: 400; color: var(--grey-500); background: none; -webkit-text-fill-color: currentColor; }
.svc3__lead { margin: 0 0 1rem; font-size: .93rem; line-height: 1.55; color: var(--text-muted); }
.svc3__rows { list-style: none; margin: 0 0 1.1rem; padding: 0; }
.svc3__rows li { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: center; padding: .62rem 0; border-top: 1px solid var(--line); font-size: .92rem; line-height: 1.38; color: var(--grey-700); }
.svc3__rows small { display: block; margin-bottom: .12rem; font-family: var(--font-head); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); }
.svc3__ico { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 6px 14px -10px rgba(40,42,46,.5); }
.svc3__ico .icon { width: 18px; height: 18px; color: var(--grey-700); }
.svc3__card--featured .svc3__ico .icon { color: var(--red); }
.svc3__ideal { display: flex; gap: .7rem; align-items: flex-start; margin: auto 0 1.1rem; padding: .85rem 1rem; border-radius: var(--r-2); background: var(--red-soft); font-size: .88rem; line-height: 1.45; color: var(--grey-700); }
.svc3__ideal .icon { width: 19px; height: 19px; flex: none; margin-top: .08rem; color: var(--red); }
.svc3__ideal strong { font-family: var(--font-head); }
.svc3__cta { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 52px; padding: .8rem 1.2rem; border-radius: var(--r-pill); background: #fff; box-shadow: inset 0 0 0 1.5px #c3c6ca; font-family: var(--font-head); font-size: .98rem; font-weight: 600; color: var(--grey-700); text-decoration: none; transition: box-shadow .3s, color .3s, transform .3s var(--ease-out); }
.svc3__cta .icon { width: 18px; height: 18px; transition: transform .3s var(--ease-out); }
.svc3__cta:hover { color: var(--red-deep); box-shadow: inset 0 0 0 1.5px var(--red-line), 0 12px 24px -16px rgba(68,70,74,.5); }
.svc3__cta:hover .icon { transform: translateX(4px); }
.svc3__cta--primary { background: var(--red-grad); color: #fff; box-shadow: 0 14px 28px -14px rgba(200,16,46,.75), inset 0 1px 0 rgba(255,255,255,.25); }
.svc3__cta--primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 18px 32px -14px rgba(200,16,46,.85), inset 0 1px 0 rgba(255,255,255,.25); }
@media (max-width: 999px) {
  .svc3 { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(78%, 400px); gap: 1rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin-inline: calc(var(--gutter) * -1); padding: .6rem var(--gutter) 1.4rem; scrollbar-width: none; }
  .svc3::-webkit-scrollbar { display: none; }
  .svc3 > * { scroll-snap-align: start; }
  .svc3__card:hover, .svc3__card:focus-within { scale: none; }
}
@media (max-width: 599px) {
  .svc3 { grid-auto-columns: 87%; gap: .8rem; }
  .svc3__rows li { gap: .7rem; padding: .55rem 0; font-size: .86rem; }
  .svc3__ico { width: 36px; height: 36px; } .svc3__ico .icon { width: 16px; height: 16px; }
  .svc3__lead { font-size: .88rem; }
  .svc3__ideal { font-size: .84rem; padding: .75rem .85rem; }
  .svc3__flag { top: .8rem; right: .8rem; font-size: .6rem; }
}
@media (prefers-reduced-motion: reduce) { .svc3__card { scale: none !important; } }

/* Öffnungsstatus-Punkt: offen = grün · geschlossen = weiß (rote Infoleiste) bzw. rot (beim Video) */
.topbar__status .dot { background: #3fd68a; box-shadow: 0 0 0 3px rgba(255,255,255,.35); }
.topbar__status .dot--closed { background: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.3); }
.stage-label .dot { background: #2fb36f; box-shadow: 0 0 0 4px rgba(47,179,111,.2); }
.stage-label .dot--closed { background: var(--red); box-shadow: 0 0 0 4px rgba(200,16,46,.16); }

/* ---------- Zahnaufhellung vom Fachpersonal ---------- */
.expert__grid { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: center; }
@media (min-width: 1000px) { .expert__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); } }
.expert__lead { margin: 0 0 1.6rem; color: var(--text-muted); font-size: var(--fs-lead); line-height: 1.7; max-width: 56ch; }
.expert__list { list-style: none; margin: 0 0 1.8rem; padding: 0; display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.expert__list li { display: flex; gap: .85rem; align-items: flex-start; padding: 1rem 1.05rem; border-radius: var(--r-3); background: rgba(255,255,255,.85); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px var(--platinum-200); font-size: .88rem; line-height: 1.5; color: var(--text-muted); }
.expert__list strong { display: block; margin-bottom: .2rem; font-family: var(--font-head); font-size: .98rem; color: var(--grey-700); }
.expert__ico { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 12px; background: var(--red-grad); color: #fff; box-shadow: 0 10px 20px -12px rgba(200,16,46,.7); }
.expert__ico .icon { width: 19px; height: 19px; }
.expert .actions { margin-top: 0; align-items: center; }
.expert__media { position: relative; }
.expert__photo { position: relative; aspect-ratio: 4 / 4.4; border-radius: var(--r-frame); overflow: hidden; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.75), var(--shadow-2); }
.expert__photo img { width: 100%; height: 100%; object-fit: cover; }
.expert__us { position: absolute; top: 1rem; left: 1rem; display: inline-flex; align-items: center; gap: .55rem; padding: .45rem .9rem; border-radius: var(--r-pill); background: rgba(255,255,255,.94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--grey-700); }
.us-flag { width: 22px; height: 15px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.expert__award { position: absolute; left: -1.4rem; right: 12%; bottom: 0; display: flex; align-items: center; gap: .9rem; padding: .85rem 1.1rem .85rem .85rem; border-radius: var(--r-4); background: rgba(255,255,255,.96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); text-decoration: none; color: var(--text-muted); font-size: .82rem; line-height: 1.45; transition: transform .4s var(--ease-out); }
.expert__award:hover { color: var(--text-muted); transform: translateY(-3px); }
.expert__award strong { display: block; font-family: var(--font-head); font-size: 1rem; color: var(--grey-700); }
.expert__seals { display: flex; gap: .35rem; flex: none; }
.expert__seals img { width: 56px; height: 56px; filter: drop-shadow(0 6px 10px rgba(68,70,74,.18)); }
@media (max-width: 999px) { .expert__media { order: -1; } .expert__photo { aspect-ratio: 16 / 11; } .expert__award { left: .8rem; right: .8rem; } }
@media (max-width: 599px) {
  .expert__list { grid-template-columns: 1fr; gap: .6rem; }
  .expert__list li { padding: .85rem .9rem; }
  .expert__lead { font-size: .97rem; }
  .expert__photo { aspect-ratio: 4 / 3.4; border-radius: var(--r-4); }
  .expert__us { font-size: .68rem; padding: .35rem .7rem; }
  .expert__award { position: relative; left: auto; right: auto; margin: -1.6rem .6rem 0; }
  .expert__media { padding-bottom: 0; }
  .expert__seals img { width: 46px; height: 46px; }
}

/* Laufband: „Herbst-Aktion“ als hervorgehobenes Stichwort statt eigenem Label */
.ticker__group .ticker__hl { font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.topbar__news { max-width: min(52vw, 700px); }

/* Social-Icons in der Infoleiste: gleicher roter Hintergrund wie die Leiste */
.topbar__social a { background: transparent; box-shadow: none; --yt-cut: #b80f2a; }
.topbar__social a:hover { background: rgba(255,255,255,.18); color: #fff; --yt-cut: #c8102e; }

/* ---------- Mega-Menü (Desktop) ---------- */
@media (min-width: 1180px) {
  .nav { align-self: stretch; }
  .nav__list { height: 100%; gap: clamp(.7rem, -.2rem + 1.2vw, 1.7rem); }
  .nav__item { display: flex; align-items: center; gap: .1rem; height: 100%; }
  .nav__link--plain { cursor: default; }
  .nav__tg { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: -.3rem; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--grey-400); transition: color var(--t-fast), background-color var(--t-fast); }
  .nav__tg .icon { width: 14px; height: 14px; transition: transform 300ms var(--ease-out); }
  .nav__tg:hover, .nav__tg:focus-visible { background: var(--platinum-50); color: var(--red); }
  .has-mega:hover > .nav__link, .has-mega.is-open > .nav__link, .has-mega:focus-within > .nav__link { color: var(--grey-700); }
  .has-mega:hover > .nav__link::after, .has-mega.is-open > .nav__link::after { transform: scaleX(1); }
  .has-mega:hover > .nav__tg .icon, .has-mega.is-open > .nav__tg .icon { transform: rotate(180deg); color: var(--red); }

  .mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; padding: 0 var(--frame); opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none; transition: opacity 260ms var(--ease), transform 320ms var(--ease-out), visibility 0s linear 260ms; }
  .has-mega:hover > .mega, .has-mega:focus-within > .mega, .has-mega.is-open > .mega { opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition-delay: 60ms, 60ms, 0s; }
  .has-mega.is-closed > .mega { opacity: 0; visibility: hidden; pointer-events: none; }
  .mega::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
  .mega__in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) clamp(260px, 22vw, 340px); gap: clamp(1.4rem, 2vw, 2.4rem); max-width: calc(var(--container) + 2 * var(--gutter)); margin: 0 auto; padding: clamp(1.4rem, 1rem + 1vw, 2rem); border-radius: 0 0 var(--r-3) var(--r-3); background: #fff; box-shadow: 0 0 0 1px var(--line), 0 30px 60px -30px rgba(40,42,46,.35); overflow: hidden; }
  .mega__in::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--red-grad); }
  .mega__k { margin: 0 0 .9rem; padding-left: .9rem; font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
  .mega__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem .8rem; margin: 0; padding: 0; list-style: none; }
  #mega-studios .mega__grid, #mega-preise .mega__grid { grid-auto-flow: column; grid-template-rows: repeat(3, auto); }   /* spaltenweise: Städte bzw. Pakete links untereinander */
  .mega__a { display: flex; align-items: flex-start; gap: .9rem; padding: .8rem .9rem; border-radius: var(--r-2); text-decoration: none; color: var(--grey-600); transition: background-color var(--t-fast); }
  .mega__a:hover, .mega__a:focus-visible { background: var(--platinum-50); color: var(--grey-700); }
  .mega__ico { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(145deg, #fff 0%, #e9eaec 55%, #d3d5d8 100%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 0 0 1px rgba(109,110,113,.16), 0 6px 14px -8px rgba(40,42,46,.4); color: var(--grey-600); transition: color var(--t-fast), transform 300ms var(--ease-out); }
  .mega__ico .icon { width: 19px; height: 19px; }
  .mega__a:hover .mega__ico { color: var(--red); transform: scale(1.06); }
  .mega__a strong { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; font-family: var(--font-head); font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--grey-700); }
  .mega__a small { display: block; margin-top: .15rem; font-size: .84rem; line-height: 1.45; color: var(--text-muted); }
  .mega__soon { padding: .1rem .5rem; border-radius: var(--r-pill); background: var(--platinum-50); box-shadow: 0 0 0 1px var(--platinum-200); font-style: normal; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--grey-500); }

  .mega__aside { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; padding: 1.3rem 1.4rem 1.4rem; border-radius: var(--r-2); background: linear-gradient(rgba(255,255,255,.72), rgba(246,246,247,.9)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200); font-size: .9rem; line-height: 1.5; color: var(--text-muted); overflow: hidden; }
  .mega__aside strong { font-family: var(--font-head); font-size: 1.15rem; font-weight: 600; line-height: 1.25; color: var(--grey-700); }
  .mega__aside .btn { margin-top: auto; }
  .mega__aside--img { padding-top: 0; }
  .mega__aside--img img { width: calc(100% + 2.8rem); max-width: none; height: 130px; margin: 0 -1.4rem .35rem; object-fit: cover; }
  .mega__tag { display: inline-flex; padding: .25rem .7rem; border-radius: var(--r-pill); background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
  .mega__tag--silver { background: linear-gradient(145deg, #fff, #dcdee1); color: var(--grey-600); box-shadow: 0 0 0 1px var(--platinum-200); }
  .mega__note { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; color: var(--text-muted); }
  .mega__note .icon { width: 14px; height: 14px; color: var(--red); }
  .mega__status { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--font-head); font-size: .78rem; font-weight: 600; color: var(--grey-600); }
  .mega__status .dot { width: 8px; height: 8px; border-radius: 50%; background: #1fae5b; box-shadow: 0 0 0 4px rgba(31,174,91,.15); }
  .mega__status .dot--closed { background: var(--red); box-shadow: 0 0 0 4px rgba(200,16,46,.12); }
  .mega__hours { width: 100%; margin: .2rem 0 .4rem; padding: 0; list-style: none; font-size: .82rem; }
  .mega__hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .3rem 0; border-bottom: 1px solid var(--line); }
  .mega__hours li span:last-child { color: var(--grey-700); font-weight: 600; }
  .mega__hours li span { white-space: nowrap; }
  @media (max-width: 1399px) { .mega__hours li { gap: .5rem; font-size: .78rem; } }
}
@media (min-width: 1180px) and (max-width: 1399px) { .mega__grid { gap: .2rem .4rem; } .mega__a { padding: .7rem; } }
@media (prefers-reduced-motion: reduce) { .mega, .mega__ico, .nav__tg .icon { transition: none !important; } }

/* ---------- Abschluss-CTA: Hintergrund wie die Section darüber + Lächeln vollständig ---------- */
.footer-shell { padding: var(--section-y) var(--frame) var(--frame); }
.footer-shell > .site-footer { margin: 0; }
.cta-wrap { padding: clamp(2rem, 1.4rem + 2vw, 3.6rem) var(--frame) var(--frame); background: rgba(255,255,255,.62); }
.cta-wrap > .cta-band { margin: 0; }
main:has(> .cta-wrap:last-child) + .footer-shell { padding-top: 0; background: rgba(255,255,255,.62); }
.cta-band--photo { background: linear-gradient(rgba(250,250,249,.6), rgba(250,250,249,.6)), var(--marble) center / cover; background-color: #f6f6f5; }
@media (min-width: 761px) {
  .cta-band--photo > img { inset: 0 0 0 auto; width: auto; max-width: none; height: 100%; aspect-ratio: 1600 / 1162; object-position: right center; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%); mask-image: linear-gradient(90deg, transparent 0%, #000 34%); }
  .cta-band--photo::before { background: linear-gradient(90deg, rgba(248,248,247,.9) 0%, rgba(248,248,247,.7) 34%, rgba(248,248,247,0) 56%); }
}
@media (min-width: 761px) and (max-width: 1099px) {
  .cta-band--photo { padding-block: 3.2rem 3.4rem; }
  .cta-band--photo > img { width: 62%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 88% center; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%); mask-image: linear-gradient(90deg, transparent 0%, #000 22%); }
  .cta-band--photo::before { background: linear-gradient(90deg, rgba(248,248,247,.9) 0%, rgba(248,248,247,.6) 40%, rgba(248,248,247,0) 52%); }
  .cta-band__copy { max-width: 25rem; }
}
@media (max-width: 760px) {
  .cta-band--photo > img { height: auto; aspect-ratio: 1600 / 1162; object-position: right center; -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%); mask-image: linear-gradient(180deg, #000 78%, transparent 100%); }
  .cta-band--photo::before { display: none; }
}

/* ---------- Preis-Tabs mit Member Cards ---------- */
.ptabs__intro { max-width: 46rem; margin: -.8rem auto 1.8rem; text-align: center; font-size: .95rem; color: var(--text-muted); }
@media (max-width: 599px) {
  .segmented--tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; border-radius: 24px; }
  .segmented--tabs button { min-height: 44px; padding-inline: .5rem; font-size: .88rem; }
  .ptabs__intro { margin-top: -.4rem; font-size: .88rem; }
}

/* ---------- Angebotsbox: Titel auf größeren Bildschirmen immer genau zweizeilig ---------- */
@container (min-width: 20em) {
  .offer__title { font-size: clamp(1.25rem, 6.1cqi, 2.1rem); }
  .offer__l { display: block; white-space: nowrap; }
}

/* Leistungs-Karten: Reveal-Übergang + sanftes Größerwerden beim Darüberfahren */
.js .svc3__card.reveal { transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out), scale .6s var(--ease-out), box-shadow .6s var(--ease-out); transition-delay: var(--d, 0ms), var(--d, 0ms), 0s, 0s; }

/* Große Google-Note: Verlaufsschrift darf die letzte Ziffer und das Komma nicht abschneiden */
.rating-hero__score { padding: .04em .12em .1em .02em; margin: -.04em -.12em -.1em -.02em; }

/* ---------- Warum Dental Beauty? – Bento im Stil der Leistungs-Karten ---------- */
.why7 { display: grid; gap: clamp(.9rem, .6rem + .9vw, 1.4rem); grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) minmax(0, 1fr); grid-template-areas: "g e s" "u1 l u2"; }
.why7__card { position: relative; overflow: hidden; isolation: isolate; margin: 0; border-radius: var(--r-frame); background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); text-decoration: none; color: var(--text); transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
a.why7__card:hover, a.why7__card:focus-visible { z-index: 2; scale: 1.02; color: var(--text); box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55); }
.js .why7__card.reveal { transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out), scale .6s var(--ease-out), box-shadow .6s var(--ease-out); transition-delay: var(--d, 0ms), var(--d, 0ms), 0s, 0s; }

.why7__card--google, .why7__card--seals { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; padding: clamp(1.4rem, 1rem + 1.2vw, 2.1rem); }
.why7__card--google { grid-area: g; background: radial-gradient(120% 80% at 100% 0%, rgba(200,16,46,.07), transparent 58%), rgba(255,255,255,.95); }
.why7__card--seals { grid-area: s; background: radial-gradient(120% 80% at 100% 100%, rgba(200,16,46,.07), transparent 58%), rgba(255,255,255,.95); }
.why7__k { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-500); }
.why7__k--red { color: var(--red); }
.why7__gl { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), 0 8px 18px -10px rgba(40,42,46,.45); }
.why7__gl .g-logo { width: 19px; height: 19px; }
.why7__big { margin: .5rem 0 .1rem -.03em; padding: .04em .14em .08em .02em; font-family: var(--font-head); font-weight: 500; font-size: clamp(3.6rem, 2.4rem + 3.6vw, 6rem); line-height: .9; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.why7__card .stars svg { width: 18px; height: 18px; }
.why7__title { margin-top: .55rem; font-family: var(--font-head); font-size: clamp(1.05rem, .95rem + .35vw, 1.25rem); font-weight: 600; line-height: 1.3; color: var(--grey-700); }
.why7__t { font-size: .9rem; line-height: 1.5; color: var(--text-muted); }
.why7__go { display: inline-block; margin-top: auto; padding-top: 1.1rem; font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--red); }
.why7__go .icon { display: inline-block; width: 16px; height: 16px; margin-left: .35rem; vertical-align: -.2em; transition: transform .3s var(--ease-out); }
a.why7__card:hover .why7__go .icon { transform: translateX(4px); }

.why7__seals { display: flex; margin: -.2rem 0 .7rem -.3rem; }
.why7__seals img { width: auto; height: clamp(76px, 3.6rem + 2.2vw, 104px); filter: drop-shadow(0 12px 16px rgba(40,42,46,.2)); transition: rotate .6s var(--ease-out), translate .6s var(--ease-out); }
.why7__seals img:first-child { rotate: -7deg; position: relative; z-index: 1; }
.why7__seals img:last-child { rotate: 6deg; margin-left: -.6rem; translate: 0 .3rem; }
a.why7__card:hover .why7__seals img:first-child { rotate: -11deg; translate: -.2rem -.2rem; }
a.why7__card:hover .why7__seals img:last-child { rotate: 10deg; translate: .3rem 0; }

.why7__card--elena { grid-area: e; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: clamp(1.6rem, 1.2rem + 1.2vw, 2.4rem) 1.4rem; background: radial-gradient(60% 45% at 50% 78%, rgba(255,255,255,.95), rgba(255,255,255,0) 72%), linear-gradient(rgba(255,255,255,.5), rgba(244,244,245,.8)), var(--marble) center / cover; box-shadow: 0 0 0 2px var(--red-line), var(--shadow-2); }
.why7__years { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; column-gap: .35rem; margin: .7rem 0 0; font-family: var(--font-head); color: var(--grey-700); }
.why7__years strong { padding: 0 .1em .04em 0; font-size: clamp(5rem, 3.4rem + 4.6vw, 8.4rem); font-weight: 600; line-height: .85; letter-spacing: -.06em; background: var(--red-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.why7__years em { font-family: var(--font-accent); font-style: italic; font-weight: 400; font-size: clamp(1.7rem, 1.3rem + 1.2vw, 2.5rem); color: var(--grey-500); }
.why7__years span { flex-basis: 100%; margin-top: .45rem; font-size: clamp(1rem, .92rem + .3vw, 1.15rem); font-weight: 500; }
.why7__portrait { display: block; width: min(84%, 340px); height: auto; margin-top: auto; padding-top: 1.2rem; filter: drop-shadow(0 24px 30px rgba(40,42,46,.18)); }
.why7__name { display: inline-flex; margin-top: 1.3rem; align-items: center; gap: .45rem; padding: .5rem 1rem; border-radius: var(--r-pill); background: rgba(255,255,255,.96); box-shadow: var(--shadow-1); font-size: .82rem; white-space: nowrap; color: var(--text-muted); }
.why7__name strong { font-family: var(--font-head); color: var(--grey-700); }
.why7__name .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red-grad); box-shadow: 0 0 0 3px var(--red-soft); }

.why7__usps { list-style: none; display: flex; flex-direction: column; justify-content: center; padding: .4rem clamp(1.1rem, .8rem + 1vw, 1.7rem); }
.why7__usps--a { grid-area: u1; } .why7__usps--b { grid-area: u2; }
/* Standort mit Brunnen-Center-Logo */
.why7__loc { grid-area: l; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: clamp(1.1rem, .9rem + .8vw, 1.6rem) clamp(1.1rem, .8rem + 1vw, 1.8rem); text-align: center; background: radial-gradient(90% 70% at 50% 0%, rgba(200,16,46,.06), transparent 62%), rgba(255,255,255,.95); }
.why7__loc-logo { display: block; width: min(240px, 72%); height: auto; transition: transform .6s var(--ease-out); }
.why7__loc:hover .why7__loc-logo { transform: scale(1.03); }
.why7__loc-t { margin: 0; max-width: 34ch; font-size: .93rem; line-height: 1.5; color: var(--grey-700); }
.why7__usps li { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: center; padding: .9rem 0; font-size: .93rem; line-height: 1.38; color: var(--grey-700); }
.why7__usps li + li { border-top: 1px solid var(--line); }
.why7__usps small { display: block; margin-bottom: .12rem; font-family: var(--font-head); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); }
.why7__ico { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 6px 14px -10px rgba(40,42,46,.5); }
.why7__ico .icon { width: 18px; height: 18px; color: var(--red); }

@media (max-width: 999px) {
  .why7 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "g s" "e l" "u1 u2"; }
}
@media (max-width: 679px) {
  .why7 { grid-template-areas: "g s" "e e" "l l" "u1 u1" "u2 u2"; gap: .7rem; }
  .why7__card--google, .why7__card--seals { padding: 1.1rem .95rem 1.15rem; }
  .why7__k { gap: .45rem; font-size: .58rem; letter-spacing: .12em; }
  .why7__gl { width: 30px; height: 30px; } .why7__gl .g-logo { width: 15px; height: 15px; }
  .why7__big { font-size: 3.1rem; }
  .why7__card .stars svg { width: 13px; height: 13px; }
  .why7__title { font-size: .9rem; }
  .why7__t { font-size: .78rem; }
  .why7__go { font-size: .8rem; padding-top: .8rem; }
  .why7__seals img { height: 58px; }
  .why7__portrait { width: min(78%, 300px); }
  .why7__usps li { gap: .75rem; padding: .75rem 0; font-size: .86rem; }
  .why7__loc-t { font-size: .86rem; }
  .why7__ico { width: 36px; height: 36px; } .why7__ico .icon { width: 16px; height: 16px; }
}
@media (prefers-reduced-motion: reduce) { .why7__card, .why7__seals img, .why7__loc-logo { scale: none !important; transform: none !important; transition: none !important; } }

/* Preis-Karten: dezenter Hinweis unter „Keine Anzahlung“ */
.price-card__hint { display: block; margin-top: .2rem; font-size: .72rem; color: var(--grey-400); }

/* Paket-Finder: Frage 3 mit Gutschein-Kachel auffüllen (nur wenn die Fragen nebeneinander stehen) */
.pf__gift { display: none; }
@media (min-width: 1000px) {
  .pf__q { align-content: start; }
  .pf__gift { display: flex; align-items: center; gap: .85rem; min-height: 64px; padding: .7rem .9rem; border-radius: 16px; background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px var(--platinum-300); outline: 1px dashed rgba(200,16,46,.35); outline-offset: -5px; text-decoration: none; color: var(--text); transition: background-color .3s, transform .3s var(--ease-out), box-shadow .3s; }
  .pf__gift:hover { color: var(--text); background: #fff; transform: translateY(-1px); box-shadow: inset 0 0 0 1px var(--platinum-300), var(--shadow-1); }
  .pf__gift strong { display: block; font-family: var(--font-head); font-size: .98rem; color: var(--grey-700); }
  .pf__gift small { display: block; font-size: .8rem; line-height: 1.35; color: var(--text-muted); }
  .pf__gift > .icon { width: 18px; height: 18px; margin-left: auto; flex: none; color: var(--red); transition: transform .3s var(--ease-out); }
  .pf__gift:hover > .icon { transform: translateX(3px); }
  .pf__gift .pf__ico .icon { color: var(--red); }
}

/* ---------- Zahnaufhellung vom Fachpersonal: redaktionelle Liste mit Silber-Icons ---------- */
.expert__lead { margin-bottom: 1.6rem; max-width: 54ch; }
.expert__lead strong { color: var(--red-deep); font-weight: 600; }

.expert__list { gap: 0 1.8rem; margin-bottom: 1.9rem; }
.expert__list li { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: start; padding: 1.05rem 0 1.1rem; border-radius: 0; background: none; box-shadow: none; border-top: 1px solid var(--line); font-size: .88rem; line-height: 1.55; color: var(--text-muted); }
.expert__list strong { margin-bottom: .25rem; }

@media (min-width: 1000px) {
  .expert__media { isolation: isolate; }
  .expert__media::before { content: ""; position: absolute; inset: 1.8rem -1.8rem -1.8rem 1.8rem; z-index: -1; border-radius: var(--r-frame); border: 1px solid var(--red-line); background: linear-gradient(135deg, rgba(200,16,46,.05), rgba(255,255,255,0) 60%); }
}
@media (max-width: 599px) {
  .expert__list li { padding: .85rem 0 .9rem; gap: .75rem; }
}

/* ---------- Video-Stimmen: Schatten nicht mehr abgeschnitten, weiche Ränder ---------- */
.carousel--videos .carousel__track { --vb: min(40px, var(--gutter)); margin: -10px calc(var(--vb) * -1) -56px; padding: 34px var(--vb) 86px; scroll-padding-inline: var(--vb); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--vb), #000 calc(100% - var(--vb)), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 var(--vb), #000 calc(100% - var(--vb)), transparent 100%); }
.carousel--videos .vt { box-shadow: 0 28px 46px -26px rgba(40,42,46,.42), 0 10px 18px -14px rgba(40,42,46,.25); }
@media (max-width: 599px) {
  .carousel--videos .carousel__track { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); -webkit-mask-image: none; mask-image: none; }
}

/* ---------- Weiße Sections: weicher Übergang zum Marmor statt harter Kante ---------- */
.section--white { --wf: clamp(70px, 6vw, 150px); --wt: var(--wf); --wb: var(--wf); background: linear-gradient(180deg, rgba(255,255,255,0) 0, rgba(255,255,255,.62) var(--wt), rgba(255,255,255,.62) calc(100% - var(--wb)), rgba(255,255,255,0) 100%); backdrop-filter: none; -webkit-backdrop-filter: none; }
.section--white + .section--white { --wt: 0px; }
.section--white:has(+ .section--white), .section--white:has(+ .cta-wrap) { --wb: 0px; }

/* Hero: Videokreis minimal größer */
.hero-portrait--video { width: min(100%, 37.5rem); }
@media (max-width: 599px) { .hero-portrait--video { max-width: 345px !important; } }
@media (min-width: 600px) and (max-width: 759px) { .hero-portrait--video { max-width: 430px !important; } }
@media (min-width: 1080px) { .hero-ac .hero2__grid > .hero-portrait--video { width: calc(100% + 3rem); max-width: none; margin: 0 0 0 -3rem; } }

/* Fachpersonal-Liste: runde Silber-Icons statt Nummern */
.expert__list .expert__ico { width: 42px; height: 42px; border-radius: 50%; background: var(--silver); color: var(--red); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 6px 14px -10px rgba(40,42,46,.5); }
.expert__list .expert__ico .icon { width: 18px; height: 18px; }
@media (max-width: 599px) { .expert__list .expert__ico { width: 38px; height: 38px; } }

/* Seiten-Hintergrund: Marmor ohne dunkle Pünktchen (wurden durch die starke Vergrößerung zu Flecken) */
:root { --marble-bg: linear-gradient(rgba(255,255,255,.50), rgba(255,255,255,.58)), url("../img/bg/marmor-weich-1420.jpg") center / cover; }

/* Ergebnisgarantie: weniger Luft über dem Siegel */
#garantie { padding-top: clamp(1.2rem, .6rem + 1.6vw, 2.4rem); }

/* ---------- Footer: 3 Link-Spalten, Marmor-Öffnungszeiten, dezenter Schriftzug ---------- */
@media (min-width: 700px) and (max-width: 1099px) {
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-grid > .footer-brand { grid-column: 1 / 3; }
}
@media (min-width: 1100px) { .footer-grid { grid-template-columns: 1.35fr 1.15fr repeat(3, minmax(0, .85fr)); gap: var(--s-5) clamp(1.2rem, 2vw, 2.4rem); } }
@media (max-width: 599px) {
  .footer-grid > .footer-col:last-child { grid-column: 1 / -1; }
}
/* Öffnungszeiten: Milchglas-Leiste mit Silber→Rot-Verlaufsrahmen und warmem Licht hinter dem Termin-Button */
.hrs { isolation: isolate; background: radial-gradient(55% 160% at 0% 0%, rgba(255,255,255,1), rgba(255,255,255,0) 70%), linear-gradient(135deg, rgba(255,255,255,.94), rgba(244,244,246,.86)); backdrop-filter: blur(14px) saturate(1.15); -webkit-backdrop-filter: blur(14px) saturate(1.15); box-shadow: inset 0 1px 0 #fff, 0 26px 50px -32px rgba(40,42,46,.5), 0 8px 18px -14px rgba(40,42,46,.25); }
.hrs::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px; background: linear-gradient(110deg, #d9dce0 0%, #ffffff 22%, #c4c8cd 48%, #e9eaec 75%, #d9dce0 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); pointer-events: none; }
.hrs::after { content: ""; position: absolute; left: 1.4rem; right: 1.4rem; top: 0; height: 1px; z-index: -1; background: linear-gradient(90deg, rgba(255,255,255,0), #fff 30%, #fff 70%, rgba(255,255,255,0)); pointer-events: none; }
.day--closed { background: rgba(255,255,255,.35); box-shadow: inset 0 0 0 1px rgba(200,16,46,.22); }
.day__x { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--red-soft); }
.day__x .icon { width: 13px; height: 13px; color: var(--red); stroke-width: 2.4; }
.footer-giant { margin-top: clamp(1.6rem, 1rem + 2vw, 2.6rem); font-size: 9.6vw; -webkit-text-stroke: 1px #c3c6cb; opacity: .75; }
@media (min-width: 1600px) { .footer-giant { font-size: 9.2vw; } }

/* Footer-Öffnungszeiten: Status-Punkt rot = geschlossen, grün = geöffnet */
.hrs__dot { background: var(--red); box-shadow: 0 0 0 4px rgba(200,16,46,.14); }
.hrs.is-open .hrs__dot { background: #1fae5b; box-shadow: 0 0 0 4px rgba(31,174,91,.16); }

/* Footer-Schriftzug: Desktop „Dental Beauty Studio“ über die volle Breite, Mobil/Tablet „Dental Beauty“ */
.footer-giant__studio { display: none; }
@media (min-width: 1100px) {
  .footer-giant { font-size: calc((100vw - 2 * var(--frame)) * .108); }
  .footer-giant__studio { display: inline; }
}

/* Footer: German-Web-Awards-Siegel (dezent) + Agentur-Credit */
.gwa { display: inline-block; margin-top: 1.1rem; border-radius: 10px; opacity: .78; filter: grayscale(.15); transition: opacity .3s, filter .3s, transform .4s var(--ease-out); }
.gwa img { display: block; width: 88px; height: 88px; border-radius: 10px; box-shadow: 0 0 0 1px var(--platinum-200), 0 10px 22px -16px rgba(40,42,46,.5); }
.gwa:hover, .gwa:focus-visible { opacity: 1; filter: none; transform: translateY(-2px); }
.footer-bottom__end { display: grid; justify-items: end; gap: .45rem; }
.credit { margin: 0; font-size: .78rem; color: var(--text-muted); }
.credit a { color: var(--grey-700); font-weight: 600; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .3s, color .3s; }
.credit a:hover { color: var(--red-deep); background-size: 100% 1px; }
@media (max-width: 699px) { .footer-bottom__end { justify-items: start; } }

/* Hero: Google-5,0-Plakette ragt auf großen Ansichten immer etwas in den Videokreis (wie die Status-Plakette unten) */
@media (min-width: 1080px) { .hero-portrait--video .stage-label--b { top: 13%; right: auto; left: calc(81% - 3.6rem); } }

/* Hero: Marmor-Hintergrund läuft unten weich aus (keine Kante zu den Bändern darunter) */
.hero-ac { background: none; }
.hero-ac::after { content: ""; position: absolute; inset: 0; z-index: -3; pointer-events: none; background: linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,.66) 60%, rgba(255,255,255,.82)), var(--marble) center / cover; -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - clamp(90px, 12vw, 200px)), transparent 100%); mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - clamp(90px, 12vw, 200px)), transparent 100%); }

/* Preise-Kopf: dezenter Infotext rechts statt Leere */
.section-head--split > .phead__side { max-width: 46ch; display: grid; justify-items: start; gap: .9rem; }
.phead__side .lead { margin: 0; }
@media (max-width: 599px) { .phead__side .lead { font-size: .95rem; } }
/* German-Web-Awards-Siegel: normal kräftig/schwarz, beim Darüberfahren leicht grau */
.gwa { opacity: 1; filter: none; }
.gwa:hover, .gwa:focus-visible { opacity: .7; filter: grayscale(1); }

/* ---------- Laufband „Dental Beauty Studio“ in der Footer-Schrift (nur Schrift, endlos, rechts → links) ---------- */
.why7-sec { padding-bottom: clamp(1.2rem, .8rem + 1.4vw, 2.4rem); }
.wordloop { position: relative; overflow: hidden; margin-top: clamp(1.6rem, 1rem + 1.8vw, 3.2rem); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); -webkit-user-select: none; user-select: none; }
.wordloop__track { display: flex; width: max-content; animation: wordloop 42s linear infinite; will-change: transform; }
.wordloop__group { display: flex; flex: none; }
.wordloop__group span { flex: none; padding-right: .55em; font-family: var(--font-head); font-weight: 600; font-size: clamp(3.4rem, 1.6rem + 6.4vw, 9.5rem); line-height: 1.28; letter-spacing: 0; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px #c3c6cb; opacity: .8; }
.wordloop__group em { font-family: var(--font-accent); font-style: italic; font-weight: 400; letter-spacing: -.02em; -webkit-text-stroke: 0; background: var(--red-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding: .04em .06em .24em .22em; margin-left: -.22em; }
@keyframes wordloop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .wordloop__track { animation: none; } }

/* Termin-Button in den Öffnungszeiten: dezenterer roter Schatten */
.hrs__hot { box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 4px 10px -8px rgba(200,16,46,.32); }
.hrs__hot:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 8px 14px -10px rgba(200,16,46,.38); }

/* Footer unten: ruhiges Raster – Hinweis oben, darunter Rechtliches ↔ Zahlarten, © ↔ Credit auf einer Linie */
.footer-bottom { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .9rem 2rem; }
.footer-bottom__note { grid-column: 1 / -1; margin: 0 0 .3rem; }
.footer-bottom .pay-accept { justify-self: end; }
.footer-bottom__copy { margin: 0; font-size: .78rem; color: var(--text-muted); }
.footer-bottom .credit { justify-self: end; }
@media (max-width: 699px) {
  .footer-bottom { grid-template-columns: 1fr; gap: .8rem; }
  .footer-bottom .pay-accept, .footer-bottom .credit { justify-self: start; }
}
.footer-bottom .footer-legal { align-self: center; }
.footer-bottom .pay-accept { align-self: center; }
.footer-bottom .pay-accept img { display: block; width: clamp(200px, 26vw, 306px); }
@media (min-width: 700px) and (max-width: 1023px) { .footer-bottom .footer-legal { gap: .3rem 1rem; } }


/* Footer: App-Download (App Store / Google Play) unter Studio Frankfurt */
.app-dl__label { margin: 1.3rem 0 .6rem; font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); }
.app-dl { display: flex; flex-wrap: wrap; gap: .55rem; }
.store { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: .4rem .95rem .4rem .75rem; border-radius: 12px; background: linear-gradient(180deg, #2c2d30, #151618); color: #fff !important; text-decoration: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 10px 20px -14px rgba(20,20,22,.7); transition: transform .3s var(--ease-out), box-shadow .3s; }
.store:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 14px 24px -14px rgba(20,20,22,.75); }
.store__logo { width: 22px; height: 22px; flex: none; }
.store span { display: grid; line-height: 1.05; }
.store small { font-size: .6rem; font-weight: 600; letter-spacing: .04em; opacity: .85; }
.store strong { font-family: var(--font-head); font-size: .98rem; font-weight: 600; color: #fff; letter-spacing: -.01em; }

/* =====================================================================
   Unterseiten im Stil der Startseite
   ===================================================================== */

/* ---------- Unterseiten-Hero ---------- */
.phero { padding-bottom: clamp(2.6rem, 1.6rem + 3vw, 5rem); }
.phero .breadcrumbs ol { margin-bottom: 1rem; font-size: .8rem; }
.phero .eyebrow { margin-bottom: .2rem; }
.phero .hero2__title { font-size: clamp(2.3rem, 1.1rem + 3.2vw, 4.1rem); margin: .5rem 0 1rem; }
.phero .hero2__lead { max-width: 34em; }
.phero .actions { margin-top: 1.7rem; }
.phero .hero2__facts { margin-top: 1.6rem; }
.phero .hero-portrait__video img { width: 100%; height: 100%; object-fit: cover; }
.phero--center { text-align: center; padding-bottom: clamp(1.6rem, 1rem + 2vw, 3.2rem); }
.phero--center .hero2__grid { display: block; max-width: 880px; }
.phero--center .breadcrumbs ol, .phero--center .eyebrow, .phero--center .actions { justify-content: center; }
.phero--center .hero2__title, .phero--center .hero2__lead { margin-inline: auto; }
.phero--center .hero2__facts { justify-items: center; }
@media (min-width: 1080px) { .phero .hero2__grid { grid-template-columns: 1.05fr .95fr; } }
@media (max-width: 1079px) { .phero .hero-portrait--video { max-width: 440px !important; margin-inline: auto; } }
@media (max-width: 599px) {
  .phero .hero2__title { font-size: clamp(2rem, 8.6vw, 2.6rem); }
  .phero .hero-portrait--video { max-width: 320px !important; }
}

/* ---------- Abschnitts-Kopf ---------- */
.shead { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 3rem; margin-bottom: clamp(1.8rem, 1.2rem + 1.6vw, 3rem); }
.shead > div { flex: 1 1 420px; max-width: 720px; }
.shead h2 { margin-bottom: 0; }
.shead .lead { flex: 0 1 46ch; max-width: 46ch; margin: 0; }
.shead--center { flex-direction: column; align-items: center; text-align: center; }
.shead--center > div, .shead--center .lead { flex: 0 0 auto; }   /* in der Spalte wäre die Flex-Basis sonst eine Höhe */
.shead--center .eyebrow { justify-content: center; }
.shead--center .lead { margin-inline: auto; max-width: 56ch; }

/* ---------- Info-Karten (Stil wie „Warum Dental Beauty?“) ---------- */
.icards { display: grid; gap: clamp(.9rem, .6rem + .9vw, 1.4rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.icards--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.icards--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.icard { position: relative; display: flex; flex-direction: column; gap: .35rem; padding: clamp(1.3rem, 1rem + 1vw, 1.9rem); border-radius: var(--r-frame); background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); color: var(--text); text-decoration: none; transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
a.icard:hover, a.icard:focus-visible { z-index: 2; scale: 1.02; color: var(--text); box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55); }
.icard--red { box-shadow: 0 0 0 2px var(--red-line), var(--shadow-2); background: linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.95)), var(--marble) center / cover; }
.icard__ico { width: 46px; height: 46px; margin-bottom: .55rem; display: grid; place-items: center; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 8px 16px -10px rgba(40,42,46,.5); }
.icard__ico .icon { width: 20px; height: 20px; color: var(--red); }
.icard__k { font-family: var(--font-head); font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-500); }
.icard--red .icard__k { color: var(--red); }
.icard h3 { margin: 0; font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); font-weight: 600; line-height: 1.25; }
.icard p { margin: .15rem 0 0; font-size: .92rem; line-height: 1.6; color: var(--text-muted); }
.icard .checklist { margin: .6rem 0 0; }
.icard__go { display: inline-block; margin-top: auto; padding-top: 1rem; font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--red); }
.icard__go .icon { display: inline-block; width: 16px; height: 16px; margin-left: .3rem; vertical-align: -.2em; transition: transform .3s var(--ease-out); }
a.icard:hover .icard__go .icon { transform: translateX(4px); }
.js .icard.reveal { transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out), scale .6s var(--ease-out), box-shadow .6s var(--ease-out); transition-delay: var(--d, 0ms), var(--d, 0ms), 0s, 0s; }

/* Reihen mit Silber-Icons (wie in den Leistungs-Karten) */
.irows { list-style: none; margin: 0; padding: 0; }
.irows li { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: center; padding: .8rem 0; border-top: 1px solid var(--line); font-size: .95rem; line-height: 1.45; color: var(--grey-700); }
.irows li:first-child { border-top: 0; }
.irows small { display: block; margin-bottom: .12rem; font-family: var(--font-head); font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); }
.irows__ico { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 6px 14px -10px rgba(40,42,46,.5); }
.irows__ico .icon { width: 18px; height: 18px; color: var(--red); }

/* ---------- Feature-Split (Stil „Zahnaufhellung vom Fachpersonal“) ---------- */
@media (min-width: 1000px) {
  .expert--rev .expert__grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
  .expert--rev .expert__media { order: -1; }
  .expert--rev .expert__media::before { inset: 1.8rem 1.8rem -1.8rem -1.8rem; }
}
.expert__copy > p + p { margin-top: -.6rem; }
.expert__list--1 { grid-template-columns: 1fr !important; }
.expert__chip { position: absolute; left: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .95rem; border-radius: var(--r-pill); background: rgba(255,255,255,.96); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .8rem; font-weight: 700; color: var(--grey-700); }
.expert__chip .icon { width: 16px; height: 16px; color: var(--red); }

/* ---------- Text-Karte (Rechtstexte, Ratgeber) ---------- */
.prose-card { max-width: 900px; margin-inline: auto; padding: clamp(1.6rem, 1rem + 3vw, 3.6rem); border-radius: var(--r-frame); background: rgba(255,255,255,.96); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.prose-card h2 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.9rem); margin-top: 2.2rem; }
.prose-card h2:first-child, .prose-card > :first-child { margin-top: 0; }
.prose-card h3 { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); margin-top: 1.6rem; }

/* ---------- Tabellen im Karten-Look ---------- */
.tcard { overflow-x: auto; border-radius: var(--r-frame); background: rgba(255,255,255,.96); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.tcard table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .93rem; }
.tcard th, .tcard td { padding: 1rem 1.2rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.tcard thead th { font-family: var(--font-head); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); background: rgba(243,243,244,.7); }
.tcard thead th:nth-child(2) { color: var(--red); }
.tcard tbody th { font-family: var(--font-head); font-weight: 600; color: var(--grey-700); }
.tcard tbody tr:last-child > * { border-bottom: 0; }
.tcard td:nth-child(2) { background: rgba(200,16,46,.035); }

/* ---------- Hinweis-Box ---------- */
.notebox { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 1.3rem; border-radius: var(--r-3); background: rgba(255,255,255,.9); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); font-size: .92rem; line-height: 1.6; color: var(--text-muted); }
.notebox .irows__ico { flex: none; }
.notebox strong { color: var(--grey-700); }

/* ---------- Kleine Statistik-Leiste ---------- */
.sstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: .8rem; }
.sstat { padding: 1.2rem 1.3rem; border-radius: var(--r-3); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.sstat strong { display: block; font-family: var(--font-head); font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); font-weight: 500; line-height: 1; letter-spacing: -.04em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding: .05em .1em .08em 0; }
.sstat span { display: block; margin-top: .35rem; font-size: .84rem; color: var(--text-muted); }

@media (prefers-reduced-motion: reduce) { .icard { scale: none !important; transition: none !important; } }

/* Sprungziele für die Preis-Tabs */
.ptabs { position: relative; }
.ptabs__anchor { position: absolute; top: -1rem; left: 0; width: 1px; height: 1px; }

/* ---------- Ergebnis-Galerie ---------- */
.rgrid { display: grid; gap: clamp(.9rem, .6rem + .9vw, 1.4rem); grid-template-columns: 1fr; }
@media (min-width: 600px) { .rgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .rgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rgrid .result-card { border-radius: var(--r-frame); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.rgrid .result-card:hover { transform: none; scale: 1.02; box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55); }
.rgrid .result-card figcaption { padding: 1rem 1.3rem 1.1rem; }
.result-card__tag { padding: .25rem .7rem; border-radius: var(--r-pill); background: var(--red-soft); font-size: .72rem; font-weight: 700; letter-spacing: .06em; color: var(--red); }
.js .rgrid .result-card.reveal { transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out), scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }

/* ---------- Zeitleiste (Über uns) ---------- */
.tline { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(.9rem, .6rem + .9vw, 1.4rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.tline__item { position: relative; display: flex; flex-direction: column; gap: .35rem; padding: clamp(1.4rem, 1rem + 1vw, 2rem); border-radius: var(--r-frame); background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.tline__item--soon { background: linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.95)), var(--marble) center / cover; box-shadow: 0 0 0 2px var(--red-line), var(--shadow-2); }
.tline__dot { position: absolute; top: clamp(1.4rem, 1rem + 1vw, 2rem); right: clamp(1.4rem, 1rem + 1vw, 2rem); width: 12px; height: 12px; border-radius: 50%; background: var(--red-grad); box-shadow: 0 0 0 5px var(--red-soft); }
.tline__year { font-family: var(--font-head); font-size: clamp(2.4rem, 1.8rem + 1.8vw, 3.4rem); font-weight: 500; line-height: 1; letter-spacing: -.05em; background: var(--silver-ink); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding: .05em .12em .08em 0; }
.tline__item--soon .tline__year { background: var(--red-grad); -webkit-background-clip: text; background-clip: text; font-family: var(--font-accent); font-style: italic; font-weight: 400; padding-left: .2em; margin-left: -.2em; }
.tline__item h3 { margin: .4rem 0 0; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); font-weight: 600; }
.tline__item p { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--text-muted); }
.tline__item .link-arrow { margin-top: auto; padding-top: .8rem; align-self: flex-start; }
@media (min-width: 1000px) {
  .tline { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tline::before { content: ""; position: absolute; left: 4%; right: 4%; top: -1.1rem; height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(200,16,46,0), var(--red-line) 15%, var(--red-line) 85%, rgba(200,16,46,0)); }
}

/* Unterseiten-Kreis: neutraler Hintergrund statt Startseiten-Videoposter */
.phero .hero-portrait__video { background: var(--platinum-100); }

/* ---------- Anfahrt ---------- */
.visit2 { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: center; }
@media (min-width: 1000px) { .visit2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.visit2__copy .lead { margin-bottom: 1.2rem; }
.visit2__copy .irows { margin: 1rem 0 1.8rem; }
.visit2__map { position: relative; }
.visit2__map .map { border-radius: var(--r-frame); background: linear-gradient(rgba(255,255,255,.7), rgba(246,246,247,.86)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.75), var(--shadow-2); }
.visit2__map .map__placeholder { background: none; }
.visit2__chip { position: absolute; left: 1.2rem; top: 1.2rem; }
.visit2__chip { max-width: calc(100% - 2.4rem); white-space: normal; line-height: 1.35; }   /* „Geschlossen · öffnet morgen …“ bricht auf kleinen Handys um */
@media (min-width: 900px) { .visit2__map .map { min-height: 460px; } }

/* Öffnungszeiten-Liste in Karten */
.hours2 { list-style: none; margin: .5rem 0 0; padding: 0; }
.hours2 li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--line); font-size: .92rem; color: var(--text-muted); }
.hours2 li:first-child { border-top: 0; }
.hours2 strong { font-family: var(--font-head); font-weight: 600; color: var(--grey-700); }
.hours2__status { display: inline-flex; align-items: center; gap: .45rem; margin-top: auto; padding-top: .9rem; font-family: var(--font-head); font-size: .82rem; font-weight: 600; color: var(--grey-600); }
.hours2__status .dot { width: 8px; height: 8px; border-radius: 50%; background: #1fae5b; box-shadow: 0 0 0 4px rgba(31,174,91,.15); }
.hours2__status .dot--closed { background: var(--red); box-shadow: 0 0 0 4px rgba(200,16,46,.12); }
.irows--compact li { padding: .55rem 0; font-size: .92rem; }
.irows--compact .irows__ico { width: 34px; height: 34px; }
.irows--compact .irows__ico .icon { width: 16px; height: 16px; }
.irows--compact a { color: var(--grey-700); text-decoration: none; }
.irows--compact a:hover { color: var(--red-deep); }
/* Orts-Chips */
.chipcloud { display: flex; flex-wrap: wrap; gap: .6rem; padding: clamp(1.2rem, 1rem + 1vw, 1.8rem); border-radius: var(--r-frame); background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.chipcloud .chip { display: inline-flex; align-items: center; gap: .45rem; text-decoration: none; font-family: var(--font-head); font-weight: 600; font-size: .9rem; color: var(--grey-700); }
.chipcloud .chip .icon { width: 15px; height: 15px; color: var(--red); }
.chipcloud .chip:hover { border-color: var(--red-line); color: var(--red-deep); }
.chipcloud .chip--all { background: var(--red-grad); color: #fff; border-color: transparent; }
.chipcloud .chip--all .icon { color: #fff; }
.chipcloud .chip--all:hover { color: #fff; }

/* ---------- Ratgeber-Karten ---------- */
.bcards { display: grid; gap: clamp(.9rem, .6rem + .9vw, 1.4rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.bcard { display: flex; flex-direction: column; border-radius: var(--r-frame); background: rgba(255,255,255,.96); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); text-decoration: none; color: var(--text); overflow: hidden; transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.bcard:hover, .bcard:focus-visible { z-index: 2; scale: 1.02; color: var(--text); box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55); }
.js .bcard.reveal { transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out), scale .6s var(--ease-out), box-shadow .6s var(--ease-out); transition-delay: var(--d, 0ms), var(--d, 0ms), 0s, 0s; }
.bcard__media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--platinum-100); }
.bcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.bcard:hover .bcard__media img { transform: scale(1.05); }
.bcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0) 60%, rgba(255,255,255,.9)); }
.bcard__chip { position: absolute; z-index: 1; left: 1.2rem; bottom: .9rem; display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .85rem; border-radius: var(--r-pill); background: rgba(255,255,255,.97); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .76rem; font-weight: 700; color: var(--grey-700); }
.bcard__chip .icon { width: 14px; height: 14px; color: var(--red); }
.bcard__body { display: flex; flex-direction: column; gap: .35rem; flex: 1; padding: 1rem clamp(1.2rem, 1rem + .8vw, 1.7rem) clamp(1.3rem, 1rem + 1vw, 1.8rem); }
.bcard__k { font-family: var(--font-head); font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.bcard__title { font-family: var(--font-head); font-size: clamp(1.15rem, 1rem + .5vw, 1.4rem); font-weight: 600; line-height: 1.25; color: var(--grey-700); }
.bcard__text { font-size: .92rem; line-height: 1.6; color: var(--text-muted); }
.bcard__go { margin-top: auto; padding-top: .9rem; font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--red); }
.bcard__go .icon { display: inline-block; width: 16px; height: 16px; margin-left: .3rem; vertical-align: -.2em; transition: transform .3s var(--ease-out); }
.bcard:hover .bcard__go .icon { transform: translateX(4px); }

/* ---------- FAQ-Seite ---------- */
.faqnav { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; padding: .45rem; margin: 0 auto; width: fit-content; max-width: 100%; border-radius: var(--r-pill); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--line), var(--shadow-1); }
.faqnav a { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .5rem 1.1rem; border-radius: var(--r-pill); font-family: var(--font-head); font-size: .92rem; font-weight: 600; color: var(--grey-600); text-decoration: none; transition: background-color .25s, color .25s; }
.faqnav a:hover { background: var(--silver); color: var(--grey-700); }
.faqnav b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--red-grad); color: #fff; font-size: .66rem; }
@media (max-width: 599px) { .faqnav { border-radius: var(--r-3); } .faqnav a { flex: 1 1 45%; justify-content: center; padding-inline: .6rem; font-size: .84rem; } }
.faqcat { display: grid; gap: clamp(1.4rem, 1rem + 2vw, 3rem); align-items: start; }
@media (min-width: 1000px) { .faqcat { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } .faqcat__head { position: sticky; top: calc(var(--header-h) + 2rem); } }
.faqcat__num { display: block; font-family: var(--font-head); font-size: clamp(3rem, 2.2rem + 2.6vw, 4.6rem); font-weight: 500; line-height: .9; letter-spacing: -.05em; background: var(--red-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding: .04em .1em .06em 0; }
.faqcat__head h2 { margin: .6rem 0 .5rem; }
.faqcat__head p { margin: 0; color: var(--text-muted); max-width: 36ch; }

/* ---------- Formular-Karte ---------- */
.fsplit { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
@media (min-width: 1000px) { .fsplit { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); } }
.fcard { padding: clamp(1.4rem, 1rem + 2vw, 2.6rem); border-radius: var(--r-frame); background: linear-gradient(rgba(255,255,255,.9), rgba(255,255,255,.97)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.7), var(--shadow-2); }
.fcard input, .fcard select, .fcard textarea { background: #fff; }
.fsplit .social a { color: #fff; background: var(--red-grad); border-color: transparent; }

/* ---------- Buchungsseite ---------- */
.booking { display: grid; gap: clamp(1.4rem, 1rem + 1.6vw, 2.4rem); align-items: start; }
@media (min-width: 1000px) { .booking { grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); } .booking__aside { position: sticky; top: calc(var(--header-h) + 1.5rem); } }
.booking__aside { display: grid; gap: 1rem; }
.booking__frame { overflow: hidden; border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.75), var(--shadow-2); }
.booking__frame iframe { display: block; width: 100%; height: 1100px; border: 0; }
.booking .icard { gap: .3rem; }

/* Ausgeblendete Elemente bleiben ausgeblendet, auch wenn eine Komponente display setzt */
.notebox[hidden], .icard[hidden], .tcard[hidden] { display: none; }
.mb-3 { margin-bottom: 1rem; }

/* ---------- Zahnschmuck-Katalog ---------- */
.kat-count { display: inline-block; margin-left: .3rem; padding: .15rem .6rem; border-radius: var(--r-pill); background: var(--red-soft); font-size: .78rem; font-weight: 700; color: var(--red); }
.katchips { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 2rem; padding: .45rem; width: fit-content; max-width: 100%; border-radius: var(--r-pill); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--line), var(--shadow-1); }
.katchips .chip { border: 0; min-height: 42px; }
@media (max-width: 599px) { .katchips { border-radius: var(--r-3); } }
#katalog .product { border-radius: var(--r-frame); background: rgba(255,255,255,.96); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
#katalog .product:hover { transform: none; scale: 1.02; z-index: 2; box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55); }
#katalog .product__badge { box-shadow: var(--shadow-1); }
#katalog .product__badge--sale { background: var(--red-grad); color: #fff; }
#katalog .product__price { color: var(--grey-700); }

/* ---------- Shop / Produkt-Karten ---------- */
.products--lux .product, #katalog .product { border-radius: var(--r-frame); background: rgba(255,255,255,.96); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); transition: scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.products--lux .product:hover { transform: none; scale: 1.02; z-index: 2; box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55); }
.products--lux .product__badge--sale { background: var(--red-grad); color: #fff; }
.products--lux .product__media { background: linear-gradient(rgba(255,255,255,.6), rgba(246,246,247,.85)), var(--marble) center / cover; }
.products--lux .product__media > .icon { width: 64px; height: 64px; padding: 16px; border-radius: 50%; background: var(--silver); color: var(--red); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 12px 24px -14px rgba(40,42,46,.5); }
.js .products--lux .product.reveal { transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease-out), scale .6s var(--ease-out), box-shadow .6s var(--ease-out); }
/* Auszeichnungen */
.awards2 { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: center; }
@media (min-width: 1000px) { .awards2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.awards2__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.awards2__item { margin: 0; overflow: hidden; border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 8px rgba(255,255,255,.75), var(--shadow-2); }
.awards2__item:nth-child(1) { rotate: -2deg; } .awards2__item:nth-child(2) { rotate: 2deg; translate: 0 1.2rem; }
.awards2__item img { display: block; width: 100%; height: auto; }

/* ---------- Franchise ---------- */
.pressbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2.4rem; padding: clamp(1.2rem, 1rem + 1vw, 1.8rem) clamp(1.4rem, 1rem + 2vw, 2.4rem); border-radius: var(--r-frame); background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.pressbar .eyebrow { margin: 0; }
.pressbar img { width: min(100%, 760px); height: auto; filter: grayscale(1); opacity: .8; }
.vgrid { display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .vgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vgrid__item { margin: 0; overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--r-3); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.vgrid__item button { display: block; width: 100%; height: 100%; padding: 0; border: 0; cursor: zoom-in; background: none; }
.vgrid__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.vgrid__item:hover img { transform: scale(1.05); }
.vfilm { display: grid; gap: 1.6rem; align-items: center; margin-top: clamp(2rem, 1.4rem + 2vw, 3.4rem); padding: clamp(1.2rem, 1rem + 1.6vw, 2.4rem); border-radius: var(--r-frame); background: linear-gradient(rgba(255,255,255,.88), rgba(246,246,247,.95)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
@media (min-width: 800px) { .vfilm { grid-template-columns: 1fr minmax(240px, 340px); } }
.vfilm__copy h3 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.2rem); margin: .3rem 0 .5rem; }
.vfilm__copy h3 em { font-family: var(--font-accent); font-style: italic; font-weight: 400; color: var(--grey-500); }
.vfilm__copy p:last-child { color: var(--text-muted); margin: 0; }
.vfilm__frame { margin: 0 auto; width: 100%; max-width: 340px; border-radius: var(--r-3); overflow: hidden; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 8px rgba(255,255,255,.8), var(--shadow-2); }

/* ---------- Ratgeber-Artikel ---------- */
.phero--article .hero2__title { font-size: clamp(2rem, 1.1rem + 2.6vw, 3.4rem); max-width: 22ch; }
.phero--article .author { justify-content: center; }
.article-media { margin: 0 0 2rem; overflow: hidden; border-radius: var(--r-3); aspect-ratio: 16 / 9; box-shadow: 0 0 0 1px var(--platinum-200); }
.article-media img { width: 100%; height: 100%; object-fit: cover; }
.article-aside .icard h2 { margin: 0; }
@media (min-width: 1000px) { .article-aside { position: sticky; top: calc(var(--header-h) + 1.5rem); } }

/* ---------- Einzugsgebiet ---------- */
.regions { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(.9rem, .6rem + .9vw, 1.4rem); }
.regions .icard { display: grid; gap: .4rem 2.4rem; align-items: start; }
@media (min-width: 900px) { .regions .icard { grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); grid-template-rows: auto 1fr; } .regions .icard > .citylist { grid-column: 2; grid-row: 1 / span 2; margin: 0; } }
.regions .citylist { columns: 3 180px; column-gap: 2rem; }
.regions .citylist li { break-inside: avoid; }
.regions .citylist a, .regions .citylist li:first-child a { border-top: 0; border-bottom: 1px solid var(--line); }
.citylist { list-style: none; margin: .5rem 0 0; padding: 0; }
.citylist a { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .5rem 0; border-top: 1px solid var(--line); text-decoration: none; font-size: .92rem; color: var(--grey-700); }
.citylist li:first-child a { border-top: 0; }
.citylist a:hover { color: var(--red-deep); }
.citylist small { flex: none; font-size: .78rem; color: var(--text-muted); }

.ptabs__more { display: inline-flex; align-items: center; gap: .3rem; margin-left: .3rem; font-family: var(--font-head); font-weight: 600; color: var(--red); text-decoration: none; white-space: nowrap; }
.ptabs__more .icon { width: 15px; height: 15px; }

@media (min-width: 900px) { .icards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- FRESH UP Hinweis unter den Preisen ---------- */
.fu-hint { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.1rem; margin-top: 1.4rem; padding: 1rem 1.3rem; border-radius: var(--r-3); background: linear-gradient(100deg, rgba(255,255,255,.95), rgba(244,244,246,.9)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-1); text-decoration: none; color: var(--grey-700); font-size: .95rem; transition: box-shadow .3s, scale .4s var(--ease-out); }
.fu-hint:hover { color: var(--grey-700); scale: 1.01; box-shadow: 0 0 0 1px var(--red-line), var(--shadow-2); }
.fu-hint__badge { flex: none; padding: .3rem .8rem; border-radius: var(--r-pill); background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; font-family: var(--font-head); font-size: .72rem; font-weight: 800; letter-spacing: .1em; color: var(--grey-700); }
.fu-hint__text { flex: 1 1 320px; line-height: 1.5; }
.fu-hint__text strong { color: var(--red-deep); }
/* Desktop: Hinweis in einer Zeile (darunter darf er umbrechen, damit nie Text abgeschnitten wird) */
@media (min-width: 1260px) { .fu-hint__text { white-space: nowrap; } }
@media (min-width: 1260px) and (max-width: 1439px) { .fu-hint { gap: .6rem .9rem; padding-inline: 1.1rem; } .fu-hint__text { font-size: .84rem; } }
.fu-hint__go { display: inline-flex; align-items: center; gap: .35rem; margin-left: auto; font-family: var(--font-head); font-weight: 700; color: var(--red); white-space: nowrap; }
.fu-hint__go .icon { width: 16px; height: 16px; transition: transform .3s var(--ease-out); }
.fu-hint:hover .fu-hint__go .icon { transform: translateX(3px); }

/* Paketnamen: „Diamond Paket“ – Zusatz im Akzent-Stil, einheitlich auf allen Geräten */
.price-card__name { line-height: 1.02; }
.price-card__name:has(> em) { font-size: clamp(1.75rem, 1.45rem + .8vw, 2.4rem); white-space: nowrap; }
.price-card__name em { display: block; margin-top: -.04em; font-family: var(--font-accent); font-size: .62em; font-style: italic; font-weight: 400; letter-spacing: -.01em; color: var(--grey-500); }
.price-card__name { text-wrap: balance; }

/* ---------- Städte-Siegel im Hero-Kreis (Städteseiten ohne eigenes Foto) ---------- */
.cbadge { display: block; width: 100%; height: 100%; }
.cbadge text { text-anchor: middle; }
.cbadge .cb__initial { font-family: var(--font-accent); font-style: italic; font-size: 600px; fill: #1b1c1f; opacity: .035; }
.cbadge .cb__k { font-family: var(--font-head); font-size: 19px; font-weight: 700; letter-spacing: .3em; fill: var(--grey-500); }
.cbadge .cb__name { font-family: var(--font-accent); fill: var(--grey-700); letter-spacing: -.01em; }
.cbadge .cb__name2 { font-family: var(--font-accent); font-style: italic; fill: var(--grey-500); }
.cbadge .cb__km { font-family: var(--font-head); font-size: 42px; font-weight: 700; letter-spacing: -.01em; fill: var(--red); }
.cbadge .cb__sub { font-family: var(--font-head); font-size: 16px; font-weight: 700; letter-spacing: .2em; fill: var(--grey-500); }
@media (min-width: 640px) { .phero .phero__title--long { font-size: clamp(2.2rem, 1rem + 2.8vw, 3.6rem); } }

/* ---------- Ortssuche (Einzugsgebiet) ---------- */
.cityfind { position: relative; display: flex; align-items: center; gap: .6rem; max-width: 640px; margin: 0 0 clamp(1.4rem, 1rem + 1.2vw, 2.2rem); padding: .45rem .5rem .45rem .5rem; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 18px 40px -26px rgba(68,70,74,.45); transition: box-shadow .25s ease; }
.cityfind:focus-within { box-shadow: 0 0 0 2px var(--red), 0 18px 40px -26px rgba(68,70,74,.45); }
.cityfind__ico { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--silver); color: var(--red); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.cityfind__ico .icon { width: 18px; height: 18px; }
.cityfind input { flex: 1 1 auto; min-width: 0; height: 44px; border: 0; background: transparent; font: inherit; font-size: 1rem; color: var(--grey-700); outline: none; }
.cityfind input::placeholder { color: var(--grey-400); }
.cityfind__count { flex: none; padding: .45rem .85rem; border-radius: 999px; background: var(--platinum-50); font-size: .8rem; font-weight: 600; color: var(--grey-600); white-space: nowrap; }
.cityfind__empty { margin: -.6rem 0 1.6rem; color: var(--grey-600); }
.cityfind__empty a { color: var(--red-deep); }
.regions .icard[hidden], .citylist li[hidden] { display: none; }
.citylist mark { background: none; color: var(--red); font-weight: 700; }
@media (max-width: 479px) { .cityfind__count { display: none; } }
.cname { hyphens: manual; -webkit-hyphens: manual; }

/* ---------- Ratgeber: Spalte darf nie breiter als der Bildschirm werden (Tabellen scrollen in .table-wrap) ---------- */
.article-layout { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .article-layout { grid-template-columns: minmax(0, 1fr) 330px; } }
.table-wrap { max-width: 100%; }
.article-layout > .prose-card { width: 100%; }

/* ---------- Platzhalter-Hinweise brechen um ---------- */
.placeholder { overflow-wrap: anywhere; }

/* ---------- Sehr kleine Bildschirme (z. B. Galaxy Fold, 280 px) ---------- */
@media (max-width: 359px) {
  .brand img { height: 38px; }
  .header-actions { gap: .5rem; }
  .header-actions .btn { display: none; }
  .burger { width: 42px; height: 42px; }
  .mbar { left: 6px; right: 6px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr); padding: 6px 4px; }
  .mbar__item { font-size: .64rem; padding-inline: 2px; }
  .mbar__item > span:last-child { white-space: nowrap; }
}

/* ---------- Buchungsbestätigung: Buchungsdetails (in WordPress: SSA-Shortcode [ssa_confirmation]) ---------- */
.bb-confirm-sec { padding-top: clamp(.6rem, .4rem + 1vw, 1.6rem); }
.bb-confirm { max-width: 900px; margin-inline: auto; padding: clamp(1.4rem, 1rem + 2vw, 2.6rem); border-radius: var(--r-frame); background: linear-gradient(rgba(255,255,255,.93), rgba(255,255,255,.97)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200), 0 0 0 10px rgba(255,255,255,.7), var(--shadow-2); }
.bb-confirm__head { display: flex; align-items: center; gap: clamp(.9rem, .6rem + 1vw, 1.4rem); margin-bottom: clamp(1rem, .8rem + .8vw, 1.6rem); }
.bb-confirm__head h2 { margin: 0; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); }
.bb-confirm__head .eyebrow { margin-bottom: .45rem; }
.bb-confirm__seal { flex: none; display: grid; place-items: center; width: clamp(52px, 44px + 1.6vw, 64px); aspect-ratio: 1; border-radius: 50%; background: var(--red-grad); color: #fff; box-shadow: 0 0 0 6px #fff, 0 0 0 7px var(--platinum-300), 0 16px 30px -14px rgba(200,16,46,.6); }
.bb-confirm__seal .icon { width: 46%; height: 46%; stroke-width: 2.4; }
.bb-confirm__ssa { color: var(--text); }
.bb-confirm__ssa > p { margin: 0; max-width: 62ch; font-size: 1.02rem; line-height: 1.7; }
.bb-confirm__ssa iframe { display: block; width: 100%; min-height: 560px; border: 0; }
@media (prefers-reduced-motion: no-preference) { .js .bb-confirm.is-in .bb-confirm__seal { animation: bbSeal .7s var(--ease-out) .2s both; } }
@keyframes bbSeal { from { transform: scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---------- Brunnen Center (Studio-Seite): Logo, Galerie, animierter 3D-Centerplan, Geschäfte ---------- */
.bc-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: end; }
.bc-head .lead { max-width: 60ch; }
.bc-logo { display: grid; justify-items: center; gap: .6rem; padding: 1.3rem 1.7rem 1rem; border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); text-decoration: none; transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out); }
.bc-logo img { width: 220px; height: auto; }
.bc-logo__go { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--font-head); font-size: .78rem; font-weight: 600; color: var(--grey-600); }
.bc-logo__go .icon { width: 14px; height: 14px; }
.bc-logo:hover, .bc-logo:focus-visible { transform: translateY(-3px); box-shadow: 0 0 0 1px #c3c6ca, 0 24px 44px -26px rgba(40,42,46,.45); }
.bc-facts { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.4rem 0 0; padding: 0; }
.bc-facts li { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .95rem; border-radius: var(--r-pill); background: var(--platinum-50); box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-size: .86rem; font-weight: 600; color: var(--grey-700); }
.bc-facts .icon { width: 16px; height: 16px; color: var(--red); }

.bc-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 12vw, 210px); gap: .8rem; margin-top: clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem); }
.bc-gallery__item { position: relative; margin: 0; overflow: hidden; border-radius: var(--r-3); background: var(--platinum-100); box-shadow: var(--shadow-1); }
.bc-gallery__item--big { grid-column: span 2; grid-row: span 2; }
.bc-gallery__item--wide { grid-column: span 2; }
.bc-gallery__item button { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.bc-gallery__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease-out); }
.bc-gallery__item:hover img { transform: scale(1.05); }
.bc-gallery__item figcaption { position: absolute; left: .7rem; bottom: .7rem; padding: .3rem .75rem; border-radius: var(--r-pill); background: rgba(255,255,255,.92); font-family: var(--font-head); font-size: .74rem; font-weight: 700; color: var(--grey-700); pointer-events: none; }
@media (max-width: 760px) {
  .bc-head { grid-template-columns: minmax(0, 1fr); }
  .bc-logo { display: none; }   /* Handy: Logo-Karte oben ausblenden */
  .bc-gallery { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 80%; grid-auto-rows: 240px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .bc-gallery::-webkit-scrollbar { display: none; }
  .bc-gallery__item { scroll-snap-align: start; }
  .bc-gallery__item--big, .bc-gallery__item--wide { grid-column: auto; grid-row: auto; }
}

.bcmap-wrap { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 1.5rem 2.5rem; align-items: center; margin-top: clamp(2.4rem, 1.8rem + 3vw, 4rem); padding: clamp(1.4rem, 1rem + 2vw, 2.8rem); border-radius: var(--r-frame); background: radial-gradient(60% 80% at 72% 50%, rgba(200,16,46,.06), transparent 62%), linear-gradient(160deg, #fbfbfb, #eef0f2); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); overflow: hidden; }
.bcmap-wrap__text h3 { margin: .2rem 0 .8rem; font-size: clamp(2rem, 1.45rem + 1.9vw, 3rem); line-height: 1.08; }
.bcmap-wrap__text p { margin: 0 0 1rem; color: var(--text-muted); max-width: 44ch; }
.bcmap { position: relative; }
.bcmap-wrap__logo { display: block; width: fit-content; margin-bottom: 1.1rem; transition: transform .4s var(--ease-out); }
.bcmap-wrap__logo img { display: block; width: 190px; height: auto; }
.bcmap-wrap__logo:hover { transform: translateY(-2px); }
/* Legende: klein, rechts unten am Plan */
.bcmap-legend { position: absolute; right: 0; bottom: 0; z-index: 2; padding: .65rem .8rem .7rem; border-radius: 14px; background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); font-size: .72rem; line-height: 1.3; color: var(--grey-700); }
.bcmap-legend__title { margin: 0 0 .35rem; font-family: var(--font-head); font-size: .72rem; font-weight: 700; color: var(--grey-700); }
.bcmap-legend ul { list-style: none; display: grid; gap: .32rem; margin: 0; padding: 0; }
.bcmap-legend li { display: flex; align-items: center; gap: .45rem; white-space: nowrap; }
.bcmap-legend__dot { flex: none; display: grid; place-items: center; width: 12px; height: 12px; border-radius: 3px; background: #fff; box-shadow: 0 0 0 1.5px #b9bcc1; font-family: var(--font-head); font-size: 8px; font-weight: 800; color: var(--grey-700); }
.bcmap-legend__dot--db { background: var(--red-grad); box-shadow: none; }
.bcmap-legend__dot--route { height: 3px; border-radius: 2px; background: repeating-linear-gradient(90deg, var(--red) 0 3px, transparent 3px 7px); box-shadow: none; }
.bcmap-legend__dot--p { box-shadow: 0 0 0 1.5px #6d6e71; }
@media (max-width: 560px) {
  .bcmap-legend { position: static; margin-top: .4rem; display: inline-block; }
  .bcmap .bcmap__stage { height: clamp(200px, 56vw, 280px); margin-top: 2.4rem; }   /* spezifischer als die 900px-Regel */
  .bcmap .bcmap__floor { width: 70%; }
  .bcmap__tag--esc { display: none; }   /* P-Symbol im Plan + Legende reichen am Handy */
  .bcmap__pin-in { padding: .32rem .6rem; font-size: 11px; }
  .bcmap__tag-in { padding: .22rem .45rem; font-size: 9.5px; }
}
.bcmap__stage { position: relative; display: grid; place-items: center; height: clamp(320px, 34vw, 500px); perspective: 1700px; }
.bcmap__floor { position: relative; width: min(64%, 430px); aspect-ratio: 1; transform-style: preserve-3d; transform: rotateX(55deg) rotateZ(45deg); transition: transform 1.6s var(--ease-out); }   /* gleiche Ausrichtung wie der Centerplan: WC-Ecke oben */
.bcmap__base, .bcmap__walls, .bcmap__blocks, .bcmap__guide, .bcmap__dbwall, .bcmap__dbtop { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.bcmap__walls { transform: translateZ(10px); }
.bcmap__blocks { transform: translateZ(20px); }
.bcmap__guide { transform: translateZ(22px); }
/* Dental Beauty hebt sich als roter Block aus dem Plan */
.bcmap__dbwall { transform: translateZ(34px); transition: transform 1s var(--ease-out) 1.2s; }
.bcmap__dbtop { transform: translateZ(46px); transition: transform 1s var(--ease-out) 1.2s; }
.js .bcmap:not(.is-in) .bcmap__dbwall, .js .bcmap:not(.is-in) .bcmap__dbtop { transform: translateZ(20px); transition-delay: 0s; }
.bcmap__pin, .bcmap__tag { position: absolute; left: var(--x); top: var(--y); width: 0; height: 0; transform-style: preserve-3d; transform: translateZ(60px) rotateZ(-45deg) rotateX(-55deg); transition: opacity .6s var(--ease-out) 1.6s; }
.bcmap__pin-in, .bcmap__tag > * { position: absolute; }
.bcmap__pin-in { left: 0; bottom: 0; display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border-radius: 999px; background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: 13px; font-weight: 700; white-space: nowrap; box-shadow: 0 12px 24px -10px rgba(200,16,46,.75); transform: translate(-50%, -10px); animation: bcmapBob 2.6s ease-in-out infinite; }
.bcmap__pin-in::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 12px; height: 12px; margin-left: -6px; background: #b30d29; transform: rotate(45deg); border-radius: 2px; z-index: -1; }
.bcmap__pin-dot { width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 0 rgba(255,255,255,.8); animation: bcmapPing 1.8s ease-out infinite; }
.bcmap__tag { transform: translateZ(30px) rotateZ(-45deg) rotateX(-55deg); }
.bcmap__tag-in { left: 0; bottom: 0; display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .6rem; border-radius: 999px; background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px #c3c6ca, 0 8px 16px -10px rgba(40,42,46,.5); font-family: var(--font-head); font-size: 11px; font-weight: 700; color: var(--grey-700); white-space: nowrap; transform: translate(-50%, -4px); }
.bcmap__tag-in .icon { width: 12px; height: 12px; color: var(--red); }
.bcmap__route { animation: bcmapRoute 1.1s linear infinite; }
.bcmap__db { animation: bcmapDb 2.6s ease-in-out infinite; }
.bcmap__glow { transform-box: fill-box; transform-origin: center; animation: bcmapGlow 3.2s ease-in-out infinite; }
.bcmap__walker { opacity: 0; animation: bcmapWalk 13s linear infinite; }
.bcmap__walker--2 { animation-duration: 17s; animation-delay: -6s; }
.bcmap__walker--3 { animation-duration: 21s; animation-delay: -12s; }
@keyframes bcmapRoute { to { stroke-dashoffset: -48; } }
@keyframes bcmapDb { 50% { opacity: .82; } }
@keyframes bcmapGlow { 50% { transform: scale(1.18); opacity: .65; } }
@keyframes bcmapWalk { 0% { transform: translateX(0); opacity: 0; } 6% { opacity: .9; } 92% { opacity: .9; } 100% { transform: translateX(340px); opacity: 0; } }
@keyframes bcmapBob { 50% { transform: translate(-50%, -16px); } }
@keyframes bcmapPing { 0% { box-shadow: 0 0 0 0 rgba(255,255,255,.85); } 100% { box-shadow: 0 0 0 9px rgba(255,255,255,0); } }
.js .bcmap:not(.is-in) .bcmap__floor { transform: rotateX(0deg) rotateZ(0deg) scale(.86); }
.js .bcmap:not(.is-in) .bcmap__pin, .js .bcmap:not(.is-in) .bcmap__tag { opacity: 0; transition-delay: 0s; }
@media (hover: hover) and (pointer: fine) { .bcmap.is-in:hover .bcmap__floor { transform: rotateX(50deg) rotateZ(40deg); } }
@media (max-width: 900px) { .bcmap-wrap { grid-template-columns: minmax(0, 1fr); } .bcmap__stage { height: clamp(280px, 70vw, 420px); } }
@media (prefers-reduced-motion: reduce) {
  .bcmap__floor, .js .bcmap:not(.is-in) .bcmap__floor { transform: rotateX(55deg) rotateZ(45deg); transition: none; }
  .bcmap__route, .bcmap__db, .bcmap__glow, .bcmap__pin-in, .bcmap__pin-dot, .bcmap__walker { animation: none; }
  .bcmap__pin, .bcmap__tag, .js .bcmap:not(.is-in) .bcmap__pin, .js .bcmap:not(.is-in) .bcmap__tag { opacity: 1; transition: none; }
  .bcmap__dbwall, .bcmap__dbtop { transition: none; }
  .js .bcmap:not(.is-in) .bcmap__dbwall { transform: translateZ(34px); } .js .bcmap:not(.is-in) .bcmap__dbtop { transform: translateZ(46px); }
}

.bc-shops { margin-top: clamp(2.4rem, 1.8rem + 3vw, 4rem); }
.bc-shops__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .5rem 2rem; margin-bottom: 1.2rem; }
.bc-shops__head h3 { margin: 0; font-size: var(--fs-h3); }
.bc-shops__head p { margin: 0; max-width: 52ch; color: var(--text-muted); }
.bc-shops__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; }
.bc-shop { display: grid; grid-template-rows: auto 1fr; gap: .55rem; height: 100%; padding: 1rem 1rem .9rem; border-radius: var(--r-3); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); text-decoration: none; transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out); }
.bc-shop:hover, .bc-shop:focus-visible { transform: translateY(-3px); box-shadow: 0 0 0 1px rgba(200,16,46,.35), 0 20px 36px -24px rgba(40,42,46,.5); }
.bc-shop__logo { display: grid; place-items: center; height: 62px; }
.bc-shop__logo img { width: auto; max-width: 100%; height: auto; max-height: 54px; mix-blend-mode: multiply; opacity: .88; transition: opacity .3s; }
.bc-shop:hover .bc-shop__logo img { opacity: 1; }
.bc-shop__word { font-family: var(--font-head); font-size: 1.7rem; font-weight: 800; letter-spacing: .02em; color: var(--grey-700); }
.bc-shop__name { display: grid; align-content: start; text-align: center; font-family: var(--font-head); font-size: .86rem; font-weight: 700; line-height: 1.25; color: var(--grey-700); }
.bc-shop__name small { margin-top: .15rem; font-family: var(--font-body); font-size: .74rem; font-weight: 500; color: var(--text-muted); }
.bc-shops__more { margin: 1.3rem 0 0; text-align: center; }
@media (max-width: 1000px) { .bc-shops__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .bc-shops__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Zahnschmuck: Varianten ohne festen Preis */
.product__ask { font-family: var(--font-head); font-size: .95rem; font-weight: 600; color: var(--grey-600); }

/* Dental Beauty in der Geschäfte-Liste hervorheben */
.bc-shop { position: relative; }
.bc-shop--db { box-shadow: 0 0 0 2px var(--red), 0 18px 34px -24px rgba(200,16,46,.55); }
.bc-shop--db .bc-shop__logo img { mix-blend-mode: normal; opacity: 1; max-height: 50px; }
.bc-shop__here { position: absolute; top: -.6rem; left: 50%; translate: -50% 0; padding: .2rem .65rem; border-radius: 999px; background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 8px 16px -8px rgba(200,16,46,.7); }

/* ---------- Inhaltsstoffe (Bleaching-Seite) ---------- */
.ingr-sec { padding-top: clamp(1rem, .5rem + 2vw, 2.5rem); }
.ingr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.9rem, .6rem + 1vw, 1.6rem); margin-top: clamp(1.6rem, 1.2rem + 1.5vw, 2.6rem); }
.ingr__card { position: relative; display: flex; flex-direction: column; padding: .55rem; border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); text-align: center; transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.ingr__card:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px rgba(200,16,46,.22), 0 34px 60px -34px rgba(40,42,46,.5); }
/* Bühne: Marmor, Silberring und weicher Glanz – die Schale ist immer vollständig sichtbar */
.ingr__stage { position: relative; display: grid; place-items: center; height: clamp(220px, 16vw + 70px, 280px); overflow: hidden; border-radius: calc(var(--r-frame) - .45rem); background: radial-gradient(55% 55% at 50% 52%, rgba(255,255,255,.95), rgba(255,255,255,0) 72%), radial-gradient(70% 60% at 50% 100%, rgba(200,16,46,.08), transparent 70%), linear-gradient(rgba(246,246,245,.55), rgba(246,246,245,.55)), var(--marble) center / cover; box-shadow: inset 0 0 0 1px rgba(255,255,255,.9); }
.ingr__stage img { position: relative; z-index: 1; display: block; width: clamp(150px, 9vw + 70px, 190px); height: auto; filter: drop-shadow(0 22px 22px rgba(40,42,46,.22)) drop-shadow(0 4px 6px rgba(40,42,46,.12)); transition: transform 1s var(--ease-out); }
.ingr__card:hover .ingr__stage img { transform: translateY(-6px) rotate(-6deg) scale(1.03); }
.ingr__ring { position: absolute; left: 50%; top: 50%; width: calc(clamp(150px, 9vw + 70px, 190px) + 44px); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; padding: 1.5px; background: var(--silver); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); opacity: .9; }
.ingr__ring::after { content: ""; position: absolute; inset: -16px; border-radius: 50%; border: 1px dashed rgba(109,110,113,.28); }
.ingr__num { position: absolute; top: .7rem; left: 1rem; z-index: 2; font-family: var(--font-accent); font-size: clamp(2rem, 1.6rem + 1vw, 2.6rem); font-style: italic; line-height: 1; color: var(--red); opacity: .85; }
.ingr__body { display: flex; flex-direction: column; align-items: center; flex: 1; padding: clamp(1.3rem, 1rem + .8vw, 1.8rem) clamp(1rem, .8rem + .8vw, 1.6rem) clamp(1.4rem, 1rem + .8vw, 1.9rem); }
.ingr__tag { display: inline-flex; align-items: center; gap: .45rem; padding: .38rem .85rem; border-radius: 999px; background: rgba(200,16,46,.07); color: var(--red); font-family: var(--font-head); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ingr__tag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.ingr__name { margin: .9rem 0 0; font-size: clamp(1.25rem, 1.08rem + .55vw, 1.55rem); line-height: 1.22; color: var(--grey-700); text-wrap: balance; }
.ingr__line { display: block; width: 42px; height: 2px; margin: 1rem 0 1rem; border-radius: 2px; background: var(--silver); box-shadow: 0 0 0 .5px #c9ccd1; }
.ingr__text { margin: 0; font-size: .93rem; line-height: 1.7; color: var(--text-muted); }
@media (max-width: 900px) {
  .ingr { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(270px, 82%); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 2px 14px; margin-inline: -2px; }
  .ingr::-webkit-scrollbar { display: none; }
  .ingr__card { scroll-snap-align: start; }
  .ingr__card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .ingr__card, .ingr__stage img { transition: none; } }

.bc-head h2 { -webkit-hyphens: manual; hyphens: manual; }   /* „Brunnen Center“ nicht trennen */

/* Rolltreppe im Centerplan: flach, ohne Höhe. Die roten Pfeile laufen zum unteren Ende (rechts) –
   dort beginnt der rote Weg zu Dental Beauty. */
.bcmap__esc { position: absolute; left: 66.4%; top: var(--y); width: 16.4%; height: 2.64%; transform: translateZ(22px); border-radius: 3px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='12' viewBox='0 0 21 12'%3E%3Cpath d='M8.5 2.5 13 6l-4.5 3.5' fill='none' stroke='%23c8102e' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 0 50% / 21px 100% repeat-x, repeating-linear-gradient(90deg, #fbfbfc 0 5px, #a3a6ab 5px 7px); box-shadow: 0 -3px 0 #2f3134, 0 3px 0 #2f3134, 0 0 0 1px #2f3134; }
@media (prefers-reduced-motion: no-preference) { .bcmap__esc { animation: bcmapEsc 1.3s linear infinite; } }
@keyframes bcmapEsc { to { background-position: 21px 50%, 21px 0; } }
.bcmap__tag-in .icon--down { transform: rotate(180deg); }

@media (max-width: 400px) { .bcmap__tag--wc { display: none; } }

/* ---------- Abschluss-CTA: emotionaler Text, Vorteile, Bewertungs- und Garantie-Karte am Foto (alle Seiten) ---------- */
.cta-band--rich .cta-band__copy { position: relative; z-index: 1; max-width: 37rem; }
.cta-band--rich .cta-band__lead { margin: 0 0 1.8rem; max-width: 50ch; font-size: clamp(1rem, .96rem + .2vw, 1.1rem); line-height: 1.7; color: var(--grey-600, #55575b); }
.cta-band__alt { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; margin: 1.3rem 0 0; font-size: .88rem; color: var(--text-muted); }
.cta-band__alt a { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; color: var(--grey-700); text-decoration: none; border-bottom: 1px solid transparent; transition: color .2s ease, border-color .2s ease; }
.cta-band__alt a:hover { color: var(--red-deep, #a20d26); border-bottom-color: currentColor; }
.cta-band__alt .icon { width: 15px; height: 15px; color: var(--red); }
/* Schwebende Karten links neben dem Porträt */
@media (min-width: 1100px) { .cta-band--rich.cta-band--photo { padding-block: clamp(4.5rem, 3rem + 4vw, 7rem); } }
@media (min-width: 761px) and (max-width: 1099px) {
  .cta-band--rich .cta-band__copy { max-width: 27rem; }
}
@media (max-width: 760px) {
  .cta-band__alt > span { display: none; }
  .cta-band__alt { gap: .55rem 1rem; }
}
/* Tablet hochkant: Foto oben, Text darunter – kein Text über dem Gesicht */
@media (min-width: 761px) and (max-width: 999px) {
  .cta-band--rich.cta-band--photo { padding-top: 0; padding-bottom: clamp(2.6rem, 2rem + 2vw, 3.4rem); }
  .cta-band--rich.cta-band--photo > img { position: relative; inset: auto; width: 100%; max-width: none; height: 430px; aspect-ratio: auto; object-fit: cover; object-position: right 22%; -webkit-mask-image: linear-gradient(180deg, #000 80%, transparent 100%); mask-image: linear-gradient(180deg, #000 80%, transparent 100%); }
  .cta-band--rich.cta-band--photo::before { display: none; }
  .cta-band--rich .cta-band__copy { max-width: 38rem; padding-top: 1.6rem; }
}

/* FRESH UP: Hinweis „Nur für Bestandskund*innen“ unter „Jedes Paket – für nur 99 €.“ */
.fu-only { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; margin: 1rem 0 0; padding: .55rem 1rem .55rem .6rem; border-radius: 999px; background: rgba(200,16,46,.07); box-shadow: inset 0 0 0 1px rgba(200,16,46,.16); font-family: var(--font-head); font-size: .88rem; line-height: 1.3; color: var(--grey-700); }
.fu-only .icon { box-sizing: content-box; width: 14px; height: 14px; padding: 6px; border-radius: 50%; background: var(--red-grad); color: #fff; }
.fu-only strong { font-weight: 700; color: var(--red); }
@media (max-width: 480px) { .fu-only { border-radius: 18px; } .fu-only > span[aria-hidden] { display: none; } }

/* Buttons im Ratgeber-Text: Linkfarbe der Artikel nicht auf Buttons anwenden */
.prose a.btn { text-decoration: none; }
.prose a.btn--primary, .prose a.btn--primary:hover, .prose a.btn--primary:focus-visible { color: #fff; }

/* ---------- Farb-Konfigurator (Bleaching Shade Guide S2–S40) ---------- */
.sgc { position: relative; margin-top: clamp(1.6rem, 1.2rem + 1.5vw, 2.6rem); padding: clamp(1.1rem, .6rem + 2vw, 2.8rem); border-radius: var(--r-frame); background: radial-gradient(70% 55% at 50% 0%, rgba(255,255,255,.92), rgba(255,255,255,0) 72%), linear-gradient(rgba(247,247,246,.62), rgba(247,247,246,.62)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.sgc__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .6rem 2rem; }
.sgc__k { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .75rem; margin: 0 0 1rem; font-family: var(--font-head); font-size: clamp(1rem, .95rem + .3vw, 1.15rem); font-weight: 700; color: var(--grey-700); }
.sgc__k small { flex-basis: 100%; padding-left: 2.65rem; font-family: var(--font-body); font-size: .9rem; font-weight: 400; color: var(--text-muted); }
.sgc__n { display: grid; place-items: center; flex: none; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--red-grad); color: #fff; font-size: .82rem; box-shadow: 0 8px 16px -8px rgba(200,16,46,.75); }
.sgc__tip { display: flex; align-items: flex-start; gap: .55rem; max-width: 30rem; margin: .2rem 0 0; padding: .7rem 1rem; border-radius: 16px; background: rgba(255,255,255,.75); box-shadow: 0 0 0 1px var(--platinum-200); font-size: .85rem; line-height: 1.45; color: var(--grey-600); }
.sgc__tip .icon { flex: none; width: 18px; height: 18px; margin-top: .05rem; color: var(--red); }

/* Farbskala */
.sg { position: relative; margin-top: clamp(1rem, .6rem + 1.4vw, 2rem); padding-inline: clamp(.2rem, .1rem + .8vw, 1.2rem); }
.sg__ends { display: flex; justify-content: space-between; margin: 0 .2rem .8rem; font-family: var(--font-head); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-500); }
.sg__end { display: inline-flex; align-items: center; gap: .5rem; }
.sg__end--l::before, .sg__end--r::after { content: ""; width: 34px; height: 1px; background: linear-gradient(90deg, var(--grey-400), transparent); }
.sg__end--l::before { order: -1; background: linear-gradient(270deg, var(--grey-400), transparent); }
.sg__row { position: relative; display: grid; grid-template-columns: repeat(20, minmax(0, 1fr)); gap: clamp(2px, .35vw, 7px); padding-top: 2.1rem; }
.sg__holder { position: absolute; left: clamp(-1rem, -.4rem - .6vw, -.3rem); right: clamp(-1rem, -.4rem - .6vw, -.3rem); bottom: 0; height: 2.15rem; border-radius: 999px; background: linear-gradient(180deg, #ffffff 0%, #eef0f2 45%, #d9dce0 100%); box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(140,144,150,.25), 0 0 0 1px #d3d6da, 0 16px 28px -18px rgba(40,42,46,.5); }
.sg__track { position: absolute; z-index: 2; bottom: calc(2.15rem + 6px); left: 0; width: 0; height: 3px; border-radius: 3px; background: repeating-linear-gradient(90deg, var(--red) 0 7px, transparent 7px 11px); transform-origin: 100% 50%; transition: left .5s var(--ease-out), width .5s var(--ease-out); pointer-events: none; }
.sg__track::before { content: ""; position: absolute; left: -2px; top: 50%; width: 9px; height: 9px; border-left: 3px solid var(--red); border-bottom: 3px solid var(--red); transform: translateY(-50%) rotate(45deg); border-radius: 1px; }
.sg__t { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 0 0 .5rem; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: opacity .4s ease; }
.sg__crown { display: block; width: 100%; max-width: 50px; filter: drop-shadow(0 7px 6px rgba(70,56,30,.2)); transition: transform .5s var(--ease-out), filter .5s ease; }
.sg__crown svg { display: block; width: 100%; height: auto; }
.sg__stem { display: block; width: 26%; height: 12px; margin-top: -3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, #b6b9be, #f6f7f8 45%, #c4c7cc); box-shadow: 0 1px 2px rgba(40,42,46,.15); }
.sg__lbl i { font-style: normal; }
.sg__lbl { display: block; margin-top: .55rem; padding: .08rem .38rem; border-radius: 999px; font-family: var(--font-head); font-size: clamp(.56rem, .46rem + .3vw, .74rem); font-weight: 700; line-height: 1.35; letter-spacing: .01em; color: var(--grey-600); white-space: nowrap; transition: background-color .3s, color .3s, box-shadow .3s; }
.sg__t::before { position: absolute; top: -2rem; left: 50%; z-index: 3; padding: .22rem .55rem; border-radius: 999px; font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .04em; white-space: nowrap; transform: translateX(-50%); }
.sg__t.is-cur::before { content: "Heute"; background: var(--red-grad); color: #fff; box-shadow: 0 8px 16px -8px rgba(200,16,46,.7); }
.sg__t.is-tgt::before { content: "Möglich"; background: #fff; color: var(--red); box-shadow: 0 0 0 1.5px var(--red), 0 8px 16px -10px rgba(200,16,46,.5); }
.sg__t:hover .sg__crown { transform: translateY(-4px); }
.sg__t.is-way .sg__crown { transform: translateY(-5px); }
.sg__t.is-cur .sg__crown, .sg__t.is-tgt .sg__crown { transform: translateY(-11px) scale(1.07); filter: drop-shadow(0 14px 10px rgba(70,56,30,.26)); }
.sg__t.is-tgt .sg__crown { filter: drop-shadow(0 0 10px rgba(255,255,255,.95)) drop-shadow(0 14px 10px rgba(70,56,30,.22)); }
.sg__t.is-cur .sg__lbl { background: var(--red-grad); color: #fff; }
.sg__t.is-tgt .sg__lbl { background: #fff; color: var(--red); box-shadow: 0 0 0 1.5px var(--red); }
.sg__t.is-way .sg__lbl { color: var(--red); }
.sg__t.is-out .sg__lbl { color: var(--grey-400); }
.sg__t:focus-visible { outline: none; }
.sg__t:focus-visible .sg__lbl { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--grey-700); }
.sgc.is-anim .sg__track { animation: sgTrack .7s var(--ease-out); }
@keyframes sgTrack { from { transform: scaleX(0); } }

/* Pakete */
.sgc__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(1.4rem, 1rem + 2vw, 3rem); margin-top: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); padding-top: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); border-top: 1px solid rgba(190,193,198,.55); }
.sgc__pkgs { display: grid; gap: .8rem; }
.sgc__pkg { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .9rem; padding: 1rem 1.15rem; border: 0; border-radius: 20px; background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px var(--platinum-200), 0 12px 26px -22px rgba(40,42,46,.55); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: box-shadow .3s ease, transform .4s var(--ease-out), background-color .3s; }
.sgc__pkg:hover { transform: translateY(-2px); }
.sgc__pkg[aria-checked="true"] { background: #fff; box-shadow: 0 0 0 2px var(--red), 0 20px 36px -24px rgba(200,16,46,.6); }
.sgc__pkg:focus-visible { outline: 2px solid var(--grey-700); outline-offset: 3px; }
.sgc__radio { width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2px #c3c6ca; transition: box-shadow .3s; }
.sgc__pkg[aria-checked="true"] .sgc__radio { box-shadow: inset 0 0 0 6px var(--red); }
.sgc__pkg-main { display: grid; gap: .25rem; min-width: 0; }
.sgc__pkg-main strong { font-family: var(--font-head); font-size: 1.12rem; font-weight: 700; color: var(--grey-700); }
.sgc__pkg-main strong em { font-family: var(--font-accent); font-weight: 400; font-style: italic; color: var(--grey-500); }
.sgc__pkg-n { font-size: .9rem; color: var(--grey-600); }
.sgc__pkg-n b { font-family: var(--font-head); color: var(--red); }
.sgc__bar { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 3px; max-width: 15rem; margin: .2rem 0 .15rem; }
.sgc__bar i { height: 6px; border-radius: 3px; background: #e3e5e8; }
.sgc__bar i.on { background: linear-gradient(90deg, #e0294a, #a20d26); }
.sgc__pkg-meta { font-size: .78rem; color: var(--text-muted); }
.sgc__pkg-price { display: grid; justify-items: end; gap: .1rem; font-family: var(--font-head); }
.sgc__now { font-size: 1.15rem; font-weight: 700; color: var(--grey-700); }
.sgc__pkg-price s { font-size: .8rem; color: var(--grey-400); }
.sgc__rec { position: absolute; top: -.62rem; right: 1rem; padding: .18rem .6rem; border-radius: 999px; background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 8px 16px -8px rgba(200,16,46,.7); opacity: 0; transform: translateY(4px); transition: opacity .3s, transform .4s var(--ease-out); pointer-events: none; }
.sgc__pkg.is-rec .sgc__rec { opacity: 1; transform: none; }

/* Ergebnis */
.sgc__res { display: grid; align-content: start; gap: 1rem; min-width: 0; }
.sgc__res .sgc__k { margin-bottom: 0; }
.sgc__cmp { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .6rem; padding: 1rem 1.2rem .9rem; border-radius: 22px; background: rgba(255,255,255,.82); box-shadow: 0 0 0 1px var(--platinum-200); }
.sgc__big { display: grid; justify-items: center; gap: .55rem; margin: 0; }
.sgc__big svg { width: clamp(52px, 3vw + 34px, 78px); height: auto; filter: drop-shadow(0 12px 10px rgba(70,56,30,.22)); }
.sgc__big figcaption { display: grid; justify-items: center; gap: .1rem; font-size: .76rem; font-weight: 600; letter-spacing: .04em; color: var(--text-muted); }
.sgc__big b { font-family: var(--font-head); font-size: 1.15rem; color: var(--grey-700); }
.sgc__big--a b { color: var(--red); }
.sgc__delta { display: grid; justify-items: center; gap: .15rem; color: var(--red); text-align: center; }
.sgc__delta strong { font-family: var(--font-accent); font-size: clamp(2rem, 1.5rem + 1.4vw, 2.8rem); font-style: italic; font-weight: 400; line-height: 1; }
.sgc__delta span { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-600); }
.sgc__delta svg { width: clamp(60px, 4vw + 30px, 110px); height: 12px; }
.sgc.is-anim .sgc__big--a svg, .sgc.is-anim .sgc__delta strong { animation: sgPop .6s var(--ease-out); }
@keyframes sgPop { from { transform: scale(.86); opacity: .4; } }
.sgc__st-binc { stop-color: var(--b-inc); } .sgc__st-bbody { stop-color: var(--b-body); } .sgc__st-bcer { stop-color: var(--b-cer); }
.sgc__st-ainc { stop-color: var(--a-inc); } .sgc__st-abody { stop-color: var(--a-body); } .sgc__st-acer { stop-color: var(--a-cer); }
.ba__before .sgc__st-inc { stop-color: var(--b-inc); } .ba__before .sgc__st-body { stop-color: var(--b-body); } .ba__before .sgc__st-cer { stop-color: var(--b-cer); }
.ba__after .sgc__st-inc { stop-color: var(--a-inc); } .ba__after .sgc__st-body { stop-color: var(--a-body); } .ba__after .sgc__st-cer { stop-color: var(--a-cer); }
.sgc__st-binc, .sgc__st-bbody, .sgc__st-bcer, .sgc__st-ainc, .sgc__st-abody, .sgc__st-acer, .sgc__smile stop[class] { transition: stop-color .6s ease; }
.ba.sgc__smile { aspect-ratio: 577 / 374; border-radius: 22px; background: #f4f5f6; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.sgc__smile .ba__img { object-fit: initial; }
.sgc__say { margin: .2rem 0 0; font-size: 1rem; line-height: 1.6; color: var(--grey-700); }
.sgc__cta { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }
.sgc__note { margin: clamp(1.4rem, 1rem + 1vw, 2rem) 0 0; font-size: .8rem; line-height: 1.55; color: var(--text-muted); text-align: center; }

@media (max-width: 900px) {
  .sgc__grid { grid-template-columns: minmax(0, 1fr); }
}
/* Handy: Farbskala in EINER Reihe ohne Wischen – alle 20 Zähne passen auf den Bildschirm.
   Unter den Zähnen nur die Zahl; „Möglich/Wunsch“ steht eine Etage höher als „Heute“, damit sich die Plaketten nicht überdecken. */
@media (max-width: 640px) {
  .sg { padding-inline: 0; }
  .sg__row { grid-template-columns: repeat(20, minmax(0, 1fr)); gap: 2px; padding: 3.3rem 0 .3rem; }
  .sg__holder { left: -.35rem; right: -.35rem; bottom: .3rem; height: 1.65rem; }
  .sg__track { bottom: calc(1.65rem + .3rem + 5px); height: 2px; }
  .sg__crown { max-width: 100%; }
  .sg__lbl { margin-top: .4rem; padding: .04rem .12rem; font-size: .52rem; letter-spacing: 0; }
  .sg__lbl i { display: none; }
  .sg__t::before { top: -1.55rem; font-size: .56rem; padding: .12rem .38rem; }
  .sg__t.is-tgt::before { top: -3.05rem; }
  .sg__row .sg__t:nth-of-type(-n+2)::before { left: 0; transform: none; }
  .sg__row .sg__t:nth-last-of-type(-n+2)::before { left: auto; right: 0; transform: none; }
  .sg__t.is-cur .sg__crown, .sg__t.is-tgt .sg__crown { transform: translateY(-6px) scale(1.14); }
  .sg__t.is-way .sg__crown { transform: translateY(-3px); }
  .sg__ends { margin-bottom: .4rem; }
  .sgc__k small { padding-left: 0; }
  .sgc__pkg { grid-template-columns: auto minmax(0, 1fr); padding: .9rem 1rem; }
  .sgc__pkg-price { grid-column: 2; justify-items: start; grid-auto-flow: column; justify-content: start; align-items: baseline; gap: .5rem; }
  .sgc__cmp { gap: .3rem; padding: .9rem .5rem .8rem; }
  .sgc__big figcaption { font-size: .68rem; white-space: nowrap; }
  .sgc__big b { font-size: .95rem; white-space: nowrap; }
  .sgc__delta span { font-size: .58rem; letter-spacing: .08em; white-space: nowrap; }
  .sgc__delta svg { width: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .sg__crown, .sg__track, .sgc__pkg, .sgc__rec, .sgc__smile stop[class] { transition: none; }
  .sgc.is-anim .sg__track, .sgc.is-anim .sgc__big--a svg, .sgc.is-anim .sgc__delta strong { animation: none; }
}

/* Graue Plakette (z. B. FRESH UP „Für Bestandskund*innen“) */
.price-card__badge.price-card__badge--grey { background: linear-gradient(180deg, #8a8c90, #5d5f63); color: #fff; box-shadow: 0 8px 18px -10px rgba(40,42,46,.6); }

/* Abstand vor dem Abschluss-Abschnitt „Buchen Sie jetzt online …“ kompakter – auf allen Seiten */
.cta-wrap { padding-top: clamp(.6rem, .4rem + .6vw, 1.2rem); }
.section:has(+ .cta-wrap) { padding-bottom: clamp(2rem, 1.4rem + 2vw, 3.6rem); --padding-bottom: clamp(2rem, 1.4rem + 2vw, 3.6rem); }

/* Konfigurator: Funkelsterne über den aufgehellten Zähnen – erscheinen, wenn der Regler nach links geht */
.sgc__sparks { opacity: clamp(0, calc(var(--reveal, .5) * 2 - .7), 1); transition: opacity .25s ease; pointer-events: none; }
.sgc__spark { transform-box: fill-box; transform-origin: center; filter: drop-shadow(0 0 1.2px rgba(255,255,255,.95)); }
@media (prefers-reduced-motion: no-preference) { .sgc__spark { animation: sgSpark 2.2s ease-in-out infinite; animation-delay: var(--d, 0s); } }
@keyframes sgSpark { 0%, 100% { transform: scale(.45) rotate(0deg); opacity: .5; } 50% { transform: scale(1.05) rotate(25deg); opacity: 1; } }
.ba.sgc__smile { background: #f6f6f7; }

#farbskala-title { -webkit-hyphens: manual; hyphens: manual; }   /* nur nach dem Bindestrich umbrechen */

/* Konfigurator Desktop: Karte „In jedem Paket enthalten“ füllt den Platz unter den Paketen */
.sgc__incl { display: none; }
@media (min-width: 901px) {
  .sgc__grid { align-items: stretch; }
  .sgc__pick { display: flex; flex-direction: column; }
  /* Karte füllt den Platz: Punkte als gleichmäßige Kacheln, die sich mit der Höhe strecken */
  .sgc__incl { flex: 1; display: flex; flex-direction: column; gap: .75rem; margin-top: .8rem; padding: 1rem; border-radius: 20px; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px var(--platinum-200); }
  .sgc__incl-k { margin: .1rem 0 0 .2rem; font-family: var(--font-head); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
  .sgc__incl ul { flex: 1; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); gap: .6rem; margin: 0; padding: 0; }
  .sgc__incl li { display: flex; align-items: center; gap: .75rem; min-height: 0; padding: .75rem .9rem; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), 0 10px 22px -20px rgba(40,42,46,.5); font-size: .8rem; line-height: 1.4; color: var(--text-muted); }
  .sgc__incl li strong { display: block; margin-bottom: .1rem; font-family: var(--font-head); font-size: .95rem; font-weight: 700; color: var(--grey-700); }
  .sgc__incl-ico { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(200,16,46,.08); color: var(--red); box-shadow: inset 0 0 0 1px rgba(200,16,46,.2); }
  .sgc__incl-ico .icon { width: 16px; height: 16px; }
  .sgc__incl-go { align-self: flex-start; display: inline-flex; align-items: center; gap: .45rem; margin: 0 0 .1rem .2rem; font-family: var(--font-head); font-size: .85rem; font-weight: 600; color: var(--grey-700); text-decoration: none; }
  .sgc__incl-go .icon { width: 15px; height: 15px; color: var(--red); transition: transform .3s var(--ease-out); }
  .sgc__incl-go:hover { color: var(--red-deep, #a20d26); }
  .sgc__incl-go:hover .icon { transform: translateX(3px); }
}
/* wenig Platz (schmalere Desktops): nur Titel, ohne Link */
@media (min-width: 901px) and (max-width: 1359px) {
  .sgc__incl li { padding: .55rem .75rem; }
  .sgc__incl-go { display: none; }
  .sgc__incl li > span:last-child { font-size: 0; }
  .sgc__incl li strong { margin: 0; font-size: .86rem; }
  .sgc__incl-ico { width: 30px; height: 30px; }
}

/* Konfigurator: Umschalter „Nach Paket“ / „Wunschfarbe frei wählen“ */
.sgc__mode { display: inline-flex; flex-wrap: wrap; gap: .3rem; padding: .3rem; border-radius: 999px; background: rgba(255,255,255,.8); box-shadow: 0 0 0 1px var(--platinum-200); }
.sgc__mode-btn { display: inline-flex; align-items: center; gap: .45rem; min-height: 40px; padding: .5rem 1rem; border: 0; border-radius: 999px; background: transparent; color: var(--grey-600); font-family: var(--font-head); font-size: .85rem; font-weight: 600; cursor: pointer; transition: background-color .25s, color .25s, box-shadow .25s; }
.sgc__mode-btn .icon { width: 15px; height: 15px; color: var(--red); }
.sgc__mode-btn:hover { color: var(--grey-700); }
.sgc__mode-btn[aria-pressed="true"] { background: var(--red-grad); color: #fff; box-shadow: 0 8px 18px -10px rgba(200,16,46,.7); }
.sgc__mode-btn[aria-pressed="true"] .icon { color: #fff; }
.sgc__mode-btn:focus-visible { outline: 2px solid var(--grey-700); outline-offset: 2px; }
.sgc.is-wish .sg__t.is-tgt::before { content: "Wunsch"; }
@media (max-width: 640px) { .sgc__mode { display: flex; width: 100%; } .sgc__mode-btn { flex: 1 1 auto; justify-content: center; padding: .5rem .7rem; font-size: .8rem; } }
.sgc__pkgs[hidden] { display: none; }
.sgc__bar--22 { grid-template-columns: repeat(22, minmax(0, 1fr)); gap: 2px; max-width: 17rem; }
@media (min-width: 901px) {
  .sgc__incl--mc, .sgc.is-mc .sgc__incl:not(.sgc__incl--mc) { display: none; }
  .sgc.is-mc .sgc__incl--mc { display: flex; }
}
.result-card figcaption.result-card__cap { justify-content: center; }
@media (min-width: 901px) and (max-width: 1099px) { .sgc__incl { gap: .5rem; padding: .75rem; } .sgc__incl ul { gap: .45rem; } .sgc__incl li { padding: .45rem .65rem; } }
/* Auswahl-Umschalter rechts neben „Ihre Zahnfarbe heute“, solange Platz ist – sonst darunter */
.sgc__head { align-items: center; margin-bottom: 1rem; }
.sgc__head .sgc__k { flex: 1 1 17rem; min-width: 0; margin-bottom: 0; }
.sgc__head .sgc__mode { flex: 0 0 auto; }
@media (max-width: 640px) { .sgc__head .sgc__mode { flex: 1 1 100%; } }

/* Konfigurator: Reihenfolge unter 1180 px wie bisher (Vergleich – Lächeln – Text – Button) */
.sgc__info { display: contents; }
.sgc__res > .sgc__k { order: 0; }
.sgc__info .sgc__cmp { order: 1; }
.sgc__res > .sgc__smile { order: 2; }
.sgc__info .sgc__say { order: 3; }
.sgc__info .sgc__cta { order: 4; }

/* Desktop kompakt: alles auf einen Bildschirm – Pakete | Lächeln | Ergebnis nebeneinander */
@media (min-width: 1180px) {
  .sgc { padding: 1.4rem 1.8rem 1.1rem; }
  .sgc__head { margin-bottom: .2rem; }
  .sg { margin-top: .4rem; }
  .sg__ends { margin-bottom: .2rem; }
  .sg__row { padding-top: 1.9rem; }
  .sg__crown { max-width: 42px; }
  .sg__lbl { margin-top: .4rem; }
  .sgc__grid { grid-template-columns: minmax(0, .82fr) minmax(0, 2.18fr); gap: 1.6rem; margin-top: 1rem; padding-top: 1rem; }
  .sgc__k { margin-bottom: .7rem; }
  .sgc__k small { font-size: .85rem; }
  /* Pakete schlanker */
  .sgc__pkgs { gap: .55rem; }
  .sgc__pkg { gap: .7rem; padding: .7rem .9rem; border-radius: 16px; }
  .sgc__pkg-main { gap: .15rem; }
  .sgc__pkg-main strong { font-size: 1rem; }
  .sgc__pkg-n { font-size: .82rem; }
  .sgc__pkg-meta { display: none; }
  .sgc__bar { margin: .15rem 0 0; }
  .sgc__now { font-size: 1.05rem; }
  .sgc__incl { display: none !important; }
  /* Ergebnis: Lächeln links, Zahlen + Text + Button rechts */
  .sgc__res { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); grid-template-areas: "k k" "smile info"; gap: 0 1.4rem; align-items: start; }
  .sgc__res > .sgc__k { grid-area: k; }
  .sgc__res > .sgc__smile { grid-area: smile; }
  .sgc__info { grid-area: info; display: grid; gap: .8rem; align-content: start; }
  .sgc__cmp { padding: .8rem .8rem .7rem; gap: .3rem; }
  .sgc__big svg { width: 50px; }
  .sgc__big figcaption { font-size: .7rem; }
  .sgc__big b { font-size: 1.05rem; }
  .sgc__delta strong { font-size: 2.1rem; }
  .sgc__delta span { font-size: .62rem; letter-spacing: .1em; }
  .sgc__delta svg { width: 64px; }
  .sgc__say { margin: 0; font-size: .92rem; line-height: 1.55; }
  .sgc__cta { flex-direction: column; align-items: stretch; gap: .6rem; }
  .sgc__cta .btn { justify-content: center; }
  .sgc__cta .link-arrow { align-self: center; }
  .sgc__note { margin-top: .9rem; font-size: .74rem; }
}
/* Desktop kompakt: Luft nach Bildschirmhöhe – nutzt den freien Platz, ohne dass gescrollt werden muss */
@media (min-width: 1180px) {
  .sgc { padding: clamp(1.3rem, 3vh, 2.5rem) clamp(1.8rem, 2.6vw, 2.8rem) clamp(1rem, 2.2vh, 1.9rem); }
  .sgc__head { margin-bottom: clamp(.2rem, .8vh, .7rem); }
  .sg { margin-top: clamp(.4rem, 1.2vh, 1rem); }
  .sg__ends { margin-bottom: clamp(.2rem, .6vh, .5rem); }
  .sg__row { padding-top: 2rem; gap: clamp(3px, .45vw, 8px); }
  .sg__crown { max-width: clamp(38px, 4.8vh, 52px); }
  .sgc__grid { gap: clamp(1.6rem, 2.6vw, 2.8rem); margin-top: clamp(.9rem, 2.4vh, 1.9rem); padding-top: clamp(.9rem, 2.4vh, 1.9rem); }
  .sgc__k { margin-bottom: clamp(.7rem, 1.6vh, 1.1rem); }
  .sgc__pkgs { gap: clamp(.55rem, 1.3vh, .95rem); }
  .sgc__pkg { gap: .9rem; padding: clamp(.75rem, 1.5vh, 1.05rem) 1.05rem; border-radius: 18px; }
  .sgc__res { column-gap: clamp(1.4rem, 2.2vw, 2.4rem); }
  .sgc__info { gap: clamp(.8rem, 1.8vh, 1.3rem); }
  .sgc__cmp { padding: clamp(.8rem, 1.6vh, 1.2rem) 1rem; }
  .sgc__note { margin-top: clamp(.9rem, 2.2vh, 1.7rem); }
}
/* genug Höhe (z. B. 1920 × 1080): Dauer und Gel-Anwendungen wieder zeigen */
@media (min-width: 1180px) and (min-height: 960px) { .sgc__pkg-meta { display: block; font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
/* niedrige Laptop-Bildschirme (z. B. 1280 × 800): noch etwas dichter */
@media (min-width: 1180px) and (max-height: 860px) {
  .sgc { padding-top: 1rem; padding-bottom: .7rem; }
  .sg__crown { max-width: 36px; }
  .sgc__pkgs { gap: .5rem; }
  .sgc__info { gap: .7rem; }
  .sgc__cmp { padding: .6rem .7rem; }
  .sgc__big svg { width: 42px; }
  .sgc__delta strong { font-size: 1.8rem; }
  .sgc__say { font-size: .86rem; line-height: 1.5; }
  .sgc__cta { gap: .4rem; }
  .sg__row { padding-top: 1.75rem; }
  .sgc__grid { margin-top: .7rem; padding-top: .8rem; }
  .sgc__k { margin-bottom: .55rem; }
  .sgc__note { margin-top: .6rem; }
}
/* Vergleich: Beschriftung darf umbrechen, die S-Werte bleiben auf einer Linie */
.sgc__big figcaption { grid-template-rows: minmax(2.6em, auto) auto; text-align: center; }
.sgc__big figcaption > span { align-self: end; line-height: 1.3; }
/* Desktop kompakt: Überschrift 3 mit gleichem Abstand wie 2; Pakete, Lächeln und Ergebnis oben und unten bündig */
@media (min-width: 1180px) {
  .sgc__grid { align-items: stretch; }
  .sgc__res > .sgc__k, .sgc__pick > .sgc__k { margin-bottom: clamp(.8rem, 1.8vh, 1.2rem); }
  .sgc__res { grid-template-rows: auto 1fr; align-items: stretch; }
  .sgc__res > .sgc__smile { width: 100%; justify-self: stretch; align-self: stretch; height: auto; }
  .sgc__info { display: flex; flex-direction: column; justify-content: space-between; gap: .8rem; }
  .sgc__info .sgc__cta { margin-top: auto; }
  .sgc__pick { display: flex; flex-direction: column; }
  .sgc__pick .sgc__pkgs:not([hidden]) { flex: 1; grid-auto-rows: 1fr; }
}
/* Wunsch über dem Möglichen: Wunsch gestrichelt, Ergebnis wie gewohnt „Möglich“ */
.sg__t.is-wishpt::before { content: "Wunsch"; background: #fff; color: var(--grey-600); border: 1.5px dashed var(--grey-400); padding: .15rem .5rem; }
.sg__t.is-wishpt .sg__lbl { color: var(--grey-700); box-shadow: 0 0 0 1.5px var(--grey-400); }
.sg__t.is-wishpt { opacity: 1; }
.cta-band__lead a { color: var(--grey-700); font-weight: 600; text-decoration: underline; text-decoration-color: var(--red-line, rgba(200,16,46,.35)); text-underline-offset: 3px; }
.cta-band__lead a:hover { color: var(--red-deep, #a20d26); }

/* ---------- Franchise ---------- */
.pressbar img { filter: none; opacity: 1; }
/* Markt: nummerierte Punkte + Bild */
.fr-market__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2rem, 1.2rem + 3vw, 4.5rem); align-items: center; }
.fr-market__copy .lead { max-width: 52ch; }
.fr-points { list-style: none; display: grid; gap: 0; margin: clamp(1.4rem, 1rem + 1vw, 2rem) 0 0; padding: 0; }
.fr-points li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.2rem; padding: 1.2rem 0; border-top: 1px solid var(--platinum-200); }
.fr-points li:last-child { border-bottom: 1px solid var(--platinum-200); }
.fr-points__n { font-family: var(--font-accent); font-size: clamp(2rem, 1.6rem + 1vw, 2.6rem); font-style: italic; line-height: .9; color: var(--red); }
.fr-points h3 { margin: .1rem 0 .35rem; font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem); }
.fr-points p { margin: 0; font-size: .95rem; line-height: 1.65; color: var(--text-muted); }
.fr-market__media { position: relative; margin: 0; overflow: hidden; border-radius: var(--r-frame); aspect-ratio: 4 / 5; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.fr-market__media img { width: 100%; height: 100%; object-fit: cover; }
.fr-market__media figcaption { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; display: flex; align-items: center; gap: .5rem; padding: .7rem 1rem; border-radius: 16px; background: rgba(255,255,255,.88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font-family: var(--font-head); font-size: .82rem; font-weight: 600; color: var(--grey-700); }
.fr-market__media figcaption .icon { width: 16px; height: 16px; color: var(--red); }
/* Partnerpaket */
.fr-pack__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1rem, .6rem + 1.4vw, 1.8rem); align-items: stretch; }
.fr-pack__media { margin: 0; overflow: hidden; border-radius: var(--r-frame); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); min-height: 100%; }
.fr-pack__media img { width: 100%; height: 100%; object-fit: cover; }
.fr-pack__col { padding: clamp(1.3rem, 1rem + 1vw, 2rem); border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.fr-pack__k { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.1rem; font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.fr-pack__k span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--red-grad); color: #fff; font-size: .8rem; letter-spacing: 0; box-shadow: 0 8px 16px -8px rgba(200,16,46,.7); }
.fr-check { list-style: none; display: grid; gap: 1rem; margin: 0; padding: 0; }
.fr-check li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; font-size: .9rem; line-height: 1.55; color: var(--text-muted); }
.fr-check li > .icon { box-sizing: content-box; width: 14px; height: 14px; margin-top: .1rem; padding: 5px; border-radius: 50%; background: rgba(200,16,46,.08); color: var(--red); box-shadow: inset 0 0 0 1px rgba(200,16,46,.2); }
.fr-check strong { display: block; margin-bottom: .1rem; font-family: var(--font-head); font-size: .98rem; font-weight: 700; color: var(--grey-700); }
/* Weg in 5 Schritten */
.fr-steps { position: relative; list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(.8rem, .5rem + 1vw, 1.4rem); margin: clamp(1.6rem, 1.2rem + 1.5vw, 2.6rem) 0 0; padding: 0; counter-reset: none; }
.fr-steps::before { content: ""; position: absolute; left: 10%; right: 10%; top: 31px; height: 2px; background: repeating-linear-gradient(90deg, rgba(200,16,46,.45) 0 8px, transparent 8px 14px); }
.fr-steps__item { position: relative; text-align: center; padding: 0 .4rem; }
.fr-steps__ico { position: relative; display: inline-grid; place-items: center; width: 64px; height: 64px; margin-bottom: 1rem; border-radius: 50%; background: var(--silver); color: var(--red); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c9ccd1, 0 14px 26px -14px rgba(68,70,74,.55); }
.fr-steps__ico .icon { width: 22px; height: 22px; }
.fr-steps__ico b { position: absolute; top: -4px; right: -4px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--red-grad); color: #fff; font-family: var(--font-head); font-size: .74rem; box-shadow: 0 6px 12px -6px rgba(200,16,46,.7); }
.fr-steps h3 { margin: 0 0 .4rem; font-size: clamp(1rem, .95rem + .25vw, 1.15rem); }
.fr-steps p { margin: 0; font-size: .88rem; line-height: 1.6; color: var(--text-muted); }
/* Studio-CTA mit echtem Studiofoto */
.fr-cta { padding: 0 var(--frame); margin-top: var(--section-y); }
.fr-cta__in { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: clamp(460px, 38vw, 640px); padding-block: clamp(2.4rem, 1.6rem + 3vw, 4.4rem); border-radius: var(--r-frame); box-shadow: var(--shadow-2); }
.fr-cta__in > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fr-cta__in::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(250,250,249,.94) 0%, rgba(250,250,249,.82) 38%, rgba(250,250,249,.1) 66%, rgba(250,250,249,0) 100%); }
.fr-cta__in > .container { width: 100%; }
.fr-cta__card { max-width: 34rem; }
.fr-cta__card h2 { margin: .2rem 0 .9rem; font-size: clamp(2rem, 1.4rem + 2vw, 3.1rem); line-height: 1.08; }
.fr-cta__card p:not(.eyebrow) { margin: 0 0 1.6rem; max-width: 46ch; font-size: clamp(1rem, .96rem + .2vw, 1.1rem); line-height: 1.7; color: var(--grey-600, #57595d); }
.fr-cta__tag { position: absolute; right: 1.2rem; bottom: 1.2rem; display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; border-radius: 999px; background: rgba(255,255,255,.88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: var(--shadow-1); font-family: var(--font-head); font-size: .8rem; font-weight: 600; color: var(--grey-700); }
.fr-cta__tag .icon { width: 15px; height: 15px; color: var(--red); }
.fr-cta + .section { margin-top: 0; }
@media (max-width: 1000px) {
  .fr-market__grid { grid-template-columns: minmax(0, 1fr); }
  .fr-market__media { aspect-ratio: 16 / 10; }
  .fr-pack__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .fr-pack__media { grid-column: 1 / -1; aspect-ratio: 16 / 8; min-height: 0; }
  .fr-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; }
  .fr-steps::before { display: none; }
  .fr-steps__item:last-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .fr-pack__grid { grid-template-columns: minmax(0, 1fr); }
  .fr-steps { grid-template-columns: minmax(0, 1fr); text-align: left; }
  .fr-steps__item { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; text-align: left; padding: 0; }
  .fr-steps__ico { grid-row: span 2; width: 52px; height: 52px; margin: 0; }
  .fr-steps h3 { align-self: end; }
  .fr-cta__in { flex-direction: column; align-items: stretch; padding-top: 0; min-height: 0; }
  .fr-cta__in > img { position: relative; inset: auto; height: 240px; z-index: 0; }
  .fr-cta__in::before { display: none; }
  .fr-cta__in { background: #f6f6f5; }
  .fr-cta__card { padding-top: 1.4rem; }
  .fr-cta__tag { top: 1rem; right: 1rem; bottom: auto; }
}

/* Einzugsgebiet: „So kommen Sie zu uns“ statt Zahlenleiste */
.ezg-facts { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.7rem, .5rem + .8vw, 1.2rem); margin: 0; padding: 0; }
.ezg-facts li { display: flex; align-items: flex-start; gap: .85rem; padding: 1.15rem 1.2rem; border-radius: 20px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); font-size: .88rem; line-height: 1.55; color: var(--text-muted); }
.ezg-facts strong { display: block; margin-bottom: .2rem; font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: var(--grey-700); }
.ezg-facts__ico { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--silver); color: var(--red); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c9ccd1, 0 8px 16px -10px rgba(68,70,74,.5); }
.ezg-facts__ico .icon { width: 18px; height: 18px; }
@media (max-width: 1000px) { .ezg-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ezg-facts { grid-template-columns: minmax(0, 1fr); } }
/* Franchise: Überschrift im Studio-Abschnitt nicht mitten im Wort trennen */
.fr-cta__card h2 { -webkit-hyphens: manual; hyphens: manual; }

/* ---------- Franchise: Anfrageformular ---------- */
.fr-form__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 1rem + 3.5vw, 5rem); align-items: start; }
.fr-form__intro { position: sticky; top: calc(var(--header-h, 84px) + 1.5rem); }
.fr-form__intro .lead { max-width: 44ch; }
.fr-next { list-style: none; display: grid; gap: .9rem; margin: 1.8rem 0 0; padding: 0; }
.fr-next li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; align-items: start; font-size: .9rem; line-height: 1.55; color: var(--text-muted); }
.fr-next li > span { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--silver); color: var(--red); font-family: var(--font-head); font-size: .85rem; font-weight: 700; box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c9ccd1, 0 8px 16px -10px rgba(68,70,74,.5); }
.fr-next strong { display: block; margin-bottom: .1rem; font-family: var(--font-head); font-size: 1rem; color: var(--grey-700); }
.fr-contact { display: grid; gap: .6rem; margin-top: 2rem; padding: 1.2rem; border-radius: 20px; background: rgba(255,255,255,.7); box-shadow: 0 0 0 1px var(--platinum-200); }
.fr-contact__k { margin: 0 0 .2rem; font-family: var(--font-head); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.fr-contact a { display: flex; align-items: center; gap: .8rem; padding: .55rem .6rem; border-radius: 14px; font-family: var(--font-head); font-size: .95rem; font-weight: 600; color: var(--grey-700); text-decoration: none; transition: background-color .25s; }
.fr-contact a:hover { background: #fff; }
.fr-contact a small { display: block; font-family: var(--font-body); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--grey-500); }
.fr-contact__ico { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(200,16,46,.08); color: var(--red); box-shadow: inset 0 0 0 1px rgba(200,16,46,.2); }
.fr-contact__ico .icon { width: 16px; height: 16px; }
/* Formularkarte */
.fr-fcard { gap: 1.4rem; padding: clamp(1.4rem, 1rem + 2vw, 2.6rem); border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), 0 40px 80px -48px rgba(40,42,46,.45); }
.fr-fcard__head { display: flex; align-items: center; gap: .9rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--platinum-200); }
.fr-fcard__head strong { display: block; font-family: var(--font-head); font-size: 1.15rem; color: var(--grey-700); }
.fr-fcard__head small { font-size: .82rem; color: var(--text-muted); }
.fr-fcard__ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--red-grad); color: #fff; box-shadow: 0 10px 20px -10px rgba(200,16,46,.75); }
.fr-fcard__ico .icon { width: 20px; height: 20px; }
.fr-group { display: grid; gap: 1rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.fr-group legend { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; padding: 0; font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-600); }
.fr-group legend span { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: rgba(200,16,46,.08); color: var(--red); letter-spacing: 0; }
.fr-fcard .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.fr-fcard .field { gap: .4rem; }
.fr-fcard .field label:not(.checkbox), .fr-q { margin: 0; font-family: var(--font-head); font-size: .86rem; font-weight: 600; color: var(--grey-700); }
.fr-fcard .field input:not([type="checkbox"]):not([type="radio"]), .fr-fcard .field textarea { min-height: 50px; padding: .75rem 1rem; border: 1px solid var(--platinum-300); border-radius: 14px; background: #fafafa; font-size: .95rem; transition: border-color .2s, box-shadow .2s, background-color .2s; }
.fr-fcard .field textarea { min-height: 120px; }
.fr-fcard .field input::placeholder, .fr-fcard .field textarea::placeholder { color: #a5a7ab; }
.fr-fcard .field input:focus, .fr-fcard .field textarea:focus { background: #fff; border-color: rgba(200,16,46,.5); box-shadow: 0 0 0 4px rgba(200,16,46,.1); }
.fr-fcard .field__error:empty { display: none; }
.fr-input-ico { position: relative; }
.fr-input-ico > .icon { position: absolute; left: .95rem; top: 50%; width: 17px; height: 17px; translate: 0 -50%; color: var(--red); pointer-events: none; }
.fr-fcard .fr-input-ico input { padding-left: 2.6rem !important; }
/* Auswahl als Segment-Schalter */
.fr-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.fr-seg label { position: relative; cursor: pointer; }
.fr-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fr-seg span { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 50px; padding: .6rem .9rem; border-radius: 14px; background: #fafafa; box-shadow: inset 0 0 0 1px var(--platinum-300); font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--grey-600); text-align: center; transition: box-shadow .2s, background-color .2s, color .2s; }
.fr-seg span .icon { width: 16px; height: 16px; color: var(--red); }
.fr-seg label:hover span { background: #fff; }
.fr-seg input:checked + span { background: rgba(200,16,46,.06); box-shadow: inset 0 0 0 2px var(--red); color: var(--grey-700); }
.fr-seg input:focus-visible + span { outline: 2px solid var(--grey-700); outline-offset: 2px; }
.fr-privacy { padding: .9rem 1rem; border-radius: 14px; background: #fafafa; box-shadow: inset 0 0 0 1px var(--platinum-200); font-size: .84rem !important; color: var(--text-muted) !important; }
.fr-privacy input { accent-color: var(--red) !important; }
.fr-privacy a { color: var(--grey-700); text-decoration: underline; text-underline-offset: 2px; }
.fr-fcard .btn--block { min-height: 54px; }
.fr-fcard__hint { display: flex; align-items: flex-start; gap: .5rem; margin: -.4rem 0 0; font-size: .8rem; line-height: 1.5; color: var(--text-muted); }
.fr-fcard__hint .icon { flex: none; width: 15px; height: 15px; margin-top: .1rem; color: var(--red); }
@media (max-width: 1000px) {
  .fr-form__grid { grid-template-columns: minmax(0, 1fr); }
  .fr-form__intro { position: static; }
}
@media (max-width: 560px) {
  .fr-fcard .form-row, .fr-seg { grid-template-columns: minmax(0, 1fr); }
}

/* Startseite mobil: Buttons im Hero ausblenden – „Termin buchen“ steht im Menü und direkt darunter im Angebot.
   Ohne laufende Aktion (kein Angebotskasten) bleiben sie sichtbar. */
@media (max-width: 760px) {
  body:not(.db-aktion-aus) .hero2:not(.phero) .hero2__copy .actions { display: none; }   /* ohne „>“, damit es auch in Elementor greift */
}

/* ---------- Aufklärungsbogen ---------- */
.ab-sec .prose h2 { font-size: clamp(1.35rem, 1.2rem + .7vw, 1.75rem); margin-top: 1.9em; }
.ab-sec .prose h2:first-child, .ab-sec .prose h3:first-child { margin-top: 0; }
.ab-note { display: flex; align-items: flex-start; gap: .75rem; margin: 1.6rem 0; padding: 1rem 1.15rem; border-radius: 14px; background: rgba(200,16,46,.05); box-shadow: inset 0 0 0 1px rgba(200,16,46,.22); font-weight: 600; color: var(--grey-700); }
.ab-note > .icon { flex: none; width: 20px; height: 20px; margin-top: .15rem; color: var(--red); }
.ab-form .fr-fcard .ab-sig { font-family: var(--font-accent); font-size: 1.2rem; font-style: italic; }
.ab-form .fr-fcard .ab-sig::placeholder { font-family: var(--font-body); font-size: .95rem; font-style: normal; }
.ab-form .fr-fcard__hint a { color: var(--grey-700); text-decoration: underline; text-underline-offset: 2px; }
.ab-diet { display: grid; gap: 1.1rem; margin-top: .7rem; }
.ab-diet__k { display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem; font-family: var(--font-head); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-600); }
.ab-diet__k .icon { width: 15px; height: 15px; }
.ab-diet__no .ab-diet__k { color: var(--red); }
.ab-diet ul { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; }
.ab-diet li { padding: .3rem .65rem; border-radius: var(--r-pill); font-size: .8rem; font-weight: 600; line-height: 1.3; }
.ab-diet__ok li { background: #fff; box-shadow: inset 0 0 0 1px var(--platinum-300); color: var(--grey-700); }
.ab-diet__no li { background: rgba(200,16,46,.06); box-shadow: inset 0 0 0 1px rgba(200,16,46,.2); color: #9f0d25; }

/* ---------- Zahnschmuck: echte Steinfotos, Farben, Preisliste ---------- */
.product__media--photo { background: #fff; }
/* Steinfotos: eng zugeschnitten, feste Höhe (klein genug, um scharf zu wirken), gleicher Abstand oben und unten
   (oben 26 px ≈ unten 8 px + Innenabstand des Kartentexts), nichts wird beschnitten, kein Zoom beim Überfahren */
.product__media--photo { aspect-ratio: auto; place-items: center; padding: 26px 1.1rem 8px; overflow: visible; }
/* Zahnschmuck-Karten: Bild, Titel, Beschreibung, Preis und Farben-Link mittig */
.product__media--photo + .product__body { align-items: center; text-align: center; }
.product__media--photo + .product__body .product__price { justify-content: center; }
.product__media--photo + .product__body .btn { align-self: stretch; }
.product__media--photo img { width: auto; height: 84px; max-width: 100%; object-fit: contain; }
.product__media--photo img.is-small { height: 58px; margin-block: 13px; }
.product:hover .product__media--photo img { transform: none; }
@media (max-width: 599px) {
  .product__media--photo { padding: 20px 1.1rem 4px; }
  .product__media--photo img { height: 78px; }
  .product__media--photo img.is-small { height: 54px; margin-block: 12px; }
}
.product__badge--colors { display: inline-flex; align-items: center; gap: .45rem; font-size: .72rem; }
.zs-dots { display: inline-flex; }
.zs-dots i { width: 10px; height: 10px; margin-left: -3px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 1.5px #fff; }
.zs-dots i:first-child { margin-left: 0; }
.product__unit { font-family: var(--font-body); font-size: .8rem; font-weight: 500; color: var(--text-muted); }
.zs-note { display: flex; align-items: center; justify-content: center; gap: .55rem; margin: clamp(1.6rem, 1rem + 2vw, 2.6rem) auto 0; max-width: 60ch; font-size: .95rem; text-align: center; color: var(--text-muted); }
.zs-note .icon { flex: none; width: 18px; height: 18px; color: var(--red); }
.zs-swatches { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, .5rem + 1.2vw, 1.4rem); margin: 0; padding: 0; }
@media (min-width: 1000px) { .zs-swatches { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
.zs-swatch { display: grid; justify-items: center; gap: .6rem; padding: clamp(.8rem, .5rem + 1vw, 1.2rem) .4rem; border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); text-align: center; }
.zs-swatch img { width: min(100%, 70px); height: auto; aspect-ratio: 1; }
.zs-swatch span { font-family: var(--font-head); font-size: .84rem; font-weight: 600; line-height: 1.25; color: var(--grey-700); }
.zs-small { margin: 1.2rem 0 0; font-size: .82rem; text-align: center; color: var(--text-muted); }
.zs-prices__grid { display: grid; gap: clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
@media (min-width: 1000px) { .zs-prices__grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } .zs-prices__intro { position: sticky; top: calc(var(--header-h) + 1.5rem); } }
.zs-prices__intro .lead { max-width: 42ch; margin-bottom: 1.6rem; }
.zs-plist { list-style: none; margin: 0; padding: clamp(.4rem, .2rem + .6vw, .8rem) clamp(1rem, .6rem + 1.5vw, 1.8rem); border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.zs-plist li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .9rem 0; border-top: 1px solid var(--line); }
.zs-plist li:first-child { border-top: 0; }
.zs-plist__img { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); overflow: hidden; }
.zs-plist__img img { width: 80%; height: 80%; object-fit: contain; }
.zs-plist__t { display: grid; gap: .15rem; min-width: 0; }
.zs-plist__t strong { font-family: var(--font-head); font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--grey-700); }
.zs-plist__t small { font-size: .82rem; line-height: 1.4; color: var(--text-muted); }
.zs-plist__p { font-family: var(--font-head); font-size: 1.15rem; font-weight: 700; white-space: nowrap; color: var(--red-deep, #9f0d25); }
@media (max-width: 480px) { .zs-plist li { gap: .75rem; } .zs-plist__img { width: 52px; height: 52px; } .zs-plist__p { font-size: 1rem; } }

/* Zahnschmuck-Galerie: Video + Fotos */
.zs-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.8rem, .5rem + 1vw, 1.4rem); }
@media (min-width: 1000px) { .zs-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } }   /* 4 in einer Reihe, darunter 2 × 2 */
.zs-gallery__item { position: relative; margin: 0; aspect-ratio: 4 / 5; border-radius: var(--r-frame); overflow: hidden; background: var(--platinum-100); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.zs-gallery__item img, .zs-gallery__item video { display: block; width: 100%; height: 100%; object-fit: cover; }
.zs-gallery__item video { cursor: pointer; }
.zs-gallery__toggle { position: absolute; right: .8rem; bottom: .8rem; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.88); color: var(--grey-700); box-shadow: var(--shadow-1); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); cursor: pointer; }
.zs-gallery__toggle .icon { width: 18px; height: 18px; }

.product__colors { display: inline-flex; align-items: center; gap: .45rem; width: fit-content; margin-top: .15rem; font-family: var(--font-head); font-size: .78rem; font-weight: 600; color: var(--grey-700); text-decoration: none; transition: color .2s; }
.product__colors .icon { width: 13px; height: 13px; transition: transform .2s; }
.product__colors:hover, .product__colors:focus-visible { color: var(--red); }
.product__colors:hover .icon { transform: translateX(3px); }
.zs-plist__t small a { color: var(--grey-700); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.zs-plist__t small a:hover { color: var(--red); }

/* Zahnschmuck: 3 Monate Garantie */
.zs-guarantee { display: flex; gap: .85rem; align-items: flex-start; max-width: 42ch; margin: -.4rem 0 1.6rem; padding: .95rem 1.1rem; border-radius: var(--r-frame); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); font-size: .93rem; line-height: 1.5; color: var(--text-muted); }
.zs-guarantee .icon { flex: none; width: 34px; height: 34px; padding: 7px; border-radius: 50%; background: var(--red-grad); color: #fff; }
.zs-guarantee strong { display: block; font-family: var(--font-head); font-size: 1rem; color: var(--grey-700); }

/* Grillz – Coming soon */
.product__soon { display: inline-flex; padding: .32rem .85rem; border-radius: var(--r-pill); background: var(--silver); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b9bcc1; font-family: var(--font-head); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-700); }
.zs-grillz__partner { display: flex; align-items: center; gap: .55rem; margin: 0 0 1.2rem; font-family: var(--font-head); font-weight: 600; color: var(--grey-700); }
.zs-grillz__partner .icon { flex: none; width: 20px; height: 20px; color: var(--red); }
.zs-grillz__tags { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0; }
.zs-grillz__tags li { padding: .42rem .95rem; border-radius: var(--r-pill); background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px var(--platinum-200); font-size: .85rem; font-weight: 600; color: var(--grey-700); }
.zs-grillz__media { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.7rem, .4rem + 1vw, 1.2rem); padding-bottom: 2.4rem; }
.zs-grillz__photo { margin: 0; aspect-ratio: 1; border-radius: var(--r-frame); overflow: hidden; background: var(--platinum-100); box-shadow: 0 0 0 1px rgba(255,255,255,.7), var(--shadow-2); }
.zs-grillz__photo:nth-child(2) { transform: translateY(2.4rem); }
.zs-grillz__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.zs-grillz__piece { position: absolute; left: 50%; bottom: -1.6rem; translate: -50% 0; margin: 0; padding: .8rem 1.1rem .6rem; border-radius: var(--r-frame); background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); text-align: center; }
.zs-grillz__piece img { display: block; width: auto; height: 70px; margin-inline: auto; }
.zs-grillz__piece figcaption { margin-top: .35rem; font-family: var(--font-head); font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--grey-500); }
@media (max-width: 599px) {
  .zs-grillz__media { padding-bottom: 0; }
  .zs-grillz__photo:nth-child(2) { transform: none; }
  .zs-grillz__piece { position: static; translate: none; grid-column: 1 / -1; justify-self: center; margin-top: -2.6rem; }
  .zs-grillz__piece img { height: 60px; }
}
.zs-grillz__care { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem 2rem; margin-top: clamp(1.6rem, 1rem + 2vw, 2.6rem); padding: clamp(1.3rem, 1rem + 1vw, 1.9rem); border-radius: var(--r-frame); background: rgba(255,255,255,.95); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
.zs-grillz__care h3 { margin: 0 0 .8rem; font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); font-weight: 600; }
.zs-grillz__care .checklist { margin: 0; }

/* ===== Zahnschmuck-Konfigurator ===== */
.zk { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.6rem, 1rem + 2vw, 3rem); align-items: center; margin: 0 0 clamp(2.4rem, 1.6rem + 3vw, 4rem); padding: clamp(1.1rem, .7rem + 1.8vw, 2.6rem); border-radius: var(--r-4); background: linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.94)), var(--marble) center / cover; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2); }
@media (min-width: 1000px) {
  .zk { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); grid-template-areas: "stage panel" "sum panel"; grid-template-rows: auto 1fr; align-items: start; row-gap: clamp(2.4rem, 1.6rem + 1.6vw, 3.4rem); }
  .zk__stage { grid-area: stage; } .zk__panel { grid-area: panel; } .zk__sum { grid-area: sum; width: min(100%, 520px); justify-self: center; }
}
.zk__stage { display: grid; justify-items: center; gap: 1.4rem; min-width: 0; }
.zk__seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: var(--r-pill); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.zk__seg button { min-height: 42px; padding: .45rem 1.25rem; border: 0; border-radius: var(--r-pill); background: transparent; font-family: var(--font-head); font-size: .9rem; font-weight: 600; color: var(--grey-600); cursor: pointer; transition: background-color .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease); }
.zk__seg button[aria-pressed="true"] { background: var(--red-grad); color: #fff; box-shadow: 0 8px 18px -10px rgba(200,16,46,.7); }
.zk__frame { position: relative; width: min(100%, 520px); aspect-ratio: 1; margin-inline: auto; }
.zk__ring { position: absolute; inset: -3.5%; border-radius: 50%; border: 1px dashed var(--red-line); animation: ring-turn 120s linear infinite; }
.zk__circle { position: absolute; inset: 0; overflow: hidden; border-radius: 50%; background: #c99f86; box-shadow: 0 0 0 8px rgba(255,255,255,.8), 0 0 0 9px #c3c6ca, 0 40px 80px -30px rgba(68,70,74,.55); isolation: isolate; }
.zk__face { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .7s var(--ease); }
.zk__face.is-on { opacity: 1; }
.zk__tooth { position: absolute; z-index: 2; padding: 0; border: 0; border-radius: 30%; background: none; cursor: default; transition: left .7s var(--ease), top .7s var(--ease), width .7s var(--ease), height .7s var(--ease); -webkit-tap-highlight-color: transparent; }
.zk__tooth[hidden] { display: none; }
.zk__clip { position: absolute; inset: 0; -webkit-mask: var(--mask) center / 100% 100% no-repeat; mask: var(--mask) center / 100% 100% no-repeat; }
.zk__gem { position: absolute; left: 50%; top: 50%; width: calc(var(--s, .3) * 100%); aspect-ratio: 1; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)) scaleX(.9); transition: opacity .35s var(--ease); }
.zk__tooth[data-zk-tooth="a"] { --rot: 2deg; }
.zk__tooth[data-zk-tooth="b"] { --rot: -3deg; }
.zk__gem img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 .5px .6px rgba(70,40,30,.45)) contrast(1.06); }
.zk__gem.is-fill { left: 0; top: 0; width: 100%; height: 100%; aspect-ratio: auto; transform: none; }
.zk__gem.is-fill img { object-fit: fill; filter: none; }
.zk__gem.is-pop { animation: zk-pop .55s var(--ease-out); }
@keyframes zk-pop { from { opacity: 0; scale: 1.3; } 60% { opacity: 1; scale: .96; } to { scale: 1; } }
.zk__glint { position: absolute; left: 34%; top: 30%; width: 52%; aspect-ratio: 1; translate: -50% -50%; background: radial-gradient(circle, #fff 0 7%, rgba(255,255,255,0) 20%), linear-gradient(90deg, transparent 48%, #fff 50%, transparent 52%), linear-gradient(0deg, transparent 48%, #fff 50%, transparent 52%); -webkit-mask: radial-gradient(circle, #000 0 22%, transparent 60%); mask: radial-gradient(circle, #000 0 22%, transparent 60%); mix-blend-mode: screen; opacity: 0; pointer-events: none; animation: zk-glint 4.2s ease-in-out infinite; }
.zk__tooth[data-zk-tooth="b"] .zk__glint { left: 64%; animation-delay: 2.1s; }
.zk__gem.is-fill .zk__glint { left: 40%; top: 36%; width: 40%; }
@keyframes zk-glint { 0%, 72%, 100% { opacity: 0; scale: .3; rotate: 0deg; } 82% { opacity: .95; scale: 1; rotate: 40deg; } 92% { opacity: 0; scale: .5; rotate: 80deg; } }
.zk__tooth.is-pick { cursor: pointer; }
.zk__tooth::after { content: ""; position: absolute; inset: -16% -18%; border-radius: 45%; border: 1.5px dashed rgba(255,255,255,.95); box-shadow: 0 0 0 1px rgba(200,16,46,.35); opacity: 0; transition: opacity .5s var(--ease); pointer-events: none; }
.zk__tooth.is-edit::after { opacity: 1; animation: zk-pulse 2.2s ease-in-out infinite; }
@keyframes zk-pulse { 50% { opacity: .45; } }
.zk__tooth:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }
.zk__label { left: -3%; bottom: 6%; }
.zk__peek { right: -3%; bottom: 6%; }
.zk__label .icon, .zk__peek .icon { width: 18px; height: 18px; color: var(--red); }
.zk__panel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; min-width: 0; }
.zk__k { display: flex; align-items: center; gap: .6rem; margin: 0 0 .75rem; font-family: var(--font-head); font-weight: 600; color: var(--grey-700); }
.zk__k > span { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--red-grad); color: #fff; font-size: .78rem; font-weight: 700; }
.zk__k em { margin-left: auto; font-style: normal; font-size: .85rem; font-weight: 500; color: var(--text-muted); }
.zk__row { display: grid; grid-template-columns: auto auto; justify-content: start; gap: 1.2rem 2.4rem; }
/* Handy: Schritt 1 und 2 bleiben nebeneinander – kompakter, erst unter 340 px untereinander */
@media (max-width: 599px) {
  .zk__row { gap: 1rem .9rem; grid-template-columns: minmax(0, auto) minmax(0, auto); }
  .zk__row .zk__k { gap: .4rem; margin-bottom: .55rem; font-size: .92rem; white-space: nowrap; }
  .zk__row .zk__k > span { width: 22px; height: 22px; font-size: .7rem; }
  .zk__row .zk__seg { gap: 2px; padding: 3px; }
  .zk__row .zk__seg button { min-height: 40px; padding: .35rem .8rem; font-size: .84rem; }
}
@media (max-width: 599px) { .zk__row .zk__seg { flex-wrap: nowrap; } .zk__row .zk__seg button { white-space: nowrap; } }
@media (max-width: 379px) {
  .zk__row { column-gap: .55rem; }
  .zk__row .zk__k { gap: .3rem; font-size: .84rem; }
  .zk__row .zk__k > span { width: 20px; height: 20px; }
  .zk__row .zk__seg button { padding: .35rem .6rem; font-size: .8rem; }
}
@media (max-width: 339px) { .zk__row { grid-template-columns: minmax(0, 1fr); } }
.zk__tabs { display: flex; gap: .5rem; margin-top: -.4rem; }
.zk__tabs[hidden] { display: none; }
.zk__tabs button { flex: 1; display: grid; gap: .1rem; padding: .55rem .9rem; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-weight: 600; font-size: .9rem; color: var(--grey-700); text-align: left; cursor: pointer; }
.zk__tabs small { font-family: var(--font-body); font-weight: 500; font-size: .74rem; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zk__tabs button[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--red); }
.zk__opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: .5rem; }
.zk__opt { display: grid; justify-items: center; align-content: start; gap: .15rem; min-width: 0; padding: .55rem .3rem .5rem; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); font: inherit; color: inherit; cursor: pointer; scroll-snap-align: start; transition: box-shadow .25s var(--ease), translate .25s var(--ease); }
.zk__opt img { width: 50px; height: 50px; object-fit: contain; }
.zk__opt span { font-size: .7rem; font-weight: 600; line-height: 1.2; text-align: center; color: var(--grey-700); }
.zk__opt small { font-size: .72rem; font-weight: 700; color: var(--red); }
.zk__opt[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--red), 0 10px 22px -12px rgba(200,16,46,.55); }
@media (hover: hover) { .zk__opt:hover { translate: 0 -2px; } }
/* Handy: alle Motive untereinander sichtbar (kein Wisch-Slider) */
@media (max-width: 599px) { .zk__opts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; } .zk__opt { padding: .5rem .25rem .45rem; } }
@media (min-width: 440px) and (max-width: 599px) { .zk__opts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.zk__sws { display: flex; flex-wrap: wrap; gap: .5rem; }
.zk__sw { width: 46px; height: 46px; padding: 3px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200); cursor: pointer; transition: box-shadow .25s var(--ease), opacity .25s var(--ease); }
.zk__sw img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.zk__sw[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--red); }
.zk__sw:disabled { opacity: .3; cursor: not-allowed; }
.zk__hint { margin: .55rem 0 0; font-size: .82rem; color: var(--text-muted); }
.zk__sum { padding: 1.1rem 1.2rem 1rem; border-radius: 18px; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }
.zk__rows { list-style: none; display: grid; gap: .35rem; margin: 0; padding: 0; font-size: .9rem; }
.zk__rows li, .zk__total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.zk__rows strong { flex: none; }
.zk__total { margin: .65rem 0 .35rem; padding-top: .65rem; border-top: 1px solid var(--line); font-family: var(--font-head); font-size: 1.1rem; font-weight: 700; }
.zk__total strong { color: var(--red); }
.zk__note { display: flex; align-items: center; gap: .45rem; margin: 0 0 .9rem; font-size: .82rem; color: var(--text-muted); }
.zk__note .icon { flex: none; width: 16px; height: 16px; color: var(--red); }
.zk__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.zk__actions .btn { flex: 1 1 200px; padding-inline: 1.1rem; white-space: nowrap; }
.zk__shuffle { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; margin: .4rem auto 0; padding: 0 .4rem; border: 0; background: none; font-family: var(--font-head); font-size: .86rem; font-weight: 600; color: var(--grey-600); cursor: pointer; }
.zk__shuffle .icon { width: 16px; height: 16px; color: var(--red); }
.zk__sum { display: grid; }
.zk__disclaimer { margin: -1.6rem 0 clamp(2rem, 1.4rem + 2vw, 3rem); font-size: .8rem; text-align: center; color: var(--text-muted); }
@media (max-width: 599px) {
  .zk__label { left: -1%; bottom: 2%; font-size: .78rem; padding: .5rem .8rem; }
  .zk__peek { right: -1%; bottom: 2%; font-size: .78rem; padding: .5rem .8rem; }
}
@media (prefers-reduced-motion: reduce) { .zk__ring, .zk__glint, .zk__tooth.is-edit::after { animation: none; } .zk__glint { display: none; } }

/* ===== Zahnaufhellungs-Konfigurator: echtes Lächeln (Frau/Mann), Zahnfarbe per Maske ===== */
@property --b-ninc { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --b-nbody { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --b-ncer { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --a-ninc { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --a-nbody { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --a-ncer { syntax: '<color>'; inherits: true; initial-value: #fff; }
.sgc { transition: --b-ninc .6s ease, --b-nbody .6s ease, --b-ncer .6s ease, --a-ninc .6s ease, --a-nbody .6s ease, --a-ncer .6s ease; }
.ba.sgc__smile { background: #b98e78; }
.sgc__photo { overflow: hidden; isolation: isolate; }
.sgc__face, .sgc__gloss, .sgc__tint, .sgc__sparks-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.sgc__face { object-fit: cover; }
.sgc__face, .sgc__gloss, .sgc__tint { opacity: 0; transition: opacity .7s var(--ease); }
.sgc__face.is-on, .sgc__gloss.is-on, .sgc__tint.is-on { opacity: 1; }
.sgc__tint { mix-blend-mode: multiply; -webkit-mask: url("../img/ergebnis/zaehne-frau.png") center / cover no-repeat; mask: url("../img/ergebnis/zaehne-frau.png") center / cover no-repeat; }
.sgc__tint--mann { -webkit-mask-image: url("../img/ergebnis/zaehne-mann.png"); mask-image: url("../img/ergebnis/zaehne-mann.png"); }
.ba__before .sgc__tint { background: linear-gradient(to bottom, var(--b-ncer) 33%, var(--b-nbody) 43%, var(--b-ninc) 53%, var(--b-nbody) 59%, var(--b-ncer) 67%); }
.ba__after .sgc__tint { background: linear-gradient(to bottom, var(--a-ncer) 33%, var(--a-nbody) 43%, var(--a-ninc) 53%, var(--a-nbody) 59%, var(--a-ncer) 67%); }
.sgc__gloss { object-fit: cover; mix-blend-mode: screen; }
.sgc__sparks-svg { pointer-events: none; }
.sgc__reshead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; }
.sgc__reshead .sgc__k { margin-bottom: 0; }
.sgc__res > .sgc__reshead { margin-bottom: .9rem; }
.sgc__who { display: inline-flex; gap: 3px; padding: 3px; border-radius: var(--r-pill); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--platinum-200); }
.sgc__who button { min-height: 36px; padding: .3rem 1rem; border: 0; border-radius: var(--r-pill); background: transparent; font-family: var(--font-head); font-size: .84rem; font-weight: 600; color: var(--grey-600); cursor: pointer; transition: background-color .3s var(--ease), color .3s var(--ease); }
.sgc__who button[aria-pressed="true"] { background: var(--red-grad); color: #fff; }
.sgc__reset { display: inline-flex; align-items: center; gap: .4rem; min-height: 36px; padding: .3rem .9rem; border: 0; border-radius: var(--r-pill); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--platinum-200); font-family: var(--font-head); font-size: .8rem; font-weight: 600; color: var(--grey-600); cursor: pointer; transition: color .25s var(--ease), box-shadow .25s var(--ease); }
.sgc__reset .icon { width: 15px; height: 15px; }
.sgc__reset:hover { color: var(--red); box-shadow: 0 0 0 1px var(--red-line); }


/* Konfigurator unter dem Katalog + Button „Zum Konfigurator“ auf jeder Karte */
.zk-wrap { margin-top: clamp(3.4rem, 2.4rem + 3.6vw, 6rem); }
.zk-wrap .zk { margin-bottom: 1.1rem; }
.zk-wrap .zk__disclaimer { margin: 0; }
.btn--zk { --btn-fg: var(--red); background: #fff; border: 1.5px solid var(--red); box-shadow: 0 8px 20px -14px rgba(200,16,46,.55); }
.btn--zk::after { opacity: .5; }
.btn--zk:hover { --btn-fg: #fff; background: var(--red-grad); border-color: transparent; box-shadow: 0 12px 26px -12px rgba(200,16,46,.6); }
.product .btn--zk { margin-top: .5rem; }
.zk__sum-k { margin: 0 0 .6rem; font-family: var(--font-head); font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grey-500); }

/* Handy/Tablet: Vergleich „Heute → Wunsch“ direkt unter der Farbskala */
.sgc__cmp--top { margin-top: 1.1rem; background: #fff; box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1); }

/* Handy/Tablet: drehende Zierringe anhalten – schräg gedreht ragt ihre Fläche über den Bildschirmrand,
   dann zoomt das iPhone beim Scrollen heraus (Seite wirkt kleiner und unscharf) */
@media (max-width: 899px) {
  .zk__ring, .hero-portrait__ring, .interview__ring { animation: none; }
  .interview__ring { right: 0; }
}

/* Paket-Finder: Weg zum Zahnaufhellungs-Konfigurator direkt unter der Empfehlung */
.pf__cfg { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .8rem 1rem; margin-top: 1rem; padding: 1rem 1.2rem; border-radius: var(--r-3); background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px var(--red-line), var(--shadow-1); color: var(--text); text-decoration: none; transition: box-shadow .3s var(--ease), transform .3s var(--ease-out); }
.pf__cfg:hover { color: var(--text); transform: translateY(-2px); box-shadow: 0 0 0 1px var(--red), var(--shadow-2); }
.pf__cfg-ico { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--red-grad); color: #fff; }
.pf__cfg-ico .icon { width: 20px; height: 20px; }
.pf__cfg-txt strong { display: block; font-family: var(--font-head); font-size: 1.02rem; color: var(--grey-700); }
.pf__cfg-txt small { display: block; font-size: .88rem; line-height: 1.5; color: var(--text-muted); }
.pf__cfg-btn { grid-column: 1 / -1; justify-self: stretch; white-space: normal; }
@media (min-width: 760px) { .pf__cfg { grid-template-columns: auto minmax(0, 1fr) auto; } .pf__cfg-btn { grid-column: auto; justify-self: end; white-space: nowrap; } }
.pf__cfg:hover .pf__cfg-btn { --btn-fg: #fff; background: var(--red-grad); border-color: transparent; }

/* Safari: <legend> darf kein Flex-/Grid-Container sein (sonst bricht jedes Wort einzeln um) – Block + Nummer inline */
.fr-group legend, .finder__step legend { display: block; }
.fr-group legend span { display: inline-grid; vertical-align: middle; margin: -.15em .6rem 0 0; }

/* Wischleisten (Handy/Tablet): Karten nicht einzeln von unten einblenden – sonst „hüpfen“ sie beim seitlichen Wischen.
   Die Leiste gleitet ruhig wie ein normaler Slider. Angetippte Karten bleiben nicht angehoben (iOS behält :hover). */
@media (max-width: 899px) {
  .js [data-rail] > .reveal, .js [data-rail] .reveal { opacity: 1; transform: none; transition: none; }
}
@media (hover: none) {
  .studio:hover, .studio:hover .studio__media img, .price-card:hover, .icard:hover { transform: none; }
  .price-card--featured:hover { transform: none; }
}
@media (hover: none) and (min-width: 760px) { .price-card--featured, .price-card--featured:hover { transform: translateY(-14px); } }

/* Google-Bewertungen: überall ein Link zum Google-Profil */
a.rating-hero, a.stage-label, a.review__source { color: inherit; text-decoration: none; }
a.rating-hero .rating-hero__txt { display: grid; gap: .15rem; }
a.rating-hero:hover .rating-hero__txt strong, a.rating-hero:focus-visible .rating-hero__txt strong { color: var(--red); }
a.stage-label { color: var(--grey-700); transition: box-shadow .25s var(--ease); }
a.stage-label:hover, a.stage-label:focus-visible { color: var(--grey-700); box-shadow: 0 0 0 1px var(--red-line), var(--shadow-2); }
a.review__source:hover, a.review__source:focus-visible { color: var(--red); }
.eyebrow__g { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .25s var(--ease); }
.eyebrow__g:hover, .eyebrow__g:focus-visible { color: inherit; border-bottom-color: currentColor; }

/* Handy: Öffnungszeiten-Plakette am Video-Kreis etwas weiter links und höher – nie über dem Pause-Knopf */
@media (max-width: 640px) {
  .hero-portrait--video .stage-label--c { left: -5%; bottom: 3%; padding: .5rem .8rem; gap: .45rem; font-size: .74rem; }
  .hero-portrait--video .hero-portrait__toggle { right: 0; bottom: 3%; }
}


/* ==========================================================================
   Elementor-Kompatibilität – Dental Beauty
   Überträgt das Designsystem auf das Markup von Elementor (Container, Widgets,
   Theme-Builder-Header/-Footer, Pro-Formular). Einstellungen im Editor überschreiben diese Werte.
   ========================================================================== */

/* ---------- Container-Grundwerte neutralisieren ---------- */
.e-con.e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --padding-block-start: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; --padding-inline-end: 0px;
  --row-gap: 0px; --column-gap: 0px; --gap: 0px 0px;
  --widgets-spacing: 0px 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
  --width: auto; --min-height: 0; --margin-top: 0px; --margin-bottom: 0px; --margin-left: 0px; --margin-right: 0px;
  --border-radius: 0; --border-width: 0;
}
.e-con.e-con { min-width: 0; }
.e-con.e-con:not(.e-child) { width: auto; }
.elementor-widget:not(:last-child) { margin-block-end: 0; margin-bottom: 0; }
.e-con > .elementor-widget { max-width: 100%; }
.elementor-element, .elementor-widget-container { min-width: 0; }
.elementor-widget-shortcode .elementor-shortcode { display: contents; }
.elementor-widget-text-editor, .elementor-widget-html { color: inherit; font: inherit; }

/* Elementor-Grundwerte für Überschriften: Designsystem wiederherstellen */
.elementor :where(h1, h2, h3, h4, h5, h6) { font-family: var(--font-head); }

/* Barrierefreiheit: Sprunglink von Hello Elementor */
.skip-link.screen-reader-text { position: absolute; left: -9999px; }
.skip-link.screen-reader-text:focus { left: 12px; top: 12px; z-index: 999; width: auto; height: auto; clip: auto; padding: 12px 18px; border-radius: 12px; background: #fff; color: var(--grey-700); font-weight: 700; box-shadow: var(--shadow-2); }

/* ---------- Fließtext: Überschriften nach Bild/Tabelle/Box behalten ihren Abstand (im HTML sind sie kein erstes Kind) ---------- */
.e-con.prose-card > .elementor-element:not(:first-child) > h2:first-child, .e-con.prose-card > .elementor-element:not(:first-child) > .elementor-widget-container > h2:first-child { margin-top: 2.2rem; }
.e-con.prose-card > .elementor-element:not(:first-child) > h3:first-child, .e-con.prose-card > .elementor-element:not(:first-child) > .elementor-widget-container > h3:first-child { margin-top: 1.6rem; }

/* ---------- Hero: Das runde Bild beansprucht im Raster keine Mindestbreite (wie im HTML, Spalten 1.05fr / .95fr) ---------- */
.e-con.hero2__grid .hero-portrait { min-width: 0; }

/* ---------- Header (Theme Builder): Hüllen ohne eigene Box, damit der Header wie im HTML „klebt“ ---------- */
.elementor-location-header, .e-con.db-header { display: contents; }
.e-con.site-header { position: sticky; top: 0; }
.admin-bar .e-con.site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .e-con.site-header { top: 0; } }
.e-con.site-header__inner > .db-brand { flex: none; margin-right: auto; }
.e-con.site-header__inner > .db-nav { display: none; }
@media (min-width: 1180px) {
  .e-con.site-header__inner > .db-nav { display: flex; align-self: stretch; }
  .e-con.site-header__inner > .db-nav > .elementor-widget-container { display: flex; }
}
.e-con.header-actions { flex: none; }
/* Mega-Menü bezieht sich wie im HTML auf den ganzen Header (nicht auf die Hülle der Navigation) */
.e-con.site-header__inner, .e-con.site-header__inner > .elementor-element, .e-con.site-header__inner > .db-nav > .elementor-widget-container { position: static; }
.db-mnav { position: static; }
/* Aktionsleiste je Seite (Seiteneigenschaft aus dem Import) */
body.db-hide-promo .promo, body.db-hide-promo .db-promo-only, body.db-aktion-aus .db-promo-only { display: none !important; }
body:not(.db-hide-promo):not(.db-aktion-aus) .db-nopromo-only { display: none !important; }   /* Aktion aus/abgelaufen: „Termine bis 21 Uhr“ */
/* Mobile Schnellleiste auf Buchungsseiten ausblenden */
body.db-no-sticky .mbar { display: none !important; }
body.db-no-sticky.has-sticky { --sticky-cta-h: 0px; padding-bottom: 0; }

/* ---------- Footer ---------- */
/* wie „main:has(> .cta-wrap:last-child) + .footer-shell“: endet die Seite mit dem Termin-Aufruf, schließt der Footer direkt an */
main:has(> .elementor > .e-con.cta-wrap:last-child) ~ .elementor-location-footer .footer-shell,
main:has(> .elementor > .e-con:last-child > .e-con.cta-wrap:last-child) ~ .elementor-location-footer .footer-shell { padding-top: 0; background: rgba(255,255,255,.62); }
.elementor-location-footer { display: block; }
.e-con.db-floating { position: static; height: 0; }

/* ---------- Buchung ---------- */
.booking__frame--ssa { min-height: 640px; padding: clamp(.6rem, .4rem + .8vw, 1.2rem); background: #fff; }

/* ---------- Buttons (Elementor-Button-Widget, Klassen db-btn …; Grundregeln generiert aus .btn) ---------- */
body .db-btn .elementor-button-wrapper { display: block; }
body .db-btn .elementor-button { font-family: var(--font-head); font-weight: 600; font-size: .95rem; line-height: 1.2; text-align: center; fill: currentColor; background-color: transparent; color: var(--btn-fg); text-decoration: none; isolation: isolate; overflow: hidden; }
body .db-btn .elementor-button:where(:hover, :focus, :visited) { color: var(--btn-fg); }
body .db-btn .elementor-button-content-wrapper, body .db-btn .elementor-button-text { display: inline-flex; align-items: center; gap: .6rem; }
body .db-btn .elementor-button-text::after {
  content: ""; width: 1.1em; height: 1.1em; flex: none; background: currentColor; transition: transform var(--t-fast) var(--ease);
  -webkit-mask: var(--db-ico-arrow) center / contain no-repeat; mask: var(--db-ico-arrow) center / contain no-repeat;
}
body .db-btn .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
body .db-btn.db-ico-before .elementor-button-text::after, body .db-btn.db-ico-none .elementor-button-text::after { content: none; }
body .db-btn.db-ico-before .elementor-button-text::before {
  content: ""; width: 1.1em; height: 1.1em; flex: none; background: currentColor;
  -webkit-mask: var(--db-ico-arrow) center / contain no-repeat; mask: var(--db-ico-arrow) center / contain no-repeat;
}
body .db-btn--block .elementor-button-wrapper, body .db-btn--block .elementor-button { width: 100%; }

/* ---------- Formulare (Elementor-Pro-Formular im Stil der HTML-Version) ---------- */
.db-form .elementor-form-fields-wrapper { display: flex; flex-wrap: wrap; margin: 0 -9px; }
.db-form.elementor-widget-form .elementor-form .elementor-field-group { padding: 0 9px; margin-bottom: 1.15rem; }
.db-form .elementor-field-group > .elementor-field-label { font-family: var(--font-head); font-size: .92rem; font-weight: 600; color: var(--grey-700); margin: 0 0 .45rem; padding: 0; line-height: 1.4; }
.db-form .elementor-mark-required .elementor-field-label::after { content: " *"; color: var(--accent, var(--red)); padding: 0; }
.db-form .elementor-field-group .elementor-field-textual,
.db-form .elementor-field-group select {
  width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid var(--platinum-300); border-radius: var(--r-2);
  background: #fff; color: var(--grey-700); font-family: var(--font-body); font-size: 1rem; line-height: 1.4; box-shadow: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.db-form .elementor-field-group textarea.elementor-field-textual { min-height: 150px; resize: vertical; }
.db-form .elementor-field-group .elementor-field-textual:focus, .db-form .elementor-field-group select:focus { outline: none; border-color: var(--grey-500); box-shadow: 0 0 0 4px rgba(109,110,113,.14); }
.db-form .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
.db-form .elementor-select-wrapper select { appearance: none; -webkit-appearance: none; padding-right: 2.6rem; }
.db-form .elementor-select-wrapper::before { content: ""; position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; font-size: 0; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d6e71' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 18px no-repeat; }
.db-form .elementor-field-type-acceptance > .elementor-field-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.db-form .elementor-field-type-acceptance .elementor-field-subgroup { display: block; }
.db-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: .75rem; align-items: flex-start; }
.db-form .elementor-field-type-acceptance input { width: 22px; height: 22px; margin: .1rem 0 0; accent-color: var(--grey-600); flex: none; }
.db-form .elementor-field-type-acceptance label { font-family: var(--font-body); font-size: .88rem; line-height: 1.55; color: var(--text); cursor: pointer; }
.db-form .elementor-field-type-acceptance label::after { content: " *"; color: var(--accent, var(--red)); }
.db-form .elementor-field-type-acceptance a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
/* Absenden wie .btn.btn--primary */
body .db-form.elementor-widget-form .elementor-form .elementor-field-group.elementor-field-type-submit { margin-top: .3rem; }
body .db-form.elementor-widget-form .elementor-form .elementor-field-type-submit .elementor-button {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; width: auto; min-height: 54px; padding: .85rem 1.8rem;
  border-radius: var(--r-pill); border: 1px solid var(--red-deep); background: var(--red-grad); background-size: 160% 100%; background-position: 0% 50%;
  color: #fff; font-family: var(--font-head); font-weight: 600; font-size: .95rem; text-shadow: 0 1px 0 rgba(120,0,20,.35);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 14px 30px -14px rgba(200,16,46,.6);
  transition: background-position .5s var(--ease), transform var(--t-fast) var(--ease), box-shadow .3s var(--ease); cursor: pointer;
}
body .db-form.elementor-widget-form .elementor-form .elementor-field-type-submit .elementor-button:hover { background-position: 100% 50%; transform: translateY(-2px); color: #fff; }
.db-form .elementor-field-type-submit .elementor-button-text { display: inline-flex; align-items: center; gap: .6rem; }
.db-form .elementor-field-type-submit .elementor-button-text::after { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--db-ico-arrow) center / contain no-repeat; mask: var(--db-ico-arrow) center / contain no-repeat; }
@media (max-width: 599px) { .db-form .elementor-field-group.elementor-col-50 { width: 100%; } }
.db-form .elementor-message { margin-top: 1rem; padding: 1rem 1.2rem; border-radius: var(--r-2); font-size: .92rem; }
.db-form .elementor-message.elementor-message-success { background: var(--platinum-50); color: var(--grey-700); }
.db-form .elementor-message.elementor-message-danger { background: #fff1f3; color: var(--red-deep); }
.db-form .elementor-field-group .elementor-message-danger { background: none; padding: .35rem 0 0; margin: 0; font-size: .84rem; }
.db-form .elementor-error .elementor-field-textual { border-color: var(--accent, var(--red)); }
.db-form.elementor-widget-form .elementor-form .elementor-form-fields-wrapper.elementor-labels-above { margin-bottom: 0; }

/* ---------- Editor: Animationen und Overlays sichtbar ---------- */
.elementor-editor-active .reveal, .elementor-editor-active .reveal-img, .elementor-editor-active .fade-up, .elementor-editor-active .fade-up-2 { opacity: 1 !important; transform: none !important; clip-path: none !important; }
.elementor-editor-active .e-con.site-header { position: relative; top: 0; }
/* Dekorative Elemente ohne Inhalt: im Editor kein grauer Platzhalter, Layout wie auf der Website */
.elementor-editor-active .db-deco.elementor-widget-empty, .elementor-editor-active .db-deco .elementor-widget-empty { min-height: 0 !important; height: 0; padding: 0; background: none; }
.elementor-editor-active .db-deco .elementor-widget-empty-icon { display: none; }
.elementor-editor-active .mobile-menu[hidden] { display: none; }

/* Buttons (generiert aus .btn) */
body .db-btn .elementor-button{
  --btn-fg: var(--grey-700);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 54px; padding: .85rem 1.8rem; border-radius: var(--r-pill); border: 1px solid transparent;
  font-family: var(--font-head); font-size: .95rem; font-weight: 600; letter-spacing: .01em;
  text-decoration: none; line-height: 1.2; text-align: center; color: var(--btn-fg);
  overflow: hidden; isolation: isolate; cursor: pointer;
  transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease), background-position 900ms var(--ease-out), color var(--t-fast), background-color var(--t-fast), border-color var(--t-fast);
}
body .db-btn .elementor-button::after{ content: ""; position: absolute; inset: -2px; background: var(--gloss); transform: translateX(-130%) skewX(-12deg); transition: transform 900ms var(--ease-out); z-index: -1; pointer-events: none; }
body .db-btn .elementor-button:hover{ color: var(--btn-fg); transform: translateY(-2px); }
body .db-btn .elementor-button:hover::after{ transform: translateX(130%) skewX(-12deg); }
body .db-btn .elementor-button:active{ transform: translateY(0); }
body .db-btn .elementor-button .elementor-button-text::after{ width: 1.1em; height: 1.1em; transition: transform var(--t-fast) var(--ease); }
body .db-btn .elementor-button:hover .elementor-button-text::after{ transform: translateX(4px); }
body .db-btn--primary .elementor-button{
  background: var(--silver); background-size: 220% 100%; background-position: 0% 50%;
  border-color: #b9bcc1;
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.18), 0 10px 26px -12px rgba(68,70,74,.45);
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
}
body .db-btn--primary .elementor-button:hover{ background-position: 100% 50%; box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.2), 0 16px 34px -12px rgba(68,70,74,.5), 0 0 26px -6px rgba(200,204,210,.9); }
body .db-btn--dark .elementor-button{ --btn-fg: #fff; background: linear-gradient(180deg, #7a7c80, var(--grey-600)); border-color: #8d9095; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 26px -12px rgba(68,70,74,.5); }
body .db-btn--dark .elementor-button::after{ opacity: .35; }
body .db-btn--dark .elementor-button:hover{ background: linear-gradient(180deg, #84868a, #5f6165); }
body .db-btn--outline .elementor-button,body .db-btn--ghost-light .elementor-button{ --btn-fg: var(--grey-700); background: rgba(255,255,255,.6); border-color: var(--line-strong); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
body .db-btn--outline .elementor-button::after,body .db-btn--ghost-light .elementor-button::after{ opacity: .6; }
body .db-btn--outline .elementor-button:hover,body .db-btn--ghost-light .elementor-button:hover{ background: #fff; border-color: var(--grey-400); box-shadow: var(--shadow-1); }
body .db-btn--light .elementor-button{ --btn-fg: var(--grey-700); background: #fff; border-color: var(--line); box-shadow: var(--shadow-1); }
body .db-btn--sm .elementor-button{ min-height: 44px; padding: .5rem 1.25rem; font-size: .86rem; }
body .db-btn--block .elementor-button{ width: 100%; }
@media (max-width: 420px){body .header-actions .db-btn--sm .elementor-button{ padding-inline: .9rem; }}
body .sticky-cta .db-btn .elementor-button{ flex: 1; }
body .product .db-btn .elementor-button{ min-height: 44px; font-size: .84rem; padding-inline: .8rem; }
body .cta-band .db-btn--ghost-light .elementor-button{ background: rgba(255,255,255,.75); }
body .consent .db-btn .elementor-button{ flex: 1; }
body .header-actions .db-btn--sm .elementor-button{ white-space: nowrap; }
body .db-btn--primary .elementor-button{
  --btn-fg: #fff;
  background: var(--red-grad); background-size: 160% 100%; background-position: 0% 50%;
  border-color: var(--red-deep); text-shadow: 0 1px 0 rgba(120,0,20,.35);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 12px 28px -14px rgba(200,16,46,.65);
}
body .db-btn--primary .elementor-button:hover{ --btn-fg: #fff; background-position: 100% 50%; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 18px 36px -14px rgba(200,16,46,.7); }
body .db-btn--primary .elementor-button::after{ opacity: .45; }
@media (max-width: 999px){body .offer__price .db-btn .elementor-button{ grid-column: 1 / -1; }}
@media (max-width: 999px){body .offer__price .db-btn .elementor-button{ justify-self: start; }}
body .pf__res-price .db-btn .elementor-button{ margin: .2rem 0 .2rem; }
@media (max-width: 599px){body .hero-ac .actions .db-btn .elementor-button{ width: 100%; justify-content: center; min-height: 54px; }}
@media (max-width: 599px){body .offer__price .db-btn .elementor-button{ width: 100%; justify-content: center; min-height: 50px; margin-top: .4rem; }}
@media (max-width: 599px){body .pf__res-price .db-btn .elementor-button{ grid-column: 1 / -1; width: 100%; justify-content: center; min-height: 52px; }}
body .interview .actions .db-btn .elementor-button .elementor-button-text::after{ width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 599px){body .interview .actions .db-btn .elementor-button{ flex: 1 1 100%; justify-content: center; }}
@media (min-width: 1180px){body .mega__aside .db-btn .elementor-button{ margin-top: auto; }}
@media (max-width: 359px){body .header-actions .db-btn .elementor-button{ display: none; }}
@media (min-width: 1180px){body .sgc__cta .db-btn .elementor-button{ justify-content: center; }}
body .fr-fcard .db-btn--block .elementor-button{ min-height: 54px; }
body .product__media--photo + .product__body .db-btn .elementor-button{ align-self: stretch; }
body .zk__actions .db-btn .elementor-button{ flex: 1 1 200px; padding-inline: 1.1rem; white-space: nowrap; }
body .db-btn--zk .elementor-button{ --btn-fg: var(--red); background: #fff; border: 1.5px solid var(--red); box-shadow: 0 8px 20px -14px rgba(200,16,46,.55); }
body .db-btn--zk .elementor-button::after{ opacity: .5; }
body .db-btn--zk .elementor-button:hover{ --btn-fg: #fff; background: var(--red-grad); border-color: transparent; box-shadow: 0 12px 26px -12px rgba(200,16,46,.6); }
body .product .db-btn--zk .elementor-button{ margin-top: .5rem; }
/* Rasterzellen (generiert): Widget-Hülle = Rasterzelle wie das Element im HTML */
.e-con:is(.ab-diet,.article-layout,.awards,.awards2,.awards2__imgs,.awards__imgs,.ba-cases,.ba-show__grid,.bb-confirm__seal,.bc-gallery,.bc-head,.bc-logo,.bc-shop,.bc-shop__logo,.bc-shop__name,.bc-shops__grid,.bcards,.bcmap-legend__dot,.bcmap-wrap,.bcmap__stage,.bento,.booking,.booking__aside,.burger,.carousel__btn,.carousel__track,.checklist,.cityfind__ico,.countdown__grid,.day,.day__x,.duo,.expert__grid,.expert__ico,.expert__list,.extra,.ezg-facts,.ezg-facts__ico,.facts,.faq,.faqcat,.feature-list,.field,.finder__grid,.finder__result,.flow,.footer-bottom,.footer-bottom__end,.footer-grid,.footer-list,.form,.form-row,.fr-check,.fr-contact,.fr-contact__ico,.fr-fcard__ico,.fr-form__grid,.fr-group,.fr-market__grid,.fr-next,.fr-pack__grid,.fr-points,.fr-seg,.fr-steps,.fr-steps__item,.fsplit,.gallery,.gallery-bento,.grid,.gstrip,.guarantee,.guarantee__num,.guarantee__steps,.hero-portrait,.hero-portrait__toggle,.hero2__facts,.hero2__grid,.hero__stats,.hero__toggle,.hrs,.hrs__days,.icard__ico,.icards,.info-list,.ingr,.ingr__stage,.inline-cta,.interview__facts,.interview__grid,.irows__ico,.lightbox__close,.locations,.mbar,.mbar__ico,.mbar__item,.mega__grid,.mega__ico,.mega__in,.mobile-menu__close,.numgrid,.offer,.offer__feats,.offer__price,.pf__cfg,.pf__cfg-ico,.pf__facts,.pf__form,.pf__ico,.pf__n,.pf__q,.pf__res-price,.pf__result,.pkg-pick,.price-grid,.product__media,.products,.promo__close,.regions,.rgrid,.segmented--tabs,.sg__row,.sgc__bar,.sgc__big,.sgc__cmp,.sgc__delta,.sgc__grid,.sgc__incl-ico,.sgc__info,.sgc__n,.sgc__pkg,.sgc__pkg-main,.sgc__pkg-price,.sgc__pkgs,.sgc__res,.shades,.split,.sstats,.stats,.steps,.steps4__grid,.steps4__list,.steps4__n,.sticky-cta__wa,.story__grid,.story__steps,.story__text,.studio__media--art,.studios,.svc,.svc-grid,.svc3,.svc3__ico,.svc__go,.svc__ico,.tile__go,.tile__ico,.tiles,.tline,.to-top,.usp__icon,.usps,.vfilm,.vgrid,.visit2,.vt__play,.wa-float,.why,.why5__grid,.why7,.why7__gl,.why7__ico,.whys,.yt__btn,.yt__play,.zk,.zk__opt,.zk__opts,.zk__panel,.zk__row,.zk__rows,.zk__stage,.zk__sum,.zs-gallery,.zs-gallery__toggle,.zs-grillz__media,.zs-plist__img,.zs-plist__t,.zs-prices__grid,.zs-swatch,.zs-swatches) > .elementor-element { min-width: auto; }
body.elementor-editor-active :where(.e-con:is(.ab-diet,.article-layout,.awards,.awards2,.awards2__imgs,.awards__imgs,.ba-cases,.ba-show__grid,.bb-confirm__seal,.bc-gallery,.bc-head,.bc-logo,.bc-shop,.bc-shop__logo,.bc-shop__name,.bc-shops__grid,.bcards,.bcmap-legend__dot,.bcmap-wrap,.bcmap__stage,.bento,.booking,.booking__aside,.burger,.carousel__btn,.carousel__track,.checklist,.cityfind__ico,.countdown__grid,.day,.day__x,.duo,.expert__grid,.expert__ico,.expert__list,.extra,.ezg-facts,.ezg-facts__ico,.facts,.faq,.faqcat,.feature-list,.field,.finder__grid,.finder__result,.flow,.footer-bottom,.footer-bottom__end,.footer-grid,.footer-list,.form,.form-row,.fr-check,.fr-contact,.fr-contact__ico,.fr-fcard__ico,.fr-form__grid,.fr-group,.fr-market__grid,.fr-next,.fr-pack__grid,.fr-points,.fr-seg,.fr-steps,.fr-steps__item,.fsplit,.gallery,.gallery-bento,.grid,.gstrip,.guarantee,.guarantee__num,.guarantee__steps,.hero-portrait,.hero-portrait__toggle,.hero2__facts,.hero2__grid,.hero__stats,.hero__toggle,.hrs,.hrs__days,.icard__ico,.icards,.info-list,.ingr,.ingr__stage,.inline-cta,.interview__facts,.interview__grid,.irows__ico,.lightbox__close,.locations,.mbar,.mbar__ico,.mbar__item,.mega__grid,.mega__ico,.mega__in,.mobile-menu__close,.numgrid,.offer,.offer__feats,.offer__price,.pf__cfg,.pf__cfg-ico,.pf__facts,.pf__form,.pf__ico,.pf__n,.pf__q,.pf__res-price,.pf__result,.pkg-pick,.price-grid,.product__media,.products,.promo__close,.regions,.rgrid,.segmented--tabs,.sg__row,.sgc__bar,.sgc__big,.sgc__cmp,.sgc__delta,.sgc__grid,.sgc__incl-ico,.sgc__info,.sgc__n,.sgc__pkg,.sgc__pkg-main,.sgc__pkg-price,.sgc__pkgs,.sgc__res,.shades,.split,.sstats,.stats,.steps,.steps4__grid,.steps4__list,.steps4__n,.sticky-cta__wa,.story__grid,.story__steps,.story__text,.studio__media--art,.studios,.svc,.svc-grid,.svc3,.svc3__ico,.svc__go,.svc__ico,.tile__go,.tile__ico,.tiles,.tline,.to-top,.usp__icon,.usps,.vfilm,.vgrid,.visit2,.vt__play,.wa-float,.why,.why5__grid,.why7,.why7__gl,.why7__ico,.whys,.yt__btn,.yt__play,.zk,.zk__opt,.zk__opts,.zk__panel,.zk__row,.zk__rows,.zk__stage,.zk__sum,.zs-gallery,.zs-gallery__toggle,.zs-grillz__media,.zs-plist__img,.zs-plist__t,.zs-prices__grid,.zs-swatch,.zs-swatches) > .elementor-widget-html > :only-child, .e-con:is(.ab-diet,.article-layout,.awards,.awards2,.awards2__imgs,.awards__imgs,.ba-cases,.ba-show__grid,.bb-confirm__seal,.bc-gallery,.bc-head,.bc-logo,.bc-shop,.bc-shop__logo,.bc-shop__name,.bc-shops__grid,.bcards,.bcmap-legend__dot,.bcmap-wrap,.bcmap__stage,.bento,.booking,.booking__aside,.burger,.carousel__btn,.carousel__track,.checklist,.cityfind__ico,.countdown__grid,.day,.day__x,.duo,.expert__grid,.expert__ico,.expert__list,.extra,.ezg-facts,.ezg-facts__ico,.facts,.faq,.faqcat,.feature-list,.field,.finder__grid,.finder__result,.flow,.footer-bottom,.footer-bottom__end,.footer-grid,.footer-list,.form,.form-row,.fr-check,.fr-contact,.fr-contact__ico,.fr-fcard__ico,.fr-form__grid,.fr-group,.fr-market__grid,.fr-next,.fr-pack__grid,.fr-points,.fr-seg,.fr-steps,.fr-steps__item,.fsplit,.gallery,.gallery-bento,.grid,.gstrip,.guarantee,.guarantee__num,.guarantee__steps,.hero-portrait,.hero-portrait__toggle,.hero2__facts,.hero2__grid,.hero__stats,.hero__toggle,.hrs,.hrs__days,.icard__ico,.icards,.info-list,.ingr,.ingr__stage,.inline-cta,.interview__facts,.interview__grid,.irows__ico,.lightbox__close,.locations,.mbar,.mbar__ico,.mbar__item,.mega__grid,.mega__ico,.mega__in,.mobile-menu__close,.numgrid,.offer,.offer__feats,.offer__price,.pf__cfg,.pf__cfg-ico,.pf__facts,.pf__form,.pf__ico,.pf__n,.pf__q,.pf__res-price,.pf__result,.pkg-pick,.price-grid,.product__media,.products,.promo__close,.regions,.rgrid,.segmented--tabs,.sg__row,.sgc__bar,.sgc__big,.sgc__cmp,.sgc__delta,.sgc__grid,.sgc__incl-ico,.sgc__info,.sgc__n,.sgc__pkg,.sgc__pkg-main,.sgc__pkg-price,.sgc__pkgs,.sgc__res,.shades,.split,.sstats,.stats,.steps,.steps4__grid,.steps4__list,.steps4__n,.sticky-cta__wa,.story__grid,.story__steps,.story__text,.studio__media--art,.studios,.svc,.svc-grid,.svc3,.svc3__ico,.svc__go,.svc__ico,.tile__go,.tile__ico,.tiles,.tline,.to-top,.usp__icon,.usps,.vfilm,.vgrid,.visit2,.vt__play,.wa-float,.why,.why5__grid,.why7,.why7__gl,.why7__ico,.whys,.yt__btn,.yt__play,.zk,.zk__opt,.zk__opts,.zk__panel,.zk__row,.zk__rows,.zk__stage,.zk__sum,.zs-gallery,.zs-gallery__toggle,.zs-grillz__media,.zs-plist__img,.zs-plist__t,.zs-prices__grid,.zs-swatch,.zs-swatches) > .elementor-widget-html > .elementor-widget-container > :only-child){height:100%}

/* Flex-Zeilen (generiert): Widget-Hüllen so breit wie ihr Inhalt */
.e-con:is(.ab-diet__k,.ab-note,.actions,.app-dl,.author,.ba-hint,.ba-panel__head,.ba-thumbs,.badge,.bb-confirm__head,.bc-facts,.bc-logo__go,.bc-shops__head,.bcard,.bcard__body,.bcard__chip,.bcmap__pin-in,.bcmap__tag-in,.bento__tile,.bigtype__group,.bigtype__track,.brand,.btn,.card-link,.carousel__nav,.cd,.chip,.chipcloud,.chips,.cityfind,.countdown__label,.cta-band__alt,.duo-hint,.duo-hint__go,.duo__tile,.expert__award,.expert__chip,.expert__seals,.expert__us,.eyebrow,.eyebrow-pill,.faq-nav,.faqnav,.flow__card,.flow__head,.footer-bottom__row,.footer-legal,.fr-cta__in,.fr-cta__tag,.fr-fcard__head,.fr-fcard__hint,.fr-pack__k,.frame__cap,.fu-hint,.fu-hint__go,.fu-only,.g-badge,.g-inline,.gstrip-head,.header-actions,.header-phone,.hero-facts,.hero-seals,.hero2__trust,.hero__frame,.hours2__status,.hrs__hot,.hrs__status,.icard,.ingr__body,.ingr__card,.ingr__tag,.interview__badge,.interview__facts,.katchips,.link-arrow,.location,.map__placeholder,.mega__a,.mega__aside,.mega__note,.mega__status,.mega__tag,.mobile-menu,.mobile-menu__social,.mobile-menu__top,.nav__item,.nav__link,.nav__list,.nearby,.notebox,.offer__feats,.offer__more,.open-status,.page-hero--image,.pay,.pay-accept,.pf__facts,.pf__gift,.pf__lvl,.pf__opt,.pressbar,.price-card,.price-card__price,.price-card__top,.product,.product__badge--colors,.product__body,.product__colors,.product__price,.product__soon,.promo__inner,.promo__link,.promo__tag,.ptabs,.ptabs__more,.rail-dots,.rating-hero,.review,.section-head--split,.segmented,.segmented--tabs,.sg__end,.sg__ends,.sg__t,.sgc__cta,.sgc__head,.sgc__incl,.sgc__incl-go,.sgc__info,.sgc__k,.sgc__mode,.sgc__mode-btn,.sgc__pick,.sgc__reset,.sgc__reshead,.sgc__tip,.sgc__who,.shades__legend,.shead,.site-header__inner,.smile-scroll__meter,.smile-scroll__sticky,.social,.stage-label,.stars,.status,.steps4__btn,.sticky-cta,.store,.story__bar,.story__btn,.studio,.studio__actions,.studio__badge,.studio__body,.svc,.svc3__body,.svc3__card,.svc3__chip,.svc3__cta,.svc3__ideal,.tape,.tape__group,.tape__track,.ticker__group,.ticker__track,.tile,.tile__foot,.tline__item,.topbar__inner,.topbar__links,.topbar__news,.topbar__social,.topbar__status,.topbar__tag,.trustline,.usp,.vt__btn,.why5__card,.why5__pills,.why5__seals,.why5__top,.why5__val,.why7__card--elena,.why7__card--google,.why7__card--seals,.why7__k,.why7__loc,.why7__name,.why7__seals,.why7__usps,.why7__years,.wordloop__group,.wordloop__track,.zk__actions,.zk__k,.zk__note,.zk__seg,.zk__shuffle,.zk__sws,.zk__tabs,.zk__total,.zs-dots,.zs-grillz__care,.zs-grillz__partner,.zs-grillz__tags,.zs-guarantee,.zs-note) > .elementor-widget { width: auto; --container-widget-width: auto; }

/* HTML-Widgets in Rastern (generiert): Auf der Website ist die Hülle „durchsichtig“ – das Element ist selbst die Rasterzelle wie im HTML.
   Im Elementor-Editor bleiben die Hüllen Kästen (Auswahl, Ziehen). */
body:not(.elementor-editor-active) .e-con:is(.ab-diet,.article-layout,.awards,.awards2,.awards2__imgs,.awards__imgs,.ba-cases,.ba-show__grid,.bb-confirm__seal,.bc-gallery,.bc-head,.bc-logo,.bc-shop,.bc-shop__logo,.bc-shop__name,.bc-shops__grid,.bcards,.bcmap-legend__dot,.bcmap-wrap,.bcmap__stage,.bento,.booking,.booking__aside,.burger,.carousel__btn,.carousel__track,.checklist,.cityfind__ico,.countdown__grid,.day,.day__x,.duo,.expert__grid,.expert__ico,.expert__list,.extra,.ezg-facts,.ezg-facts__ico,.facts,.faq,.faqcat,.feature-list,.field,.finder__grid,.finder__result,.flow,.footer-bottom,.footer-bottom__end,.footer-grid,.footer-list,.form,.form-row,.fr-check,.fr-contact,.fr-contact__ico,.fr-fcard__ico,.fr-form__grid,.fr-group,.fr-market__grid,.fr-next,.fr-pack__grid,.fr-points,.fr-seg,.fr-steps,.fr-steps__item,.fsplit,.gallery,.gallery-bento,.grid,.gstrip,.guarantee,.guarantee__num,.guarantee__steps,.hero-portrait,.hero-portrait__toggle,.hero2__facts,.hero2__grid,.hero__stats,.hero__toggle,.hrs,.hrs__days,.icard__ico,.icards,.info-list,.ingr,.ingr__stage,.inline-cta,.interview__facts,.interview__grid,.irows__ico,.lightbox__close,.locations,.mbar,.mbar__ico,.mbar__item,.mega__grid,.mega__ico,.mega__in,.mobile-menu__close,.numgrid,.offer,.offer__feats,.offer__price,.pf__cfg,.pf__cfg-ico,.pf__facts,.pf__form,.pf__ico,.pf__n,.pf__q,.pf__res-price,.pf__result,.pkg-pick,.price-grid,.product__media,.products,.promo__close,.regions,.rgrid,.segmented--tabs,.sg__row,.sgc__bar,.sgc__big,.sgc__cmp,.sgc__delta,.sgc__grid,.sgc__incl-ico,.sgc__info,.sgc__n,.sgc__pkg,.sgc__pkg-main,.sgc__pkg-price,.sgc__pkgs,.sgc__res,.shades,.split,.sstats,.stats,.steps,.steps4__grid,.steps4__list,.steps4__n,.sticky-cta__wa,.story__grid,.story__steps,.story__text,.studio__media--art,.studios,.svc,.svc-grid,.svc3,.svc3__ico,.svc__go,.svc__ico,.tile__go,.tile__ico,.tiles,.tline,.to-top,.usp__icon,.usps,.vfilm,.vgrid,.visit2,.vt__play,.wa-float,.why,.why5__grid,.why7,.why7__gl,.why7__ico,.whys,.yt__btn,.yt__play,.zk,.zk__opt,.zk__opts,.zk__panel,.zk__row,.zk__rows,.zk__stage,.zk__sum,.zs-gallery,.zs-gallery__toggle,.zs-grillz__media,.zs-plist__img,.zs-plist__t,.zs-prices__grid,.zs-swatch,.zs-swatches) > .elementor-widget-html, body:not(.elementor-editor-active) .e-con:is(.ab-diet,.article-layout,.awards,.awards2,.awards2__imgs,.awards__imgs,.ba-cases,.ba-show__grid,.bb-confirm__seal,.bc-gallery,.bc-head,.bc-logo,.bc-shop,.bc-shop__logo,.bc-shop__name,.bc-shops__grid,.bcards,.bcmap-legend__dot,.bcmap-wrap,.bcmap__stage,.bento,.booking,.booking__aside,.burger,.carousel__btn,.carousel__track,.checklist,.cityfind__ico,.countdown__grid,.day,.day__x,.duo,.expert__grid,.expert__ico,.expert__list,.extra,.ezg-facts,.ezg-facts__ico,.facts,.faq,.faqcat,.feature-list,.field,.finder__grid,.finder__result,.flow,.footer-bottom,.footer-bottom__end,.footer-grid,.footer-list,.form,.form-row,.fr-check,.fr-contact,.fr-contact__ico,.fr-fcard__ico,.fr-form__grid,.fr-group,.fr-market__grid,.fr-next,.fr-pack__grid,.fr-points,.fr-seg,.fr-steps,.fr-steps__item,.fsplit,.gallery,.gallery-bento,.grid,.gstrip,.guarantee,.guarantee__num,.guarantee__steps,.hero-portrait,.hero-portrait__toggle,.hero2__facts,.hero2__grid,.hero__stats,.hero__toggle,.hrs,.hrs__days,.icard__ico,.icards,.info-list,.ingr,.ingr__stage,.inline-cta,.interview__facts,.interview__grid,.irows__ico,.lightbox__close,.locations,.mbar,.mbar__ico,.mbar__item,.mega__grid,.mega__ico,.mega__in,.mobile-menu__close,.numgrid,.offer,.offer__feats,.offer__price,.pf__cfg,.pf__cfg-ico,.pf__facts,.pf__form,.pf__ico,.pf__n,.pf__q,.pf__res-price,.pf__result,.pkg-pick,.price-grid,.product__media,.products,.promo__close,.regions,.rgrid,.segmented--tabs,.sg__row,.sgc__bar,.sgc__big,.sgc__cmp,.sgc__delta,.sgc__grid,.sgc__incl-ico,.sgc__info,.sgc__n,.sgc__pkg,.sgc__pkg-main,.sgc__pkg-price,.sgc__pkgs,.sgc__res,.shades,.split,.sstats,.stats,.steps,.steps4__grid,.steps4__list,.steps4__n,.sticky-cta__wa,.story__grid,.story__steps,.story__text,.studio__media--art,.studios,.svc,.svc-grid,.svc3,.svc3__ico,.svc__go,.svc__ico,.tile__go,.tile__ico,.tiles,.tline,.to-top,.usp__icon,.usps,.vfilm,.vgrid,.visit2,.vt__play,.wa-float,.why,.why5__grid,.why7,.why7__gl,.why7__ico,.whys,.yt__btn,.yt__play,.zk,.zk__opt,.zk__opts,.zk__panel,.zk__row,.zk__rows,.zk__stage,.zk__sum,.zs-gallery,.zs-gallery__toggle,.zs-grillz__media,.zs-plist__img,.zs-plist__t,.zs-prices__grid,.zs-swatch,.zs-swatches) > .elementor-widget-html > .elementor-widget-container { display: contents; }

/* Absolut positionierte Bilder ohne Klasse (generiert): Hülle static, Bezug ist der Abschnitt */
.cta-band > .elementor-element:has(> .elementor-widget-container > img),.cta-band > .elementor-element:has(> img),.cta-band > .elementor-element > .elementor-widget-container:has(> img),.duo__tile > .elementor-element:has(> .elementor-widget-container > img),.duo__tile > .elementor-element:has(> img),.duo__tile > .elementor-element > .elementor-widget-container:has(> img),.fr-cta__in > .elementor-element:has(> .elementor-widget-container > img),.fr-cta__in > .elementor-element:has(> img),.fr-cta__in > .elementor-element > .elementor-widget-container:has(> img),.location > .elementor-element:has(> .elementor-widget-container > img),.location > .elementor-element:has(> img),.location > .elementor-element > .elementor-widget-container:has(> img),.page-hero--image > .elementor-element:has(> .elementor-widget-container > img),.page-hero--image > .elementor-element:has(> img),.page-hero--image > .elementor-element > .elementor-widget-container:has(> img),.video-frame > .elementor-element:has(> .elementor-widget-container > img),.video-frame > .elementor-element:has(> img),.video-frame > .elementor-element > .elementor-widget-container:has(> img) { position: static; }

/* Absolut positionierte Elemente (generiert): Bezug ist der Abschnitt, nicht die Widget-Hülle */
.elementor-widget:has(> :is(.award__ring,.ba__handle,.ba__hint,.ba__img,.ba__label,.ba__range,.bc-shop__here,.bcard__chip,.bcmap-legend,.bcmap__base,.bcmap__blocks,.bcmap__dbtop,.bcmap__dbwall,.bcmap__esc,.bcmap__guide,.bcmap__pin,.bcmap__pin-in,.bcmap__tag,.bcmap__walls,.consent,.expert__award,.expert__chip,.expert__us,.fr-cta__tag,.frame__cap,.frame__tag,.hero-portrait__phone,.hero-portrait__ring,.hero-portrait__toggle,.hero2__lines,.hero2__spot,.hero__controls,.hero__media,.hero__stats,.ingr__num,.ingr__ring,.interview__badge,.interview__ring,.lightbox__close,.map__placeholder,.mbar,.mega,.mobile-menu,.nav__dropdown,.portrait-stack__badge,.price-card__badge,.price-card__ring,.product__badge,.promo__close,.ptabs__anchor,.scroll-progress,.seg-flag,.sg__holder,.sg__track,.sgc__face,.sgc__gloss,.sgc__rec,.sgc__sparks-svg,.sgc__tint,.skip-link,.sparkles,.stage-label,.steps4__bar,.steps4__count,.steps4__img,.sticky-cta,.story__bar,.studio__badge,.svc3__chip,.svc3__flag,.svc__go,.svc__num,.tile__art,.tline__dot,.to-top,.visit2__chip,.visually-hidden,.vt__btn,.vt__play,.wa-float,.wa-float__tip,.yt__btn,.zk__circle,.zk__clip,.zk__face,.zk__gem,.zk__glint,.zk__ring,.zk__tooth,.zs-gallery__toggle,.zs-grillz__piece)), .elementor-widget:has(> .elementor-widget-container > :is(.award__ring,.ba__handle,.ba__hint,.ba__img,.ba__label,.ba__range,.bc-shop__here,.bcard__chip,.bcmap-legend,.bcmap__base,.bcmap__blocks,.bcmap__dbtop,.bcmap__dbwall,.bcmap__esc,.bcmap__guide,.bcmap__pin,.bcmap__pin-in,.bcmap__tag,.bcmap__walls,.consent,.expert__award,.expert__chip,.expert__us,.fr-cta__tag,.frame__cap,.frame__tag,.hero-portrait__phone,.hero-portrait__ring,.hero-portrait__toggle,.hero2__lines,.hero2__spot,.hero__controls,.hero__media,.hero__stats,.ingr__num,.ingr__ring,.interview__badge,.interview__ring,.lightbox__close,.map__placeholder,.mbar,.mega,.mobile-menu,.nav__dropdown,.portrait-stack__badge,.price-card__badge,.price-card__ring,.product__badge,.promo__close,.ptabs__anchor,.scroll-progress,.seg-flag,.sg__holder,.sg__track,.sgc__face,.sgc__gloss,.sgc__rec,.sgc__sparks-svg,.sgc__tint,.skip-link,.sparkles,.stage-label,.steps4__bar,.steps4__count,.steps4__img,.sticky-cta,.story__bar,.studio__badge,.svc3__chip,.svc3__flag,.svc__go,.svc__num,.tile__art,.tline__dot,.to-top,.visit2__chip,.visually-hidden,.vt__btn,.vt__play,.wa-float,.wa-float__tip,.yt__btn,.zk__circle,.zk__clip,.zk__face,.zk__gem,.zk__glint,.zk__ring,.zk__tooth,.zs-gallery__toggle,.zs-grillz__piece)), .elementor-widget-container:has(> :is(.award__ring,.ba__handle,.ba__hint,.ba__img,.ba__label,.ba__range,.bc-shop__here,.bcard__chip,.bcmap-legend,.bcmap__base,.bcmap__blocks,.bcmap__dbtop,.bcmap__dbwall,.bcmap__esc,.bcmap__guide,.bcmap__pin,.bcmap__pin-in,.bcmap__tag,.bcmap__walls,.consent,.expert__award,.expert__chip,.expert__us,.fr-cta__tag,.frame__cap,.frame__tag,.hero-portrait__phone,.hero-portrait__ring,.hero-portrait__toggle,.hero2__lines,.hero2__spot,.hero__controls,.hero__media,.hero__stats,.ingr__num,.ingr__ring,.interview__badge,.interview__ring,.lightbox__close,.map__placeholder,.mbar,.mega,.mobile-menu,.nav__dropdown,.portrait-stack__badge,.price-card__badge,.price-card__ring,.product__badge,.promo__close,.ptabs__anchor,.scroll-progress,.seg-flag,.sg__holder,.sg__track,.sgc__face,.sgc__gloss,.sgc__rec,.sgc__sparks-svg,.sgc__tint,.skip-link,.sparkles,.stage-label,.steps4__bar,.steps4__count,.steps4__img,.sticky-cta,.story__bar,.studio__badge,.svc3__chip,.svc3__flag,.svc__go,.svc__num,.tile__art,.tline__dot,.to-top,.visit2__chip,.visually-hidden,.vt__btn,.vt__play,.wa-float,.wa-float__tip,.yt__btn,.zk__circle,.zk__clip,.zk__face,.zk__gem,.zk__glint,.zk__ring,.zk__tooth,.zs-gallery__toggle,.zs-grillz__piece)) { position: static; }

/* Links, Bilder, Linien, Abbildungen (generiert): Designsystem vor Elementors Grundwerten */
.elementor a:not([class*="elementor"]) { text-decoration: revert; }
.elementor:not(#db-x) img,.elementor:not(#db-x) video,.elementor:not(#db-x) iframe{max-width: 100%}
.elementor:not(#db-x) img{height: auto}
.elementor:not(#db-x) a{text-decoration-thickness: 1px}
.elementor:not(#db-x) hr{border: 0;height: 1px;background: var(--line);margin: var(--s-5) 0}
.elementor:not(#db-x) .skip-link{box-shadow: var(--shadow-2)}
.elementor:not(#db-x) .media > img,.elementor:not(#db-x) .media > .elementor-widget > img,.elementor:not(#db-x) .media > .elementor-widget > .elementor-widget-container > img{height: 100%}
.elementor:not(#db-x) .media > video,.elementor:not(#db-x) .media > .elementor-widget > video,.elementor:not(#db-x) .media > .elementor-widget > .elementor-widget-container > video{width: 100%}
.elementor:not(#db-x) .btn{text-decoration: none}
.elementor:not(#db-x) .btn--primary{box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.18), 0 10px 26px -12px rgba(68,70,74,.45)}
.elementor:not(#db-x) .btn--primary:hover{box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 rgba(109,110,113,.2), 0 16px 34px -12px rgba(68,70,74,.5), 0 0 26px -6px rgba(200,204,210,.9)}
.elementor:not(#db-x) .btn--dark{box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 26px -12px rgba(68,70,74,.5)}
.elementor:not(#db-x) .btn--outline:hover{box-shadow: var(--shadow-1)}
.elementor:not(#db-x) .link-arrow{text-decoration: none}
.elementor:not(#db-x) .promo a{text-decoration: none}
.elementor:not(#db-x) .brand img{height: 54px}
@media (max-width: 899px){.elementor:not(#db-x) .brand img{height: 44px}}
.elementor:not(#db-x) .nav__link{text-decoration: none}
.elementor:not(#db-x) .nav__dropdown a{text-decoration: none}
.elementor:not(#db-x) .header-phone{text-decoration: none}
.elementor:not(#db-x) .mobile-menu__top img{height: 44px}
.elementor:not(#db-x) .mobile-menu__list a{text-decoration: none}
.elementor:not(#db-x) .mobile-menu__social a{box-shadow: 0 0 0 1px var(--red-line)}
.elementor:not(#db-x) .breadcrumbs a{text-decoration: none}
.elementor:not(#db-x) .ba__img{height: 100%}
.elementor:not(#db-x) .ba-thumb img{height: 100%}
.elementor:not(#db-x) .result-card{margin: 0}
.elementor:not(#db-x) .review{margin: 0}
.elementor:not(#db-x) .vt img{height: 100%;border: 0}
.elementor:not(#db-x) .vt iframe{width: 100%;border: 0}
.elementor:not(#db-x) .video-frame video,.elementor:not(#db-x) .video-frame iframe{width: 100%;border: 0}
.elementor:not(#db-x) .video-frame > img,.elementor:not(#db-x) .video-frame > .elementor-widget > img,.elementor:not(#db-x) .video-frame > .elementor-widget > .elementor-widget-container > img{height: 100%;border: 0}
.elementor:not(#db-x) .gallery button img{height: 100%}
.elementor:not(#db-x) .lightbox img{border-radius: var(--r-2);box-shadow: var(--shadow-2)}
.elementor:not(#db-x) .chip{text-decoration: none}
.elementor:not(#db-x) .chip:hover{box-shadow: var(--shadow-1)}
.elementor:not(#db-x) .chip[aria-pressed="true"],.elementor:not(#db-x) .chip:has(input:checked){box-shadow: inset 0 1px 0 #fff}
.elementor:not(#db-x) .product__media img{height: 100%}
.elementor:not(#db-x) a.card:hover{box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-2)}
.elementor:not(#db-x) .info-list a{text-decoration: none}
.elementor:not(#db-x) .location > img,.elementor:not(#db-x) .location > .elementor-widget > img,.elementor:not(#db-x) .location > .elementor-widget > .elementor-widget-container > img{height: 100%}
.elementor:not(#db-x) .map iframe{width: 100%;border: 0}
.elementor:not(#db-x) .cta-band > img,.elementor:not(#db-x) .cta-band > .elementor-widget > img,.elementor:not(#db-x) .cta-band > .elementor-widget > .elementor-widget-container > img{height: 100%}
.elementor:not(#db-x) .hero__media img{height: 100%}
.elementor:not(#db-x) .hero__media video{width: 100%}
.elementor:not(#db-x) .page-hero--image > img,.elementor:not(#db-x) .page-hero--image > .elementor-widget > img,.elementor:not(#db-x) .page-hero--image > .elementor-widget > .elementor-widget-container > img{height: 100%}
.elementor:not(#db-x) .guarantee img{height: auto}
.elementor:not(#db-x) .duo__tile > img,.elementor:not(#db-x) .duo__tile > .elementor-widget > img,.elementor:not(#db-x) .duo__tile > .elementor-widget > .elementor-widget-container > img{height: 100%}
.elementor:not(#db-x) .prose a{text-decoration-color: var(--grey-400)}
.elementor:not(#db-x) .toc a{text-decoration: none}
.elementor:not(#db-x) .author img{height: 54px;border-radius: 50%;box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--platinum-300)}
.elementor:not(#db-x) .city-region a{text-decoration: none}
.elementor:not(#db-x) .site-footer a{text-decoration: none}
.elementor:not(#db-x) .footer-brand img{height: 72px}
.elementor:not(#db-x) .social a{box-shadow: inset 0 1px 0 #fff}
.elementor:not(#db-x) .social a:hover{box-shadow: inset 0 1px 0 #fff, var(--shadow-1)}
.elementor:not(#db-x) .hero2__seal img{height: auto}
.elementor:not(#db-x) .frame img{border-radius: 17px}
.elementor:not(#db-x) .phone video{width: 100%;border-radius: 24px}
.elementor:not(#db-x) .phone img{border-radius: 24px}
.elementor:not(#db-x) .stage-label{box-shadow: 0 0 0 1px rgba(255,255,255,.9), var(--shadow-2)}
.elementor:not(#db-x) .tile__art img{height: auto;border-radius: 18px;box-shadow: var(--shadow-2)}
.elementor:not(#db-x) .flow__thumb img{height: 100%}
.elementor:not(#db-x) .topbar a{text-decoration: none}
.elementor:not(#db-x) .brand img{height: 58px}
@media (max-width: 899px){.elementor:not(#db-x) .brand img{height: 46px}}
.elementor:not(#db-x) .gb img{height: 100%}
.elementor:not(#db-x) .footer-brand img{height: 84px}
.elementor:not(#db-x) .hrs__hot{text-decoration: none;box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 12px 26px -14px rgba(200,16,46,.65)}
.elementor:not(#db-x) .hrs__hot:hover{box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 16px 30px -14px rgba(200,16,46,.7)}
.elementor:not(#db-x) .btn--primary{box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 12px 28px -14px rgba(200,16,46,.65)}
.elementor:not(#db-x) .btn--primary:hover{box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(90,0,15,.25), 0 18px 36px -14px rgba(200,16,46,.7)}
.elementor:not(#db-x) .prose a{text-decoration-color: var(--red-line)}
.elementor:not(#db-x) .g-inline{text-decoration: none}
.elementor:not(#db-x) .hero-seals__item{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1)}
.elementor:not(#db-x) .hero-seals__item img{height: 100%}
.elementor:not(#db-x) .hero-portrait__video video{width: 100%}
.elementor:not(#db-x) .offer__more{text-decoration: none}
.elementor:not(#db-x) .offer__more:hover{text-decoration: underline}
.elementor:not(#db-x) .studio__media img{height: 100%}
.elementor:not(#db-x) .gstrip__item{margin: 0}
.elementor:not(#db-x) .gstrip__item img{height: 100%}
.elementor:not(#db-x) .yt img{height: 100%}
.elementor:not(#db-x) .yt iframe{width: 100%;border: 0}
.elementor:not(#db-x) .ba-case img{height: 100%}
.elementor:not(#db-x) a.why5__card:hover{box-shadow: inset 0 0 0 1px rgba(255,255,255,.9), 0 0 0 1px var(--red-line), var(--shadow-2)}
.elementor:not(#db-x) .why5__seals img{height: 60px;border-radius: 10px;box-shadow: 0 0 0 1px var(--platinum-200)}
.elementor:not(#db-x) .steps4__img{margin: 0}
.elementor:not(#db-x) .steps4__img img{height: 100%}
@media (max-width: 760px){.elementor:not(#db-x) .cta-band--photo > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > .elementor-widget-container > img{height: 260px}}
.elementor:not(#db-x) .g-badge{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1);text-decoration: none}
.elementor:not(#db-x) .site-footer .social a{box-shadow: 0 10px 20px -12px rgba(200,16,46,.7)}
.elementor:not(#db-x) .mbar__item{text-decoration: none}
.elementor:not(#db-x) .wa-float{box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #b4b8be, 0 16px 34px -12px rgba(68,70,74,.55);text-decoration: none}
.elementor:not(#db-x) .wa-float:hover{box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #9a9da2, 0 20px 40px -12px rgba(68,70,74,.6)}
.elementor:not(#db-x) .hero-seals__item{box-shadow: none}
.elementor:not(#db-x) .why5__seals img{border-radius: 0;box-shadow: none;height: 68px}
.elementor:not(#db-x) .hero-seals__item img{height: 69px}
.elementor:not(#db-x) .why5__seals img{height: 72px}
@media (max-width: 599px){.elementor:not(#db-x) .why5__seals img{height: 30px}}
@media (max-width: 599px){.elementor:not(#db-x) .award__seal img{height: auto}}
@media (max-width: 599px){.elementor:not(#db-x) .footer-brand img{height: 70px}}
@media (min-width: 1920px){.elementor:not(#db-x) .brand img{height: 64px}}
@media (min-width: 2400px){.elementor:not(#db-x) .brand img{height: 72px}}
@media (min-width: 3200px){.elementor:not(#db-x) .brand img{height: 84px}}
.elementor:not(#db-x) .promo__link{text-decoration: none}
.elementor:not(#db-x) .topbar__social a{box-shadow: inset 0 0 0 1px rgba(255,255,255,.28)}
.elementor:not(#db-x) .pay-accept img{height: auto}
.elementor:not(#db-x) .interview__badge img{height: 46px;border-radius: 50%;box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--red-line)}
@media (max-width: 599px){.elementor:not(#db-x) .interview__badge img{height: 36px}}
.elementor:not(#db-x) .studios__lead a{text-decoration: underline;text-decoration-color: var(--red-line)}
.elementor:not(#db-x) .brand img{height: 64px}
@media (max-width: 899px){.elementor:not(#db-x) .brand img{height: 50px}}
@media (min-width: 1920px){.elementor:not(#db-x) .brand img{height: 70px}}
@media (min-width: 2400px){.elementor:not(#db-x) .brand img{height: 78px}}
@media (min-width: 3200px){.elementor:not(#db-x) .brand img{height: 90px}}
.elementor:not(#db-x) .svc3__media img{height: 100%}
.elementor:not(#db-x) .svc3__cta{box-shadow: inset 0 0 0 1.5px #c3c6ca;text-decoration: none}
.elementor:not(#db-x) .svc3__cta:hover{box-shadow: inset 0 0 0 1.5px var(--red-line), 0 12px 24px -16px rgba(68,70,74,.5)}
.elementor:not(#db-x) .svc3__cta--primary{box-shadow: 0 14px 28px -14px rgba(200,16,46,.75), inset 0 1px 0 rgba(255,255,255,.25)}
.elementor:not(#db-x) .svc3__cta--primary:hover{box-shadow: 0 18px 32px -14px rgba(200,16,46,.85), inset 0 1px 0 rgba(255,255,255,.25)}
.elementor:not(#db-x) .expert__photo img{height: 100%}
.elementor:not(#db-x) .expert__seals img{height: 56px}
@media (max-width: 599px){.elementor:not(#db-x) .expert__seals img{height: 46px}}
.elementor:not(#db-x) .topbar__social a{box-shadow: none}
@media (min-width: 1180px){.elementor:not(#db-x) .mega__a{text-decoration: none}}
@media (min-width: 1180px){.elementor:not(#db-x) .mega__aside--img img{max-width: none;height: 130px}}
@media (min-width: 761px){.elementor:not(#db-x) .cta-band--photo > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > .elementor-widget-container > img{max-width: none;height: 100%}}
@media (min-width: 761px) and (max-width: 1099px){.elementor:not(#db-x) .cta-band--photo > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > .elementor-widget-container > img{height: 100%}}
@media (max-width: 760px){.elementor:not(#db-x) .cta-band--photo > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > img,.elementor:not(#db-x) .cta-band--photo > .elementor-widget > .elementor-widget-container > img{height: auto}}
.elementor:not(#db-x) .why7__card{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2);text-decoration: none}
.elementor:not(#db-x) a.why7__card:hover,.elementor:not(#db-x) a.why7__card:focus-visible{box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55)}
.elementor:not(#db-x) .why7__seals img{height: clamp(76px, 3.6rem + 2.2vw, 104px)}
.elementor:not(#db-x) .why7__loc-logo{height: auto}
@media (max-width: 679px){.elementor:not(#db-x) .why7__seals img{height: 58px}}
@media (min-width: 1000px){.elementor:not(#db-x) .pf__gift{box-shadow: inset 0 0 0 1px var(--platinum-300);text-decoration: none}}
@media (min-width: 1000px){.elementor:not(#db-x) .pf__gift:hover{box-shadow: inset 0 0 0 1px var(--platinum-300), var(--shadow-1)}}
.elementor:not(#db-x) .gwa img{height: 88px;border-radius: 10px;box-shadow: 0 0 0 1px var(--platinum-200), 0 10px 22px -16px rgba(40,42,46,.5)}
.elementor:not(#db-x) .credit a{text-decoration: none}
.elementor:not(#db-x) .hrs__hot{box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 4px 10px -8px rgba(200,16,46,.32)}
.elementor:not(#db-x) .hrs__hot:hover{box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 8px 14px -10px rgba(200,16,46,.38)}
.elementor:not(#db-x) .store{text-decoration: none;box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 10px 20px -14px rgba(20,20,22,.7)}
.elementor:not(#db-x) .store:hover{box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 14px 24px -14px rgba(20,20,22,.75)}
.elementor:not(#db-x) .phero .hero-portrait__video img{height: 100%}
.elementor:not(#db-x) .icard{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2);text-decoration: none}
.elementor:not(#db-x) a.icard:hover,.elementor:not(#db-x) a.icard:focus-visible{box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55)}
.elementor:not(#db-x) .icard--red{box-shadow: 0 0 0 2px var(--red-line), var(--shadow-2)}
.elementor:not(#db-x) .irows--compact a{text-decoration: none}
.elementor:not(#db-x) .chipcloud .chip{text-decoration: none}
.elementor:not(#db-x) .bcard{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2);text-decoration: none}
.elementor:not(#db-x) .bcard:hover,.elementor:not(#db-x) .bcard:focus-visible{box-shadow: 0 0 0 1px #c3c6ca, 0 0 0 10px rgba(255,255,255,.8), 0 40px 80px -36px rgba(68,70,74,.55)}
.elementor:not(#db-x) .bcard__media img{height: 100%}
.elementor:not(#db-x) .faqnav a{text-decoration: none}
.elementor:not(#db-x) .booking__frame iframe{width: 100%;border: 0}
.elementor:not(#db-x) .awards2__item{margin: 0}
.elementor:not(#db-x) .awards2__item img{height: auto}
.elementor:not(#db-x) .pressbar img{height: auto}
.elementor:not(#db-x) .vgrid__item{margin: 0}
.elementor:not(#db-x) .vgrid__item img{height: 100%}
.elementor:not(#db-x) .article-media{margin: 0 0 2rem}
.elementor:not(#db-x) .article-media img{height: 100%}
.elementor:not(#db-x) .citylist a{text-decoration: none}
.elementor:not(#db-x) .ptabs__more{text-decoration: none}
.elementor:not(#db-x) .fu-hint{box-shadow: 0 0 0 1px var(--platinum-300), var(--shadow-1);text-decoration: none}
.elementor:not(#db-x) .fu-hint:hover{box-shadow: 0 0 0 1px var(--red-line), var(--shadow-2)}
@media (max-width: 359px){.elementor:not(#db-x) .brand img{height: 38px}}
.elementor:not(#db-x) .bb-confirm__ssa iframe{width: 100%;border: 0}
.elementor:not(#db-x) .bc-logo{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-2);text-decoration: none}
.elementor:not(#db-x) .bc-logo img{height: auto}
.elementor:not(#db-x) .bc-logo:hover,.elementor:not(#db-x) .bc-logo:focus-visible{box-shadow: 0 0 0 1px #c3c6ca, 0 24px 44px -26px rgba(40,42,46,.45)}
.elementor:not(#db-x) .bc-gallery__item{margin: 0}
.elementor:not(#db-x) .bc-gallery__item img{height: 100%}
.elementor:not(#db-x) .bcmap-wrap__logo img{height: auto}
.elementor:not(#db-x) .bc-shop{box-shadow: 0 0 0 1px var(--platinum-200), var(--shadow-1);text-decoration: none}
.elementor:not(#db-x) .bc-shop:hover,.elementor:not(#db-x) .bc-shop:focus-visible{box-shadow: 0 0 0 1px rgba(200,16,46,.35), 0 20px 36px -24px rgba(40,42,46,.5)}
.elementor:not(#db-x) .bc-shop__logo img{max-width: 100%;height: auto}
.elementor:not(#db-x) .bc-shop--db{box-shadow: 0 0 0 2px var(--red), 0 18px 34px -24px rgba(200,16,46,.55)}
.elementor:not(#db-x) .ingr__stage img{height: auto}
.elementor:not(#db-x) .cta-band__alt a{text-decoration: none}
@media (min-width: 761px) and (max-width: 999px){.elementor:not(#db-x) .cta-band--rich.cta-band--photo > img,.elementor:not(#db-x) .cta-band--rich.cta-band--photo > .elementor-widget > img,.elementor:not(#db-x) .cta-band--rich.cta-band--photo > .elementor-widget > .elementor-widget-container > img{max-width: none;height: 430px}}
.elementor:not(#db-x) .prose a.btn{text-decoration: none}
.elementor:not(#db-x) .sgc__big{margin: 0}
@media (min-width: 901px){.elementor:not(#db-x) .sgc__incl-go{text-decoration: none}}
.elementor:not(#db-x) .cta-band__lead a{text-decoration: underline;text-decoration-color: var(--red-line, rgba(200,16,46,.35))}
.elementor:not(#db-x) .fr-market__media{margin: 0}
.elementor:not(#db-x) .fr-market__media img{height: 100%}
.elementor:not(#db-x) .fr-pack__media{margin: 0}
.elementor:not(#db-x) .fr-pack__media img{height: 100%}
.elementor:not(#db-x) .fr-cta__in > img,.elementor:not(#db-x) .fr-cta__in > .elementor-widget > img,.elementor:not(#db-x) .fr-cta__in > .elementor-widget > .elementor-widget-container > img{height: 100%}
@media (max-width: 760px){.elementor:not(#db-x) .fr-cta__in > img,.elementor:not(#db-x) .fr-cta__in > .elementor-widget > img,.elementor:not(#db-x) .fr-cta__in > .elementor-widget > .elementor-widget-container > img{height: 240px}}
.elementor:not(#db-x) .fr-contact a{text-decoration: none}
.elementor:not(#db-x) .fr-privacy a{text-decoration: underline}
.elementor:not(#db-x) .ab-form .fr-fcard__hint a{text-decoration: underline}
.elementor:not(#db-x) .product__media--photo img{height: 84px;max-width: 100%}
.elementor:not(#db-x) .product__media--photo img.is-small{height: 58px}
@media (max-width: 599px){.elementor:not(#db-x) .product__media--photo img{height: 78px}}
@media (max-width: 599px){.elementor:not(#db-x) .product__media--photo img.is-small{height: 54px}}
.elementor:not(#db-x) .zs-swatch img{height: auto}
.elementor:not(#db-x) .zs-plist__img img{height: 80%}
.elementor:not(#db-x) .zs-gallery__item{margin: 0}
.elementor:not(#db-x) .zs-gallery__item img{height: 100%}
.elementor:not(#db-x) .zs-gallery__item video{width: 100%}
.elementor:not(#db-x) .product__colors{text-decoration: none}
.elementor:not(#db-x) .zs-plist__t small a{text-decoration: underline}
.elementor:not(#db-x) .zs-grillz__photo{margin: 0}
.elementor:not(#db-x) .zs-grillz__photo img{height: 100%}
.elementor:not(#db-x) .zs-grillz__piece{margin: 0}
.elementor:not(#db-x) .zs-grillz__piece img{height: 70px}
@media (max-width: 599px){.elementor:not(#db-x) .zs-grillz__piece{margin-top: -2.6rem}}
@media (max-width: 599px){.elementor:not(#db-x) .zs-grillz__piece img{height: 60px}}
.elementor:not(#db-x) .zk__face{height: 100%}
.elementor:not(#db-x) .zk__gem img{height: 100%}
.elementor:not(#db-x) .zk__opt img{height: 50px}
.elementor:not(#db-x) .zk__sw img{height: 100%;border-radius: 50%}
.elementor:not(#db-x) .sgc__face,.elementor:not(#db-x) .sgc__gloss{height: 100%}
.elementor:not(#db-x) .btn--zk{box-shadow: 0 8px 20px -14px rgba(200,16,46,.55)}
.elementor:not(#db-x) .btn--zk:hover{box-shadow: 0 12px 26px -12px rgba(200,16,46,.6)}
.elementor:not(#db-x) .pf__cfg{box-shadow: 0 0 0 1px var(--red-line), var(--shadow-1);text-decoration: none}
.elementor:not(#db-x) .pf__cfg:hover{box-shadow: 0 0 0 1px var(--red), var(--shadow-2)}
.elementor:not(#db-x) a.rating-hero,.elementor:not(#db-x) a.stage-label,.elementor:not(#db-x) a.review__source{text-decoration: none}
.elementor:not(#db-x) a.stage-label:hover,.elementor:not(#db-x) a.stage-label:focus-visible{box-shadow: 0 0 0 1px var(--red-line), var(--shadow-2)}
.elementor:not(#db-x) .eyebrow__g{text-decoration: none}

/* Strukturregeln (generiert): Kind-, Geschwister- und Flex-/Rasterkind-Regeln gelten auch durch Elementors Widget-Hüllen */
.elementor-widget:has(> .eyebrow, > .elementor-widget-container > .eyebrow){display:block}
.elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.e-con.e-flex.icon{flex: none}
body.db-aktion-aus .elementor-widget:has(> .db-aktion-only, > .elementor-widget-container > .db-aktion-only){display:none}
body.db-aktion-aus .elementor-widget:has(> .promo, > .elementor-widget-container > .promo){display:none}
body:not(.db-aktion-aus) .elementor-widget:has(> .db-aktion-alt, > .elementor-widget-container > .db-aktion-alt){display:none}
.elementor-widget:has(> .container, > .elementor-widget-container > .container){margin-inline: auto}
.elementor-widget:has(> .section-head--center, > .elementor-widget-container > .section-head--center){margin-inline: auto}
.section-head--center .elementor-widget:has(> .lead, > .elementor-widget-container > .lead){margin-inline: auto}
.section-head--split > .elementor-widget > div,.section-head--split > .elementor-widget > .elementor-widget-container > div{ max-width: 720px; }
@media (min-width: 900px){.split--reverse > .elementor-widget:first-child > :first-child,.split--reverse > .elementor-widget:first-child > .elementor-widget-container > :first-child{ order: 2; }}
.elementor-widget:has(> .actions, > .elementor-widget-container > .actions){display:block}
.media > .elementor-widget > img,.media > .elementor-widget > .elementor-widget-container > img,.media > .elementor-widget > video,.media > .elementor-widget > .elementor-widget-container > video{ width: 100%; height: 100%; object-fit: cover; }
.elementor-widget:has(> .btn, > .elementor-widget-container > .btn){display:block}
.elementor-widget:has(> .promo__dot, > .elementor-widget-container > .promo__dot){flex: none}
.e-con.e-flex.promo__dot{flex: none}
.elementor-widget:has(> .promo[hidden], > .elementor-widget-container > .promo[hidden]){display:none}
.elementor-widget:has(> .brand, > .elementor-widget-container > .brand){flex: none;margin-right: auto}
.e-con.e-flex.brand{flex: none}
.elementor-widget:has(> .nav, > .elementor-widget-container > .nav){display:none}
.elementor-widget:has(> .header-phone, > .elementor-widget-container > .header-phone){display:none}
.elementor-widget:has(> .burger, > .elementor-widget-container > .burger){display:block}
@media (min-width: 1180px){.elementor-widget:has(> .nav, > .elementor-widget-container > .nav){display:block}}
@media (min-width: 1180px){.elementor-widget:has(> .burger, > .elementor-widget-container > .burger){display:none}}
@media (min-width: 1360px){.elementor-widget:has(> .header-phone, > .elementor-widget-container > .header-phone){display:block}}
.elementor-widget:has(> .mobile-menu, > .elementor-widget-container > .mobile-menu){display:block}
.e-con.e-flex.mobile-menu{flex-direction: column}
.elementor-widget:has(> .mobile-menu[hidden], > .elementor-widget-container > .mobile-menu[hidden]){display:none}
.elementor-widget:has(> .mobile-menu__top, > .elementor-widget-container > .mobile-menu__top){flex: none}
.e-con.e-flex.mobile-menu__top{flex: none}
.elementor-widget:has(> .sticky-cta, > .elementor-widget-container > .sticky-cta){display:block}
.sticky-cta .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){flex: 1}
.sticky-cta .e-con.e-flex.btn{flex: 1}
.elementor-widget:has(> .sticky-cta__wa, > .elementor-widget-container > .sticky-cta__wa){flex: none}
.e-con.e-flex.sticky-cta__wa{flex: none}
@media (min-width: 900px){.elementor-widget:has(> .sticky-cta, > .elementor-widget-container > .sticky-cta){display:none}}
.breadcrumbs .elementor-widget:has(> li, > .elementor-widget-container > li) + .elementor-widget > li::before,.breadcrumbs .elementor-widget:has(> li, > .elementor-widget-container > li) + .elementor-widget > .elementor-widget-container > li::before{ content: "/"; margin-right: .4rem; opacity: .45; }
.trustline > .elementor-widget > span,.trustline > .elementor-widget > .elementor-widget-container > span{ display: inline-flex; align-items: center; gap: .5rem; }
.elementor-widget:has(> .ba__range:focus-visible, > .elementor-widget-container > .ba__range:focus-visible) ~ .elementor-widget > .ba__handle::after,.elementor-widget:has(> .ba__range:focus-visible, > .elementor-widget-container > .ba__range:focus-visible) ~ .elementor-widget > .elementor-widget-container > .ba__handle::after{ transform: translate(-50%, -50%) scale(1.1); }
.elementor-widget:has(> .ba__range:focus-visible, > .elementor-widget-container > .ba__range:focus-visible) ~ .elementor-widget > .ba__handle,.elementor-widget:has(> .ba__range:focus-visible, > .elementor-widget-container > .ba__range:focus-visible) ~ .elementor-widget > .elementor-widget-container > .ba__handle{ outline: 2px solid var(--grey-600); outline-offset: 2px; }
.elementor-widget:has(> .ba-thumbs, > .elementor-widget-container > .ba-thumbs){display:block}
.elementor-widget:has(> .ba-thumb, > .elementor-widget-container > .ba-thumb){flex: 0 0 auto}
.e-con.e-flex.ba-thumb{flex: 0 0 auto}
.elementor-widget:has(> .price-grid, > .elementor-widget-container > .price-grid){display:block}
.e-con.e-flex.price-card{flex-direction: column}
.elementor-widget:has(> .price-card__pick, > .elementor-widget-container > .price-card__pick){align-self: flex-start}
.elementor-widget:has(> .price-card__save, > .elementor-widget-container > .price-card__save){flex: none}
.e-con.e-flex.price-card__save{flex: none}
.price-card .elementor-widget:has(> .checklist, > .elementor-widget-container > .checklist){flex: 1}
.price-card .e-con.e-flex.checklist{flex: 1}
.extra .elementor-widget:has(> p, > .elementor-widget-container > p){grid-column: 1 / -1}
.e-con.e-flex.usp{flex-direction: column}
.elementor-widget:has(> .usp, > .elementor-widget-container > .usp) + .elementor-widget > .usp,.elementor-widget:has(> .usp, > .elementor-widget-container > .usp) + .elementor-widget > .elementor-widget-container > .usp{ border-top: 1px solid var(--line); }
@media (min-width: 700px){.elementor-widget:has(> .usp, > .elementor-widget-container > .usp) + .elementor-widget > .usp,.elementor-widget:has(> .usp, > .elementor-widget-container > .usp) + .elementor-widget > .elementor-widget-container > .usp{ border-top: 0; }}
.elementor-widget:has(> .carousel__track, > .elementor-widget-container > .carousel__track){display:block}
.e-con.e-flex.review{flex-direction: column}
.review .elementor-widget:has(> blockquote, > .elementor-widget-container > blockquote){flex: 1}
.review blockquote.e-con.e-flex{flex: 1}
.e-con.e-flex.vt__btn{flex-direction: column}
.video-frame > .elementor-widget > img,.video-frame > .elementor-widget > .elementor-widget-container > img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.video-frame > .elementor-widget > img,.video-frame > .elementor-widget > .elementor-widget-container > img{ object-position: center 25%; }
.elementor-widget:has(> .faq__icon, > .elementor-widget-container > .faq__icon){flex: none}
.e-con.e-flex.faq__icon{flex: none}
.elementor-widget:has(> .product, > .elementor-widget-container > .product){display:block}
.e-con.e-flex.product{flex-direction: column}
.elementor-widget:has(> .product[hidden], > .elementor-widget-container > .product[hidden]){display:none}
.product__media > .elementor-widget > .icon,.product__media > .elementor-widget > .elementor-widget-container > .icon{ width: 30%; height: 30%; color: var(--grey-400); }
.elementor-widget:has(> .product__body, > .elementor-widget-container > .product__body){flex: 1}
.e-con.e-flex.product__body{flex-direction: column;flex: 1}
.elementor-widget:has(> .product__desc, > .elementor-widget-container > .product__desc){flex: 1}
.e-con.e-flex.product__desc{flex: 1}
.card > .elementor-widget:first-child > .icon:first-child,.card > .elementor-widget:first-child > .elementor-widget-container > .icon:first-child{ width: 52px; height: 52px; padding: 13px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca; }
.e-con.e-flex.card-link{flex-direction: column}
.e-con.e-flex.location{flex-direction: column}
.location > .elementor-widget > img,.location > .elementor-widget > .elementor-widget-container > img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.4s var(--ease-out); }
.location:hover > .elementor-widget > img,.location:hover > .elementor-widget > .elementor-widget-container > img{ transform: scale(1.04); }
.elementor-widget:has(> .status, > .elementor-widget-container > .status){align-self: flex-start}
.e-con.e-flex.map__placeholder{flex-direction: column}
.map__placeholder > .elementor-widget > .icon,.map__placeholder > .elementor-widget > .elementor-widget-container > .icon{ width: 60px; height: 60px; padding: 16px; border-radius: 50%; background: var(--silver); color: var(--grey-700); box-shadow: 0 0 0 1px #c3c6ca; }
.cta-band > .elementor-widget > img,.cta-band > .elementor-widget > .elementor-widget-container > img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .16; z-index: -1; filter: grayscale(.4); }
.cta-band .elementor-widget:has(> h2, > .elementor-widget-container > h2){margin-inline: auto}
.cta-band .elementor-widget:has(> p, > .elementor-widget-container > p){margin-inline: auto}
.checkbox .elementor-widget:has(> input, > .elementor-widget-container > input){flex: none}
.checkbox input.e-con.e-flex{flex: none}
.elementor-widget:has(> .form-status[hidden], > .elementor-widget-container > .form-status[hidden]){display:none}
.elementor-widget:has(> .consent[hidden], > .elementor-widget-container > .consent[hidden]){display:none}
.consent .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){flex: 1}
.consent .e-con.e-flex.btn{flex: 1}
.e-con.e-flex.hero__frame{flex-direction: column}
.elementor-widget:has(> .bigtype__dot, > .elementor-widget-container > .bigtype__dot){flex: none}
.e-con.e-flex.bigtype__dot{flex: none}
.elementor-widget:has(> .marquee, > .elementor-widget-container > .marquee){display:none}
.e-con.e-flex.bento__tile{flex-direction: column}
.bento .elementor-widget:has(> .media--span, > .elementor-widget-container > .media--span){grid-column: 1 / -1}
.page-hero--center .elementor-widget:has(> h1, > .elementor-widget-container > h1){margin-inline: auto}
.page-hero--center .elementor-widget:has(> .lead, > .elementor-widget-container > .lead){margin-inline: auto}
.page-hero--image > .elementor-widget > img,.page-hero--image > .elementor-widget > .elementor-widget-container > img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.guarantee .elementor-widget:has(> img, > .elementor-widget-container > img){margin-inline: auto}
.e-con.e-flex.duo__tile{flex-direction: column}
.duo__tile > .elementor-widget > img,.duo__tile > .elementor-widget > .elementor-widget-container > img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.4s var(--ease-out); }
.duo__tile:hover > .elementor-widget > img,.duo__tile:hover > .elementor-widget > .elementor-widget-container > img{ transform: scale(1.05); }
.duo__tile .elementor-widget:has(> .link-arrow, > .elementor-widget-container > .link-arrow){align-self: flex-start}
.duo__tile--light > .elementor-widget > img,.duo__tile--light > .elementor-widget > .elementor-widget-container > img{ object-fit: contain; padding: 2rem 2rem 10rem; }
.elementor-widget:has(> .cta-band, > .elementor-widget-container > .cta-band) + .elementor-widget > .site-footer,.elementor-widget:has(> .cta-band, > .elementor-widget-container > .cta-band) + .elementor-widget > .elementor-widget-container > .site-footer{ margin-top: var(--frame); }
.hero2 .line > .elementor-widget > span,.hero2 .line > .elementor-widget > .elementor-widget-container > span{ display: inline-block; animation: lineUp 1.1s var(--ease-out) both; }
.hero2 .line:nth-child(2) > .elementor-widget > span,.hero2 .line:nth-child(2) > .elementor-widget > .elementor-widget-container > span{ animation-delay: .09s; }
.hero2 .line:nth-child(3) > .elementor-widget > span,.hero2 .line:nth-child(3) > .elementor-widget > .elementor-widget-container > span{ animation-delay: .18s; }
.elementor-widget:has(> .hero2__seal, > .elementor-widget-container > .hero2__seal){flex: none}
.e-con.e-flex.hero2__seal{flex: none}
.elementor-widget:has(> .stage, > .elementor-widget-container > .stage){margin-inline: auto}
.elementor-widget:has(> .dot, > .elementor-widget-container > .dot){flex: none}
.e-con.e-flex.dot{flex: none}
@media (max-width: 640px){.elementor-widget:has(> .stage-label--b, > .elementor-widget-container > .stage-label--b){display:none}}
.elementor-widget:has(> .tape__group, > .elementor-widget-container > .tape__group){flex: none}
.e-con.e-flex.tape__group{flex: none}
@media (min-width: 1000px){.tiles > .elementor-widget > .tile,.tiles > .elementor-widget > .elementor-widget-container > .tile{ grid-column: span 2; }}
@media (min-width: 1000px){.tiles > .elementor-widget:has(> .tile, > .elementor-widget-container > .tile){grid-column: span 2}}
@media (min-width: 1000px){.tiles > .elementor-widget > .tile--lg,.tiles > .elementor-widget > .elementor-widget-container > .tile--lg{ grid-column: span 3; }}
@media (min-width: 1000px){.tiles > .elementor-widget:has(> .tile--lg, > .elementor-widget-container > .tile--lg){grid-column: span 3}}
.e-con.e-flex.tile{flex-direction: column}
.shade .elementor-widget:has(> input:checked, > .elementor-widget-container > input:checked) + .elementor-widget > span,.shade .elementor-widget:has(> input:checked, > .elementor-widget-container > input:checked) + .elementor-widget > .elementor-widget-container > span{ transform: translateY(-6px); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--grey-600), 0 10px 18px -8px rgba(68,70,74,.5); }
.shade .elementor-widget:has(> input:focus-visible, > .elementor-widget-container > input:focus-visible) + .elementor-widget > span,.shade .elementor-widget:has(> input:focus-visible, > .elementor-widget-container > input:focus-visible) + .elementor-widget > .elementor-widget-container > span{ outline: 2px solid var(--grey-700); outline-offset: 3px; }
.smile-scroll__sticky > .elementor-widget > .container,.smile-scroll__sticky > .elementor-widget > .elementor-widget-container > .container{ width: 100%; }
.elementor-widget:has(> .smile-scroll__bar, > .elementor-widget-container > .smile-scroll__bar){flex: 1}
.e-con.e-flex.smile-scroll__bar{flex: 1}
.award .elementor-widget:has(> h2, > .elementor-widget-container > h2){margin-inline: auto}
.award .elementor-widget:has(> p, > .elementor-widget-container > p){margin-inline: auto}
.numgrid > .elementor-widget > div,.numgrid > .elementor-widget > .elementor-widget-container > div{ padding: clamp(1.4rem, 1rem + 1.5vw, 2.4rem) clamp(1rem, .6rem + 1vw, 1.6rem); }
.numgrid > .elementor-widget > div + div,.numgrid > .elementor-widget > .elementor-widget-container > div + div,.numgrid > .elementor-widget:has(> div, > .elementor-widget-container > div) + .elementor-widget > div,.numgrid > .elementor-widget:has(> div, > .elementor-widget-container > div) + .elementor-widget > .elementor-widget-container > div{ border-left: 1px solid var(--line); }
.e-con.e-flex.flow__card{flex-direction: column}
.elementor-widget:has(> .flow__thumb, > .elementor-widget-container > .flow__thumb){flex: none}
.e-con.e-flex.flow__thumb{flex: none}
.elementor-widget:has(> .footer-watermark, > .elementor-widget-container > .footer-watermark){display:none}
@media (prefers-reduced-motion: reduce){.hero2 .line > .elementor-widget > span,.hero2 .line > .elementor-widget > .elementor-widget-container > span{ animation: none !important; }}
@media (max-width: 999px){.elementor-widget:has(> .tile__art, > .elementor-widget-container > .tile__art){display:none}}
.elementor-widget:has(> .topbar, > .elementor-widget-container > .topbar){display:none}
@media (min-width: 900px){.elementor-widget:has(> .topbar, > .elementor-widget-container > .topbar){display:block}}
@media (min-width: 900px){.elementor-widget:has(> .promo, > .elementor-widget-container > .promo){display:none}}
.elementor-widget:has(> .topbar__links, > .elementor-widget-container > .topbar__links){flex: none}
.e-con.e-flex.topbar__links{flex: none}
.elementor-widget:has(> .topbar__status, > .elementor-widget-container > .topbar__status){display:block}
@media (max-width: 1020px){.elementor-widget:has(> .topbar__status, > .elementor-widget-container > .topbar__status){display:none}}
.elementor-widget:has(> .live-dot, > .elementor-widget-container > .live-dot){flex: none}
.e-con.e-flex.live-dot{flex: none}
.elementor-widget:has(> .header-phone, > .elementor-widget-container > .header-phone){display:none}
.elementor-widget:has(> .hero-portrait, > .elementor-widget-container > .hero-portrait){margin-inline: auto}
.hero-portrait .stage-label > .elementor-widget > .icon,.hero-portrait .stage-label > .elementor-widget > .elementor-widget-container > .icon{ width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--silver); box-shadow: 0 0 0 1px #c3c6ca; }
@media (max-width: 1079px){.hero-ac .hero2__grid > .elementor-widget > .hero-portrait,.hero-ac .hero2__grid > .elementor-widget > .elementor-widget-container > .hero-portrait{ max-width: 460px; }}
@media (max-width: 640px){.hero-portrait .elementor-widget:has(> .stage-label--b, > .elementor-widget-container > .stage-label--b){display:block}}
@media (max-width: 640px){.elementor-widget:has(> .hero-portrait__phone, > .elementor-widget-container > .hero-portrait__phone){display:none}}
.elementor-widget:has(> .countdown[hidden], > .elementor-widget-container > .countdown[hidden]){display:none}
.e-con.e-flex.cd{flex-direction: column}
.elementor-widget:has(> .gb--a, > .elementor-widget-container > .gb--a){grid-area: a}
.elementor-widget:has(> .gb--b, > .elementor-widget-container > .gb--b){grid-area: b}
.elementor-widget:has(> .gb--c, > .elementor-widget-container > .gb--c){grid-area: c}
.elementor-widget:has(> .gb--d, > .elementor-widget-container > .gb--d){grid-area: d}
.elementor-widget:has(> .gb--e, > .elementor-widget-container > .gb--e){grid-area: e}
.elementor-widget:has(> .hrs__dot, > .elementor-widget-container > .hrs__dot){flex: none}
.e-con.e-flex.hrs__dot{flex: none}
.elementor-widget:has(> .hrs__hot, > .elementor-widget-container > .hrs__hot){justify-self: start}
@media (min-width: 1100px){.elementor-widget:has(> .hrs__hot, > .elementor-widget-container > .hrs__hot){justify-self: end}}
.story__bar .elementor-widget:has(> span, > .elementor-widget-container > span){flex: 1}
.story__bar span.e-con.e-flex{flex: 1}
@media (min-width: 1000px) and (max-height: 760px){.elementor-widget:has(> .story__lead, > .elementor-widget-container > .story__lead){display:none}}
@media (max-width: 999px){.elementor-widget:has(> .story__copy, > .elementor-widget-container > .story__copy){order: 2}}
@media (max-width: 999px){.elementor-widget:has(> .story__stage, > .elementor-widget-container > .story__stage){order: 1;margin-inline: auto}}
@media (max-width: 999px){.elementor-widget:has(> .story__lead, > .elementor-widget-container > .story__lead){display:none}}
@media (max-width: 999px){.elementor-widget:has(> .story__cta, > .elementor-widget-container > .story__cta){display:none}}
@media (max-width: 999px){.story__copy .elementor-widget:has(> .eyebrow, > .elementor-widget-container > .eyebrow){display:none}}
@media (max-width: 999px){.story.is-ready:not(.is-static) .elementor-widget:has(> .story__step:not(.is-active), > .elementor-widget-container > .story__step:not(.is-active)){display:none}}
@media (max-width: 999px){.story.is-static .elementor-widget:has(> .story__step.is-active, > .elementor-widget-container > .story__step.is-active){flex-basis: 100%;order: 9}}
@media (max-width: 999px){.story.is-static .e-con.e-flex.story__step.is-active{flex-basis: 100%}}
.elementor-widget:has(> .g-logo, > .elementor-widget-container > .g-logo){flex: none}
.e-con.e-flex.g-logo{flex: none}
.elementor-widget:has(> .hero-seals__item, > .elementor-widget-container > .hero-seals__item){flex: none}
.e-con.e-flex.hero-seals__item{flex: none}
@media (max-width: 999px){.offer__price .elementor-widget:has(> .offer__save, > .elementor-widget-container > .offer__save){grid-column: 1 / -1}}
@media (max-width: 999px){.offer__price .elementor-widget:has(> .offer__pkg, > .elementor-widget-container > .offer__pkg){grid-column: 1 / -1}}
@media (max-width: 999px){.offer__price .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){grid-column: 1 / -1}}
@media (max-width: 999px){.offer__price .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){justify-self: start}}
.elementor-widget:has(> .studios, > .elementor-widget-container > .studios){display:block}
@media (min-width: 760px){.elementor-widget:has(> .studio--open, > .elementor-widget-container > .studio--open){grid-column: 1 / -1}}
@media (min-width: 1100px){.elementor-widget:has(> .studio--open, > .elementor-widget-container > .studio--open){grid-column: auto}}
.e-con.e-flex.studio{flex-direction: column}
.elementor-widget:has(> .studio__body, > .elementor-widget-container > .studio__body){flex: 1}
.e-con.e-flex.studio__body{flex-direction: column;flex: 1}
.studio__body > .elementor-widget > p:not(.studio__num),.studio__body > .elementor-widget > .elementor-widget-container > p:not(.studio__num){ margin: 0; color: var(--text-muted); font-size: .94rem; }
.elementor-widget:has(> .studio__actions, > .elementor-widget-container > .studio__actions){margin-top: auto}
.elementor-widget:has(> .gstrip, > .elementor-widget-container > .gstrip){display:block}
.e-con.e-flex.svc{flex-direction: column}
.elementor-widget:has(> .pf__n, > .elementor-widget-container > .pf__n){flex: none}
.e-con.e-flex.pf__n{flex: none}
.elementor-widget:has(> .pf__sw, > .elementor-widget-container > .pf__sw){flex: none}
.e-con.e-flex.pf__sw{flex: none}
.elementor-widget:has(> .pf__lvl, > .elementor-widget-container > .pf__lvl){flex: none}
.e-con.e-flex.pf__lvl{flex: none}
.pf__lvl .elementor-widget:has(> i, > .elementor-widget-container > i){flex: 1}
.pf__lvl i.e-con.e-flex{flex: 1}
.elementor-widget:has(> .pf__ico, > .elementor-widget-container > .pf__ico){flex: none}
.e-con.e-flex.pf__ico{flex: none}
.e-con.e-flex.why5__card{flex-direction: column}
.elementor-widget:has(> .steps4__n, > .elementor-widget-container > .steps4__n){flex: none}
.e-con.e-flex.steps4__n{flex: none}
.elementor-widget:has(> .duo-hint__go, > .elementor-widget-container > .duo-hint__go){margin-left: auto}
.elementor-widget:has(> .price-card__unit, > .elementor-widget-container > .price-card__unit){flex-basis: 100%}
.e-con.e-flex.price-card__unit{flex-basis: 100%}
.cta-band--photo > .elementor-widget > img,.cta-band--photo > .elementor-widget > .elementor-widget-container > img{ opacity: 1; filter: none; object-position: 72% 28%; }
@media (max-width: 760px){.cta-band--photo > .elementor-widget > img,.cta-band--photo > .elementor-widget > .elementor-widget-container > img{ position: relative; height: 260px; object-position: 78% 20%; }}
.elementor-widget:has(> .sticky-cta, > .elementor-widget-container > .sticky-cta){display:none}
.elementor-widget:has(> .mbar, > .elementor-widget-container > .mbar){display:block}
@media (min-width: 900px){.elementor-widget:has(> .mbar, > .elementor-widget-container > .mbar){display:none}}
.elementor-widget:has(> .wa-float, > .elementor-widget-container > .wa-float){display:none}
@media (min-width: 900px){.elementor-widget:has(> .wa-float, > .elementor-widget-container > .wa-float){display:block}}
.elementor-widget:has(> .studio--open, > .elementor-widget-container > .studio--open){grid-column: auto}
@media (min-width: 900px) and (max-width: 1099px){.e-con.e-flex.studio__actions{flex-direction: column}}
.elementor-widget:has(> .rail-dots, > .elementor-widget-container > .rail-dots){display:none}
.elementor-widget:has(> .rail-dots[hidden], > .elementor-widget-container > .rail-dots[hidden]){display:none}
@media (max-width: 899px){.elementor-widget:has(> .rail-dots, > .elementor-widget-container > .rail-dots){display:block}}
@media (max-width: 759px){.elementor-widget:has(> .rail-dots, > .elementor-widget-container > .rail-dots){display:block}}
@media (max-width: 599px){.hero-ac .elementor-widget:has(> .actions, > .elementor-widget-container > .actions){display:block}}
@media (max-width: 599px){.elementor-widget:has(> .hero-portrait--video, > .elementor-widget-container > .hero-portrait--video){margin-inline: auto}}
@media (max-width: 599px){.offer__feats .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}}
@media (max-width: 599px){.offer__feats .e-con.e-flex.icon{flex: none}}
@media (max-width: 599px){.elementor-widget:has(> .offer__now, > .elementor-widget-container > .offer__now){grid-row: 2}}
@media (max-width: 599px){.elementor-widget:has(> .offer__old, > .elementor-widget-container > .offer__old){grid-row: 2;align-self: end}}
@media (max-width: 599px){#studios .section-head .elementor-widget:has(> .lead, > .elementor-widget-container > .lead){display:none}}
@media (max-width: 599px){.elementor-widget:has(> .svc__ico, > .elementor-widget-container > .svc__ico){grid-row: 1 / 3}}
@media (max-width: 599px){.svc .elementor-widget:has(> h3, > .elementor-widget-container > h3){grid-column: 2}}
@media (max-width: 599px){.svc .elementor-widget:has(> p, > .elementor-widget-container > p){grid-column: 2}}
@media (max-width: 599px){.elementor-widget:has(> .svc__go, > .elementor-widget-container > .svc__go){grid-column: 3;grid-row: 1 / 3}}
@media (max-width: 599px){.elementor-widget:has(> .svc__num, > .elementor-widget-container > .svc__num){display:none}}
@media (max-width: 599px){.pf__res-price .elementor-widget:has(> .price-card__save, > .elementor-widget-container > .price-card__save){grid-column: 1 / -1;justify-self: start}}
@media (max-width: 599px){.pf__res-price .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){grid-column: 1 / -1}}
@media (max-width: 599px){.pf__res-price .elementor-widget:has(> .link-arrow, > .elementor-widget-container > .link-arrow){grid-column: 1 / -1}}
@media (max-width: 599px){.elementor-widget:has(> .why5__sub, > .elementor-widget-container > .why5__sub){display:none}}
@media (max-width: 599px){.segmented--tabs .elementor-widget:has(> button, > .elementor-widget-container > button){flex: 1}}
@media (max-width: 599px){.segmented--tabs button.e-con.e-flex{flex: 1}}
@media (max-width: 999px){.pf__q .elementor-widget:has(> .pf__legend, > .elementor-widget-container > .pf__legend){grid-column: 1 / -1}}
@media (max-width: 999px){.e-con.e-flex.pf__opt{flex-direction: column}}
@media (min-width: 600px) and (max-width: 999px){.elementor-widget:has(> .offer__main, > .elementor-widget-container > .offer__main){grid-column: 1 / -1}}
@media (min-width: 600px) and (max-width: 999px){.elementor-widget:has(> .offer__clock, > .elementor-widget-container > .offer__clock){align-self: center}}
@media (min-width: 900px) and (max-width: 1079px){.hero-ac .hero2__grid > .elementor-widget > .hero-portrait,.hero-ac .hero2__grid > .elementor-widget > .elementor-widget-container > .hero-portrait{ max-width: none; }}
@media (min-width: 760px) and (max-width: 899px){.elementor-widget:has(> .hero-seals__note, > .elementor-widget-container > .hero-seals__note){display:none}}
.elementor-widget:has(> .ticker__group, > .elementor-widget-container > .ticker__group){display:block;flex: none}
.e-con.e-flex.ticker__group{flex: none}
.ticker__group > .elementor-widget > span,.ticker__group > .elementor-widget > .elementor-widget-container > span{ display: block; padding-right: 1.1rem; white-space: nowrap; font-weight: 600; }
.ticker__group > .elementor-widget > span::after,.ticker__group > .elementor-widget > .elementor-widget-container > span::after{ content: "✦"; margin-left: 1.1rem; font-size: .7em; opacity: .8; vertical-align: .12em; }
.elementor-widget:has(> .topbar__news, > .elementor-widget-container > .topbar__news){flex: 1 1 auto}
.elementor-widget:has(> .promo__link, > .elementor-widget-container > .promo__link){flex: 1 1 auto}
.e-con.e-flex.topbar__news,.e-con.e-flex.promo__link{flex: 1 1 auto}
.elementor-widget:has(> .topbar__tag, > .elementor-widget-container > .topbar__tag){flex: none}
.elementor-widget:has(> .promo__tag, > .elementor-widget-container > .promo__tag){flex: none}
.e-con.e-flex.topbar__tag,.e-con.e-flex.promo__tag{flex: none}
.topbar .elementor-widget:has(> .ticker, > .elementor-widget-container > .ticker){flex: 1 1 auto}
.topbar .e-con.e-flex.ticker{flex: 1 1 auto}
.promo .elementor-widget:has(> .ticker, > .elementor-widget-container > .ticker){flex: 1 1 auto}
.promo .e-con.e-flex.ticker{flex: 1 1 auto}
@media (prefers-reduced-motion: reduce){.elementor-widget:has(> .ticker__group, > .elementor-widget-container > .ticker__group) + .elementor-widget > .ticker__group,.elementor-widget:has(> .ticker__group, > .elementor-widget-container > .ticker__group) + .elementor-widget > .elementor-widget-container > .ticker__group{ display: none; }}
@media (prefers-reduced-motion: reduce){.ticker__group + .elementor-widget:has(> .ticker__group, > .elementor-widget-container > .ticker__group){display:none}}
@media (max-width: 999px){.elementor-widget:has(> .interview__video, > .elementor-widget-container > .interview__video){order: -1}}
@media (max-width: 599px){.interview .actions .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){flex: 1 1 100%}}
@media (max-width: 599px){.interview .actions .e-con.e-flex.btn{flex: 1 1 100%}}
@media (max-width: 599px){#studios .section-head .elementor-widget:has(> .lead.studios__lead, > .elementor-widget-container > .lead.studios__lead){display:block}}
.elementor-widget:has(> .guarantee__head, > .elementor-widget-container > .guarantee__head){margin-inline: auto}
.guarantee__steps li.e-con.e-flex{flex-direction: column}
.guarantee__steps li > .elementor-widget:last-child > span:last-child,.guarantee__steps li > .elementor-widget:last-child > .elementor-widget-container > span:last-child{ font-size: .93rem; line-height: 1.55; color: var(--text-muted); }
@media (min-width: 900px){.guarantee__steps .elementor-widget:has(> li, > .elementor-widget-container > li) + .elementor-widget > li::before,.guarantee__steps .elementor-widget:has(> li, > .elementor-widget-container > li) + .elementor-widget > .elementor-widget-container > li::before{ content: ""; position: absolute; left: -1rem; top: 2.35rem; width: 1rem; height: 1px; background: var(--red-line); }}
@media (max-width: 899px){.guarantee__steps li.e-con.e-flex{flex-direction: row}}
@media (max-width: 899px){.guarantee__steps li > .elementor-widget:last-child > span:last-child,.guarantee__steps li > .elementor-widget:last-child > .elementor-widget-container > span:last-child{ flex-basis: 100%; }}
@media (max-width: 899px){.guarantee__steps li > .elementor-widget:has(> span:last-child, > .elementor-widget-container > span:last-child){flex-basis: 100%}}
@media (max-width: 899px){.guarantee__steps li > span.e-con.e-flex:last-child{flex-basis: 100%}}
.elementor-widget:has(> .svc3, > .elementor-widget-container > .svc3){display:block}
.e-con.e-flex.svc3__card{flex-direction: column}
.elementor-widget:has(> .svc3__body, > .elementor-widget-container > .svc3__body){flex: 1}
.e-con.e-flex.svc3__body{flex-direction: column;flex: 1}
.svc3__ideal .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.svc3__ideal .e-con.e-flex.icon{flex: none}
.elementor-widget:has(> .expert__ico, > .elementor-widget-container > .expert__ico){flex: none}
.e-con.e-flex.expert__ico{flex: none}
.elementor-widget:has(> .expert__seals, > .elementor-widget-container > .expert__seals){flex: none}
.e-con.e-flex.expert__seals{flex: none}
@media (max-width: 999px){.elementor-widget:has(> .expert__media, > .elementor-widget-container > .expert__media){order: -1}}
@media (min-width: 1180px){.elementor-widget:has(> .nav, > .elementor-widget-container > .nav){align-self: stretch}}
@media (min-width: 1180px){.has-mega:hover > .elementor-widget > .nav__link,.has-mega:hover > .elementor-widget > .elementor-widget-container > .nav__link,.has-mega.is-open > .elementor-widget > .nav__link,.has-mega.is-open > .elementor-widget > .elementor-widget-container > .nav__link,.has-mega:focus-within > .elementor-widget > .nav__link,.has-mega:focus-within > .elementor-widget > .elementor-widget-container > .nav__link{ color: var(--grey-700); }}
@media (min-width: 1180px){.has-mega:hover > .elementor-widget > .nav__link::after,.has-mega:hover > .elementor-widget > .elementor-widget-container > .nav__link::after,.has-mega.is-open > .elementor-widget > .nav__link::after,.has-mega.is-open > .elementor-widget > .elementor-widget-container > .nav__link::after{ transform: scaleX(1); }}
@media (min-width: 1180px){.has-mega:hover > .elementor-widget > .nav__tg .icon,.has-mega:hover > .elementor-widget > .elementor-widget-container > .nav__tg .icon,.has-mega.is-open > .elementor-widget > .nav__tg .icon,.has-mega.is-open > .elementor-widget > .elementor-widget-container > .nav__tg .icon{ transform: rotate(180deg); color: var(--red); }}
@media (min-width: 1180px){.has-mega:hover > .elementor-widget > .mega,.has-mega:hover > .elementor-widget > .elementor-widget-container > .mega,.has-mega:focus-within > .elementor-widget > .mega,.has-mega:focus-within > .elementor-widget > .elementor-widget-container > .mega,.has-mega.is-open > .elementor-widget > .mega,.has-mega.is-open > .elementor-widget > .elementor-widget-container > .mega{ opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition-delay: 60ms, 60ms, 0s; }}
@media (min-width: 1180px){.has-mega.is-closed > .elementor-widget > .mega,.has-mega.is-closed > .elementor-widget > .elementor-widget-container > .mega{ opacity: 0; visibility: hidden; pointer-events: none; }}
@media (min-width: 1180px){.elementor-widget:has(> .mega__ico, > .elementor-widget-container > .mega__ico){flex: none}}
@media (min-width: 1180px){.e-con.e-flex.mega__ico{flex: none}}
@media (min-width: 1180px){.e-con.e-flex.mega__aside{flex-direction: column}}
@media (min-width: 1180px){.mega__aside .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){margin-top: auto}}
.footer-shell > .elementor-widget > .site-footer,.footer-shell > .elementor-widget > .elementor-widget-container > .site-footer{ margin: 0; }
.cta-wrap > .elementor-widget > .cta-band,.cta-wrap > .elementor-widget > .elementor-widget-container > .cta-band{ margin: 0; }
@media (min-width: 761px){.cta-band--photo > .elementor-widget > img,.cta-band--photo > .elementor-widget > .elementor-widget-container > img{ inset: 0 0 0 auto; width: auto; max-width: none; height: 100%; aspect-ratio: 1600 / 1162; object-position: right center; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%); mask-image: linear-gradient(90deg, transparent 0%, #000 34%); }}
@media (min-width: 761px) and (max-width: 1099px){.cta-band--photo > .elementor-widget > img,.cta-band--photo > .elementor-widget > .elementor-widget-container > img{ width: 62%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 88% center; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%); mask-image: linear-gradient(90deg, transparent 0%, #000 22%); }}
@media (max-width: 760px){.cta-band--photo > .elementor-widget > img,.cta-band--photo > .elementor-widget > .elementor-widget-container > img{ height: auto; aspect-ratio: 1600 / 1162; object-position: right center; -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%); mask-image: linear-gradient(180deg, #000 78%, transparent 100%); }}
.e-con.e-flex.why7__card--google,.e-con.e-flex.why7__card--seals{flex-direction: column}
.elementor-widget:has(> .why7__card--google, > .elementor-widget-container > .why7__card--google){grid-area: g}
.elementor-widget:has(> .why7__card--seals, > .elementor-widget-container > .why7__card--seals){grid-area: s}
.elementor-widget:has(> .why7__go, > .elementor-widget-container > .why7__go){margin-top: auto}
.elementor-widget:has(> .why7__card--elena, > .elementor-widget-container > .why7__card--elena){grid-area: e}
.e-con.e-flex.why7__card--elena{flex-direction: column}
.why7__years .elementor-widget:has(> span, > .elementor-widget-container > span){flex-basis: 100%}
.why7__years span.e-con.e-flex{flex-basis: 100%}
.elementor-widget:has(> .why7__portrait, > .elementor-widget-container > .why7__portrait){margin-top: auto}
.e-con.e-flex.why7__usps{flex-direction: column}
.elementor-widget:has(> .why7__usps--a, > .elementor-widget-container > .why7__usps--a){grid-area: u1}
.elementor-widget:has(> .why7__usps--b, > .elementor-widget-container > .why7__usps--b){grid-area: u2}
.elementor-widget:has(> .why7__loc, > .elementor-widget-container > .why7__loc){grid-area: l}
.e-con.e-flex.why7__loc{flex-direction: column}
.why7__usps .elementor-widget:has(> li, > .elementor-widget-container > li) + .elementor-widget > li,.why7__usps .elementor-widget:has(> li, > .elementor-widget-container > li) + .elementor-widget > .elementor-widget-container > li{ border-top: 1px solid var(--line); }
.elementor-widget:has(> .pf__gift, > .elementor-widget-container > .pf__gift){display:none}
@media (min-width: 1000px){.elementor-widget:has(> .pf__gift, > .elementor-widget-container > .pf__gift){display:block}}
@media (min-width: 1000px){.pf__gift > .elementor-widget > .icon,.pf__gift > .elementor-widget > .elementor-widget-container > .icon{ width: 18px; height: 18px; margin-left: auto; flex: none; color: var(--red); transition: transform .3s var(--ease-out); }}
@media (min-width: 1000px){.pf__gift > .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){margin-left: auto;flex: none}}
@media (min-width: 1000px){.pf__gift > .e-con.e-flex.icon{flex: none}}
@media (min-width: 1000px){.pf__gift:hover > .elementor-widget > .icon,.pf__gift:hover > .elementor-widget > .elementor-widget-container > .icon{ transform: translateX(3px); }}
.elementor-widget:has(> .section--white, > .elementor-widget-container > .section--white) + .elementor-widget > .section--white,.elementor-widget:has(> .section--white, > .elementor-widget-container > .section--white) + .elementor-widget > .elementor-widget-container > .section--white{ --wt: 0px; }
@media (min-width: 1080px){.hero-ac .hero2__grid > .elementor-widget > .hero-portrait--video,.hero-ac .hero2__grid > .elementor-widget > .elementor-widget-container > .hero-portrait--video{ width: calc(100% + 3rem); max-width: none; margin: 0 0 0 -3rem; }}
@media (min-width: 700px) and (max-width: 1099px){.footer-grid > .elementor-widget > .footer-brand,.footer-grid > .elementor-widget > .elementor-widget-container > .footer-brand{ grid-column: 1 / 3; }}
@media (min-width: 700px) and (max-width: 1099px){.footer-grid > .elementor-widget:has(> .footer-brand, > .elementor-widget-container > .footer-brand){grid-column: 1 / 3}}
@media (max-width: 599px){.footer-grid > .elementor-widget:last-child > .footer-col:last-child,.footer-grid > .elementor-widget:last-child > .elementor-widget-container > .footer-col:last-child{ grid-column: 1 / -1; }}
@media (max-width: 599px){.footer-grid > .elementor-widget:has(> .footer-col:last-child, > .elementor-widget-container > .footer-col:last-child){grid-column: 1 / -1}}
.elementor-widget:has(> .footer-giant__studio, > .elementor-widget-container > .footer-giant__studio){display:none}
@media (min-width: 1100px){.elementor-widget:has(> .footer-giant__studio, > .elementor-widget-container > .footer-giant__studio){display:block}}
.section-head--split > .elementor-widget > .phead__side,.section-head--split > .elementor-widget > .elementor-widget-container > .phead__side{ max-width: 46ch; display: grid; justify-items: start; gap: .9rem; }
.elementor-widget:has(> .wordloop__group, > .elementor-widget-container > .wordloop__group){flex: none}
.e-con.e-flex.wordloop__group{flex: none}
.wordloop__group .elementor-widget:has(> span, > .elementor-widget-container > span){flex: none}
.wordloop__group span.e-con.e-flex{flex: none}
.elementor-widget:has(> .footer-bottom__note, > .elementor-widget-container > .footer-bottom__note){grid-column: 1 / -1}
.footer-bottom .elementor-widget:has(> .pay-accept, > .elementor-widget-container > .pay-accept){justify-self: end}
.footer-bottom .elementor-widget:has(> .credit, > .elementor-widget-container > .credit){justify-self: end}
@media (max-width: 699px){.footer-bottom .elementor-widget:has(> .pay-accept, > .elementor-widget-container > .pay-accept){justify-self: start}}
@media (max-width: 699px){.footer-bottom .elementor-widget:has(> .credit, > .elementor-widget-container > .credit){justify-self: start}}
.footer-bottom .elementor-widget:has(> .footer-legal, > .elementor-widget-container > .footer-legal){align-self: center}
.footer-bottom .elementor-widget:has(> .pay-accept, > .elementor-widget-container > .pay-accept){align-self: center}
.elementor-widget:has(> .store__logo, > .elementor-widget-container > .store__logo){flex: none}
.e-con.e-flex.store__logo{flex: none}
.phero--center .elementor-widget:has(> .hero2__title, > .elementor-widget-container > .hero2__title){margin-inline: auto}
.phero--center .elementor-widget:has(> .hero2__lead, > .elementor-widget-container > .hero2__lead){margin-inline: auto}
@media (max-width: 1079px){.phero .elementor-widget:has(> .hero-portrait--video, > .elementor-widget-container > .hero-portrait--video){margin-inline: auto}}
.shead > .elementor-widget > div,.shead > .elementor-widget > .elementor-widget-container > div{ flex: 1 1 420px; max-width: 720px; }
.shead > .elementor-widget:has(> div, > .elementor-widget-container > div){flex: 1 1 420px}
.shead > div.e-con.e-flex{flex: 1 1 420px}
.shead .elementor-widget:has(> .lead, > .elementor-widget-container > .lead){flex: 0 1 auto}
.shead .e-con.e-flex.lead{flex: 0 1 46ch}
.e-con.e-flex.shead--center{flex-direction: column}
.shead--center > .elementor-widget > div,.shead--center > .elementor-widget > .elementor-widget-container > div{ flex: 0 0 auto; }
.shead--center > .elementor-widget:has(> div, > .elementor-widget-container > div){flex: 0 0 auto}
.shead--center .elementor-widget:has(> .lead, > .elementor-widget-container > .lead){flex: 0 0 auto}
.shead--center > div.e-con.e-flex,.shead--center .e-con.e-flex.lead{flex: 0 0 auto}
.shead--center .elementor-widget:has(> .lead, > .elementor-widget-container > .lead){margin-inline: auto}
.elementor-widget:has(> .icard, > .elementor-widget-container > .icard){display:block}
.e-con.e-flex.icard{flex-direction: column}
.elementor-widget:has(> .icard__go, > .elementor-widget-container > .icard__go){margin-top: auto}
@media (min-width: 1000px){.expert--rev .elementor-widget:has(> .expert__media, > .elementor-widget-container > .expert__media){order: -1}}
.expert__copy > .elementor-widget > p + p,.expert__copy > .elementor-widget > .elementor-widget-container > p + p,.expert__copy > .elementor-widget:has(> p, > .elementor-widget-container > p) + .elementor-widget > p,.expert__copy > .elementor-widget:has(> p, > .elementor-widget-container > p) + .elementor-widget > .elementor-widget-container > p{ margin-top: -.6rem; }
.elementor-widget:has(> .prose-card, > .elementor-widget-container > .prose-card){margin-inline: auto}
.prose-card > .elementor-widget:first-child > :first-child,.prose-card > .elementor-widget:first-child > .elementor-widget-container > :first-child{ margin-top: 0; }
.elementor-widget:has(> .notebox, > .elementor-widget-container > .notebox){display:block}
.notebox .elementor-widget:has(> .irows__ico, > .elementor-widget-container > .irows__ico){flex: none}
.notebox .e-con.e-flex.irows__ico{flex: none}
.e-con.e-flex.tline__item{flex-direction: column}
.tline__item .elementor-widget:has(> .link-arrow, > .elementor-widget-container > .link-arrow){margin-top: auto;align-self: flex-start}
.elementor-widget:has(> .hours2__status, > .elementor-widget-container > .hours2__status){margin-top: auto}
.e-con.e-flex.bcard{flex-direction: column}
.elementor-widget:has(> .bcard__body, > .elementor-widget-container > .bcard__body){flex: 1}
.e-con.e-flex.bcard__body{flex-direction: column;flex: 1}
.elementor-widget:has(> .bcard__go, > .elementor-widget-container > .bcard__go){margin-top: auto}
@media (max-width: 599px){.faqnav .elementor-widget:has(> a, > .elementor-widget-container > a){flex: 1 1 45%}}
@media (max-width: 599px){.faqnav a.e-con.e-flex{flex: 1 1 45%}}
.elementor-widget:has(> .notebox[hidden], > .elementor-widget-container > .notebox[hidden]){display:none}
.elementor-widget:has(> .icard[hidden], > .elementor-widget-container > .icard[hidden]){display:none}
.elementor-widget:has(> .tcard[hidden], > .elementor-widget-container > .tcard[hidden]){display:none}
.products--lux .product__media > .elementor-widget > .icon,.products--lux .product__media > .elementor-widget > .elementor-widget-container > .icon{ width: 64px; height: 64px; padding: 16px; border-radius: 50%; background: var(--silver); color: var(--red); box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c3c6ca, 0 12px 24px -14px rgba(40,42,46,.5); }
.regions .elementor-widget:has(> .icard, > .elementor-widget-container > .icard){display:block}
@media (min-width: 900px){.regions .icard > .elementor-widget > .citylist,.regions .icard > .elementor-widget > .elementor-widget-container > .citylist{ grid-column: 2; grid-row: 1 / span 2; margin: 0; }}
@media (min-width: 900px){.regions .icard > .elementor-widget:has(> .citylist, > .elementor-widget-container > .citylist){grid-column: 2;grid-row: 1 / span 2}}
.citylist .elementor-widget:has(> small, > .elementor-widget-container > small){flex: none}
.citylist small.e-con.e-flex{flex: none}
.elementor-widget:has(> .fu-hint__badge, > .elementor-widget-container > .fu-hint__badge){flex: none}
.e-con.e-flex.fu-hint__badge{flex: none}
.elementor-widget:has(> .fu-hint__text, > .elementor-widget-container > .fu-hint__text){flex: 1 1 320px}
.e-con.e-flex.fu-hint__text{flex: 1 1 320px}
.elementor-widget:has(> .fu-hint__go, > .elementor-widget-container > .fu-hint__go){margin-left: auto}
.elementor-widget:has(> .cityfind__ico, > .elementor-widget-container > .cityfind__ico){flex: none}
.e-con.e-flex.cityfind__ico{flex: none}
.cityfind .elementor-widget:has(> input, > .elementor-widget-container > input){flex: 1 1 auto}
.cityfind input.e-con.e-flex{flex: 1 1 auto}
.elementor-widget:has(> .cityfind__count, > .elementor-widget-container > .cityfind__count){flex: none}
.e-con.e-flex.cityfind__count{flex: none}
.regions .elementor-widget:has(> .icard[hidden], > .elementor-widget-container > .icard[hidden]){display:none}
@media (max-width: 479px){.elementor-widget:has(> .cityfind__count, > .elementor-widget-container > .cityfind__count){display:none}}
.article-layout > .elementor-widget > .prose-card,.article-layout > .elementor-widget > .elementor-widget-container > .prose-card{ width: 100%; }
@media (max-width: 359px){.header-actions .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){display:none}}
@media (max-width: 359px){.mbar__item > .elementor-widget:last-child > span:last-child,.mbar__item > .elementor-widget:last-child > .elementor-widget-container > span:last-child{ white-space: nowrap; }}
.elementor-widget:has(> .bb-confirm, > .elementor-widget-container > .bb-confirm){margin-inline: auto}
.elementor-widget:has(> .bb-confirm__seal, > .elementor-widget-container > .bb-confirm__seal){flex: none}
.e-con.e-flex.bb-confirm__seal{flex: none}
.bb-confirm__ssa > .elementor-widget > p,.bb-confirm__ssa > .elementor-widget > .elementor-widget-container > p{ margin: 0; max-width: 62ch; font-size: 1.02rem; line-height: 1.7; }
.elementor-widget:has(> .bc-logo, > .elementor-widget-container > .bc-logo){display:block}
.elementor-widget:has(> .bc-gallery, > .elementor-widget-container > .bc-gallery){display:block}
.elementor-widget:has(> .bc-gallery__item--big, > .elementor-widget-container > .bc-gallery__item--big){grid-column: span 2;grid-row: span 2}
.elementor-widget:has(> .bc-gallery__item--wide, > .elementor-widget-container > .bc-gallery__item--wide){grid-column: span 2}
@media (max-width: 760px){.elementor-widget:has(> .bc-logo, > .elementor-widget-container > .bc-logo){display:none}}
@media (max-width: 760px){.elementor-widget:has(> .bc-gallery__item--big, > .elementor-widget-container > .bc-gallery__item--big){grid-column: auto;grid-row: auto}}
@media (max-width: 760px){.elementor-widget:has(> .bc-gallery__item--wide, > .elementor-widget-container > .bc-gallery__item--wide){grid-column: auto;grid-row: auto}}
.elementor-widget:has(> .bcmap-legend__dot, > .elementor-widget-container > .bcmap-legend__dot){flex: none}
.e-con.e-flex.bcmap-legend__dot{flex: none}
@media (max-width: 560px){.elementor-widget:has(> .bcmap__tag--esc, > .elementor-widget-container > .bcmap__tag--esc){display:none}}
.elementor-widget:has(> .ingr, > .elementor-widget-container > .ingr){display:block}
.e-con.e-flex.ingr__card{flex-direction: column}
.elementor-widget:has(> .ingr__body, > .elementor-widget-container > .ingr__body){flex: 1}
.e-con.e-flex.ingr__body{flex-direction: column;flex: 1}
@media (max-width: 400px){.elementor-widget:has(> .bcmap__tag--wc, > .elementor-widget-container > .bcmap__tag--wc){display:none}}
@media (max-width: 760px){.cta-band__alt > .elementor-widget > span,.cta-band__alt > .elementor-widget > .elementor-widget-container > span{ display: none; }}
@media (min-width: 761px) and (max-width: 999px){.cta-band--rich.cta-band--photo > .elementor-widget > img,.cta-band--rich.cta-band--photo > .elementor-widget > .elementor-widget-container > img{ position: relative; inset: auto; width: 100%; max-width: none; height: 430px; aspect-ratio: auto; object-fit: cover; object-position: right 22%; -webkit-mask-image: linear-gradient(180deg, #000 80%, transparent 100%); mask-image: linear-gradient(180deg, #000 80%, transparent 100%); }}
@media (max-width: 480px){.fu-only > .elementor-widget > span[aria-hidden],.fu-only > .elementor-widget > .elementor-widget-container > span[aria-hidden]{ display: none; }}
.sgc__k .elementor-widget:has(> small, > .elementor-widget-container > small){flex-basis: 100%}
.sgc__k small.e-con.e-flex{flex-basis: 100%}
.elementor-widget:has(> .sgc__n, > .elementor-widget-container > .sgc__n){flex: none}
.e-con.e-flex.sgc__n{flex: none}
.sgc__tip .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.sgc__tip .e-con.e-flex.icon{flex: none}
.e-con.e-flex.sg__t{flex-direction: column}
.elementor-widget:has(> .sgc__pkgs, > .elementor-widget-container > .sgc__pkgs){display:block}
@media (max-width: 640px){.elementor-widget:has(> .sgc__pkg-price, > .elementor-widget-container > .sgc__pkg-price){grid-column: 2}}
.elementor-widget:has(> .sgc__incl, > .elementor-widget-container > .sgc__incl){display:none}
@media (min-width: 901px){.e-con.e-flex.sgc__pick{flex-direction: column}}
@media (min-width: 901px){.elementor-widget:has(> .sgc__incl, > .elementor-widget-container > .sgc__incl){flex: 1;display:block}}
@media (min-width: 901px){.e-con.e-flex.sgc__incl{flex: 1;flex-direction: column}}
@media (min-width: 901px){.sgc__incl .elementor-widget:has(> ul, > .elementor-widget-container > ul){flex: 1}}
@media (min-width: 901px){.sgc__incl ul.e-con.e-flex{flex: 1}}
@media (min-width: 901px){.elementor-widget:has(> .sgc__incl-ico, > .elementor-widget-container > .sgc__incl-ico){flex: none}}
@media (min-width: 901px){.e-con.e-flex.sgc__incl-ico{flex: none}}
@media (min-width: 901px){.elementor-widget:has(> .sgc__incl-go, > .elementor-widget-container > .sgc__incl-go){align-self: flex-start;display:block}}
@media (min-width: 901px) and (max-width: 1359px){.elementor-widget:has(> .sgc__incl-go, > .elementor-widget-container > .sgc__incl-go){display:none}}
@media (min-width: 901px) and (max-width: 1359px){.sgc__incl li > .elementor-widget:last-child > span:last-child,.sgc__incl li > .elementor-widget:last-child > .elementor-widget-container > span:last-child{ font-size: 0; }}
@media (max-width: 640px){.elementor-widget:has(> .sgc__mode-btn, > .elementor-widget-container > .sgc__mode-btn){flex: 1 1 auto}}
@media (max-width: 640px){.e-con.e-flex.sgc__mode-btn{flex: 1 1 auto}}
.elementor-widget:has(> .sgc__pkgs[hidden], > .elementor-widget-container > .sgc__pkgs[hidden]){display:none}
@media (min-width: 901px){.elementor-widget:has(> .sgc__incl--mc, > .elementor-widget-container > .sgc__incl--mc){display:none}}
@media (min-width: 901px){.sgc.is-mc .elementor-widget:has(> .sgc__incl:not(.sgc__incl--mc), > .elementor-widget-container > .sgc__incl:not(.sgc__incl--mc)){display:none}}
@media (min-width: 901px){.sgc.is-mc .elementor-widget:has(> .sgc__incl--mc, > .elementor-widget-container > .sgc__incl--mc){display:block}}
.sgc__head .elementor-widget:has(> .sgc__k, > .elementor-widget-container > .sgc__k){flex: 1 1 17rem}
.sgc__head .e-con.e-flex.sgc__k{flex: 1 1 17rem}
.sgc__head .elementor-widget:has(> .sgc__mode, > .elementor-widget-container > .sgc__mode){flex: 0 0 auto}
.sgc__head .e-con.e-flex.sgc__mode{flex: 0 0 auto}
@media (max-width: 640px){.sgc__head .elementor-widget:has(> .sgc__mode, > .elementor-widget-container > .sgc__mode){flex: 1 1 100%}}
@media (max-width: 640px){.sgc__head .e-con.e-flex.sgc__mode{flex: 1 1 100%}}
.sgc__res > .elementor-widget > .sgc__k,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__k{ order: 0; }
.sgc__res > .elementor-widget:has(> .sgc__k, > .elementor-widget-container > .sgc__k){order: 0}
.sgc__info .elementor-widget:has(> .sgc__cmp, > .elementor-widget-container > .sgc__cmp){order: 1}
.sgc__res > .elementor-widget > .sgc__smile,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__smile{ order: 2; }
.sgc__res > .elementor-widget:has(> .sgc__smile, > .elementor-widget-container > .sgc__smile){order: 2}
.sgc__info .elementor-widget:has(> .sgc__say, > .elementor-widget-container > .sgc__say){order: 3}
.sgc__info .elementor-widget:has(> .sgc__cta, > .elementor-widget-container > .sgc__cta){order: 4}
@media (min-width: 1180px){.elementor-widget:has(> .sgc__pkg-meta, > .elementor-widget-container > .sgc__pkg-meta){display:none}}
@media (min-width: 1180px){.elementor-widget:has(> .sgc__incl, > .elementor-widget-container > .sgc__incl){display:none}}
@media (min-width: 1180px){.sgc__res > .elementor-widget > .sgc__k,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__k{ grid-area: k; }}
@media (min-width: 1180px){.sgc__res > .elementor-widget:has(> .sgc__k, > .elementor-widget-container > .sgc__k){grid-area: k}}
@media (min-width: 1180px){.sgc__res > .elementor-widget > .sgc__smile,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__smile{ grid-area: smile; }}
@media (min-width: 1180px){.sgc__res > .elementor-widget:has(> .sgc__smile, > .elementor-widget-container > .sgc__smile){grid-area: smile}}
@media (min-width: 1180px){.elementor-widget:has(> .sgc__info, > .elementor-widget-container > .sgc__info){grid-area: info}}
@media (min-width: 1180px){.e-con.e-flex.sgc__cta{flex-direction: column}}
@media (min-width: 1180px){.sgc__cta .elementor-widget:has(> .link-arrow, > .elementor-widget-container > .link-arrow){align-self: center}}
@media (min-width: 1180px) and (min-height: 960px){.elementor-widget:has(> .sgc__pkg-meta, > .elementor-widget-container > .sgc__pkg-meta){display:block}}
.sgc__big figcaption > .elementor-widget > span,.sgc__big figcaption > .elementor-widget > .elementor-widget-container > span{ align-self: end; line-height: 1.3; }
.sgc__big figcaption > .elementor-widget:has(> span, > .elementor-widget-container > span){align-self: end}
@media (min-width: 1180px){.sgc__res > .elementor-widget > .sgc__k,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__k,.sgc__pick > .elementor-widget > .sgc__k,.sgc__pick > .elementor-widget > .elementor-widget-container > .sgc__k{ margin-bottom: clamp(.8rem, 1.8vh, 1.2rem); }}
@media (min-width: 1180px){.sgc__res > .elementor-widget > .sgc__smile,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__smile{ width: 100%; justify-self: stretch; align-self: stretch; height: auto; }}
@media (min-width: 1180px){.sgc__res > .elementor-widget:has(> .sgc__smile, > .elementor-widget-container > .sgc__smile){justify-self: stretch;align-self: stretch}}
@media (min-width: 1180px){.e-con.e-flex.sgc__info{flex-direction: column}}
@media (min-width: 1180px){.sgc__info .elementor-widget:has(> .sgc__cta, > .elementor-widget-container > .sgc__cta){margin-top: auto}}
@media (min-width: 1180px){.e-con.e-flex.sgc__pick{flex-direction: column}}
@media (min-width: 1180px){.sgc__pick .elementor-widget:has(> .sgc__pkgs:not([hidden]), > .elementor-widget-container > .sgc__pkgs:not([hidden])){flex: 1}}
@media (min-width: 1180px){.sgc__pick .e-con.e-flex.sgc__pkgs:not([hidden]){flex: 1}}
.fr-check li > .elementor-widget > .icon,.fr-check li > .elementor-widget > .elementor-widget-container > .icon{ box-sizing: content-box; width: 14px; height: 14px; margin-top: .1rem; padding: 5px; border-radius: 50%; background: rgba(200,16,46,.08); color: var(--red); box-shadow: inset 0 0 0 1px rgba(200,16,46,.2); }
.elementor-widget:has(> .fr-steps, > .elementor-widget-container > .fr-steps){display:block}
.elementor-widget:has(> .fr-cta__in, > .elementor-widget-container > .fr-cta__in){display:block}
.fr-cta__in > .elementor-widget > img,.fr-cta__in > .elementor-widget > .elementor-widget-container > img{ position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fr-cta__in > .elementor-widget > .container,.fr-cta__in > .elementor-widget > .elementor-widget-container > .container{ width: 100%; }
.elementor-widget:has(> .fr-cta, > .elementor-widget-container > .fr-cta) + .elementor-widget > .section,.elementor-widget:has(> .fr-cta, > .elementor-widget-container > .fr-cta) + .elementor-widget > .elementor-widget-container > .section{ margin-top: 0; }
@media (max-width: 1000px){.elementor-widget:has(> .fr-pack__media, > .elementor-widget-container > .fr-pack__media){grid-column: 1 / -1}}
@media (max-width: 1000px){.elementor-widget:has(> .fr-steps__item:last-child, > .elementor-widget-container > .fr-steps__item:last-child){grid-column: 1 / -1}}
@media (max-width: 760px){.elementor-widget:has(> .fr-steps__ico, > .elementor-widget-container > .fr-steps__ico){grid-row: span 2}}
@media (max-width: 760px){.fr-steps .elementor-widget:has(> h3, > .elementor-widget-container > h3){align-self: end}}
@media (max-width: 760px){.e-con.e-flex.fr-cta__in{flex-direction: column}}
@media (max-width: 760px){.fr-cta__in > .elementor-widget > img,.fr-cta__in > .elementor-widget > .elementor-widget-container > img{ position: relative; inset: auto; height: 240px; z-index: 0; }}
.elementor-widget:has(> .ezg-facts__ico, > .elementor-widget-container > .ezg-facts__ico){flex: none}
.e-con.e-flex.ezg-facts__ico{flex: none}
.fr-next li > .elementor-widget > span,.fr-next li > .elementor-widget > .elementor-widget-container > span{ display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--silver); color: var(--red); font-family: var(--font-head); font-size: .85rem; font-weight: 700; box-shadow: inset 0 1px 0 #fff, 0 0 0 1px #c9ccd1, 0 8px 16px -10px rgba(68,70,74,.5); }
.fr-fcard .elementor-widget:has(> .field__error:empty, > .elementor-widget-container > .field__error:empty){display:none}
.fr-input-ico > .elementor-widget > .icon,.fr-input-ico > .elementor-widget > .elementor-widget-container > .icon{ position: absolute; left: .95rem; top: 50%; width: 17px; height: 17px; translate: 0 -50%; color: var(--red); pointer-events: none; }
.fr-seg .elementor-widget:has(> input:checked, > .elementor-widget-container > input:checked) + .elementor-widget > span,.fr-seg .elementor-widget:has(> input:checked, > .elementor-widget-container > input:checked) + .elementor-widget > .elementor-widget-container > span{ background: rgba(200,16,46,.06); box-shadow: inset 0 0 0 2px var(--red); color: var(--grey-700); }
.fr-seg .elementor-widget:has(> input:focus-visible, > .elementor-widget-container > input:focus-visible) + .elementor-widget > span,.fr-seg .elementor-widget:has(> input:focus-visible, > .elementor-widget-container > input:focus-visible) + .elementor-widget > .elementor-widget-container > span{ outline: 2px solid var(--grey-700); outline-offset: 2px; }
.fr-fcard__hint .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.fr-fcard__hint .e-con.e-flex.icon{flex: none}
@media (max-width: 760px){body:not(.db-aktion-aus) .hero2:not(.phero) .hero2__copy .elementor-widget:has(> .actions, > .elementor-widget-container > .actions){display:none}}
.ab-note > .elementor-widget > .icon,.ab-note > .elementor-widget > .elementor-widget-container > .icon{ flex: none; width: 20px; height: 20px; margin-top: .15rem; color: var(--red); }
.ab-note > .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.ab-note > .e-con.e-flex.icon{flex: none}
.elementor-widget:has(> .product__media--photo, > .elementor-widget-container > .product__media--photo) + .elementor-widget > .product__body,.elementor-widget:has(> .product__media--photo, > .elementor-widget-container > .product__media--photo) + .elementor-widget > .elementor-widget-container > .product__body{ align-items: center; text-align: center; }
.elementor-widget:has(> .product__media--photo, > .elementor-widget-container > .product__media--photo) + .elementor-widget > .product__body .product__price,.elementor-widget:has(> .product__media--photo, > .elementor-widget-container > .product__media--photo) + .elementor-widget > .elementor-widget-container > .product__body .product__price{ justify-content: center; }
.elementor-widget:has(> .product__media--photo, > .elementor-widget-container > .product__media--photo) + .elementor-widget > .product__body .btn,.elementor-widget:has(> .product__media--photo, > .elementor-widget-container > .product__media--photo) + .elementor-widget > .elementor-widget-container > .product__body .btn{ align-self: stretch; }
.product__media--photo + .product__body .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){align-self: stretch}
.zs-note .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.zs-note .e-con.e-flex.icon{flex: none}
.zs-guarantee .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.zs-guarantee .e-con.e-flex.icon{flex: none}
.zs-grillz__partner .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.zs-grillz__partner .e-con.e-flex.icon{flex: none}
.zs-grillz__piece .elementor-widget:has(> img, > .elementor-widget-container > img){margin-inline: auto}
@media (max-width: 599px){.elementor-widget:has(> .zs-grillz__piece, > .elementor-widget-container > .zs-grillz__piece){grid-column: 1 / -1;justify-self: center}}
@media (min-width: 1000px){.elementor-widget:has(> .zk__stage, > .elementor-widget-container > .zk__stage){grid-area: stage}}
@media (min-width: 1000px){.elementor-widget:has(> .zk__panel, > .elementor-widget-container > .zk__panel){grid-area: panel}}
@media (min-width: 1000px){.elementor-widget:has(> .zk__sum, > .elementor-widget-container > .zk__sum){grid-area: sum;justify-self: center}}
.elementor-widget:has(> .zk__frame, > .elementor-widget-container > .zk__frame){margin-inline: auto}
.elementor-widget:has(> .zk__tooth[hidden], > .elementor-widget-container > .zk__tooth[hidden]){display:none}
.zk__k > .elementor-widget > span,.zk__k > .elementor-widget > .elementor-widget-container > span{ flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--red-grad); color: #fff; font-size: .78rem; font-weight: 700; }
.zk__k > .elementor-widget:has(> span, > .elementor-widget-container > span){flex: none}
.zk__k > span.e-con.e-flex{flex: none}
.zk__k .elementor-widget:has(> em, > .elementor-widget-container > em){margin-left: auto}
@media (max-width: 599px){.zk__row .zk__k > .elementor-widget > span,.zk__row .zk__k > .elementor-widget > .elementor-widget-container > span{ width: 22px; height: 22px; font-size: .7rem; }}
@media (max-width: 379px){.zk__row .zk__k > .elementor-widget > span,.zk__row .zk__k > .elementor-widget > .elementor-widget-container > span{ width: 20px; height: 20px; }}
.elementor-widget:has(> .zk__tabs, > .elementor-widget-container > .zk__tabs){display:block}
.elementor-widget:has(> .zk__tabs[hidden], > .elementor-widget-container > .zk__tabs[hidden]){display:none}
.zk__tabs .elementor-widget:has(> button, > .elementor-widget-container > button){flex: 1}
.zk__tabs button.e-con.e-flex{flex: 1}
.zk__rows .elementor-widget:has(> strong, > .elementor-widget-container > strong){flex: none}
.zk__rows strong.e-con.e-flex{flex: none}
.zk__note .elementor-widget:has(> .icon, > .elementor-widget-container > .icon){flex: none}
.zk__note .e-con.e-flex.icon{flex: none}
.zk__actions .elementor-widget:has(> .btn, > .elementor-widget-container > .btn){flex: 1 1 200px}
.zk__actions .e-con.e-flex.btn{flex: 1 1 200px}
@media (prefers-reduced-motion: reduce){.elementor-widget:has(> .zk__glint, > .elementor-widget-container > .zk__glint){display:none}}
.sgc__res > .elementor-widget > .sgc__reshead,.sgc__res > .elementor-widget > .elementor-widget-container > .sgc__reshead{ margin-bottom: .9rem; }
.elementor-widget:has(> .pf__cfg-btn, > .elementor-widget-container > .pf__cfg-btn){grid-column: 1 / -1;justify-self: stretch}
@media (min-width: 760px){.elementor-widget:has(> .pf__cfg-btn, > .elementor-widget-container > .pf__cfg-btn){grid-column: auto;justify-self: end}}
@media (max-width: 899px){.js [data-rail] > .elementor-widget > .reveal,.js [data-rail] > .elementor-widget > .elementor-widget-container > .reveal{ opacity: 1; transform: none; transition: none; }}
/* Flex-Kinder mit Breite in Zeichen (z. B. 46ch): Hülle auf der Website durchsichtig */
body:not(.elementor-editor-active) .shead .elementor-widget:has(> .lead, > .elementor-widget-container > .lead),body:not(.elementor-editor-active) .shead .elementor-widget:has(> .lead, > .elementor-widget-container > .lead) > .elementor-widget-container{display:contents}

/* Button-Icons (generiert) */
:root{--db-ico-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");--db-ico-bag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 13H6z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E");--db-ico-gift:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='9' width='18' height='12' rx='1'/%3E%3Cpath d='M3 13h18M12 9v12M12 9c-2-4-6-4-6-1s6 1 6 1zm0 0c2-4 6-4 6-1s-6 1-6 1z'/%3E%3C/svg%3E");--db-ico-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");--db-ico-whatsapp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.3-4A8 8 0 1 1 8 18.7z'/%3E%3Cpath d='M9 9.5c.3 2 2.3 4.2 4.5 4.7l1-1.2 1.8.8c-.2 1.2-1.1 1.8-2.3 1.7C10.5 15 8.2 12.6 8 9.7c0-1.1.6-1.9 1.7-2.1l.8 1.8z'/%3E%3C/svg%3E");}
body .db-ico-arrow .elementor-button-text::after, body .db-ico-before.db-ico-arrow .elementor-button-text::before{-webkit-mask-image:var(--db-ico-arrow);mask-image:var(--db-ico-arrow)}
body .db-ico-bag .elementor-button-text::after, body .db-ico-before.db-ico-bag .elementor-button-text::before{-webkit-mask-image:var(--db-ico-bag);mask-image:var(--db-ico-bag)}
body .db-ico-gift .elementor-button-text::after, body .db-ico-before.db-ico-gift .elementor-button-text::before{-webkit-mask-image:var(--db-ico-gift);mask-image:var(--db-ico-gift)}
body .db-ico-pin .elementor-button-text::after, body .db-ico-before.db-ico-pin .elementor-button-text::before{-webkit-mask-image:var(--db-ico-pin);mask-image:var(--db-ico-pin)}
body .db-ico-whatsapp .elementor-button-text::after, body .db-ico-before.db-ico-whatsapp .elementor-button-text::before{-webkit-mask-image:var(--db-ico-whatsapp);mask-image:var(--db-ico-whatsapp)}
