@font-face {
    font-family: "Inter var";
    font-display: swap;
    font-weight: 100 900;
    /* size-adjust: 98%; */
    src: url("../fonts/Inter-var.woff2") format("woff2-variations");
}

@font-face {
    font-family: "Literata";
    font-display: swap;
    font-weight: 200 900;
    /* size-adjust: 98%; */
    src: url("../fonts/Literata-var-subs.woff2") format("woff2-variations");
}

@font-face {
    font-family: "Source Sans";
    font-display: swap;
    font-weight: 200 900;
    size-adjust: 106%;
    src: url("../fonts/SourceSans3VF-Upright-subs.woff2") format("woff2-variations");
}

@font-face {
    font-family: "Source Sans";
    font-style: italic;
    font-display: swap;
    font-weight: 200 900;
    size-adjust: 106%;
    src: url("../fonts/SourceSans3VF-Italic-subs.woff2") format("woff2-variations");
}

:root {
    color-scheme: light dark;

    --darkcrust: #362B26;
    --browncrust: #8A5B42;
    --goldencrust: #ECCE93; 
    --dough: #FBF7EE;
    /* Created with: https://coolors.co/362b26-855d47-e9cd96-fbf7ee  */

    --p: 1rem;
    --weissraum: 10vh;
    --fwb: 700;
    --fwb-p: 650;
}

/* Fluid font size variables, for browsers that support clamp */
@supports (font-size: clamp(1rem, 1vw, 1rem)) {
  :root {
        --fs-0: clamp(1rem, 0.385vw + 0.904rem, 1.25rem);
        --fs-1: clamp(1.125rem, 0.433vw + 1.017rem, 1.406rem);
        --fs-2: clamp(1.266rem, 0.487vw + 1.144rem, 1.582rem);
        --fs-3: clamp(1.424rem, 0.548vw + 1.287rem, 1.78rem);
        --fs-4: clamp(1.602rem, 0.616vw + 1.448rem, 2.002rem);
        --fs-5: clamp(1.802rem, 0.693vw + 1.629rem, 2.253rem);
        --fs-6: clamp(2.027rem, 0.78vw + 1.832rem, 2.534rem);
        --fs-7: clamp(2.281rem, 0.877vw + 2.061rem, 2.851rem);
        --fs-8: clamp(2.566rem, 0.987vw + 2.319rem, 3.207rem);
        --fs-9: clamp(2.887rem, 1.11vw + 2.609rem, 3.608rem);
        --fs-10: clamp(3.247rem, 1.249vw + 2.935rem, 4.059rem);
        --fs-11: clamp(3.653rem, 1.405vw + 3.302rem, 4.567rem);
        --fs-12: clamp(4.11rem, 1.581vw + 3.715rem, 5.137rem);
        --fs-13: clamp(4.624rem, 1.778vw + 4.179rem, 5.78rem);
        --fs-14: clamp(5.202rem, 2.001vw + 4.701rem, 6.502rem);

        /*
        Created with: https://www.fluid-type-scale.com/calculate?minFontSize=16&minWidth=400&minRatio=1.125&maxFontSize=20&maxWidth=1440&maxRatio=1.125&steps=0%2C1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C13%2C14&baseStep=0&prefix=fs&decimals=3&useRems=on&remValue=16&previewFont=Inter&previewText=Almost+before+we+knew+it%2C+we+had+left+the+ground&previewWidth=0
        */
  }
}


/* Dynamische Farben, noch nicht unterstützt */
/*
#tipps {
    background-color: hsl(from var(--dough) h s calc(l - 2.5%));
}
#sauerteig {
    background-color: hsl(from var(--dough) h s calc(l - 5%));
}
#ueber {
    background-color: hsl(from var(--dough) h s calc(l - 7.5%));
}
*/

/* Globale Einstellungen und Reset */

::selection {
    background: var(--goldencrust);
}

.border-box, a, article, aside, blockquote, body, code, dd, div, dl, dt, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5,
h6, header, html, input[type="email"], input[type="number"], input[type="password"], input[type="tel"], input[type="text"], input[type="url"], legend, li, main, nav, ol, p, pre, section, table, td, textarea, th, tr, ul {  
    box-sizing: border-box;
}

h1, h2, h3, p, figure {
    margin: 0;
    padding: 0;
}

/* Stile */

* {
    scroll-behavior: smooth;
    font-optical-sizing: auto;
}

body {
    background-color: var(--dough);
    color: var(--darkcrust);
    /*font-family: "Literata", "Inter var", -apple-system, BlinkMacSystemFont, Roboto Flex, Roboto, sans-serif;
    font-feature-settings: 'dlig','liga','calt','cv05','cv07','cv10','ss03';*/
    font-family: "Source Sans", sans-serif;
    font-feature-settings: 'dlig','liga','calt','ss06','onum','kern';
    font-weight: 400;
    font-variation-settings: "wght" 380;
    -webkit-tap-underline-color: transparent;
    -webkit-tap-highlight-color: transparent;
    line-height: 1.5;
    font-size: var(--fs-1);
    /*letter-spacing: -.01em;*/
    padding: 0;
    margin: 0;
    text-align: left;
}

h1, h2, h3, h4, h5, h6, details summary, .separator {
    font-family: "Literata", Georgia, serif;
    font-feature-settings: 'liga','calt','case';
}

header {
    padding: calc(var(--p) * 0.8) calc(var(--p) * 1) calc(var(--p) * 8) var(--p);
    margin: 0;
}

main {
    padding: 0 var(--p);
}
section, #intro {
    width: 100%;
    max-width: 30.5em;
    margin-bottom: var(--weissraum);
}

article + aside, aside + aside {
    margin-top: calc(var(--weissraum) - (var(--p) * 2));
}

main, aside, #headline {
    /* fixing Safari text selection bug */
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
#headline a {
    text-decoration: none;
    font-variation-settings: 'opsz' 48;
}
#headline a:hover {
    color: inherit;
}
aside {
    width: 100%;
}
#zutaten {
    padding-bottom: calc(var(--p) * 1.25);
    border-bottom: 0.125rem solid;
}
.tnum {
    font-feature-settings: 'dlig','liga','calt','ss06','tnum','kern';
}

footer, #autor {
    /*background-color: var(--darkcrust);*/
    text-align: center;
    font-size: var(--fs-0);
    padding: calc(var(--p) * 2);
    font-variation-settings: "wght" 450;
    letter-spacing: 0.01em;
}
footer {
    margin-bottom: var(--weissraum);
}
#autor {
    text-align: left;
}

.dn {
    display: none;
}
.flex {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    align-content: center;
    overflow: auto;
    flex-direction: column;
    width: 100%;
}
#portrait {
    text-align: center;
    order: -1;
}
#portrait img {
    width: 90%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 50%;
    border: 0.5rem solid var(--crumb);
    box-sizing: border-box;
    margin-bottom: var(--p);
    margin-top: calc(var(--p) * 2.5);
}
.onlyprint {
    display: none;
}

.separator {
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: center;
  font-feature-settings: 'smcp', 'c2sc', 'onum';
  letter-spacing: calc(1em / 20);
  margin-bottom: calc(var(--weissraum) / 1.25);
}

p + .separator {
    margin-top: var(--weissraum);
}
.mb0 {
    margin-bottom: 0 !important;
}

.separator::before,
.separator::after {
  content: '';
  flex: 1;
  border-bottom: 0.125rem solid;
  height: .5rem;
}

.separator:not(:empty)::before {
  margin-right: .25em;
}

.separator:not(:empty)::after {
  margin-left: .25em;
}

i, .hinweis {
    font-family: "Source Sans", sans-serif;
    font-style: italic;
}

blockquote {
    border-left: 0.125rem solid var(--darkcrust);
    padding-left: 1em;
    padding-bottom: 0.15em;
    margin-left: 0;
}

.tipp {
    /*background-color: var(--goldencrust);
    text-transform: uppercase;
    font-variation-settings: "wght" 500;
    padding: 0 .3em 0.1em .35em;*/
    margin-right: .5em;
    border-radius: 2px;
    letter-spacing: calc(1em / 10);
    text-transform: uppercase;
    font-feature-settings: 'c2sc', 'smcp';
    /*font-size: .8em;*/
}
.dropcap {
    font-size: var(--fs-11);
  line-height: .825em;
  margin-right: .1em;
  float: left;
  display: block;
  position: relative;
  font-weight: bold;
  font-variation-settings: "wght" 900;
  font-variation-settings: 'opsz' 60;
  color: var(--goldencrust);
  display: none;
}
/*
h3 {
  display: flex;
  flex-direction: row;
}
h3:before, h3:after{
  content: "";
  flex: 1 1;
  border-bottom: 1px solid;
  margin: auto;
}
h3:before {
  margin-right: 10px
}
h3:after {
  margin-left: 10px
}

/*
.hinweis {
    font-feature-settings: 'smcp', 'c2sc';
    letter-spacing: calc(1em / 20);
    margin-right: 0.5em;
    background-color: var(--goldencrust);
    padding: 0 .5em;
    border-radius: 2px;
}
*//*
.sticky {
    position: -webkit-sticky;
    position: sticky;
    top: 0px;
    background-color: var(--dough);
    z-index: 9999;
} 

/* Typografie */

h1, h2, h3, h4, details summary, ul li b, .separator {
    font-weight: var(--fwb);
    font-variation-settings: "wght" var(--fwb);
}
p b {
    font-weight: var(--fwb);
    font-variation-settings: "wght" var(--fwb-p);
}
h1 {
    max-width: 800px;
    font-size: var(--fs-8); /* https://www.modularscale.com/?16&px&1.125 */
    line-height: 1.05;
}

h2 {
    margin: 0 0 calc(var(--p) * 2) 0;
    font-size: var(--fs-6);
    line-height: 1.1;
    padding-top: calc(var(--p) * 2);
}
h3 {
    margin: calc(var(--p) * 2) 0 calc(var(--p) * 1.5) 0;
    font-size: var(--fs-3);
    line-height: 1.3;
}
#zutaten h3 {
    margin: calc(var(--p) * 2) 0 calc(var(--p) * 1) 0;
}
p + h3 {
    margin-top: calc(var(--weissraum) / 1.25);
}
h2 + h3 {
    margin-top: calc(var(--p) * 3);
}
h4 {
    margin-bottom: 0;
}
p, section ul {
    -ms-hyphens: auto;
    -webkit-hyphens: auto;
    hyphens: auto;
    -moz-hyphenate-limit-chars: 6 3 2;
    -webkit-hyphenate-limit-chars: 6 3 2;
    -ms-hyphenate-limit-chars: 6 3 2;
}

p, section ul, section ul li, blockquote {
    margin-bottom: calc(var(--p) * 1.5);
}
.nohyphen {
    -ms-hyphens: manual;
    -webkit-hyphens: manual;
    hyphens: manual;
}
a, a:visited {
    color: var(--darkcrust);
    transition: all 250ms;
    text-underline-position: under;
}

.underline {
    text-decoration-line: underline;
    text-decoration-thickness: 11px;
    text-underline-offset: -5px;
    text-decoration-color: var(--goldencrust);
    text-decoration-style: solid;
    text-decoration-skip-ink: none;
}
h2.underline {
    text-decoration-thickness: 8px;
    text-underline-offset: -3.5px;
}
h3.underline {
    text-decoration-thickness: 6.5px;
    text-underline-offset: -4px;
}

.nummer {
    display: none;
}
.ml {
    margin-left: 0.075em;
}

/* FAQ */

summary {
    list-style: none;
    padding-right: var(--p);
    display: flex;
    justify-content: space-between;
    -webkit-tap-highlight-color: transparent;
}
summary::-webkit-details-marker {
    display: none;
}
details summary::after {
   font-family: "Literata", sans-serif;
    font-size: 1.5em;
    font-variation-settings: "wght" var(--fwb);
    line-height: 1.5;
    content: "+";
    margin-left: calc(var(--p) * 3);
    margin-right: calc(var(--p) / 2);
}
details[open] summary::after {
    content: "×";
    /*content:"\2191"; */
}
details summary {
    cursor: pointer;
    padding: calc(var(--p) * 0.95) 0 calc(var(--p) * 1.05) 0;
    /* font-size: 1.075em;*/
    line-height: 1.3;
    -webkit-tap-highlight-color: transparent;
    text-wrap:balance;
    align-items: center;
}
details summary > * {
    display: inline;
}
details {
    margin: 0;
    padding: 0;
    border-top: 0.125rem solid;
}
details:first-of-type {
    margin: calc(var(--p) * 2.75) 0 0 0;
}
details:last-of-type {
    border-top: 0.125rem solid;
    border-bottom: 0.125rem solid;
}
details:last-of-type {
    margin-bottom: calc(var(--p) / 2);
}
summary + p {
    margin-top: 0;
}
details p:first-of-type {
    margin-top: var(--p);
}
/*details *:last-child*/
details p:last-child, details li:last-child {
    margin-bottom: calc(var(--p) * 2);
}

/* Listen */

section ul {
    list-style-type: none;
    padding-left: 1.5em;
}
section ul li {
    position: relative;
    padding-right: var(--p);
    hyphens: auto;
}
section ul li::before {
    /*font-family: "Inter var", sans-serif;*/
    content: "\2192";
    position: absolute;
    left: -25px;
    font-size: 100%;
}
section ul li:last-child {
    padding-bottom: 0;
}

nav {
    width: 100vw;
    background: var(--dough);
    -webkit-box-shadow: 0px -5px 15px 10px var(--dough); 
    box-shadow: 0px -5px 15px 10px var(--dough);
    position: fixed;
    top:auto;
    right: auto;
    bottom: 0;
    z-index: 9999;
}

nav ul {
    margin: 0;
    display: flex;
    justify-content: space-between;
    align-content: center;
    align-items: center;
    padding: var(--p);
    font-weight: var(--fwb);
    font-variation-settings: "wght" var(--fwb);
}

nav ul li {
    list-style-type: none;
    flex: calc(100% / 3);
    text-align: center;
}
ul li::marker {
    color: var(--darkcrust);
}
nav ul li:last-of-type {
    text-align: right;
}
nav ul li:first-of-type {
    text-align: left;
}
nav ul li a {
    text-decoration: none;
    background-color: transparent;
    color: var(--darkcrust);
    border-radius: 2px;
    padding: 4px 10px 6px 10px;
}
nav ul li.active a {
    background-color: var(--goldencrust);
    color: var(--darkcrust);
    /*text-decoration-line: underline;
    text-underline-position: under;
    text-decoration-thickness: 0.125rem;
    text-underline-offset: 4px;
    text-decoration-skip-ink: auto;*/
}

/* Media Queries */

@media screen and (min-width: 30em) {
    :root {
        --p: 1.5rem;
    }
    main {
        padding: 0 calc(var(--p) * 2);
    }
    #headline {
        max-width: 11em;
        font-size: var(--fs-11);
    }
    #zutaten p {
        padding-right: calc(var(--p) / 2);
    }
    #zutaten h3 {
        
    }
    h2, h3, section ul li {
        padding-right: calc(var(--p) * 2);
    }
    section ul li {
        padding-left: 10px;
    }
    section ul li::before {
        left: -23px;
    }
    section ul li:last-child {
        padding-bottom: 0;
    }
    section ul {
        padding-left: 25px;
    }
    header {
        padding: calc(var(--p) * 1.75) calc(var(--p) * 2) calc(var(--p) * 8) calc(var(--p) * 2);
    }
    .underline {
        text-decoration-line: underline;
        text-decoration-thickness: 15px;
        text-underline-offset: -5px;
        text-decoration-color: var(--goldencrust);
        text-decoration-style: solid;
        text-decoration-skip-ink: none;
    }
    h2.underline {
        text-decoration-thickness: 10px;
        text-underline-offset: -6.25px;
    }
    h3.underline {
        text-decoration-thickness: 7px;
        text-underline-offset: -3.5px;
    }
    .flex {
        flex-direction: row;
    }
    #ueber .flex {
        flex-direction: row;
        flex-wrap: wrap;
    }
    #ueber h3 {
        margin-top: calc(var(--p) * 2.5);
    }
    #ueber .flex :first-child {
        width: 100%;
    }
    #ueber .flex :not(:first-child) {
        flex: 1;
    }
    #ueber .flex :last-child {
        flex: 0 0 calc(100% / 3);
    }
    #portrait {
        order: 0;
    }
    #portrait img {
        width: 100%;
        margin-top: 0;
    }
    details summary::after {
        margin: 0 var(--p);
        line-height: 0.65;
    }
    nav ul {
        padding-left: calc(var(--p) * 2);
        padding-right: calc(var(--p) * 2);
    }
    footer {
        margin-top: 20vh;
    }
}

@media screen and (min-width: 60em) {
    header {
        padding: calc(var(--p) * 1.9) calc(var(--p) * 2) calc(var(--p) * 10) calc(var(--p) * 2.5);
    }
    .nummer {
        display: inline-block;
        border-radius: 50%;
        line-height: 1.7em;
        width: 1.7em; /* line-height = width */
        text-align: center;
    }
    h2 {
        padding-top: calc(var(--p) * 2);
    }
    .rezept h3 {
        /* transform: translateX(-2.75em);*/
    }
    nav {
        position: fixed;
        top:0;
        right: 0;
        margin: calc(var(--p) * 2) calc(var(--p) * 2) 0 0;
        width: 5em;
        background-color: transparent;
        -webkit-box-shadow: none; 
        box-shadow: none;
    }

    nav ul {
        margin: 0;
        padding: 0;
        display: block;
    }
    nav ul li {
        margin-bottom: calc(var(--p) / 4);
    }
    nav ul li, nav ul li:last-of-type, nav ul li:first-of-type {
        list-style-type: none;
        text-align: left;
    }
    nav ul li.active {
        transition: 0.3s ease all;
        /*list-style-type: inherit;*/
    }
    nav ul li.active a {
        /*text-decoration: none;*/
        text-decoration-thickness: 0.125rem;
        text-underline-offset: 2px;
        /*text-underline-position: inherit;*/
    }
    footer {
        margin-bottom: calc(var(--weissraum) / 2);
        margin-top: 30vh;
    }
}



/* Print */

@media print {
    body, footer, footer a {
        background-color: white;
        color: black;
        letter-spacing: normal;
    }
    * {
        font-size: 95%;
    }
    body {
        max-width: 100%;
        margin: 2.5% 5%;
        /*column-count: 2;
            -webkit-column-count: 2;
            -moz-column-count: 2;*/
    }
    footer, #autor {
        text-align: left;
        font-variation-settings: "wght" 400;
        letter-spacing: 0;
        margin-top: 2em;
        width: 100%;
        padding: 0;
    }
    .underline {
        text-decoration-color: transparent;
    }
    ul li::marker {
        color: black;
    }
    #tipps, #sauerteig, #ueber {
        background-color: transparent;
    }
    section, #intro {
        max-width: none;
        margin-bottom: calc(var(--p) * 3);
    }
    #zutaten {
        padding-bottom: 0;
        margin-bottom: 0;
        border-bottom: 0;
    }
    nav {
        display: none;
    }

    h1, h2, h3 {
        page-break-after: avoid;
    }
    h1 {
        max-width: 100%;
        font-size: var(--fs-7);
    }
    h2 {
        margin-bottom: calc(var(--p) * 2);
    }
    h3, p + h3 {
        margin: calc(var(--p) * 2) 0 calc(var(--p) * 1.5) 0;
    }
    .separator, p + .separator {
        margin: calc(var(--weissraum) / 4) 0 calc(var(--weissraum) / 1) 0;
    }
    .mb0 {
        margin: 0;
    }
    .mt0 {
        margin-top: 0;
    }
    a, a:visited {
        text-decoration: none;
    }
    header {
        padding-bottom: calc(var(--p) * 3);
    }
    .noprint {
        display: none;
    }
    .onlyprint {
        display: inline-block;
    }
    .flex {
        flex-direction: row;
    }
    .nummer {
        display: inline;
        border-radius: 0;
        background-color: transparent;
        border: 0;
        line-height: inherit;
        width: auto; /* line-height = width */
        text-align: left;
        margin-right: 0;
    }
    .nummer::after {
        content: '. ';
    }
    #autor {
        font-size: var(--fs-0);
    }
}

/* Accessibility */

@media screen and (prefers-color-scheme: dark) {
    body {
        background-color: var(--darkcrust);
        color: var(--dough);
        letter-spacing: 0.002em;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
    h1, h2, h3, details summary {
    }
    nav {
        background: var(--darkcrust);
        -webkit-box-shadow: 0px -5px 15px 10px var(--darkcrust); 
        box-shadow: 0px -5px 15px 10px var(--darkcrust);
    }
    .underline {
        text-decoration-color: var(--browncrust);
    }
    ::selection {
        color: var(--darkcrust);
        background-color: var(--goldencrust);
    }
    ul li::marker {
        color: var(--goldencrust);
    }
    .nummer {
        background-color: var(--goldencrust);
        border: 0.125rem solid var(--goldencrust);
        color: var(--darkcrust);
    }
    a, a:visited {
        color: var(--dough);
    }
    p b, ul li b {
        font-variation-settings: "wght" var(--fwb);
    }
    #portrait img {
    }
    footer, #autor {
        letter-spacing: 0.0125em;
    }
    .sticky {
        background: var(--darkcrust);
    }
    nav ul li a {
        color: var(--dough);
    }
    nav ul li.active a {
        background-color: var(--browncrust);
        color: var(--dough);
    }
    .dropcap {

    }
    blockquote {
        border-left: 0.125rem solid var(--dough);
    }
}

@media screen and (prefers-contrast: more) {
    body {
        background-color: white;
        color: black;
    }
    ::selection {
        color: white;
        background-color: black;
    }
    .underline {
        text-decoration-color: transparent;
    }
    #tipps, #sauerteig {
        background-color: transparent;
    }
    .nummer {
        background-color: black;
        border: 0.125rem solid black;
        color: var(--dough);
    }
    #portrait img {
        mix-blend-mode: luminosity;
        filter: contrast(150%);
    }
    nav {
        background: white;
        -webkit-box-shadow: 0px -5px 15px 10px white; 
        box-shadow: 0px -5px 15px 10px white;
    }
    nav ul li a {
        color: white;
    }
    nav ul li.active a {
        background-color: black;
        color: white;
    }
    .sticky {
        background: white;
    }
    ul li::marker {
        color: blue;
    }
}
@media screen and (prefers-contrast: more) and (prefers-color-scheme: dark) {
    body {
        background-color: black;
        color: white;
    }
    ::selection {
        color: black;
        background-color: white;
    }
    .underline {
        text-decoration-color: transparent;
    }
    .nummer {
        background-color: white;
        border: 0.125rem solid white;
        color: black;
    }
    nav {
        background: black;
        -webkit-box-shadow: 0px -5px 15px 10px black; 
        box-shadow: 0px -5px 15px 10px black;
    }
    nav ul li a {
        color: black;
    }
    nav ul li.active a {
        background-color: white;
        color: black;
    }
    .sticky {
        background: black;
    }
    ul li::marker {
        color: yellow;
    }
}