/** CSS RESET **/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-weight: normal;
    font-size: 100%;
}

/* html,
head,
body {
    margin: 0;
    padding: 0;
} */


/** MARK: NAV
**/

.toggle-button {
    position: fixed;
    top: 40px;
    left: 40px;
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    z-index: 50;
    text-decoration: none;
    font-size: 2rem;
    background-color: oklch(98.2% 0.018 155.826);
}

☃︎ input[type="checkbox"]:checked~.toggle-button {
    color: rgb(170, 207, 181)
}

input[type="checkbox"]:checked~.toggle-button>span {
    color: rgb(170, 207, 181);
}

.toggle-button>span {
    color: black;
}

#map-bg-toggle-checkbox,
#map-path-toggle-checkbox,
#map-note-a1-toggle-checkbox {
    display: none;
}

#map-bg-toggle-checkbox:checked~.garden-map-bg,
#map-path-toggle-checkbox:checked~.garden-map-path,
#map-note-a1-toggle-checkbox:checked~.garden-map-note-a1 {
    opacity: 1;
}


/** MARK: MAIN
*/

.main-container-grid {
    --rows: 51;
    --columns: 14;
    aspect-ratio: var(--columns) / var(--rows);
    display: grid;
    grid-template-columns: repeat(var(--columns), 1fr);
    grid-template-rows: repeat(var(--rows), 1fr);
    max-width: 100vw;
    position: relative;
}




/** MARK: GARDEN
/** GARDEN (12x48) + overlap **/

.garden {
    /* container [sizing] 12x48m */
    grid-column-start: 2;
    grid-column-end: 14;
    grid-row-start: 3;
    grid-row-end: 51;
    position: relative;
}

.garden-map-bg {
    /* map outline svg [positioning] mit overlap*/
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 40;
}

.garden-map-note-a1 {
    /* map note-a1 jpg [positioning] mit overlap*/
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    mix-blend-mode: multiply;
    z-index: -1;
}

.garden-map-path {
    /* map svg [positioning] 12x48m ohne overlap */
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 40;
}

/* wiederverwendbares grid in garden
mit var für row, column, stroke, color */
.garden-grid-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: calc(100% / var(--columns)) calc(100% / var(--rows));
    background-image: linear-gradient(to right, var(--color) var(--stroke), transparent 1px),
        linear-gradient(to bottom, var(--color) var(--stroke), transparent 1px);
    border-right: var(--stroke) solid var(--color);
}

.garden-positioning-grid {
    /* marco grid [positioning] */
    display: grid;
    grid-template-columns: repeat(140, 1fr);
    grid-template-rows: repeat(510, 1fr);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/** MARK: COORDS
/** KOORDINATEN SYSTEM BESCHRIFTUNG**/
.koordinaten-container {
    position: absolute;
    top: -9px;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.koordinate {
    position: absolute;
    grid-row-start: var(--row);
    font-size: 0.75rem;
    font-weight: 700;
    color: #000000;
    white-space: nowrap;
}

.koordinate.links {
    left: 2.5%;
    /* Abstand zum linken Rand */
    top: calc((var(--row) - 1) * (100% / 51));
    /* Basierend auf 51 Reihen */
}

.koordinate.rechts {
    right: 2.5%;
    /* Abstand zum rechten Rand */
    top: calc((var(--row) - 1) * (100% / 51));
    /* Basierend auf 51 Reihen */
}


/** MARK: 1m.svg
/** MASSSTAB SVG **/
.massstab-container {
    position: fixed;
    left: 0px;
    top: 673px;

    /* Korrekte Berechnung basierend auf deinem aspect-ratio 14/51 */
    --viewport-width: 100vw;
    --grid-aspect-ratio: calc(14 / 51);
    /* Dein Grid-Verhältnis */
    --grid-height: calc(var(--viewport-width) / var(--grid-aspect-ratio));

    width: calc(var(--viewport-width) / 14);
    /* Eine Spalte */
    height: calc(var(--grid-height) / 51);
    /* Eine Reihe */

    z-index: 100;
}

.massstab-svg {
    width: auto;
    height: 100%;
    object-fit: contain;
    padding-left: 20px;
}



/** MARK: ITEM ENTRY
**/

.data-point {
    grid-column-start: var(--x);
    grid-row-start: var(--y);
    background: black;
    border-radius: 100%;
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 100;
}

.data-point>span {
    position: absolute;
    top: -8px;
    right: -70px;
    width: auto;
    /* Oder mehr, je nach Textlänge */
    white-space: nowrap;
    /* Verhindert Zeilenumbruch */
}

.data-point>video {
    position: absolute;
    top: 0px;
    left: -89px;
    width: 83px;
    height: auto;
    z-index: 50;
}

/** Data Point visual **/
.data-point-inline {
    position: relative;
    display: block;
    padding-left: 20px;
    /* Platz für den Punkt */
    white-space: nowrap;
    z-index: 101;

}

.data-point-inline::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 12px;
    background: currentColor;
    border-radius: 100%;
    font-weight: 700;
    z-index: 101;

}

/** MARK: GARTEN DATEN POP
**/

.garten-daten {
    display: none;
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 19px;
    box-shadow: 5px 5px 29px 2px rgba(7, 7, 7, 0.60);
    width: 100%;
    max-width: 360px;
    max-height: 80vh;
    height: auto;
    position: fixed;
    top: 80px;
    left: 180px;
    z-index: 1000;
}

.garten-daten:target {
    display: block;
}

/* .garten-daten__content {


} */

.garten-daten.help {
    position: fixed;
    top: 50%;
    left: 50%;
    max-width: 700px;
    height: auto;
    transform: translateY(-50%) translateX(-50%);
}

.das-x {
    position: absolute;
    /* Relativ zur Figure */
    top: 10px;
    right: 10px;
    font-size: 20px;
    color: rgb(0, 0, 0);
    text-decoration: none;
    z-index: 1;
    padding: 5px;
    /* Für bessere Klickfläche */
}



.garten-daten__text>div {
    padding: 0 0 20px 0;
}


.garten-daten__text {
    padding: 30px 20px;
    line-height: 1.2;
    font-size: 0.875rem;
}

.garten-daten__text>a {
    margin-bottom: 35px;
    display: block;
}

.garten-daten__text p:last-of-type {
    padding-bottom: 50px;
}

.garten-daten__text>span:last-of-type {
    padding-bottom: 20px;
    display: block;
}

/** BILD OVERLAY **/
.plant-overlay {
    position: fixed;
    top: 50%;
    left: 40%;
    transform: translate(-50%, -50%);
    width: 400px;
    height: auto;
    mix-blend-mode: multiply;
    pointer-events: none;
    z-index: 99999;
    opacity: 0;
    transition: opacity 1s ease;
}

/* Diese CSS Query sagt folgendes aus:
.garten-daten divs (also unsere popups), die
:target sind (also die aktuelle URL sind)
~.plant-overlay waehlt ALLE .plant-overlays die darauf folgen aus (also auf das .daten-garten)

Versuch mal statt ~ das +


ChatGPT Summary:
+ waehlt NUR DAS NAECHSTE element aus
~ wahlet ALLE NAECHSTEN elemente aus
*/
.garten-daten:target+.plant-overlay {
    opacity: 1;
}


/** MARK: DATEN DATEN **/




#daten-daten {
    max-width: 61.8vw;
    margin: 40px 80px;
}

#daten-daten>img {
    margin-top: 80px;
}


/* MARK: Record */

/* Main container */
.record-article {
    max-width: 61.8vw;
    margin: 40px 80px;
    margin-top: 20px;
    font-weight: 500;
}

/* Header section */
.record-header {
    margin-bottom: 20px;
}

.record-image {
    width: 100%;
    height: auto;
    display: block;
}

.record-timestamp {
    margin-top: 0;
}

.record-timestamp p {
    font-size: xx-small;
    font-weight: 500;
}

/* MARK: record-description */
.record-title {
    font-weight: 500;
    margin-top: 20px;
}

.record-description {
    margin-top: 16px;
    font-style: italic;
}

/* MARK: quick-facts */
.quick-facts ul li {
    margin-left: 3px;
}


/* MARK: record-latin */
.record-latin {
    margin-top: 25px;
}


.record-latin h4,
.quick-facts h4 {
    margin-top: 25px;
    margin-bottom: 8px;
    font-weight: 700;
}

.record-latin p {
    font-style: italic;
}


/* MARK: record-section */
.record-section {
    margin-top: 25px;
    margin-bottom: 25px;

}

.record-section h4 {
    margin-bottom: 8px;
    font-weight: 700;
}





/* Footer section */
.record-footer {
    margin-top: 32px;
    font-weight: 500;
}

.record-footer hr {
    border: none;
    border-top: 1px solid #ccc;
    margin-bottom: -15px;
}

.record-footer p {
    margin-top: 20px;
    font-size: xx-small;
    font-weight: 200;
}

.snippet-container {
    width: 100vw;
    height: 100vh;
    position: relative;
    display: grid;
    place-items: center;
}

.snippet-container video {
    width: 100vw;
    height: 100vh;
    object-fit: cover;
}

.snippet-container .data-point-inline {
    position: absolute;
    top: 30px;
    left: 30px;
}