/* Eichenhof Kundenportal — Notstil ohne das Eichenhof-Theme.
   Dieselben Klassennamen wie im Theme, damit dasselbe HTML unter beiden
   Themes trägt. Hier steht nur, was Benutzbarkeit sichert — nicht die
   Gestaltung. */
.portalkopf{background:#2b5672;color:#fff;padding:40px 0 0}
.portalkopf .innen,section .innen{max-width:1160px;margin:0 auto;padding:0 20px}
.portalkopf h1{color:#fff;margin:0 0 6px;font-size:34px;line-height:1.1}
.portalkopf .wer{color:#c6d6d4;font-size:15px;margin:0 0 20px}
.portalnav-huelle{position:relative;width:100%}
.portalnav{display:flex;gap:4px;overflow-x:auto;width:100%;scrollbar-width:none}
.portalnav::-webkit-scrollbar{display:none}
.portalnav a{padding:12px 18px;color:rgba(255,255,255,.72);font-size:15px;
  border-bottom:3px solid transparent;white-space:nowrap;text-decoration:none}
.portalnav a.an{color:#fff;border-bottom-color:#c6d6d4;font-weight:500}

.kacheln{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}
.kachel{border:1px solid #dedcd6;background:#fff;padding:26px 28px}
.kachel h3{margin:0 0 12px;font-size:21px}
.kachel .zahl{font-size:42px;font-weight:600;line-height:1;color:#2b5672}
.zeile{display:flex;justify-content:space-between;gap:16px;
  padding:9px 0;border-bottom:1px solid #ececea}

.terminkarte{display:grid;grid-template-columns:auto 1fr auto;gap:22px;
  align-items:center;border:1px solid #dedcd6;background:#fff;
  padding:22px 26px;margin-bottom:12px}
.terminkarte.vergangen{opacity:.62}
.terminkarte .datum{text-align:center;min-width:74px;line-height:1}
.terminkarte .datum b{display:block;font-size:38px;color:#2b5672}
.terminkarte .datum span{font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:#5d6a74}
.terminkarte h4{margin:0 0 3px;font-size:19px}
.terminkarte .zusatz{font-size:14.5px;color:#5d6a74}
.terminwege{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.terminwege form{margin:0}
.terminwege .knopf{min-height:44px}
@media(max-width:700px){
  .terminkarte{grid-template-columns:1fr;gap:12px}
  .terminwege{width:100%}
  .terminwege .knopf,.terminwege form{flex:1 1 auto}
  .terminwege form .knopf{width:100%}
}

.leer{text-align:center;padding:52px 20px;color:#5d6a74;border:1px dashed #c4c2ba}
.knopf{display:inline-block;background:#2b5672;color:#fff;padding:13px 24px;
  text-decoration:none;border:1px solid #2b5672;cursor:pointer;font-size:15px}
.knopf.klar{background:transparent;color:#2b5672}
.knopf.dunkel{background:#1e3e53;border-color:#1e3e53;color:#fff}
.knopfzeile{display:flex;gap:12px;flex-wrap:wrap}

.leistungswahl{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2px;background:#dedcd6;border:1px solid #dedcd6}
.leistungswahl a{background:#fff;padding:26px 28px;display:block;
  text-decoration:none;color:inherit}
.leistungswahl h3{margin:0 0 8px}
.leistungswahl .preis{margin-top:12px;font-weight:600;color:#2b5672}

.tagwahl{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;
  margin-bottom:26px;scrollbar-width:none}
.tagwahl::-webkit-scrollbar{display:none}
.tag{border:1px solid #dedcd6;background:#fff;padding:12px 16px;text-align:center;
  min-width:82px;flex:none;text-decoration:none;color:inherit;display:block}
.tag.an{background:#2b5672;border-color:#2b5672;color:#fff}
.tag.zu{opacity:.4;cursor:not-allowed}
.tag b{font-size:24px;font-weight:600;display:block;line-height:1.1}
.tag span{font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.tag em{font-size:11.5px;font-style:normal;display:block;margin-top:4px;opacity:.7}

.zeiten{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:9px}
.zeit{border:1.5px solid #dedcd6;background:#fff;padding:13px 6px;text-align:center;
  font-size:18px;font-weight:600;cursor:pointer;position:relative;display:block}
.zeit input{position:absolute;opacity:0;width:0;height:0}
.zeit:has(input:checked){background:#2b5672;border-color:#2b5672;color:#fff}
.zeit:focus-within{outline:2.5px solid #2b5672;outline-offset:2px}

.feldblock{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:18px;margin:26px 0}
.feld label{display:block;font-size:13.5px;font-weight:600;color:#5d6a74;
  margin-bottom:6px}
.feld input,.feld select,.feld textarea{width:100%;padding:12px 13px;font-size:16px;
  border:1px solid #c4c2ba;background:#fff}
.spanne{grid-column:1/-1}

.anmeldung{max-width:440px;margin:0 auto;background:#fff;border:1px solid #dedcd6;
  padding:40px 38px}
.anmeldung h2{margin-top:0}
.hinweiskasten{border:1px dashed #d8b169;background:#fdf5e6;color:#7a5712;
  padding:14px 18px;font-size:14px;margin-top:26px}
.meldung{padding:14px 18px;margin-bottom:24px;border:1px solid #c4c2ba;background:#fff}
.meldung.gut{border-color:#3f7d5a;background:#eef5f1;color:#2f5e43}
.meldung.fehler{border-color:#b0413e;background:#fbeceb;color:#8a2f2c}

/* Zwei Textgrößen, die das Theme mitbringt und das Portal benutzt. */
.gross{font-size:18.5px;line-height:1.6}
.klein{font-size:14px;color:#5d6a74}
