body, p, a, span, div, button, td, th, select, input, textarea { font-family: 'Montserrat', sans-serif; }
h1, h2, h3, h4, h5, h6, .font-heading { font-family: 'Playfair Display', serif !important; }
h1 span, h2 span, h3 span, h4 span, h5 span, h6 span { font-family: inherit !important; }

body { background-color: #ffffff; color: #111111; overflow-x: hidden; font-size: 16px; }
@media (min-width: 768px) { h2, h3 { font-size: max(22px, inherit); } }
.view { display: none; }
.view.active { display: block; }

.page-transition {
    position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background-color: #01352f; z-index: 9999;
    transform: translateY(100%); pointer-events: none; display: flex; align-items: center; justify-content: center;
}
.transition-text { opacity: 0; display: flex; align-items: center; justify-content: center; }

.nav-glass { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(0, 0, 0, 0.05); box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); }
.nav-transparent { background: transparent; border-bottom: 1px solid rgba(255, 255, 255, 0.15); }
.nav-btn-custom { transition: all 0.3s ease; }
.nav-btn-custom:hover { background-color: #ffffff !important; color: #01352f !important; border-color: #ffffff !important; box-shadow: 0 4px 15px rgba(1, 53, 47, 0.2); animation: none; }

@keyframes menuPulse { 0% { box-shadow: 0 0 0 0 rgba(184, 155, 123, 0.7); } 70% { box-shadow: 0 0 0 12px rgba(184, 155, 123, 0); } 100% { box-shadow: 0 0 0 0 rgba(184, 155, 123, 0); } }
.menu-pulse { animation: menuPulse 2s infinite; border-color: #B89B7B; color: #B89B7B; }
@keyframes customPulse { 0% { box-shadow: 0 0 0 0 rgba(184, 155, 123, 0.6); } 70% { box-shadow: 0 0 0 15px rgba(184, 155, 123, 0); } 100% { box-shadow: 0 0 0 0 rgba(184, 155, 123, 0); } }
.btn-pulse { animation: customPulse 2s infinite; }

/* Map Piny */
.map-pin { position: absolute; transform: translate(-50%, -50%); cursor: pointer; z-index: 10; outline: none; }
.map-pin::before { content: ''; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; border-radius: 50%; transform: translate(-50%, -50%); animation: pulse 2s infinite; will-change: transform, opacity; }
.map-pin-inner { position: relative; width: 8px; height: 8px; border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.3); transition: transform 0.3s ease, background-color 0.3s ease; }
.map-pin:hover { z-index: 50; }
.map-pin:hover .map-pin-inner { transform: scale(1.6); background-color: #01352f !important; }

.pin-popup { visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 0.3s ease, visibility 0.3s ease; z-index: 60; }
.map-pin:hover .pin-popup, .map-pin:focus .pin-popup { visibility: visible; opacity: 1; pointer-events: auto; }

@media (min-width: 768px) { .map-pin::before { width: 30px; height: 30px; } .map-pin-inner { width: 12px; height: 12px; } }
@keyframes pulse { 0% { transform: translate(-50%, -50%) scale(0.5); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(2); opacity: 0; } }

.pin-volny-etapa1 .map-pin-inner { background-color: #22c55e; } .pin-volny-etapa1::before { background-color: rgba(34, 197, 94, 0.4); }
.pin-volny .map-pin-inner { background-color: #f97316; } .pin-volny::before { background-color: rgba(249, 115, 22, 0.4); }
.pin-rezervovany .map-pin-inner { background-color: #3b82f6; } .pin-rezervovany::before { background-color: rgba(59, 130, 246, 0.4); }
.pin-predany .map-pin-inner { background-color: #dc2626; } .pin-predany::before { display: none; }

@keyframes yellowPulse { 0% { box-shadow: 0 0 0 0 rgba(250, 204, 21, 0.7); transform: scale(2.5); } 50% { box-shadow: 0 0 0 20px rgba(250, 204, 21, 0); transform: scale(3.5); } 100% { box-shadow: 0 0 0 0 rgba(250, 204, 21, 0); transform: scale(2.5); } }
.map-pin .map-pin-inner.pin-highlight { transform: scale(2.5) !important; background-color: #facc15 !important; animation: yellowPulse 1.5s infinite !important; z-index: 50 !important; }

@keyframes floatIcon { 0% { transform: translateY(0px); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0px); } }
.icon-float { animation: floatIcon 3.5s ease-in-out infinite; }

.overflow-hidden-text { overflow: hidden; display: inline-block; vertical-align: bottom; padding-bottom: 0.3em; margin-bottom: -0.3em; }
.gsap-img-reveal-container { overflow: hidden; }
.gsap-img-reveal { clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); }

.table-scrollbar::-webkit-scrollbar { height: 6px; } .table-scrollbar::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 4px; } .table-scrollbar::-webkit-scrollbar-thumb { background: #B89B7B; border-radius: 4px; }
.hide-scrollbar::-webkit-scrollbar { display: none; } .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Interaktívny slider */
.img-comp-container { position: relative; width: 100%; overflow: hidden; touch-action: pan-y; }
.img-comp-overlay { position: absolute; top: 0; left: 0; height: 100%; width: 50%; overflow: hidden; border-right: 3px solid #ffffff; z-index: 10; box-shadow: 5px 0 15px rgba(0,0,0,0.2); }
.img-comp-img-front { position: absolute; top: 0; left: 0; height: 100%; object-fit: cover; max-width: none !important; pointer-events: none; }
.img-comp-slider { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; background: #ffffff; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: ew-resize; z-index: 20; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.img-comp-slider::before, .img-comp-slider::after { content: ''; position: absolute; width: 2px; height: 14px; background-color: #B89B7B; }
.img-comp-slider::before { left: 14px; } .img-comp-slider::after { right: 14px; }

.pattern-overlay { position: relative; overflow: hidden; z-index: 1; }
.pattern-overlay::before { content: ''; position: absolute; inset: 0; background-image: url('../assets/topographic%20pattern.svg'); background-repeat: no-repeat; background-position: center center; background-size: cover; opacity: 0.05; pointer-events: none; z-index: -1; }
.translate-y-full-custom { transform: translateY(150%); }

.nav-link-active { color: #B89B7B !important; }
