/* ==========================================
   voninscad.ch Webseite
   passend zu standard.html 
   ========================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

/*  ==========================================
    Schriften
    ==========================================*/

/* Hauptschrift */

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex-sans/IBMPlexSans-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
}



/* Akzentschrift */

@font-face {
    font-family: "osifont";
    src: url("../fonts/osifont/osifont.woff") format("woff");
    font-weight: 400;
    font-style: normal;
}



/* =====================================================
   Reset
===================================================== */


/* =====================================================
   Variabeln
===================================================== */


:root {
    /*Schriftarten*/
    --mvi-schrift-haupt: "IBM Plex Sans", Arial, sans-serif;
    --mvi-schrift-akzent: "osifont", monospace;

    /* Schriftgrössen und -stärken*/
    --mvi-h1-size: 64px;
    --mvi-h1-weight: 600;

    --mvi-h2-size: 40px;
    --mvi-h2-weight: 600;

    --mvi-h3-size: 26px;
    --mvi-h3-weight: 500;

    --mvi-p-size: 18px;
    --mvi-p-weight: 400;

    --mvi-p-small-size: 16px;
    --mvi-p-small-weight: 400;

    --mvi-tec-size: 16px;

    /*Farben*/
    --mvi-akzent-dark: #003f3f;
    --mvi-akzent-700: #006666;
    --mvi-akzent-500: #008080;
    --mvi-akzent-300: #4dadad;
    --mvi-akzent-100: #d9eeee;

    --mvi-neutral-schwarz: #111111;
    --mvi-neutral-dunkelgrau: #333333;
    --mvi-neutral-mittelgrau: #707070;
    --mvi-neutral-liniengrau: #d9d9d9;
    --mvi-neutral-hellgrau: #f4f4f4;
    --mvi-neutral-weiss: #ffffff;

    /*Linienstärken*/
    --mvi-linie-normal: 1px;
    --mvi-linie-dick: 2px;

    /*Grundraster 8,16,24,32,48,64,96 px*/
    --mvi-basiseinheit-1: 8px;
    --mvi-basiseinheit-2: 16px;
    --mvi-basiseinheit-3: 24px;
    --mvi-basiseinheit-4: 32px;
    --mvi-basiseinheit-6: 48px;
    --mvi-basiseinheit-8: 64px;
    --mvi-basiseinheit-12: 96px;

    /*Maximale Inhaltsbreite*/
    --mvi-inhaltsbreite: 1280px;

    /*Grundlinienraster / Typografisches Raster 4px*/
    --mvi-typoraster-1: 4px;
    --mvi-typoraster-6: 24px;
    --mvi-typoraster-7: 28px;
    --mvi-typoraster-8: 32px;
    --mvi-typoraster-10: 40px;
    --mvi-typoraster-11: 44px;
    --mvi-typoraster-15: 60px;
    --mvi-typoraster-24: 96px;

    /* Boxen und Zeilenhöhen*/
    --mvi-linkzeile-hoehe: 40px;



}

/* ==========================================
   Grundlayout
   ========================================== */

html,
body {
    font-family: var(--mvi-schrift-haupt);

    background: #f4f4f4;

    margin: 0;
    padding: 0;


}


/* ==========================================
   Typografie
   ========================================== */


h1 {
    font-family: var(--mvi-schrift-haupt);
    font-size: var(--mvi-h1-size);
    font-weight: var(--mvi-h1-weight);
    line-height: var(--mvi-typoraster-15);
    text-align: center;
    hyphens: auto;
    -webkit-hyphens: auto;
    text-transform: uppercase;

}

h2 {
    font-family: var(--mvi-schrift-haupt);
    font-size: var(--mvi-h2-size);
    font-weight: var(--mvi-h2-weight);
    line-height: var(--mvi-typoraster-11);
    hyphens: auto;
    -webkit-hyphens: auto;
    text-transform: uppercase;
}

h3 {
    font-family: var(--mvi-schrift-haupt);
    font-size: var(--mvi-h3-size);
    font-weight: var(--mvi-h3-weight);
    line-height: var(--mvi-typoraster-8);
    text-transform: uppercase;
}

p, ul {
    font-family: var(--mvi-schrift-haupt);
    font-size: var(--mvi-p-size);
    font-weight: var(--mvi-p-weight);
    line-height: var(--mvi-typoraster-7);

    hyphens: auto;
    -webkit-hyphens: auto;
}


/* Akzentschriften */
.mvi-abschnitt-titel-nummer,
.mvi-projektdaten,
.mvi-massangabe,
.mvi-technisches-label {
    font-family: var(--mvi-schrift-akzent);
}


h1:empty,
h2:empty,
h3:empty,
p:empty {
    display: none;
}

/* =====================================================
   Links
===================================================== */
a,
.mvi-product-card-linktext {
    font-family: var(--mvi-schrift-akzent);
    font-size: var(--mvi-p-size);
    font-weight: var(--mvi-h2-weight);
    line-height: var(--mvi-typoraster-7);
    color: var(--mvi-akzent-500);
    text-decoration: none;
}

/* =====================================================
   Buttons
===================================================== */


/* =====================================================
   Formulare
===================================================== */


/* =====================================================
   Gemeinsame Modulklassen
===================================================== */


.mvi-module {
    width: 100%;
    margin-bottom: var(--mvi-basiseinheit-2);
    
}


/* ==========================================
   Seitencontainer
   ========================================== */

.mvi-site-wrapper {

    max-width: var(--mvi-inhaltsbreite);

    margin: 0 auto;

    background: var(--mvi-neutral-weiss);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04),
        0 10px 30px rgba(0, 0, 0, 0.06);

    padding-left: var(--mvi-basiseinheit-1);
    padding-right: var(--mvi-basiseinheit-1);
    padding-top: var(--mvi-basiseinheit-1);
    padding-bottom: var(--mvi-basiseinheit-1);

    margin-top: var(--mvi-basiseinheit-2);
    margin-bottom: var(--mvi-basiseinheit-2);
}

.mvi-standard-seite {

    background: #ffffff;


    /*padding: 0px var(--mvi-basiseinheit) 0px var(--mvi-basiseinheit);*/

    display: flex;

    flex-direction: column;
    border-style: solid;
    border-width: var(--mvi-linie-normal);
    border-color: var(--mvi-neutral-liniengrau);

    /*gap: var(--mvi-basiseinheit);*/
}

.mvi-standard-seite > section.mvi-module:first-of-type {
    margin-top: var(--mvi-basiseinheit-2);
}

/* ------------------------------------------
Globale Bild-Lightbox
------------------------------------------ */

.mvi-vergroesserbar {
    cursor: zoom-in;
}


/* Hintergrund */

.mvi-lightbox {
    position: fixed;
    inset: 0;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 30px;

    background: rgba(0, 0, 0, 0.85);

    z-index: 9999;
}


/* Sichtbare Lightbox */

.mvi-lightbox.aktiv {
    display: flex;
}


/* Vergrössertes Bild */

.mvi-lightbox img {
    display: block;

    max-width: 90vw;
    max-height: 90vh;

    width: auto;
    height: auto;

    object-fit: contain;
}


/* Schliessen */

.mvi-lightbox-schliessen {
    position: absolute;

    top: 20px;
    right: 25px;

    border: 0;
    padding: 5px 10px;

    background: transparent;

    color: #fff;
    font-size: 40px;
    line-height: 1;

    cursor: pointer;
}








/* =====================================================
   Responsive Anpassungen
===================================================== */


/* Mobile */

/* Mobile Hochformat */

@media (max-width: 768px) and (orientation: portrait),
(orientation: landscape) and (max-height: 600px) {

    /*:root kann auch hier definiert werden, und Konstanten für die media-query einfach 
überschrieben werden.*/

    :root {
        --mvi-h1-size: 40px;
        --mvi-h2-size: 28px;
        --mvi-h3-size: 22px;
        --mvi-p-size: 16px;
        --mvi-p-small-size: 14px;
    }


    .mvi-site-wrapper {
        margin: 0;
        padding: 0;
        box-shadow: none;
    }


    .mvi-standard-seite {

        margin: 0;
        padding: 0;

        border-left: 0;
        border-right: 0;

        display: flex;
        flex-direction: column;

        gap: calc(0.1 * var(--mvi-basiseinheit-1));

    }

    /* ==========================================
   Typografie
   ========================================== */

    h1 {
        font-size: var(--mvi-h1-size);
        font-weight: var(--mvi-h1-weight);
        line-height: var(--mvi-typoraster-10);
    }

    h2 {
        font-size: var(--mvi-h2-size);
        font-weight: var(--mvi-h2-weight);
        line-height: var(--mvi-typoraster-7);
    }

    h3 {
        font-size: var(--mvi-h3-size);
        font-weight: var(--mvi-h3-weight);
        line-height: var(--mvi-typoraster-6);
    }

    p {
        font-size: var(--mvi-p-size);
        font-weight: var(--mvi-p-weight);
        line-height: var(--mvi-typoraster-6);
        text-align: left;

    }

}