:root {
    --teal:#143f44;
    --teal2:#1e5960;
    --sage:#eaf2ec;
    --cream:#fbfaf6;
    --txt:#273f43;
    --muted:#63787b;
    --line:#e3e9e6;
    --radius:19px;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
}

body {
    margin:0;
    background:#fff;
    color:var(--txt);
    font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

a {
    color:var(--teal2);
}

a:hover {
    text-decoration:none;
}

h1,h2,h3 {
    line-height:1.25;
    letter-spacing:-.025em;
    color:var(--teal);
    margin:0 0 18px;
}

h1 {
    font-size:clamp(27px,2.5vw,32px);
}

h2 {
    font-size:clamp(22px,2vw,26px);
}

h3 {
    font-size:19px;
}

p {
    margin:0 0 18px;
}

.container {
    width:min(1170px,calc(100% - 44px));
    margin:auto;
}

.narrow {
    max-width:800px;
}

.skip {
    position:absolute;
    left:-999px;
}

.skip:focus {
    left:10px;
    top:10px;
    z-index:99;
    background:#fff;
}

.emergency {
    background:var(--teal);
    color:#fff;
    font-size:13px;
    text-align:right;
    padding:7px 0;
}

.emergency a {
    color:#fff;
    font-weight:700;
}

.emergency span {
    padding:0 12px;
    opacity:.5;
}

.site-header {
    background:#fff;
    box-shadow:0 2px 12px #122e310b;
    position:relative;
    z-index:3;
}

.nav-wrap {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    min-height:88px;
}

.identity {
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--teal);
    text-decoration:none;
    flex-shrink:0;
}

.identity strong {
    display:block;
    font-size:18px;
    line-height:1.25;
}

.identity small {
    display:block;
    font-size:12px;
    letter-spacing:.03em;
    color:var(--muted);
}

.logo {
    background:var(--teal);
    border-radius:13px;
    color:#fff;
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    font-size:22px;
}

nav {
    display:flex;
    align-items:center;
    gap:21px;
}

nav a {
    color:#31494c;
    text-decoration:none;
    font-weight:600;
    font-size:13px;
    white-space:nowrap;
}

nav a[aria-current=page],nav a:hover {
    color:#328173;
}

.nav-toggle {
    display:none;
    background:transparent;
    border:1px solid var(--line);
    padding:7px 12px;
    border-radius:9px;
    font-size:23px;
    color:var(--teal);
}

.hero {
    background:linear-gradient(120deg,#f0f5f0,#f9faf5);
}

.hero-grid {
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    min-height:425px;
    gap:48px;
}

.hero-text {
    padding:58px 0;
}

.hero-text h1 {
    max-width:540px;
    margin-top:18px;
}

.hero-text p {
    max-width:500px;
    color:#566d70;
}

.eyebrow {
    font-size:12px;
    letter-spacing:.14em;
    font-weight:800;
    color:#518b81;
}

.hero-actions {
    display:flex;
    gap:11px;
    flex-wrap:wrap;
    margin:27px 0;
}

.button,button[type=submit] {
    display:inline-flex;
    align-items:center;
    gap:10px;
    justify-content:center;
    background:var(--teal);
    color:#fff;
    text-decoration:none;
    border:1px solid var(--teal);
    border-radius:10px;
    padding:12px 21px;
    font:600 14px system-ui;
    cursor:pointer;
    transition:.2s;
}

.button:hover,button[type=submit]:hover {
    background:var(--teal2);
    color:white;
}

.button.outline {
    color:var(--teal);
    background:transparent;
}

.button.light {
    background:#fff;
    color:var(--teal);
    border-color:#fff;
}

.hero-address {
    font-size:13px;
}

.hero-photo {
    height:365px;
    border-radius:140px 24px 24px 24px;
    overflow:hidden;
}

.hero-photo img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.hero-art {
    height:342px;
    background:linear-gradient(135deg,#dbe9dc,#adcbbd);
    border-radius:150px 30px 30px 30px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    text-align:center;
    color:#2b625f;
    position:relative;
    overflow:hidden;
}

.hero-art:before {
    content:"";
    position:absolute;
    border:1px solid #fff8;
    width:330px;
    height:330px;
    border-radius:50%;
}

.art-circle {
    height:80px;
    width:80px;
    border-radius:50%;
    background:#ffffffe6;
    display:grid;
    place-items:center;
    font-size:40px;
    margin-bottom:16px;
}

.hero-art p {
    font-size:20px;
    font-weight:600;
    line-height:1.4;
}

.section {
    padding:66px 0;
}

.section.subtle {
    background:var(--cream);
}

.section-intro {
    text-align:center;
    margin-bottom:36px;
}

.section-intro h2 {
    margin:10px 0;
}

.section-intro p {
    color:var(--muted);
}

.cards {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px 22px;
    text-decoration:none;
    box-shadow:0 12px 33px #1d38360a;
    transition:.2s;
}

.card:hover {
    border-color:#a9cbc0;
    transform:translateY(-3px);
}

.card p {
    font-size:14px;
    color:var(--muted);
    min-height:70px;
}

.card b {
    font-size:13px;
    color:#3b8179;
}

.card-icon {
    display:grid;
    place-items:center;
    height:48px;
    width:48px;
    background:var(--sage);
    color:var(--teal);
    border-radius:14px;
    font-size:26px;
    margin-bottom:21px;
}

.two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:65px;
    align-items:start;
}

.hours {
    background:white;
    border:1px solid var(--line);
    border-radius:13px;
    overflow:hidden;
    margin:20px 0;
}

.hours>div {
    display:grid;
    grid-template-columns:1fr 1.6fr;
    gap:12px;
    padding:13px 16px;
    border-bottom:1px solid var(--line);
    font-size:14px;
}

.hours>div:last-child {
    border-bottom:0;
}

.hours strong {
    font-weight:700;
}

.hours span {
    text-align:right;
}

.info-panel {
    background:var(--teal);
    border-radius:var(--radius);
    padding:35px;
    color:#fff;
}

.info-panel h2 {
    color:#fff;
}

.info-panel p {
    color:#d5e7e3;
}

.phone-big {
    display:block;
    color:white;
    font-size:23px;
    font-weight:750;
    margin:20px 0;
}

.page-head {
    background:linear-gradient(125deg,#ebf3ef,#f9faf6);
    padding:58px 0 48px;
}

.page-head h1 {
    margin:13px 0;
}

.page-head p {
    color:var(--muted);
    margin:0;
}

.person,.team-chip {
    border:1px solid var(--line);
    padding:16px 20px;
    border-radius:11px;
    margin-bottom:12px;
}

.person strong,.person span {
    display:block;
}

.person span {
    color:var(--muted);
    font-size:14px;
}

.team-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.team-chip {
    margin:0;
    font-weight:600;
    font-size:14px;
}

.notice {
    background:#f0f5f2;
    border-left:3px solid #6b9d8f;
    border-radius:6px;
    padding:18px 20px;
    margin:20px 0;
}

.muted {
    color:var(--muted);
    font-size:14px;
}

.separator {
    height:1px;
    background:var(--line);
    margin:45px 0 32px;
}

.request-form {
    border:1px solid var(--line);
    border-radius:16px;
    padding:25px;
    margin-top:18px;
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.request-form label {
    display:block;
    font-size:14px;
    font-weight:650;
    margin-bottom:15px;
}

.request-form input:not([type=checkbox]),.request-form textarea,.request-form select {
    display:block;
    width:100%;
    font:inherit;
    font-size:15px;
    border:1px solid #cddbd5;
    background:white;
    border-radius:9px;
    padding:11px;
    margin-top:6px;
    min-height:44px;
}

.request-form textarea {
    resize:vertical;
}

.request-form .check {
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-weight:400;
}

.check input {
    margin-top:6px;
}

.request-form button:disabled {
    background:#8da5a1;
    border-color:#8da5a1;
    cursor:not-allowed;
}

.form-warning {
    font-size:14px;
    color:#845b36;
    margin:12px 0 0;
}

.trap {
    position:absolute;
    left:-9999px;
}

.legal h2 {
    margin-top:30px;
}

.footer {
    background:#102f33;
    color:#d9e8e5;
    padding:49px 0 18px;
    font-size:14px;
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1.5fr;
    gap:50px;
}

.footer strong {
    color:#fff;
    font-size:16px;
}

.footer a {
    color:#d9e8e5;
}

.footer p {
    margin-top:12px;
}

.footer-bottom {
    margin-top:28px;
    padding-top:14px;
    border-top:1px solid #ffffff25;
    color:#9cb4b0;
    font-size:12px;
}

@media(max-width:1050px) {
    nav {
        gap:11px;
    }
    nav a {
        font-size:12px;
    }
    .cards {
        grid-template-columns:repeat(2,1fr);
    }
    .hero-grid {
        gap:25px;
    }
}

@media(max-width:800px) {
    .nav-wrap {
        min-height:75px;
        flex-wrap:wrap;
    }
    .nav-toggle {
        display:block;
    }
    nav {
        display:none;
        width:100%;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding-bottom:15px;
    }
    nav.open {
        display:flex;
    }
    nav a {
        font-size:15px;
        padding:11px 3px;
        border-bottom:1px solid var(--line);
    }
    .hero-grid {
        grid-template-columns:1fr;
        gap:0;
    }
    .hero-text {
        padding:45px 0 20px;
    }
    .hero-art,.hero-photo {
        height:235px;
        margin:0 0 35px;
        border-radius:25px;
    }
    .two-col {
        grid-template-columns:1fr;
        gap:35px;
    }
    .section {
        padding:48px 0;
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:20px;
    }
}

@media(max-width:550px) {
    body {
        font-size:15px;
    }
    .container {
        width:calc(100% - 34px);
    }
    .emergency {
        font-size:11px;
        text-align:center;
    }
    .emergency span {
        padding:0 5px;
    }
    .identity strong {
        font-size:16px;
    }
    .hero-actions {
        flex-direction:column;
        align-items:stretch;
    }
    .cards,.team-grid,.form-grid,.footer-grid {
        grid-template-columns:1fr;
    }
    .card p {
        min-height:0;
    }
    .hero-art p {
        font-size:18px;
    }
    .hours>div {
        grid-template-columns:.8fr 1.7fr;
        font-size:12px;
        padding:12px;
    }
    .page-head {
        padding:36px 0;
    }
    .request-form {
        padding:17px;
    }
}

/* Layout-Überarbeitung v2: breite Desktopflächen, optimierte Laptopnavigation. */
@media(min-width:1200px) {
    .container {
        width:calc(100% - 96px);
        max-width:1800px;
    }
    .hero-grid {
        min-height:470px;
        grid-template-columns:1.08fr .92fr;
        gap:clamp(36px,5vw,100px);
    }
    .hero-text {
        padding:65px 0;
    }
    .hero-art,.hero-photo {
        height:390px;
    }
    .cards {
        gap:clamp(16px,1.65vw,30px);
    }
    .card {
        padding:clamp(22px,1.7vw,34px);
    }
    .two-col {
        gap:clamp(40px,5vw,100px);
    }
    .nav-wrap {
        gap:24px;
    }
    nav {
        gap:clamp(12px,1.35vw,28px);
    }
    nav a {
        font-size:clamp(15px,.85vw,15px);
    }
}

@media(min-width:801px) and (max-width:1199px) {
    .container {
        width:calc(100% - 56px);
    }
    .hero-grid {
        grid-template-columns:1.05fr .95fr;
        gap:25px;
        min-height:390px;
    }
    .hero-art,.hero-photo {
        height:310px;
    }
    .hero-text {
        padding:42px 0;
    }
    .cards {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:17px;
    }
    .card p {
        min-height:0;
    }
    .two-col {
        gap:30px;
    }
    .section {
        padding:53px 0;
    }
}

/* Auf Laptops wird rechtzeitig das kompakte Menü verwendet, statt Links zusammenzudrücken. */
@media(max-width:1199px) {
    .nav-wrap {
        min-height:76px;
        flex-wrap:wrap;
    }
    .nav-toggle {
        display:block;
        margin-left:auto;
    }
    nav {
        display:none;
        width:100%;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding:0 0 15px;
    }
    nav.open {
        display:flex;
    }
    nav a {
        font-size:15px;
        padding:10px 4px;
        border-bottom:1px solid var(--line);
    }
}

@media(min-width:1200px) and (max-width:1390px) {
    .identity strong {
        font-size:16px;
    }
    .identity small {
        font-size:11px;
    }
}

/* Neue Sprechstunden-Seite */
.hours-head {
    padding:54px 0 46px;
}

.hours-head p {
    max-width:630px;
}

.hours-section {
    background:linear-gradient(180deg,#fff 0%,#f8faf8 100%);
}

.hours-layout {
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(295px,.8fr);
    gap:clamp(22px,3.5vw,65px);
    align-items:start;
}

.hours-main {
    min-width:0;
}

.hours-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    margin-bottom:22px;
}

.hours-heading h2 {
    margin:8px 0 0;
}

.hours-tag {
    font-size:12px;
    font-weight:700;
    background:var(--sage);
    color:var(--teal);
    border-radius:30px;
    padding:8px 13px;
    white-space:nowrap;
}

.hours-cards {
    display:grid;
    gap:11px;
}

.hours-day {
    background:#fff;
    border:1px solid #e1ebe5;
    border-radius:15px;
    padding:19px 23px;
    display:grid;
    grid-template-columns:minmax(140px,.7fr) minmax(0,1.4fr);
    gap:15px;
    align-items:center;
    box-shadow:0 7px 25px #183a3610;
}

.hours-day-name {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:16px;
    color:var(--teal);
}

.day-dot {
    width:9px;
    height:9px;
    border-radius:50%;
    background:#79ac91;
    flex-shrink:0;
}

.hours-periods {
    display:flex;
    gap:10px;
    justify-content:flex-end;
    flex-wrap:wrap;
}

.hours-pill {
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#2e5b54;
    background:#edf5ef;
    border-radius:9px;
    padding:9px 12px;
    font-size:13px;
    font-weight:650;
    white-space:nowrap;
}

.hours-footnote {
    display:flex;
    align-items:flex-start;
    gap:11px;
    color:#5d7472;
    font-size:13px;
    margin-top:20px;
    padding:0 4px;
}

.hours-footnote>span {
    font-size:20px;
    color:#648e7e;
}

.hours-footnote p {
    margin:0;
}

.hours-aside {
    display:grid;
    gap:16px;
}

.hours-help {
    padding:29px;
    border-radius:18px;
    background:var(--teal);
    color:#fff;
}

.hours-help-icon {
    background:#ffffff20;
    border-radius:12px;
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    font-size:23px;
    margin-bottom:23px;
}

.hours-help h2 {
    color:#fff;
    font-size:23px;
    margin-bottom:13px;
}

.hours-help p {
    color:#d7e7e2;
    font-size:14px;
}

.hours-tel {
    display:block;
    font-size:clamp(21px,2vw,27px);
    font-weight:750;
    letter-spacing:-.02em;
    color:#fff;
    text-decoration:none;
    margin:16px 0 23px;
}

.hours-button {
    width:100%;
}

.hours-note {
    background:#fff;
    border:1px solid #e0eae5;
    border-radius:16px;
    padding:23px 27px;
}

.hours-note h3 {
    font-size:17px;
    margin-bottom:8px;
}

.hours-note p {
    font-size:14px;
    color:var(--muted);
    margin:0 0 5px;
}

.hours-note>a {
    font-weight:800;
    text-decoration:none;
    font-size:22px;
}

.hours-note .hours-critical {
    margin:19px 0 0;
    padding-top:13px;
    border-top:1px solid var(--line);
}

.hours-critical a {
    font-weight:700;
    color:var(--teal);
}

@media(min-width:1500px) {
    .hours-layout {
        grid-template-columns:minmax(0,1.8fr) minmax(340px,.65fr);
    }
}

@media(min-width:801px) and (max-width:1100px) {
    .hours-layout {
        grid-template-columns:minmax(0,1fr) 290px;
        gap:20px;
    }
    .hours-day {
        grid-template-columns:1fr;
        gap:10px;
        padding:17px;
    }
    .hours-periods {
        justify-content:flex-start;
    }
    .hours-help {
        padding:22px;
    }
}

@media(max-width:800px) {
    .hours-layout {
        grid-template-columns:1fr;
    }
    .hours-aside {
        grid-template-columns:1fr 1fr;
        align-items:start;
    }
    .hours-heading {
        flex-wrap:wrap;
    }
}

@media(max-width:600px) {
    .hours-aside {
        grid-template-columns:1fr;
    }
    .hours-day {
        grid-template-columns:1fr;
        gap:11px;
        padding:17px;
    }
    .hours-periods {
        justify-content:flex-start;
    }
    .hours-pill {
        font-size:12px;
    }
    .hours-head {
        padding:37px 0;
    }
    .hours-heading {
        margin-bottom:17px;
    }
    .hours-tag {
        font-size:11px;
    }
    .hours-help {
        padding:24px;
    }
    .hours-tel {
        font-size:23px;
    }
}

/* Schemitsch Gestaltung v3: Logo, Desktop und Laptop, Formular-/Teamansichten */
:root {
    --teal:#322681;
    --teal2:#4535a0;
    --sage:#f0eefb;
    --cream:#f9f8fe;
    --txt:#272744;
    --muted:#6b6d81;
    --line:#e7e3f3;
}

.emergency {
    background:#322681;
}

.logo {
    background:transparent;
}

.practice-logo {
    height:63px;
    width:74px;
    object-fit:contain;
    flex-shrink:0;
}

.identity strong {
    color:#292165;
}

.identity small {
    color:#656078;
}

.hero {
    background:linear-gradient(120deg,#f9f7ff,#f1f2fb);
}

.eyebrow {
    color:#7564ac;
}

.button.outline {
    border-color:#8479bb;
}

.card-icon {
    color:#322681;
}

.page-head {
    background:linear-gradient(125deg,#f5f2fc,#fafaff);
}

.hero-art {
    background:linear-gradient(130deg,#ebe5fc,#d5cdf3);
    color:#332782;
}

.hero-art:before {
    border-color:#ffffff7d;
}

.art-circle {
    background:transparent;
    height:110px;
    width:160px;
}

.hero-brand {
    max-height:105px;
    max-width:160px;
    object-fit:contain;
}

.hero-art p {
    color:#352887;
}

.container {
    max-width:none;
    width:calc(100% - clamp(36px,5vw,104px));
}

.narrow {
    width:min(920px,calc(100% - 34px));
    max-width:920px;
}

.nav-wrap {
    gap:18px;
}

.nav-wrap nav {
    gap:clamp(11px,1.2vw,24px);
}

.people-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:22px;
    margin:24px 0 46px;
}

.person-card {
    border:1px solid var(--line);
    border-radius:18px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 14px 32px #2b226b09;
}

.portrait {
    height:190px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#ece7fa,#f6f4fa);
    color:#7667a9;
    gap:6px;
}

.portrait img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.portrait span {
    font-size:47px;
}

.portrait small {
    font-size:12px;
}

.person-card>div:last-child:not(.portrait) {
    padding:18px;
}

.person-card>h3 {
    padding:15px;
    margin:0;
}

.person-card h3 {
    font-size:17px;
    margin:0 0 5px;
}

.person-card p {
    font-size:14px;
    color:var(--muted);
    margin:0;
}

.team-title {
    margin-top:20px;
}

.required {
    color:#ae3254;
}

.medicine-grid {
    margin-top:15px;
}

.full-label {
    margin-top:14px;
}

.contact-grid {
    display:grid;
    grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
    gap:clamp(25px,4vw,70px);
    align-items:start;
}

.contact-panel {
    border:1px solid var(--line);
    padding:30px;
    border-radius:18px;
    background:#f8f7fe;
}

.contact-panel p {
    overflow-wrap:anywhere;
}

.request-form {
    margin-top:0;
}

.request-form textarea {
    min-height:110px;
}

.request-form label:has(.required) {
    position:relative;
}

.fallback-alert {
    margin:20px auto;
    padding:18px;
    background:#faf1db;
    border:1px solid #eacb87;
    border-radius:12px;
    max-width:580px;
}

.form-warning {
    border-radius:10px;
    background:#fff6e7;
    padding:11px 13px;
}

@media(min-width:1500px) {
    .container {
        width:calc(100% - 110px);
    }
    .hero-grid {
        min-height:440px;
    }
    .hero-text {
        max-width:850px;
    }
    .cards {
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

@media(min-width:1200px) and (max-width:1499px) {
    .container {
        width:calc(100% - 64px);
    }
    .nav-wrap nav {
        gap:12px;
    }
    nav a {
        font-size:12px;
    }
}

@media(min-width:800px) and (max-width:1199px) {
    .container {
        width:calc(100% - 54px);
    }
    .people-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .contact-grid {
        grid-template-columns:1fr 1.2fr;
    }
}

@media(max-width:799px) {
    .container {
        width:calc(100% - 34px);
    }
    .contact-grid {
        grid-template-columns:1fr;
    }
    .people-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .practice-logo {
        height:54px;
        width:60px;
    }
}

@media(max-width:520px) {
    .people-grid {
        grid-template-columns:1fr 1fr;
        gap:10px;
    }
    .portrait {
        height:125px;
    }
    .person-card h3 {
        font-size:14px;
    }
    .person-card>div:last-child:not(.portrait) {
        padding:11px;
    }
    .person-card>h3 {
        padding:11px;
        font-size:14px;
    }
    .contact-panel {
        padding:19px;
    }
    .hero-art {
        height:200px;
    }
    .identity strong {
        font-size:15px;
    }
    .identity small {
        font-size:11px;
    }
}

/* Version 4 — Wiederherstellung der ursprünglichen warmen Petrol-/Salbeifarben */
:root {
    --teal:#135a5d;
    --teal2:#1d7173;
    --sage:#eaf3ee;
    --cream:#f8f9f6;
    --txt:#17383b;
    --muted:#647b7b;
    --line:#dce9e2;
}

body {
    color:var(--txt);
}

.emergency {
    background:#104749;
}

.identity strong {
    color:#124e52;
}

.identity small {
    color:#587577;
}

.hero {
    background:linear-gradient(115deg,#f1f7f1,#f9fbf7);
}

.eyebrow {
    color:#4b8875;
}

.page-head {
    background:linear-gradient(120deg,#eff7f4,#fafcfa);
}

.hero-art {
    background:linear-gradient(125deg,#edf5f0,#d6e8df);
    color:#135a5d;
}

.hero-art p {
    color:#135a5d;
}

.button.outline {
    border-color:#5b9b88;
}

.card-icon {
    color:#146d67;
}

.day-dot {
    background:#83b49d;
}

.hours-pill {
    color:#235f54;
    background:#e9f4eb;
}

.hours-day {
    border-color:#dae9e2;
}

.hours-section {
    background:linear-gradient(180deg,#fff,#f7fbf8);
}

.hours-help {
    background:#155a5d;
}

.hours-help p {
    color:#e0f2ef;
}

.hours-note {
    border-color:#dce9e2;
}

.required {
    color:#aa3650;
}

.contact-panel {
    background:#f3f8f5;
    border-color:#dce9e2;
}

.section {
    padding:clamp(28px,3vw,52px) 0;
}

.page-head {
    padding:clamp(24px,3vw,45px) 0;
}

.page-head h1 {
    font-size:clamp(25px,2.3vw,34px);
}

.page-head p {
    margin:5px 0 0;
}

.request-form {
    padding:clamp(16px,2vw,24px);
}

.request-form input,.request-form select {
    min-height:41px;
}

.request-form textarea {
    min-height:76px;
}

.request-form .check {
    font-size:13px;
    line-height:1.55;
    margin-top:14px;
}

.compact-service .notice {
    padding:12px 16px;
    font-size:13px;
    margin-bottom:13px;
}

.compact-service .form-grid {
    gap:10px 16px;
}

.compact-service .request-form {
    padding:18px 21px;
}

.compact-service .request-form input,.compact-service .request-form select {
    padding:9px 12px;
}

.compact-service .request-form label {
    font-size:13px;
}

.compact-service .full-label {
    margin-top:8px;
}

.compact-service .request-form textarea {
    min-height:64px;
}

.compact-service .medicine-grid {
    margin-top:9px;
}

.compact-service .request-form button {
    margin-top:10px;
}

.compact-service .check {
    margin-top:10px;
}

.people-heading {
    text-align:center;
    margin-bottom:24px;
}

.doctors-grid {
    grid-template-columns:repeat(2,minmax(0,260px));
    justify-content:center;
    gap:30px;
}

.people-grid:not(.doctors-grid) {
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:1200px;
    margin-left:auto;
    margin-right:auto;
}

.portrait {
    height:270px;
    background:#edf2f0;
}

.portrait img {
    object-fit:cover;
    object-position:50% 20%;
}

.doctors-grid .portrait {
    height:310px;
}

.person-card {
    text-align:center;
    border-color:#dfe9e2;
}

.person-card>div:last-child:not(.portrait) {
    padding:17px;
}

.team-title {
    margin-top:48px;
}

.hours-three {
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(245px,.75fr) minmax(245px,.75fr);
    gap:18px;
    align-items:stretch;
}

.hours-box {
    border-radius:18px;
    min-width:0;
}

.hours-main.hours-box {
    padding:15px 10px 10px;
}

.hours-three .hours-heading {
    margin-bottom:12px;
}

.hours-three .hours-day {
    padding:11px 13px;
    gap:7px;
    grid-template-columns:minmax(92px,.65fr) minmax(0,1.6fr);
    border-radius:11px;
}

.hours-three .hours-day-name {
    font-size:14px;
    gap:8px;
}

.hours-three .hours-cards {
    gap:9px;
}

.hours-three .hours-pill {
    font-size:12px;
    padding:7px 8px;
    gap:3px;
}

.hours-three .hours-periods {
    gap:6px;
}

.hours-three .hours-help {
    padding:24px;
    display:flex;
    flex-direction:column;
}

.hours-three .hours-note {
    padding:24px;
    display:flex;
    flex-direction:column;
    background:#f6faf7;
}

.hours-three .hours-help-icon {
    margin-bottom:10px;
}

.hours-three .hours-help h2,.hours-three .hours-note h2 {
    font-size:clamp(18px,1.5vw,23px);
    line-height:1.3;
}

.hours-three .hours-note p {
    margin:8px 0;
}

.hours-three .hours-note>a {
    font-size:18px;
    color:#135a5d;
    font-weight:750;
}

.hours-three .hours-note .hours-emergency-number {
    font-size:25px;
}

.hours-three .hours-note-icon {
    color:#135a5d;
    background:#e6f2ec;
}

.hours-three .hours-help .hours-button {
    margin-top:auto;
}

.hours-three .hours-tel {
    font-size:clamp(19px,1.7vw,24px);
}

.hours-three .hours-footnote {
    font-size:12px;
    margin:10px 0 0;
    color:#657c77;
}

.index-hours-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    align-items:stretch;
}

.index-hours-panel {
    display:flex;
    flex-direction:column;
}

.index-hours-panel .hours-cards {
    margin-top:8px;
    gap:8px;
}

.index-hours-panel .hours-day {
    padding:9px 14px;
}

.index-hours-panel .hours-periods {
    gap:6px;
}

.index-hours-panel .hours-pill {
    padding:6px 10px;
    font-size:12px;
}

.index-contact-panel {
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.index-contact-panel .button {
    margin-top:10px;
    align-self:flex-start;
}

.light-outline {
    color:white!important;
    border-color:#fff!important;
}

.contact-grid {
    grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);
    gap:24px;
}

.contact-form-panel {
    padding:5px;
}

.map-section {
    margin-top:28px;
}

.map-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.map-consent {
    height:350px;
    border-radius:17px;
    border:1px solid #d5e5dd;
    background:radial-gradient(circle at 45% 30%,#e0ece6,#f2f8f4 65%);
    display:grid;
    place-items:center;
    overflow:hidden;
}

.map-consent-info {
    text-align:center;
    padding:20px;
    max-width:450px;
}

.map-consent-info h3 {
    font-size:23px;
}

.map-consent-info p {
    font-size:14px;
}

.map-pin {
    font-size:42px;
    color:#176861;
}

.map-loaded iframe {
    height:100%;
    width:100%;
    border:0;
}

.footer {
    background:#102f33;
    color:#d9eeeb;
    padding:37px 0 18px;
}

.footer-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding-bottom:26px;
    border-bottom:1px solid #ffffff2a;
}

.footer-brand {
    display:flex;
    align-items:center;
    gap:15px;
}

.footer-logo {
    height:75px;
    width:80px;
    object-fit:contain;
    background:#fff;
    border-radius:13px;
    padding:5px;
}

.footer-brand h2 {
    font-size:20px;
    color:#fff;
    margin:0;
}

.footer-brand p {
    margin:3px 0;
    font-size:13px;
    color:#c9e0dd;
}

.footer-book {
    background:#e7f2ed;
    color:#144c4c!important;
    text-decoration:none;
    border-radius:10px;
    padding:12px 20px;
    font-weight:750;
    white-space:nowrap;
}

.footer-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:30px;
    padding-top:27px;
}

.footer-grid strong {
    display:block;
    margin-bottom:14px;
}

.footer-grid p {
    line-height:1.9;
}

.footer a {
    text-underline-offset:3px;
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
    margin-top:18px;
    padding-top:16px;
}

@media(max-width:1300px) {
    .hours-three {
        grid-template-columns:1fr 1fr;
    }
    .hours-three .hours-main {
        grid-column:1/-1;
    }
    .hours-three .hours-day {
        grid-template-columns:1fr 1.3fr;
    }
    .footer-grid {
        gap:16px;
    }
    .index-hours-grid {
        grid-template-columns:1.15fr 1fr;
    }
}

@media(max-width:1000px) {
    .hours-three {
        grid-template-columns:1fr 1fr;
    }
    .hours-three .hours-main {
        grid-column:1/-1;
    }
    .index-hours-grid {
        grid-template-columns:1fr;
    }
    .people-grid:not(.doctors-grid) {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .footer-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:700px) {
    .hours-three {
        grid-template-columns:1fr;
    }
    .hours-three .hours-main {
        grid-column:auto;
    }
    .hours-three .hours-day {
        grid-template-columns:1fr;
        gap:6px;
    }
    .hours-three .hours-periods {
        justify-content:flex-start;
    }
    .doctors-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
    }
    .doctors-grid .portrait {
        height:200px;
    }
    .people-grid:not(.doctors-grid) {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .portrait {
        height:180px;
    }
    .contact-grid {
        grid-template-columns:1fr;
    }
    .map-consent {
        height:300px;
    }
    .footer-top {
        flex-wrap:wrap;
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:480px) {
    .footer-grid {
        grid-template-columns:1fr;
    }
    .footer-brand h2 {
        font-size:17px;
    }
    .footer-logo {
        width:60px;
        height:62px;
    }
    .footer-book {
        width:100%;
        text-align:center;
    }
    .map-head {
        align-items:flex-start;
        flex-direction:column;
    }
    .hours-three .hours-pill {
        white-space:normal;
    }
}

/* Separate subpages: short title header, unchanged homepage hero */
.page-head {
    padding:12px 0 10px!important;
}

.page-head .eyebrow {
    font-size:10px;
    line-height:1.2;
}

.page-head h1 {
    font-size:clamp(23px,2vw,29px);
    margin:3px 0!important;
}

.page-head p {
    font-size:13px;
    margin:0!important;
}

@media(max-width:700px) {
    .page-head {
        padding:10px 0!important;
    }
    .page-head h1 {
        font-size:23px;
    }
}

/* Compact contact page without horizontal overflow */
body {
    overflow-x:hidden;
}

.contact-section {
    padding-top:22px!important;
    padding-bottom:26px!important;
}

.contact-section .contact-grid {
    gap:18px;
}

.contact-section .request-form {
    margin-top:8px;
}

.contact-section .request-form label {
    margin-bottom:8px;
}

.contact-section .request-form textarea {
    min-height:70px;
}

.map-section {
    margin-top:22px;
}

.map-consent {
    height:280px;
}

@media(max-width:800px) {
    .contact-section .contact-grid {
        grid-template-columns:1fr;
    }
    .map-consent {
        height:260px;
    }
}

/* Kontaktseite: kompakte Darstellung und Karte direkt unter den Kontaktdaten */
.contact-compact {
    padding-top:18px!important;
    padding-bottom:30px!important;
}

.contact-compact .contact-grid {
    grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);
    gap:22px;
    align-items:start;
}

.contact-compact .contact-panel {
    padding:22px 24px;
    border-radius:17px;
}

.contact-compact .contact-panel h2,.contact-compact .contact-form-panel h2 {
    font-size:clamp(20px,1.65vw,24px);
    margin-bottom:11px;
}

.contact-compact .contact-panel p {
    margin:0 0 12px;
    line-height:1.6;
    font-size:14px;
}

.contact-compact .contact-form-panel {
    padding:0;
}

.contact-compact .contact-form-intro {
    font-size:13px;
    color:var(--muted);
    margin:0 0 9px;
}

.contact-compact .request-form {
    padding:17px 19px;
    margin-top:0;
    border-radius:16px;
}

.contact-compact .request-form .form-grid {
    gap:8px 12px;
}

.contact-compact .request-form label {
    font-size:13px;
    margin-bottom:6px;
}

.contact-compact .request-form input:not([type=checkbox]),.contact-compact .request-form textarea {
    min-height:38px;
    padding:7px 10px;
    margin-top:4px;
    font-size:14px;
}

.contact-compact .request-form textarea {
    min-height:65px;
    height:65px;
    resize:vertical;
}

.contact-compact .request-form .check {
    margin-top:9px;
    margin-bottom:12px;
    font-size:12px;
    line-height:1.5;
}

.contact-compact .request-form button[type=submit] {
    padding:10px 15px;
}

.contact-map-title {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:12px;
    flex-wrap:wrap;
    margin:17px 0 9px;
}

.contact-map-title h3 {
    font-size:17px;
    margin:0;
}

.contact-map-title span {
    font-size:12px;
    color:var(--muted);
}

.contact-compact .contact-map {
    width:100%;
    height:260px;
    border-radius:12px;
    overflow:hidden;
    background:linear-gradient(145deg,#e0eee7,#f4faf6);
    border:1px solid #cddfd5;
}

.contact-compact .contact-map .map-consent-info {
    padding:12px 20px;
}

.contact-compact .contact-map .map-pin {
    display:block;
    font-size:26px;
    line-height:1.1;
}

.contact-compact .contact-map .map-consent-info strong {
    display:block;
    font-size:16px;
}

.contact-compact .contact-map .map-consent-info p {
    margin:6px auto 10px;
    font-size:12px;
    max-width:280px;
}

.contact-compact .contact-map .button {
    padding:9px 14px;
    font-size:12px;
}

.contact-compact .contact-map.map-loaded iframe {
    display:block;
    width:100%;
    height:100%;
    border:0;
}

@media(max-width:900px) {
    .contact-compact .contact-grid {
        grid-template-columns:1fr;
    }
    .contact-compact .contact-map {
        height:290px;
    }
}

@media(max-width:550px) {
    .contact-compact .contact-panel {
        padding:17px;
    }
    .contact-compact .request-form {
        padding:14px;
    }
    .contact-compact .contact-map {
        height:240px;
    }
    .contact-compact .contact-map-title {
        display:block;
    }
    .contact-compact .contact-form-panel {
        padding:0;
    }
}

/* Überweisung: kompaktes zweispaltiges Layout – eigener Seitenstil */
.referral-page {
    padding:16px 0 22px!important;
}

.referral-page .referral-layout {
    display:grid!important;
    grid-template-columns:minmax(245px,0.72fr) minmax(0,1.65fr)!important;
    gap:22px!important;
    align-items:start!important;
}

.referral-page .referral-layout>.referral-note {
    background:#f0f7f3!important;
    border:1px solid #d8e8df!important;
    border-left:4px solid #72a592!important;
    border-radius:12px!important;
    padding:18px!important;
    margin:0!important;
    color:#25494c;
    font-size:13px;
    line-height:1.55;
}

.referral-page .referral-note h2 {
    font-size:18px;
    margin:0 0 10px;
}

.referral-page .referral-note p {
    margin:0;
    font-size:13px;
    line-height:1.65;
}

.referral-page .referral-form-col {
    min-width:0;
}

.referral-page .referral-form-col .request-form {
    margin:0!important;
    padding:17px 19px!important;
    border-radius:14px;
}

.referral-page .referral-form-col .form-grid {
    gap:8px 14px!important;
}

.referral-page .referral-form-col .request-form label {
    font-size:12px;
    margin-bottom:7px;
    line-height:1.4;
}

.referral-page .referral-form-col .request-form input:not([type=checkbox]),.referral-page .referral-form-col .request-form select {
    min-height:38px;
    padding:7px 10px;
    margin-top:4px;
    font-size:13px;
}

.referral-page .referral-form-col .request-form textarea {
    min-height:60px;
    height:60px;
    padding:8px 10px;
    margin-top:4px;
    font-size:13px;
}

.referral-page .referral-form-col .full-label {
    margin:7px 0!important;
}

.referral-page .referral-form-col .request-form .check {
    margin:9px 0 12px;
    font-size:12px;
    line-height:1.5;
    gap:8px;
}

.referral-page .referral-form-col button[type=submit] {
    padding:10px 16px;
    font-size:12px;
}

@media(max-width:850px) {
    .referral-page .referral-layout {
        grid-template-columns:minmax(0,1fr)!important;
        gap:14px!important;
    }
}

@media(max-width:550px) {
    .referral-page .referral-form-col .form-grid {
        grid-template-columns:1fr!important;
    }
    .referral-page .referral-form-col .request-form {
        padding:14px!important;
    }
}


/*
 * Formularlayout – Rezept und Überweisung.
 * Die Formulare werden durch formStart(), formIdentity() und formEnd()
 * aus includes/shared.php aufgebaut. Diese Regeln gelten für beide Seiten.
 */
.referral-page .referral-form-col .request-form label {
    font-size: 13px;
    font-weight: 650;
    line-height: 1.5;
}

.referral-page .referral-form-col .request-form input:not([type="checkbox"]),
.referral-page .referral-form-col .request-form select,
.referral-page .referral-form-col .request-form textarea {
    font-size: 14px;
    font-weight: 400;
}

.referral-page .referral-form-col .request-form input::placeholder,
.referral-page .referral-form-col .request-form textarea::placeholder {
    color: #71817e;
    font-size: 12px;
    font-weight: 400;
    opacity: 1;
}

/* Datenschutztext und Checkbox bleiben in derselben Flex-Zeile. */
.referral-page .referral-form-col .request-form label.check {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    margin: 12px 0 16px;
    padding: 0;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    cursor: pointer;
}

.referral-page .referral-form-col .request-form label.check input[type="checkbox"] {
    display: block;
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    min-width: 17px;
    min-height: 17px;
    margin: 2px 0 0;
    padding: 0;
    accent-color: #135a5d;
}

.referral-page .referral-form-col .request-form label.check span {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.5;
}

.referral-page .referral-form-col .request-form label.check a {
    color: #135a5d;
    text-decoration: underline;
    text-underline-offset: 2px;
}
