/* ===== site.css ===== */

/* 1. Tokens & Basics */
/* Globale Variablen für Astra */
:root {
    --ast-body-font-family: 'Satoshi-Variable', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --ast-heading-font-family: 'Satoshi-Variable', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --section-space: clamp(6rem, 8vw, 12rem);
    --flow-space: clamp(1rem, 2vw, 2rem);
    --section-side: clamp(1rem, 5vw, 3rem)
    --color-text: #0E1116;
    --color-white-text: #F1F1F1;
}
html {
    overflow-x: hidden;
}
/* Erzwinge Überschreibung (Customizer CSS kommt zuletzt) */
body {
    font-family: var(--ast-body-font-family) !important;
    font-weight: 400;
    overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--ast-heading-font-family) !important;
    font-weight: 800 !important;
}

h2,
h3 {
    font-weight: 800 !important;
}

h2  {
    padding-bottom: 64px;
}

.wp-block-uagb-container.section {
    padding-inline: clamp(1rem, 5vw, 3rem);
}

/*
.wp-block-uagb-container.section {
    padding-block: var(--section-space);
    padding-top: 0;
    padding-inline: clamp(1rem, 5vw, 3rem);
}

.wp-block-uagb-container.section>*>*+* {
    margin-block-start: var(--flow-space);
}

.wp-block-uagb-container.section--tight {
    --section-space: clamp(4rem, 6vw, 8rem);
}
*/

img, a img {
  -webkit-user-drag: none;   /* Safari/Chrome */
  user-select: none;         /* verhindert Text-/Bild-Selektion beim Ziehen */
    user-drag: none;
}

/* 2. Layout / Sections */
.site-title a {
    text-decoration: none;
    color: #131313;
}
/* HERO */

.emblem .tri-left,
.emblem .tri-center,
.emblem .tri-right,
.hero .hero-copy{
  will-change: transform, filter;
}

@media (prefers-reduced-motion: reduce){
  .emblem * , .hero .hero-copy{ transition: none !important; animation: none !important; }
}

.hero-row {
    position: absolute !important;
    width: 100%;
    height: 100%;
    top: 80px;
    left: 0;
    z-index: 2;
    pointer-events: none;
}

/* special character */
.hero-row .special {
    color: #5E6772;
}

.hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.hero .hero-copy {
    transition: transform 0.3s ease-out, text-shadow .3s ease-out, opacity .3s ease-out;
}

.hero-copy {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    left: 50%;
    transform: translate(-50%, 5%);
    text-align: center;
    pointer-events: none;
    user-select: none;
}

.hero:has(.tri-center:hover path) .hero-copy {
    transform: translate(-50%, 5%) translatey(-4px) scale(1.05);
    text-shadow: 0 1px 1px #ffffff80;
}


.hero-copy h1 {
    width: clamp(295px, 48vw, 608px);
    color: #F1F1F1;
}

.hero-copy p {
    color: #F1F1F1;
    width: clamp(200px, 28vw, 410px);
    font-size: 24px;
    text-align: center;
    ;
}

.emblem {
    display: block;
    width: min(1400px, 100vw);

    filter: drop-shadow(0 12px 28px rgba(0, 0, 0, .12));
    z-index: 1;
    margin: auto;
}

.emblem a path {
    transition: transform .2s ease, filter .2s ease;
    pointer-events: visiblePainted;
    /* nur bemalte Fläche klickbar */
    cursor: pointer;
}

@keyframes rise {
    0% {
        transform: translate(var(--dx, 0), var(--dy1, 0));
    }
    100% {
        transform: translate(var(--dx, 0), var(--dy2, 0));
    }
}

@keyframes enter {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}


.tilt {
    animation: rise 1.2s ease-out forwards;
}

.tri-text {
    fill: var(--color-white-text);
    transition: filter 0.3s ease-out, transform 0.3s ease-out;
}

.tri-arrow {
  transition: transform 0.35s ease-out;
  transform-box: fill-box;     /* sorgt dafür, dass sich SVG richtig dreht */
  transform-origin: center;    /* Drehpunkt in der Mitte */
}
  
a:hover .tri-arrow,
.tri-left:hover .tri-arrow {
  transform: translate(var(--dax, 0),var(--day,0)) rotate(var(--darot, 0));
}

a:hover .tri-text,
.tri-left:hover .tri-text {
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.8));
  transform: translate(var(--dtx, 0),var(--dty, 0)) scale(1.1);
}

/*left triangel */

.tri-left {
    --dx: 100px;
    --dy1: 500px;
    --dy2: 50px;
    --dax: 220px; /* arrow x und y werte */
    --day: 490px; 
    --darot: 45deg;
    --dtx: 50px; /* text translate x und y werte */
    --dty: 500px;
    transform-origin: bottom right;
    transform-box: fill-box;
}

.tri-left:hover path {
    filter: drop-shadow(0 4px 10px #2E6BFF80);
}

/* rechter button */

.tri-right {
    --dx: 575px;
    --dy1: 500px;
    --dy2: 50px;
    --dax: 200px; /* arrow x und y werte */
    --day: 490px; 
    --darot: -45deg;
    --dtx: 200px; /* text translate x und y werte */
    --dty: 500px;
    transform-origin: bottom left;
    transform-box: fill-box;
}

.tri-right:hover path {
    filter: drop-shadow(0 4px 10px #B4CDFF80);
}

.tri-center {
    --dx: 125px;
    --dy1: 500px;
    --dy2: 50px;
    animation: rise 0.8s ease-out forwards;
}

.tri-center path {
    transform-origin: center;
    transform-box: fill-box;
    transition: transform 0.3s ease-out;
}

.tri-center:hover path {
    filter: drop-shadow(0 4px 15px #B4CDFF80);
    transform: translateY(-4px) scale(1.05);

}


.hero:has(.emblem :is(.tri-left:hover, .tri-center:hover, .tri-right:hover) path)
  .hero-copy{ /* hero copy hervorheben wenn buttons gehovert werden */
  transform: translate(-50%, 5%) translateY(-4px) scale(1.05);
  text-shadow: 0 1px 1px #ffffff80;
}

/* override underline in emblem textlink */
.ast-single-post .entry-content svg a {
    text-decoration: none;
}


@media (min-width: 1024px) {
    .hero-row {
        opacity: 0;
        animation: enter 0.8s ease-out 0.8s forwards;
    }
}



/* Mobile */
@media (max-width: 768px) {

    .emblem {
        width: min(375px, 100vw);
        height: auto;
    }

    .hero-copy {
        position: absolute;
        top: 0%;
        left: 50%;
        transform: translate(-50%, 0%);
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 608px;
        text-align: center;
        pointer-events: none;
        user-select: none;
    }

    .hero-copy h1 {
        color: #F1F1F1;
        width: clamp(275px, 76vw, 295px);
        font-size: 24px;
    }

    .hero-copy p {
        color: #F1F1F1;
        width: clamp(275px, 76vw, 295px);
        font-weight: 400;
        font-size: 12px;
    }

    .tri-left-text {
        fill: #F1F1F1;
        font-size: 16px;
        font-weight: 700;
    }

    .tri-right-text {
        fill: #F1F1F1;
        font-size: 16px;
        font-weight: 700;
    }
}

/* PROJECTS */
.slides-wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.slides {
    display: flex;
    flex-direction: row;
    width: 100px;
    transition: transform 0.5s ease-in-out;
    z-index: 2;
    /* sanftes sliden */
}

.slide {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 100px;
    margin-right: 50px;
    height: 32px;
    background-color: rgba(0,0,0, .2);
    transition: transform 0.5s ease-in-out, background-color 0.2s ease-in;
    border-radius: 20px;
    font-size: 14px;
    line-height: 100%;
    transform: scale(0.8);
    z-index: 2;
    pointer-events: auto;
}

.slide.active {
    background-color: white;
    border: 1px solid #131313;
    transform: scale(1.25);
}

.slide:not(.active):hover {
    transform: scale(1.1);
    background-color: rgba(132, 134, 138, 0.65);
    cursor: pointer;
}

.link-project {
    background: linear-gradient(90deg,
            /* Richtung – 90deg = von links nach rechts */
            rgba(58, 123, 255, 0.5) 0%,
            /* #3A7BFF bei 50 % Deckkraft */
            rgba(46, 107, 255, 1) 18%
            /* #2E6BFF bei voller Deckkraft */
        );
    -webkit-background-clip: text;
    /* Clippt den Hintergrund auf den Text */
    -webkit-text-fill-color: transparent;
}


/* Projects slides */
.projects-container {
    position: relative;
    width: 100%;
    height: 500px;
    overflow: hidden;
    border: 1px dashed lightgray;
    border-radius: 12px;
    margin-top: 20px;
    padding: 20px;
    transition: all 0.3s ease;
}

.project-content {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.project-content.active {
    position: relative;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

/* Process section */

@keyframes process__slide-in {
    0% {
        transform: translateY(500px);
    }
    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}


@media (min-width: 1024px) {

.step-slide {
    opacity: 0;
}

.step-slide.visible {
    animation: process__slide-in 0.6s ease-out forwards;
}

.step-slide:nth-child(1) { animation-delay: 0s; }
.step-slide:nth-child(2) { animation-delay: 0.1s; }
.step-slide:nth-child(3) { animation-delay: 0.2s; }

}

.process__step {
    padding: 20px;
    max-width: 380px;
}

.process__step-head {
    display: flex;

}

.process__step-number {
    font-size: 32px;
    font-weight: 700;
    line-height: 100%;
    color: #9ca3af;
}

.process__step-heading {
    font-size: 1rem;
    color: #111827;
    line-height: 1.2rem;
    align-items: baseline;
}

.process__step-icon{
    opacity: 0.8;
}

.process__step-text {
    margin: 0;
    padding: 0;
    font-size: 1.2rem;
    line-height: 150%;
}


/* === Back to Top footer === */
#backToTop {
  position: fixed;
  bottom: 32px;
  right: 32px;
  background: #111;
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  font-size: 22px;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  z-index: 999;
}

#backToTop.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

#backToTop:hover {
  background: #0073e6; /* oder deine Akzentfarbe */
}

/* 3. Components */

/* 4. Utilities */
/*
html, body { overflow-x: auto; }
* { outline: 1px dashed rgba(255,0,0,.25); } /* temporär! */