﻿/*
Theme Name: Degefest 2025
Author: Felix Geiger Softwareentwicklung
Description: Theme für Degefest
Version: 0.1
Text Domain: dgf

THIS IS A PROTECTED PIECE OF SOFTWARE UNDER GERMAN IP-LAW (UrhG).
YOU ARE NOT PERMITTED TO USE THIS SOFTWARE OUTSIDE OF THE LICENCED
WEBSITE (degefest.de). YOU ARE NOT ALLOWED TO COPY ANY PARTS OR MAKE DERIVED WORKS.

AGAIN, THIS IS NOT UP FOR GRABS. IF YOU WANT TO USE IT, BUY IT.
AUTHOR AND HOLDER OF COPYRIGHT IS FELIX GEIGER, kontakt@felixgeiger.de
*/


/**** RESETS FROM "CONDENSED ERIC MEYER" ****/
blockquote,body,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{padding:0;margin:0}abbr,acronym,fieldset,img{border:0}table{border-collapse:collapse;border-spacing:0}ol,ul{list-style:none}address,caption,cite,code,dfn,em,strong,th,var{font-weight:400;font-style:normal}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-weight:400;font-size:100%}q:after,q:before{content:''}


/**** CLEARFIX ****/
.clearfix:after{content:" ";visibility:hidden;display:block;height:0;clear:both}


/**** FONTS ****/
/* roboto-300 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 300;
    src: url('./fonts/roboto-v48-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* roboto-300italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 300;
    src: url('./fonts/roboto-v48-latin-300italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* roboto-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    src: url('./fonts/roboto-v48-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* roboto-italic - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 400;
    src: url('./fonts/roboto-v48-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* roboto-700 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 700;
    src: url('./fonts/roboto-v48-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

body{
    font-family: 'Roboto', Helvetica, Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    line-height: 1.4;
    background-color: #fff;
    color: var(--ci-grey);
    font-size: var(--base-font-size);
}
/**** /FONTS ****/




/**** GLOBALS ****/
:root {
    --ci-grey: #585556;
    --ci-white: #E4E4E4;
    --ci-red-on-white2: #B2262E;



    --container-width: 1640px;
    --col-margin: 1rem; /* 16px */
    --col-margin: 16px; /* 16px */


    --base-font-size: 1rem; /* 18px */

    --base-margin: 1rem; /* 16px */
    --margin-0_25: calc(var(--base-margin) * 0.25); /* 4px */
    --margin-0_5: calc(var(--base-margin) * 0.5); /* 8px */
    --margin-0_75: calc(var(--base-margin) * 0.75); /* 12px */
    --margin-1: var(--base-margin); /* 16px */
    --margin-1_5: calc(var(--base-margin) * 1.5); /* 24px */
    --margin-2: calc(var(--base-margin) * 2); /* 32px */
    --margin-2_5: calc(var(--base-margin) * 2.5); /* 40px */
    --margin-3: calc(var(--base-margin) * 3); /* 48px */
    --margin-3_5: calc(var(--base-margin) * 3.5); /* 56px */
    --margin-4: calc(var(--base-margin) * 4); /* 64px */
    --margin-5: calc(var(--base-margin) * 5); /* 80px */
    --margin-5_5: calc(var(--base-margin) * 5.5); /* 88px */
    --margin-6: calc(var(--base-margin) * 6); /* 96px */
    --margin-6_5: calc(var(--base-margin) * 6.5); /* 104px */
    --margin-7: calc(var(--base-margin) * 7); /* 112px */
    --margin-7_5: calc(var(--base-margin) * 7.5); /* 120px */
    --margin-8: calc(var(--base-margin) * 8); /* 128px */
    --margin-9: calc(var(--base-margin) * 9); /* 144px */
    --margin-10: calc(var(--base-margin) * 10); /* 160px */

    --base-padding: 1rem; /* 16px */
    --padding-0_25: calc(var(--base-padding) * 0.25); /* 4px */
    --padding-0_5: calc(var(--base-padding) * 0.5); /* 8px */
    --padding-0_75: calc(var(--base-padding) * 0.75); /* 12px */
    --padding-1: var(--base-padding); /* 16px */
    --padding-1_5: calc(var(--base-padding) * 1.5); /* 24px */
    --padding-2: calc(var(--base-padding) * 2); /* 32px */
    --padding-2_5: calc(var(--base-padding) * 2.5); /* 40px */
    --padding-3: calc(var(--base-padding) * 3); /* 48px */
    --padding-3_5: calc(var(--base-padding) * 3.5); /* 56px */
    --padding-4: calc(var(--base-padding) * 4); /* 64px */
    --padding-5: calc(var(--base-padding) * 5); /* 80px */
    --padding-5_5: calc(var(--base-padding) * 5.5); /* 88px */
    --padding-6: calc(var(--base-padding) * 6); /* 96px */
    --padding-6_5: calc(var(--base-padding) * 6.5); /* 104px */
    --padding-7: calc(var(--base-padding) * 7); /* 112px */
    --padding-7_5: calc(var(--base-padding) * 7.5); /* 120px */
    --padding-8: calc(var(--base-padding) * 8); /* 128px */
    --padding-9: calc(var(--base-padding) * 9); /* 144px */
    --padding-10: calc(var(--base-padding) * 10); /* 160px */
}


/* Margin Top */
.margin-top-0_25 { margin-top: var(--margin-0_25) }
.margin-top-0_5 { margin-top: var(--margin-0_5) }
.margin-top-0_75 { margin-top: var(--margin-0_75) }
.margin-top-1 { margin-top: var(--margin-1) }
.margin-top-1_5 { margin-top: var(--margin-1_5) }
.margin-top-2 { margin-top: var(--margin-2) }
.margin-top-2_5 { margin-top: var(--margin-2_5) }
.margin-top-3 { margin-top: var(--margin-3) }

/* Margin Right */
.margin-right-0_25 { margin-right: var(--margin-0_25) }
.margin-right-0_5 { margin-right: var(--margin-0_5) }
.margin-right-0_75 { margin-right: var(--margin-0_75) }
.margin-right-1 { margin-right: var(--margin-1) }
.margin-right-1_5 { margin-right: var(--margin-1_5) }
.margin-right-2 { margin-right: var(--margin-2) }
.margin-right-2_5 { margin-right: var(--margin-2_5) }
.margin-right-3 { margin-right: var(--margin-3) }

/* Margin Bottom */
.margin-bottom-0_25 { margin-bottom: var(--margin-0_25) }
.margin-bottom-0_5 { margin-bottom: var(--margin-0_5) }
.margin-bottom-0_75 { margin-bottom: var(--margin-0_75) }
.margin-bottom-1 { margin-bottom: var(--margin-1) }
.margin-bottom-1_5 { margin-bottom: var(--margin-1_5) }
.margin-bottom-2 { margin-bottom: var(--margin-2) }
.margin-bottom-2_5 { margin-bottom: var(--margin-2_5) }
.margin-bottom-3 { margin-bottom: var(--margin-3) }

/* Margin Left */
.margin-left-0_25 { margin-left: var(--margin-0_25) }
.margin-left-0_5 { margin-left: var(--margin-0_5) }
.margin-left-0_75 { margin-left: var(--margin-0_75) }
.margin-left-1 { margin-left: var(--margin-1) }
.margin-left-1_5 { margin-left: var(--margin-1_5) }
.margin-left-2 { margin-left: var(--margin-2) }
.margin-left-2_5 { margin-left: var(--margin-2_5) }
.margin-left-3 { margin-left: var(--margin-3) }

/* Padding Top */
.padding-top-0_25 { padding-top: var(--padding-0_25) }
.padding-top-0_5 { padding-top: var(--padding-0_5) }
.padding-top-0_75 { padding-top: var(--padding-0_75) }
.padding-top-1 { padding-top: var(--padding-1) }
.padding-top-1_5 { padding-top: var(--padding-1_5) }
.padding-top-2 { padding-top: var(--padding-2) }
.padding-top-2_5 { padding-top: var(--padding-2_5) }
.padding-top-3 { padding-top: var(--padding-3) }

/* Padding Right */
.padding-right-0_25 { padding-right: var(--padding-0_25) }
.padding-right-0_5 { padding-right: var(--padding-0_5) }
.padding-right-0_75 { padding-right: var(--padding-0_75) }
.padding-right-1 { padding-right: var(--padding-1) }
.padding-right-1_5 { padding-right: var(--padding-1_5) }
.padding-right-2 { padding-right: var(--padding-2) }
.padding-right-2_5 { padding-right: var(--padding-2_5) }
.padding-right-3 { padding-right: var(--padding-3) }

/* Padding Bottom */
.padding-bottom-0_25 { padding-bottom: var(--padding-0_25) }
.padding-bottom-0_5 { padding-bottom: var(--padding-0_5) }
.padding-bottom-0_75 { padding-bottom: var(--padding-0_75) }
.padding-bottom-1 { padding-bottom: var(--padding-1) }
.padding-bottom-1_5 { padding-bottom: var(--padding-1_5) }
.padding-bottom-2 { padding-bottom: var(--padding-2) }
.padding-bottom-2_5 { padding-bottom: var(--padding-2_5) }
.padding-bottom-3 { padding-bottom: var(--padding-3) }

/* Padding Left */
.padding-left-0_25 { padding-left: var(--padding-0_25) }
.padding-left-0_5 { padding-left: var(--padding-0_5) }
.padding-left-0_75 { padding-left: var(--padding-0_75) }
.padding-left-1 { padding-left: var(--padding-1) }
.padding-left-1_5 { padding-left: var(--padding-1_5) }
.padding-left-2 { padding-left: var(--padding-2) }
.padding-left-2_5 { padding-left: var(--padding-2_5) }
.padding-left-3 { padding-left: var(--padding-3) }

/* Semantic */
.mt-huge { margin-top: var(--margin-10); } /* 160 px*/
.mb-default { margin-bottom: var(--margin-3); } /* 48 px*/
.mt-default { margin-top: var(--margin-3); } /* 48 px*/
.mb-medium { margin-bottom: var(--margin-2); } /* 32px */
.mt-medium { margin-top: var(--margin-2); } /* 32x */
.mb-small { margin-bottom: var(--margin-1); } /* 16px */
.mt-small { margin-top: var(--margin-1); } /* 32x */
.padding-1 { padding: var(--margin-1) }
.pt-default { padding-top: var(--margin-3); } /* 48 px*/


html, body {
    margin: 0;
    padding: 0;
    background-color: #fff;
}

main {
    margin: 0 auto;
}

.layout-container {
    width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

.mobile-only {
    display: none !important;
}

a, a:visited {
    color: inherit;
    text-decoration: none;
}

.no-margin {
    margin: 0 !important;
}

.is-block {
    display: block;
}

/* flex */
.spaced-align {
    display: flex;
    justify-content: space-between !important;
}

.left-align {
    display: flex;
    justify-content: flex-start !important;
}

.right-align {
    display: flex;
    justify-content: flex-end !important;
}

.center-align {
    display: flex;
    justify-content: center !important;
}

.middle-align {
    display: flex;
    align-items: center !important;
}

.top-align {
    display: flex;
    align-items: flex-start !important;
}

.stretch-align {
    display: flex;
    align-items: stretch !important;
}

.bottom-align {
    display: flex;
    align-items: flex-end !important;
}

.col-align {
    flex-direction: column !important;
}

/* scale to container */
.full-container-width {
    width: 100%;
    height: auto;
}

.half-container-width {
    width: calc(50% - var(--margin-0_5));
    height: auto;
}

.max-container-width {
    max-width: 100%;
    height: auto;
    display: inline-block;
}

.max-half-container-width {
    max-width: calc(50% - var(--margin-0_5));
    height: auto;
}

/* images */
.square-image, .landscape-image  {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover ;
}

.square-image {
    aspect-ratio: 1;
}

.landscape-image {
    aspect-ratio: 2;
}

img.full-container-width, img.half-container-width, img.max-half-container-width {
    display: block;
}
/**** /GLOBALS ****/


/**** UI ****/
.scale-on-hover, .scale-child-on-hover > * {
    transition: transform 0.2s ease-out, background-color 0.2s ease-out;
    transform-origin: center;
}

.scale-on-hover:hover, .scale-child-on-hover:hover > * {
    transform: scale(1.1);
}

.as-pointer {
    cursor: pointer;
}
/**** /UI****/


/**** CMS ***/
.from-cms ul {
    list-style: none;
}

.from-cms ul li {
    list-style: disc outside;
    margin-left: 1em;
}

.from-cms ol li {
    list-style: decimal outside;
    margin-left: 1em;
}

.from-cms strong {
    font-weight: 700;
}

.from-cms p:not(:last-child), .from-cms ul:not(:last-child), .from-cms ol:not(:last-child) {
    margin-bottom: 1em;
}

.from-cms p:last-child, .from-cms ul:last-child, .from-cms ol:last-child {
    margin-bottom: 0;
}

.from-cms .video-wrapped {
    margin-left: auto;
    margin-right: auto;
}

.from-cms img {
    height: auto;
    max-width: 100%;
}

.from-cms .alignnone {
    display: block;
    float: none;
    clear: both;
}


.from-cms .alignleft {
    display: block;
    float: left;
    margin-right: 1em;
    margin-bottom: 1em;
}

.from-cms .aligncenter {
    display: block;
    float: none;
    margin-left: auto;
    margin-right: auto;
}

.from-cms .alignright {
    display: block;
    float: right;
    left: 1em;
    margin-bottom: 1em;
}

.from-cms .wp-caption {
    max-width: 100%;
    margin-bottom: 1rem;
}

.from-cms .wp-caption img {
    display: block;
    max-width: 100%;
    height: auto;
}

.from-cms img:last-child {
    margin-bottom: 0;
}

.from-cms .wp-caption-text {
    font-size: 80%
}

.from-cms h2 {
    font-size: 1.5rem;
    font-weight: 400;
    margin-bottom: 0.5rem;
}

.from-cms h3 {
    font-size: 1.3rem;
    font-weight: 400;
    margin-bottom: 0.5rem;
}

.from-cms a, .from-cms a:visited {
    color: inherit;
    text-decoration: underline;
}

.from-cms a:hover {
    /* */
}

.from-cms em {
    font-style: italic;
}

.from-cms blockquote {
    background: #f9f9f9;
    border-left: 10px solid #ccc;
    margin: 1em 1em 1em 0;
    padding: 1em;
    quotes: "\201C""\201D""\2018""\2019";
}
.from-cms blockquote p:before {
    color: #ccc;
    content: open-quote;
    font-size: 3em;
    line-height: 0.1em;
    margin-right: 0.2em;
    vertical-align: -0.4em;
}

.from-cms blockquote p:after {
    color: #ccc;
    content: close-quote;
    font-size: 3em;
    line-height: 0.1em;
    margin-left: 0.2em;
    vertical-align: -0.4em;
}

.from-cms blockquote p {
    line-height: 1.4;
}

.from-cms blockquote em {
    margin-top: 0.5em;
}

.from-cms blockquote +p em {
    margin-top: -0.5em;
    display: block;
    margin-left: 0em;
}
/**** /CMS ***/


/**** SMALLER DESKTOP ****/
@media screen AND (max-width: 1660px) {
    .layout-container {
        margin-left: 1rem;
        margin-right: 1rem;
        width: calc(100% - 2rem);
    }
}
/**** /SMALLER DESKTOP ****/


/**** TABLET PORTRAIT  ****/
@media screen AND (max-width: 800px) {
    .layout-container {
        padding-left: var(--margin-1);
        padding-right: var(--margin-1);
    }
}
/**** /TABLET PORTRAIT  ****/

/**** PHONE ****/
@media screen AND (max-width: 550px) {

    /* globals */
    .mobile-only { display: block !important;  }
    .mobile-only.flex { display: flex !important; }
    .desktop-only { display: none !important;}
    .mobile-as-column { display: flex; flex-direction: column !important;  }
    .mobile-full-width { width: 100%; }
    .mobile-mb-default { margin-bottom: var(--margin-3); }
    .mobile-mb-medium { margin-bottom: var(--margin-2); }
    .mobile-mt-default { margin-top: var(--margin-3); }
    .mobile-mb-small { margin-bottom: var(--margin-1); }
    .mobile-mt-small { margin-top: var(--margin-1); }

    /* sizes */
    :root {
        --base-font-size: 0.875rem; /* 14px */
    }

    /* layout */
    .layout-container {
        max-width: unset;
        width: 100%;
        padding-left: 2rem;
        padding-right: 2rem;
        margin-left: 0;
        margin-right: 0;
        box-sizing: border-box;
    }

    /* cms */
    .from-cms a {
        word-break: break-all;
    }

}
/**** /PHONE ****/