/* ===================================================================
   Tier-arzt – Mag. Birgit Kopschar
   Statische Seite (HTML/CSS), Nachbau der Original-Website
   =================================================================== */

/* ---------- Farbvariablen ---------- */
:root {
    --blau: rgba(70, 130, 180, 0.44);   /* blauer Hintergrund */
    --weiss: #ffffff;                    /* weiß */
    --text: #1a1a1a;
    --rot: #cc0000;                      /* für Urlaubshinweise */
    --max-breite: 1400px;
}

/* ---------- Grundlagen ---------- */
* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    /* Damit Anker nicht unter der fixen Navigation verschwinden */
    scroll-padding-top: 70px;
}

body {
    margin: 0;
    font-family: "Times New Roman", Times, serif;
    color: var(--text);
    background: var(--weiss);
    line-height: 1.5;
    font-size: 18px;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
}

/* ===================================================================
   NAVIGATION (mittig)
   =================================================================== */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--weiss);
    border-bottom: 1px solid #e6e6e6;
}

.main-nav {
    max-width: var(--max-breite);
    margin: 0 auto;
    padding: 0 20px;
}

.nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;   /* Menü mittig */
    flex-wrap: wrap;
    gap: 8px;
}

.nav-list a {
    display: block;
    padding: 16px 22px;
    text-decoration: none;
    font-size: 18px;
    letter-spacing: 0.4px;
    color: var(--text);
    transition: background 0.15s ease, color 0.15s ease;
}

.nav-list a:hover,
.nav-list a:focus {
    background: var(--blau);
    color: #000;
}

/* Hamburger-Button (nur mobil sichtbar) */
.nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 14px 10px;
    margin: 4px auto;
}

.nav-toggle span {
    display: block;
    width: 26px;
    height: 3px;
    margin: 5px 0;
    background: var(--text);
    transition: 0.2s;
}

/* ===================================================================
   SEKTIONEN (Container / Bänder)
   =================================================================== */
.section {
    width: 100%;
    padding: 70px 0;
}

.section--blue {
    background: var(--blau);
}

.section--white {
    background: var(--weiss);
}

.container {
    max-width: var(--max-breite);
    margin: 0 auto;
    padding: 0 40px;
}

/* Zwei-Spalten-Raster */
.grid--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.col--media {
    display: flex;
    justify-content: center;
}

.center {
    text-align: center;
}

.img-block {
    width: 100%;
    max-width: 620px;
}

/* ===================================================================
   TYPOGRAFIE
   =================================================================== */
.heading {
    font-weight: bold;
    font-size: 22px;
    margin: 0 0 26px;
}

.heading--name {
    font-size: 26px;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 34px;
}

.heading--left {
    text-align: left;
}

.lead {
    font-weight: bold;
    font-size: 20px;
    margin: 0 0 24px;
}

.text {
    margin: 0 0 24px;
}

.mail-link {
    color: #0000ee;
    text-decoration: underline;
}

/* ---------- Leistungen-Liste ---------- */
.leistungen-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.leistungen-list li {
    margin: 6px 0;
    font-size: 19px;
}

/* ===================================================================
   URLAUBSHINWEISE (Platz reserviert, damit Höhe gleich bleibt)
   =================================================================== */
.urlaub {
    /* Reservierte Höhe für bis zu 3 Urlaubs-Zeilen.
       So bleibt der Container gleich hoch, egal ob Hinweise
       angezeigt werden oder nicht. */
    min-height: 150px;
}

.urlaub-text {
    color: var(--rot);
}

/* ===================================================================
   TERMIN-BUTTON
   =================================================================== */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 22px;
    background: #eeeeee;
    border: 1px solid #d5d5d5;
    border-radius: 4px;
    text-decoration: underline;
    font-size: 18px;
    color: var(--text);
    transition: background 0.15s ease;
}

.btn:hover,
.btn:focus {
    background: #e0e0e0;
}

.btn-icon {
    flex: 0 0 auto;
}

/* ===================================================================
   KONTAKTFORMULAR
   =================================================================== */
.col--form {
    text-align: left;
    max-width: 520px;
    width: 100%;
    justify-self: start;
}

.contact-form {
    display: block;
}

.form-row {
    margin-bottom: 18px;
    display: flex;
    flex-direction: column;
}

.form-row label {
    margin-bottom: 6px;
    font-size: 17px;
}

.req {
    color: var(--rot);
}

.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row textarea {
    padding: 8px 10px;
    border: 1px solid #999;
    border-radius: 3px;
    font-family: inherit;
    font-size: 16px;
    background: #fff;
    width: 100%;
}

.form-row textarea {
    resize: vertical;
    min-height: 120px;
}

.form-row--check {
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
}

.form-row--check label {
    margin-bottom: 0;
}

/* Honeypot – für Menschen unsichtbar, Bots füllen es aus */
.hp-field {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.submit-btn {
    padding: 8px 18px;
    font-family: inherit;
    font-size: 17px;
    background: #e6e6e6;
    border: 1px solid #adadad;
    border-radius: 3px;
    cursor: pointer;
}

.submit-btn:hover,
.submit-btn:focus {
    background: #dcdcdc;
}

/* Statusmeldungen des Formulars */
.form-msg {
    padding: 12px 14px;
    border-radius: 4px;
    margin-bottom: 18px;
    font-size: 17px;
}

.form-msg--ok {
    background: #e3f4e3;
    border: 1px solid #9fce9f;
}

.form-msg--error {
    background: #f7e0e0;
    border: 1px solid #d99;
}

/* ===================================================================
   KARTE (statisches Bild, volle Breite)
   =================================================================== */
.map-wrap {
    margin-top: 60px;
    width: 100%;
}

.map-img {
    display: block;
    width: 100%;      /* über die ganze Breite */
    height: auto;
    max-width: none;  /* hebt die Begrenzung von .img-block auf */
}

/* ===================================================================
   FOOTER
   =================================================================== */
.site-footer {
    background: var(--weiss);
    border-top: 1px solid #e6e6e6;
    padding: 22px 0;
}

.footer-inner {
    max-width: var(--max-breite);
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    justify-content: space-between;   /* links Copyright, rechts Impressum */
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 16px;
}

.footer-inner p {
    margin: 0;
}

.footer-left a,
.footer-right a {
    color: var(--text);
    text-decoration: underline;
}

.footer-left a:hover,
.footer-left a:focus,
.footer-right a:hover,
.footer-right a:focus {
    color: #000;
}

/* ===================================================================
   IMPRESSUM / DSGVO – SEITE
   =================================================================== */
.impressum {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 40px;
}

.impressum .heading {
    text-align: left;
}

.impressum-adresse {
    margin: 0 0 30px;
}

.impressum-adresse p {
    margin: 2px 0;
}

.impressum-block {
    margin-bottom: 26px;
}

.impressum-block h3 {
    font-size: 20px;
    margin: 0 0 8px;
}

.impressum-block p {
    margin: 0 0 12px;
}

.impressum .dsgvo-titel {
    font-size: 22px;
    font-weight: bold;
    margin: 40px 0 24px;
}

/* ===================================================================
   RESPONSIVE
   =================================================================== */
@media (max-width: 900px) {
    body {
        font-size: 17px;
    }

    .section {
        padding: 45px 0;
    }

    .grid--2 {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    /* Bild in bestimmten Sektionen über den Text stellen (wie Original) */
    #termine .col--media,
    #ueber-mich .col--media {
        order: -1;
    }

    .col--form {
        max-width: 100%;
        justify-self: stretch;
    }

    /* Mobiles Menü */
    .nav-toggle {
        display: block;
    }

    .nav-list {
        display: none;
        flex-direction: column;
        gap: 0;
    }

    .nav-list.is-open {
        display: flex;
    }

    .nav-list a {
        text-align: center;
        border-top: 1px solid #eee;
    }

    /* Footer untereinander */
    .footer-inner {
        flex-direction: column;
        text-align: center;
        gap: 10px;
        padding: 0 20px;
    }

    .impressum {
        padding: 0 20px;
    }
}