/* Videoberatung (Whereby Embedded) – Modal und Einstiege im Dansk-Cottage-Design (nutzt Variablen aus styles.css) */

/* Einstieg auf /webdesign/ */
.vb-offer { background: #fff; border-radius: 20px; padding: 2.6rem 2rem; text-align: center; box-shadow: 0 10px 26px rgba(20,35,90,.08); }
.vb-offer h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 800; color: var(--ink); margin: 0 0 .8rem; }
.vb-offer p { max-width: 600px; margin: 0 auto 1rem; font-size: .98rem; line-height: 1.75; color: var(--ink-soft); }
.vb-offer .wd-actions { justify-content: center; }

/* Dezenter Einstieg auf Kontakt- und Buchungsseite */
.vb-cta { max-width: 640px; margin: 2.4rem auto 0; padding: 1.6rem 1.8rem; background: #fff; border: 1px solid rgba(20,35,90,.1); border-radius: 16px; text-align: center; }
.vb-cta h2, .vb-cta h3 { font-size: 1.15rem; font-weight: 800; color: var(--ink); margin: 0 0 .5rem; }
.vb-cta p { margin: 0 auto .4rem; font-size: .92rem; line-height: 1.7; color: var(--ink-soft); }
.vb-cta .cta-button { margin-top: .6rem; }

/* Statuszeile: Standard „Videotermin vereinbaren“, nur bei Admin-Status available „Jetzt per Video erreichbar“ */
.vb-status { display: block; margin-top: .9rem; font-size: .8rem; color: var(--ink-soft); }
.vb-status a { color: var(--ink-soft); }
.vb-status:empty { display: none; }
.vb-status--available { color: #3f6a34; font-weight: 600; }
.vb-dot { display: inline-block; width: 8px; height: 8px; margin-right: .45rem; border-radius: 50%; background: var(--grass); vertical-align: 1px; }

[data-vb-only][hidden] { display: none !important; }
button.cta-button { font-family: inherit; border: none; cursor: pointer; }
button.cta-button.cta-button--ghost { border: 2px solid var(--accent); }

/* Modal */
.vb-open, .vb-open body { overflow: hidden; }
.vb-open .whatsapp-float, .vb-open .back-to-top { visibility: hidden; }
.vb-modal { position: fixed; inset: 0; z-index: 2147483647; /* wie der Cookie-Hinweis; Modal steht später im DOM und liegt damit oben */ display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.vb-modal[hidden] { display: none; }
.vb-backdrop { position: absolute; inset: 0; background: rgba(20,35,90,.55); }
.vb-dialog { position: relative; width: 100%; max-width: 620px; max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem); overflow: auto; background: var(--cream); color: var(--ink); border-radius: 20px; box-shadow: 0 24px 60px rgba(20,35,90,.3); }
.vb-dialog--video { max-width: 1100px; height: calc(100vh - 3rem); height: calc(100dvh - 3rem); display: flex; flex-direction: column; overflow: hidden; }
.vb-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem 1rem 1.8rem; background: var(--cream); border-bottom: 1px solid rgba(20,35,90,.08); }
.vb-title { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--ink); }
.vb-close { flex-shrink: 0; width: 42px; height: 42px; border: none; border-radius: 50%; background: #fff; color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(20,35,90,.12); transition: background .2s ease, color .2s ease; }
.vb-close:hover, .vb-close:focus-visible { background: var(--accent); color: #fff; outline: none; }
.vb-body { padding: 1.3rem 1.8rem 1.8rem; }
.vb-dialog--video .vb-body { flex: 1; display: flex; flex-direction: column; min-height: 0; padding: .8rem 1rem 1rem; }
.vb-intro { margin: 0 0 .4rem; font-size: .95rem; line-height: 1.7; color: var(--ink-soft); }
.vb-form { margin-top: 1rem; }
.vb-form [aria-invalid="true"] { border-color: var(--accent); }
.vb-notice { margin: .2rem 0 .8rem; padding: .9rem 1.1rem; font-size: .84rem; line-height: 1.6; color: var(--ink-soft); background: #fff; border-left: 3px solid var(--sea); border-radius: 0 10px 10px 0; }
.vb-form .form-checkbox a { color: var(--ink); font-weight: 600; }
.vb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin-top: 1rem; }
.vb-actions--center { justify-content: center; }
.vb-actions .cta-button { margin-top: 0; }
.vb-link { font-size: .88rem; font-weight: 600; color: var(--ink); }
.vb-state { padding: 2rem 0 .5rem; text-align: center; }
.vb-state p { max-width: 480px; margin: 0 auto 1.2rem; font-size: .95rem; line-height: 1.7; color: var(--ink-soft); }
.vb-state--error p { color: var(--ink); }
.vb-spinner { display: inline-block; width: 34px; height: 34px; margin-bottom: 1rem; border: 3px solid rgba(20,35,90,.15); border-top-color: var(--accent); border-radius: 50%; animation: vb-spin .9s linear infinite; }
@keyframes vb-spin { to { transform: rotate(360deg); } }
.vb-wait { margin: 0 0 .7rem; font-size: .84rem; line-height: 1.55; color: var(--ink-soft); }
.vb-wait--compact { display: none; }
.vb-note { margin: 0 0 .7rem; padding: .7rem 1rem; font-size: .84rem; line-height: 1.5; border-radius: 10px; background: rgba(204,42,42,.08); color: var(--accent); }
.vb-frame { flex: 1; min-height: 0; border-radius: 14px; overflow: hidden; background: var(--sea); }
.vb-frame iframe { display: block; width: 100%; height: 100%; border: 0; }

@media (max-width: 640px) {
  .vb-modal { padding: 0; align-items: stretch; }
  .vb-dialog { max-width: none; max-height: none; height: 100%; border-radius: 0; }
  .vb-dialog--video { height: 100vh; height: 100dvh; }
  .vb-head { padding: .7rem .8rem .7rem 1.1rem; padding-top: calc(.7rem + env(safe-area-inset-top)); }
  .vb-body { padding: 1rem 1.1rem 1.6rem; }
  .vb-dialog--video .vb-body { padding: .5rem .5rem calc(.5rem + env(safe-area-inset-bottom)); }
  .vb-frame { border-radius: 10px; }
  .vb-offer { padding: 2rem 1.3rem; }
  .vb-cta { padding: 1.4rem 1.2rem; }
}
@media (prefers-reduced-motion: reduce) { .vb-spinner { animation-duration: 2.5s; } }

/* Kurzzeilen auf Startseite und Preisseite: Textlink im Stil der umgebenden Links */
.vb-textlink { padding: 0; border: 0; background: none; font: inherit; color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.vb-textlink:hover, .vb-textlink:focus-visible { text-decoration-thickness: 2px; outline: none; }
.vb-hint { margin: 1.2rem 0 0; font-size: .88rem; color: var(--ink-soft); }
.vb-hint .vb-textlink { color: var(--ink); }
