/**
 * FORMA Menu Pro - Advanced Hover Effects v2.0
 * 20 Creative Hover Animations
 */

/* ========== CSS VARIABLES ========== */
:root {
    --forma-bg: #1A1A1A;
    --forma-text: #FFFFFF;
    --forma-text-hover: #C9C4BD;
    --forma-accent: #8B7355;
    --forma-accent-secondary: #C9A87C;
    --forma-hamburger: #FFFFFF;
    --forma-overlay: rgba(26, 26, 26, 0.98);
    --forma-font-heading: 'Cormorant Garamond', serif;
    --forma-font-body: 'Outfit', sans-serif;
    --forma-font-size-menu: 5rem;
    --forma-font-size-logo: 1.8rem;
    --forma-font-weight-menu: 300;
    --forma-animation-speed: 0.5s;
    --forma-blur: 10px;
    --forma-transition: cubic-bezier(0.65, 0, 0.35, 1);
    --forma-transition-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --forma-transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ========== CUSTOM CURSOR ========== */
.forma-cursor {
    width: 20px;
    height: 20px;
    border: 1px solid var(--forma-hamburger);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 100000;
    transition: transform 0.2s var(--forma-transition), 
                opacity 0.2s,
                width 0.3s var(--forma-transition-bounce),
                height 0.3s var(--forma-transition-bounce);
    mix-blend-mode: difference;
    opacity: 0;
    transform: translate(-50%, -50%);
}

.forma-cursor.visible { opacity: 1; }
.forma-cursor.active {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.1);
}

/* ========== NAVIGATION ========== */
.forma-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1.5rem 3rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 10000;
    mix-blend-mode: difference;
}

.forma-logo {
    font-family: var(--forma-font-heading);
    font-size: var(--forma-font-size-logo);
    font-weight: 400;
    color: var(--forma-hamburger);
    letter-spacing: 0.2em;
    text-decoration: none;
    transition: all 0.4s var(--forma-transition);
}

.forma-logo:hover {
    letter-spacing: 0.3em;
}

/* Hamburger */
.forma-hamburger {
    width: 40px;
    height: 30px;
    position: relative;
    cursor: pointer;
    z-index: 10001;
    background: none;
    border: none;
    padding: 0;
}

.forma-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--forma-hamburger);
    position: absolute;
    left: 0;
    transition: all var(--forma-animation-speed) var(--forma-transition);
}

.forma-hamburger span:nth-child(1) { top: 0; width: 100%; }
.forma-hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); width: 70%; }
.forma-hamburger span:nth-child(3) { bottom: 0; width: 40%; }

.forma-hamburger:hover span { width: 100%; }

.forma-hamburger.active span:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
.forma-hamburger.active span:nth-child(2) {
    opacity: 0;
    transform: translateX(20px);
}
.forma-hamburger.active span:nth-child(3) {
    bottom: 50%;
    transform: translateY(50%) rotate(-45deg);
    width: 100%;
}

/* ========== MENU OVERLAY ========== */
.forma-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--forma-overlay);
    backdrop-filter: blur(var(--forma-blur));
    z-index: 9999;
    display: flex;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all var(--forma-animation-speed) var(--forma-transition);
}

.forma-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

.forma-menu-content {
    display: flex;
    width: 100%;
    max-width: 1400px;
    padding: 0 3rem;
    gap: 4rem;
    margin: 0 auto;
}

/* ========== MENU LINKS BASE ========== */
.forma-menu-links {
    flex: 1;
    position: relative;
}

.forma-menu-links ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.forma-menu-links li {
    overflow: hidden;
    margin-bottom: 0.5rem;
    position: relative;
}

.forma-menu-links a {
    display: inline-block;
    font-family: var(--forma-font-heading);
    font-size: clamp(2.5rem, 6vw, var(--forma-font-size-menu));
    font-weight: var(--forma-font-weight-menu);
    color: var(--forma-text);
    text-decoration: none;
    transform: translateY(100%);
    transition: transform var(--forma-animation-speed) var(--forma-transition);
    position: relative;
    line-height: 1.2;
}

.forma-menu-overlay.active .forma-menu-links a {
    transform: translateY(0);
}

/* Stagger */
.forma-menu-links li:nth-child(1) a { transition-delay: 0.1s; }
.forma-menu-links li:nth-child(2) a { transition-delay: 0.15s; }
.forma-menu-links li:nth-child(3) a { transition-delay: 0.2s; }
.forma-menu-links li:nth-child(4) a { transition-delay: 0.25s; }
.forma-menu-links li:nth-child(5) a { transition-delay: 0.3s; }
.forma-menu-links li:nth-child(6) a { transition-delay: 0.35s; }

.forma-menu-number {
    font-family: var(--forma-font-body);
    font-size: 0.8rem;
    opacity: 0.5;
    margin-left: 1rem;
    vertical-align: super;
    transition: all 0.3s;
}


/* ========== FLOATING VERTICAL INDICATOR ========== */
.forma-hover-indicator {
    position: absolute;
    left: -30px;
    width: 3px;
    height: 50px;
    background: linear-gradient(180deg, transparent, var(--forma-accent), transparent);
    border-radius: 2px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s, top 0.15s var(--forma-transition-smooth);
    z-index: 100;
}

.forma-menu-links:hover .forma-hover-indicator {
    opacity: 1;
}


/* ============================================
   🎨 EFFECT 1: UNDERLINE SLIDE
   ============================================ */
.forma-menu-links.hover-underline a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--forma-accent), var(--forma-accent-secondary));
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.6s var(--forma-transition);
}

.forma-menu-links.hover-underline a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}


/* ============================================
   🎨 EFFECT 2: VERTICAL LINE FOLLOW
   Pionowa kreska podąża za myszką
   ============================================ */
.forma-menu-links.hover-line-follow .forma-hover-indicator {
    display: block;
}

.forma-menu-links.hover-line-follow a {
    transition: transform var(--forma-animation-speed) var(--forma-transition),
                color 0.3s, padding-left 0.4s var(--forma-transition);
}

.forma-menu-links.hover-line-follow a:hover {
    color: var(--forma-accent);
    padding-left: 20px;
}


/* ============================================
   🎨 EFFECT 3: HIGHLIGHT MARKER
   ============================================ */
.forma-menu-links.hover-highlight a {
    background: linear-gradient(
        120deg,
        transparent 0%,
        transparent 50%,
        rgba(139, 115, 85, 0.4) 50%
    );
    background-size: 250% 100%;
    background-position: 0%;
    transition: background-position 0.5s var(--forma-transition),
                transform var(--forma-animation-speed) var(--forma-transition);
}

.forma-menu-links.hover-highlight a:hover {
    background-position: 100%;
}


/* ============================================
   🎨 EFFECT 4: CIRCLE EXPAND
   ============================================ */
.forma-menu-links.hover-circle a::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0;
    height: 0;
    background: radial-gradient(circle, var(--forma-accent) 0%, transparent 70%);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.6s var(--forma-transition-bounce),
                height 0.6s var(--forma-transition-bounce);
    z-index: -1;
    opacity: 0.3;
}

.forma-menu-links.hover-circle a:hover::before {
    width: 400px;
    height: 400px;
}


/* ============================================
   🎨 EFFECT 5: ARROW SLIDE
   ============================================ */
.forma-menu-links.hover-arrow a {
    display: inline-flex;
    align-items: center;
    transition: transform var(--forma-animation-speed) var(--forma-transition);
}

.forma-menu-links.hover-arrow a::before {
    content: '→';
    font-size: 0.6em;
    margin-right: 0;
    opacity: 0;
    transform: translateX(-30px);
    transition: all 0.4s var(--forma-transition);
    color: var(--forma-accent);
}

.forma-menu-links.hover-arrow a:hover::before {
    opacity: 1;
    margin-right: 20px;
    transform: translateX(0);
}


/* ============================================
   🎨 EFFECT 6: TEXT REVEAL
   ============================================ */
.forma-menu-links.hover-reveal a::before {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 0;
    color: var(--forma-accent);
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    transition: clip-path 0.6s var(--forma-transition);
}

.forma-menu-links.hover-reveal a:hover::before {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}


/* ============================================
   🎨 EFFECT 7: BRACKET APPEAR
   ============================================ */
.forma-menu-links.hover-bracket a::before,
.forma-menu-links.hover-bracket a::after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
    font-weight: 200;
    opacity: 0;
    transition: all 0.4s var(--forma-transition-bounce);
    color: var(--forma-accent);
}

.forma-menu-links.hover-bracket a::before {
    content: '[';
    left: -50px;
}

.forma-menu-links.hover-bracket a::after {
    content: ']';
    right: -50px;
}

.forma-menu-links.hover-bracket a:hover::before {
    left: -30px;
    opacity: 1;
}

.forma-menu-links.hover-bracket a:hover::after {
    right: -30px;
    opacity: 1;
}


/* ============================================
   🎨 EFFECT 8: DOT INDICATOR
   ============================================ */
.forma-menu-links.hover-dot a::before {
    content: '';
    position: absolute;
    left: -25px;
    top: 50%;
    width: 10px;
    height: 10px;
    background: var(--forma-accent);
    border-radius: 50%;
    transform: translateY(-50%) scale(0);
    transition: transform 0.4s var(--forma-transition-bounce);
}

.forma-menu-links.hover-dot a:hover {
    padding-left: 20px;
    color: var(--forma-accent);
    transition: all 0.4s var(--forma-transition);
}

.forma-menu-links.hover-dot a:hover::before {
    transform: translateY(-50%) scale(1);
}


/* ============================================
   🎨 EFFECT 9: GLITCH
   ============================================ */
.forma-menu-links.hover-glitch a::before,
.forma-menu-links.hover-glitch a::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
}

.forma-menu-links.hover-glitch a::before {
    color: #ff00ff;
    z-index: -1;
}

.forma-menu-links.hover-glitch a::after {
    color: #00ffff;
    z-index: -2;
}

.forma-menu-links.hover-glitch a:hover::before {
    opacity: 0.8;
    animation: glitch1 0.3s infinite;
}

.forma-menu-links.hover-glitch a:hover::after {
    opacity: 0.8;
    animation: glitch2 0.3s infinite;
}

@keyframes glitch1 {
    0%, 100% { transform: translate(0); }
    20% { transform: translate(-4px, 4px); }
    40% { transform: translate(-4px, -4px); }
    60% { transform: translate(4px, 4px); }
    80% { transform: translate(4px, -4px); }
}

@keyframes glitch2 {
    0%, 100% { transform: translate(0); }
    20% { transform: translate(4px, -4px); }
    40% { transform: translate(4px, 4px); }
    60% { transform: translate(-4px, -4px); }
    80% { transform: translate(-4px, 4px); }
}


/* ============================================
   🎨 EFFECT 10: STROKE OUTLINE
   ============================================ */
.forma-menu-links.hover-stroke a {
    -webkit-text-stroke: 0px transparent;
    transition: all 0.4s var(--forma-transition);
}

.forma-menu-links.hover-stroke a:hover {
    color: transparent;
    -webkit-text-stroke: 2px var(--forma-accent);
}


/* ============================================
   🎨 EFFECT 11: BLUR OTHERS
   ============================================ */
.forma-menu-links.hover-blur-others li a {
    transition: all 0.4s var(--forma-transition);
}

.forma-menu-links.hover-blur-others:hover li a {
    opacity: 0.2;
    filter: blur(4px);
}

.forma-menu-links.hover-blur-others li:hover a {
    opacity: 1;
    filter: blur(0);
    color: var(--forma-accent);
    transform: translateX(25px) scale(1.05);
}


/* ============================================
   🎨 EFFECT 12: SCALE UP
   ============================================ */
.forma-menu-links.hover-scale a {
    transform-origin: left center;
    transition: transform 0.4s var(--forma-transition-bounce), color 0.3s;
}

.forma-menu-overlay.active .forma-menu-links.hover-scale a {
    transform: translateY(0) scale(1);
}

.forma-menu-links.hover-scale a:hover {
    transform: translateY(0) scale(1.15);
    color: var(--forma-accent);
}


/* ============================================
   🎨 EFFECT 13: LETTER SPACING
   ============================================ */
.forma-menu-links.hover-spacing a {
    transition: letter-spacing 0.6s var(--forma-transition),
                color 0.3s,
                transform var(--forma-animation-speed) var(--forma-transition);
}

.forma-menu-links.hover-spacing a:hover {
    letter-spacing: 0.2em;
    color: var(--forma-text-hover);
}


/* ============================================
   🎨 EFFECT 14: SLIDE RIGHT
   ============================================ */
.forma-menu-links.hover-slide a {
    transition: transform 0.4s var(--forma-transition), color 0.3s;
}

.forma-menu-links.hover-slide a:hover {
    transform: translateX(50px);
    color: var(--forma-accent);
}

.forma-menu-links.hover-slide a:hover .forma-menu-number {
    opacity: 1;
    color: var(--forma-text);
}


/* ============================================
   🎨 EFFECT 15: WAVE LETTERS
   ============================================ */
.forma-menu-links.hover-wave a .char {
    display: inline-block;
    transition: transform 0.3s var(--forma-transition-bounce);
}

.forma-menu-links.hover-wave a:hover .char {
    animation: wave 0.6s ease forwards;
    color: var(--forma-accent);
}

.forma-menu-links.hover-wave a .char:nth-child(1) { animation-delay: 0s; }
.forma-menu-links.hover-wave a .char:nth-child(2) { animation-delay: 0.03s; }
.forma-menu-links.hover-wave a .char:nth-child(3) { animation-delay: 0.06s; }
.forma-menu-links.hover-wave a .char:nth-child(4) { animation-delay: 0.09s; }
.forma-menu-links.hover-wave a .char:nth-child(5) { animation-delay: 0.12s; }
.forma-menu-links.hover-wave a .char:nth-child(6) { animation-delay: 0.15s; }
.forma-menu-links.hover-wave a .char:nth-child(7) { animation-delay: 0.18s; }
.forma-menu-links.hover-wave a .char:nth-child(8) { animation-delay: 0.21s; }
.forma-menu-links.hover-wave a .char:nth-child(9) { animation-delay: 0.24s; }
.forma-menu-links.hover-wave a .char:nth-child(10) { animation-delay: 0.27s; }

@keyframes wave {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}


/* ============================================
   🎨 EFFECT 16: MAGNETIC (JS required)
   ============================================ */
.forma-menu-links.hover-magnetic a {
    transition: color 0.3s;
}

.forma-menu-links.hover-magnetic a:hover {
    color: var(--forma-accent);
}


/* ============================================
   🎨 EFFECT 17: FILL UP
   ============================================ */
.forma-menu-links.hover-fill-up a {
    background: linear-gradient(to top, var(--forma-accent) 50%, var(--forma-text) 50%);
    background-size: 100% 200%;
    background-position: top;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    transition: background-position 0.5s var(--forma-transition),
                transform var(--forma-animation-speed) var(--forma-transition);
}

.forma-menu-links.hover-fill-up a:hover {
    background-position: bottom;
}


/* ============================================
   🎨 EFFECT 18: DOUBLE LINE
   ============================================ */
.forma-menu-links.hover-double-line a::before,
.forma-menu-links.hover-double-line a::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--forma-accent);
    transform: scaleX(0);
    transition: transform 0.5s var(--forma-transition);
}

.forma-menu-links.hover-double-line a::before {
    top: -5px;
    transform-origin: right;
}

.forma-menu-links.hover-double-line a::after {
    bottom: -5px;
    transform-origin: left;
}

.forma-menu-links.hover-double-line a:hover::before,
.forma-menu-links.hover-double-line a:hover::after {
    transform: scaleX(1);
}

.forma-menu-links.hover-double-line a:hover::before {
    transform-origin: left;
}

.forma-menu-links.hover-double-line a:hover::after {
    transform-origin: right;
}


/* ============================================
   🎨 EFFECT 19: NEON GLOW
   ============================================ */
.forma-menu-links.hover-neon a {
    transition: all 0.4s var(--forma-transition);
}

.forma-menu-links.hover-neon a:hover {
    color: #fff;
    text-shadow: 
        0 0 5px var(--forma-accent),
        0 0 15px var(--forma-accent),
        0 0 30px var(--forma-accent),
        0 0 60px var(--forma-accent);
}


/* ============================================
   🎨 EFFECT 20: ROTATE IN
   ============================================ */
.forma-menu-links.hover-rotate a {
    transform-origin: left center;
    transition: transform 0.5s var(--forma-transition-bounce), color 0.3s;
}

.forma-menu-overlay.active .forma-menu-links.hover-rotate a {
    transform: translateY(0) rotateX(0);
}

.forma-menu-links.hover-rotate a:hover {
    transform: translateY(0) rotateX(-10deg) scale(1.05);
    color: var(--forma-accent);
}


/* ========== MENU INFO ========== */
.forma-menu-info {
    width: 300px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 2rem;
    opacity: 0;
    transform: translateY(30px);
    transition: all var(--forma-animation-speed) var(--forma-transition) 0.4s;
}

.forma-menu-overlay.active .forma-menu-info {
    opacity: 1;
    transform: translateY(0);
}

.forma-info-title {
    font-family: var(--forma-font-body);
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--forma-text-hover);
    margin: 0 0 0.5rem 0;
}

.forma-info-address {
    font-family: var(--forma-font-body);
    font-size: 0.9rem;
    color: var(--forma-text);
    margin: 0 0 1.5rem 0;
    line-height: 1.6;
}

.forma-info-contact a {
    display: block;
    font-family: var(--forma-font-body);
    font-size: 0.9rem;
    color: var(--forma-text);
    text-decoration: none;
    margin-bottom: 0.5rem;
    transition: color 0.3s, transform 0.3s;
}

.forma-info-contact a:hover {
    color: var(--forma-accent);
    transform: translateX(5px);
}

.forma-social-links {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
}

.forma-social-link {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--forma-text);
    transition: all 0.3s var(--forma-transition);
}

.forma-social-link:hover {
    background: var(--forma-accent);
    border-color: var(--forma-accent);
    transform: translateY(-3px);
}

.forma-social-link svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

body.forma-menu-open {
    overflow: hidden;
}

/* ========== RESPONSIVE ========== */
@media screen and (max-width: 992px) {
    .forma-nav { padding: 1rem 1.5rem; }
    
    .forma-menu-content {
        flex-direction: column;
        justify-content: center;
        padding: 0 1.5rem;
    }
    
    .forma-menu-links { text-align: center; }
    
    .forma-hover-indicator,
    .forma-menu-links.hover-bracket a::before,
    .forma-menu-links.hover-bracket a::after,
    .forma-menu-links.hover-dot a::before,
    .forma-menu-links.hover-arrow a::before { display: none; }
    
    .forma-menu-info {
        width: 100%;
        text-align: center;
        margin-top: 2rem;
    }
    
    .forma-social-links { justify-content: center; }
}

@media screen and (max-width: 600px) {
    .forma-menu-links a { font-size: clamp(2rem, 8vw, 3rem); }
    .forma-menu-number { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

@media (hover: none) {
    .forma-cursor, .forma-hover-indicator { display: none !important; }
}
