/* FONTS */

@font-face {
    font-family: "Barlow-Light";
    src: url("../fonts/barlow/Barlow-Light.ttf");
    font-weight: 300;
}

@font-face {
    font-family: "AutobusLight";
    src: url("../fonts/autobus/AutobusLight.ttf");
}

@font-face {
    font-family: "Arkhip";
    src: url("../fonts/Arkhip.otf");
    font-weight: normal;
}

@font-face {
    font-family: "Slick";
    src: url("../fonts/Slick.ttf");
    font-weight: normal;
}

/* -------------------------------------------- */

/* KEYFRAMES */

@keyframes floatParticle {
    0% {
        transform: translateY(100vh) scale(0.5);
        opacity: 0;
    }
    10% {
        opacity: 0.4;
    }
    90% {
        opacity: 0.4;
    }
    100% {
        transform: translateY(-10vh) scale(1);
        opacity: 0;
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes tabZoomFade {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fromZero {
    0% {
        transform: scale(0);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes slideDownContent {
    0% {
        top: 0;
    }

    100% {
        top: 100vh;
    }
}

@keyframes slideDownBounce {
    0% {
        top: 90vh;
    }

    25% {
        top: 75vh;
        /* Slight overshoot */
    }

    100% {
        top: 100vh;
        /* Settle nicely */
    }
}

@keyframes filmNoise {

    0%,
    100% {
        background-position: 0 0;
    }

    10% {
        background-position: -5% -10%;
    }

    20% {
        background-position: -15% 5%;
    }

    30% {
        background-position: 7% -25%;
    }

    40% {
        background-position: 20% 25%;
    }

    50% {
        background-position: -25% 10%;
    }

    60% {
        background-position: 15% 5%;
    }

    70% {
        background-position: 0 15%;
    }

    80% {
        background-position: 25% 35%;
    }

    90% {
        background-position: -10% 10%;
    }
}

@keyframes heartbeat {
    0% {
        transform: scale(1);
    }

    5% {
        transform: scale(1.35);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes brainZoom {
    0% {
        transform: scale(1);
        filter: brightness(100%);
    }

    20% {
        transform: scale(1.1);
        filter: brightness(110%);
    }

    40% {
        transform: scale(1.2);
        filter: brightness(120%);
    }
    
    60% {
        transform: scale(1.3);
        filter: brightness(130%);
    }
}

@keyframes clapperboardSwing {
    0% {
        transform: rotateZ(0);
    }

    15% {
        transform: rotateZ(-30deg);
    }

    25% {
        transform: rotateZ(0);
    }

    100% {
        transform: rotateZ(0);
    }
}

@keyframes flaskSwing {
    0% {
        transform: rotateZ(0);
    }

    25% {
        transform: rotateZ(-30deg);
    }

    50% {
        transform: rotateZ(0);
    }

    75% {
        transform: rotateZ(30deg);
    }
    
    100% {
        transform: rotateZ(0);
    }
}

@keyframes magicSwing {
    0% {
        transform: rotate(0deg) scale(1);
        opacity: 0.5;
    }

    25% {
        transform: rotate(-7deg) scale(1.1);
        opacity: 1;
    }

    50% {
        transform: rotate(7deg) scale(1);
        opacity: 1;
    }

    75% {
        transform: rotate(-3deg) scale(1.05);
        opacity: 1;
    }

    100% {
        transform: rotate(0deg) scale(1);
        opacity: 1;
    }
}

@keyframes cameraClick {
    0% {
        transform: scale(1);
        opacity: 0.5;
    }

    20% {
        transform: scale(1.2) rotate(-5deg);
    }

    40% {
        transform: scale(0.9) rotate(5deg);
        opacity: 1;
    }

    60% {
        transform: scale(1.05);
    }

    80% {
        transform: scale(0.98);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes puzzlePiece {
    0% {
        transform: rotate(0deg) scale(1);
        animation-timing-function: ease-out;
    }

    20% {
        transform: rotate(180deg) scale(1);
        /* Full fast spin */
        animation-timing-function: ease-in;
    }

    40% {
        transform: rotate(180deg) scale(0.6);
        /* Gentle stop into final position */
    }
    
    60% {
        transform: rotate(180deg) scale(1);
        /* Gentle stop into final position */
    }
    
    80% {
        transform: rotate(360deg) scale(1);
        /* Gentle stop into final position */
    }
    
    100% {
        transform: rotate(360deg) scale(0.6);
        /* Gentle stop into final position */
    }
}

@keyframes shoppingCart {
    0% {
        opacity: 0;
        transform: translate(-3vw);
    }

    100% {
        opacity: 1;
        transform: translate(3vw);
    }
}

@keyframes paperFly {
    10% {
        transform: translate(-10px, 10px);
    }

    40% {
        transform: translate(-15px, 15px);
        opacity: 1;
    }

    100% {
        transform: translate(100vw, -100vh);
        opacity: 0;
    }
}

@keyframes gavelSwing {
    0% {
        transform: rotateZ(0);
    }

    5% {
        transform: rotateZ(45deg);
    }

    100% {
        transform: rotateZ(0);
    }
}

@keyframes timesOpen {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
        transform: rotate(45deg);
    }
}

@keyframes timesClose {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
        transform: rotate(90deg);
    }
}

@keyframes envelopeSlide {
    0% {
        opacity: 0;
        transform: translate(-5vw);
    }

    100% {
        opacity: 1;
        transform: translate(0);
    }
}

@keyframes eyeBlink {
    0% {
        transform: rotateX(90deg);
        opacity: 0;
    }

    60% {
        transform: rotateX(-25deg);
        opacity: 1;
    }

    80% {
        transform: rotateX(0deg);
    }

    100% {
        transform: rotateX(0deg);
    }
}

@keyframes peopleZoom {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.25);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes popUpWobble {
    0% {
        transform: rotateX(90deg);
        opacity: 0;
    }

    60% {
        transform: rotateX(-25deg);
        opacity: 1;
    }

    75% {
        transform: rotateX(10deg);
    }

    85% {
        transform: rotateX(-5deg);
    }

    95% {
        transform: rotateX(3deg);
    }

    100% {
        transform: rotateX(0deg);
    }
}

@keyframes droneHover {
    0% {
        transform: translate(-50%, -50%);
    }

    25% {
        transform: translateX(-25px);
    }

    50% {
        transform: translate(80px, -10%);
    }

    75% {
        transform: translate(10px, 0%);
    }

    90% {
        transform: translateY(-50%);
    }

    100% {
        transform: translate(-50%, -50%);
    }
}

/* STORE Animations */
@keyframes fadeInPrice {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Tier content fade */
.tier-content {
    animation: fadeTier 0.4s ease;
}

@keyframes fadeTier {
    from {
        opacity: 0;
        transform: scale(0.98);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes blinkDot {

    0%,
    50%,
    100% {
        opacity: 1;
    }

    25%,
    75% {
        opacity: 0;
    }
}

@keyframes bounce-down {

    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(10px);
    }
}

@keyframes glowPulse {
    0% {
        text-shadow:
            0 0 4px rgba(255, 255, 255, 0.4),
            0 0 8px rgba(255, 255, 255, 0.2),
            0 0 16px rgba(255, 255, 255, 0.1);
    }

    50% {
        text-shadow:
            0 0 6px rgba(255, 255, 255, 0.6),
            0 0 12px rgba(255, 255, 255, 0.3),
            0 0 20px rgba(255, 255, 255, 0.15);
    }

    100% {
        text-shadow:
            0 0 4px rgba(255, 255, 255, 0.4),
            0 0 8px rgba(255, 255, 255, 0.2),
            0 0 16px rgba(255, 255, 255, 0.1);
    }
}

@keyframes glowPulseRed {
    0% {
        text-shadow:
            0 0 4px rgba(255, 0, 0, 0.4),
            0 0 8px rgba(255, 0, 0, 0.2),
            0 0 16px rgba(255, 0, 0, 0.1);
    }

    50% {
        text-shadow:
            0 0 6px rgba(255, 0, 0, 0.6),
            0 0 12px rgba(255, 0, 0, 0.3),
            0 0 20px rgba(255, 0, 0, 0.15);
    }

    100% {
        text-shadow:
            0 0 4px rgba(255, 0, 0, 0.4),
            0 0 8px rgba(255, 0, 0, 0.2),
            0 0 16px rgba(255, 0, 0, 0.1);
    }
}


@keyframes filmstripRoll {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-50%);
    }
}

@keyframes filmstripFade {
    0% {
        opacity: 0;
    }

    20% {
        opacity: 0.5;
    }

    50% {
        opacity: 1;
    }

    100% {
        opacity: 1;
    }
}

/* -------------------------------------------- */

/* BODY */

/* Reset box-sizing for all elements */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Base html styles */
html {
    margin: 0;
    padding: 0;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    /* Prevent iOS text zooming */
    scroll-behavior: smooth;
}

/* Body styling */
body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100vh;
    font-family: "Barlow-Light", sans-serif;
    font-size: clamp(-1rem, 2.5vh, 2rem);
    color: #7b7b7b;
    overflow-x: hidden;
    user-select: text;
    transition: all 0.5s ease;
    animation: fadeIn 3s forwards;
    touch-action: pan-y;
}

a {
    text-decoration: none;
    color: #ff3131;
}

button {
    width: 100%;
}

form {
    margin-top: 2vh;
}

/* -------------------------------------------- */

/* MENU */

#menu-bar {
    top: 0;
    width: 100vw;
    position: fixed;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    pointer-events: none;
}

#toggle-button {
    width: auto;
    padding: 1vh 1.5vh 1.5vh 1.5vh;
    color: white;
    background-color: #ff3131;
    font-size: clamp(1.5rem, 4vh, 2.5rem);
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: auto;
    transition: all 0.5s ease-in-out;
    clip-path: polygon(0% 0%,
            /* top-left */
            100% 0%,
            /* top-right */
            100% 80%,
            /* bottom-right before triangle */
            50% 100%,
            /* triangle point */
            0% 80%
            /* bottom-left before triangle */
        );
}

#toggle-button:hover {
    cursor: pointer;
    background-color: rgba(250, 105, 105, 1);
}

.logo {
    width: clamp(100px, 5.2vw, 200px);
    margin: 0 auto 2vh auto;
    display: block;
}

.logo-alt {
    width: clamp(100px, 7.3vw, 200px);
    margin: 0 auto 1vh auto;
    display: block;
}

.menu-slider {
    top: 0;
    height: 100vh;
    width: 100vw;
    font-family: "Arkhip", sans-serif;
    font-size: clamp(1.25rem, 2vh, 2.5rem);
    text-align: center;
    color: #fff;
    position: fixed;
    display: table;
    z-index: 9;
    opacity: 0;
    transition: all 0.5s ease-in-out;
    /* Frosted glass effect */
    background: rgba(255, 255, 255, 0.1);
    /* Light tint (adjust as needed) */
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    /* For Safari */
}

.menu-slider.opened {
    opacity: 1;
    transform: translate(0, 0);
}

.menu-slider.closed {
    opacity: 0;
    transform: translate(0, -100%);
}

.menu-content {
    display: table-cell;
    vertical-align: middle;
}

#menu-items {
    margin-top: 1.75vh;
    display: inline-block;
}

#menu-items a,
#menu-items div {
    display: block;
    margin: 4vh 0;
    transition: all 0.5s ease-in-out;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

#menu-items a:hover,
#menu-items div:hover {
    color: #ff3131;
    cursor: pointer;
}

.hover-container {
    color: white;
    text-decoration: none;
}

.workflow-icon,
.equipment-icon,
.gamepad-icon,
.popcorn-icon,
.brain-icon {
    display: inline-block;
}

.fa-play {
    transition: all 0.5s ease-in-out;
}

.hover-container:hover .fa-play {
    transform: scale(0.85);
}

.hover-container:hover .fa-cart-shopping {
    animation: shoppingCart 1.5s infinite;
}

.hover-container:hover .fa-paper-plane,
.hover-container-footer:hover .fa-paper-plane {
    animation: paperFly 1.5s infinite;
}

.hover-container:hover .fa-gavel,
.hover-container-footer:hover .fa-gavel {
    animation: gavelSwing 1.5s infinite;
}

.hover-container:hover .fa-wand-magic-sparkles,
.tab-buttons:hover .popcorn-icon {
    animation: magicSwing 1.5s infinite ease-in-out;
    transform-origin: center bottom;
    will-change: transform, opacity;
}

.tab-buttons:hover .workflow-icon {
    animation: puzzlePiece 2.2s infinite;
}

.tab-buttons:hover .equipment-icon,
.tab-buttons:hover .gamepad-icon {
    animation: cameraClick 1.5s infinite;
}

.hover-container:hover .fa-flask {
    animation: flaskSwing 1.5s infinite;
}

.hover-container:hover .gamepad-icon {
    animation: clapperboardSwing 1.5s infinite;
}

.hover-container:hover .fa-instagram {
    animation: clapperboardSwing 1.5s infinite;
    color: #ff3131;
}

.tab-buttons:hover .brain-icon {
    animation: brainZoom 1.5s infinite;
    color: #ff3131;
}

#copyright {
    width: 100%;
    bottom: 2vh;
    padding-top: 2vh;
    position: fixed;
    font-family: "AutobusLight", sans-serif;
    font-size: clamp(0.75rem, 1.5vh, 1.25rem);
    border-top: 0.05vh dashed #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    /* Soft dark glow */
}

/* -------------------------------------------- */

/* LANDING PAGE */

/* ========== Landing Video (fullscreen) ========== */
#landing-page-container {
    display: block;
    text-align: center;
    z-index: 1;
    position: relative;
    touch-action: pan-y;
}

#landing-video {
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    position: fixed;
    overflow: hidden;
    z-index: 2;
    border: 0;
}

#landing-overlay {
    position: fixed;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: black;
    z-index: 5;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    opacity: 1;
    transition: all 0.75s ease-in-out;
}

#landing-overlay.fade-out {
    opacity: 0;
    pointer-events: none;
}

#landing-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    z-index: 1;
    pointer-events: none;
    animation: slowZoom 20s ease-in-out infinite alternate;
}

@keyframes slowZoom {
  from { transform: scale(1)}
  to   { transform: scale(1.05)}
}

.play-button {
    margin-top: 3vh;
    width: clamp(50px, 3.5vw, 250px);
    filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.5));
    transition: all 0.5s ease-in-out;
    will-change: transform;
    position: fixed;
    z-index: 2;
}

.play-button:hover {
    cursor: pointer;
    transform: scale(0.9);
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.5));
}

#landing-title-container {
    width: 100%;
    inset-block-end: max(20vh, env(safe-area-inset-bottom));
    text-align: center;
    position: fixed;
    z-index: 2;
}

.landing-title {
    font-weight: 300;
    font-family: "Arkhip", sans-serif;
    font-size: clamp(2.25rem, 5vw, 5rem);
    animation: glowPulse 4s ease-in-out infinite;
    color: white;
    display: block;
    line-height: 1;
}

.landing-subtitle {
    margin-top: 0.75vh;
    font-weight: 300;
    font-family: "AutobusLight", sans-serif;
    animation: glowPulse 5s ease-in-out infinite;
    font-size: clamp(2rem, 3vw, 2.5rem);
    letter-spacing: 0.08rem;
    color: white;
    display: block;
    line-height: 1;
}

.scroll-indicator {
    margin-top: 1.25vh;
    padding: 0;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    animation: bounce-down 2s infinite ease-in-out;
    transition: all 0.5s ease-in-out;
    pointer-events: auto;
    /* <-- FIX HERE */
    display: block;
    position: absolute;
    z-index: 2;
}

.scroll-indicator:hover {
    color: #ff3131;
}

/* === Dust Particle Layer === */
.particle-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none; /* doesn't block clicks */
    overflow: hidden;
}

.particle {
    position: absolute;
    background: rgba(255, 255, 200, 1);
    border-radius: 50%;
    filter: blur(2px);
    animation: floatParticle linear infinite;
    z-index: 999;
}

/* ========== Gallery Videos in Slides ========== */
.slide iframe,
.slide .youtube-gallery-player {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
    opacity: 1;
    visibility: visible;
    animation: fadeIn 1s ease;
}

#footer-container {
    height: 100vh;
    width: 100vw;
    display: block;
    position: relative;
    z-index: -1;
}

#footer-image {
    bottom: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-image: url(../img/footer-mighty_v1.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
    /* ensure it's behind content */
}

#footer-bar {
    bottom: 0;
    width: 100vw;
    height: 100vh;
    text-align: center;
    position: absolute;
    color: #fff;
    z-index: 6;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hover-container-footer {
    margin: 0 auto;
    padding: 2.5vh 1vh 2vh 1vh;
    text-align: center;
    display: table-cell;
}

.footer-links {
    color: white;
    transition: all 0.5s ease-in-out;
}

.footer-links:hover {
    color: #ff3131 !important;
}

.hover-container-footer:hover,
.hover-container-footer:hover .footer-links,
.hover-container-footer:hover .fa-instagram,
.hover-container-footer:hover .fa-youtube {
    color: #ff3131;
    cursor: pointer;
}

.fa-youtube,
.fa-instagram {
    transition: all 0.5s ease-in-out;
    text-decoration: none;
    color: white;
}

.hover-container-footer:hover .fa-youtube {
    transform: scale(0.85);
}

.hover-container-footer:hover .fa-instagram {
    animation: clapperboardSwing 1.5s infinite;
}

#footer-buttons {
    bottom: 0;
    margin: 0 auto;
    font-size: clamp(0.85rem, 2vh, 1.8rem);
    position: absolute;
}

@media (max-width: 767px) and (orientation: portrait) {
    #footer-buttons {
        bottom: 3.5vh;
    }
}

.footer-title {
    font-family: "Arkhip", sans-serif;
    font-size: clamp(2rem, 2.5vh, 2.5rem);
    line-height: 1vh;
    animation: glowPulse 4s ease-in-out infinite;
}

#footer-text {
    width: 100%;
    top: 33%;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    text-align: center;
    font-size: clamp(1.75rem, 1.75vh, 1.4rem);
    letter-spacing: 0.08rem;
    animation: glowPulse 5s ease-in-out infinite;
}

.phone {
    color: #ff3131;
}

/* -------------------------------------------- */

/* CONTENT */

#content-wrapper {
    touch-action: pan-y;
}

#content-slider {
    top: 100vh;
    width: 100vw;
    background: #121212;
    position: relative;
    opacity: 1;
    z-index: 6;
    overflow-x: hidden;
}

#creative-process,
#showtime {
    padding: 10vh 0 0 0;
    background: transparent url("../img/effects/filmgrain.png") repeat 0 0;
    background-repeat: repeat;
    opacity: 0.85;
    animation: 1000ms infinite filmNoise;
}

.clapper {
    bottom: 7vh;
    left: 50%;
    height: 15vh;
    transform: translateX(-50%) rotate(-20deg);
    /*filter: drop-shadow(0 0 5px rgba(255, 255, 255,0.8));*/
    display: block;
    position: absolute;
    z-index: -1;
}

#about {
    padding: 10vh 0;
    border-bottom: 1px dashed white;
    background: transparent url("../img/effects/filmgrain.png") repeat 0 0;
    background-repeat: repeat;
    opacity: 0.85;
    animation: 1000ms infinite filmNoise;
    z-index: 1;
}

#creative-process {
    margin: 0 auto;
    padding-bottom: 10vh;
    text-align: center;
    border-bottom: 1px dashed white;
}

.stages-container {
    width: 80%;
    margin: 5vh auto 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    position: relative;
}

.stages-container-alt {
    width: 80%;
    margin: 5vh auto 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    position: relative;
}

.stage {
    max-width: 500px;
    margin: 1.5vh;
    background-color: white;
    border-radius: 0.5vh;
    overflow: hidden;
}

.stage img {
    width: 100%;
    height: auto;
    margin-top: 0;
    border-bottom: 0.1vh dashed #7b7b7b;
}

.stage i {
    margin-top: 1.5vh;
}

.stage p {
    margin-top: 1vh;
    padding: 0 0.5vw 0 0.5vw;
    font-size: clamp(1rem, 1.8vh, 3rem);
}

/* === Expandable Text Wrapper === */
.text-wrapper {
    position: relative;
    width: 100%;
    max-height: 0; /* Collapsed height */
    margin: 0 auto;
    font-size: clamp(0.75rem, 1.5vh, 1.25rem);
    line-height: 2vh;
    text-align: left;
    border-top: 0.1vh dashed #7b7b7b;
    border-bottom: 0.1vh dashed #7b7b7b;
    box-shadow: inset 0 0 10px 0 rgba(0, 0, 0, 0.5);
    overflow: hidden;
    transition: all 0.5s ease-in-out;
}

/* === Expanded State: Allow scroll === */
.text-wrapper.expanded {
    max-height: 58vh; /* Max wrapper height */
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.text-wrapper.expanded .expandable-text {
    max-height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* === Toggle Chevron Animation === */
.text-wrapper.expanded .toggle-icon i,
.text-wrapper.expanded ~ .toggle-icon i {
    transform: rotate(180deg);
}

.toggle-icon {
    text-align: center;
    padding: 1vh 0 0 0;
    margin-bottom: -1vh;
    cursor: pointer;
    transition: all 0.5s ease;
}

.toggle-icon:hover,
.toggle-icon:hover .ui-text {
    color: #ff3131;
}

#showtime {
    padding-bottom: 10vh;
    border-top: 1px dashed white;
    border-bottom: 1px dashed white;
}

#portfolio {
    box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.4);
    z-index: 3;
}

.topics-headline {
    font-family: "Arkhip", sans-serif;
    font-size: clamp(2rem, 4.25vh, 3.75rem);
    animation: glowPulseRed 5s ease-in-out infinite;
    margin: 0 auto;
    padding: 1.5vh 0;
    line-height: 2vh;
    color: #ff3131;
    position: relative;
    display: table;
    font-weight: 600;
}

.topics-headline-quote {
    margin: 0 auto;
    font-family: "AutobusLight", sans-serif;
    font-weight: 300;
    font-size: clamp(1.4rem, 2.75vh, 2.75rem);
    font-style: italic;
    text-align: center;
    color: white;
    transform: rotate(-3deg);
}

.topics-headline-quote-alt {
    margin: 0 auto;
    font-size: clamp(1.4rem, 1.5vh, 2.8rem);
    text-align: center;
    color: #7b7b7b;
}

.white-text {
    color: white !important;
    animation: glowPulse 5s ease-in-out infinite;
}

.text-icon {
    display: none;
}

#background-drone {
    width: clamp(200px, 25vw, 400px);
    height: clamp(200px, 25vw, 400px);
    top: 12.5vh;
    right: 20vw;
    position: absolute;
    background: url(../img/effects/drone.webp);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    display: block;
    z-index: 4;
    animation-name: droneHover;
    animation-fill-mode: forwards;
    animation-delay: 0;
    animation-iteration-count: infinite;
    animation-duration: 3.5s;
}

@media (max-width: 767px) and (orientation: portrait) {
    #background-drone {
        right: 12.5vw;
    }
}

.quote {
    margin: 5vh auto 0 auto;
    font-family: "Slick", sans-serif;
    font-size: clamp(1rem, 2vh, 2.25rem) !important;
    line-height: 3vh;
    font-weight: 100;
    text-align: center;
    font-style: italic;
    color: white;
}

.coming-soon {
    font-family: "Arkhip", sans-serif;
    text-align: center;
    font-size: clamp(2rem, 3vh, 4.5rem);
    color: white;
    padding: 10vh 0;
    color: #ff3131;
}

.card-container,
.card-container-alt {
    margin: 0 auto;
    width: 80%;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.card {
    max-width: 500px;
    margin: 1.5vh;
    background: white;
    box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.4);
    border-radius: 0.5vh;
    text-align: center;
    display: inline-block;
    transition: all 0.5s ease-in-out;
    will-change: transform;
}

.card:hover {
    cursor: pointer;
    transform: scale(1.1);
}

.card-headline-top {
    margin-top: 1vh;
    width: 100%;
    display: inline-block;
    text-align: center;
    font-family: "Arkhip", sans-serif;
    font-size: clamp(1rem, 3vh, 2rem);
    font-weight: 600;
}

.card-headline-bottom {
    margin-bottom: 1.7vh;
    width: 100%;
    display: inline-block;
    text-align: center;
    font-family: "Barlow-Light", sans-serif;
    letter-spacing: 0.05vh;
    font-size: clamp(0.85rem, 2.25vh, 1.5rem);
}

.hr-spacer {
    margin: 0 auto;
    color: #7b7b7b;
}

.card-headline-top-cookies {
    margin: 1vh 0 0.25vh 0;
    font-family: "Arkhip", sans-serif;
    font-size: clamp(1.3rem, 3vh, 2.5rem);
    font-weight: 600;
    display: block;
}

.card-headline-bottom-cookies {
    margin: 0 auto;
    font-family: "AutobusLight", sans-serif;
    font-size: clamp(1.2rem, 2vh, 2.75rem);
    letter-spacing: 0.08rem;
    text-align: center;
    color: white;
}

.card-headline-alt {
    margin-bottom: 2.5vh;
    padding: 0.5vh 1vh;
    display: inline-block;
    color: #ff3131;
    font-weight: 300;
}

.highlight-static {
    color: #ff3131;
}

.highlight {
    color: #ff3131;
}

.highlight:hover {
    cursor: no-drop !important;
}

.highlight-alt {
    color: #ff3131;
    text-decoration: none;
}

.star-gray {
    filter: grayscale(100%);
}

.note {
    font-family: "Slick", sans-serif;
    font-size: clamp(0.8rem, 1.3vh, 2.25rem) !important;
}

.list-titles {

}

.no-link,
.emoji {
    transition: all 0.5s ease-in-out;
    font-size: clamp(0.7rem, 1.25vh, 2.25rem) !important;
    display: inline-block;
}

.no-link:hover {
    transform: translateX(0.15vw);
}

.mod-descriptions {
    font-size: clamp(0.7rem, 1.25vh, 2.25rem) !important;
}

.card-button-container,
.card-button-container-alt {
    margin: 0 auto;
    line-height: 5.5vh;
    color: #fff;
    text-align: center;
    text-decoration: none;
    background: rgba(255, 49, 49, 1);
    border-bottom: 0.5vh solid rgba(250, 105, 105, 1);
    overflow: hidden;
    backface-visibility: hidden;
    border-radius: 0.25vh;
    transition: all 0.5s ease-in-out;
}

.override {
    margin: 2.8vh 0 0 0 !important;
}

.card-button-container-shop {
    margin-top: 3vh;
    width: clamp(250px, 15vw, 280px);
}

.card-button-container-alt {
    width: clamp(250px, 15vw, 280px);
}

.card-button-container-youtube {
    background: rgba(255, 0, 0, 0.7);
    border-bottom: 0.5vh solid rgba(183, 28, 28, 0.5);
}

.card-button-mobile {
    display: none !important;
}

.card:hover .card-button-container,
.card-button-container:hover {
    background: rgba(250, 105, 105, 1);
    border-color: rgba(255, 49, 49, 1);
    cursor: pointer;
}

.card-button-container-youtube:hover {
    background: rgba(255, 0, 0, 1);
    border-bottom: 0.5vh solid rgba(183, 28, 28, 1);
}

.card:hover .card-button-text,
.card-button-container:hover .card-button-text {
    display: none;
}

.card:hover .card-button-icon,
.card:hover .tabs-button-icon,
.card:hover .close-button-icon,
.card-button-container:hover .card-button-icon,
.card-button-container:hover .tabs-button-icon,
.card-button-container:hover .close-button-icon {
    display: block;
}

.card-button-container a {
    text-decoration: none;
    color: #fff;
}

.card-button-text {
    padding: 0 2vh;
    display: block;
    font-family: "Barlow-Light", sans-serif;
    font-size: 2.2vh;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.card-button-icon {
    display: none;
    font-size: clamp(1.4rem, 3.5vh, 2.75rem);
    animation-name: envelopeSlide;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
    animation-duration: 0.75s;
}

.fa-shopping-cart {
    animation-name: envelopeSlide;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
    animation-duration: 0.75s;
}

.tabs-button-icon {
    display: none;
    animation-name: eyeBlink;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
    animation-duration: 1s;
}

.tab-menu {
    margin: 5vh auto;
    color: #7b7b7b;
    text-align: center;
    display: table;
    z-index: 1;
    position: relative;
}

.tab-buttons,
.tab-buttons-alt {
    padding: 1vh 4vh;
    font-size: clamp(1rem, 2.5vh, 2rem);
    text-decoration: none;
    display: inline-block;
    transition: all 0.5s ease-in-out;
}

.tab-buttons:hover,
.tab-buttons-alt:hover {
    color: #ff3131;
    cursor: pointer;
}

.fa-person-through-window {
    display: inline-block;
}

.tab-buttons:hover .fa-person-through-window {
    animation: popUpWobble 2s ease-in-out infinite;
}

.label-with-badge {
    position: relative;
    display: inline-block;
}

.notification-badge {
    color: white;
    background: #ff3131;
    position: absolute;
    top: -0.4em;
    right: -1em;
    font-size: 0.5em;
    /* smaller text */
    height: 1.2em;
    /* smaller circle */
    min-width: 1.2em;
    /* ensures it stays round for 1 digit */
    padding: 0 0.3em;
    /* enough for double digits, still tight */
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border-radius: 999px;
    white-space: nowrap;
    box-sizing: border-box;
}

/* ACTIVE CLASS TO BE ADDED WHEN CLICKING "tabLinks" */
.active-tabs,
.active-menu {
    color: #ff3131;
}

.active-tabs:hover,
.active-menu:hover {
    cursor: no-drop !important;
}

.active-tabs:hover .fa-cube,
.active-tabs:hover .fa-cubes,
.active-tabs:hover .fa-gift,
.active-tabs:hover .fa-money-bill-alt {
    animation-iteration-count: 0;
}

/* CONTENT THAT CHANGES WHEN CLICKING "tabLinks" */
.tab-content {
    display: none;
    animation: tabZoomFade 1s forwards;
}

.preview-image {
    width: 100%;
    overflow: hidden;
    box-shadow: inset 0 0 50px 0 rgba(0, 0, 0, 0.9);
}

/* TABS Portfolio CONTENT */

.tab-portfolio {
    width: clamp(400px, 40vw, 1200px);
    margin: 5vh auto 10vh auto;
    /*padding-bottom: 3vh; THE BUTTON PADDING */
    background: white;
    box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.25);
    border-radius: 0.5vh;
    position: relative;
}

.content-text {
    margin: 0 auto;
    padding: 3vh 3vh 2.5vh 3vh;
    text-align: left;
    line-height: clamp(1.25rem, 2.05vh, 1.5rem) !important;
    line-height: 1.95vh;
    box-shadow: inset 0 0 5px 1px rgba(0, 0, 0, 0.25);
}

/* STORE */

#zoom-store {
    width: clamp(400px, 70vw, 1500px);
    overflow: hidden;
    padding-top: 2vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: rgba(0, 0, 0, 0.75);
    background: #fff;
    position: fixed;
    display: none;
    z-index: 11;
    border-radius: 0.5vh;
    animation-delay: 0;
    animation-fill-mode: forwards;
    animation-iteration-count: 1;
    animation-duration: 2s;
}

#store-scroll-wrapper {
    width: 100%;
    max-height: 65vh;
    /* adjust as needed */
    overflow-y: auto;
    padding-right: 1vw;
    margin-top: 2vh;
    scroll-behavior: smooth;
    border-top: 1px solid rgba(0, 0, 0, 0.3);
    border-bottom: 0.1vh solid rgba(0, 0, 0, 0.3);
    box-shadow: inset 0 0 10px 0 rgba(0, 0, 0, 0.5);
}

.store-grid {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 4vh;
    gap: 2vw;
    justify-content: center;
}

.store-card {
    width: clamp(250px, 18vw, 400px);
    padding: 2vh 2vw;
    background: white;
    border-radius: 10px;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
    transition: transform 0.3s ease;
}

.store-card:hover {
    transform: scale(1.03);
}

.store-card h3 {
    font-family: "Arkhip", sans-serif;
    font-size: 2rem;
    margin-top: 0.5vh;
    margin-bottom: 0.2em;
}

.store-sub {
    font-size: 1rem;
    margin-bottom: 1em;
}

.tier-tabs {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1em;
}

.tier-tab {
    flex: 1;
    background: #eee;
    border: none;
    padding: 0.5em;
    margin: 0 0.2em;
    cursor: pointer;
    font-weight: bold;
    transition: all 1s ease;
    border-radius: 5px;
}

.tier-tab.active {
    background-color: #ff3131;
    color: white;
}

.tier-content ul {
    padding-left: 1.25em;
    list-style: none;
    font-size: 0.95rem;
    color: #333;
    text-align: left;
}

.border-dashed {
    border-bottom: 1px dashed #ccc;
    /* or any color */
    padding-bottom: 0.5em;
    margin-bottom: 0.5em;
}

.border-dashed-alt {
    border-top: 1px dashed #ccc;
    /* or any color */
    padding-top: 0.5em;
    margin-top: 0.5em;
}

.fa-circle-check,
.fa-circle-xmark,
.fa-circle-info,
.fa-hand {
    letter-spacing: 5px;
}

.fa-circle-check {
    color: #ff3131;
}

.fa-circle-xmark {
    color: rgba(0, 0, 0, 0.4);
}

.fa-hand {
    visibility: hidden;
}

.fa-arrow-pointer,
.fa-bars-staggered {
    padding-right: 5px;
}

.fa-arrow-pointer {
    transform: scale(0.75);
}

.store-translations {
    width: 25px;
}

.modeling-preview {
    width: 10vw;
    margin-top: -0.5vh;
    margin-bottom: -0.5vh;
    overflow: hidden;
    transition: all 0.5s ease;
}

.modeling-preview:hover {
    transform: scale(1.4);
    cursor: zoom-in;
}

/* Price styling */
.price-tag {
    font-weight: bold;
    font-size: 1.2rem;
    margin-top: 1em;
    color: #ff3131;
    flex: 1;
    background: #eee;
    border: none;
    padding: 0.5em;
    margin: 0 0.2em;
    cursor: pointer;
    border-radius: 5px;
    transition: all 1s ease;
    animation: fadeInPrice 1s ease;
}

.close-store {
    margin: 3vh 5vh !important;
}

/* //////////////////////////////////////////////// */
/* CSS    JS_SLIDE   JS_SLIDE     JS_SLIDE     CSS  */
/* //////////////////////////////////////////////// */

.slider {
    width: 100%;
    padding-bottom: 45%;
    /* responsive height */
    overflow: hidden;
    /* let iframe display */
    position: relative;
    opacity: 1;
}

.slide img {
    top: 0;
    left: 0;
    width: 100%;
    /* Width of the container */
    padding-bottom: 56.25%;
    /* 16:9 Aspect Ratio */
    object-fit: cover;
    /* Resize the image to cover the container, the image may be cut off to fill the container */
    position: absolute;
    /* Needed to position the image properly (centered) */
    transition: all 0.5s ease-in-out;
    animation: fadeIn 2s forwards;
}

.slide img:hover {
    transform: scale(1.1);
    cursor: zoom-in;
}

/* HIGH EFFORT IMAGE SLIDER */

/* Container for the previews and navigation */
.preview-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Navigation button container */
.preview-nav-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5vw;
    margin: 2vh auto;
}

/* Navigation buttons */
.preview-nav {
    background: none;
    border: none;
    color: #7b7b7b;
    cursor: pointer;
    transition: color 0.3s ease;
}

.fa-chevron-left,
.fa-chevron-right,
.fa-chevron-down {
    font-size: clamp(1rem, 2vh, 1.5rem) !important;
}

.preview-nav:hover {
    color: #ff3131;
}

.preview-count {
    font-size: clamp(1rem, 1.6vh, 1.5rem) !important;
    color: #7b7b7b;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    pointer-events: none;
}

.ui-text {
    font-size: clamp(1rem, 1.6vh, 1.5rem) !important;
    color: #7b7b7b;
    transition: all 0.5s ease;
}

/* //////////////////////////////////////////////// */
/* CSS    JS_SLIDE   JS_SLIDE     JS_SLIDE     CSS  */
/* //////////////////////////////////////////////// */

fieldset {
    border: none;
    margin-bottom: 2vh;
    padding: 0;
    display: flex;
}

input,
textarea {
    font-family: "Barlow-Light", sans-serif;
    font-size: clamp(0.9rem, 2vh, 1.6rem);
}

textarea {
    height: 15vh;
}

button {
    border: none;
}

.button-container {
    margin-top: -0.5vh;
}

.profile-wrapper {
    position: relative;
    margin: 1.25vh auto;
    bottom: 0;
    height: 12.5vh;
    width: 12.5vh;
    background-color: #ffffff;
    border-radius: 0.5vh;
}

.profile-image {
    margin: 0 auto 2.5vh auto;
    height: 12.5vh;
    border-radius: 5%;
    box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.25);
    display: block;
}

.shadow {
    position: absolute;
    width: 100%;
    height: 100%;
    box-shadow: inset 0 0 50px 0 rgba(0, 0, 0, 0.9);
    border-radius: 0.5vh;
    top: 0;
    left: 0;
}

#contact input[type="text"],
#contact input[type="email"],
#contact input[type="tel"],
#contact input[type="url"],
#contact textarea {
    width: 100%;
    margin: 0 5vh;
    padding: 1vh;
    border: 0.1vh solid #ccc;
}

#contact input[type="text"]:hover,
#contact input[type="email"]:hover,
#contact input[type="tel"]:hover,
#contact input[type="url"]:hover,
#contact textarea:hover {
    border: 0.1vh solid #ff3131;
}

#contact textarea {
    resize: none;
}

#contact input:focus,
#contact textarea:focus {
    border: 0.1vh solid #ff3131;
}

/* ************************************************ */

/* ///////////////////////////////////////////// */
/* CSS    JS_ZOOM   JS_ZOOM     JS_ZOOM     CSS  */
/* ///////////////////////////////////////////// */

#zoom-background {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.95);
    text-align: center;
    position: fixed;
    display: none;
    z-index: 10;
}

#zoom-background:hover {
    cursor: pointer;
}

#zoom-background-alt {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100vw;
    height: 100vh;
    backdrop-filter: blur(4px);
    /* stylish blur */
    background: rgba(0, 0, 0, 0.95);
    text-align: center;
    position: fixed;
    display: none;
    z-index: 12;
}

#zoom-background-alt:hover {
    cursor: pointer;
}

.zoom-button-container {
    left: 50%;
    width: clamp(250px, 15vw, 280px);
    bottom: 2.5vh;
    position: fixed;
    transform: translate(-50%, -50%);
}

#zoom-button {
    display: none;
    transition: all 0.5s ease-in-out;
}

#zoom-button:hover {
    cursor: pointer;
}

.open-button-icon {
    font-size: 1.8vh !important;
    display: none;
    transform: rotate(-45deg);
    animation-name: timesOpen;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
    animation-duration: 1s;
}

.close-button-icon {
    font-size: 2.75vh !important;
    display: none;
    animation-name: timesClose;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
    animation-duration: 1s;
}

#zoom-image {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(400px, 80vw, 1600px);
    height: auto;
    position: fixed;
    display: none;
    z-index: 14;
}

#zoom-image:hover {
    cursor: no-drop;
}

#zoom-contact,
#zoom-disclaimer {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: rgba(0, 0, 0, 0.75);
    background: #fff;
    position: fixed;
    display: none;
    z-index: 11;
    border-radius: 0.5vh;
    animation-delay: 0;
    animation-fill-mode: forwards;
    animation-iteration-count: 1;
    animation-duration: 2s;
}

#zoom-disclaimer {
    width: clamp(400px, 50vw, 1250px);
    padding-top: 2vh;
    overflow: hidden;
}

#zoom-contact {
    padding: 2vh 0 3vh 0;
    width: clamp(400px, 32.5vw, 800px);
}

#zoom-contact .card-button-container {
    margin: 0 5vh;
}

.zoom-contact-border {
    width: 100%;
    margin: 0 auto -1.5vh auto;
    padding-bottom: 1.5vh;
    border-bottom: 0.1vh solid rgba(0, 0, 0, 0.5);
    display: block;
    overflow: visible;
}

.disclaimer-headline {
    font-size: clamp(1rem, 2.5vh, 2rem);
}

.disclaimer-button {
    margin: 3vh 5vh;
}

.text-disclaimer-margin {
    margin-top: 3vh;
    display: block;
}

#text-disclaimer {
    width: 100%;
    height: 60vh;
    margin: 2vh auto 0 auto;
    padding: 2.5vh 5vh;
    font-size: clamp(0.75rem, 1.5vh, 1.25rem);
    line-height: 2vh;
    text-align: left;
    border-top: 0.1vh solid rgba(0, 0, 0, 0.5);
    border-bottom: 0.1vh solid rgba(0, 0, 0, 0.5);
    box-shadow: inset 0 0 10px 0 rgba(0, 0, 0, 0.5);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    /* Optional: prevents bounce on mobile */
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
    /* Ensures it's interactable even with scroll blocked */
}

#text-disclaimer,
#footer-text,
.mail,
.phone {
    user-select: text;
}

#mail:hover {
    cursor: pointer;
}

#mail::selection {
    background: rgba(30, 136, 229, 0.5);
}

#mail::-moz-selection {
    background: rgba(230, 81, 0, 0.5);
}

/* //////////////////////////////////////////////// */
/* CSS    JS_SLIDE   JS_SLIDE     JS_SLIDE     CSS  */
/* //////////////////////////////////////////////// */

/* Wrapper: fullscreen overlay, handles centering */
#cookies {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: fixed;
    background-color: rgba(0, 0, 0, 0.5);
    /* semi-transparent overlay */
    backdrop-filter: blur(4px);
    /* stylish blur */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

#cookies-inner {
    width: 90vw;
    /* Enforce a hard width, not just max-width */
    max-width: 1000px;
    /* Optional: limit on large screens */
    box-sizing: border-box;
    display: block;
    /* Force block layout */
    padding: 2vh;
    color: #ff3131;
    font-size: clamp(0.7rem, 1.25vh, 1.1rem);
    background: black;
    border-radius: 0.5vh;
    text-align: center;
    opacity: 1;
    transition: opacity 1s ease;
    animation: fromZero 3s forwards;
}

#cookies-inner.fade-transition {
    opacity: 0;
}

/* Container overflow handling */
.filmstrip-fade-wrapper {
    width: 100%;
    margin: 2vh auto;
    position: relative;
    overflow: hidden;
    opacity: 0;
    animation: filmstripFade 5s ease-in-out forwards;
}

/* The fade effect overlay using inset shadows */
.filmstrip-fade-wrapper::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
    box-shadow:
        inset 40px 0 35px -10px rgba(0, 0, 0, 1),
        inset -40px 0 35px -10px rgba(0, 0, 0, 1);
}

/* Container with dashed lines and overflow handling */
.filmstrip-wrapper {
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
    border-top: 0.1vh dashed white;
    border-bottom: 0.1vh dashed white;
    position: relative;
    z-index: 1;
}

/* The animated filmstrip track */
.filmstrip-track {
    display: flex;
    width: max-content;
    animation: filmstripRoll 35s linear infinite;
}

/* Individual filmstrip frames */
.filmstrip {
    height: 15vh;
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
    display: block;
}

#cookies-text {
    word-break: break-word;
    overflow-wrap: anywhere;
    white-space: normal;
    width: 85%;
    text-align: center;
    margin: 0 auto 2vh auto;
    font-size: clamp(0.2rem, 1.5vh, 2rem);
    color: #7b7b7b;
    box-sizing: border-box;
}

#close-cookies,
#open-disclaimer {
    margin: 0 auto;
    padding: 0 0.5vh;
    border-radius: 0.25vh;
    color: #fff;
    top: 0%;
    display: block;
    background: rgba(255, 49, 49, 1);
    transition: all 0.5s ease-in-out;
}

#close-cookies:hover,
#open-disclaimer:hover {
    cursor: pointer;
    background-color: rgba(250, 105, 105, 1);
}

#open-disclaimer,
#close-cookies {
    padding: 1vh;
    font-size: clamp(0.75rem, 2vh, 2rem);
}

#close-cookies {
    font-weight: 600;
}

.location-headline,
.location-headline-alt {
    width: 100%;
    font-size: clamp(0.7rem, 1.6vh, 2rem);
    font-weight: 300;
    color: #ff3131;
}

.location-headline-alt {
    line-height: 2.5vh;
}

.location-text {
    font-size: clamp(0.7rem, 1.6vh, 2rem);
    width: 40vw;
    margin: 0;
}

.contact-write {
    color: #ff3131 !important;
    position: relative;
    z-index: 9999;
    text-decoration: none;
}

.hide-label {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}