/* NeckarByte Democenter - flow block only ([nb_democenter]); the page around it is styled by the site (Divi). MFP profile: navy #031547, blue #1d69ee, Poppins headings, Inter body (fonts come from the theme). */
.nbdc { --nbdc-navy:#031547; --nbdc-blue:#1d69ee; --nbdc-bg:#fafafa; --nbdc-line:#dfe5f2; --nbdc-text:#1b2540; --nbdc-muted:#5c6785; --nbdc-err:#b42318; --nbdc-ok:#1a7f37;
  max-width:760px; margin:0 auto; color:var(--nbdc-text); font-family:Inter,system-ui,sans-serif; line-height:1.55; }
.nbdc *, .nbdc *::before, .nbdc *::after { box-sizing:border-box; }
.nbdc h1, .nbdc h2 { font-family:Poppins,Inter,system-ui,sans-serif; color:var(--nbdc-navy); line-height:1.2; margin:0 0 .6em; }
.nbdc h1 { font-size:clamp(1.8rem,4.5vw,2.6rem); }
.nbdc h2 { font-size:1.35rem; }
.nbdc-eyebrow { display:inline-block; font:600 .8rem/1 Poppins,Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--nbdc-blue); margin-bottom:.7rem; }
.nbdc-lead { font-size:1.1rem; color:var(--nbdc-muted); }
.nbdc-card { background:#fff; border:1px solid var(--nbdc-line); border-radius:14px; padding:1.4rem 1.5rem; margin:1.2rem 0; }
.nbdc-card ul { padding-left:1.2rem; margin:.4rem 0; }
.nbdc-card li { margin:.45rem 0; }
.nbdc-muted { color:var(--nbdc-muted); font-size:.92rem; margin:1rem 0 0; }
.nbdc a { color:var(--nbdc-blue); }
.nbdc-notice { border-radius:10px; padding:.8rem 1rem; margin:1rem 0; border:1px solid; }
.nbdc-notice--ok { background:#effaf2; border-color:#b7e4c4; color:#14532d; }
.nbdc-notice--info { background:#eef3fd; border-color:#c9d8f5; color:#0b1a3a; }
.nbdc-notice--err { background:#fdf0ee; border-color:#f3c1b9; color:#7a1b12; }
.nbdc-mock { background:#fff8e1; border:1px dashed #d9b44a; border-radius:8px; padding:.55rem .8rem; font-size:.9rem; color:#6b4e00; }
.nbdc-draft { background:#fff8e1; border:1px solid #d9b44a; border-radius:8px; padding:.4rem .7rem; font-size:.85rem; color:#6b4e00; }
.nbdc-btn { display:inline-block; background:var(--nbdc-blue); color:#fff !important; border:1px solid var(--nbdc-blue); border-radius:10px; padding:.7rem 1.2rem; font:600 1rem/1.2 Inter,sans-serif; cursor:pointer; text-decoration:none; }
.nbdc-btn:hover { background:#1556c4; border-color:#1556c4; }
.nbdc-btn--ghost { background:transparent; color:var(--nbdc-navy) !important; border-color:var(--nbdc-line); }
.nbdc-btn--ghost:hover { background:#f1f4fb; border-color:#c5cfe6; }
.nbdc-actions { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.nbdc-form input[type=text], .nbdc-form input[type=email], .nbdc-form input[type=tel], .nbdc-form select, .nbdc-form textarea {
  width:100%; border:1px solid var(--nbdc-line); border-radius:9px; padding:.6rem .75rem; font:inherit; background:#fff; color:inherit; }
.nbdc-form input:focus, .nbdc-form select:focus, .nbdc-form textarea:focus, .nbdc-btn:focus-visible { outline:2px solid var(--nbdc-blue); outline-offset:1px; }
.nbdc-form--inline { display:flex; flex-wrap:wrap; gap:.6rem; align-items:stretch; }
.nbdc-form--inline input[type=email] { flex:1 1 240px; }
.nbdc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem 1rem; margin-bottom:1rem; }
.nbdc-field { display:block; margin:0 0 1rem; border:0; padding:0; min-width:0; }
.nbdc-grid .nbdc-field { margin:0; }
.nbdc-field > span, .nbdc-field > legend { display:block; font-weight:600; margin-bottom:.3rem; padding:0; }
.nbdc-field abbr { color:var(--nbdc-err); text-decoration:none; }
.nbdc-field small { font-weight:400; color:var(--nbdc-muted); }
.nbdc-err { display:block; color:var(--nbdc-err); font-size:.88rem; margin-top:.25rem; }
.nbdc-check { display:inline-flex; gap:.45rem; align-items:flex-start; margin:.2rem 1rem .2rem 0; font-weight:400; }
.nbdc-check input { margin-top:.3rem; }
.nbdc-chips { display:flex; flex-wrap:wrap; gap:.45rem; margin:.2rem 0 .7rem; }
.nbdc-chip input { position:absolute; opacity:0; pointer-events:none; }
.nbdc-chip span { display:inline-block; border:1px solid var(--nbdc-line); border-radius:999px; padding:.3rem .8rem; cursor:pointer; font-size:.92rem; }
.nbdc-chip input:checked + span { background:var(--nbdc-navy); color:#fff; border-color:var(--nbdc-navy); }
.nbdc-chip input:focus-visible + span { outline:2px solid var(--nbdc-blue); outline-offset:1px; }
.nbdc-privacy { background:var(--nbdc-bg); border:1px solid var(--nbdc-line); border-radius:10px; padding:.8rem 1rem; margin:0 0 1.2rem; font-size:.92rem; }
.nbdc-privacy summary { cursor:pointer; font-weight:600; }
.nbdc-consent { margin-top:.4rem; }
.nbdc-field--other[hidden], .nbdc-avail .is-hidden { display:none; }
.nbdc-hp { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.nbdc pre { background:#0b1230; color:#dfe7ff; border-radius:10px; padding:.8rem 1rem; overflow:auto; font-size:.85rem; }
.nbdc details summary { cursor:pointer; font-weight:600; }

/* login card */
.nbdc-login { border-radius:18px; border-color:#c5d4f5; background:linear-gradient(180deg,#fff,#f5f8ff); }
.nbdc-login > p:first-of-type { margin-top:0; }

@media (prefers-reduced-motion:no-preference) {
  .nbdc-btn { transition:background-color .15s, border-color .15s, box-shadow .15s; }
}

@media (max-width:640px) {
  .nbdc-grid { grid-template-columns:minmax(0,1fr); }
  .nbdc-card { padding:1.1rem 1rem; }
  .nbdc-btn { width:100%; text-align:center; }
  .nbdc-actions { flex-direction:column; align-items:stretch; }
  .nbdc-form--inline { flex-direction:column; }
  .nbdc-form--inline input[type=email] { flex:0 0 auto; }
}

.nbdc-adminlink { margin:1rem 0 0; text-align:center; font-size:.8rem; }
.nbdc-adminlink a { color:var(--nbdc-muted); text-decoration:underline; }

/* App offer: compact card with a coupon-looking code ([nb_democenter_referral]) and the code field of the form */
.nbdc--offer { max-width:760px; margin:1rem auto; }
.nbdc-offer { border-radius:12px; padding:.7rem .85rem; color:#fff; background:linear-gradient(135deg,#031547 0%,#0a2a7a 60%,#1d69ee 100%); }
.nbdc-offer__badge { display:inline-block; background:#fff; color:var(--nbdc-navy); border-radius:999px; padding:.15rem .6rem; font:600 .68rem/1.3 Poppins,Inter,sans-serif; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.4rem; }
.nbdc-offer h2 { color:#fff; font-size:1.05rem; line-height:1.3; margin:0 0 .2rem; overflow-wrap:anywhere; }
.nbdc-offer__lead { margin:0 0 .45rem; font-size:.92rem; color:#e3ecff; }
.nbdc-coupon { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .6rem; background:#fff; color:var(--nbdc-navy); border:1.5px dashed #9db8ee; border-radius:10px; padding:.45rem .7rem; margin:0 0 .5rem; }
.nbdc-coupon[hidden], .nbdc-coupon__copy[hidden] { display:none; }
.nbdc-coupon__label { flex:1 1 100%; font:600 .65rem/1 Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--nbdc-muted); }
.nbdc-coupon__code { flex:0 1 auto; min-width:0; font:700 clamp(.95rem,4.4vw,1.15rem)/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.03em; color:var(--nbdc-navy); background:transparent; padding:0; overflow-wrap:anywhere; user-select:all; }
.nbdc-coupon__copy { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; background:#eef3fd; color:var(--nbdc-blue); border:1px solid #c9d8f5; border-radius:8px; cursor:pointer; padding:0; }
.nbdc-coupon__copy:hover { background:#dce7fb; }
.nbdc-coupon__copy:focus-visible { outline:2px solid var(--nbdc-blue); outline-offset:2px; }
.nbdc-coupon__copy.is-done { background:var(--nbdc-ok); border-color:var(--nbdc-ok); color:#fff; }
.nbdc-coupon__done { font:600 .78rem/1 Inter,sans-serif; color:var(--nbdc-ok); }
.nbdc-coupon__note { flex:1 1 auto; font-size:.74rem; color:var(--nbdc-muted); }
.nbdc-offer__fine { margin:0; font-size:.78rem; line-height:1.4; color:#c9d8f5; }
.nbdc .nbdc-offer__fine a { color:#fff; text-decoration:underline; }
.nbdc-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.nbdc-field--code input { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.04em; text-transform:uppercase; }
.nbdc-field small.nbdc-help { display:block; margin-top:.25rem; }

/* Appointment matrix: days as columns, times of day as rows, every cell a real checkbox (multi-select, works without JavaScript) */
.nbdc-matrix { display:grid; grid-template-columns:minmax(4.6rem,auto) repeat(5,minmax(0,1fr)); gap:.3rem; margin:.3rem 0 .9rem; max-width:100%; }
.nbdc-matrix__head { font:600 .8rem/1.2 Inter,sans-serif; color:var(--nbdc-muted); text-align:center; align-self:end; padding:.1rem 0 .2rem; }
.nbdc-matrix__time { font-weight:600; align-self:center; font-size:.85rem; }
.nbdc-slot { position:relative; display:block; min-width:0; cursor:pointer; margin:0; }
.nbdc-slot input { position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; }
.nbdc-slot__box { display:flex; align-items:center; justify-content:center; min-height:40px; border:1px solid var(--nbdc-line); border-radius:8px; background:#fff; color:#fff; font:600 1rem/1 Inter,sans-serif; }
.nbdc-slot:hover .nbdc-slot__box { border-color:#c5cfe6; background:#f1f4fb; }
.nbdc-slot input:checked + .nbdc-slot__box { background:var(--nbdc-navy); border-color:var(--nbdc-navy); }
.nbdc-slot input:checked + .nbdc-slot__box::before { content:"\2713"; }
.nbdc-slot input:focus-visible + .nbdc-slot__box { outline:2px solid var(--nbdc-blue); outline-offset:2px; }
.nbdc-field--users > span { white-space:nowrap; }
