:root {
    --brand-dark: #0f172a;
    --brand-light: #ffffff;
    --brand-accent: #2563eb;
    --brand-ivory: #fafafa;
}

html {
    overflow-x: hidden;
    max-width: 100%;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--brand-light);
    color: var(--brand-dark);
    overflow-x: hidden;
    max-width: 100%;
    -webkit-font-smoothing: antialiased;
}

.font-serif { font-family: 'Cormorant Garamond', serif; }

/* Скрытие скроллбара */
::-webkit-scrollbar { width: 0px; background: transparent; }

/* Общие компоненты */
.glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.btn-glow {
    position: relative;
    background: var(--brand-dark);
    color: white;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    display: inline-block;
}

.btn-glow::before {
    content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: all 0.6s ease; z-index: -1;
}

.btn-glow:hover::before { left: 100%; }
.btn-glow:hover { transform: scale(1.02); box-shadow: 0 20px 40px -10px rgba(15,23,42,0.2); }

/* Карточки Apple-style */
.apple-card {
    background: var(--brand-ivory);
    border-radius: 2.5rem;
    padding: 2.5rem;
    transition: all 0.5s ease;
}

.luxury-card {
    background: white;
    border-radius: 3rem;
    overflow: hidden;
    border: 1px solid rgba(15,23,42,0.03);
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.luxury-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 40px 80px -20px rgba(15,23,42,0.12);
}

.bento-card {
    background: white;
    border-radius: 2rem;
    padding: 2.5rem;
    border: 1px solid rgba(15,23,42,0.05);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.5s ease;
}

.bento-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 30px 60px -15px rgba(15,23,42,0.05);
}

/* Hero: на десктопе ровно по высоте viewport, на мобиле — растёт под контент,
   иначе вертикальный стек (текст + карточка) обрезается нижним краем секции. */
.hero-screen { min-height: 100vh; min-height: 100svh; }
@media (min-height: 560px) and (min-width: 1024px) {
    .hero-screen { height: 100svh; min-height: 560px; }
}

/* Если контент выше viewport (мобильные) — не центрируем, иначе верх уходит за fixed nav.
   Специфичность section.hero-screen побеждает .items-center из Tailwind. */
section.hero-screen { align-items: safe center; }

.hero-h1 {
    font-size: clamp(2.5rem, min(9vw, 13vh), 6rem);
}
@media (min-width: 1024px) {
    .hero-h1 { font-size: clamp(3rem, min(7vw, 14vh), 6.25rem); }
}
