/* =========================================
   HERO MODULE - Phase 3 Namespaced & Stabilized
   ========================================= */

.ks-block-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    background-color: var(--ks-color-white);
    overflow: hidden;
}

.ks-block-hero__area {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
    transition: transform var(--ks-transition-timing-in-out);
    /* Ensure no unexpected overflow */
    box-sizing: border-box;
    display: block;
    margin: 0;
    padding: 0;
}

.ks-block-hero__area:hover {
    transform: scale(1.02);
    /* Reduced scale to prevent layout glitches */
    z-index: 10;
}

/* =========================================
   GEOMETRY & VARIABLES
   ========================================= */
:root {
    /* Responsive Gaps */
    --ks-hero-gap: 20px;
    /* Desktop Standard */
}

@media (max-width: 1200px) {
    :root {
        --ks-hero-gap: 16px;
    }
}

@media (max-width: 768px) {
    :root {
        --ks-hero-gap: 10px;
    }
}

/* 
   CLIP PATH FORMULAS 
   Using explicit calc() for stability using the variable.
*/

/* LEFT AREA (Top Left) */
.ks-block-hero__area--left {
    background-color: var(--ks-color-primary);
    clip-path: polygon(0 0,
            calc(50% - var(--ks-hero-gap)/2) 0,
            calc(50% - var(--ks-hero-gap)/2) 50%,
            0 calc(100% - var(--ks-hero-gap)));
}

/* RIGHT AREA (Top Right) */
.ks-block-hero__area--right {
    background-color: #64B5F6;
    clip-path: polygon(calc(50% + var(--ks-hero-gap)/2) 0,
            100% 0,
            100% calc(100% - var(--ks-hero-gap)),
            calc(50% + var(--ks-hero-gap)/2) 50%);
}

/* BOTTOM AREA (Bottom Center) */
.ks-block-hero__area--bottom {
    background-color: var(--ks-color-tertiary);
    /* 
       Tip is at 50% + gap to ensure clean separation from the 50% center line.
       Sides start at gap/100% to keep corners clean.
    */
    clip-path: polygon(var(--ks-hero-gap) 100%,
            50% calc(50% + var(--ks-hero-gap)),
            calc(100% - var(--ks-hero-gap)) 100%);
}

/* =========================================
   TEXT LAYOUT & TYPOGRAPHY
   ========================================= */

.ks-block-hero__text {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    /* Safety margins */
    padding: 20px;
    box-sizing: border-box;
}

.ks-block-hero__area h2 {
    color: var(--ks-color-white);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    margin: 0;

    /* STABILITY RULES - Break between words only, show complete words */
    word-break: normal;
    overflow-wrap: normal;
    white-space: normal;
    hyphens: none;
    -webkit-hyphens: none;

    /* OVERFLOW PROTECTION - Allow wrapping, no ellipsis */
    max-width: 100%;
    overflow: visible;

    /* Responsive Fonts - Auto-scaling based on container width */
    font-size: clamp(1rem, 4vw, 2.2rem);
    line-height: 1.2;
}

/* Specific Positioning per Area (Desktop) */

.ks-block-hero__area--left .ks-block-hero__text {
    top: 0;
    left: 0;
    width: 45%;
    height: 50%;
    /* Align text slightly to top-left visually */
    justify-content: center;
    align-items: center;
}

.ks-block-hero__area--right .ks-block-hero__text {
    top: 0;
    right: 0;
    width: 45%;
    height: 50%;
}

.ks-block-hero__area--bottom .ks-block-hero__text {
    bottom: 5%;
    left: 15%;
    width: 70%;
    height: 40%;
    align-items: flex-end;
    padding-bottom: 80px;
}

/* LOGO */
.ks-block-hero__logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 20;
    width: auto;
    max-width: 60vw;
    pointer-events: none;
}

.ks-block-hero__logo img {
    width: 800px;
    max-width: 100%;
    height: auto;
    display: block;
}

/* =========================================
   RESPONSIVE: TABLET (max-width: 1024px)
   ========================================= */
@media (max-width: 1024px) {
    .ks-block-hero__area h2 {
        font-size: clamp(1rem, 3vw, 1.5rem);
    }

    .ks-block-hero__logo img {
        width: 500px;
        max-width: 70vw;
    }

    /* Fix Tablet Positioning to avoid clipping against diagonals */
    .ks-block-hero__area--left .ks-block-hero__text {
        top: 10%;
        height: 45%;
        align-items: flex-start;
        /* Move text up to start */
    }

    .ks-block-hero__area--right .ks-block-hero__text {
        top: 10%;
        height: 45%;
        align-items: flex-start;
    }
}


/* =========================================
   RESPONSIVE: MOBILE (max-width: 768px)
   ========================================= */
@media (max-width: 768px) {

    /* Adjust Clip Paths for Mobile "Stacked" feel but keeping geometry */
    .ks-block-hero__area--left {
        /* More space on left */
        clip-path: polygon(0 0,
                calc(50% - var(--ks-hero-gap)/2) 0,
                calc(50% - var(--ks-hero-gap)/2) 50%,
                0 100%);
    }

    .ks-block-hero__area--right {
        /* More space on right */
        clip-path: polygon(calc(50% + var(--ks-hero-gap)/2) 0,
                100% 0,
                100% 100%,
                calc(50% + var(--ks-hero-gap)/2) 50%);
    }

    .ks-block-hero__area--bottom {
        /* Bottom wedge - Using calc instead of magic numbers */
        clip-path: polygon(var(--ks-hero-gap) 100%,
                50% calc(50% + var(--ks-hero-gap)),
                calc(100% - var(--ks-hero-gap)) 100%);
    }

    /* Positioning Adjustments - DROPPED LOWER TO AVOID CLIPPING */
    .ks-block-hero__area--left .ks-block-hero__text {
        top: 22%;
        /* Increased for safety */
        left: 2%;
        width: 46%;
        height: 45%;
        align-items: flex-start;
        text-align: left;
        padding: 10px;
    }

    .ks-block-hero__area--right .ks-block-hero__text {
        top: 22%;
        /* Increased for safety */
        right: 2%;
        width: 46%;
        height: 45%;
        align-items: flex-start;
        text-align: right;
        padding: 10px;
    }

    .ks-block-hero__area--bottom .ks-block-hero__text {
        bottom: 13%;
        left: 5%;
        width: 90%;
        height: auto;
        justify-content: center;
        align-items: flex-end;
        text-align: center;
    }

    /* Typography Safety */
    .ks-block-hero__area h2 {
        font-size: clamp(1.2rem, 3vw, 1.5rem);
        /* Safe size with auto-scaling */
        word-spacing: 1px;
        max-width: 100%;
        overflow: visible;
    }

    /* Logo scaling */
    .ks-block-hero__logo img {
        width: 250px;
        max-width: 80vw;
    }
}

/* =========================================
   RESPONSIVE: EXTRA SMALL MOBILE (max-width: 380px)
   ========================================= */
@media (max-width: 380px) {

    /* Reduce gap for very small screens */
    :root {
        --ks-hero-gap: 8px;
    }

    /* Typography - Auto-scaling font to prevent overflow */
    .ks-block-hero__area h2 {
        font-size: clamp(1.0rem, 2.5vw, 1rem);
        /* Auto-scales down if needed */
        line-height: 1.3;
        word-spacing: 0;
        padding: 0;
        max-width: 100%;
        overflow: visible;
    }

    /* Logo - Ensure proper centering and smaller size */
    .ks-block-hero__logo {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        /* Explicit centering */
        z-index: 20;
        width: auto;
        max-width: 75vw;
    }

    .ks-block-hero__logo img {
        width: 180px;
        /* Reduced from 250px */
        max-width: 75vw;
        /* Reduced from 80vw */
        display: block;
        margin: 0 auto;
        /* Additional centering safeguard */
    }

    /* Text Area Positioning - Better spacing from edges */
    .ks-block-hero__area--left .ks-block-hero__text {
        top: 20%;
        left: 4%;
        /* Moved inward from 1% */
        width: 44%;
        /* Reduced from 48% for better margins */
        height: 40%;
        padding: 10px;
        /* Increased from 5px */
        align-items: flex-start;
        text-align: left;
        overflow: visible;
    }

    .ks-block-hero__area--right .ks-block-hero__text {
        top: 20%;
        right: 4%;
        /* Moved inward from 1% */
        width: 44%;
        /* Reduced from 48% for better margins */
        height: 40%;
        padding: 10px;
        /* Increased from 5px */
        align-items: flex-start;
        text-align: right;
        overflow: visible;
    }

    .ks-block-hero__area--bottom .ks-block-hero__text {
        bottom: 20%;
        /* Moved up from 3% */
        left: 5%;
        /* Moved inward from 2% */
        width: 90%;
        /* Reduced from 96% for better margins */
        height: auto;
        padding: 10px;
        /* Increased from 5px */
        justify-content: center;
        align-items: flex-end;
        text-align: center;
    }

    /* Word break for "Kunst des Lebens" - break between "Kunst" and "des" */
    .ks-block-hero__area--bottom h2 {
        word-spacing: 100vw;
        /* Force line break after each word */
    }
}

/* =========================================
   RESPONSIVE: ULTRA SMALL (max-width: 200px)
   ========================================= */
@media (max-width: 200px) {

    /* Typography - Very small font for ultra-narrow screens */
    .ks-block-hero__area h2 {
        font-size: clamp(8px, 2vw, 10px);
        /* Auto-scales for very narrow screens */
        line-height: 1.2;
        word-spacing: 0;
        padding: 0;
        max-width: 100%;
        overflow: visible;
    }

    /* Bottom Text - Move up by 30px from 320px breakpoint */
    .ks-block-hero__area--bottom .ks-block-hero__text {
        bottom: calc(20%);
        /* Moved up 30px from 320px breakpoint */
        left: 5%;
        width: 90%;
        height: auto;
        padding: 10px;
        justify-content: center;
        align-items: flex-end;
        text-align: center;
    }

    /* Word break for "Kunst des Lebens" - break between "Kunst" and "des" */
    .ks-block-hero__area--bottom h2 {
        word-spacing: 100vw;
        /* Force line break after each word */
    }
}