/* Index Page Specific Styles */

/* Hero section specific to homepage */
.hero-image img {
    filter: drop-shadow(0 0 30px rgba(59, 130, 246, 0.4));
}

/* Homepage specific layout adjustments */
.index-page .hero-section {
    min-height: 100vh;
}

/* ============================================================
   HERO PREMIUM — obelisk-inspired monumental hero
   Loaded after 3d-overrides.css → these rules win specificity.
   Scope: body[data-page="index"] .hero-premium / #ch-hero
   ============================================================ */

body[data-page="index"] #ch-hero.hero-premium {
    --hero-blue:        #6ea8ff;
    --hero-blue-hi:     #9bc0ff;
    --hero-blue-lo:     #4a8be8;
    --hero-blue-soft:   rgba(110, 168, 255, 0.18);
    --hero-text:        #f4f6fb;
    --hero-text-soft:   rgba(220, 226, 240, 0.78);
    --hero-stroke:      rgba(255, 255, 255, 0.12);
    --hero-stroke-hi:   rgba(255, 255, 255, 0.28);
    --hero-glass:       rgba(10, 14, 24, 0.55);
    --hero-glass-hi:    rgba(20, 26, 40, 0.72);
}

body[data-page="index"] #ch-hero.hero-premium {
    min-height: 100vh;
    display: grid;
    place-items: center;
    position: relative;
    overflow: hidden;
}

body[data-page="index"] #ch-hero.hero-premium .chapter-inner {
    width: 100%;
    max-width: 72rem;
    padding: 0 1.5rem;
    text-align: center;
}

body[data-page="index"] #ch-hero.hero-premium .hero-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* === Eyebrow — availability status pill ============================ */
body[data-page="index"] #ch-hero.hero-premium .hero-mark {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 1rem 0.45rem 0.85rem;
    margin: 0 0 2.5rem;
    border: 1px solid var(--hero-stroke);
    border-radius: 999px;
    background: var(--hero-glass);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    font-family: var(--3d-font-mono);
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(245, 247, 252, 0.78);
    font-weight: 500;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.5);
    animation: heroFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

body[data-page="index"] #ch-hero.hero-premium .hero-mark-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4ad77a;
    box-shadow: 0 0 0 0 rgba(74, 215, 122, 0.7);
    animation: heroPulseDot 2.2s ease-out infinite;
}

@keyframes heroPulseDot {
    0%   { box-shadow: 0 0 0 0 rgba(74, 215, 122, 0.7); }
    70%  { box-shadow: 0 0 0 9px rgba(74, 215, 122, 0); }
    100% { box-shadow: 0 0 0 0 rgba(74, 215, 122, 0); }
}

/* === Title — monumental, pure white, ultra-tight tracking ============ */
body[data-page="index"] #ch-hero.hero-premium .hero-title {
    font-family: var(--3d-font-display);
    font-size: clamp(3.2rem, 11.5vw, 9.5rem);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 0.94;
    color: var(--hero-text) !important;
    margin: 0 0 1.85rem !important;
    text-wrap: balance;
    text-shadow:
        0 4px 50px rgba(0, 0, 0, 0.75),
        0 1px 2px rgba(0, 0, 0, 0.55);
    text-transform: uppercase;
    animation: heroFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;
}

body[data-page="index"] #ch-hero.hero-premium .hero-title .line {
    display: block;
    line-height: 0.96;
    padding-bottom: 0.05em;
    overflow: visible;
}

/* Pure white, no gradient — italic on second line for subtle rhythm.
   Keeps both lines monumental but adds typographic motion. */
body[data-page="index"] #ch-hero.hero-premium .hero-title .line.accent {
    color: var(--hero-text) !important;
    font-style: italic;
    font-weight: 500;
    letter-spacing: -0.04em;
    background: none !important;
    -webkit-background-clip: unset !important;
    -webkit-text-fill-color: var(--hero-text) !important;
}

/* === Tagline — italic mono uppercase, obelisk-style =================== */
body[data-page="index"] #ch-hero.hero-premium .hero-tagline {
    font-family: var(--3d-font-mono);
    font-size: clamp(0.78rem, 1.05vw, 0.95rem);
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--hero-text-soft);
    margin: 0 0 3.25rem;
    text-shadow: 0 1px 16px rgba(0, 0, 0, 0.55);
    animation: heroFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.55s both;
}

/* === CTA — premium pills (blue primary + glass ghost)
   v3.0.0: full !important to override 3d-overrides.css "sharp tech" defaults
   that were forcing border-radius: 2px on hero buttons. ============== */
body[data-page="index"] #ch-hero.hero-premium .hero-cta {
    display: inline-flex !important;
    gap: 1rem !important;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0 !important;
    padding: 0 !important;
    animation: heroFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.75s both;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.7rem !important;
    font-family: var(--3d-font-mono) !important;
    font-size: 0.75rem !important;
    line-height: 1 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    padding: 1.05rem 2rem !important;
    border-radius: 999px !important;
    border: 1px solid var(--hero-stroke-hi) !important;
    background: var(--hero-glass) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: var(--hero-text) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    overflow: hidden !important;
    isolation: isolate;
    transition:
        background 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.4s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

/* Kill the global ::after "→" injection from 3d-overrides — we use real SVG icons */
body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn::after {
    content: none !important;
    display: none !important;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn .btn-label {
    position: relative;
    z-index: 2;
    display: inline-block;
    line-height: 1;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn .btn-icon {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        background 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn .btn-icon svg {
    width: 14px;
    height: 14px;
    display: block;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn:hover .btn-icon {
    transform: translateX(3px);
}

/* Shimmer sheen — sweeps across button on hover */
body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(
        110deg,
        transparent 0%,
        rgba(255, 255, 255, 0.18) 45%,
        rgba(255, 255, 255, 0.32) 50%,
        rgba(255, 255, 255, 0.18) 55%,
        transparent 100%
    ) !important;
    transition: left 0.85s cubic-bezier(0.22, 1, 0.36, 1) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn:hover::before {
    left: 100% !important;
}

/* === Primary "Kontakt" — blue gradient pill with depth ============== */
body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-primary {
    background:
        linear-gradient(180deg, var(--hero-blue-hi) 0%, var(--hero-blue) 50%, var(--hero-blue-lo) 100%) !important;
    border: 1px solid rgba(110, 168, 255, 0.6) !important;
    color: #07090f !important;
    font-weight: 600 !important;
    letter-spacing: 0.2em !important;
    box-shadow:
        0 0 0 1px rgba(110, 168, 255, 0.25),
        0 14px 36px -8px rgba(74, 139, 232, 0.55),
        0 4px 14px -2px rgba(74, 139, 232, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        inset 0 -1px 0 rgba(0, 10, 30, 0.18) !important;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-primary .btn-icon {
    background: rgba(7, 9, 15, 0.18);
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-primary:hover {
    background:
        linear-gradient(180deg, #bdd5ff 0%, #9bc0ff 50%, #6ea8ff 100%) !important;
    border-color: rgba(155, 192, 255, 0.9) !important;
    transform: translateY(-3px) !important;
    box-shadow:
        0 0 0 1px rgba(155, 192, 255, 0.6),
        0 0 32px -4px rgba(110, 168, 255, 0.55),
        0 22px 52px -10px rgba(74, 139, 232, 0.7),
        0 8px 20px -2px rgba(74, 139, 232, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.65),
        inset 0 -1px 0 rgba(0, 10, 30, 0.18) !important;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-primary:hover .btn-icon {
    background: rgba(7, 9, 15, 0.28);
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-primary:active {
    transform: translateY(-1px) !important;
}

/* === Ghost "Portfolio" — refined glass pill, blue accent on hover === */
body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-ghost {
    background: rgba(10, 14, 24, 0.55) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    color: var(--hero-text) !important;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.04),
        0 8px 24px -6px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-ghost .btn-icon {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-ghost:hover {
    background: rgba(20, 26, 40, 0.78) !important;
    border-color: rgba(110, 168, 255, 0.55) !important;
    color: var(--hero-blue-hi) !important;
    transform: translateY(-3px) !important;
    box-shadow:
        0 0 0 1px rgba(110, 168, 255, 0.18),
        0 0 28px -6px rgba(110, 168, 255, 0.3),
        0 18px 44px -10px rgba(0, 0, 0, 0.55),
        inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-ghost:hover .btn-icon {
    background: rgba(110, 168, 255, 0.14);
    border-color: rgba(110, 168, 255, 0.35);
}

body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn-ghost:active {
    transform: translateY(-1px) !important;
}

/* Focus ring — accessible, blue-tinted */
body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn:focus-visible {
    outline: 2px solid var(--hero-blue-hi) !important;
    outline-offset: 4px !important;
}

/* === Scroll cue — minimal vertical line, blue pulse =================== */
body[data-page="index"] #ch-hero.hero-premium .hero-scroll-cue {
    position: absolute;
    bottom: 1.85rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    pointer-events: none;
    z-index: 1;
    animation: heroFadeIn 1.2s cubic-bezier(0.22, 1, 0.36, 1) 1.4s both;
}

body[data-page="index"] #ch-hero.hero-premium .hero-scroll-label {
    display: none;
}

body[data-page="index"] #ch-hero.hero-premium .hero-scroll-line {
    display: block;
    width: 1px;
    height: 56px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.18) 35%,
        rgba(255, 255, 255, 0.55) 100%
    );
    position: relative;
    overflow: hidden;
}

body[data-page="index"] #ch-hero.hero-premium .hero-scroll-line::after {
    content: "";
    position: absolute;
    top: -40%;
    left: 0;
    width: 100%;
    height: 38%;
    background: linear-gradient(
        180deg,
        rgba(110, 168, 255, 0) 0%,
        var(--hero-blue) 100%
    );
    animation: heroScrollDrop 2.6s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}

@keyframes heroScrollDrop {
    0%   { top: -40%; opacity: 0; }
    20%  { opacity: 1; }
    80%  { opacity: 1; }
    100% { top: 100%; opacity: 0; }
}

/* === Animations ====================================================== */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translate3d(0, 22px, 0); }
    to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes heroFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-mark,
html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-title,
html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-tagline,
html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-cta,
html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-scroll-cue {
    animation: none;
    opacity: 1;
    transform: none;
}

html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-mark-dot,
html.reduced-motion body[data-page="index"] #ch-hero.hero-premium .hero-scroll-line::after {
    animation: none;
}

/* === Responsive ====================================================== */
/* Tablet/mobile — only stack buttons when really tight (<540px). */
@media (max-width: 760px) {
    body[data-page="index"] #ch-hero.hero-premium .chapter-inner {
        padding: 0 1.25rem;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-mark {
        font-size: 0.66rem;
        letter-spacing: 0.2em;
        padding: 0.42rem 0.9rem 0.42rem 0.75rem;
        margin-bottom: 2rem;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-title {
        font-size: clamp(2.6rem, 12.5vw, 5.4rem);
        letter-spacing: -0.04em;
        margin-bottom: 1.4rem !important;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-tagline {
        letter-spacing: 0.26em;
        margin-bottom: 2.6rem;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-scroll-line {
        height: 44px;
    }
}

@media (max-width: 540px) {
    body[data-page="index"] #ch-hero.hero-premium .hero-cta {
        flex-direction: column !important;
        width: 100%;
        max-width: 22rem;
        gap: 0.75rem !important;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-cta .btn {
        width: 100% !important;
        justify-content: center !important;
        padding: 1rem 1.6rem !important;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-mark-text {
        font-size: 0.62rem;
    }
    body[data-page="index"] #ch-hero.hero-premium .hero-scroll-cue {
        bottom: 1.5rem;
    }
}

/* Hide scroll cue when viewport is too short — content competes for space */
@media (max-height: 760px) {
    body[data-page="index"] #ch-hero.hero-premium .hero-scroll-cue {
        opacity: 0.4;
    }
}
@media (max-height: 640px) {
    body[data-page="index"] #ch-hero.hero-premium .hero-scroll-cue {
        display: none;
    }
}

/* ============================================================
   FOOTER LEGAL — elegant text, no box
   Removes the harsh top border and dot-separator orphan-wrap.
   Three legal triggers display as refined italic mono links
   with breathing room and a smooth blue underline on hover.
   ============================================================ */

/* Drop the box edge — replace border-top with a subtle hairline */
body[data-page="index"] .footer-bottom {
    border-top: none !important;
    margin-top: 3rem !important;
    padding-top: 2.5rem !important;
    position: relative;
}

body[data-page="index"] .footer-bottom::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(36%, 16rem);
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.18) 50%,
        transparent 100%
    );
    pointer-events: none;
}

body[data-page="index"] .footer-bottom-content {
    gap: 1.4rem !important;
    align-items: center;
}

/* Copyright — elegant mixed-case italic instead of harsh ALL CAPS */
body[data-page="index"] .footer-bottom > .footer-bottom-content > p {
    font-family: var(--3d-font-mono) !important;
    font-size: 0.74rem !important;
    letter-spacing: 0.06em !important;
    text-transform: none !important;
    color: rgba(220, 226, 240, 0.55) !important;
    font-weight: 400 !important;
    font-style: italic;
    line-height: 1.5;
}

body[data-page="index"] .footer-copyright-link {
    color: rgba(245, 247, 252, 0.92) !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    font-style: normal;
}

/* Legal links — flex with generous whitespace, NO dot separators
   (the previous "·" pseudo-element was orphaning to the start of a
   wrapped line, which read like a broken box). */
body[data-page="index"] .footer-bottom-links {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    column-gap: 2.4rem !important;
    row-gap: 0.65rem !important;
    gap: 0.65rem 2.4rem !important;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

body[data-page="index"] .footer-bottom-links > * + *::before {
    content: none !important;
    display: none !important;
    margin: 0 !important;
}

/* Trigger buttons — refined italic uppercase mono, no chrome */
body[data-page="index"] .footer-bottom-links .legal-trigger,
body[data-page="index"] .footer-bottom-links button.legal-trigger {
    font-family: var(--3d-font-mono) !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    font-weight: 400 !important;
    font-style: italic;
    color: rgba(220, 226, 240, 0.6) !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0.25rem 0 !important;
    margin: 0 !important;
    position: relative;
    cursor: pointer;
    text-decoration: none;
    transition: color 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Animated blue underline on hover — matches hero CTA accent */
body[data-page="index"] .footer-bottom-links .legal-trigger::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(110, 168, 255, 0.95) 50%,
        transparent 100%
    );
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
}

body[data-page="index"] .footer-bottom-links .legal-trigger:hover,
body[data-page="index"] .footer-bottom-links .legal-trigger:focus-visible {
    color: #f4f6fb !important;
    outline: none !important;
}

body[data-page="index"] .footer-bottom-links .legal-trigger:hover::after,
body[data-page="index"] .footer-bottom-links .legal-trigger:focus-visible::after {
    transform: scaleX(1);
}

/* Mobile — stack legal links vertically for tap-target clarity */
@media (max-width: 540px) {
    body[data-page="index"] .footer-bottom { padding-top: 2.25rem !important; }
    body[data-page="index"] .footer-bottom-content { gap: 1.1rem !important; }
    body[data-page="index"] .footer-bottom-links {
        flex-direction: column;
        gap: 0.95rem !important;
    }
    body[data-page="index"] .footer-bottom-links .legal-trigger {
        font-size: 0.7rem !important;
    }
}

html.reduced-motion body[data-page="index"] .footer-bottom-links .legal-trigger,
html.reduced-motion body[data-page="index"] .footer-bottom-links .legal-trigger::after {
    transition: none;
}
