.tpp-logo {
  margin: 0 0 22px;
  text-align: center;
}
.tpp-booking .tpp-choice-icon { display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:color-mix(in srgb,var(--tpp-accent) 7%,white);border:1px solid color-mix(in srgb,var(--tpp-accent) 22%,white);color:var(--tpp-accent);line-height:1;margin-bottom:7px }\n.tpp-booking .tpp-choice-icon.is-colorful { background:transparent;border-color:transparent;font-size:28px }\n.tpp-booking .tpp-choice-icon.dashicons { display:inline-block;width:2rem;height:2rem;padding:0;border:0;border-radius:0;background:transparent;color:var(--tpp-accent);font-size:2rem;line-height:1;transition:transform .15s ease }\n.tpp-booking .tpp-card:hover .tpp-choice-icon.dashicons,.tpp-booking .tpp-card:focus-visible .tpp-choice-icon.dashicons,.tpp-booking .tpp-card.is-selected .tpp-choice-icon.dashicons { transform:scale(1.08) }

.tpp-logo img {
  display: inline-block;
  width: auto;
  max-width: min(280px, 80%);
  height: auto;
  max-height: 110px;
}

.tpp-info { position:relative;display:inline-grid;place-items:center;width:20px;height:20px;margin-left:5px;border-radius:50%;background:var(--tpp-accent);color:#fff;font-size:13px;font-weight:700;cursor:help;vertical-align:middle }

/* The understated icon set intentionally has no tile or frame. */
.tpp-booking .tpp-choice-icon.dashicons { width:2.5rem;height:2.5rem;font-size:2.5rem }
.tpp-booking .tpp-choice-icon.dashicons-heart::before { content:"⚕";font-family:Arial,sans-serif;font-size:2.5rem }

.tpp-booking .tpp-choice-icon.is-colorful { display:inline-block;width:3.25rem;height:3.25rem;padding:0;border:0!important;border-radius:0;background:transparent!important;font-size:2.75rem;line-height:1.1 }
.tpp-tooltip { position:absolute;z-index:20;left:50%;bottom:calc(100% + 9px);display:none;width:min(360px,80vw);padding:12px 14px;border-radius:8px;background:#1f2d26;color:#fff;font-size:13px;font-weight:400;line-height:1.45;transform:translateX(-50%);box-shadow:0 8px 24px rgba(0,0,0,.22) }
.tpp-info:hover .tpp-tooltip,.tpp-info:focus .tpp-tooltip { display:block }
.tpp-booking .tpp-card:hover,.tpp-booking .tpp-card:focus-visible,.tpp-booking .tpp-card.is-selected { background:color-mix(in srgb,var(--tpp-accent) 13%,white);border-color:var(--tpp-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--tpp-accent) 25%,transparent),0 4px 18px color-mix(in srgb,var(--tpp-accent) 20%,transparent);color:#23362c }
.tpp-card,.tpp-time { transition:background .15s,box-shadow .15s }
.tpp-booking .tpp-time:hover,.tpp-booking .tpp-time:focus-visible,.tpp-booking .tpp-time.is-selected { background:color-mix(in srgb,var(--tpp-accent) 75%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--tpp-accent) 25%,transparent) }
.tpp-month-header { display:flex;align-items:center;justify-content:space-between;gap:8px;margin:18px 0 }
.tpp-month-header button,.tpp-calendar p button { padding:8px;border:1px solid #ccd6d0;border-radius:8px;background:#edf1ef;color:#23362c;cursor:pointer }
.tpp-month-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center }
.tpp-month-grid button { min-height:42px;padding:8px 2px;border:1px solid #d8dfdb;border-radius:8px;background:#f3f5f4;color:#68756d;font:inherit }
.tpp-month-grid button:disabled { opacity:.5;cursor:default }
.tpp-month-grid button.is-checking { opacity:.7;border-style:dashed }
.tpp-month-grid button.is-available { background:color-mix(in srgb,var(--tpp-accent) 14%,white);border-color:var(--tpp-accent);color:#23362c;cursor:pointer }
.tpp-month-grid button.is-available:hover,.tpp-month-grid button.is-available:focus-visible,.tpp-month-grid button.is-selected { background:var(--tpp-accent);color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--tpp-accent) 30%,transparent) }
.tpp-month-header button:disabled { opacity:.4;cursor:default }
@media(max-width:480px){.tpp-month-header{flex-wrap:wrap}.tpp-month-header strong{order:-1;width:100%;text-align:center}.tpp-tooltip{left:auto;right:-15px;transform:none;width:min(300px,75vw)}}

/* Compact booking header and persistent legal footer. */
.tpp-booking{container-type:inline-size;container-name:tpp-booking}
.tpp-booking .tpp-page-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;margin-bottom:24px;background:#fff;border:1px solid #e5e9e6;border-radius:24px;box-shadow:0 6px 24px rgba(20,45,32,.05)}
.tpp-booking .tpp-page-header .tpp-logo{margin:0;text-align:left;flex:0 0 auto}
.tpp-booking .tpp-page-header .tpp-logo img{display:block;width:auto;height:auto;max-width:160px;max-height:58px;object-fit:contain}
.tpp-booking .tpp-header-contact{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 24px;min-width:0}
.tpp-booking .tpp-header-contact a,.tpp-booking .tpp-page-footer a{color:var(--tpp-accent);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.tpp-booking .tpp-page-footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px 18px;margin-top:40px;padding:18px 0;font-size:13px;line-height:1.6;color:#53605a}
@container tpp-booking (max-width:800px){.tpp-booking .tpp-header-contact{display:none}.tpp-booking .tpp-page-header:not(:has(.tpp-logo,.tpp-google-rating)){display:none}}
@media(max-width:1000px){.tpp-booking .tpp-header-contact{display:none}.tpp-booking .tpp-page-header:not(:has(.tpp-logo,.tpp-google-rating)){display:none}}
@media(max-width:540px){.tpp-booking .tpp-page-header{padding:14px 18px;border-radius:18px}.tpp-booking .tpp-page-header .tpp-logo img{max-width:135px;max-height:48px}.tpp-booking .tpp-page-footer{justify-content:center;text-align:center}}

.tpp-booking .tpp-page-header{flex-wrap:wrap}.tpp-google-rating{margin-left:auto;text-align:center;border:1px solid #e0e4e1;border-radius:24px;padding:10px 16px;background:#fff;font-size:14px}.tpp-google-rating[hidden]{display:none!important}.tpp-google-rating a{color:#425474;text-decoration:none}.tpp-rating-stars{position:relative;display:inline-block;color:#a76700;letter-spacing:1px;white-space:nowrap}.tpp-rating-stars span{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap}.tpp-google-rating small{display:block;font:400 12px sans-serif;color:#5e5e5e;white-space:nowrap;margin-top:4px}

.tpp-booking .tpp-choice-icon.tpp-financing-icon{display:block;width:3.25rem;height:3.25rem;padding:0;border:0;border-radius:0;background:transparent url("../icons/finanzierungsberatung.svg") center/contain no-repeat}

.tpp-booking .tpp-choice-icon.tpp-intro-icon{display:block;width:3.25rem;height:3.25rem;padding:0;border:0;border-radius:0;background:transparent url("../icons/erstgespraech.svg") center/contain no-repeat}
