/* arzberger dr2pat - main.css */
/* stuff that is used all over the site */
/* this file is loaded with every page */
/* (c) wind 2026 */

/* # CSS1 ROOT ── */
:root {
    --content-width-monitor-max: 700px; 
    /* @media (max-width: 760px) */
    --header-width-monitor-max: var(--content-width-monitor-max);
    --footer-width-monitor-max: var(--content-width-monitor-max);
    --header-height: 8rem;
    --footer-height: 6rem;
    --content-margin-top: 1.6rem;
    --content-margin-bottom: 2rem;
}

* { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
}

body {
    font-family: 'TikTok Sans', sans-serif;
    background: var(--site-bg);
    color: var(--text-dark);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-size: 11pt;
}


.checkbox label  {
    padding-left: 0.4rem;
    margin-bottom: 0.2rem;
}

:root {   
    --header-width-tablet-max: var(--content-width-tablet-max);
    --footer-width-tablet-max: var(--content-width-tablet-max);

    --header-width-mobile-max: var(--content-width-mobile-max);
    --footer-width-mobile-max: var(--content-width-mobile-max);
}

/* GENERAL DEFINITIONS */

.no-break  {
    white-space: nowrap;
}

/* # CSS1 HEAD ── */


    /* # CSS2 STANDARD header */

header {
    background: var(--header-bg);
    /* height: var(--header-height); */
    display:flex;
    justify-content: center;
    align-items: center;
    /* position: sticky; */
    top: 0;

    .container-01 {
        display:flex;
        justify-content: center;
        align-items: center;
        max-width: var(--header-width-monitor-max);
        width: var(--header-width-monitor-max);
    }

    .container-02  {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center; 
        flex-wrap: nowrap;
        margin-bottom: 2.4rem;
        margin-top: 2.4rem;
        width: 93%;
        max-width: 93%;
        gap: 0.3rem;
    }
}

/* PATIENT:INNENPORTAL + PAGE TITLE: */
header .container-nav .page-title, .ordi-block .subtitle  {
    font-size: 1.2rem;
    font-weight: 700;
    font-family: 'Beiruti', sans-serif; 
    color: var(--header-secondary-txt);
    letter-spacing: 0.1em;
    text-transform: uppercase; 
}


.ordi-block {    
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    padding-right: 0.8rem;
    min-width: 10rem;
    border-right: 1px solid var(--header-border);

    .title {   /* # weiter hier */
        font-size: 1rem; 
        font-weight: 600;
        letter-spacing: 0.06rem;
        color: var(--header-primary-txt);
    }

    .subtitle {
        padding-top: 0.3rem;
    }
}

header .container-nav  {  /* NAV */
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    padding:0;
    margin:0;
    margin-right: 1rem;
    color: var(--header-secondary-txt);

    .page-title  {    
        flex-shrink: 0;
        padding-right: 0.2rem;
    }
}

header nav {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;   
    align-items: center;
    /* line-height: 1.5;          */
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    font-family: 'Beiruti', sans-serif; 

    img { 
        width: 26px; 
        vertical-align: middle;
    }
}

header nav a {
    border-radius: 4px;
    text-decoration: none;
    color: var(--header-nav-link-secondary-txt-std);
    transition: color 0.15s, background 0.15s;
}

nav a + a::before {
    content: "|";
    margin-right: 7px;
    margin-left: 7px;
}

nav a.profile-icon::before  {
    content: none;
}

header nav a:hover {
    cursor: pointer;
    font-weight: 600;
    background: var(--header-nav-link-bg-hover);
    color: var(--header-nav-link-secondary-txt-hover);
}

nav a.profile-icon:hover  {  
    background: none;
    opacity: 0.7;
}

header nav a.active_page {
    font-weight: 500;
    color: var(--header-nav-link-primary-txt-std);
}


/* # CSS1 MAIN ── */

main {
    flex: 1;
    width: var(--content-width-monitor-max);
    max-width: var(--content-width-monitor-max);
    margin: var(--content-margin-top) auto calc(var(--footer-height) + var(--content-margin-bottom)) auto;  
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: var(--main-bg);
    border-radius: 2rem;
    box-shadow: 4px 4px 9px rgba(0, 0, 0, 0.1);

    h1, h2, h3, h4, h5  {
        text-align: center;
        font-family: "Livvic", sans-serif; 
        letter-spacing: 0.03rem;
    }

    a { 
        /* display: contents;  */
        color: var(--main-link-primary-txt-std);
        font-family: "Alegreya Sans SC", sans-serif;  
        font-style: italic;
        font-weight: 500;
    } 

    a:hover {  
        /* background: var(--main-link-primary-bg-hover); */
        color: var(--main-link-primary-txt-hover);
        transition: color 1s;
    }

    a.normalize  {
        font-family: "Beiruti", sans-serif;
        font-style: normal;
        cursor: pointer;
        letter-spacing: 0.2rem;
        text-decoration: none;
    }

    a.white {
        color: var(--white);
    }


    label.main-link-primary  { 
        cursor: pointer;
        text-decoration: underline;
        color: var(--main-link-primary-txt-hover);
    }

    label.main-link-primary:hover  {
        color: var(--main-link-primary-txt-hover);
        text-decoration: underline;
        transition: color 1s;
    }


    .content {    
        width: 80%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 90%;
        margin: 0;
        padding: 0; /* # weiter .content */
        /* border: 1px dashed red;   */
    }

    .p-confirmation  {
        width: 68%;
        max-width: 68%;
        font-size: 1.2rem;
        text-align: center;
    }
}


main {

    h1  {
        font-size: 1.5rem;
        color: var(--text-dark);
        margin-bottom: 0.5rem;
    }

    p  {
        margin: 0;
        padding: 0;
    }


    .main-txt-highlight-primary, .main-txt-highlight-secondary {
        font-family: "Alegreya Sans SC", sans-serif;  
        font-style: italic;
    }

    .main-txt-highlight-primary  {
        color: var(--main-txt-highlight-primary);
        font-weight: 500;
    }

    .main-txt-highlight-secondary  {
        color: var(--main-txt-highlight-secondary);
        font-weight: 500;
    }

    .lead-in  {
        font-weight: 600;
        color: var(--main-txt-highlight-secondary)
    }

/* pages, sections */

    #impressum, #support {

        .layout-wrapper  {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 60%;
        }

        p  {
            line-height: 1.3rem;
            font-size: 0.9rem;
            text-align: center;
        }
    }

    #contact {
        .layout-wrapper  {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 73%;
        }
        
        p  {
            line-height: 1.6rem;
            font-size: 1rem;
            text-align: center;
        }

        p.justify  {
            text-align: justify;
        }

        p.contact-info  {
            text-align: center;
        }

        .wrapper_row  {
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            gap: 3rem;
            line-height: 1.7rem;

            .box_left, .box_right  {
                border: 1px dashed #CCC;
                padding: 0.6rem;
                border-radius: 0.4rem;
            }

            .box_left  {
            }

            .box_right  {
            }
        }

    }

    .TODO  {
        font-weight: 700;
        font-family: 'Figtree', sans-serif; 
        font-size: 1.2rem;
        margin-top: 1.5rem;
        padding: 1.5rem 1rem;
        line-height: 1.7rem;
        border-radius: 0 0.4rem 0.4rem 0;
        border-radius: 0.4rem;
        border-left: 7px solid var(--accent-A);
        border-right: 7px solid var(--accent-A);
        background: #bbbb0011; 
        color: var(--accent-A);
        size: 2rem;
        box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.5);
    }
}


/* # CSS1 LOGO ── */

main .logo {
    display:flex;
    justify-content: center;
    align-items: center;
    width: 100%;

    a  {
        display: contents;
    }
}

main .logo img  {
    width: 39%;
}


/* # CSS1 FOOTER ── */
    footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        height: var(--footer-height);
        background: var(--footer-bg);

        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--footer-primary-txt);  /* the | change! */
    }

    footer .container-01  {
        max-width: var(--footer-width-monitor-max);
        width: var(--footer-width-monitor-max);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    footer nav {
        width: 93%;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 1rem;
        line-height: 1.5rem;
        /* gap: 0; */
        font-size: 0.9rem;
        text-align: center;
        flex-wrap: wrap;
    }

    footer nav a {
        color: var(--footer-nav-link-primary-txt-std);
        letter-spacing: 0.04rem;
        text-decoration: none;
        transition: color 0.15s;
    }

    footer nav a:hover {
        background-color: var(--footer-nav-hover-bg);
        color: var(--footer-nav-link-primary-txt-hover);  /* #d2d2d2 */
    }




@media (max-width: 760px) {
    
/* # CSS1 RESPONSIVE footer */

    footer {
        .container-01  {
            /* max-width: var(--content-width-mobile-max); */
            max-width: 90%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        footer nav {
            width: 93%;
            line-height: 1.5rem;
        }
    }
}


@media (max-width: 760px) {
    
/* # CSS1 RESPONSIVE header */

    header {

        .container-02  {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 1.5rem;
            margin-top: 1.5rem;
            width: 90%;
            max-width: 90%;
        }

        .container-nav .page-title, .ordi-block .subtitle  {
            font-size: 1.3rem;
            font-weight: 700;
            letter-spacing: 0.1em;
        }

        .ordi-block  {
            padding:0;
            margin:0;
            align-items: center;
            width: 100%;
            border: 0;
        }

        .ordi-block .title  {
            order: 2;
            margin-top: 0.2rem;
            font-size: 1.2rem;
        }

        .ordiblock .subtitle  {
            order: 1;
        }

        .container-nav  {  /* NAV */
            align-items: center;
        }

        .container-nav .page-title   {  /* NEUE ANFRAGE */
            order: 1; 
            margin-top: 0.7rem;
            padding-right: 0;
        }

        .container-nav nav { 
            order: 2;
            border: 0;
            margin-top: 0.1rem;
            font-size: 1.4rem;
        }
    }
}

/* # CSS1 RESPONSIVE main ── */

@media (max-width: 760px) {
    
    main {
        flex: 1;
        /* width: var(--content-width-mobile-max); */
        /* max-width: var(--content-width-mobile-max); */

        max-width: 95%;
        margin: var(--content-margin-top) auto calc(var(--footer-height) + var(--content-margin-bottom)) auto;  
        padding: 0;

        .content  {
            width: 95%;
            max-width: 95%;
        }

        .spacer_ghost_fix_h1  {
            height: 1.4rem;
            height: 0;
        } 

        h1  { }

        main .information  {
            font-size: 0.9rem;
        }

        .main-txt-highlight-primary  {
            /* font-size: 1rem; */
        }

        .data  {
            width: 100%;
            min-width: 90%;
        }

        .data fieldset input  {
            font-size: 1.1rem;
        }

        .data input:focus  {
            font-size: 1.1rem;
        }

        .info-window  {
            padding: 20px;
            width: 90vw;
            max-width: 90vw;
            box-sizing: border-box;
        }

        .information  {
            font-size: 1rem;
        }

        .information .main-txt-highlight-primary, main .information .main-txt-highlight-secondary  {
            font-size: 1.1rem;
        }

        .chatbox  {

            .wrap_right .mbox_client, .wrap_left .mbox_medic {
                width: 100%;
            }

            .sendbox  {
                .messagebody { 
                    textarea.chat_input  {
                        min-height: 20rem;
                    }
                }
            }
        }
    }
}




/* # CSS1 spacer */

main .spacer_dynamic { height: 5dvh; }

main .spacer_ghost  {  /* # todo this can be deleted after replacing every "spacer_ghost" with "ghost"*/
        margin:0; 
        padding:0; 
        width: 100%;
    }

.spacer_pink  {  /* not used anywhere, it's just an idea */
    margin:0; 
    padding:0; 
    width: 100%;
    background-color: #88227711;
}

main .spacer_ghost_fix_h1  { height: 1.4rem; }  /* sits above h1 to make sure it can breathe */

.ghost {  /* this is the new "spacer_ghost" */
    margin:0; 
    padding:0; 
    width: 100%;
}

.spacer_01  { height: 0.1rem; }
.spacer_02  { height: 0.2rem; }
.spacer_03  { height: 0.3rem; }
.spacer_04  { height: 0.4rem; }
.spacer_05  { height: 0.5rem; }
.spacer_06  { height: 0.6rem; }
.spacer_07  { height: 0.7rem; }
.spacer_08  { height: 0.8rem; }
.spacer_09  { height: 0.9rem; }
.spacer_10  { height: 1.0rem; }
.spacer_11  { height: 1.1rem; }
.spacer_12  { height: 1.2rem; }
.spacer_13  { height: 1.3rem; }
.spacer_14  { height: 1.4rem; }
.spacer_15  { height: 1.5rem; }
.spacer_16  { height: 1.6rem; }
.spacer_17  { height: 1.7rem; }
.spacer_18  { height: 1.8rem; }
.spacer_19  { height: 1.9rem; }
.spacer_20  { height: 2.0rem; }
.spacer_21  { height: 2.1rem; }
.spacer_22  { height: 2.2rem; }
.spacer_23  { height: 2.3rem; }
.spacer_24  { height: 2.4rem; }
.spacer_25  { height: 2.5rem; }
.spacer_26  { height: 2.6rem; }
.spacer_27  { height: 2.7rem; }
.spacer_28  { height: 2.8rem; }
.spacer_29  { height: 2.9rem; }
.spacer_30  { height: 3.0rem; }
.spacer_35  { height: 3.5rem; }
.spacer_40  { height: 4.0rem; }
.spacer_45  { height: 4.5rem; }
.spacer_50  { height: 5.0rem; }
.spacer_55  { height: 5.5rem; }
.spacer_60  { height: 6.0rem; }
.spacer_65  { height: 6.5rem; }
.spacer_70  { height: 7.0rem; }